TLS、运输层安全协议

目录

运输层安全协议

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.mzph.cn/news/694564.shtml

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

相关文章

代码随想录算法训练营|day34

第八章 贪心算法 860.柠檬水找零406.根据身高重建队列452.用最少数量的箭引爆气球代码随想录文章详解 860.柠檬水找零 定义five,ten为顾客付5元和10元的张数,找零时首先找较大面额,分情况讨论: 如果顾客付5元,直接five 如果顾客付…

Python urllib模块学习

HTTP协议 HTTP 协议:一般指HTTP(超文本传输)协议。 HTTP是为Web浏览器和Web服务器之间的通信而设计的,基于TCP/IP通信协议嘞传递数据。 HTTP消息结构 客户端请求消息 客户端发送一个HTTP请求到服务器的请求消息包括以下格式 请求行(request line)请求…

Vue3 (父子组件传参)

父组件通过v-bind&#xff08;简写 :&#xff09;绑定一个数据&#xff0c;然后子组件通过defineProps接受传过来的值。 给Menu组件 传递了一个title 字符串类型是不需要v-bind <template><div class"layout"><Menu title"我是标题">…

Nginx被动健康检测配置

我使用 Nginx 做负载均衡&#xff0c;有时候可能某一台服务器可能会临时出问题&#xff0c;无法访问。这个时候就需要检测服务器是否有问题&#xff0c;这里的检测方式有两种&#xff1a; 1、被动健康检测 就是会判断请求在规定时间内是否报错&#xff0c;如果连续报错多少次…

mysql 2-20

TEXT类型 枚举类型 SET类型 二进制字符串类型 BLOB类型 注意事项 JSON类型 提取数据 空间类型 选择建议 约束

HQYJ 2024-2-21 作业

复习课上内容&#xff08;已完成&#xff09;结构体字节对齐&#xff0c;64位没做完的做完&#xff0c;32位重新都做一遍&#xff0c;课上指定2字节对齐的做一遍&#xff0c;自己验证&#xff08;已完成&#xff09;两种验证大小端对齐的代码写一遍复习指针内容&#xff08;已完…

如何通过本地消息表实现分布式事务?

本地消息表步骤 通过本地消息表&#xff08;也称为可靠消息表&#xff09;实现分布式事务是一种常见的做法&#xff0c;用于保证在分布式环境中消息的可靠传递和事务的一致性。以下是使用本地消息表实现分布式事务的一般步骤&#xff1a; 消息生产方&#xff08;也就是发起方&…

leetcode hot100-1

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回…

OpenMVS+Colmap安装

(在home目录下新建一个文件夹library(我给你建好了,解压就行),用来安装各种库文件) 先换源(国外的不用换源) 备份 sudo cp /etc/apt/sources.list /etc/apt/sourses.list_bk修改源 sudo gedit /etc/apt/sources.list将原所有内容删除,添加以下内容: deb http://m…

力扣724. 寻找数组的中心下标(前后缀和)

Problem: 724. 寻找数组的中心下标 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 分别求取nums数组的前、后缀和&#xff08;不包括当前元素&#xff09;&#xff0c;并比较当某个位置的前后缀和相等时&#xff0c;返回该位置&#xff1b; 复杂度 时间复杂度: …

电脑进水无法开机怎么办 电脑进水开不了机的解决方法

意外总是会不定时打破你的计划&#xff0c;电脑这类电器最怕遇到的除了火还有水&#xff0c;设备进水会导致数据丢失&#xff0c;那么我们遇到电脑进水怎么办&#xff1f;进水之后不正确处理也会引起很多不必要的麻烦. 解决办法 第一步&#xff1a;关机 如果您的电脑是在开…

软件测试面试常见问题【含答案】

一、面试技巧题(主观题) 序号面试题1怎么能在技术没有那么合格的前提下给面试官留个好印象&#xff1f;2面试时&#xff0c;如何巧妙地避开不会的问题&#xff1f;面试遇到自己不会的问题如何机智的接话&#xff0c;化被动为主动&#xff1f;3对于了解程度的技能&#xff0c;被…

char型变量中能不能存储一个中文汉字,为什么?(企业真题)

char型变量中能不能存储一个中文汉字&#xff0c;为什么&#xff1f; 可以的。char c1 ‘中’; char c2 ‘a’。 因为char使用的是unicode字符集&#xff0c;包含了世界范围的所有的字符。

软考33-上午题-【知识产权】-计算机软件的商业秘密权

一、商业秘密的定义 不为公众所知悉的&#xff0c;能为权利人带来经济利益、具有实用性并经权利人采取保密措施的技术信息和经营信息。 技术信息和经营信息是商业秘密的基本内容。 二、真题 真题1&#xff1a; 真题2&#xff1a; 申请专利、注册商标。 软件著作权&#xff0…

回归分析中的异方差性

在简单线性回归或多元线性回归中&#xff0c;我们对误差项做了一些基本假设。 简单线性回归&#xff1a; 多元线性回归&#xff1a; 假设条件&#xff1a; 1.误差均值为零 2.误差具有恒定方差 3.误差不相关 4.误差呈正态分布 第2个假设称为同方差性&#xff0c;因此&…

行李电子秤解决方案

在生活中&#xff0c;买菜时常常出现缺斤少两的情况&#xff0c;这种情况多是商家秤有很大问题&#xff0c;往往消费者是最吃亏的&#xff0c;这种情况下&#xff0c;我们最好是带个吊钩电子秤&#xff0c;测量菜的重量&#xff0c;有问题直接拨打举报电话举报商家&#xff0c;…

py2neo和neo4j

py2neo 和 neo4j 是两个 Python 中与 Neo4j 图数据库交互的库&#xff0c;但它们有不同的设计和使用方式。 py2neo: 类型: py2neo 是一个面向对象的库&#xff0c;提供了一个对象模型&#xff0c;使得与 Neo4j 数据库的交互更加 Pythonic。API 风格: 使用 Node 和 Relationship…

基于SSM实现的人事管理系统(源代码+数据库脚本)

文章目录 系统介绍技术选型成果展示账号地址及其他说明源码获取 系统介绍 系统演示 微信视频号&#xff1a;【全栈小白】查看视频 基于SSM实现的人事管理系统使用JavaEE开发&#xff0c;基于SpringMVCMybatis框架&#xff0c;该项目包含了用户管理、部门管理、职位管理、员工…

拯救者Legion Y9000K 2021H(82K6)原厂oem预装Win11系统镜像

lenovo联想拯救者Y9000K(82K6)原装出厂Windows11系统安装包下载&#xff0c;恢复出厂开箱状态 链接&#xff1a;https://pan.baidu.com/s/1DGWU7gctJerff6LJrgHD5w?pwdrbs5 提取码&#xff1a;rbs5 原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office…

Linux桌面

系统信息的截图 登录界面右下角可以切换 Ubuntu on Wayland &#xff0c;虽然还是测试版&#xff0c;不过体验已经比之前的 Xorg 好多了&#xff0c;最笔记本上使用最影响体验的高分屏适配功能&#xff0c;在 wayland 中也是几乎完美支持的。 卸载 snap 这个 snap 是 Ubuntu …