HTTPS
一、HTTPS的加密方式
HTTPS采用的对称加密(又叫共享密钥加密)和非对称加密(又叫公开密钥加密)并用的混合加密机制。非对称加密处理起来比对称加密方式更为复杂,因此再若干通信时使用公开密钥加密方式,效率会很低。因此应该充分利用两者各自的优势,在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式。

二、HTTPS的大致过程:
1、服务器提交自己的公开密钥提交到CA(数字证书认证机构)
2、CA用自己的私有密钥向服务器的公开密钥部署数字签名并颁发公钥证书。
3、浏览器访问服务器,服务器返回数字证书
4、浏览器用内置的顶级证书解析服务器返回的数字证书从而得到服务器的公开密钥
5、浏览器生成一个对称加密的密钥,再利用服务器的公钥进行加密
6、浏览器将加密后的密钥发送给服务器,服务器利用自己的私有密钥得到对称机密的密钥,双方将使用该对称密钥进行加密通讯。
三、HTTPS的通信步骤(省略了TCP连接和断开过程)

1、客户端通过发送ClientHello报文开始SSL通信。报文中包含客户端支持的SSL的制定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度)
2、服务器可进行SSL通信时,会以ServerHello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。
3、之后服务器发送Certificate报文。报文中包含公开密钥证书。
4、最后服务器发送ServerHelloDone报文通知客户端,最初阶段的SSL握手协商部分结束
5、SSL第一次握手结束之后,客户端以ClientKeyExchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密钥进行加密。
6、客户端发送ChangeCipherSpec报文。该报文会提示服务器,再次报文之后的通信会采用Pre-master secret密钥进行加密。
7、客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商能否成功,要以服务器能够正确解密该报文为判定标准。
8、服务器同样发送ChangeCipherSpec报文
9、服务器同样发送Finished报文
10、服务器和客户端的Finished报文交换完毕后,SSL连接就算建立完成。当然,通信会受到SSL的保护。从此处开始进行应用层协议的通信,即HTTP发送HTTP请求。
11、应用层协议通信,即发送HTTP响应
12、最后由客户端断开连接。断开链接是,发送close_notify报文

浙公网安备 33010602011771号