TLS加密套件

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/herongoal/article/details/83414888

    出于兴趣爱好,决定开发TLS1.2-1.3的一个库。为此阅读了TLS相关的若干RFC文档,以及查阅了多篇相关博客文章。最终有以下发现:

    1. TLS定义了几百个加密套件(参考https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml),可是在HTTP2面前基本都被否定了(꒦_꒦),列入了加密套件黑名单。剩余的加密套件中,有20来个是被推荐的,还有二十来个没有被推荐;

    2. TLS-IANA中不推荐的加密套件,基本都被HTTP2列入了黑名单;

    3. Chrome-70-X64里建立HTTPS连接握手时(TLS1.2),client-hello中指定的加密套件中,除了最后面7个是出现在HTTP2加密套件黑名单中的(应该是为了兼容古老的服务器而指定),其余的全部是TLS推荐的加密套件。加密套件排列顺序合理:

          

4. 再来看看IE11-X86(Windows 7)对加密套件的支持情况(除了圈出来的这四个之外,其余的全是HTTP2黑名单里出现的o(╥﹏╥)o),加密套件排列顺序不合理,看样子微软IE浏览器很久没有人去动代码了:

        

    5. Firefox浏览器的加密套件是酱紫的(除了圈出来之外,其余的全部位于加密套件黑名单中):

        

    6. QQ浏览器其实是我不喜欢的浏览器,因为他为了钱居然每次我在地址栏输入tao,准备买买买的时候,总是给我推荐其他的网址,在极速内核下对加密套件的支持是这样的(除了圈出来之外,其余的全部位于加密套件黑名单中):

        

    7. 遨游5浏览器是我曾经最喜欢的浏览器,一键切换内核功能很好用,速度也很快,地址栏收藏很好用。它在极速内核下对于加密套件的支持,跟QQ浏览器完全一样,这里不再赘述;在IE内核下对于加密套件的支持不用多说,肯定跟本地IE浏览器的支持一致(这里鄙人是验证了的哈);

    8. Opera浏览器对加密套件的支持,跟QQ浏览器完全一样,不再赘述;

    9. 360极速浏览器极速内核下,对加密套件的支持如下(除了圈出来之外,其余的全部位于加密套件黑名单中),跟QQ极速内核的区别,也就是Reserved加密套件不一样,而IE兼容模式毫无疑问加密套件跟本地IE浏览器是一样的(验证过);

        

    10. 百度浏览器的极速模式下,对加密套件支持是这样的(除了圈出来之外,其余的全部位于加密套件黑名单中):

        

    11. 最终得到如下表格(主流浏览器对加密套件的支持情况):

        

    12. 实现TLS1.2的话,加密套件(TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256)中的一个是必要的。另外,还要为了兼容性实现一下HTTP2黑名单中的部分套件(TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA)。
    13. 规划暂时如此,如果遇到问题,再重新调整策略。

 

展开阅读全文

没有更多推荐了,返回首页