问题描述
比如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、以及密钥分发的两种方法。
文章来源: 车小胖谈网络
- 还没有人评论,欢迎说说您的想法!