一文彻底搞懂 TSL 流程

文章目录

  • 1. 什么是 TSL
  • 2. TSL 流程
  • 3. CA 签发流程

1. 什么是 TSL

HTTPS(Hyper Text Transfer Protocol Secure)是基于 HTTP 协议之上的安全通信协议,它使用 TLS 或 SSL 加密协议来保护网络通信的安全性和隐私性。

TLS(Transport Layer Security)是 HTTPS 使用的加密协议,它的前身是 SSL(Secure Sockets Layer),用于在通信双方之间建立安全连接并保护数据的传输。

TLS 协议提供了以下主要功能:

  • 加密通信: TLS 使用加密算法对数据进行加密,确保数据在传输过程中不被窃取或篡改。

  • 身份验证: TLS 使用数字证书来验证通信双方的身份,确保通信的可信度和安全性。

  • 完整性保护: TLS 使用消息摘要算法来验证数据的完整性,防止数据在传输过程中被篡改。

HTTPS 通信的基本流程如下:

  • 客户端发起连接: 客户端向服务器发起连接请求,请求建立 HTTPS 连接。

  • 服务器响应: 服务器收到客户端请求后,返回一个证书,证书中包含了服务器的公钥等信息。

  • 证书验证: 客户端验证服务器返回的证书的有效性,包括验证证书的颁发者、有效期等信息,确保服务器的身份可信。

  • 密钥协商: 客户端和服务器协商选择一种加密算法,并交换用于加密通信的密钥。

  • 加密通信: 客户端和服务器使用协商好的加密算法和密钥进行数据加密和解密,确保通信的隐私和安全。

2. TSL 流程

在这里插入图片描述
TLS 握手过程可以分为四个阶段,每个阶段都涉及到客户端和服务器之间的交互。以下是 TLS 握手的四个阶段:

1.TLS 第一次握手:客户端向服务器发起加密通信请求,发送 ClientHello 消息。

客户端主要发送以下信息:

  • 支持的 TLS 协议版本,如 TLS 1.2。
  • 客户端生成的随机数(Client Random),用于生成「会话密钥」的一部分。
  • 客户端支持的密码套件列表,如 RSA 加密算法。

2.TLS 第二次握手:服务器收到客户端请求后,向客户端发送 ServerHello 消息作为响应。

服务器回应的内容包括:

  • 确认的 TLS 协议版本,如果浏览器不支持,则关闭加密通信。
  • 服务器生成的随机数(Server Random),用于生成「会话密钥」的一部分。
  • 确认的密码套件列表,如 RSA 加密算法。
  • 服务器的数字证书(Certificate)。

3.TLS 第三次握手:客户端收到服务器的响应后,首先通过 CA 公钥确认服务器的数字证书的真实性。

如果证书验证通过,客户端从数字证书中取出服务器的公钥,并用该公钥加密报文,向服务器发送以下信息:

  • 一个随机数(pre-master key),该随机数将被服务器的私钥解密。
  • 加密通信算法改变通知,表示随后的信息都将使用「会话密钥」加密通信。
  • 客户端握手结束通知,表示客户端的握手阶段已经结束。

4.TLS 第四次握手:服务器收到客户端的第三次握手消息后,通过协商的加密算法,计算出本次通信的「会话密钥」。

然后,服务器向客户端发送以下信息:

  • 加密通信算法改变通知,表示随后的信息都将使用「会话密钥」加密通信。
  • 服务器握手结束通知,表示服务器的握手阶段已经结束。
  • 客户端和服务器的握手阶段全部结束,建立安全连接,可以开始进行加密通信。

3. CA 签发流程

在这里插入图片描述
1.服务方S向第三方机构CA提交申请,其中包括公钥、组织信息和个人信息(域名)等信息,但不包括私钥。

2.CA收到申请后,通过线上、线下等多种手段对提供的信息进行验证,包括但不限于组织的合法性、企业的注册情况、域名的所有权等。

3.经过验证后,如果申请者提供的信息真实有效,CA会签发认证文件,即数字证书。

