为什么我会选择 SHA-256 而不是 SHA-512 作为 SSL/TLS 证书?

信息安全 证书 哈希
2021-08-24 06:06:37

我正在寻找使用知名服务更新 SSL(好的,TLS)通配符证书。我需要提供一个 CSR,它是我使用 2048 位密钥创建的。我还需要选择一个签名哈希。该服务提供三种选择:SHA-256SHA-384SHA-512其中,SHA-256是默认值。

这让我很困惑。不是假定更长的哈希值总是更强大吗?我是否有充分的理由希望在较大的 512 上使用较小的 256 位签名哈希,或者这可能只是 UI 错误?是否有一些应用程序还不能使用 512 位哈希?

2个回答

从安全的角度来看,这将毫无意义。实际上,SHA-256 与 SHA-384 或 SHA-512 一样安全。使用当前或可预见的技术,我们无法在其中任何一个中产生冲突,因此您获得的安全性是相同的。

从非安全角度来看,选择 SHA-256 而非较长摘要的原因更明显:它更小,存储和传输所需的带宽更少,内存更少,在许多情况下计算的处理能力更少。(在某些情况下,SHA-512 更快、更高效。)

第三,可能存在兼容性问题。由于几乎没有人使用带有 SHA-384 或 SHA-512 的证书,因此您更有可能遇到不理解它们的系统。现在的问题可能比过去少,但同样,你是在为自己买风险而没有收获。

所以,目前来看,选择 SHA-384 还是 SHA-512 没有明显的优势,但也有明显的劣势。这就是为什么 SHA-256 是现代网站证书的通用选择。

SHA-512相对于 SHA-256的唯一真正优势是抗碰撞性,这个术语在密码学中含义非常狭窄SHA-256 声称 128 位抗碰撞性,SHA-512 声称 256 位。如果或在构建实用的量子计算机时,我们可能需要 256 位的抗碰撞能力。

由于 SSL 证书通常在相对较短的时间内具有到期日期,因此今天获得 SHA-256 证书就可以了,因为它会在实际量子计算机建成之前到期(如果有的话)。

除此之外:

  • SHA-256 输出更短,从而节省了带宽。
  • 不同的硬件有利于不同的功能。SHA-512 通常在 64 位处理器上更快,SHA-256 在 32 位处理器上更快。openssl speed sha256 sha512(在您的计算机上尝试该命令。)
  • SHA-512/256正好位于这两个功能之间——SHA-256 的输出大小和安全级别与 SHA-512 的性能——但迄今为止几乎没有系统使用它。