使用OpenSSL命令行验证协议

时间:2014-04-13 16:59:52

标签: ssl openssl heartbleed-bug

鉴于最近的心脏缺陷,我正在尝试对我连接的各种系统(电子邮件,登录页面等)进行一些分析。我正在尝试使用OpenSSL命令行工具来验证我连接的系统正在使用哪些协议。

部分回复是:

...
SSL-Session:
    Protocol  : TLSv1
...

我需要验证此服务是否未使用Openssl(特别是有缺陷的1.0.1版本)? (我认为它已经足够了,因为我连接了一台服务器,我知道它正在使用Openssl 0.9.8并且它响应了上面显示的相同字符串。)

1 个答案:

答案 0 :(得分:2)

TLSv1是指协议TLS版本1,而openssl,NSS,GnuTLS,PolarSSL ......是协议的实现。您通常无法从正常的TLS对话框中检测到哪个SSL实现或另一方面正在运行哪个版本的实现,因此您最好使用任何可用的工具来检查服务器是否容易受到攻击。

您可以尝试使用-tlsextdebug的{​​{1}}选项查找对方支持的TLS扩展名。易受攻击的版本通常表明它们支持心跳扩展,但我不会指望它。当然,修复版本也支持此扩展。如果广告支持扩展,您可以在openssl s_client的输出中找到它:

  

TLS服务器扩展"心跳" (id = 15),len = 1