如果获取到私钥,旁路监听数据包是否可以解密ssl
如果了解通信双方SSL/TLS是如何协商出用户加密/解密密钥(Session Key),可能就不会有类似的问题。那么SSL/TLS是如何协商Session Key的?
TLS 1.2 及更古老版本
有两种方法:
RSA Key Exchange客户端单向认证了服务器的真实身份,并进而信任服务器的RSA证书的公钥(Public Key)。
客户端使用伪随机函数,随机生成不小于40字节的字符串,简称 Pre-Master Key。
客户端使用服务器的公钥Public Key,加密 Pre-Master Key,并发给服务器。
服务器使用与Public Key一一对应的私钥(Private Key)解密并得到明文的 Pre-Master Key。
自此,通信双方公共拥有相同的 Pre-Master Key。
再结合双方在通信过程中,互相交换的明Nonce, 双方共同拥有三个值:
Pre-Master Key客户端的Nonce服务器的Nonce双方使用协商出的、相同的Hash算法,共同计算出相同的 Master Key。
以Master Key做为素材,共同推导出和安全有关的Key:
Session KeyHMAC Key前者用于双方加密/解密使用,后者用于数据校验使用。
很显然,这里的关键要素就是服务器的私钥(Private Key),一旦泄露,所有该网站使用该方法的加密历史数据、现在的数据、将来的数据,将面临被破解的风险。
2. DHE Key Exchange
DHE: Diffie-Hellman Ephemeral的缩写,一次性DH密钥交换算法。
客户端单向认证了服务器的真实身份,基于数字证书的认证。
双方交换各自的DH一次性公钥(动态计算,只用于该通信过程,并不保存),还有各自的随机码Nonce。
双方拿着对方的一次性DH公钥、自己的一次性DH私钥,计算出 Pre-Master Key
然后拿自己的Nonce、对方的Nonce,和上个方法一样,计算出 Master Key。
其它过程雷同,略。
在这个方法里,服务器的私钥只用于签名双方DH消息交互过程,即保证对方发送过来的DH公钥在传输过程中,没有被第三方篡改,仅此而已。
第三方即使有了服务器的私钥,也无法得到Pre-Master Key,无法得到Session Key,更无法解密用户的加密数据。
第三方如果要破解,需要拥有任何一方的DH私钥。而DH私钥是临时的、一次性的,一旦双方得到Pre-Master Key,就会将其删除,更不会在网络上传输,所以即使截获了所有报文,也无法得到DH私钥。
综上,如果获得了服务器的私钥,方法一可以破解,而方法二无法破解。
TLS 1.3 版本如何,请参考下文末尾:
【如果获取到私钥,旁路监听数据包是否可以解密ssl】 https://mp.weixin.qq.com/s/sIBmWMF5nkCwSex5Ydr6lg
■网友
可以。进行handshake时,client会生成premaster key用public key加密送给server。如果拥有private key之后自然可以解密出premaster key,那计算接下来用于数据通信的master key就不是什么难事了。
■网友
不一定,取决于协商的密钥交换方式。好多人高票回答被误导了,建议大家搜索 Forward Secrecy。
■网友
闲逛发现自己提的问题了挖坟自答下除了私钥外,必须要有双向流量才能完成解密
■网友
刚正好从security essentials 下课,学了一点点。按照你的描述那么就算man-in-middle了吧。你接收到用户加密过的信息,然后将加密过的信息传输给目标服务器,目标服务器会会以为你是真实的用户,然后也会给你加密过的反馈。这样一来二去是不是就能到加密的方式了吧 。是这样吗
推荐阅读
- 如果你的多肉出现这个长势,要注意这个细节,多肉才会越来越美!
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 有啥方法,网站,项目可以自己练习计算广告学
- 某公司推出他们的3C产品,如果你是这个公司的电子商务运营主管,前期的运营你打算怎样开展这些工作
- 中年|如果汽车亏电:自动挡汽车能「推车点火」吗?
- 如果把DNS从godaddy转到DNSPOD是不是所有的二级域名都要重新设置,然后等这个各个ISP的缓存重新解析啊
- 电商的初级产品经理怎样快速获取需求
- 插电源时,笔记本用不用拔电池?
- 如果做好一个手机股票软件
- 通过物理地址和IP地址能监控到啥
