Sql server 如何配置加密的SQL Server连接以防止MITM攻击?
令我惊讶的是,在将SQL Server配置为强制连接加密时,默认情况下SQL Server不会阻止中间人攻击 在连接上强制加密非常简单。转到Sql Server配置管理器,展开Sql Server网络配置,[您的实例]的协议,右键单击TCP/IP,将强制加密更改为“是”,重新启动Sql Server,就完成了。 根据Microsoft TechNet(),这将生成一个自签名证书。很好,没问题,但是我希望我的客户会抱怨证书不可信。但是,他们没有。他们很高兴地连接到它。然后我意识到在SQL Management Studio中默认选中了“信任服务器证书”。很好,但最令人震惊的是:即使您取消选中“信任服务器证书”,SSMS也不会抱怨、警告或拒绝连接。Sql server 如何配置加密的SQL Server连接以防止MITM攻击?,sql-server,security,encryption,sql-server-2016,Sql Server,Security,Encryption,Sql Server 2016,令我惊讶的是,在将SQL Server配置为强制连接加密时,默认情况下SQL Server不会阻止中间人攻击 在连接上强制加密非常简单。转到Sql Server配置管理器,展开Sql Server网络配置,[您的实例]的协议,右键单击TCP/IP,将强制加密更改为“是”,重新启动Sql Server,就完成了。 根据Microsoft TechNet(),这将生成一个自签名证书。很好,没问题,但是我希望我的客户会抱怨证书不可信。但是,他们没有。他们很高兴地连接到它。然后我意识到在SQL Man
因此,默认情况下,SQL Server完全容易受到MITM攻击,因为客户端不验证来自SQL Server的证书。证书不必由CA签名:证书必须配置为客户端上的受信任证书。如果不是这样,那么“信任服务器证书”复选框是什么?请参阅。除了连接设置“信任服务器证书”之外,还有另一个设置,即客户端设置“信任服务器证书”,它是从Configuration Manager配置的。如果设置了这两个选项中的任何一个,自签名证书将成功(实际上有点复杂,因为客户端设置
No
将覆盖连接设置…请参见链接)。SQL Server 2016版本附带TLS 1.0到TLS 1.2支持()
应禁用TLS 1.0、1.1和SSL 3.0,并且仅将TLS 1.2用于客户端-服务器通信
(通过CU累积更新,TLS 1.2支持其他版本的SQL Server)
SQL server使用名为TDS的协议作为TCP上的应用程序层。尚未报告Microsoft TDS实施的已知漏洞
由于多个标准实施组织要求在加密通信信道中使用TLS 1.2,因此Microsoft正在为广泛的SQL Server安装基础发布对TLS 1.2的支持
审查:
SQL Server是否可以防止MITM攻击(中间人)
证书颁发机构系统旨在阻止中间人攻击。在TLS中,SQL server使用与其证书相关联的私钥来建立有效连接并加密所有有线通信。
服务器对密钥保密,因此中间人不能使用SQL server real证书
使用自签名证书:
自签名证书的使用在生产环境中是不可接受的,但可以在测试环境中使用。
使用SHA256签名证书/链,SHA1已过时
您可以应用中描述的与服务器认证相关的规则
Windows管理员可以为Windows O.S启用TLS 1.2支持,以获得TLS 1.2的好处
关于你的观点:
在将SQL Server配置为强制连接加密时,默认情况下SQL Server不会阻止中间人攻击
安全性是由安全策略书面文档管理并由O.S/数据库/网络/应用程序管理员实施的策略。。。并经审计
SQL server是否符合安全标准?
答案是肯定的。最近,所有旧的SQL Server 2008/2012都通过CU获得了TLS 1.2支持
结论:
- 组织应避免在生产环境中使用自行分配的认证,并使用CA认证
- DBA/Windows/Network Admin可以为SQL server/Windows和网络基础结构实现TLS 1.2
- 应用程序中的连接字符串可以支持加密