SSL协议介绍

TIME:2019-03-21   click: 375 次

SSL是由网景公司于1994年最先提出来的。SSL被设计成用TCP来给出端到端的安全服务,是基于会话的加密和认证的 Internet协议,它在客户和服务器两个实体间给出了一个安全管道。SSL给出的服务器认证和能选择的客户端认证,可避免客户/服务器应用中的监听、篡改消息伪造等。在两实体间设立共享的秘密,使SSL有了保密性。

SSL在传输层与应用层间工作,和应用层协议没有关系,应用层数据能公开地在SSL上。SSL是两层协议,不是单个的,其协议栈如下图所示。

SSL记录协议为不一样的更高层协议给出基本的安全服务。3个高层协议用于管理SSL交换。SSL中有SSL会话和SSL连接两个重要的概念,SSL会话指的是客户与服务器的联系,由握手协议来创建会话。会话有加密安全参数,该参数能被多个连接共享,来防止为每个连接协商高昂的安全参数。SSL连接值的是给出适当类型服务的传输。SSL中的连接是短暂的的点对点,所有连接与对应的会话有关。

实际上每个会话有一组状态。一旦建立了会话,就有当前状态。在握手协议期间,会话处于未决状态,一旦握手协议成功,建立了会话,就由未决状态变成当前状态。

SSL记录协议对SSL连接有机密性和报文完整性两种服务。前者握手协议规定了对SSL有效载荷常规加密的共享密钥。后者定义了用来生成报文鉴别码的共享密钥。

SSL记录协议的操作过程是首先,它接收待传输的应用报文,将数据分为可管理的块;然后,可选地压缩数据,加上MAC;接着加密;最后,添加SSL记录首部,把最终数据单元作为TCP报文段的载荷部分传输。在接收端,数据被解密、验证、解压和重新装配,之后给更高级的用户。

所添加的SSL记录首部由这些字段组成:内容类型(8位):说明封装数据段的更高层的协议。主要版本(8位):指示用SSL的主要版本号。SSLv3的字段值为3。次要版本(8位):指示用的次要版本号。SSLv3的字段值为0。压缩长度(16位):明文数据段以字节为单位长度。最大值是214+2048。

SSL记录协议的有效载荷包括如下:

1.修改密文规程协议

它是SSL记录协议的三个SSL协议中最简单的一个。该协议由单个报文组成,该报文由值为1的字节组成。此报文的唯一目的是让未决状态被复制到当前状态。在达到握手协议之前,客户端与服务器端均需发送这一消息,以便通知对方其后的记录把用刚才协商的密码及相关联的密钥来保护。

2.告警协议

用其把SSL有关的告警消息及其严重程度传给SSL会话的主体。与其他用SSL的应用相同,告警消息按当前状态指定的方式压缩与加密。这个协议的每个报文由两个字节组成,第1个字节的值是“警告”或“致命的”,用来传送报文的严重级别。第2个字节包含了指出特定告警的代码。

当任何一方检测到错误时,检测方就向另一方发送消息。若告警消息是“致命的”,则通信双方应立即关闭连接。双方都要忘记所有与该失败的连接关联的会话标识符、密钥和秘密。对一切非致命错误,双方可缓存信息来恢复该连接。

3.  握手协议

这是SSL中最复杂的部分。SSL握手协议建立当前会话状态的参数,它使服务器和客户可协商协议版本、选择密码算法、互相认证,且在客户与服务器间通过一系列交换消息用公钥加密技术生成共享密钥。在用会话传输所有数据前,须先用握手协议连接。

客户与服务器间交换的一系列报文构成了握手协议。每个报文由报文类型、以字节为单位的报文长度,及与报文有关的参数内容3个字段组成。握手协议在客户与服务器间建立逻辑连接所需的初始交换,分为以下4个阶段。

1.建立安全能力

这个阶段用于开始逻辑连接且建立和此连接关联的安全能力。客户发起这个交换,传递的参数有协议版本、会话ID、密文族、压缩方法和初始随机数。

2.服务器鉴别和密钥交换

服务器可发证书、密钥交换和证书请求。最后发出结束 HELLO报文阶段的信号。

3.客户鉴别和密钥交換

一收到服务器完成报文,客户应验证服务器是否给出了合法证书,核查服务器 HELLO参数能否接受。若这些条件全部满足,客户就把一个或多个报文发给服务器。

若服务器请求了证书,则客户发证书,发密钥交换,客户可发证书验证报文。

4.结束

这个阶段完成安全连接的建立。

与SET协议对比,简单、容易安装和实施是SSL协议最重要的特征,但它只在通信双方间给出简单的通信通道,安全功能不如SET协议。


上一篇:常用认证算法种类 下一篇:VPN概述