网络交互是否都需要加密
2013-05-23 08:25
197 查看
导读: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 编译:伯乐在线 – 潘文佳
via http://blog.jobbole.com/14216/
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 编译:伯乐在线 – 潘文佳
via http://blog.jobbole.com/14216/
相关文章推荐
- 浮点数/float/double 是否需要考虑网络字节序的问题
- 判断 网络地址 是否合法的正则,需要的可以参考下,支持IPV6格式的判断
- 网络数据加密需要解决三个问题:
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- 网络虚拟化是否需要额外的网络架构?
- 写复杂的网络交互系统模块时需要考虑什么
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- 浮点数/float/double 是否需要考虑网络字节序的问题
- 浮点数/float/double 是否需要考虑网络字节序的问题
- #Android笔记#Android使用Json交互需要添加网络权限!
- 是否需要对网络传输数据进行压缩?如何选择压缩算法?
- Android 每次访问网络时,都需要判断是否有网络
- C# 检查网络是否连通 判断远程文件是否存在 C#获取程序路径的方法中需要注意的地方
- 浮点数/float/double 是否需要考虑网络字节序的问题
- WCF开发框架形成之旅--您的数据是否需要加密
- WCF开发框架形成之旅--您的数据是否需要加密
- 是否需要对网络传输数据进行压缩?如何选择压缩算法?
- 判断索引是否需要重建
- 网络编程中需要理解的一些概念
- C#检测当前用户网络是否连接