是否可以列出服务器支持的所有Openssl密码?
hs1ihplo1#
不可能向TLS服务器询问所有支持的密码。我们所能做的就是探测服务器以获取特定密码,并观察它是否报告服务器将支持该密码。使用openssl命令行,这意味着使用openssl s_client -no_tls1_3 -cipher ...探测TLS 1.2和更低的密码,使用openssl s_client -tls1_3 -ciphersuites ...探测TLS 1.3密码。成功握手的示例:
openssl s_client -no_tls1_3 -cipher ...
openssl s_client -tls1_3 -ciphersuites ...
$ openssl s_client -no_tls1_3 -cipher AES128-GCM-SHA256 -connect google.com:443 ... SSL-Session: Protocol : TLSv1.2 Cipher : AES128-GCM-SHA256
对于失败的握手:
$ openssl s_client -no_tls1_3 -cipher AES128-SHA256 -connect google.com:443 ... SSL-Session: Protocol : TLSv1.2 Cipher : 0000
不过,这种方法有几个限制:
openssl ciphers -V
因此,对于成功的测试,可以确定该密码被支持。对于不成功的测试,不能完全确定该密码不被支持,因为它可能仅在特定的上下文中被支持。对于未测试的密码,不知道这些密码是否被支持。
1条答案
按热度按时间hs1ihplo1#
不可能向TLS服务器询问所有支持的密码。我们所能做的就是探测服务器以获取特定密码,并观察它是否报告服务器将支持该密码。使用openssl命令行,这意味着使用
openssl s_client -no_tls1_3 -cipher ...
探测TLS 1.2和更低的密码,使用openssl s_client -tls1_3 -ciphersuites ...
探测TLS 1.3密码。成功握手的示例:
对于失败的握手:
不过,这种方法有几个限制:
openssl ciphers -V
因此,对于成功的测试,可以确定该密码被支持。对于不成功的测试,不能完全确定该密码不被支持,因为它可能仅在特定的上下文中被支持。对于未测试的密码,不知道这些密码是否被支持。