一、前言
HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 近两年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力推行 HTTPS, 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是未来互联网发展的趋势。
为鼓励全球网站的 HTTPS 实现,一些互联网公司都提出了自己的要求:
- Google 已调整搜索引擎算法,让采用 HTTPS 的网站在搜索中排名更靠前;
- 从 2017 年开始,Chrome 浏览器已把采用 HTTP 协议的网站标记为不安全网站;
- 苹果要求 2017 年App Store 中的所有应用都必须使用 HTTPS 加密连接;
- 当前国内炒的很火热的微信小程序也要求必须使用 HTTPS 协议;
- 新一代的 HTTP/2 协议的支持需以 HTTPS 为基础。
- 等等,因此想必在不久的将来,全网 HTTPS 势在必行。
二、概念
1、协议
- HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。
- HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是
SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
https通信模型
如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS
- SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
- TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。
2、加密算法
据记载,公元前400年,古希腊人就发明了置换密码;在第二次世界大战期间,德国军方启用了“恩尼格玛”密码机,所以密码学在社会发展中有着广泛的用途。
对称加密
-
含义
client 用来加密的 password 和 server 用来解密的 password 相同,有流式、分组两种,加密和解密都是使用的同一个密钥。所以叫对称加密。 -
优缺点
优点: 算法公开、计算量小、加密速度快、加密效率高、加密简单。
缺点: 不够安全,如果 client 的 password 被盗窃