一 点睛
TLS协议是由TLS记录协议(TLS record Protocol)和TLS握手协议(TLS handshake Protocol)这两层协议叠加而成的。位于底层的TLS记录协议负载进行加密,而位于上层的TLS握手协议则负责除加密以外的其他各种操作。上层的TLS握手协议又可分为4个子协议。TLS协议的层次机构如下图所示:
二 TLS记录协议
TLS记录协议位于TLS握手协议的下层,是负责使用对称密码对消息进行加密通信的部分。
TLS记录协议使用了对称密码和消息认证码,但是具体的算法和共享密钥则是通过握手协议在服务器和客户端之间协商决定的。
三 TLS握手协议
TLS握手协议分为下列4个子协议:握手协议、密码规格变更协议、警告协议和应用数据协议。
1 握手协议
握手协议是TLS握手协议的一部分,负责在客户端和服务器之间协商决定密码算法和共享密钥。基于证书的认证操作也是在这个协议中完成的。它是4个子协议中最复杂的一个。
这个协议大致相对于下面这段对话。
客户端:你好,我能够理解的密码套件有RSA/3DES,或者DSS/AES,请问使用哪一种密码套件来通信呢?
服务器:你好,我们就用RSA/3DES来进行通信吧,这是我的证书。
在服务器和客户端之间通过握手协议协商一致后,就会相互发出信号来切换密码。负责发出信号是密码规格变更协议。
2 密码规格变更协议
密码规格变更协议是TLS握手协议的一部分,负责向通信对象传达变更密码方式的信号。简单地说,就跟向对方喊“1、2、3!”差不多。
这个协议所发送的消息,大致相对于下面的对话。
客户端:好,我们按照刚才的约定切换密码吧。1、2、3!
当协议中途发生错误时,就会通过警告协议传达给对方。
3 警告协议
警告协议是TLS握手协议的一部分。警告协议负责在发送错误时将错误传达给对方。
这个协议所发送的消息,大致相对于下面的对话。
服务器:刚才的消息无法正确解密喔!
如果没发生错误,则会使用应用数据协议来进行通信。
4 应用数据协议
应用数据协议是TLS握手协议的一部分。应用数据协议是将TLS上面承载的应用数据传达给通信对象的协议。