TLS、运输层安全协议

news/发布时间2024/5/15 7:41:38

目录

运输层安全协议

1 协议 TLS 的要点

1.1 协议 TLS 的位置

1.2 TLS 与应用层协议独立无关

1.3 协议 TLS 具有双向鉴别的功能

1.4 TLS 建立安全会话的工作原理

TLS 的握手阶段

TLS 的会话阶段

1.5 TLS 传送的记录格式

2 协议 TLS 必须包含的措施


运输层安全协议

现在广泛使用以下两个协议:

        -安全套接字层 SSL (Secure Socket Layer)

        -运输层安全 TLS (Transport Layer Security)  

1 协议 TLS 的要点

·安全套接层 SSL 由 Netscape 于 1994 年开发,广泛应用于基于万维网的各种网络应用(但不限于万维网应用)。

·SSL 作用在端系统应用层的 HTTP 和运输层之间,在 TCP 之上建立起一个安全通道,为通过 TCP 传输的应用层数据提供安全保障。

·1999 年,IETF 在 SSL 3.0 基础上设计了 TLS 1.0,为所有基于 TCP 的网络应用提供安全数据传输服务。

·2018 年 8 月,IETF 发布了经历了 28 个草案后才通过的最新版本TLS 1.3 [RFC 8446,建议标准](不向后兼容)。

·2020 年,旧版本 TLS 1.0/1.1 均被废弃。

1.1 协议 TLS 的位置

·在发送方,TLS 接收应用层的数据,对数据进行加密,然后把加密后的数据送往 TCP 套接字。

·在接收方,TSL 从 TCP 套接字读取数据,解密后把数据交给应用层。

1.2 TLS 与应用层协议独立无关

·TLS 提供了一个简单的带有套接字的应用程序接口 API,与 TCP 的API 相似。

·应用层使用 TLS 最多的就是 HTTPTLS 可用于任何应用层协议

·应用程序 HTTP 调用 TLS 对整个网页进行加密时,网页上会提示用户,在网址栏原来显示 http 的地方,现在变成了 https

·s 代表 security,表明现在使用的是提供安全服务的 HTTP 协议(TCP 的 HTTPS 端口号是 443,而不是平时使用的端口号 80)。

1.3 协议 TLS 具有双向鉴别的功能

·常用单向鉴别:客户端(浏览器)需要鉴别服务器,确信即将访问的网站服务器是安全和可信的。

·两个前提

        1.服务器需要有一个有效的 CA 证书来证明自己。CA 证书是运输层安全协议 TLS 的基石。

        2.浏览器应具有一些手段来证明服务器是安全和可信的。

·建立安全会话两个阶段

        1.握手阶段:使用握手协议

        2.会话阶段:使用记录协议

1.4 TLS 建立安全会话的工作原理

TLS 的握手阶段

·验证服务器,生成会话阶段所需的共享密钥

1.协商加密算法。 (1)浏览器 A 向服务器 B 发送浏览器的 TLS 版本号和一些可选的加密算法。 (2)B 从中选定自己所支持的算法(如 RSA),并告知 A,同时把自己的 CA 数字证书发送给 A。

2.服务器鉴别。(3)客户 A 用数字证书中 CA 的公钥对数字证书进行验证鉴别

3.生成主密钥。(4)客户 A 按照双方确定的密钥交换算法生成主密钥 MS (Master Secret)。 (5)客户 A 用 B 的公钥 PKB 对主密钥 MS 加密,得出加密的主密钥 PKB(MS),发送给服务器 B。

4.服务器 B 用自己的私钥把主密钥解密出来 :SKB(PKB(MS)) = MS 。这样,客户 A 和服务器 B 都有了为后面数据传输使用的共同的主密钥 MS。

5.生成会话密钥(7)和(8)。为了使双方的通信更加安全,客户 A 和服务器 B 最好使用不同的密钥。主密钥被分割成 4 个不同的密钥。每一方都拥有这样 4 个密钥(注意:这些都是对称密钥):

        ·客户 A 发送数据时使用的会话密钥 KA

        ·客户 A 发送数据时使用的 MAC 密钥 MA

        ·服务器 B 发送数据时使用的会话密钥 KB

        ·服务器 B 发送数据时使用的 MAC 密钥 MB

TLS 的会话阶段

·保证传送数据的机密性和完整性

·把长的数据划分为较小的数据块,叫做记录 (record)。对每一个记录进行鉴别运算和加密运算。

