作为PCI合规性测试的一部分,我们发现使用传输级别安全性和证书保护的WCF net.tcp端点允许SSLv2连接。我们的服务是自托管的,所以我们不使用IIS来托管它们,因此基于IIS的解决方案我认为不会起作用。
在浏览了很多MSDN页面后,我们还没有找到一种方法来告诉WCF连接使用哪种版本的SSL。
我们要求连接只接受SSLv3而不接受SSLv2以符合PCI标准。
是否有人知道如何在WCF连接(主机和客户端)上设置强制SSL版本,或者对于如何为整个Windows机器执行此操作有更多的方法吗?
答案 0 :(得分:1)
不确定是否应该更好地询问服务器故障。
它是.NET应用程序吗?您可能需要查看ServicePointManager.SecurityProtocol。
此外,您可以尝试以下操作,例如,Windows Server 2008.它应该是系统范围的而不是IIS特定的。通过导航到开始>打开命令提示符运行>在服务器上使用cmd,然后执行以下语句:
REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 2.0\Server" /v Enabled /t REG_DWORD /d 0 /f
REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 2.0\Client" /v Enabled /t REG_DWORD /d 0 /f
REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 3.0\Server" /v Enabled /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\SSL 3.0\Client" /v Enabled /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Control\SecurityProviders\SChannel\Protocols\TLS 1.0\Client" /v Enabled /t REG_DWORD /d 1 /f
之后,如果您尝试使用SSLv2
连接到服务器,则现在应该收到错误