Pages

Sunday, 6 September 2015

为了安全起见,建议用HTTPS彻底取代 HTTP

几年前, 一位挪威同事刚从谷歌开会回来,我在走廊上面遇到他,看他一副垂头丧气的样子,随便问了一句 “你和谷歌会开得怎么样啊”。

挪威同事叹了口气 “谷歌的人尼玛都活在 5 年以后啊”。

那个时候我年幼无知,还不能了解这句话的真实含义,直到最近加入 Chromium 安全讨论组,才真正了解到这句话背后的气势。

基本上 Chromium 安全讨论组里面充斥着的都是这种话题:

我们要马上淘汰SHA-1! 因为 SHA-1 强度太低了。虽然预计再过几年就可能会被破解, 我们今天就淘汰它吧。

SSL 状态放到 HTTP cache可能会受到攻击,需要马上改!

TLS DH group size 最少应该提高到1024 bit, 因为 INRIA, Microsoft Research, John’s Hopkin 大学已经证明低强度的 TLS DH group 不安全了。

lx

人家证明的是 512 bit 不安全, 768 bit 估计可能会被大学级别的资源破解, 你上来就最低 1024 bit, 还给不给活路了啊。

We carried out this computation against the most common 512-bit prime used for TLS and demonstrate that the Logjam attack can be used to downgrade connections to 80% of TLS servers supporting DHE_EXPORT. We further estimate that an academic team can break a 768-bit prime and that a nation-state can break a 1024-bit prime.

好吧, 谷歌兄们都想得很远的。

有一个每天杞人忧天的安全组其实也不是坏事,最近 Flash 爆出 0 day 漏洞的时候其实 Chromium 安全组 2 年前就警告过像 Flash 这种 NPAPI 插件是有安全问题的,说明安全组的同学们还是很有先见之明的。

神经质一样活在未来的安全组最近发布了一个二季度总结.

TOC-Q2-2015:
http://dev.chromium.org/Home/chromium-security/quarterly-updates#TOC-Q2-2015

今天就讲讲里面一个很有意思的东西:

安全组的同学说,我们认为(全面) 转向使用 HTTPS 是保证安全唯一途径。号召大家都转向 HTTPS

We see migration to HTTPS as foundational to any security whatsoever, so we’re actively working to drive# MOARTLS across Google and the Internet at large.

这个说法其实一季度的时候碎碎念了一次, 二季度报告里面,居然又放进去了。

实际上,如果你稍微留意一下,你会发现很多国外的网站已经开始这样做了。

比如在浏览器里面键入 www.google.com, 你会看到:
https://www.google.com
或者是 facebook.com,
https://www.facebook.com
就连白宫www.whitehouse.gov,也会是
https://www.whitehouse.gov
注意到那个绿色的 https 没,因为就算你没有写 https, 目标网站也会自动跳转到 https 上面去

对比一下国内的网站,比如 qq.com, 并不会有这个行为:访问WWW.QQ.COM,并不会跳转到HTTPS://WWW.QQ.COM,因为腾讯根本没有对WWW.QQ.COM设置HTTPS.

我观察了下,百度倒是对其网站设置了https:但是未设置自动跳转。访问WWW.BAIDU.COM,并不会跳转到HTTPS://WWW.BAIDU.COM,你得自己输入HTTPS://WWW.BAIDU.COM

发生了什么事情,让大家突然纷纷摒弃HTTP,全面投入 HTTPS 的怀抱呢?而且谷歌还在大力推行,建议每一个网站都换为 HTTPS.

要知道,HTTP 已经存在快 20 年。 而从 HTTP 迁移到 HTTPS 对大部分网站来说,是一个不小的决定: HTTPS 对硬件的要求要比 HTTP 高, 这个意味着更大的开销, 而更大的开销也就意味着需要花费更多的资金购买服务器。其他架构上面带来的成本可能就跟不用说了。

一定是发生了什么。

呃, 如果你其实连 HTTPS 是啥都不知道,你可以先看看 这篇文章。 简单的讲, HTTPS 是加过密的 HTTP。 这样,由于网路上传输的数据是加密的,在浏览网页时,除了你自己可以看到你自己在看什么网页,第三方是无法得知你在干什么的。

