TLS升级

时间:2016-03-27 16:06:27

标签: web-services ups

    public bool CheckValidationResult(ServicePoint sp, 
        System.Security.Cryptography.X509Certificates.X509Certificate cert, WebRequest req, int problem)
    {

        return true;
    }

在这里,我可以从Web服务单独使用Tls 1.2访问Web服务。

因此,在方法中返回true之前添加以下行。 , 然后,我可以访问该服务并能够获得响应。

这是处理这些或其他任何方式的正确方法吗? ? ?

请帮助有此经验的人。

先谢谢。

//这里给出协议版本或者运营商接受tls 1.1,1.2和1.0以及ssl3

        sp.Expect100Continue = true;  
        ServicePointManager.Expect100Continue = true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Tls12;  

1 个答案:

答案 0 :(得分:1)

不,这不是正确的方法!虽然我知道100个开发人员这样做(对于证书验证返回true),但是他们的通信不再安全,现在受到中间人和重放攻击,这是人类已知的最常见的SSL攻击。

事实是,您需要为证书验证提供“全面实施”,该验证基于多个RFC(搜索:X.509证书验证)。您至少需要检查证书的有效性(日期),使用CA的公钥验证主题签名哈希并验证CA的CRL撤销(确保服务器证书未被撤销)。但是......

为了简单起见,在不降低TLS完整性的情况下,您可以简单地检查“问题”(int问题),然后根据问题的值返回true或false。操作系统应根据内部操作系统安全策略设置问题值。就个人而言,我仍然更喜欢“全面实施”,因为操作系统安全策略可能很弱,被淹没或被破坏(被黑客攻击)。如果您需要有关“全面实施”的更多详细信息,请与我们联系