前面已经简要介绍了SSL证书的定义和类型,那么SSL证书的工作原理如何呢?
SSL的工作原理分为握手协议、日志记录协议和警报协议三部分。
另一方面,握手协议是发生在APP应用数据传输之前、客户端和服务器通过SSL连接通信时使用的第一个子协议,并且是整个SSL过程中最复杂的协议的一部分。 此协议允许服务器和客户端相互验证,并协商加密和MAC算法以及保护在SSL记录中发送的数据的私钥。
握手包含以下三个字段:
)1) type :表示10种信息类型之一
(2) Length :表示信息长字节数
(3)内容:消息相关参数
握手有四个阶段。 1 .建立安全功能在SSL握手的第一阶段启动逻辑连接并为此连接建立安全功能。 首先,客户端向服务器发送客户端hello消息,等待服务器的响应。 然后,服务器向客户端返回server hello消息,以检查客户端hello消息中的信息。
ClientHello客户将发送CilentHello消息,包括:
)1)客户端可以支持的SSL的最高版本号
)2)用于生成主秘密的32字节随机数。
)3)标识会话的会话ID。
(4)客户端可以支持的加密套件列表。
密码套件格式:每个套件以“SSL”开头,后跟密钥交换算法。
(5)客户端可以支持的压缩算法列表。
服务器hello服务使用服务器hello信息响应客户。 包括以下内容。
)1)一个SSL版本号。
)2)用于生成主秘密的32字节随机数。 (一个客户端、一个服务端)
)3)会话ID
)4)从客户端加密套件列表中选择的加密套件
(5)从客户机压缩方法列表中选择的压缩方法
在这个阶段之后,客户端服务端知道:
)1) SSL版本
)2)密钥交换、信息验证、加密算法
(3)压缩方法
)4)关于密钥生成的两个随机数。
2 .服务器认证和密钥交换服务器启动SSL握手的第二阶段,其中仅服务器发送消息并且客户端接收消息。
这个阶段分为四个步骤。
)1)服务器将数字证书和到根CA的整个链发送到客户端,使客户端能够通过服务器证书中的服务器公钥识别认证服务器。
)2)基于密钥交换算法的服务器私钥交换
)3)服务器要求客户端进行认证。
)4)服务器握手结束。
3 .客户端认证和密钥交换:客户端启动握手的第三阶段,本阶段只有客户端发送消息,服务器接收消息。
(1)客户端发送证书信息以验证服务器。 这是可选的,IIS允许配置强制客户端证书认证。
)2)客户端密钥交换)在此客户端将备用主密钥发送给服务端,注意在此使用服务端公钥进行加密。
)证书验证签署备用私钥和随机数,证明持有证书公钥。
4 .握手结束
客户端启动SSL握手的第4阶段,并退出服务器。 此阶段分为四个步骤,前两个消息来自客户端,后两个消息来自服务器。
二、记录协议记录协议在客户端与服务器握手成功后,即客户端与服务器确认双方身份交换所使用的算法后,进入SSL记录协议,记录协议为SSL连接提供两种服务。
(1)机密性)用握手中定义的私钥实现
)2)完整性)握手定义MAC以保证消息的完整性
SSL日志记录协议接收传输的APP应用程序消息,将数据分成可管理的块,使用加密算法加密数据并添加头文件。 收到数据后,需要对其进行解密、验证、解压缩和重新组装。
三、预警协议客户端和服务器发现错误,如证书错误、证书过期、握手失败等,向对方发送预警信息。 对于致命错误,算法将立即关闭SSL连接,双方将首先删除相关的会话编号、私钥和密钥。