作为 PCI 合规性测试的一部分,我们发现使用传输级安全性和证书保护的 WCF net.tcp 端点允许 SSLv2 连接。我们的服务是自托管的,因此我们没有使用 IIS 来托管它们,因此我认为基于 IIS 的解决方案行不通。
在浏览了很多 MSDN 页面之后,我们还没有找到一种方法来告诉 WCF 连接要使用哪个版本的 SSL。
为了 PCI 合规性,我们要求连接仅接受 SSLv3 而不是 SSLv2。
有谁知道如何在 WCF 连接(主机和客户端)上设置强制 SSL 版本,或者是否有关于如何为整个 Windows 机器执行此操作的边界方法?
不确定是否不应该在服务器故障时更好地询问。
它是 .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 连接到服务器,您现在应该会收到一个错误
我是一名优秀的程序员,十分优秀!