我应该使用什么 SSLCipherSuite 来删除这些套件?

我应该使用什么 SSLCipherSuite 来删除这些套件?

我当前的命令:

SSLProtocol -ALL -SSLv2 -SSLv3 -TLSv1 +TLSv1.1 +TLSv1.2
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!RC4

然而,当我运行 SSLScan 时,我发现以下密码仍然可用:

Accepted  TLSv1  256 bits  DHE-RSA-AES256-SHA
Accepted  TLSv1  256 bits  AES256-SHA
Accepted  TLSv1  128 bits  DHE-RSA-AES128-SHA
Accepted  TLSv1  128 bits  AES128-SHA
Accepted  TLSv1  168 bits  EDH-RSA-DES-CBC3-SHA
Accepted  TLSv1  168 bits  DES-CBC3-SHA

我如何修改我的 SSLCipherSuite 命令以删除对这些的支持?

答案1

为了解决这种情况,我建议使用openssl ciphers命令行工具,例如

openssl ciphers -v 'RSA+AES' | sort

这将列出该 OpenSSL 密码名称的各个密码套件;-v命令行选项提供更多信息(例如该密码套件的协议版本),并使输出格式更像输出SSLScan。使用sort是可选的;我个人觉得使用排序列表更容易搜索名称(例如您提供的名称)。

我建议使用单引号将密码名称括起来,这样 shell 就不会解释它。请注意,使用协议版本也是可行的,例如

openssl ciphers 'TLSv1.2'

使用此方法并查看协议版本密码名称,我们发现罪魁祸首是DH+AES256,它提供:

openssl ciphers -v `DH+AES256`
...
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
...

另一个罪魁祸首是DH+AES

openssl ciphers -v 'DH+AES' | sort
...
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
...

还有DH+3DES,它提供:

openssl ciphers -v 'DH+3DES' | sort
...
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
...

RSA+AES名称提供您不需要的密码套件:

openssl ciphers -v 'RSA+AES' | sort
...
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
...
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
...

最后,还有RSA+3DES

openssl ciphers -v 'RSA+3DES' | sort
...
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1

那么你可以从您的指令中删除所有提到的有罪名称SSLCipherSuite,只要您的客户端有足够的剩余受支持的密码套件。

希望这可以帮助!

相关内容