我很好奇RSA密钥交换算法对Diffie Hellman密钥交换算法不容易受到的攻击是什么?我知道Diffie在中间攻击中很容易被人攻击,但是当与RSA进行密钥交换时,它是否也容易受到Diffie不是的攻击?
发布于 2022-12-15 01:46:59
假设您正在讨论TLS或SSH (v1和v2)协议中的实现,本质上的区别在于,各种形式的Diffie-Hellman密钥交换(无论是椭圆曲线还是有限域)提供了前向保密,而RSA密钥交换机制则不提供前向保密。
完美的前向保密意味着,如果连接后,双方正确地销毁了与连接相关的所有秘密,则即使其中一方或双方后来被破坏,也不能比蛮力更容易解密连接。
本质上,对于DH,双方选择一个随机密钥对,在这两个协议中,随机盐类也被产生。在TLS中,服务器签名它的公钥或到目前为止交换的消息的散列(取决于版本),在SSH中,服务器签名从成功的密钥交换派生出来的值。在这两种情况下,假设服务器的公钥和签名被正确验证,中间人攻击是不可能的。
从技术上讲,TLS在TLS 1.3之前使用静态Diffie-Hellman证书提供密码套件,而这些证书并不提供完美的前向保密。然而,作为一个实际问题,这些都是极为罕见的使用。这种每次都使用新键的变体称为短暂的Diffie-Hellman密钥交换,或称为DHE (椭圆曲线变体的ECDHE)。
使用这些协议中使用的RSA密钥交换,客户端基本上生成一个随机值,并使用服务器的密钥对其进行加密。此值与客户端和服务器随机值一起用于派生共享机密。这并不能提供完美的前向保密,因为如果服务器稍后被破坏,则可以恢复加密的值。在这里也不可能发生中间人攻击,前提是服务器的公钥被正确验证。
正如注释中提到的那样,可以为此使用一个短暂的RSA密钥,但是由于执行有效的原始性测试,生成RSA密钥对是很昂贵的。对于DH,可以使用单一的、安全的、预先计算的组,并且各方只需在给定的范围内生成单个随机值。这比生成新的RSA密钥高效得多,而且比生成新的RSA密钥要快得多,而且更容易验证为安全,因此每个人都使用临时DH而不是短暂的RSA。
在TLS 1.3中,RSA密钥交换不再可用。完全前向保密的好处被认为是实质性的,并且只有(EC)DHE和预共享密钥是可用的。类似地,在SSH v2中,RSA密钥交换实际上是未使用的,取而代之的是DHE和ECDHE。RFC 4432定义了短暂的RSA密钥交换,但我不知道任何实际提供它的实现,甚至没有兴趣提供它,它实际上已经死了。
https://crypto.stackexchange.com/questions/103276
复制相似问题