数字证书包含以下信息:

  • 申请者的公钥
  • 申请者的组织信息和个人信息(域名等)
  • 签发机构CA的信息
  • 证书的有效时间
  • 证书序列号等信息的明文
  • 同时,数字证书中还包含一个签名,用于验证证书的真实性和完整性。

签名的产生算法如下:

  • 使用散列函数对公开的明文信息(包括申请者信息、CA信息、有效时间等)计算信息摘要。
  • 然后,采用CA的私钥对信息摘要进行加密,得到密文,即签名。

这样生成的数字证书具有CA的数字签名,可以确保证书的真实性和完整性,同时可以被其他方用来验证证书的有效性。

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

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

相关文章

模拟游戏《幸福工厂》好玩吗?《幸福工厂》怎么在mac电脑上打开?

关于《幸福工厂》这款游戏是否好玩,普遍的玩家反馈和评价表明,《幸福工厂》(Satisfactory)因其深度的工厂建造模拟、自由度极高的探索以及精美的图形表现而受到许多玩家的喜爱。它允许玩家在一个开放的世界中规划并建立复杂的生产…

hibernate开发步骤

hibernate开发步骤 创建hibernate配置文件 创建实体类 创建对象-关系映射文件 通过hibernate访问数据库 下面提供一个简单地示例 hibernate配置文件 <?xml version1.0 encodingutf-8?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernat…

DeepL Pro3.1 下载地址及安装教程

DeepL Pro是DeepL公司推出的专业翻译服务。DeepL是一家专注于机器翻译和自然语言处理技术的公司&#xff0c;其翻译引擎被认为在质量和准确性方面表现优秀.DeepL Pro提供了一系列高级功能和服务&#xff0c;以满足专业用户的翻译需求。其中包括&#xff1a; 高质量翻译&#xf…

随机规划:求解报童问题期望值模型的算法方案

文章目录 1 引言2 数学模型3 报童问题3.1 直接最优化3.2 样本均值近似3.3 两阶段规划3.4 结果分析 4 在线求教5 相关阅读 1 引言 上一篇关于不确定优化的文章&#xff08;不确定优化入门&#xff1a;用简单实例讲明白随机规划、鲁棒优化和分布鲁棒优化 &#xff09;发表后&…

道可云元宇宙每日资讯|工信部:加快推动大模型等AI赋能制造业发展

道可云元宇宙每日简报&#xff08;2024年3月27日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 江苏无锡设立5000万元算力券资金 近日&#xff0c;无锡市算力赋能人工智能产业发展暨算力应用政策发布会召开&#xff0c;《关于加快推进算力发展和应用的实施意见》…

Vue3+Vite Nginx部署 跨域

打包项目 webstorm打开项目之后&#xff0c;在Terminal执行打包命令 pnpm run build:prod 复制到Nginx 打包完成之后,生成的包在根目录dist&#xff0c;把dist目录拷贝到Nginx放网站目录下&#xff1a;\nginx-1.25.2\html\divided &#xff0c;dist改名了divided 修改配置…

基于Java+SpringBoot+vue仓库管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

归并排序---分治法

1、算法的概念 归并排序&#xff1a;是创建在归并操作上的一种有效的排序算法。算法是采用分治法的一个非常典型的应用&#xff0c;且各层分治递归可以同时进行。归并排序的思路简单&#xff0c;速度仅次于快速排序&#xff0c;为稳定排序算法&#xff0c;一般用于对总体无序&…

2-Jquery层次选择器

一、选择题 1. 要选择ID为parent的元素下的所有直接子元素<div>&#xff0c;应使用哪个选择器&#xff1f; A. $("#parent > div") B. $("#parent div") C. $("#parent .div") D. $("#parent div") 答案&#xff1a; A 2…

鸿蒙OS开发实战:【网络管理HTTP数据请求】

一、场景介绍 应用通过HTTP发起一个数据请求&#xff0c;支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 二、 接口说明 HTTP数据请求功能主要由http模块提供。 使用该功能需要申请ohos.permission.INTERNET权限。 涉及的接口如下表&#xff0c;…

Nest安装及使用~

前提条件 请确保您的操作系统上安装了 Node.js&#xff08;版本 > 16&#xff09; &#x1f4da;要查看指南&#xff0c;请访问 https://docs.nestjs.com/ &#x1f4da;要查看中文 指南&#xff0c; 请访问 https://docs.nestjs.cn/ $ node -v v16.18.1 $ npm -v 7.x.x安…

基于YOLOV8+Pyqt5光伏太阳能电池板目标检测系统

1、YOLOV8算法 YOLOv8 是当前效果较好的目标检测 算法&#xff0c;它的核心网络来源于 DarkNet-53&#xff0c;该网络初次在 YOLOv3[11] 中被引入&#xff0c;并深受 ResNet[12] 的影响。DarkNet-53 使用了残差机制&#xff0c;并连续添加了卷积模块来加强其功能性。 这 53 层…

搜索算法练习——图像填充问题

图像填充问题&#xff1a;给定一个二维网格和一个起始像素点&#xff0c;将与起始像素点相邻且颜色相同的像素点填充成目标颜色。 我们分别使用深度优先搜索&#xff08;DFS&#xff09;和广度优先搜索&#xff08;BFS&#xff09;来解决图像填充问题&#xff0c;即将与起始像…

微服务之分布式事务概念

微服务之分布式事务概念 CAP定理和Base理论 CAP定理 CAP定理在1998年被加州大学的计算机科学家 Eric Brewer 提出&#xff0c;分布式系统有三个指标&#xff1a; 一致性&#xff08;Consistency&#xff09;可用性&#xff08;Availability&#xff09;分区容错性&#xff…

线上系统时间慢八个小时的排查之路

最近有一个新项目上线&#xff0c;在上线时&#xff0c;突然发现时间与正常时间对不上&#xff0c;少了八个小时&#xff1b;但我丝毫不慌&#xff0c;这不就是个时区的问题吗&#xff0c;简单&#xff0c;但是这一次它给我深深的上了一课&#xff0c;一起来看整个排查过程吧。…

交替子数组计数 - 力扣题解

⭐简单说两句⭐ ✨ 正在努力的小新~ &#x1f496; 超级爱分享&#xff0c;分享各种有趣干货&#xff01; &#x1f469;‍&#x1f4bb; 提供&#xff1a;模拟面试 | 简历诊断 | 独家简历模板 &#x1f308; 感谢关注&#xff0c;关注了你就是我的超级粉丝啦&#xff01; &…

HarmonyOS实战开发-如何实现一个简单的健康生活应用(下)

获取成就 本节将介绍成就页面。 功能概述 成就页面展示用户可以获取的所有勋章&#xff0c;当用户满足一定的条件时&#xff0c;将点亮本页面对应的勋章&#xff0c;没有得到的成就勋章处于熄灭状态。共有六种勋章&#xff0c;当用户连续完成任务打卡3天、7天、30天、50天、…

MySQL中如何进行多表查询

目录 一、子查询 1.什么是子查询 2.注意事项 二、联结查询 1.什么是联结 2.内部联结&#xff08;等值联结&#xff09; ①WHERE语句 ②ON语句 3.自联结 4.自然联结 5.外部联结 三、组合查询 1.什么是组合查询 2.UNION规则 *本节涉及概念来源于图灵程序设计丛书&a…

GUN C/C++ (GCC/CLANG) 对于 __int128_t (128位有符号大整数的扩展支持平台限制)

鉴于我们对于GCC&#xff0c;在多个CPU目标平台上适用 __int128&#xff08;GCC扩展&#xff09;兼容的情况&#xff0c;目前 __int128 仅限在编译64位可执行程序平台被支持。 本文将列出目标CPU平台的支援情况&#xff1a; X86 不支持&#xff08;i386、i686&#…

笔记: 数据结构与算法--时间复杂度二分查找数组

算法复杂度 不依赖于环境因素事前分析法 计算最坏情况的时间复杂度每一条语句的执行时间都按照t来计算 时间复杂度 大O表示法 n 数据量 ; f(n) 实际的执行条数当存在一个n0 , 使得 n > n0,并且 c * g(n) 恒> f(n) : 渐进上界(算法最坏的情况)那么f(n)的时间复杂度 …