新手053688 发表于 2024-5-9 16:39

ECDHE算法为什么不能旁路解密

HTTPS 常用的密钥交换算法有两种,分别是 RSA和 ECDHE算法。
       RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,证书对应的私钥泄漏后,之前抓包的报文都能被解密,所以在TLS 1.3中RSA已经废弃了,现在很少服务器使用。
       而 ECDHE 算法具有前向安全性,目前正在被大部分网站广泛使用。也就意味着一个解密系统,如果不能对ECDHE算法解密,那么对大部分的HTTPS网站均无法解密,密文中包含的攻击信息也就难以识别。
      ECDHE算法是不能旁路解密的,为什么?
       从SSL/TLS握手时,私钥的用途(RSA、ECDHE)来看。在各种加密协议中,均会使用到各自的私钥,使用RSA来做密钥交换和使用ECDHE来做密钥交换的使用方式分别是:
       对于RSA来说,客户端生成预主密钥,然后用公钥加密再发给服务器,服务器用私钥来解密得到预主密钥,然后由预主密钥生成主密钥,再由主密钥生会话密钥,最后用会话密钥来通信。
       表面看是实现了密钥交换,但实际上,会话密钥还是在网络中进行了传输,因此每次数据表中都可以得到。有了服务端的证书和私钥,就可以解密了。只要服务端不换证书,那么所有证书范围内的会话都可以进行解密。对于旁路监听流量,拥有全量数据包的情况下,是可以全部解密的。
       而对于ECDHE来说,客户端和服务器双方是交换椭圆曲线参数,私钥只是用来签名,这是为了保证这个消息是持有私钥的人给我发的,而不是冒充的。双方交换完参数之后生成预主密钥,再生成主密钥和会话密钥。
       ECDHE在进行会话密钥协商时,第2和第3次握手中,都是服务端与客服端生成自己的临时公私钥对,在网络中交换时,仅仅只是传输了公钥,会话密钥完全在本地计算,而且双方的私钥也未暴露在网络中,所以只知道证书与私钥,也是不能恢复出会话密钥的。
       ECDHE中私钥仅仅用于签名,并不用于解密,所以无法使用私钥进行解密。
       所以解密设备需要串接在网络中,参与密钥协商的过程。
页: [1]
查看完整版本: ECDHE算法为什么不能旁路解密