·记录协议对每一个记录按发送顺序赋予序号,第一个记录作为 0。发送下一个记录时序号就加 1,序号最大值不得超过 264 – 1,且不允许序号绕回。

·序号未写在记录之中,而是在进行散列运算时,把序号包含进去。客户 A 向服务器 B 发送一个明文记录时,对 MAC 密钥 MA 、记录的当前序号和明文记录进行散列运算,鉴别明文记录的完整性(内容和顺序均无误)。使用会话密钥 KA 进行加解密。

这种对记录加密的方法称为带关联数据的鉴别加密 AEAD (Authenticated Encryption with Associated Data) 。

1.5 TLS 传送的记录格式

·类型字段:指明所传送的记录是握手阶段的报文,还是应用程序传送的报文,或最后要关闭 TLS 连接的报文。

·长度字段:字节数,用于从 TCP 报文中提取 TLS 记录。

2 协议 TLS 必须包含的措施

·握手阶段补充的措施

        1.客户 A 和服务器 B相互发送不重数防止重放攻击

        2.生成预主密钥 PMS (Pre-Master Secret),为下一步生成主密钥使用。

        3.生成主密钥。客户 A 和服务器 B 各自使用同样的(已商定的)算法,使用预主密钥 PMS 、客户的不重数和服务器的不重数,生成主密钥 MS。

        4.客户 A 向服务器 B 发送的全部握手阶段报文的 MAC。

        5.服务器 B 向客户 A 发送的全部握手阶段报文的 MAC。

·关闭 TLS 连接:

        关闭 TLS 连接之前,A 或 B 应当先发送关闭 TLS 的记录,以防止截断攻击 (truncation attack)。

·截断攻击:在 A 和 B 正在进行会话时,入侵者突然发送 TCP 的 FIN 报文段来关闭 TCP 连接。

·如果 A 或 B 没有事先发送一个要关闭 TLS 的记录,那么 A 或 B 见到 TCP 的 FIN 报文段时,就知道这是入侵者的截断攻击了。因为入侵者无法伪造关闭 TLS 的记录。

·TLS 1.3 中使用了更加安全的椭圆曲线密码 ECC(Elliptic Curve Cryptography)与 AES,运算速度比 1.2 版本有很大的提高。

·TLS 1.3 还添加了 0-RTT 的功能。 

        ·如果客户之前连接过某服务器,TLS 1.3 通过储存先前会话的秘密信息,不需要经过 1-RTT 的握手过程,仅需 0-RTT 即可开始会话阶段,更加提高了 TLS 的效率。

        ·必须要防止可能发生的重放攻击。

欢迎一起学习~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/cUCq/697.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

基于JAVA+Springboot+Thymeleaf前后端分离项目:学校校园自习室教室座位预约系统设计与实现

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

云计算基础-存储虚拟化(深信服aSAN分布式存储)

什么是存储虚拟化 分布式存储是利用虚拟化技术 “池化”集群存储卷内通用X86服务器中的本地硬盘,实现服务器存储资源的统一整合、管理及调度,最终向上层提供NFS、ISCSI存储接口,供虚拟机根据自身的存储需求自由分配使用资源池中的存储空间。…

KUKA库卡机器人编程语言是什么?

KUKA库卡机器人的编程语言主要是KUKA Robot Language(简称KRL)。KRL是库卡机器人专门为其机器人系统设计的编程语言,用于编写和控制KUKA工业机器人的运动和操作。KRL结合了指令式编程和结构化编程的特点,具有一定的易学性和灵活性…

探索Linux系统中HTTP隧道技术的原理与实践

在Linux的世界里,HTTP隧道技术就像是一个神秘的魔法师,它能让你的网络请求穿越重重障碍,安全地到达目的地。今天,我们就来一起探索这个魔法师的奥秘,看看它是如何在Linux系统中施展魔法的。 首先,我们要明…

OpenHarmony—UIAbility组件生命周期

概述 当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,…

DS:八大排序之直接插入排序、希尔排序和选择排序

创作不易,感谢三连支持!! 一、排序的概念及运用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起 来的操作。稳定性&…

【数据结构】栈

1.栈的介绍 栈(也叫堆栈,Stack)是一种特殊的线性表,它只能在在表尾进行插入和删除操作,就像下面这样: 也就是说,我们只能在一端进行插入和删除,当我们依次插入1、2、3、4这四个元素…

