为何你会被强插广告?谈HTTPS连接的那些事

简介:
本文讲的是 为何你会被强插广告?谈HTTPS连接的那些事, 相信很多朋友都遇到过网页被强插广告的情况,好端端一个干净的页面,动不动就被插了个屠龙宝刀点击就送的小窗口,看着就心烦。

这种网页劫持强插广告的现象,在中国非常常见,往往是运营商进行HTTP劫持所造成的。对付这种劫持,一个很好的解决办法就是HTTPS。

为何你会被强插广告?谈HTTPS连接的那些事
网页劫持很多人都有遇到过,HTTPS可以比较好地防范这问题

HTTPS能够加密网页传输内容,不仅可以防止强插广告,还可以防盗号。然而,效果如此好的技术,并没有成为主流。无论国内外,很多大网站都仍没有使用HTTPS进行加密。

根据统计,Alexa排名前一百万的网站,只有21.7%默认使用HTTPS,而中国的情况更加惨淡一些,注册域名总数只有0.11%使用HTTPS。为什么会这样子呢?今天就一起来谈谈HTTPS的话题吧。

HTTPS是什么

我们通常浏览网站用的是HTTP协议,这个协议也是互联网最为广泛使用的协议之一。这个协议大致是这样子运作的,当浏览网站的时候,首先你会发送一个请求,如果发送的是网址的话,会经由DNS服务器解析到相应的IP地址。

服务器的80端口会监听到该请求,如果没有问题的话,会向你返回一个相应信息,接而连接成立,就可以开始传输数据了。这是一个很典型的TCP链接,用户和服务器进行有效连接需要经过好几个步骤,但无一例外,这些步骤中的数据传输都是明文,没有加密。

为何你会被强插广告?谈HTTPS连接的那些事
网页浏览存在诸多环节,都是明文传输的话,安全和隐私都很成问题

没有加密,就意味着给了别有用心者很多机会窃听——就如同你上课时给妹子传纸条,传递过程中阿猫阿狗都可以拆开来围观一番,黑点儿的还会往纸条里加料,你开网页被运营商插广告,大致也是这个理儿。

如何才能防止信息被篡改?加密是个很好的解决方案。HTTPS,就是加密版的HTTP。

为何你会被强插广告?谈HTTPS连接的那些事
如果浏览器地址栏上有锁之类的标识,说明使用的是HTTPS安全连接

HTTPS使用了SSL/TLS进行加密,这是一套使用公钥/私钥机制的加密系统。使用了HTTPS后,基于证书系统的公钥一方面保证用户连接的是正确的网站,另一方面结合私钥,可以保证网络数据不会被窃听。

于是,HTTPS一来可以防止钓鱼(网站带有数字签名,签名不对无法连接),二来加密了传输的数据,他人无法窃听和加料,盗号和插广告无从下手。和HTTP相比,HTTPS的确更能保证用户的隐私和安全。

为何HTTPS仍不是主流?

尽管HTTPS的好处显而易见,但目前为止仍有大量的网站尚未部署HTTPS,就算是部署,也只是在登录页面等少部分对安全有硬性要求的地方部署。为什么大家都没有一股脑地转用HTTPS?背后的缘由主要还是钱。

为何你会被强插广告?谈HTTPS连接的那些事
仍有大量网站未使用HTTPS

HTTPS会带来一定的成本问题,大部分人开网站是为了赚钱,如果提升了用户体验却亏了,那还不如不开。

从HTTP转换到HTTPS是需要一定成本进行改造的,例如HTTP使用的是80端口而HTTPS使用的是443端口,同时HTTPS要比HTTP更加消耗资源,SSL握手需要更多的数据包,加密解密也需要额外的运算。

要保证用户体验,改用HTTPS后,设备也需要升级,例如购买SSL加速卡等等,对于一些大流量的站点例如视频站,这个成本是不容忽略的。

对于小网站,证书也是一个成本。HTTPS的证书需要专门的机构颁发,大机构颁发的证书不是免费的,每年都得交几百几千块钱才能申请到证书。小机构的证书尽管便宜甚至免费,但一来适用度不如大机构的证书,二来申请证书始终是麻烦事。

小网站的话,挂靠在拥有证书的服务器是个不错的办法,但更多人是懒得弄了,小网站本来就比较随意,反正连接没加密又不是不能用,哪有这么多心思弄证书。

为何你会被强插广告?谈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等,会时不时宣布吊销某些机构证书的决定,大家可以多留意一下这方面的消息。

为何你会被强插广告?谈HTTPS连接的那些事
MCS伪造过证书来劫持Gmail的HTTPS

HTTPS除了防窃听,还可以防止他人修改传输内容,例如防止运营商干扰TCP连接等。但是运营商看不到传输的数据,还是有办法整你的,例如给你丢几个包之类的。

一些网站会因为换用HTTPS,导致整个IP被封禁,所以一些站点换用HTTPS还是蛮需要勇气的。

总结

但无论如何,HTTPS仍是大趋势。不少业界巨鳄在大力推广HTTPS等安全连接,例如苹果规定商店所有App必须使用HTTPS连接网络,下一代HTTP协议HTTP/2也将强制使用加密连接。

因此,各大站点换用HTTPS等加密连接,只是时间问题。HTTPS的确可以解决很多问题,希望互联网能尽早全面换装加密连接,更好地保护用户的隐私和安全吧。


本文作者:佚名

来源:51CTO

原文标题:为何你会被强插广告?谈HTTPS连接的那些事
相关文章
|
3月前
|
安全
HTTP请求错误:”基础连接已关闭,发送时发生错误”
本文讲解HTTP请求错误:”基础连接已关闭,发送时发生错误”的解决方法。
68 0
|
5月前
|
安全 数据安全/隐私保护
使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信
使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信
45 0
|
7月前
|
Web App开发 网络协议 程序员
面试官:一个TCP连接可以发多少个HTTP请求?
曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么? 相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?
|
11月前
|
负载均衡 网络协议 安全
【服务网格架构】Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
【服务网格架构】Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
|
11月前
|
负载均衡 网络协议 安全
Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
|
Java API 网络安全
RestTemplate自定义异常白名单,连接https
RestTemplate自定义异常白名单,连接https
|
数据安全/隐私保护
下载普通http连接的图片和ftp服务器的图片
下载普通http连接的图片和ftp服务器的图片
102 0
|
网络安全
【IntelliJ IDEA】连接https报错问题: E230001: Server SSL certificate verification failed:
最近新安装了一个2018版本的idea,但是用idea去连接SVN的时候出现了这样的错误,在网上搜了很多,都没有用,最后找到这样的方式,把问题搞定,果断把解决方式记录下,以便帮助更多的人。
244 1
【IntelliJ IDEA】连接https报错问题: E230001: Server SSL certificate verification failed:
|
Web App开发 前端开发 测试技术
新手教程 | Python自动化测试Selenium+chrome连接HTTP代理(账密+白名单)
虽然 Selenium 主要用于网站的前端测试,但其核心是浏览器用户代理库。本次来说说,Python使用Selenium调用Chrome浏览器并通过HTTP代理进行自动化测试
|
Web App开发 网络协议 网络安全
89. 5 连问一个 TCP 连接可以发多少个 HTTP 请求
89. 5 连问一个 TCP 连接可以发多少个 HTTP 请求
108 0
89. 5 连问一个 TCP 连接可以发多少个 HTTP 请求