5.5.3 SSL协议的体系结构
SSL协议的通讯实体一般分为两层:握手层和记录层。图5.74呈现了协议的体系结构。
握手层包括握手协议、告警协议、密钥改变协议等3个协议模块。握手协议模块负责建立SSL连接,维护SSL会话。在建立SSL连接的过程中,通讯双方可以协商出一致认可的最高级别的加密处理能力,以及加密所需的各种密钥参数。

图5.74 协议的体系结构(https://www.daowen.com)
在协商出密钥后,握手协议模块通过密钥改变协议模块向对方发送一个密钥改变报文,通过对方的记录层;本方后续发送的报文将要启用刚才协商好的密钥参数。接收方收到密钥改变报文后,将在记录层设置好解密参数,对后续接收到的报文进行解密处理。
在SSL通讯期间,如果握手协议模块或者上层应用程序发现了某种异常,可以通过告警协议模块发送告警消息给另一方。告警消息有多种,如报文校验出错、解密失败、记录报文过长等。其中有一条消息是关闭通知消息,用于通知对方本端将关闭SSL连接,一般实现方式比较友好的SSL模块都采用此消息通知对方SSL连接将被本端关闭。
除了上述协议功能模块外,为了便于应用程序对SSL协议功能的调用,SSL模块还对外提供了一组API接口,使得应用程序可以简单透明地使用SSL协议的加密传输功能。