SSL/TLS协议

SSL/TLS协议

文章目录

      • SSL/TLS协议
        • 1 协议历史
        • 2 协议的目标
        • 3 SSL体系结构
        • 4 两个主要的协议
        • 5 SSL的两个重要概念
        • 6 会话状态参数
        • 7 连接状态参数
        • 8 SSL Record Protocol
        • 9 SSL记录协议中的操作
        • 10 SSL握手协议使用的消息
        • 11 SSL握手协议的流程

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体系结构

SSL/TLS协议_第1张图片

协议分为两层

  • 底层:SSL记录协议

  • 上层:SSL握手协议、SSL改变加密规格协议、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 计算:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传SSL/TLS协议_第2张图片

  • 第四步, 加密, 可供选择的加密算法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传SSL/TLS协议_第3张图片

    • 采用CBC模式,算法由cipher spec指定
    • 数据长度不超过214+2048字节

10 SSL握手协议使用的消息

SSL/TLS协议_第4张图片

11 SSL握手协议的流程

(1)建立起安全协商:

​ 交换Hello消息,包括协议版本、会话ID、密码套件、压缩算法、初始随机数等;

(2)服务器鉴别和密钥交换:

​ 服务器发送证书,交换密钥并请求证书;然后发送信号结束hello消息阶段;

(3)客户鉴别和密钥交换:

​ 如果服务器请求了证书,则客户发送证书。密户发送密钥交换,客户可以发送证书验证结果 ;

(4)结束:

​ 交换密码套件并结束握手协议

SSL/TLS协议_第5张图片

你可能感兴趣的:(信息安全基础,ssl,网络协议,网络,web安全,web)