为什么浏览器弃用 1024 位 RSA,但保留 SHA-1?

信息安全 网页浏览器 证书颁发机构 RSA
2021-08-31 03:38:23

我正在阅读 Mozilla 的安全博客Phasing out Certificates with 1024-bit RSA Keys实际上,一些浏览器正在弃用 CA 和从属 CA 的 1024 位 RSA,因为证书必须承受 10 到 30 年的攻击。

据我所知,由于整数分解和数字字段筛选的进步,1024 位 RSA 提供了大约 80 位的安全性。大多数攻击者无法实现 80 位安全性。

由于 Marc Steven 的HashClash,SHA-1 提供了大约 61 位的安全性61 位的安全性在许多攻击者的范围之内,尤其是在Amazon 的 EC2OpenStack 的 Nova上的计算时间如此低廉的情况下。

我知道对加密的两个现实生活中的攻击是(1)德州仪器签名密钥,它包含一个 512 位密钥;(2) Flame,它利用了弱/受伤签名算法上的碰撞。从 TI 那里,我们知道攻击者将尝试分解具有 60 位左右安全性的密钥。从Flame我们知道,当摘要函数的有效安全性在60位左右时,攻击者就会攻击摘要函数。

为什么浏览器不推荐使用 1024 位 RSA 的 CA 和从属 CA,但保留 SHA-1?

2个回答

破坏 CA SHA1 签名不会让您获得任何好处:您可以重新创建与合法证书具有相同签名的公共证书,但合法证书的公钥仍将用于验证证书,因为它存储在浏览器中。

要成功伪造证书,您需要破坏以下之一:

  • 链的 RSA 私钥
  • 中间权威的校验和
  • SSL/TLS 证书的校验和

校验和不一定必须使用与根 CA 相同的算法:使用 SHA1 散列的根 CA 可用于签署使用 SHA256 散列的 TLS 证书。

由于具有前向保密性的密码套件并未普遍使用,因此只要通信内容需要保持安全,终端实体证书上的 RSA 密钥就需要保持安全。另一方面,哈希函数只需要在验证证书时是安全的。

此外,对于散列函数,我们必须区分针对不同类型攻击的安全性(与 RSA 不同,它几乎要么被分解,要么不被分解,中间没有)。对哈希函数发起的最简单的攻击是简单的碰撞攻击,但它也是最没用的。对散列函数最有用的攻击将是具有灵活前缀和后缀的原像攻击,但即使是 MD5 也没有人实现这一目标。介于两者之间的是具有不同选择前缀和共同选择后缀的冲突攻击。这些可以与发行政策较差的 CA 结合起来构建伪造证书,但这当然不是一件容易的事。

然而,对于中间和最终实体证书,主要浏览器正在推动逐步淘汰 SHA1。对于根证书,摘要算法基本上是无关紧要的。由于客户端已经在其存储中拥有根证书,因此不需要从不受信任的来源获取它。