所有网络通信都应该加密吗?

如今这个时代,免费、开放的WiFi无处不在。这给WiFi窃听者有机可乘。当你通过WiFi的接入点访问各种网站时,他们可以很容易地截取你用以标识身份的cookie。我曾经在“Breaking the Web's Cookie Jar”(打开网络的cookie罐头)一文中谈到过这一点。而且如果不对现有网络基础设施大刀阔斧地改变的话,这个问题基本上难以解决。

当年我写那篇文章的时候,一些主流网站已经着手“解决了”WiFi窃听的问题。他们的方法是,要么给用户一个使用加密的HTTPS网络通信的可选项,或者就是给所有登录的用户强制使用HTTPS。

举例来说,我最近发现Twitter悄悄地做了一个改变(这个改变对于所有用户来说都是透明的、不易察觉的),它默认情况下会使用加密的网络连接来进行通信。你可以通过浏览器地址栏呈现的绿色,来判断出当前的网络连接已经加密过了(大部分时髦的浏览器都支持这样的特性)。


我一开始对此有些抗拒。我觉得有点矫枉过正了。我一直认为只有像电子邮件服务(你可能在邮箱里存放了登录其他所有网站的密码)和银行业才需要如此谨慎。

是的,你可以天真地主张每个网站都应该时时刻刻加密所有的网络通信,但在我看来,那是“一刀切”的解决方案。我想看到的是一种更好的、更安全的身份标识协议来代替那古老的HTTP cookie。其实我不介意别人看到我在Stack Overflow上其他的公开活动,那本来就不是什么秘密。但是,我不能不介意有人偷走我的cookie,然后以我的名义去为非作歹!为了保护那一点点cookie数据而把所有东西统统都加密,我还是觉得这实质上就是矫枉过正。

当然,为匿名访问或者没登录的用户加密网络通信是没必要的。Twitter就没那么做。在用户登录之前,使用的都是普通的HTTP连接;而一旦登录,网络连接就自动切换到HTTPS。这么做挺合理的!

作为用户,我丝毫没有感觉到由此带来的不便,它让盗取我的Twitter账号或窃听我在Twitter上的活动(听起来似乎很可怕)变得异常困难。我其实很难找到令人信服的理由来反对这么做,即使像保护我的Twitter账号这样相对来说微不足道的小事,它的好处仍然是显而易见的。因此,也许Twitter的做法是对的,也许所有的网站都应该缺省使用加密的网络连接。一年前我还认为这种做法跟佩戴“锡箔帽”一样,不过,如果着眼于长远利益、让整个网络世界健康发展的话,我现在想知道这么做是否真的是值得的。

译者注:锡箔帽是用一层或多层铝箔或者类似材料制成的头饰。有人贩卖这种帽子,声称它可以抵挡电磁场对大脑的影响,或抵挡思想控制或被人读脑。不过,这是沒有科学依据的。它已经沦为一个广为人知的人物形象刻画和嘲笑用词,意指迫害妄想,并常常用来形容阴谋论者。


那么,为什么不来一个“一刀切”呢?让我们把所有东西都统统加密!

HTTPS不再是奢侈品啦!

是的,在那古老的1999年,HTTPS实现起来的计算量还是相当大的。谢天谢地,过去13年中在“摩尔定律”的推动之下,情况已经完全不同了。尽管还有很多方面有待进一步完善,不过,还是让我们来看看Gmail这个真实世界里的例子吧:

在2010年1月份,Gmail转变成缺省情况下使用HTTPS加密所有东西的通信方式。之前,HTTPS的使用以一个可选项被引介给用户,但现在我们让浏览器跟Google之间的通信在任何时候都是加密的,以此来确保他们邮件的安全性。为了做到这一点,我们没有增加新的机器,也没有采用任何特殊的硬件。在我们前端的服务器上,SSL/TLS只用了不到1%的CPU负载,每个网络连接使用的内存低于10KB,并且额外的网络负载不超过2%。很多人坚信SSL会占用很多的CPU时间。其实不然。我们希望上面的数据(第一次对外公开)能够帮助大家消除那种疑虑。

HTTPS意味着没人能在互联网上监视你

既然你跟你所登录的网站之间所有的通信都加密了,“坏人”就很难对你做下面的事情了:

  • 窃取标识你身份的cookie
  • 偷看你正在做的事情
  • 监视你正在输入的内容
  • 干扰你发送或接收的内容

虽然不能完全杜绝,但会极大地限制那些坏蛋。不管你是否接入开放的WiFi,HTTPS都能为你保驾护航!

拿我个人来说,我其实不太介意有人监视我在网上所做的事情,因为我的初衷就是:让人们看到我在网上所做的事情。但是,我完全不同意如此荒谬的观点,说是“只有作贼心虚的人才需要遮遮掩掩”。因为每个人都有自己的隐私权。(此处略去部分内容)为什么不立即改善互联网,去“拯救”那些不幸的人们呢?

HTTPS现在变得更快了

安全总是有代价的。加密一个网络连接也不例外。HTTPS不可避免地会比普通的HTTP要慢一点。但究竟慢多少呢?有些浏览器对于加密的内容不会进行缓存;过去是这样,但现在已经不同了。Google的SPDY协议就是想要来替代HTTP,不仅仅是为了提升性能,更是想把加密植入到设计之中:

为了获得更好的安全性,以及跟现有网络基础设施的兼容性,SPDY有一个很明确的技术目标,就是要使用SSL来作为底层的传输协议。尽管SSL会引入一定的延迟,但我们相信从长远来看,网络世界需要安全的连接。另外,SSL的使用对于保障跨代理的通信不被干扰是很有必要的。

关于SSL,有个谣传是说必须要有一个时新的浏览器才能支持,这样才能在加密通信开始之前、在通信双方繁琐而又必要的握手过程中减少令人不快的延迟。对HTTP实施SSL加密不会是免费的午餐。绝对不会!但它肯定比过去要快了很多,而且每年都在变得更快。

给已登录的用户使用加密通信绝对不是一件容易做到的事情,尤其是对于一些大型的知名网站而言。我过去并没有站出来指责那些不使用加密通信的网站,因为我知道实施起来会有多少工作量,会对已经很忙碌的团队增加多少额外的复杂性。尽管HTTPS比起几年前要容易得多了,但仍然有很多难题摆在我们面前亟待解决。比如说,代理缓存将比以前要困难得多了,因为数据已经加密,代理服务器“看不懂”了。如今的大部分网站都大量聚合了来自其他终端的内容,从技术上来说,所有来自其他地方的内容都需要使用加密的HTTPS来传输。对于一些处理能力不是很强、连接不稳定的移动设备来说,情况就会非常的糟糕!

也许不会是明天,也不会是明年,但从中长期来看,为已登录的用户采用加密的网络连接会成为一个标准,这是通向网络世界未来最健康的一个方向。我们应该致力于使得HTTPS更加易用、更加快速,最为重要的是,使它默认为已登录的用户服务。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页