什么是 ECDHE-RSA?

信息安全 tls 密码学 协议 电子抄送
2021-08-12 03:32:25

ECDHE-RSA 和 DHE-RSA 有什么区别?

我知道 DHE-RSA 是(一句话)Diffie Hellman 使用 RSA 密钥签名的。DH 用于前向保密而 RSA 用于防范 MITM,但 ECDHE-RSA 中的椭圆曲线究竟在哪里使用?ECDHE-RSA 与 DHE-RSA 相比有哪些优势?

4个回答

ECDHE 套件使用椭圆曲线 diffie-hellman 密钥交换,而 DHE 套件使用普通 diffie-hellman。这个交换是用 RSA 签名的,在这两种情况下都是一样的。

ECDHE 的主要优点是它比 DHE 快得多。这篇博客文章稍微讨论了在 SSL 环境中 ECDHE 与 DHE 的性能。

添加一些关于@CodesInChaos 所说的信息:

当您使用 ECDHE 代替 DHE 时,您可以获得以下优势:

  • 更好的性能。对于给定的安全级别,ECDHE 更快;@CodesInChaos 指向一篇给出数字的文章;另请参阅此答案,了解为什么椭圆曲线提供更好的性能。
  • 较小的消息。具有 224 位曲线的 ECDH 公钥将被编码超过 56 个字节,而具有相似强度的经典 DH 公钥必须使用 2048 位模数并将使用 256 字节。由于 SSL 握手中有两条这样的消息,因此 ECDHE 为您节省了大约 400 个字节。这不是很多,但它可以在某些情况下有所作为。
  • 生物多样性。ECDH 依赖于数学问题的难度,这与用于经典 DH 的数学问题不同。在某种程度上,经典 DH 可以被视为 ECDH 的一个非常具体的子案例(模素数的计算与异常曲线中的曲线点加法同构),因此我们可以手动讨论 ECDH本质上如何至少与DH(如果 ECDH 坏了,DH 也坏了)。在实践中,存在求解离散对数的次指数(即更快)算法,这就是为什么我们必须使用 2048 位模数而不是普通 DH 的 224 位模数;虽然已知没有这样的“更快”算法可以打破椭圆曲线变体。
  • 时尚性。椭圆曲线很酷这是一个重要的优势,尽管它习惯上用看起来更严肃和无聊的术语来表达(“合规性”、“批准的算法”......)。
  • 清洁。如果您强制使用 ECDHE,您将自动拒绝不知道如何执行 ECDHE 的旧实现。如果您将 ECDHE 用于您的 Web 服务器,您就不必再担心 IE 6.0 或 7.0 了!ECDHE 的密码学论点是杀死这种早就应该化石化的恐龙的好借口。

我看到两个问题

“ECDHE-RSA 中的椭圆曲线到底在哪里使用?”

我认为这是“当它是 ECDHE_RSA 中的 RSA 时如何使用椭圆曲线?”。好吧,检查RFC 4492,第 2 节,ECDHE_RSA - 它非常好。本质上,服务器证书是一个 RSA 证书(即具有长期 RSA 密钥),但在 TLS 握手期间,它改为同意与 DH 的瞬态/临时/临时 EDHE)EC 公钥。因此,通过服务器证书的 RSA 签名确认长期真实性,但临时密钥是通过临时 EC 密钥(然后生成对称密钥)派生的

ECDHE-RSA 与 DHE-RSA 相比有哪些优势?

这已经在其他答案中得到解决。

ECDHE-RSA 和 DHE-RSA 有什么区别?

让我们从相似之处开始。

  • 两种密码套件都使用临时密钥进行 Diffie-Hellman 过程。(即名称中的“E”)。这提供了前向保密。
  • 两种密码套件都使用 RSA 对服务器的临时密钥进行签名,从而保护交换免受中间人攻击(即名称中的 RSA)。

现在来看看区别。

  • ECDHE-RSA 在椭圆曲线群上使用 Diffie-Hellman,而 DHE-RSA 在模素数群上使用 Diffie-Hellman。

ECDHE-RSA 与 DHE-RSA 相比有哪些优势?

有一种众所周知的攻击适用于传统的 DH,但不适用于 ECDH。

因此,要获得相同级别的假定安全性*,DH 需要比 ECDH 大得多的组。这意味着更慢的计算和更多的网络流量。

进入混乱的实用世界,一些客户只支持传统的 DHE,而其他客户只支持 ECDHE。此外,如果 DHE 与大于 1024 位的素数一起使用,Java 7 将无法握手**。

因此,如果您希望与尽可能多的客户端实现广泛的客户端兼容性、强大的密码学和前向保密性,那么您应该使用 ECDHE 作为首选选项,而 DHE(具有适当大的素数)作为第二选择。

* 鉴于目前最知名的攻击,这是破解它所需的计算量。
** 没有人公开承认破解它,但怀疑资源充足的攻击者可以这样做。