SSL 加密(用于 HTTPs)和安全与性能

信息安全 tls
2021-08-13 19:11:41

我正在研究使用各种 SSL 证书时的服务器性能。特别是 1024 位与 2048 与 4096。事实证明,这有很大的不同!

我最近听到很多关于供应商默认发布 2048 证书的讨论,我想知道社区中的共识是什么。

我的思路是,对于发送联系表单数据之类的事情,1024 可能还可以,但对于电子商务交易和/或登录,2048 会更合适。4096有好的用例吗?

对敏感信息使用 1024 位有何影响,是否存在更大的攻击风险?

澄清一下:我在 AWS 负载均衡器上进行性能测试时遇到了这个问题,是的,密钥大小确实产生了很大的影响,是的,我已经处理过期望大量流量突发的客户,所以这是一个合理的担忧只是一个假设。

1个回答

从 1024 位切换到 2048 位意味着使用非对称私钥的操作将占用大约 8 倍的 CPU。一个“普通 PC”内核每秒可以执行大约 1000 次 1024 位 RSA 操作,对于 2048 位 RSA,每秒可以执行大约 125 次。请注意,RSA 仅在 SSL 连接开始时使用,而不是之后;此外,在 SSL 中,有一个简短的握手,客户端和服务器通过它重用之前握手的加密交换。Web 浏览器和 Web 服务器经常这样做,因此 SSL 中的 RSA 成本实际上是针对新客户端(即自上次关闭并重新打开浏览器后未连接的客户端)。因此每秒需要一百个左右的新客户端实际查看与服务器上的密钥大小相关的性能问题。并不是所有的 Web 服务器都可以拥有这样的上下文。

我鼓励在实际的现实环境中制定措施。微基准(“每秒多少次解密?”)并不总是好的预测指标。

至于安全性,1024 位 RSA 至今未破。当前的破损记录是RSA-768一些聪明人试图将 RSA 密钥长度等同于对称密钥的稳健性;有关详细信息,请参阅本网站这种比较并不完美,因为破解大的 RSA 密钥涉及一些使用非常快的 RAM 的操作,这与对对称密钥的穷举搜索(一个不需要 RAM的令人尴尬的并行任务)完全不同。然而,1024 位 RSA 在某种程度上相当于 77 到 80 位对称密钥。对于偏执狂来说,这还不够,但仍然超出了目前部署的技术已证明可以破解的范围。

NIST 建议现在(自 2010 年起)使用 2048 位 RSA 密钥。如果您使用 1024 位 RSA 密钥,您的网站不会以这种方式被破坏(当它被黑客入侵时,它将通过预先密码分析之外的另一个渠道);但是,您的客户可能会认为使用不合时宜的小钥匙,您并不真正关心他们。它更多的是关于公共关系而不是安全......

如果您确实在使用 2048 位 RSA 密钥时遇到实际性能问题(我不相信,但是,嘿,奇怪的事情发生了),我鼓励您研究椭圆曲线。具有 P-256 NIST 曲线ECDHE_ECDSA 密码套件将比 RSA-1024 更快,并且与 RSA-2048 一样强(可以说强于)。