保护私密数据其实是 HTTPS 去几十年中起的最大的作用了,比如你登入了你的邮箱,或者是你的网上银行,一旦使用 HTTPS, 那么数据在网上就不再是明文,于是第三方就看不到你的密码和你的邮件。这个是为什么 HTTPS 过去十几年,都是用在邮箱,金融等特别需要隐私的领域。

可是看个白宫网站应该不算是隐私吧,为何这个也需要 HTTPS 来传输呢。

原因其实是: HTTP 这个在天真无邪时期诞生的协议,这几年彻底被一帮黑客玩残了

1. 黑客们发现 HTTP 明文传输不仅会泄露数据,也会很容易的被注入数据。

万维网在诞生的时候怎么也没有想到, 一个以查资料为目的的网络,最后会变成一个无所不能的平台。越来越多的商业行为从线下迁移到了线上。很多公司们开始在线上卖东西,卖内容,卖服务,打广告。

而一帮黑客们突然发现,有些东西虽然是明文在网上传输的,看着没有什么意思,但是我可以修改内容或者添加里面的内容啊。 这个有点像一个邮递员每天都在投递明信片,虽然明信片上的内容看起来没有什么卵用。突然有一个,这个邮递员想,其实我还可以修改明信片内容啊, 比如加上一句 “请立即向 XX 账户汇款 5000 元” 等等。

下面是个很典型的截图。
Screenshot_2015-07-21-22-26-06

图中某运营商的套餐售卖其实完全不是原网页内容,而是网页数据经过运营商服务器时被强行注入的数据。

这个业内叫“流量劫持”

作为白宫网站,他们肯定不希望网页中的奥巴马头像过了某个网络节点,被人换成本拉登吧。

那就 HTTPS 吧。

2. HTTP 不仅内容不加密,协议本身的(原语,头部数据)也是不加密的,于是协议指令本身也可能被修改

黑客:协议也不加密是吧, 就不要怪我来花式破解了。

事实上, HTTP 协议已经被黑客们各种匪夷所思的破解得不成样子了。
比如传说中的 “Cache poisoning”

http://deadlytechnology.com/web-development/http-attack

一系列的花式技巧让你的浏览器缓存永远不更新。什么服务器那边股票价格已经跌停了?你看不到哦,因为,你的缓存没法更新。。

3. 如果上面的不够生猛,最后给你来个更生猛的:HTTP 传输的 Web 网页中对于系统设备的授权是统一的。

想象一下这个场景: 用户去访问一个视频聊天的网站,网页需要访问你手机上面的摄像头,然后浏览器会询问用户是否同意授权,用户选择了同意。 但是万万没想到, 这个页面在通过某个网络节点的时候,被黑客注入了一段脚本 (明文传输的嘛,注入就是分分钟的事情)。那么这个时候,这个注入的脚本在浏览器看来,由于已经是原网页的一部分,自动就有了对摄像头的访问权限。于是你在和别人视频聊天的时候,刚刚注入的脚本就可以偷偷把你的英容笑貌上传到黑客的服务器里面。

后果当然取决于聊天的内容, 不过我目测一大波陈老师会浮出水面。。

同样的事情还可能发生在你的麦克风,当前的位置信息,甚至手机上的照片等等。

在各种尝试着修修补补以后,各大产业界大佬们终于醒悟,目前硬件的水平和价格,既然用 HTTPS 已经完全不是问题,那么全面转向 HTTPS 才是唯一的出路

相信很快大家就看到越来越多的网站会使用 HTTPS, 同时,国内的站长,如果你也有遇到上面的问题的话, HTTPS 可能是一个很好的选择。而作为一个用户,如果有的选择,尽量选支持 HTTPS 的网站。

这里可能有人就要问了, 如果都用 HTTPS, 那岂不是就没法做网络监视了,那我们的万里长城的敏感词部分岂不是全被废了?呃。。这段当我没有写过

PS: HTTP 的下一个版本HTTP/2 已经可以自带加密,只是这个协议本身推广还需要一段时间,于是网页传输加密还是以 HTTPS 为主.