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

Dax*_*ous 6 browser security ssl

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

Chrome version Y supports TLS_RSA ...., TLS_ECDHE...., ...
Chrome version Y+1 supports....
Safari version X ...
IE version Z ....
Microsoft Edge ...
Opera .... 
Firefox ...
Run Code Online (Sandbox Code Playgroud)

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

Jyo*_*Lys 9

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

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

  • 在对配置进行每次更改后,使用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

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

如果您想了解特定的浏览器版本,请安装它并转到此网站(Still Qualys SSLLabs,但对于客户端).

  • 希望我有一些神奇的东西...... (2认同)

Che*_*oft 5

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

  1. 克隆https://github.com/WestpointLtd/pytls
  2. python server.py -p 4433
  3. 将浏览器指向 https://localhost:4433/

正在运行的 python 脚本会将浏览器请求的密码套件打印到控制台。它们按优先顺序列出,浏览器最喜欢的密​​码套件位于列表顶部。

例如

谷歌浏览器 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

来自同一浏览器的重复连接通常会显示不同的密码套件集,因为浏览器可能会在请求的密码列表中的不同位置随机放入不同的 GREASE 密码

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

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