TLS协议由TLS记录协议与TLS握手协议叠加而成。底层的TLS记录协议负责加密,上层的TLS握手协议负责加密以外的工作。


2-1. 握手协议
负责生成共享密钥与交换证书。生成共享密钥是为了密码通信,交换证书是为了相互认证。
由于握手协议的信息交换是没有加密的情况下进行的,所以一切数据都有可能被窃听。因此,这一过程必须使用公钥密码或Diffie-Hellman交换。

2-2. 密码规格变更协议
最开始时,通信没有加密。通过这个协议更改使用的密码套件
2-3. 警告协议
发生错误时通知通信对象。
2-4. 应用数据协议
用于传递应用数据。
是TLS客户端和服务端协商出的秘密数值。TLS密码通信的机密性和数据的认证都依靠这个数值。主密码是一个48字节的数值。
主密码是客户端与服务器根据一下信息计算出来的
使用RSA公钥加密时,客户端在发送ClientKeyExchange消息时,将经过加密的预备主密码一起发送给服务器。
当使用Diffie-Hellman密钥交换时,客户端在发送ClientKeyExchange消息时,将经过加密的预备主密码一起发送给服务器。
当使用Diffie-Hellman密钥交换时,客户端会在发送ClientKeyExchange消息时,将Diffie-Hellamn的公开值一起发送给服务器。根据这个值,客户端与服务器各自生成预备主密码。
客户端与服务端的随机数相当于防止攻击者事先计算出密钥的盐。


原文:https://www.cnblogs.com/zhh567/p/14277972.html