是否有哪个浏览器支持哪个TLS密码套件列表?

时间:2015-08-03 10:53:28

标签: security ssl browser

我试图通过提供更高版本的TLS来提高应用程序的安全性。但是,我不想排除太多用户。 有没有人知道是否有列出所有主要浏览器的列表,以及哪些版本支持TLS的密码套件? e.g

Chrome version Y supports TLS_RSA ...., TLS_ECDHE...., ...
Chrome version Y+1 supports....
Safari version X ...
IE version Z ....
Microsoft Edge ...
Opera .... 
Firefox ...

我一直在谷歌上搜索我无法在任何地方找到它。 有人看过像这样的网站吗? 万分感谢!

2 个答案:

答案 0 :(得分:7)

我不知道是否有某处你可以找到这些信息。

我看到了两种确保与大多数浏览器兼容的方法:

  • 使用Qualys SSLLabs检查每次对配置所做的更改后的握手情况,
  • 继续使用TLSv1.0,您需要支持Android v4.3及更早版本,并且至少支持在相应的TLS RFC中定义的密码套件。

符合RFC的强制性密码套件包括:

  • TLSv1.1的TLS_RSA_WITH_3DES_EDE_CBC_SHA(也就是说TLSv1.0)
  • TLSv1.2的TLS_RSA_WITH_AES_128_CBC_SHA

如果您使用这些设置,您将支持除Windows XP上的IE6以外的所有浏览器。

然后,一旦您支持这些协议和密码套件,您就可以添加并选择更强大的协议:

  • TLS_(EC)DHE_RSA_WITH_AES_256_GCM_SHA384(尚未广泛支持)
  • TLS_(EC)DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_(EC)DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_(EC)DHE_RSA_WITH_AES_128_CBC_SHA

通过这些设置,您应该支持几乎所有浏览器,并且与现代浏览器具有良好的安全级别。

如果您想了解特定浏览器版本,请安装它并转到this website(Still Qualys SSLLabs,但客户端)。

答案 1 :(得分:2)

PyTLS项目是纯python中的一个非常低级的SSL / TLS实现,并带有一个基本的服务器实现,可以很好地处理这项工作,开箱即用。

  1. clone https://github.com/WestpointLtd/pytls
  2. 运行python server.py -p 4433
  3. 将您的浏览器指向https://localhost:4433/
  4. 正在运行的python脚本将打印出浏览器请求的密码套件到控制台。它们按优先顺序列出,浏览器最受欢迎的密码套件位于列表顶部。

    e.g。

    Google Chrome 56,Windows 10,2017年4月

    Binding...
    Connection from ('127.0.0.1', 64858)
    Record Version: TLS1_0
    Handshake Version: TLS1_2
    Session ID Length: 0
    Cipher Suites Length (bytes): 32
    Cipher Suites:
    0x8a8a GREASE_i
    0xc02b TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    0xc02f TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    0xc02c TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    0xc030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    0xcca9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
    0xcca8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
    0xcc14 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_non_iana
    0xcc13 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_non_iana
    0xc013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    0xc014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    0x009c TLS_RSA_WITH_AES_128_GCM_SHA256
    0x009d TLS_RSA_WITH_AES_256_GCM_SHA384
    0x002f TLS_RSA_WITH_AES_128_CBC_SHA
    0x0035 TLS_RSA_WITH_AES_256_CBC_SHA
    0x000a TLS_RSA_WITH_3DES_EDE_CBC_SHA
    

    Mozilla Firefox 52,Windows 10,2017年4月

    Binding...
    Connection from ('127.0.0.1', 64814)
    Record Version: TLS1_0
    Handshake Version: TLS1_2
    Session ID Length: 0
    Cipher Suites Length (bytes): 26
    Cipher Suites:
    0xc02b TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    0xc02f TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    0xcca9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
    0xcca8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
    0xc02c TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    0xc030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    0xc00a TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    0xc009 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    0xc013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    0xc014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    0x002f TLS_RSA_WITH_AES_128_CBC_SHA
    0x0035 TLS_RSA_WITH_AES_256_CBC_SHA
    0x000a TLS_RSA_WITH_3DES_EDE_CBC_SHA
    

    curl 7.42.1(x86_64-suse-linux-gnu)libcurl / 7.42.1 OpenSSL / 1.0.1k zlib / 1.2.8 libidn / 1.31 libssh2 / 1。5。0,2017年4月

    Binding...
    Connection from ('127.0.0.1', 47096)
    Record Version: TLS1_0
    Handshake Version: TLS1_2
    Session ID Length: 0
    Cipher Suites Length (bytes): 118
    Cipher Suites:
    0xc030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    0xc02c TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    0xc028 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    0xc024 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
    0xc014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    0xc00a TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    0x00a3 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
    0x009f TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
    0x006b TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
    0x006a TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
    0x0039 TLS_DHE_RSA_WITH_AES_256_CBC_SHA
    0x0038 TLS_DHE_DSS_WITH_AES_256_CBC_SHA
    0x0088 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
    0x0087 TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
    0xc032 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
    0xc02e TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
    0xc02a TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
    0xc026 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
    0xc00f TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
    0xc005 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
    0x009d TLS_RSA_WITH_AES_256_GCM_SHA384
    0x003d TLS_RSA_WITH_AES_256_CBC_SHA256
    0x0035 TLS_RSA_WITH_AES_256_CBC_SHA
    0x0084 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
    0xc02f TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    0xc02b TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    0xc027 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    0xc023 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    0xc013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    0xc009 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    0x00a2 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
    0x009e TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
    0x0067 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
    0x0040 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
    0x0033 TLS_DHE_RSA_WITH_AES_128_CBC_SHA
    0x0032 TLS_DHE_DSS_WITH_AES_128_CBC_SHA
    0x009a TLS_DHE_RSA_WITH_SEED_CBC_SHA
    0x0099 TLS_DHE_DSS_WITH_SEED_CBC_SHA
    0x0045 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
    0x0044 TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
    0xc031 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
    0xc02d TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
    0xc029 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
    0xc025 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
    0xc00e TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
    0xc004 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
    0x009c TLS_RSA_WITH_AES_128_GCM_SHA256
    0x003c TLS_RSA_WITH_AES_128_CBC_SHA256
    0x002f TLS_RSA_WITH_AES_128_CBC_SHA
    0x0096 TLS_RSA_WITH_SEED_CBC_SHA
    0x0041 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
    0xc012 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
    0xc008 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
    0x0016 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
    0x0013 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
    0xc00d TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
    0xc003 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
    0x000a TLS_RSA_WITH_3DES_EDE_CBC_SHA
    0x00ff TLS_EMPTY_RENEGOTIATION_INFO_SCSV
    

    来自同一浏览器的重复连接通常会显示不同的密码套件集,因为浏览器可能randomly throw in different GREASE ciphers位于请求的密码列表中的不同位置。

    请注意,此项目仅处理TLS记录和消息的传输,并且不处理任何加密。它主要针对希望在协议级别调查或复制不同SSL / TLS实现的行为的安全研究人员,并且需要一些所需协议行为的知识,以便有效地扩展其作为库的使用。

    免责声明:我与作者密切合作,为该项目的某些方面做出了贡献。