相信很多朋友都遇到过网页被强插广告的情况,好端端一个干净的页面,动不动就被插了个屠龙宝刀点击就送的小窗口,看着就心烦。这种网页劫持强插广告的现象,在中国非常常见,往往是运营商进行HTTP劫持所造成的。对付这种劫持,一个很好的解决办法就是HTTPS。
HTTPS能够加密网页传输内容,不仅可以防止强插广告,还可以防盗号。然而,效果如此好的技术,并没有成为主流。无论国内外,很多大网站都仍没有使用HTTPS进行加密。根据统计,Alexa排名前一百万的网站,只有21.7%默认使用HTTPS,而中国的情况更加惨淡一些,注册域名总数只有0.11%使用HTTPS。为什么会这样子呢?今天就一起来谈谈HTTPS的话题吧。
HTTPS是什么
我们通常浏览网站用的是HTTP协议,这个协议也是互联网最为广泛使用的协议之一。这个协议大致是这样子运作的,当浏览网站的时候,首先你会发送一个请求,如果发送的是网址的话,会经由DNS服务器解析到相应的IP地址。服务器的80端口会监听到该请求,如果没有问题的话,会向你返回一个相应信息,接而连接成立,就可以开始传输数据了。这是一个很典型的TCP链接,用户和服务器进行有效连接需要经过好几个步骤,但无一例外,这些步骤中的数据传输都是明文,没有加密。
没有加密,就意味着给了别有用心者很多机会窃听——就如同你上课时给妹子传纸条,传递过程中阿猫阿狗都可以拆开来围观一番,黑点儿的还会往纸条里加料,你开网页被运营商插广告,大致也是这个理儿。如何才能防止信息被篡改?加密是个很好的解决方案。HTTPS,就是加密版的HTTP。
HTTPS使用了SSL/TLS进行加密,这是一套使用公钥/私钥机制的加密系统。使用了HTTPS后,基于证书系统的公钥一方面保证用户连接的是正确的网站,另一方面结合私钥,可以保证网络数据不会被窃听。于是,HTTPS一来可以防止钓鱼(网站带有数字签名,签名不对无法连接),二来加密了传输的数据,他人无法窃听和加料,盗号和插广告无从下手。和HTTP相比,HTTPS的确更能保证用户的隐私和安全。
为何HTTPS仍不是主流?
尽管HTTPS的好处显而易见,但目前为止仍有大量的网站尚未部署HTTPS,就算是部署,也只是在登录页面等少部分对安全有硬性要求的地方部署。为什么大家都没有一股脑地转用HTTPS?背后的缘由主要还是钱。
HTTPS会带来一定的成本问题,大部分人开网站是为了赚钱,如果提升了用户体验却亏了,那还不如不开。从HTTP转换到HTTPS是需要一定成本进行改造的,例如HTTP使用的是80端口而HTTPS使用的是443端口,同时HTTPS要比HTTP更加消耗资源,SSL握手需要更多的数据包,加密解密也需要额外的运算。要保证用户体验,改用HTTPS后,设备也需要升级,例如购买SSL加速卡等等,对于一些大流量的站点例如视频站,这个成本是不容忽略的。
对于小网站,证书也是一个成本。HTTPS的证书需要专门的机构颁发,大机构颁发的证书不是免费的,每年都得交几百几千块钱才能申请到证书。小机构的证书尽管便宜甚至免费,但一来适用度不如大机构的证书,二来申请证书始终是麻烦事。小网站的话,挂靠在拥有证书的服务器是个不错的办法,但更多人是懒得弄了,小网站本来就比较随意,反正连接没加密又不是不能用,哪有这么多心思弄证书。
除此以外,HTTPS的兼容也有一定问题。例如网站部署了HTTPS后,页面想要内嵌其他站点的内容,如果内嵌的只是普通的HTTP内容的话,可能会出现一些问题。你可以看到一些HTTPS网站中没法内嵌优酷、土豆之类的视频,看视频需要点击跳转,也是由于这个缘故。
因此,HTTPS主要还是一些资本雄厚的大公司以及对安全有着硬性要求的站点在用。例如Google,反正有钱,旗下所有网站部署HTTPS也烧得起;例如淘宝,有钱是一方面,作为一个购物网站,花钱这点小事和在安全上捅了篓子相比,根本不值一提,所以淘宝所有的页面都部署了HTTPS。
HTTPS是否万无一失?
使用了HTTPS,是否就万无一失了呢?也并非如此。HTTPS的证书就有可能存在安全问题,因为某些颁发证书的机构不按套路出牌。某些机构会滥发证书,甚至会制造假证书,假证书可以用来进行中间人攻击。例如,当你使用HTTPS连接到某个站点,浏览器告诉你站点连接是安全的HTTPS,但不好意思,实际上这个HTTPS只是基于假证书的连接,你在网站上做的一切都有可能被假证书的机构窃听。
这种事情是真实存在的,例如Gmail使用的是Google自己的证书,但MCS就曾经伪造过Gmail的假证书。用户连接到Gmail的时候,由于Google和MCS都被系统和浏览器信任,所以MCS的假证书也可以用于Gmail的HTTPS连接,这等于是绕开了Google对Gmail的HTTPS加密,Gmail就被MSC劫持了。对付假证书的最好办法,就是把颁发假证书的机构删掉。各大浏览器例如Chrome、Firefox等,会时不时宣布吊销某些机构证书的决定,大家可以多留意一下这方面的消息。
HTTPS除了防窃听,还可以防止他人修改传输内容,例如防止运营商干扰TCP连接等。但是运营商看不到传输的数据,还是有办法整你的,例如给你丢几个包之类的。一些网站会因为换用HTTPS,导致整个IP被封禁,所以一些站点换用HTTPS还是蛮需要勇气的。
总结
但无论如何,HTTPS仍是大趋势。不少业界巨鳄在大力推广HTTPS等安全连接,例如苹果规定商店所有App必须使用HTTPS连接网络,下一代HTTP协议HTTP/2也将强制使用加密连接。因此,各大站点换用HTTPS等加密连接,只是时间问题。HTTPS的确可以解决很多问题,希望互联网能尽早全面换装加密连接,更好地保护用户的隐私和安全吧。