为什么要使用HTTPS协议???
什么是『协议』
在说HTTP和HTTPS之前,我们先一起谈谈“协议”这个词。
协议是用来描述特定目的的一系列的规则,在当前的语境下,规则用来规范通信,类似于人产之间彼此交流的方式。
举个栗子,在国内电视台播报新闻,因为讲的是汉语,大家都是中国人嘛,所以都能听懂。接着把新闻放给美国人看,他们讲英语,这样就听不明白了。。协议就是制定双方都同意和遵守的通信规则,这样双方才能听得懂。
什么是HTTP
HTTP是超文本传输协议,用来定义发送与接收文本消息的规则。计算机工作在二进制编码,因此,用1和0来构建一个数字世界。
比如,我用0代表A,1代表B,01代表C,这样就可以组合起来构造成一个单词。计算机有不同数据格式,二进制,文本和一些其它格式,如计算机语言的字节码。在HTTP协议里,传输的是纯文本,这些文本被浏览器解析,被解析的时候,它就成了一种标签语言超文本,传输超文本的规则即被称为HTTP协议。用HTTP可以传输图片,文字以及声音、视频等数据。
比如你现在在机场,通过第三方的Wifi上网,我们使用HTTP协议传输数据,其实所有通讯都是以纯文本形式传输的,如果是一个较老的路由,别人可以轻松查看到正在传输的数据。如果在登录银行网站,就有可能被提取到帐户密码,也可以被转移到钓鱼网站。请看下图:
因此我们说,HTTP是严重不安全的协议。
什么是HTTPS
二战时期,无线电通讯是可以被截获的(是不是和HTTP协议有点很像),后来美军在太平洋战场发起的所有行动,使用了说纳瓦霍语的土著人来做无线电情报的收发工作。因为纳瓦霍语极其复杂,加上军方对字表意的处理,即使被日本人截获到也无计可施,无法破译。
由于HTTPS安装配置复杂,还需要有第3方认证证书,需要付费等原因,发展相对较晚。除了网上银行应用普及,到如今已经是每个网站的必备技术栈。另外,Google,Apple,Facebook等已经完全支持HTTPS,甚至支持HTTP 2.0。
除了Google,苹果已明令所有上架App在今年1月都要支持HTTPS,否则无法提交。另Chrome浏览器从v54版本开始,在网址输入框中加上了感叹号的提示,告诉浏览者当前网站是否安全。凡是登录和有收集用户数据的行为,Chrome都会提示当前网站并不安全。一些网站虽然用了HTTPS,但是证书是sha1算法,加密强度不足,Chrome也会提示。
HTTPS使用几种加密算法和加密级别,如128位,64位加密。当使用HTTPS通道传输数据时,中间人仍有机会看到正在传输的数据,但已加密混淆无法看明白,只有到达浏览器端才能被解密显示。
当发起对HTTP协议的URL请求时会发生什么?
第一步,它是HTTP的工作找到服务器,一旦通信路由建立,服务器发送文本到浏览器。此文本可以是纯形式或加密形式,然后由浏览器呈现或用于任何目的。
为了确定加密消息要解密有多难,可以查看比特数。数字越高,解密就越困难。但是它只是增加了混淆的复杂性,使得它很难解密,但也不是不可能解密的。
HTTPS让人更有安全感,比如要搜索“SSL证书”,该搜索其实是个人的隐私,无论是购物还是阅读文章,大家通常都不希望别人知道自己干了什么。
当然,有些事情我们无所谓是否是加密传输,这一部分完全可以再使用HTTP。对于个人隐私类,银行,财务等信息,HTTPS是必须要用的。
HTTPS的优缺点
HTTPS似乎听起来都是鲜花,然后保证隐私是有代价的。HTTPS有以下几个缺点:
HTTPS请求需要更多的时间来解密处理,需要服务器更高的硬件,如CPU,内存,需要点额外的成本。
HTTPS在没有经过性能优化时,比HTTP要慢一倍打底裤。有一个网站,可以做一番比较:http://www.httpvshttps.com/
以下是关于HTTPS的一些常见想法:
- 我的网站没有交易,不需要使用HTTPS协议
- SSL证书很贵
- 从HTTP迁移到HTTPS协议会严重影响性能
网站没有交易也需要使用HTTPS,可避免被注入等攻击。另外,HTTPS是可以进行优化的,优化后性能也不错。购买SSL证书会增加一些成本,但收获用户的信任与安全,与我们的隐私相比,价值会更大。