小白解析HTTPS

458 阅读1分钟

强烈推荐《图解HTTP》这本书

HTTPS是什么?

HTTPS并不是TCP/IP协议族中的一个协议,它本质上是HTTP协议+SSL协议(或者TLS协议)。本来HTTP通信直接和TCP通信相连,存在很多缺点(未加密,容易被伪造,信息篡改等。)现在在之间加入SSL协议,增加通信的安全性。

HTTPS加密方式

HTTPS加密方式分为两种:

  • 非对称加密

非对称加密,顾名思义,就是客户端和服务器端的加密非对称。体现在 SSL通信阶段。

  • 对称加密

对称加密,也叫共享加密,顾名思义,就是密钥是对称的,相同的。即客户端和服务器端使用相同的密钥。主要体现在HTTP通信阶段。

非对称加密

1. 客户端发起SSL连接请求

2. 服务器生成配对的公钥和私钥。将公钥交给CA,CA通过私钥对其进行数字签名后,生成证书返回给客户端。实现第一次SSL连接。

3. 客户端(浏览器内置了CA的公钥)通过CA公钥解密证书,获取到服务器端的公钥。

4. 客户端生成随机字符串,用获取到的服务器公钥加密,发送到服务器端。并告知约定将随机码作为共享密钥。

5. 服务器用之前生成的私钥解密客户端发送的内容,获取到随机码。告知客户端同意随机码作为共享密钥。

至此,SSL连接建立完成。开始进行HTTP通信。

对称加密

HTTP通信阶段已经形成了SSL安全通道,使用SSL阶段的随机码进行对称加密的通信。