浅谈HTTPS连接
相信很多朋友都遇到过网页被强插广告的情况,好端端一个干净的页面,动不动就被插了个屠龙宝刀点击就送的小窗口,看着就心烦。这种网页劫持强插广告的现象,在中国非常常见,往往是运营商进行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的确可以解决很多问题,希望互联网能尽早全面换装加密连接,更好地保护用户的隐私和安全吧。
浅谈HTTPS连接的更多相关文章
- 浅谈HTTPS以及Fiddler抓取HTTPS协议
最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...
- [转]浅谈https\ssl\数字证书
浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...
- 浅谈HTTPS以及Fiddler抓取HTTPS协议(摘抄)
一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度.谷歌等. ...
- 【转载】浅谈HTTPS以及Fiddler抓取HTTPS协议
最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...
- 浅谈HTTPS和SSL/TLS协议的背景和基础
相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...
- 浅谈 HTTPS 和 SSL/TLS 协议的背景与基础
来自:编程随想 >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 ...
- 浅谈https\ssl\数字证书
全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕 ...
- 【转】浅谈https\ssl\数字证书
转载请注明出处:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数字证书申请 ...
- 【知了堂学习心得】浅谈c3p0连接池和dbutils工具类的使用
1. C3P0概述 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. 2. C3P ...
随机推荐
- 刷题总结——卡牌配对(bzoj4205网络流)
题目: Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值 ...
- P1373 小a和uim之大逃离 (动态规划)
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- 【二叉搜索树】hdu 3791
http://acm.hdu.edu.cn/showproblem.php?pid=3791 [注意] 是看树的形态是否一样,而不是中序遍历的结果 [Accepted] #include<ios ...
- 【扫描线或树状数组】CSU 1335 高桥和低桥
http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1335 [题意] 给定n座桥的高度,给定m次洪水每次的涨水水位ai和退水水位bi 询问有多少座桥 ...
- MyBatipse插件
MyBatipse:Eclipse 下的 Mybatis插件 MyBatipse是Eclipse的一个插件,提供了内容提示和Mybatis的配置文件验证功能: 特点 XMLEditor 的增强 代码自 ...
- uva 10692 高次幂取模
Huge Mod Input: standard input Output: standard output Time Limit: 1 second The operator for exponen ...
- Log4j2异步情况下怎么防止丢日志的源码分析以及队列等待和拒绝策略分析
org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor以下所有源码均在此类中首先我们看下log4j2异步队列的初始化 从这里面我们 ...
- Oracle命令行创建数据库
创建数据库文件 CREATE TABLESPACE MyDataBase LOGGING DATAFILE 'D:\Oracle\database\MyDataBase.dbf' SIZE 100M ...
- 【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术
目录 一. 概述 二. 原型链基础知识 三. Worker类的原型链加工 四. 实例的生成 五. 最后一个问题 六. 一些心得 示例代码托管在:http://www.github.com/dashno ...
- luogu P2296 寻找道路
题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...