如今这个时代,免费、开放的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更加易用、更加快速,最为重要的是,使它默认为已登录的用户服务。

所有网络通信都应该加密吗?相关推荐

  1. 网络通信中的加密解密及openssl和创建私有CA详解

    本文大纲: 1.为什么网络通信要进行数据加密? 2.数据加密方式有哪些?它们是如何进行加密的? 3.通信中是如何进行数据加密传输的? 4.https方式进行数据传输的具体流程 5.SSL 的实现工具O ...

  2. 网络通信中的加密解密

    要理解加密在网络通信中的应用,首先,要理解两个概念: 1. 对称加密:加密和解密使用同一个密钥,比如密钥key,消息发送方使用key来加密内容,消息获取方使用key来解密内容. 2. 非对称加密:加密 ...

  3. 数据库密码配置项都不加密?心也太大了!

    先看一份典型的配置文件 ... 省略 ...## 配置MySQL数据库连接 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spri ...

  4. 配置加密_数据库密码配置项都不加密?心也太大了!

    先看一份典型的配置文件 ... 省略 ... ## 配置MySQL数据库连接spring.datasource.driver-class-name=com.mysql.jdbc.Driversprin ...

  5. 为什么大部分企业都选择加密软件来防止数据泄露?

    加密软件是使用加密算法对数据或信息进行编码转换的软件,目的是防止未授权访问与保护敏感内容.它是实现加密技术的重要手段,为用户提供了简单易用的加解密功能,无需深入了解复杂的数学原理. 加密软件使用的加密 ...

  6. JavaScript 实现BASE58加密 中文英文数字都可以加密

    常见的加密方式是BASE64加密.本篇介绍一个不常用的前端js加密方式-BASE58加密 下面是代码展示 var BASE=58; var ALPHABET = '123456789ABCDEFGHJ ...

  7. android xml 加密,AndroidManifest.xml和MAIN.xml文件都是加密的,请问怎么解决

    谢谢指导,解压缩后 androidmanifest.xml中是这些: ?     %                      32   4   R   ^   l   x              ...

  8. 图解再谈ssh port forwarding-ssh隧道技术

    https://www.ramkitech.com/2012/04/how-to-do-ssh-tunneling-port-forwarding.html https://www.cnblogs.c ...

  9. 《高效程序员的修炼》读后感

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 首先非常感谢陆经理的赠书,如有想购买的同学,可到京东购买,地址:http://item.jd.com ...

最新文章

  1. UVa 374 - Big Mod
  2. 预告丨2018年值得关注的200场机器学习会议
  3. python资源百度网盘-bypy-百度网盘Python客户端 linux
  4. 金融贷款逾期的模型构建7——模型融合
  5. 在 Ubuntu 环境下实现插入鼠标自动关闭触摸板
  6. 软件设计原则(三)里氏替换原则 -Liskov Substitution Principle
  7. Pyhon进阶9---类的继承
  8. CodeForces 798D 思维,贪心
  9. linux下的ps4手柄驱动,DS4 To XInput Wrapper
  10. SIP账号注册的SIP软电话的使用和常见问题
  11. 电商的运营模式流程(最全解析电商运营模式)
  12. hdu 6184 Counting Stars
  13. Windows 8如何关闭自动维护_-Chaz-_新浪博客
  14. HiveQL整理总结
  15. 金融小知识-八行五保-三大综合性金融
  16. 基于RV1126 Video分析-----链接 isp 与mipi csi 的media模块
  17. [R]指令总结-Rstudio,R版本,R包
  18. 突破次元壁垒,让身边的玩偶手办在屏幕上动起来!
  19. 计算机科学与技术论文选题怎么选,比较好写的计算机科学与技术专业论文选题 计算机科学与技术专业论文题目如何取...
  20. 有CCC认证是不是代表产品的质量好?

热门文章

  1. A2DP 1.3 简单解析
  2. ObjectARX所有版本下载地址(新增2010下载地址)
  3. python的loc函数_如何在pandas中使用loc、iloc函数进行数据索引(入门篇)
  4. 外网和内网的关系和区别!!
  5. Java WebSocket实现简易聊天室
  6. 【numpy】——np.pad函数操作
  7. 在遗忘了风声的边界,听不懂潮水的呜咽. (转)
  8. 《设计模式入门》 1.简单工厂模式
  9. 分享一个visual assist x 2476 和2488(压缩包里有你想要的)喜欢的话,就点个赞(06.05重新分享)
  10. axure手机页面设计说明_Axure手机端查看交互图(完美展示)