【发布时间】:2013-08-29 11:38:00
【问题描述】:
我使用SslStream 在.NET 中编写了一个支持HTTPS 的网络服务器。
不幸的是,ssllabs.com 输出以下有关我的实施的消息:
此服务器容易受到 MITM 攻击,因为它支持不安全的重新协商。
这链接到关于漏洞的interesting blog entry。
如何在 .NET 的 SslStream 中禁用重新协商?
【问题讨论】:
我使用SslStream 在.NET 中编写了一个支持HTTPS 的网络服务器。
不幸的是,ssllabs.com 输出以下有关我的实施的消息:
此服务器容易受到 MITM 攻击,因为它支持不安全的重新协商。
这链接到关于漏洞的interesting blog entry。
如何在 .NET 的 SslStream 中禁用重新协商?
【问题讨论】:
SslStream 在后台使用 SChannel.dll。您可以通过修改注册表来配置可用的算法:
http://support.microsoft.com/kb/245030
特别是,以下屏幕截图中突出显示的两个条目将禁止 TLS 重新协商:
它们被称为AllowInsecureRenegoClients和AllowInsecureRenegoServers,都是DWORD值,都设置为0,并且位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL。
显然,您可以安装一个修补程序,也可以禁用不安全的 TLS/SSL 重新协商(仅适用于 Windows XP/Windows2003 服务器):
【讨论】:
对于 window2012,它不适用于“AllowInsecureRenegoClients”,并且“AllowInsecureRenegoServers”设置为 0。
我已将 AllowInsecureRenegoClients" 更改为 0,将 "DisableRenegoOnServer" 更改为 1,并且正在为我工作。
【讨论】: