3072 位 RSA 密钥将成为代码签名证书新的密钥长度标准。CA/Browser Forum 此前采纳了 NIST 的建议,采用 3072 位密钥长度。该建议指出,需要更强的密钥来提升 SSL 安全性,因此 CA/Browser Forum 基线规范明确要求,自 2021 年 6 月 1 日起,代码签名证书与时间戳证书均采用 3072 位密钥长度。RSA 密钥用于对软件及其更新进行签名,更长的密钥意味着 SSL 行业内更高等级的安全保障。

关于密钥长度

在讨论密钥长度的变化之前,我们先来了解什么是密钥长度。密钥长度以比特(bit)为单位表示一个数值,证书中的密钥用于签名和加密用途。当 NIST 建议增大密钥规模时,意味着更稳健的数字签名即将到来。增大密钥规模的目的是通过强大的数字签名能力,保障数字签名的未来安全。要破解如此增强的密钥,需要更强的计算处理能力,因为更大的密钥在解密时耗时更长。由于代码签名证书密钥长度的增加,攻击者无法破坏软件代码的完整性,也无法篡改软件。

密钥长度的变化

早先的 1024 位密钥长度被认为对 SSL 证书足够安全,但随着技术与计算机处理器的发展,NIST 建议使用 2048 位密钥长度——这几乎是前一代密钥长度的两倍。也就是说,我们用了八年时间才从 1024 位升级到 2048 位。如今,NIST 在 2020 年 5 月发布的 SP 800-57 Part 1 Rev. 5 中建议使用 3072 位密钥长度,以进一步提升安全等级。CA/Browser Forum 也在 2020 年投票通过了 NIST 的这项建议,并同意自 2021 年 6 月 1 日起启用新密钥。

代码签名证书用户需要注意什么?

  • 已经持有代码签名证书的用户无需担心,当前证书仍可继续使用 2048 位 RSA 密钥。
  • 在 2021 年 6 月 1 日之后申请代码签名证书的用户,将获得最新的 3072 位 RSA 密钥。
  • 不过,如果现有用户尝试重新签发(reissue)或续费(renew)现有证书,则应当指定 3072 位密钥长度,而非 2048 位。
  • 因此,如果你正在使用 2048 位密钥长度的证书,明智的做法是重新签发当前的代码签名证书,以享受最新的 3072 位密钥长度。

如何在证书中查看密钥长度

在浏览器中查看密钥长度非常简单。下面以 Windows 系统为例,给出查看证书所应用密钥长度的步骤:

  • 首先点击搜索图标,输入 .exe(例如 Firefox Installer.exe)。
  • 点击该 exe 文件,会弹出对话框,在其中点击"显示更多详细信息"(Show more details)。
  • 点击"显示更多详细信息"链接,即可看到"显示有关发布者证书的信息"(show information about the publisher's certificate)。
  • 在弹出的证书框中,可以找到三个选项卡:常规(General)、详细信息(Details)和证书路径(Certificate Path)。
  • 点击"详细信息"选项卡,向下滚动到"公钥"(Public key)字段。
  • 在"公钥"字段对应的"值"(Value)列中,即可看到密钥长度(2048 或 3072 位)。

注意:如果你的证书详情中显示的是 2048 位密钥长度,那么现在是时候重新签发当前代码签名证书,换发为新的 3072 位密钥长度证书了。

结语

密钥长度的变化对代码签名用户而言是受欢迎的一步,不会对用户造成任何损害。开发者应当趁此机会,以最新密钥长度重新签发或续费代码签名证书,让软件安全更加稳固。一旦你重新签发证书,证书颁发机构与操作系统厂商会处理技术层面的事宜——他们已经按照新密钥长度更新了基础设施,能够签发带有 3072 位密钥长度的新证书。不要久等,尽快为你的代码签名证书换上更强大的 3072 位密钥长度吧。