编辑 2015-09-03:已修复。
自 2015 年 9 月 1 日起从 Chrome 版本 45 开始修复。WeakDH.org 现在报告:
Good News! Your browser is safe against the Logjam attack.
大部分原始帖子保留在下面。
批处理解决方法
一种解决方法是创建一个启动 Chrome 并明确禁用所有临时 DH 套件的批处理文件。
目前互联网上有不同的黑名单字符串。下面是我的尝试。
密码套件由其十六进制 ID 标识。IANA 拥有正式的注册密码套件列表。
但我决定让 OpenSSL (v1.0.2) 为我做这件事,而不是从那个列表中挑选。这些套房是:
openssl ciphers -V DHE | sort
0x00,0x11 - EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export
0x00,0x12 - EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1
0x00,0x13 - EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1
0x00,0x14 - EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export
0x00,0x15 - EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1
0x00,0x16 - EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
0x00,0x32 - DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1
0x00,0x33 - DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
0x00,0x38 - DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1
0x00,0x39 - DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
0x00,0x40 - DHE-DSS-AES128-SHA256 TLSv1.2 Kx=DH Au=DSS Enc=AES(128) Mac=SHA256
0x00,0x44 - DHE-DSS-CAMELLIA128-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(128) Mac=SHA1
0x00,0x45 - DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
0x00,0x67 - DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
0x00,0x6A - DHE-DSS-AES256-SHA256 TLSv1.2 Kx=DH Au=DSS Enc=AES(256) Mac=SHA256
0x00,0x6B - DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
0x00,0x87 - DHE-DSS-CAMELLIA256-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(256) Mac=SHA1
0x00,0x88 - DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1
0x00,0x99 - DHE-DSS-SEED-SHA SSLv3 Kx=DH Au=DSS Enc=SEED(128) Mac=SHA1
0x00,0x9A - DHE-RSA-SEED-SHA SSLv3 Kx=DH Au=RSA Enc=SEED(128) Mac=SHA1
0x00,0x9E - DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
0x00,0x9F - DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
0x00,0xA2 - DHE-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=DSS Enc=AESGCM(128) Mac=AEAD
0x00,0xA3 - DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=DSS Enc=AESGCM(256) Mac=AEAD
这是一个丑陋的小脚本,我用来从上面的列表中选择十六进制 ID 并为我生成黑名单字符串:
openssl ciphers -V DHE |
sort |
awk '{print $1}' |
sed 's/,0x//g' |
xargs echo |
sed 's/ /,/g' |
sed 's/^/--cipher-suite-blacklist=/'
这是该命令的输出:
- 密集 - 黑名单= 0x0011,0x0012,0x0013,0x0014,0x0015.0x0033,0x0038,0x0033,0x0040,0x0044,0x0045,0x0067,0x006a,0x006b,0x0087,0x0088,0x0099,0x009a,0x009e, 0x009F,0x00A2,0x00A3
(免责声明:这个字符串可能太长了。我认为 Chrome 甚至不支持所有这些密码套件。(您可以使用SSL Labs 客户端测试进行检查。))
2015-07-03 更新:Chrome 仍然容易受到攻击。
官方 Logjam 页面https://WeakDH.org/检查 512 位 DHE 支持。它在内部使用https://dhe512.zmap.io/域进行检查。连接到此域的能力被评为失败。
- 铬失败。
- Internet Explorer、Safari、Firefox 通行证。
实际使用的最小 DHE 位长度如下:
(另见:维基百科:Logjam)
一些要测试的 DH 密钥长度在这里:
但是:Chrome 45 已宣布最低 1024 位。(我认为这意味着 2015 年 9 月。但我不太了解 Chrome 发布模型。)