行业新闻与博客

代码签名证书安全要求即将发生变化

代码签名证书安全要求即将发生变化

 代码签名证书安全要求即将发生变化

代码签名证书安全要求即将发生变化

CA/B 论坛强制要求代码签名证书的最小密钥大小在 2021 年 6 月 1 日增加到 3072 位

代码签名证书的世界即将发生变化。从 2021 年 6 月 1 日开始,代码签名证书的最小密钥大小将从 2048 位增加到 3072 位。CA/B 论坛强制执行的更改旨在提高证书安全性,并更好地为未来的技术进步做好准备,从而提高计算能力。 

软件开发人员使用代码签名证书对他们的产品进行数字签名——无论是应用程序、驱动程序、可执行文件还是其他程序。签名作为一种手段,让最终用户验证他们正在下载和安装的产品实际上来自软件的创建者,并且代码在传输过程中没有被第三方更改或篡改。

签名可以在很长一段时间内有效(我们说的是几年),与此同时,技术的进步可能会使这些较旧、较弱的加密密钥容易受到蛮力攻击。因此,使这些签名面向未来的一种方法是增加代码签名证书使用的最小密钥长度。

那么,密钥长度究竟是什么意思呢?这种变化究竟意味着什么?最重要的是,这会对您当前和未来的证书产生什么影响?

让我们来分析一下。

密钥长度是什么意思?

在我们深入了解密钥长度变化的细节之前,让我们先快速了解一下密钥长度的含义、密钥的用途以及它们的强度如何随时间变化。

密钥长度是证书相关密钥对中的位数(用于签名和加密等加密功能)。基本上,它设置了算法安全性的上限,更大的密钥意味着更强的数字签名。任何算法理论上都可以被足够强大的计算机的蛮力攻击破解,而密钥长度的增加意味着破解它所需的处理能力也会上升。

这种增加也不是线性的——例如,当 RSA 密钥的大小加倍时,相关的解密任务将呈指数级变慢。因此,理想情况下,所需的最小密钥长度应该足够长,以至于它需要一定程度的计算能力,而现实世界中尚不存在这种能力来对其进行强力破解(理想情况下,强力破解在很长一段时间内仍然不可行)时间)。

毕竟,有许多软件产品在最初发布多年后仍在广泛使用。如果攻击者只是能够等待处理器技术改进,然后能够暴力破解代码签名证书,那肯定不是一件好事。然后他们就可以在没有人知道的情况下恶意篡改应用程序。这是最新密钥长度变化背后的主要动机——使我们当前的数字签名面向未来并确保它们在未来几年仍然能够保持不变。

代码签名密钥长度的变化究竟是什么?

现在(6 月 1 日之前)代码签名证书的最小密钥长度是 2048 位。目前,2048 位 RSA 密钥被认为是安全的,而 1024 位密钥不再被认为足够安全。不久前 1024 位密钥成为标准——例如,8 年前,SSL 证书的密钥长度要求从 1024 位跃升至 2048 位。因此,假设 2048 位密钥在五到十年后不会削减它是完全合理的。

美国国家标准与技术研究院 (NIST) 也有同样的感受。他们于 2020 年 5 月发布了 NIST SP 800-57,主要内容是不建议在 2030 年之后使用 2048 位 RSA 密钥。

证书颁发机构浏览器论坛由证书颁发机构、浏览器和操作系统供应商以及其他与 PKI 相关的应用程序供应商组成,负责密钥长度的更改。在分析了 NIST 的建议后,他们在 2020 年初投票决定继续增加密钥长度,经过几次延迟(主要是为了让供应商有更多时间更新他们的基础设施,从而能够发布新的 3072 位证书)后,他们决定了 2021 年 6 月 1 日的实施日期。

这如何影响代码签名证书用户?

2021 年 6 月 1 日之后颁发的证书将自动链接到 3072 位根证书,因此最终用户无需担心购买不同的产品或指定 3072 位信任链。

如果您有现有的代码签名证书,那么您仍然可以使用 2048 位版本,只要它们是在 2021 年 6 月 1 日之前颁发的。

如果您在 2021 年 6 月 1 日之后重新颁发或更新现有证书,那么在生成 CSR 时,您需要确保指定的是 3072 位 RSA 而不是 2048 位。

即使您拥有在 6 月 1 日之前颁发的 2048 位证书,我们仍然建议您尽快重新颁发证书以切换到 3072 位。

如何找到我当前的密钥长度?

不确定您现有的某些证书的密钥长度?检查密钥大小很容易,只需点击几下即可找到。例如,在 Windows 上,您只需导航到证书文件,右键单击它,然后选择“属性”。然后,转到“详细信息”选项卡,您应该会看到一个显示“公钥”的字段。它应该说“RSA”,然后在括号中包含以位为单位的特定密钥长度,如下所示:

代码签名属性
Windows 10 中代码签名证书的属性窗口。

如果您在那里看到 2048 位,那么您应该考虑在 6 月 1 日之后从新的 3072 位根之一重新颁发您的证书。

保护代码的关键

虽然密钥长度的增加不是一个微不足道的变化,但它不应对最终用户产生不利影响。软件开发人员需要了解这一变化,尤其是在更新现有代码签名证书时。其余的工作由证书颁发机构和操作系统供应商在幕后完成。总而言之,为提高安全性而付出的代价很小,改变所提供的安全性可以使我们的应用程序在未来几年内免受攻击者的干扰。

需要帮助吗?联系我们的支持团队 在线客服