首页
学习
活动
专区
圈层
工具
发布

TLS升级
EN

Stack Overflow用户
提问于 2016-03-28 00:06:27
回答 1查看 97关注 0票数 0
代码语言:javascript
复制
    public bool CheckValidationResult(ServicePoint sp, 
        System.Security.Cryptography.X509Certificates.X509Certificate cert, WebRequest req, int problem)
    {

        return true;
    }

在这里,我可以仅使用Tls 1.2从web服务访问web服务。

因此,在方法中的return true之前添加以下行之后。,然后,我可以访问服务,也可以获得响应。

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

请帮助任何有这方面经验的人。

提前谢谢。

//此处给定协议版本,或操作员接受TLS1.1、1.2和1.0以及ssl3

代码语言:javascript
复制
        sp.Expect100Continue = true;  
        ServicePointManager.Expect100Continue = true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Tls12;  
EN

回答 1

Stack Overflow用户

发布于 2017-03-25 01:43:06

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

事实是,您需要为证书验证提供一个“全面的实现”,它基于几个RFC(搜索: X.509 certificate validation)。您至少需要检查证书的有效性(日期),使用CA的公钥验证主题签名散列,并验证CA的CRL吊销(确保服务器证书未吊销)。然而..。

为了简单起见,在不降低TLS完整性的情况下,您可以简单地检查“问题”(int问题),然后根据问题的值返回true或false。操作系统应根据内部操作系统安全策略设置问题值。就我个人而言,我仍然倾向于“全面实现”,因为操作系统安全策略可能是软弱的、被淹没的或被破坏(黑客)的。如果你需要更多关于“全面实施”的细节,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36249513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档