Raccoon 攻击是TLS规范中的时序漏洞,影响HTTPS 和其他基于TLS 和 SSL 的服务。基于 TLS 的这些协议使得用户可以在浏览web网站、使用邮箱、发送即时消息时没有第三方可以读取通信的内容。
Raccoon攻击使得攻击者可以在特定情况下打破TLS 加密,读取敏感通信内容。该漏洞是非常难以利用的,需要非常精确的时序测量和特定的服务器配置才可以利用。
攻击概述
Diffie-Hellman (DH)密钥交换是 TLS 连接中交换密钥的方法。通过使用DH 交换,TLS 通信的双方可以随机生成密钥并计算公钥:ga mod p 和 gb mod p。这些密钥会在TLS KeyExchange(密钥交换)消息中发送。一旦双方接收到密钥,客户端和服务器都会计算一个共享密钥gab mod p(参数密钥),用专门的密钥派生函数来派生所有的 TLS 会话密钥。
Raccoon攻击利用了TLS 规范中的侧信道,TLS 1.2及之前版本规定premaster 密钥中的所有零开始的零字节在进一步计算之前都需要剥离。这就会导致premaster 密钥用作密钥派生函数的输入,而这是基于不同时序配置的哈希函数,精确的时序策略可能会使得攻击者可以构造一个TLS 服务器的预言机(Oracle)。Oracle可以告诉攻击者计算的premaster 密钥是否以0 开头。比如,攻击者可以监听客户端发送的ga,重发给服务器,确定最终的premaster secret是否是以0 开头的。
从premaster 密钥中得到 1个字节并不能帮助攻击者。但是假设攻击者拦截了含有值ga 的ClientKeyExchange (密钥交换)消息,那么攻击者就可以构造与ga 相关的值,并在TLS 握手中发送给服务器。具体来说,攻击者可以构造值gri*ga,可以生成premaster secret gri*b*gab。根据服务器的时序行为,攻击者可以找出以0 开头的premaster secret。
FAQ
如果我是管理员,应该如何修复该漏洞?
Raccoon 是一个复杂的时序攻击,非常难以利用,而且还需要解密现实世界的TLS 会话。
攻击者可以获得什么?
攻击者利用Raccoon 攻击可以解密用户和服务器之间的会话,包括但不限于用户名、密码、信用卡号码、邮件、即时消息、敏感文件等等。
攻击影响
攻击的目标是 TLS 1.2及之前版本的Diffie-Hellman 密钥交换。成功发起攻击需要2个先决条件:
· 服务器重用TLS 握手中的公共 DH 密钥。比如,服务器篇日志为使用静态TLS -DH密文套件,或服务器使用TLS-DHE 并为多个连接重用临时密钥。
· 攻击者需要执行精确的时序测量,这样才能找出DH 共享密钥的第一个字节是否为0。
Raccoon攻击可以窃取私钥吗?
不可以。必须对每个要攻击的连接单独发起攻击。
TLS 1.3受影响吗?
不受影响。在TLS 1.3中,DHE 密钥套件中以0开头的字节和密钥都是不重用的。但是存在TLS 1.3变种允许密钥重用,比如ETS和 eTLS。如果这些变种中重用了临时密钥,就会引发微架构的侧信道,攻击者就可能成功利用。因此,研究人员建议不要使用这些变种。
厂商回应
包括微软在内的多个厂商都对该漏洞分配了CVE编号。
· F5分配的CVE编号为 CVE-2020-5929,许多F5 产品都允许执行该攻击的特定变种,无需精确的时序策略。此外,F5 推荐用户不用重用临时密钥。
· OpenSSL 分配的CVE编号为 CVE-2020-1968。OpenSSL从1.0.2f 版本开始就默认使用新的DH 密钥了,因此攻击主要影响OpenSSL 1.0.2 之前版本。
· Mozilla 分配的CVE编号为 CVE-2020-12413。通过在Firefox中禁用DH 和DHE 密文套件可以解决该问题。
微软分配的CVE编号为 CVE-2020-1596。因为BearSSL 和 BoringSSL不支持 DH(E) 密文套件因此不受该漏洞的影响。
更多参见:https://raccoon-attack.com/#paper
完整分析论文下载地址:https://raccoon-attack.com/RacoonAttack.pdf
本文翻译自:https://raccoon-attack.com/如若转载,请注明原文地址: