Raccoon攻击打破特定条件下TLS
Raccoon攻击是TLS规范中影响HTTPS和其他基于TLS和SSL的服务的定时漏洞。这些基于TLS的协议允许用户在浏览网站、使用邮箱和发送即时消息时不带第三方地读取通信。
Diffie-Hellman(DH)密钥交换是TLS连接中的密钥交换方法。通过使用DH交换,TLS通信双方可以随机生成密钥并计算公钥:gamodp和gbmodp。这些密钥被发送到TLSKeyExchange(密钥交换)消息中。一旦双方接收到密钥,客户端和服务器都会使用特殊的密钥派生函数来计算共享密钥gabmodp(参数密钥)。
浣熊攻击利用了TLS规范和TLS 1中的侧通道。2和以前的版本指定,在进一步计算之前,需要删除Premaster键中的所有零零字节。这将导致预主键被用作密钥派生函数的输入,该函数是基于不同定时配置的散列函数,精确的定时策略可能允许攻击者为TLS服务器构造先知(Oracle)。Oracle可以告诉攻击者计算的主密钥是否以0开头。例如,攻击者可以侦听由客户端发送到服务器的ga,以确定最终的预主秘密是否以0开头。
从premaster键获取1字节对攻击者没有帮助。 然而,假设攻击者拦截包含值ga的客户端密钥交换(密钥交换)消息,那么攻击者就可以构造与GA关联的值,并将其发送到TLS抓地力中的服务器。 具体来说,攻击者可以构造值gri*ga,生成premastersecretgri*b*gab。 根据服务器的定时行为,攻击者可以找到premastersecret。 从0开始
如果我是管理员,应该如何修复此漏洞?
浣熊是一种很难利用的复杂定时攻击,它还需要解密真实的TLS会话。
攻击者可以使用浣熊攻击来解密用户和服务器之间的会话,包括但不限于用户名、密码、信用卡号码、邮件、即时消息、敏感文件等。
攻击的目标是TLS1.2和以前版本的Diffie-Hellman密钥交换。成功的攻击需要两个先决条件:
攻击者需要执行精确的计时测量,以确定DH共享密钥的第一个字节是否为0。
浣熊攻击能偷走私钥吗?
不,每一个要被攻击的连接都必须被分开攻击。
TLS1.3受影响吗?
不受影响。在TLS1.3中,DHE密钥套件中以0开头的字节和键不会被重用。然而,也有允许密钥重用的TLS1.3变体,如ETS和eTLS。如果在这些变体中重用临时密钥,则会引发微体系结构的侧通道,攻击者可能会成功地利用这些变量。因此,研究人员不推荐使用这些变体。
包括微软在内的几家供应商为该漏洞分配了CVE编号。
F5分配的CVE编号是CVE-2020-5929,许多F5产品允许在没有精确的定时策略的情况下执行特定的攻击变体。此外,F5还建议用户不必重用临时密钥。
OpenSSL分配的CVE编号是CVE-2020-1968。OpenSSL从1.0.2f版本开始默认使用新的DH密钥,因此攻击主要影响OpenSSL1.0.2的早期版本。
Mozilla分配的CVE编号是CVE-2020-12413。这个问题可以通过Firefox中禁用的DH和DHE密文套件来解决。
Microsoft分配的CVE为CVE-2020-1596。由于BearSSL和BoringSSL不支持DH(E)密文套件,因此它们不受此漏洞的影响。