浏览器获得服务器的证书,从中提取服务器的公钥,用它加密一个对称密钥,发给服务器,双方用这个对称密钥来加密通信。
前两天,奇虎360了一个报告,讲述了美国国家安全局(NSA,不是NASA啊)针对国家级互联网专门设计的一种先进的网络流量劫持攻击技术 :Quantum(量子)攻击。
(注意,不是量子计算或者量子通信,就是一个名称而已。)
这个攻击方式可以劫持全世界任意地区、任意网上用户的正常网页浏览流量,然后利用漏洞攻击并植入后门程序。
具体的过程是这样的:
0. NSA把FoxAcid(酸狐狸)服务器部署在全球的骨干互联网中 。
1.“酸狐狸”会监控HTTP网络请求,一旦发现NSA想要攻击的目标,会比真实网站服务器更早做出响应,率先向用户电脑发出重定向报文。
2. 受害者被迫访问“酸狐狸”服务器。
3. “酸狐狸”利用各种主流浏览器和Flash等应用程序的 0day漏洞对目标对象实施攻击,再向其上网终端中植入初始后门程序。
如果攻击成功,植入后门,那电脑就被控制了。
0day漏洞指的是还未被软件厂商或者防病毒厂商发现的漏洞。
作为程序员,我的职业病又犯了,开始思考攻击中的几个问题:
(1) 如何监听网络请求,尤其是HTTPS请求?
(2)如何能比正常服务器更早地做出响应?
(3)这些厉害的0day 漏洞从哪里来的?
我不是网络安全专家,下文分析不一定精准,欢迎安全大神批评指正。
1.监听网络请求
如果是Http请求,那很简单,是明文的,只要处理速度够快就行。
如果是Https请求呢?那就不好办了。
我之前有一篇非常受欢迎的文章,讲述了Https的基本原理, 没看过的同学可以点击下方图片看看。
简单来说,就是浏览器获得服务器的证书,从中提取服务器的公钥,用它加密一个对称密钥,发给服务器,双方用这个对称密钥来加密通信。
对Https有中间人攻击,如果NSA能够搞出经过合法签名的证书,让浏览器误认为是服务器的,那就可以充当中间人,截获通信请求了。
NSA能做到吗?我也没有明确答案。
还有一种攻击就是SSLStrip :
攻击者设法将Https链接替换成Http,指向攻击者的服务器,让受害者访问。
与此同时,攻击者服务器和真实服务器发起连接,这样攻击者就变成了中间人,可以监控一切流量了。
例如波兰遭遇大规模DNS劫持用户网上银行,攻击者就是利用路由器的DNS漏洞,使得受害者先访问一个“邪恶的”DNS服务器,这样就可以给受害者返回一个“邪恶的”服务器地址,让受害者访问(使用Http)。
“邪恶”服务器再和真实的银行连接(用正常的Https),这样攻击者就处于中间人地位,窃取任何数据了。
当然,这种从家用路由器下手的方式和NSA的量子注入攻击是不同的,因为NSA的酸狐狸服务器部署在骨干互联网上。
2.更快地做出反应
酸狐狸服务器监听到请求后,做到主要工作是:分析请求 ,伪造数据包,发回给浏览器。
这三个时间加起来,一定要小于正常服务器把响应发给浏览器的时间,否则没法实施注入攻击。
考虑到骨干互联网的超大流量,至少都是100Gbps,和酸狐狸对全世界所有国家的无差别攻击,它的处理能力肯定是非常惊人的。
由此也联想到美国对华为不遗余力的打压,这背后很有可能有控制网络设备的目的。
3.0day 漏洞
0day漏洞前面说了,就是软件厂商和防病毒厂商都没有发现的漏洞。
量子攻击最终的目的是利用0day漏洞在浏览器等终端中植入后门,一旦成功,机器就被控制。
美国国家安全局掌握了多少0day漏洞?恐怕他自己知道。
但是想想我们用的操作系统、浏览器、办公软件、图形处理软件几乎都是美国的,一旦发生危机,这其中的漏洞是没人会给我们打补丁的。
咱们前面说到Https看起来很难攻破的样子,但是这里必须提醒大家:Https只能对通信的过程进行保护,防止数据在网络中被偷看,篡改。它是无法保护通信的两端的。
一旦强盗进入你的计算机,在你使用Https进行数据加密之前就把数据给拿到了,还指望Https来保护,那就是笑话了。
所以,当你访问一个既有Http页面,也有Https页面的网站的时候,访问Http页面的请求就可能被注入,被0day漏洞攻击,植入后门。
有些网站比如Google,号称全部都是Https的,酸狐狸是不是就没办法了?
从斯诺登曝光的棱镜计划中有这么一张图:
从中可以看出,用户和GFE(Google Front End)之间使用了SSL, 但是,在Google 的数据中心中,用的却是明文传输,美国国家安全局在这里通过光纤复制数据流,监听就可以了,非常简单。
在网上,360安全卫士被认为是流氓软件,但是很多人不知道的是360也是被美国制裁的一份子,也在美国的实体清单上。
有一说一,360在网络安全领域是挺强的,它的安全团队对国家安全是做出过重大贡献的,具体的细节这里就不罗列了,感兴趣的可以去搜一下。
最后,可能会有人要问了:你BB了这么多,为什么NSA没有入侵我的电脑呢?
答案很简单:黑客没有盯上你,是因为你的价值不高。