SSL连接过程
- 客户端发送hello报文给服务器
- 服务器接收后返回给客户端证书,证书中包括服务器公钥。
- 客户端提取证书中的公钥,并随机生成一个通信主秘钥MS,然后通过公钥加密发送给服务器
- 服务器用私钥解密得到通信主密钥MS。
到此主秘钥的分发就完成了,双方都有了主密钥MS。下面就是密钥导出
- 之后客户端和服务端使用相同的方式用主密钥MS生成四个密钥:
1)EB:客户端向服务端发送数据的会话加密密钥
2)MB:客户端向服务端发送数据的会话MAC密钥
3)EA:服务端向客户端发送数据的会话加密密钥
4)MB:服务端向客户端发送数据的会话MAC密钥
会话加密密钥就是用来加密传输数据的对称密钥。MAC密钥则是用来检验报文完整性的,是否被篡改。
下面就是数据传输阶段了:
- 客户端将数据添加MAC检验,然后通过EB密钥加密,发送给服务端
- 服务端接受数据包后用相应的对称密钥EB解密,然后用MB进行数据检验。