振弦采集仪在岩土工程安全监测的应用案例

振弦采集仪在岩土工程安全监测的应用案例 河北稳控科技振弦采集仪在岩土工程安全监测中有多种应用案例,下面列举其中几个常见的: 1. 岩体稳定性监测:振弦采集仪可以用于监测岩体的位移和变形情况,以评估岩体的稳定性。通过安装在…

Codeforces Round 925(Div.3) A~G

A.Recovering a Small String(模拟) 题意: 尼基塔有一个由 3 3 3个小写拉丁字母组成的单词。拉丁字母的编号为 1 1 1到 26 26 26,其中字母"a"的编号为 1 1 1,字母"z"的编号为 26 26 26。 他将这…

1.网络游戏逆向分析与漏洞攻防-游戏启动流程漏洞-测试需求与需求拆解

内容参考于:易道云信息技术研究院VIP课 上一个内容:分析接收到的对话数据包 这是一个新的篇章,之前是关于把我们的东西放进游戏里和内存里的数据分析与利用,现在是专注于网络部分,通过分析网络数据包得到应用程序中各…

HarmonyOS 开发学习笔记

HarmonyOS 开发学习笔记 一、开发准备1.1、了解ArkTs语言1.2、TypeScript语法1.2.1、变量声明1.2.2、条件控制1.2.3、函数1.2.4、类和接口1.2.5、模块开发 1.3、快速入门 二、ArkUI组件2.1、Image组件2.2、Text文本显示组件2.3、TextInput文本输入框组件2.4、Button按钮组件2.5…

《隐私计算简易速速上手小册》第2章:关键技术介绍(2024 最新版)

文章目录 2.1 同态加密2.1.1 基础知识2.1.2 主要案例:云计算数据分析2.1.3 拓展案例 1:医疗数据分析2.1.4 拓展案例 2:金融风险评估2.2 安全多方计算(SMC)2.2.1 基础知识2.2.2 主要案例:跨机构金融数据共享2.2.3 拓展案例 1:医疗研究合作2.2.4 拓展案例 2:跨国界数据交…

TinyVue的Layout 布局使用Col 排序

使用v-for,循环返回数据returnData,并并排展示。这个功能之后项目中要用。 小tips: tiny-row中的:order,与内容中的:no,配合,实现升序降序排列:no绑定到index上,需要写在v-for后面v-for写在循环…

C# OCR识别图片中的文字

1、从NuGet里面安装Spire.OCR 2、安装之后,找到安装路径下,默认生成的packages文件夹,复制该文件夹路径下的 6 个dll文件到程序的根目录 3、调用读取方法 OcrScanner scanner new OcrScanner(); string path "C:\1.png"; scann…

Maven基础

文章目录 Maven基础01. Maven介绍1.1 初识Maven1.1.1 什么是Maven1.1.2 Maven的作用 02. Maven概述2.1 Maven介绍2.2 Maven模型2.3 Maven仓库2.4 Maven安装2.4.1 下载2.4.2 安装步骤 03. IDEA集成Maven3.1 配置Maven环境3.1.1 当前工程设置3.1.2 全局设置 3.2 Maven项目3.2.1 创…

16-k8s阶段性总结01-wordpress案例

一、案例架构 步骤简单分析: 1,准备NFS环境 2,【wordpress的pod】创建deployment资源的wordpress(pod)容器; 3,【用户访问的svc】创建用户访问的svc资源; 4,【数据库的po…

手动实现new操作符

<script>//前置知识// 每一个函数在创建之初就会有一个prototype属性&#xff0c;这个属性指向函数的原型对象// function abc(){// }// abc.prototype--> {constructor: f}// 在JS中任意的对象都有内置的属性叫做[[prototype]]这是一个私有属性&#xff0c;这个私有属…

C++ day6

以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系:比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位讲解员&#xff0c;他会为每种动物表演…

AtCoder Beginner Contest 341 D - Only one of two (Java)

AtCoder Beginner Contest 341 D - Only one of two (Java) 比赛链接&#xff1a;AtCoder Beginner Contest 341 D题传送门AtCoder&#xff1a;D - Only one of two D题传送门洛谷&#xff1a;[ABC341D] Only one of two 题目&#xff1a;[ABC341D】 Only one of two 题目…

CDC 整合方案:MySQL > Flink CDC + Schema Registry + Avro > Kafka > Hudi

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…
推荐文章