技术出现的背景
因为普遍使用的http有以下缺点:
- 通讯使用明文(不加密),内容可能遭到窃听。
- 不验证通讯方身份,因此可能遭到伪装。
- 无法验证报文的完整性,所以有可能招到篡改。
为了解决以上问题,需要在http的基础上加上加密处理和认证等机制而出现了HTTPS。
什么是HTTPS
https是身披SSL外壳的HTTP,在通讯过程中先用SSL协议,再用TCP/IP协议。
http + 加密 + 认证 + 完整性保护 = https
那什么是SSL协议呢?在讲解SSL协议之前,先来了解加密方法。SSL采用的是一种叫做公开加密的方法。
加密
-
(对称加密)共享加密:加密和解密都是用同一个密钥。
- (非对称加密)使用两把钥匙的公开密钥加密
公开秘钥加密使用一对非对称的密钥,一把私钥密钥,一把公开密钥。
使用方式:发送密文的一方使用对方的公开密钥进行加密处理, 对方收到被加密的信息后, 再使用自己的私有密钥进行解密。
-
https采用混合加密机制
即使用共享加密(对称加密)和公开加密(非对称加密)这两种机制并用。因为公开加密与共享加密相比,处理速度较慢。
认证
-
证明公开密钥是正确性的证书
因为公开密钥加密还存在一些问题,无法验证公开密钥本身是货真价实的公开密钥。
为了解决这个问题,可以使用由数组证书机构(CA)和其相关机构颁发的公开密钥证书。
1.第三方机构会对公开密钥进行数字签名,并将这个已签名的公开密钥放入到公钥证书(可以叫数字证书或证书)中绑定在一起。
2.服务器会将这份公钥证书发送到客户端。
3.客户端对公钥证书进行校验。
校验通过,客户端就会明白两件事:1.认证服务器的公开密钥是真实有效的数字证书认证机构。2.服务器的公开密钥是值得信赖的。