河北科技大学研究生学位论文格式及范文 下载本文

第2章 SSL协议内容及研究 第2章 SSL协议内容及研究

2.1 SSL协议的概述

SSL协议是基于对称密钥算法和公钥加密算法的加密传输信道的协议,位于应用层与传输层之间,独立于应用层协议,在SSL协议上可加载任何高层应用协议,应用程序现数据的保密性,采用MD5信息摘要算法等来实现数据的完整性,使用数字证书进行身份认证。SSL现在主要是SSLv2,SSLv3版本,本文主要是探讨SSLv3为主。SSL协议的作用如表2-1所示[6]:

表2-1 SSL协议的应用

服务类型 信息保密 信息完整 双向认证

采用的主要技术

加密 信息认证 X.509证书

作用 防止窃听 防止破坏 防止欺骗

(1) 信息保密性 通过使用公开密钥和对称密钥技术达到信息保密。SSL客户端和服务器之间的所有业务都使用在SSL握手过程中建立的密钥和算法进行加密。这样就防止某人中所传信息,但由于没有密钥,仍不能破解。

(2) 信息完整性 确保SSL业务全部达到目的。应确保服务器和客户端之间的信息内容免受破坏。SSL利用消息认证码提供信息完整性服务。

2.1.1 SSL的协议堆栈

SSL协议是一个分层协议,共分为两层。位于底层的是记录层协议(SSL Record Protocol),SL协议的层次结构[8]见图2-1所示。

HTTP ?? FTPSSL握手协议SSL改变加密约定协议SSL记录层协议TCP层IP层底层协议SSL报警协议

图2-1 SSL协议的层次结构图

5

河北科技大学硕士学位论文 (1) SSL握手协议 SSL握手有三个目的。第一,客户端与服务器协商保护数据的一组算法;第二,确立一组这些算法所使用的密钥;第三,客户端验证服务器的证书的合法性,服务器也可以可选地对客户端进行验证,如果验证失败则断开连接。握手消息被传给SSL记录层。

(2) SSL改变加密约定协议(Change_Cipher_Spec) 它表示记录加密及认证的改变。一旦握手协议商定了一组新的密钥,就发送Change_Cipher_Spec来指示此刻将启用新的密钥。

2.1.2 数据的传输流程

1) 应用程序把应用数据提交给本地的SSL; 把散列值和压缩数据一起用加密算法加密。 2) 发送端的SSL根据需要:

使用指定的压缩算法,压缩应用数据。

2.2 SSL连接及会话

会话(Session)是指客户和服务器之间的联系[9]。会话由握手协议创建,定义了一套安全加密参数,为多个连接所共享。握手协议的职责是协调客户端和服务器的状态,使得双方在不能精确地并行的情况下,会话状态分为两种,一种是“当前操作状态”(Current operating state),另一个在握手协议期间,称为“预备状态”(Pending state)。另外,每种又分为读状态和写状态,其结构参数见表2-2。

表2-2 织物的基本结构参数

织物

编号 1 2 3 4 5 6

密度

横密

/(纵行?cm1)

17.34 19.42 17.32 19.42 18.52 19.4

纵密

/(横列?cm1)

34.96 28.4 35.8 32.14 34.66 28.66

克重/(g?m1)

厚度/mm

235.80 213.00 244.97 244.75 267.05 182.24

0.768 0.788 0.854 0.740 0.870 0.722

(1) 预备状态和当前操作状态 预备状态包含本次握手过程中协商成功的压缩算法、加密算法、MAC计算算法(不含密钥交换算法)、密钥等。

当前操作状态包含记录层正在使用的压缩算法、加密算法、MAC计算算法(不含密钥交换算法)、密钥等。

6

第2章 SSL协议内容及研究 (2) 读状态和写状态 客户和服务器都有各自独立的读状态和写状态。读状态中包含解压缩算法、解密算法、MAC验证算法和解密密钥等。写状态中包含压缩算法、加密算法、MAC计算算法和加密密钥等。

当客户端或服务器收到一个“change cipher spec”的信息,它把“预备读状态”,拷贝到“当前读状态”并清空预备读状态;当客户或服务器发送一个“change cipher spec”的信息,它把“预备写状态”拷贝到“当前写状态”并清空预备写状态。当握手协议结束后,客户端和服务器交换“change cipher spec”消息,然后采用新达成的密码规范进行通信。

2.3 记录协议层

记录协议是一种相当简单的封装协议,定义了数据传输的格式。记录协议主要完成分组和组合,压缩和解压缩,以及消息认证和加密等功能。它为SSL提供两种服务:保密性和消息完整性。保密性由协议协商出的会话密钥来实现,它主要是加密SSL负载的数据。消息完整性主要由计算数据的MAC来实现的。

2.3.1 记录协议的操作过程

SSL数据被分割成一系列的片断,数据片断的最大长度为214字节。数据在分段之后要进行压缩,由于没有定义压缩方法,所以只是一个空过程,也就是不作处理。然后计算数据片断的一个可以被发送和接收双方递增的计数器。计数器有32位,计数值循环使用,每发送一个记录计数值递增一次,序号的初始值为0。

SSL的记录包含三个部分:MAC数据、实际数据和粘贴数据。记录协议的操作过程如下图2-2所示。

应用数据abcdefghi分段/组合abcdefghi压缩abc计算MACabc加密abc附加SSL记录头Habc

图2-2 记录协议的操作过程

7

河北科技大学硕士学位论文 SSL纪录层操作的具体步骤如下:

(1) 分片 将消息分割成不超过成214字节的明文记录。

(2) 压缩(可选) 所有记录采用在“当前会话状态”中定义的压缩算法进行压缩,压缩算法将SSL明文结构翻译成SSL压缩结构。压缩不能引起信息丢失,也不能使内容增加超过1024字节。如果解压功能使解压后长度超过214字节,则会产生一个错误压缩失败报警(a fatal decompression_failure alert)。SSLv3中没有指定压缩算法。

(3) MAC计算 SSLv3 MAC=hash (MAC_write_ secret+pad_2+ hash(MAC_write_secret+pad_1+seq_num+ SSL compressed.type+SSL compressed.length+ SSL compressed.fragment))

(4) 加密 用对称加密算法给添加了MAC的压缩消息加密。而且加密不能增加1024字节以上的内容长度。

(5) 添加记录头信息 记录头信息的工作就是为接收实现提供对记录进行解释所必须的信息。在实际应用中,它是指三种信息:内容类型、压缩长度和SSL版本。SSL版本又包括主版本号和次版本号。

2.3.2 SSL记录格式

SSL纪录主要有内容类型、主版本号、次版本号、压缩长度以及密文数据组成其格式可用图2-3进行说明:

Content TypeMajor versionMinor versionCompressedLengthEncryptedData fragmentRMAC-MD5填充填充长度

图2-3 SSL协议记录格式

1) Content Type(内容类型):长8位,表示封装数据的上一层协议,如握手协议、报警协议、更改密码说明协议或应用数据。

2) Major version(主版本号):8位,SSLv3.0版为3。 3) Minor version(主次版本):8位,SSLv3.0版为0。

4) CompressedLength压缩长度:16位,加密后数据的长度,不超过214+2048字节。

5) EncryptedData fragment:密文数据。

8