欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

等保测评2.0:SQLServer身份鉴别(下)

来源:本站整理 作者:佚名 时间:2020-02-16 TAG: 我要投稿

一、前言
本篇文章主要说一说SQLServer数据库中身份鉴别控制点的中c、d测评项相关内容和理解。
二、测评项
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
三、测评项c
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
3.1. 默认加密
以前我一直以为SQLServer的鉴别信息(数据库连接字符串)如果不经过特殊处理在网络传输过程中是明文传输的。
后来上网查了下,网上提到说:联机从书上提到过从SQL Server 2005开始,SQL Server和客户端的连接是自动加密的
我去翻了下SQLServer 2008 R2的联机丛书,上面确实提到,SQL Server 始终对与登录关联的网络数据包加密:

那么以网上的那篇文章内容来说的话,SQLServer 2005开始,SQLServer默认会对与登录关联的网络数据包加密,具体网址如下:SQL Server 连接加密 (1) — SQL Server connection encyption
但是,要注意:SQLServer自动生成的证书是一种自签名的证书,而通过自签名证书实现的SSL并不能提供很强的安全性。
同时,虽然默认会对与登录关联的网络数据包加密,但是对与登录无关的网络数据包是默认不加密的:SQL Server 连接加密 (2) — SQL Server connection encyption。
不过该测评项也仅仅只是要求防止鉴别信息在网络传输过程中被窃听,所以与登录无关的网络数据包是否加密,不在这里考虑。
3.2. 强制加密
那么,原初级教程里提到的强制加密是用来干什么的呢?
这个强制加密在SQL Server Configuration Manager中有两个地方,一个是SHTECSQLEXPRESS的协议的属性中进行设置:

一个在SQL Native Client配置的属性中进行设置:

这两个有什么不同呢?
SHTECSQLEXPRESS的协议属性中的强制加密,默认为否:
当把该选项设置为是之后,SQL Server就会要求对所有它和客户端之间的数据包传送进行加密,无论客户端是否配置为要求加密。此时用来加密的密钥仍旧是之前在建立连接阶段使用的证书。
如果SHTECSQLEXPRESS的协议属性中的强制加密未设置为是:
那么是否对某客户端的所有传输过来的数据进行加密就完全取决于客户端的配置,也就是客户端的数据库连接驱动的配置。在Configuration Manager中,可以设置SQL Native Client配置。当SQL Native Client配置属性中的强制加密为是的话,就表明客户端要求加密数据包。此时客户一定要信任SQL Server端的证书(也就是信任服务器证书为是),否则连接无法建立。另外,需要注意的是,此处的配置只对使用Native Client的客户端程序有效果。其他驱动程序也会有相应的方法分别作配置。如ODBC驱动就可以通过Cliconfg控制台来配置,等等
具体的原文在这:SQL Server 连接加密 (2) — SQL Server connection encyption。
SQLServer 2008 R2的联机丛书中也有说到这部分的内容:

所以强制加密的第一个作用是可以使用自己配置的证书,第二个作用就对多所有的网络传输数据进行加密。
对于这个测评项而言,第二个作用没有意义,而手动配置证书有意义,因为它可以提高安全性:
使用自签名证书加密的 SSL 连接不提供强安全性。它们容易在传输中途受到攻击。在生产环境中或在连接到 Internet 的服务器上,不应依赖使用自签名证书的 SSL。
3.3. 手动配置证书
如果要判定为符合,应该不使用自签名证书(也即SQLServer自动生成的证书)。
手动 配置SQLServer的过程如下:


3.4. ipsec
使用IPSec也可以实现传输数据的加密:

3.5. 测评项c总结一
该测评项对于默认状态下的SQLServer应该属于部分符合,因为默认情况下SQLServer对于网络传输过程中的鉴别信息是加密的,只不过安全性不高。
如果要判定为符合,应该使用手动配置的证书或者使用IPSec。
3.6. 测评项c总结二
对于这个测评项也要从该数据库的使用模式来进行判断(以下是个人理解)。
比如中间件和数据库处于同一台服务器A上,客户端或者浏览器不会直连数据,而是发送请求到http接口到A,A再连接处于本地的数据库获取数据,未发生过数据库鉴别信息的网络传输,那么这个测评项应判定为不适用或者符合。
又或者中间件所在服务器A和数据库所在服务器B处于同一内网中,服务器A接收到请求后,发送数据库的鉴别信息到服务器B,外网的设备比较难获取到鉴别信息(更别说鉴别信息也不是明文传输的),应该判定为部分符合或者符合。
又或者,虽然数据库本身没有进行什么配置,但是客户端是直连数据库的(某一些C/S架构的软件确实会这样),但是客户端使用了SSL等协议进行了网络传输数据的加密,那么也应该是部分符合或者符合。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载