SSL/TLS协议
1 协议历史
- 1994年Netscape开发了SSL(Secure Socket Layer)安全套接层协议,专门用于保护Web通讯
- 版本和历史
- 1.0,不成熟
- 2.0,基本上解决了Web通讯的安全问题Microsoft公司发布了PCT(Private Communication Technology),并在IE中支持
- 3.0,1996年发布,增加了一些算法,修改了一些缺陷
- TLS 1.0(Transport Layer Security传输层安全协议, 也被称为SSL 3.1),1997年IETF发布了Draft,同时,Microsoft宣布放弃PCT,与Netscape一起支持TLS 1.0
- 1999年,发布RFC 2246(The TLS Protocol v1.0)
2 协议的目标
目标:
? SSL被设计用来使用TCP提供一个可靠的端到端安全服务,为两个通讯个体之间提供保密性和完整性(身份鉴别)
3 SSL体系结构
协议分为两层
4 两个主要的协议
- SSL记录协议
- 建立在可靠的传输协议(如TCP)之上
- 它提供连接安全性,有两个特点
- 保密性,使用了对称加密算法
- 完整性,使用HMAC算法
- 用来封装高层的协议
- SSL握手协议
- 客户和服务器之间相互鉴别
- 协商加密算法和密钥
- 它提供连接安全性,有三个特点身份
- 鉴别,至少对一方实现鉴别,也可以是双向鉴别
- 协商得到的共享密钥是安全的,中间人不能够知道
- 协商过程是可靠的
5 SSL的两个重要概念
- SSL连接(connection)
- 一个连接是一个提供一种合适类型服务的传输(OSI 分层的定义)。
- SSL的连接是点对点的关系。
- 连接是暂时的,每一个连接和一个会话关联。
- SSL会话(session)
- 一个SSL会话是在客户与服务器之间的一个关联。会话由Handshake Protocol创建。会话定义了一组可供多个连接共享的密码安全参数。
- 会话用以避免为每一个连接提供新的安全参数所需昂贵的协商代价。
6 会话状态参数
- Session identifier: 会话标识,服务器选择的一个任意字节序列, 用以标识一个活动的或可激活的会话状态。
- Peer Certificate: 对等证书,标识服务器的X.509.v3证书。可为空。
- Compression method: 压缩方法,加密前进行数据压缩的算法。
- Cipher spec: 加密规格,指明数据体加密的算法(无,或DES等) 以及散列算法(如MD5或SHA-1)用以计算MAC。还包括其它参数,如散列长度。
- Master secret:主密钥, 48位秘钥,在client与server之间共享。
- Is resumable:可恢复标志,一个标志,指明该会话是否能用于产生 一个新连接。
7 连接状态参数
- Server and client random:服务器与客户机随机数, server 和 client 为每一个连接所选择的字节序号。
- Server write MAC secret:服务器写MAC密钥, 一个密钥,用来对server 送出的数据进行MAC操作。
- Client write MAC secret:客户机写MAC密钥, 一个密钥,用来对client送出的数据进行MAC操作。
- Server write key: 服务器写密钥,用于server 进行数据加密,client进行数据解密的对 称保密密钥;
- Client write key:客户机写密钥,用于client 进行数据加密,server进行数据解密的对 称保密密钥;
- Initialization vectors: 初始化向量,当数据加密采用CBC方式时,每一个密钥保持 一个IV。该字段首先由SSL Handshake Protocol,以后保留每次最后 的密文数据块作为IV。
- Sequence number: 序号,每一方为每一个连接的数据发送与接收维护单独的顺序号。当一方发送或接收一个改变的cipher spec message时,序号置为0, 最大264-1。
8 SSL Record Protocol
- SSL Record Protocol为SSL连接提供两种服务
- 保密性。Handshake Protocol定义一个共享的保密密钥用于对SSL有效载荷加密。
- 消息完整性。Handshake Protocol定义一个共享的保密密钥用于形成MAC。
9 SSL记录协议中的操作
-
第一步,fragmentation
- 上层消息的数据被分片成214(16384)字节大小的块,或者更小
-
第二步,compression(可选)
- 必须是无损压缩,如果数据增加的话,则增加部分的长度不超过1024字节
-
第三步,MAC 计算:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 -
第四步, 加密, 可供选择的加密算法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
- 采用CBC模式,算法由cipher spec指定
- 数据长度不超过214+2048字节
10 SSL握手协议使用的消息
11 SSL握手协议的流程
(1)建立起安全协商:
? 交换Hello消息,包括协议版本、会话ID、密码套件、压缩算法、初始随机数等;
(2)服务器鉴别和密钥交换:
? 服务器发送证书,交换密钥并请求证书;然后发送信号结束hello消息阶段;
(3)客户鉴别和密钥交换:
? 如果服务器请求了证书,则客户发送证书。密户发送密钥交换,客户可以发送证书验证结果 ;
(4)结束:
? 交换密码套件并结束握手协议
|