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