相信很多朋友都遇到过网页被强插广告的情况,好端端一个干净的页面,动不动就被插了个屠龙宝刀点击就送的小窗口,看着就心烦。这种网页劫持强插广告的现象,在中国非常常见,往往是运营商进行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的确可以解决很多问题,希望互联网能尽早全面换装加密连接,更好地保护用户的隐私和安全吧。

浅谈HTTPS连接的更多相关文章

  1. 浅谈HTTPS以及Fiddler抓取HTTPS协议

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  2. [转]浅谈https\ssl\数字证书

    浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...

  3. 浅谈HTTPS以及Fiddler抓取HTTPS协议(摘抄)

    一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度.谷歌等. ...

  4. 【转载】浅谈HTTPS以及Fiddler抓取HTTPS协议

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  5. 浅谈HTTPS和SSL/TLS协议的背景和基础

    相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...

  6. 浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

    来自:编程随想   >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 ...

  7. 浅谈https\ssl\数字证书

    全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕 ...

  8. 【转】浅谈https\ssl\数字证书

    转载请注明出处:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数字证书申请 ...

  9. 【知了堂学习心得】浅谈c3p0连接池和dbutils工具类的使用

    1. C3P0概述 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. 2. C3P ...

随机推荐

  1. 如何解决 错误code signing is required for product type 'xxxxx' in SDK 'iOS 8.2'

    如何解决 错误code signing is required for product type 'xxxxx' in SDK 'iOS 8.2' 大家在做真机调试的时候,或许会遇到这样的问题,那如何 ...

  2. hihoCoder #1471 拥堵的城市

    这道题目是hihoCoder Challenge 27的C题,我考虑了5天:(. 计数问题.由于树的结构的特殊性(树具有递归结构),不难想到思路是树形DP.由于这是[计数问题]而非[优化问题],我们思 ...

  3. PAT天梯赛练习题——L3-004. 肿瘤诊断(三维连通块并查集)

    L3-004. 肿瘤诊断 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环.给定病灶 ...

  4. POJ 1330:Nearest Common Ancestors【lca】

    题目大意:唔 就是给你一棵树 和两个点,问你这两个点的LCA是什么 思路:LCA的模板题,要注意的是在并查集合并的时候并不是随意的,而是把叶子节点合到父节点上 #include<cstdio&g ...

  5. bzoj1584 [Usaco2009 Mar]Cleaning Up 打扫卫生 动态规划+思维

    Description 有N头奶牛,每头那牛都有一个标号Pi,1 <= Pi <= M <= N <= 40000.现在Farmer John要把这些奶牛分成若干段,定义每段的 ...

  6. 【bzoj1193】[HNOI2006]马步距离

    [HNOI2006]马步距离 Description Input 只包含4个整数,它们彼此用空格隔开,分别为xp,yp,xs,ys.并且它们的都小于10000000. Output 含一个整数,表示从 ...

  7. 【bzoj1710】[Usaco2007 Open]Cheappal 廉价回文

    [bzoj1710][Usaco2007 Open]Cheappal 廉价回文 Description 为了跟踪所有的牛,农夫JOHN在农场上装了一套自动系统. 他给了每一个头牛一个电子牌号 当牛走过 ...

  8. 如何将文件上传到ftp

    方法1(推荐,炒鸡简单):双击我的电脑,在地址栏里输入你的ftp地址回车(比如: ftp://220.103.86.96),然后会弹出一个输入登录账号和密码的对话框,输入你的ftp账号和密码回车便进入 ...

  9. SQL 随机取出一条数据

    今天遇到一需求,需要随机取出一条数据.网上找了下,sqlserver自带的有newID()这个函数,可以随机出来一个guid,用来取随机数还是蛮不错的. 直接上SQL: select top 1 *, ...

  10. bzoj 5216: [Lydsy2017省队十连测]公路建设

    5216: [Lydsy2017省队十连测]公路建设 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 66  Solved: 37[Submit][St ...