我知道DHE-RSA是(用一句话)用RSA密钥签名的Diffie Hellman。 DH用于前向保密,而RSA可以防止MITM,但是ECDHE-RSA中的椭圆曲线到底在哪里使用?与DHE-RSA相比,ECDHE-RSA有哪些优势?
#1 楼
ECDHE套件使用椭圆曲线diffie-hellman密钥交换,而DHE套件使用常规的diffie-hellman。在两种情况下,这种交换均以相同的方式与RSA签署。ECDHE的主要优点是它比DHE快得多。这篇博客文章讨论了SSL上下文中ECDHE与DHE的性能。
#2 楼
要添加有关@CodesInChaos所说的内容的一些信息,请执行以下操作:使用ECDHE而不是DHE时,您可以获得以下优点: >更好的性能。对于给定的安全级别,ECDHE更快。 @CodesInChaos指向提供数字的文章;另请参阅此答案,以了解为什么椭圆曲线可提供更好的性能。
消息更小。具有224位曲线的ECDH公钥将在56个字节上进行编码,而强度相似的经典DH公钥必须使用2048位模数,并使用256个字节。由于SSL握手中有两个此类消息,因此ECDHE可以为您节省大约400个字节。数量不多,但在某些情况下可以有所作为。
生物多样性。 ECDH依赖于一个数学问题的难度,该数学问题不同于经典DH所使用的数学问题。在某种程度上,经典DH可被视为ECDH的一个非常具体的子情况(模数的质数与反常曲线中的曲线点加法同构),因此我们可以提出一个关于ECDH固有至少如何强大的争论DH(如果ECDH损坏,DH也是如此)。实际上,有用于解决离散对数的次指数(即更快)算法,这就是为什么对于普通DH我们必须使用2048位模数而不是224位模数的原因;而尚无此类“更快”的算法能打破椭圆曲线变体。
时尚性。椭圆曲线很酷。这是一个重要的优点,尽管通常使用看起来更严肃,更乏味的术语(“合规性”,“批准的算法” ...)来表示。
清洁。如果强制使用ECDHE,您将自动拒绝不知道如何执行ECDHE的旧实现。如果将ECDHE用于Web服务器,则不必再担心IE 6.0或7.0了! ECDHE的密码学论据是杀死早该早就化石的恐龙的好借口。
评论
不幸的是Opera即使在最新版本中也不支持ECC :(
– CodesInChaos
2013年1月11日19:42
ECDHE还可以抵抗最近发布的针对TLS中传统DH密码套件的攻击。
– kravietz
2015年10月20日在10:15
+1代表“椭圆曲线很酷”,+ 1代表化石IE6.0和7.0 :)为什么有时说ECDH而不是ECDHE?那最后一个E是做什么用的? (“交换”?)
– El Mac
16年7月21日在9:30
E(在DHE和ECDHE中均表示“短暂”)。这与以下事实有关:用于密钥交换的秘密是为每个会话新生成的,因此提供了前向保密性。
– Peter Green
17年1月1日,下午1:54
如果我们为DH和ECDH都使用了可比较的密钥大小,但“如果ECDH被破坏,DH也会被破坏”,这将是正确的。因此,对两者都起作用的一般攻击实际上对ECDH的危害要大于对DH的危害。
– Peter Green
17年1月1日,下午1:56
#3 楼
我看到两个问题“ ECDHE-RSA中的椭圆曲线到底在哪里使用?”
我看到这是“如何在ECDHE_RSA中为RSA时使用椭圆曲线吗?”。好吧,请检查RFC 4492第2节ECDHE_RSA-很好。从本质上讲,服务器证书是RSA证书(即具有长期RSA密钥),但是在TLS握手过程中,服务器证书与DH同意了临时/临时/星历(E为DHE)EC公钥。因此,可以通过服务器证书的RSA签名来确认长期的真实性,但临时密钥是通过临时EC密钥派生的(然后生成对称密钥)。
ECDHE-RSA有何好处? DHE-RSA?
其他答案中已经解决了此问题。
#4 楼
ECDHE-RSA和DHE-RSA有什么区别?
让我们从相似之处开始。
两种密码套件都使用Diffie-Hellman进程的临时密钥。 (即名称中的“ E”)。这提供了前向机密性。
两个密码套件都使用RSA签名服务器的外围密钥,从而保护交换免受中间人攻击(即RSA的名称)。
现在就开始区别。
ECDHE-RSA在椭圆曲线组上使用Diffie-Hellman,而DHE-RSA在模数-基数组上使用Diffie-Hellman。 br />
ECDHE-RSA优于DHE-RSA有什么好处?
有一种众所周知的攻击适用于常规DH,但不适用于ECDH。
结果是要获得相同级别的假定安全性* DH需要的组要比ECDH大得多。这意味着计算速度变慢,网络流量增加。
进入混乱的实践世界时,某些客户端仅支持常规DHE,而其他客户端仅支持ECDHE。此外,如果DHE与大于1024位的质数一起使用,则Java 7将无法握手**。
因此,如果您想要广泛的客户端兼容性,强大的加密技术以及比您更多的客户端提供尽可能多的转发保密性应该使用ECDHE作为首选选项,并选择DHE(具有适当的大素数)作为第二选择。
*在当前已知的最佳攻击条件下,破解它需要大量的计算工作。
**没有人公开承认要破解它,但是怀疑资源丰富的攻击者可以这样做。
评论
我注意到所有安全站点都不使用椭圆曲线。他们赞成使用RSA进行密钥交换。@ron向他们投诉他们的错误选择。使用DHE或ECDHE而不是RSA进行密钥交换可以大大提高安全性(Lavabit是一个突出的例子)。如果您不信任ECC,请使用DHE_RSA而不是纯RSA。
@CodesInChaos:只需确保您的服务器不对DH参数进行硬编码,并且仅允许1024位参数(就像2.4.7之前的apache一样)。
如果可能的话,我更喜欢RSA而不是ECDHE,以便于维护和故障排除。仅使用Wireshark中的私钥,我可以使用非DHE密码更轻松地解密SSL连接错误消息(“加密的警报”)。记录会话密钥以解密DHE更加痛苦。
尽管解密非DHE密码更容易,但是如果您有权访问服务器私钥,则出于完全相同的原因,它会删除前向保密性,从而使解密更为简单。另外,该选项将随TLSv1.3一起删除,因此记录会话密钥将是唯一的可能性。