如何验证 SSLv3 协议是否已禁用?

信息安全 tls openssl 惊吓
2021-09-01 14:03:48

我正在尝试在 Ubuntu 12.04 上禁用 ejabberd 2.1.10 中的 SSLv3。没有办法在配置文件中禁用它,所以我必须修补源并重建包:https ://github.com/processone/ejabberd/issues/113

问题是补丁安装后,如何验证 SSLv3协议是否被禁用?这是一个私人服务器,所以我不能使用https://xmpp.net/

我知道我们可以使用opensslwith-ssl3选项,如下所示:

openssl s_client -connect chat.local:5222 -starttls xmpp -ssl3

但问题是:我无法禁用 SSLv3密码套件https ://github.com/processone/ejabberd/issues/113#issuecomment-29279707 :

请注意,虽然您可以禁用 SSL 版本 3,但您不能禁用“SSLv3 密码套件”,因为没有这样的东西,所有 SSLv3 密码套件也被所有 TLS 版本使用(TLS 1.1/1.2 只是添加了一些新的)。

所以上面的命令仍然显示结果:

New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : SSLv3
    Cipher    : AES256-SHA
    Session-ID:
    Session-ID-ctx:
    Master-Key: D1D474B68F6C4F59ED5E96963F94FAF078A0C5531A7841B1E0E34257925309A96EA2F25F59F65CCD151F05EB75BC935C
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1414072098
    Timeout   : 7200 (sec)
    Verify return code: 18 (self signed certificate)

两个问题:

  1. 如何才能在网上SSL检查(https://www.ssllabs.com/ssltest/https://xmpp.net/,...)如果可以的SSLv3测试协议被禁用或不?
  2. 如果 SSLv3 协议被禁用,但由于某些原因启用了 SSLv3 密码套件(例如,Ubuntu 12.04 上的 OpenSSL 禁用了 TLSv1.2,我们必须启用 SSLv3 密码套件才能使某些监控工具正常工作),是否有任何风险?
4个回答
SSL-Session:
   Protocol  : SSLv3
   Cipher    : AES256-SHA

显然您的服务器仍然启用了 SSLv3。如果您成功禁用 SSLv3 openssl s_client -ssl3 -connect ...,应该会得到如下信息:

...SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1260:SSL alert number 40
...SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:
...
Protocol  : SSLv3
Cipher    : 0000

这里的指标是你没有得到密码(“0000”)。

至于密码本身,您无需进行任何更改。

只是为了完整性:

testssl.sh是一个不错的基于控制台的工具,用于检查任何启用 ssl/ts 的服务器的 ssl 设置,与 ssllabs 相对

测试

我知道的两种方法:

如果您有 Webinspect,他们会专门为此进行检查。

简单的方法是取消选中 IE 中除 SSLv3 之外的所有协议,然后查看您是否连接到该网站。

在此处输入图像描述

Qualys 有一个不错的 SSL 测试工具,可以为您提供有关 SSL 连接的大量信息。您可以在“协议”部分检查服务器支持的 SSL 版本。

https://www.ssllabs.com/ssltest/