6.3 配置网络协议的安全性
如果是 64 位操作系统环境,在 SSCM 控制台窗口展开根节点后,可以看到2个与网络配置相关的节点。
◆ SQL Server 网络配置(32位)
这个节点将列出这台计算机上所安装的所有 32 位的SQL Server 实例。
◆ SQL Server 网络配置
这个节点将列出这台计算机上所安装的所有 64 位的SQL Server 实例。
如果这台计算机是32位操作系统,由于只能安装32位的 SQL Server 实例,所以只会显示一个“SQL Server 网络配置”节点。
在网络配置节点下面选择一个实例,在右键菜单中选择“属性”,可以为该实例配置安全性。
6.3.1 配置标志选项
“标志”选项卡有2个参数。
◆ 强行加密
可以将数据库引擎配置为在与客户端应用程序通信时要求加密。
◆ 隐藏实例
SQL Server 使用 SQL Server Browser 服务来枚举安装在计算机上的数据库引擎服务。这使客户端应用程序可以浏览服务器,并帮助客户端区分同一台计算机上的多个数据库引擎服务。可以将“隐藏实例”设为“是”,以防止 SQL Server Browser 服务向尝试通过使用“浏览”按钮来查找实例的客户端计算机公开此数据库引擎服务。
对于新的客户端连接,更改会立即生效。
6.3.2 配置证书选项
需要为数据库引擎指定证书,才能在“标志”选项卡中启用“强行加密”。服务器计算机必须安装有证书,客户端计算机必须设置为信任该证书的根颁发机构。
指定了证书并启用“强行加密”,则所有的客户端都将被强制加密。重新启动该实例后生效。
6.3.3 配置高级选项
SQL Server 2008 及后续产品都支持扩展保护,使用服务绑定(数据库引擎要求客户端提供一个已签名的 SPN)和通道绑定(对所有会话流量进行 TLS 加密)来帮助防止身份验证的中继攻击。
“接受的 NTLM SPN”参数是一系列由分号隔开的SPN,最大长度为2048个字符。当多个 NTLM 服务主体名称(SPN)标识SQL Server 数据库引擎服务时,在此以字符串形式列出 SPN。当客户端尝试使用不接受的 SPN 连接到服务器时,将不能建立连接。
“扩展保护”参数有3个选项:
◆ 关闭
当设置为“关闭”时,禁用扩展保护。此时SQL Server 数据库引擎将接受来自任何客户端的连接,而不管该客户端是否受保护。“关闭”选项的安全性较差,一般情况下,只有当客户端操作系统不支持扩展保护时,才使用些设置。
◆ 允许
当设置为“允许”时,如果客户端操作系统支持扩展保护则新建立的连接需要扩展保护,但是如果此时客户端应用程序是不受保护的则连接被拒绝。如果客户端操作系统不支持扩展保护则新建立的连接将忽略扩展保护。
◆ 必需
当设置为“必需”时,只接受来自受保护的操作系统上受保护的应用程序的连接。此设置是最安全的,但来自不支持扩展保护的操作系统或应用程序的连接将无法连接到数据库引擎。
提示:
扩展保护(Extended Protection)主要用于防止中间人攻击(man-in-the-middle,简称MITM)。在身份验证中继攻击中,攻击者使用客户端的凭据来伪装成客户端并经受服务(例如,数据库引擎服务)对其进行身份验证。这种攻击具有两种变体:一种是引诱攻击,即客户端被引诱而自主连接到攻击者;另一种是假冒攻击,即客户端因受到DNS劫持或路由劫持而将连接重定向到攻击者。
针对身份验证的扩展保护是操作系统实现的一项网络功能。 Windows 7 和 Windows Server 2008 R2 支持扩展保护。旧的 Windows 操作系统可以通过安装 SP 增加扩展保护功能。默认情况下,Windows 不启用扩展保护。
通过服务绑定可以解决引诱攻击,但不能解决假冒攻击。