【问题标题】:Verify protocol using OpenSSL command line使用 OpenSSL 命令行验证协议
【发布时间】:2014-04-13 16:59:52
【问题描述】:

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

部分回复是:

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

我只需要验证该服务没有使用 Openssl(尤其是有缺陷的 1.0.1 版本)吗? (我认为这还不够,因为我连接了一个我知道正在使用 Openssl 0.9.8 的服务器,它以与上所示相同的字符串进行响应。)

【问题讨论】:

标签: ssl openssl heartbleed-bug


【解决方案1】:

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

您可以尝试使用openssl s_client-tlsextdebug选项来找出对方支持哪个TLS扩展。易受攻击的版本通常表明它们支持心跳扩展,但我不会指望它。当然,固定版本也支持这个扩展。如果宣传了对扩展的支持,您可以在 openssl s_client -tlsextdebug -connect ... 的输出中找到它:

TLS 服务器扩展“heartbeat”(id=15)​​,len=1

【讨论】:

  • 我希望有更明确的东西可以报告目标系统上正在使用的版本。我想,在某些方面,它没有告诉你底层机制是什么,而只是告诉你遵循的 API。
  • SSL 是一种类似的超薄协议,不像 HTTP 那样健谈,您经常会获得服务器版本、PHP 版本等信息。您只能获得必要的信息,例如使用哪个协议版本以及可以理解哪些扩展。
猜你喜欢
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 2015-05-12
  • 2012-08-13
  • 1970-01-01
相关资源
最近更新 更多