在3月6日星期三,OpenSSL团队在ChaCha20-Poly1305中发现了一个低严重性漏洞,这是一种AEAD密码,它错误地允许将一个随机数设置为最多16个字节。 OpenSSL团队表示,ChaCha20-Poly1305需要为每个加密操作提供唯一的随机数输入。
RFC 7539规定nonce值(IV)应为96位(12字节)。 OpenSSL允许变量nonce长度,并且如果小于12个字节,则前缀填充0字节。但是它也错误地允许将随机数设置为最多16个字节。在这种情况下,只有最后12个字节是有效的,并且忽略任何其他前导字节。
OpenSSL版本1.1.1和1.1.0受此问题的影响。但是,此问题不会影响OpenSSL 1.0.2。
OpenSSL博客声明使用ChaCha20密码使nonce值唯一。 “使用重用的nonce值加密的消息容易受到严重的机密性和完整性攻击。如果应用程序将默认随机数长度更改为超过12个字节,然后更改为nonce的前导字节,期望新值为新的唯一nonce,则此类应用程序可能会无意中使用重用的nonce加密消息“,博客文章说。
此外,长密码中忽略的字节不包含在该密码的“完整性保证”中。这意味着任何依赖于长nonce的这些忽略的前导字节的完整性的应用程序可能会受到进一步的影响。
任何OpenSSL内部使用此密码(包括SSL/TLS)都是安全的,因为没有这样的用途设置如此长的nonce值。但是,直接使用此密码并将非默认随机数长度设置为长于12个字节的用户应用程序可能容易受到攻击。
要详细了解此问题,请访问OpenSSL博客文章。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx