网络交互是否都需要加密
导读:Coding Horror近期一篇关于网络加密的文章,作者是 StackOverflow 创始人 Jeff Atwood。在网络完全越来越引起关注的移动时代,此文更加像一位互联网老者对新人们和网络未来的殷切期待。它里面提纲性地提到了HTTPS的实现和网络交互加密的重要性,并且涉及了Google最近正在研发的新协议,适合网络开发人员作为参考来发散性研究。以下是全文
Wifi 的大范围推广虽然方便了很多用户移动办公,但是便捷的同时,wifi自身存在的安全隐患却不容小觑。在我2010年的一篇关于通过窃听网络交通(eavesdropper)来获取用户私人数据的 文章中有所提及。这个是整个网络架构存在的问题 (译者:有个说法就是TCP started broken。就是TCP本身存在问题,但是由于使用范围太广,矫正不过来),一时半会没有快速解决方案。现在很多网站都是通过使用HTTPS加密登录来”解决”这个无可避免的问题,来保护他们的用户。
譬如,Twitter在用户登录时就自动切换成HTTPS;这个很容易看出来,我这里就截个图简单展示一下:这个就说明这个链接加密了。
我本来觉得这有点矫枉过正,除了emial/银行系统,是否有必要步步为营? Twitter大概有点私人数据,但是stackoverflow呢?很难说,我个人分享/评论/交流的观点有多私密呢?我并不是在乎那个小小的cookie,我在乎的是有人可能窃听(sniffing)我的所有网络数据,有种被跟踪的感觉。但是,加密了网络链接也不能排除这个可能性。
基于这种用户心态,网络 程序员们,你们觉得是否要加密呢?这个可以从以下几个因素来考虑。
HTTPS 所用资源不多
在1999年,HTTPS是很费资源的;但是今天来讲,它很便宜,资源便宜。就看Gmail好了:
从2010年一月开始,Gmail把所有的网络交互都切换成HTTPS作为默认。如果大家还记得的话,之前是用户可以自己设置是否使用HTTPS。现在所有你的本机和服务器的交换都是默认的HTTPS,所有的,每一条。而且完成这个切换,他们没有更新硬件,没有添加任何新的机器,就完成了。在我们运营服务器上,SSL/TLS只占用了不到1%的CPU, 每个链接(connection)占用小于10kb的内存和不到2%的网络消耗(overhead)。很多人认为SSL会用掉很多处理器资源,希望这些数据能够给你们一些帮助。
HTTPS = 没有窥视
如果用了HTTPS,就时所有数据交互都加密了。也就是说你们的用户受到了以下的保护:
● 不会被窃取身份cookie
● 不会被窥视你在网络上干什么
● 不会窥视你发送了什么请求
● 不能感染交互过程
大多数用户会越来越多地使用公共wifi,裸奔似的上网方式完全可以通过后端来保护。
HTTPS 会越来越快
网络安全总归是有资源代价地, 网页链接加密也不例外。HTTPS是要比HTTP跑地慢,但是到底慢多少?以前呢,机密过的内容是不会缓存在网页 浏览器上地,但是现在这个已经不再如此, 所以也不会太慢。Google的 SPDY协议在传输层(transport layer)就自动加密,大大地提高了浏览器性能。SPDY的目标是要把SSL作为传输协议, 这其中一个挑战就是SSL延时比较厉害。现在还有 SSL False Start ,需要比较现代的浏览器,但是大大降低了在handshaking(必须但是巨费时)中延时的情况。 SSL加密永远不可能免费,但是会越来越快。
对登录用户加密是极具挑战,非常不容易的一项工程,尤其是对大型网站来说。虽然HTTPS的实现已经越来越方便,但是还是有很多困难点:譬如说proxy caching (代理缓冲)。有可能不是明天,或者明年,但是长期来讲,对登录用户使用HTTPS,机密网络链接,是网络健康发展的大方向。这个需要我们共同的努力,为了一个方便、快捷、默认的HTTPS时代。
作者: Jeff Atwood 编译: 伯乐在线 – 潘文佳
【如需转载,请标注并保留原文链接、译文链接和译者等信息,谢谢合作!】