【发布时间】:2016-12-30 17:17:33
【问题描述】:
令我惊讶的是,在配置 SQL Server 以强制连接加密时,默认情况下 SQL Server 没有采取任何措施来防止中间人攻击。
对您的连接强制加密非常简单。您转到 Sql Server 配置管理器,展开 SQL Server 网络配置,[您的实例] 的协议,右键单击 TCP/IP,将强制加密更改为“是”,重新启动 SQL Server,您就完成了。
根据 Microsoft TechNet (https://technet.microsoft.com/en-us/library/ms189067(v=sql.105).aspx),这将生成自签名证书。好的,没问题,但我希望我的客户会抱怨证书不受信任。但是,他们没有。他们很高兴地连接到它。然后我意识到“信任服务器证书”在 SQL Management Studio 中默认检查。很好,但最令人震惊的实现是:即使您取消选中“信任服务器证书”,SSMS 也不会抱怨、警告或拒绝连接。
因此,默认情况下 SQL Server 完全容易受到 MITM 攻击,因为客户端不执行任何操作来验证来自 SQL Server 的证书。证书不必由 CA 签名:证书必须在客户端上配置为受信任的证书。如果不是这样,“信任服务器证书”复选框的作用是什么?
【问题讨论】:
-
离题。不是编程问题,真的。这是更多的服务器配置。试试 DBA 站点或服务器故障,也许。
-
当您设置一个未勾选信任的原始系统时会发生什么?也许它已经将服务器证书或 ca 证书添加到其信任列表中。
-
@symcbean 我也有同样的想法——我从一个原始系统连接到它,同样的事情发生了。
标签: sql-server security encryption sql-server-2016