【中危】Sweet32: TLS 64位分组密码生日攻击(CVE-2016-2183)

最近好几个客户服务器被发现Sweet32,经过检查,都是受DES/3DES影响导致的,解决办法就是禁用了DES/3DES。

验证方式:nmap -sV --script ssl-enum-ciphers -p 443 test.com

 

以下是我从网络上找到的一些信息:

概述
分组密码在SSL/TLS协议中的特定配置会遭到碰撞攻击。

背景
传统64位块分组密码在使用CBC模式时很容易被碰撞攻击。SSL/TLS协议所有支持使用3DES对称加密的密码套件都受影响(例如 ECDHE-RSA-DES-CBC3-SHA)。红帽企业版Linux6和7自带的OpenSSL版本中,基于DES的密码套件的优先级在AES-256和AES-128之下,因此只有显式禁用 AES-128 和 AES-256,DES密码才会启用。红帽企业版Linux5自带的OpenSSL版本中,基于DES的密码套件的优先级在AES-256和AES-128之间,因此只有显式禁用 AES-256,DES密码才会启用。
分组密码的安全性取决于密钥长度。因此,对分组密码最好的攻击是穷尽搜索密钥空间,其具有2^k复杂度。然而当分组密码使用如CBC模式加密大数据时,块长度对安全性的影响也不可忽视。
当使用CBC模式时,在使用同一密钥加密2^(n/2)块数据后将存在生日攻击,两密文块能够发生碰撞。这意味着存在相同的输入。结合几个条件(下面讨论)将可用于从加密数据中获取明文。

攻击的实用性
1、首先,DES/3DES 是 SSL/TLS 中唯一使用64位块的密码。如前所述,包含3DES的密码套件优先级低于其它密码套件。
2、要攻击64位分组密码,至少需要获取32GB以上密文。在SSL/TLS的情况,这需要在一个会话中完成(新会话会重商对称密钥)。因此HTTPS长连接会受影响。
3、在许多情况下,仅恢复两明文块之间的异或是不足以构成有实际影响的攻击的。但若满足下面条件,则可实施攻击:
·同一秘密被重复发送
·已知部分明文
4、研究论文中提到的攻击的概念证明中,假设了一些认证令牌在整个通信过程中在服务器和客户端之前传递(令牌可以是一个用于基本身份验证的凭据)。此时攻击者在被攻击网站运行一个恶意的 JavaScript 脚本,通过暴力攻击来获取凭据。

缓解措施
1、SSL/TLS配置中 AES 优先级应高于 DES。红帽企业版Linux6和7自带的OpenSSL版本中已经这样做了。
2、红帽企业版Linux5自带的OpenSSL版本中,3DES的优先级在AES-256和AES-128之间,因此不应禁用基于 AES-256 的密码套件。
3、使用OpenSSL的服务器,不应禁用AES-128和AES-256密码套件。红帽企业版Linux自带的Apache版本使用默认密码串,其中AES优先于DES/3DES密码套件。

解决方案
1、这一缺陷出于DES/3DES密码的设计,并不是实现问题。
2、这个缺陷不直接影响红帽企业版Linux5、6、7中的任何密码库(OpenSSL,NSS和GnuTLS),因在默认密码列表配置中有若干优先级高于3DES的更强的密码套件。
3、对于红帽企业版Linux5,不要禁用基于 AES-256 的密码套件。对于红帽企业版Linux6和7,不要禁用基于 AES-128 或 AES-256 的密码套件。

上游的安全修复:
OpenSSL:
OpenSSL 已评估为低危级别的安全问题,他们已在1.0.2分支中将3DES密码套件由类别“高”移至“中”,并将在即将发布的新版本中默认设为禁用。
NSS:
Mozilla正为所有密码套件做数据限制。

相关问题
上游 OpenVPN 也易受 Sweet32 攻击(CVE-2016-6329)。红帽的OpenVPN实现不受该缺陷影响

posted @ 2019-08-14 17:29  Lee#J1Feng  阅读(6064)  评论(0编辑  收藏  举报