IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> SSL/TLS协议 -> 正文阅读

[网络协议]SSL/TLS协议

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

在这里插入图片描述

协议分为两层

  • 底层: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 计算:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

  • 第四步, 加密, 可供选择的加密算法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apNwxpcT-1665468747354)(C:\Users\76708\AppData\Roaming\Typora\typora-user-images\image-20221008093145975.png)]

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

10 SSL握手协议使用的消息

在这里插入图片描述

11 SSL握手协议的流程

(1)建立起安全协商:

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

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

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

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

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

(4)结束:

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

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 13:08:02  更:2022-10-17 13:08:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 9:41:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码