问题描述

比如Cloudflare,连接用Cloudflare CDN的网站可以看到SSL证书是Cloudflare的证书,所以Cloudflare可以看到所有来往信息。万一Cloudflare CDN服务器安全出问题了,或者Cloudflare本身有一些监控手段,是否意味着存在中间人攻击的安全隐患?

 

 

 

安全隐患肯定存在,服务器的私钥都上传到了CDN服务器上,CDN服务器可以看到双向的加密流量、解密的明文流量。

 

如果CDN服务器厌倦了单调的生活,寻求新的刺激,监控双向进出的流量,甚至修改、替换、删除、注入报文,通信的双方都可能无法检测到报文已经被恶意篡改的事实。

 

不被发现还好,万一被发现了,这些CDN大厂的声誉扫地,谁还敢用这些CDN加速服务器?一夜之间公司就会破产!

 

毁掉信誉远比建立信誉容易

 

一个人一生孜孜不倦做一万件好事,积累了良好的信誉,这是一个漫长的过程。

 

只要这个人做一件致命的坏事,这个人就完蛋了,以前所有的努力统统烟消云散。

 

一个公司的行为更是如此,哪个公司敢拿一个公司的全部身家性命做为赌注,仅仅为了攻击客户的流量,获取一点点小小的利益,这怎么说也是亏本的买卖。

 

既然选择了CDN加速服务器,那么就彻底信任它。现在几乎人人一个手机,手机可以拍非常私密、个性化的照片,照片存在手机上,没看到几个人担心自己的照片,被手机的后门程序源源不断复制到服务器上!

 

如果想复制,易如反掌,但是不被发现也很难,所以没有哪个手机厂商敢偷偷摸摸复制用户的照片!

 

信任归信任,信任并不代表CDN服务器不会出问题!

 

由于安全防护不足,CDN服务器沦陷了,同时沦陷的还有客户服务器证书的私钥,看看这个私钥能干掉啥有意义的事?

 

RSA密钥交换算法

 

如果第三方截获了历史加密流量,且这些加密流量使用的密钥,是使用RSA公钥算法分发的,那么可以使用该私钥,解密历史流量获得“Pre-Master Key”,结合客户端明文传输的“Nonce”、CDN服务器的“Nonce”,可以推导出“Master Key”,并顺利推导出“Session Key”、“HMAC Key”。

 

有了最后这两个Key,就可以解密历史上所有的加密流量,只要流量被捕获并保存下来。

 

此外,还可以继续解密现在、将来的加密流量。

 

如果使用DHE密钥交换算法呢,结果会有哪些不同?

 

DHE密钥交换算法

 

证书的私钥只负责认证这一块,而DHE才负责双方密钥的分发。

所以即使私钥泄露了,用私钥也无法从历史流量里还原出“Pre-master Key”。

 

要想还原出“Pre-master Key”,必须拥有DHE的私钥。DHE私钥不会出现在历史流量里,一旦一个通信会话结束,立马会从通信双方的内存里删除并消失。

 

所以,即使攻陷了CDN服务器,获得了私钥,也无法对历史流量进行解密。

 

阿弥陀佛,历史加密流量的隐私得以保全!

 

但是,现在与将来的加密流量会被解密,因为攻陷了CDN服务器,所有RSA私钥、DHE私钥,解密解密流量就如同吃哈密瓜一样轻松容易!

 

在这篇文章里,主要讲述了被动攻击(Passive Attack)、认证与密钥分发的分离、PFS、以及密钥分发的两种方法