揭开 TLS 握手的神秘面纱:它是什么以及它是如何工作的

news2024/11/24 3:59:04

传输层安全性 (TLS) 旨在为网络通信增加安全性。 就是浏览互联网时HTTP和HTTPS的区别。

使用 TLS 为客户端和服务器增加了额外的工作,但它有其好处,包括:

  • 机密性:TLS 将流量包装在加密隧道中。 这使得窃听者不可能在到达目的地的途中读取或修改流量。
  • 身份验证:TLS 向客户端证明服务器的身份。 这有助于防止网络钓鱼站点。
  • 完整性:TLS 包括有助于识别数据在传输过程中是否被修改或损坏的保护措施。

所有这些都是浏览网页时有价值的功能。 这就是 TLS 如此受欢迎以及大多数网站访问都以 TLS 握手开始的原因。

什么是 TLS 握手?

就像现实生活中的握手一样,TLS 握手是一个介绍。 它确定两台计算机想要以安全的方式相互交谈。

TLS 握手还定义了此对话的一些规则。 客户端和服务器都同意他们想要 TLS 的好处,但他们需要就细节达成一致。 TLS 握手让他们从最初的“你好”到可以开始私下交谈的地步。

在深入了解 TLS 握手的细节之前,了解一些关键词汇很重要。 TLS 是一种以安全为中心的协议,这意味着它使用了大量的密码学。 谈论 TLS 时需要了解的一些重要术语包括:

  • 非对称加密:非对称或“公钥”加密使用两个相关的密钥:公钥和私钥。 任何用公钥加密的东西都可以用相应的私钥解密。 同样,可以使用关联的公钥验证使用私钥生成的数字签名。
  • 对称加密:对称加密使用相同的密钥进行加密和解密。 这很有用,因为它比使用非对称密码术的加密更有效。 TLS 握手旨在设置共享对称加密密钥。
  • 密码套件:密码套件是 TLS 协议中使用的密码算法的组合。 这包括用于握手的非对称加密算法、用于加密通过连接发送的数据的对称加密算法、数字签名算法以及用于验证数据在传输过程中未被破坏的哈希函数。
  • 数字证书:数字证书证明了公钥的所有权。 服务器在 TLS 握手期间提供数字证书,以便客户端知道他们正在与正确的人通信。

TLS 握手内部

TLS 握手的目标是让客户端和服务器以安全的方式就共享的对称加密密钥达成一致。 为此,他们使用非对称加密,允许仅使用公钥发送加密消息。

TLS 握手的细节取决于所使用的非对称加密算法。 使用 RSA 的客户端和服务器经过以下步骤:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  1. 客户端问候:客户端通过向服务器发送配置信息来启动 TLS 握手。 这包括客户端支持的 TLS 版本、它可以使用的密码套件等数据,以及一些称为“客户端随机”的随机数据。
  2. 服务器问候:服务器响应一条消息,包括它对 TLS 版本和密码套件的选择、它的数字证书和“服务器随机数”。
  3. Premaster Secret:服务器提供的数字证书包含其公钥,可用于加密发送到服务器的消息。 在验证证书的有效性后,客户端会生成另一个随机值,称为预主密钥。 使用服务器的公钥,客户端加密此值并将其发送到服务器。
  4. 会话密钥:服务器使用其私钥来解密预主机密。 此时,client 和 server 都有 client random、server random 和 premaster secret。 他们从中计算出一个共享会话密钥。 由于 premaster secret 是一个秘密值——它仅以加密形式通过网络发送——会话密钥也是秘密的。
  5. Client Finished:为了完成 TLS 握手,客户端向服务器发送一条消息,该消息使用会话密钥加密。 服务器解密此消息并验证其正确性。 如果匹配,则服务器知道客户端正确计算了会话密钥。
  6. 服务器完成:服务器还发送一条使用共享会话密钥加密的消息。 解密和验证此消息向客户端证明服务器正确计算了会话密钥。

此时,客户端和服务器拥有一个只有他们自己知道的共享加密密钥。 对于 TLS 会话的其余部分,所有消息都将使用此会话密钥进行加密。

另一种结构

如上所述,使用不同的非对称加密算法会导致步骤的微小变化。 例如,如果客户端和服务器选择使用 Diffie-Hellman 而不是 RSA,则对第 2 步和第 3 步发送的消息内容稍作修改:

  • 在第 2 步中,服务器将发送一个包含客户端随机数、服务器随机数及其 Diffie-Hellman 参数的数字签名包。
  • 验证数字签名后,客户端用包含其 Diffie-Hellman 参数而不是预主密钥的消息进行响应。

使用这些 Diffie-Hellman 参数以及客户端和服务器随机数,客户端和服务器可以计算共享的秘密私钥。 最后,Diffie-Hellman 和 RSA 以略有不同的方式产生相同的结果。

超越基本握手

这里描述的过程是基本的 TLS 握手,在大多数 TLS 会话中使用。 但是,可以添加提供某些好处的额外步骤。

例如,基本的 TLS 握手使用数字证书向客户端验证服务器,但不向服务器验证客户端。 TLS 握手的修改版本也可以将客户端的数字证书发送到服务器,实现相互认证。

 

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

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

相关文章

[Swift]UIView抖动动画

以拨打视频电话时的拨打按钮抖动为例 import UIKitclass PACallPrepareAlertView: UIView {IBOutlet weak var callIV: UIImageView!private var isLeave: Bool falsedeinit {isLeave true}override func awakeFromNib() {super.awakeFromNib()shakeAction()}private func s…

套接字编程之接口

套接字编程之接口学习套接字之前你需要知道的套接字编程套接字TCP协议和UDP协议区别UDP协议的编写UDP通信两端流程具体操作接口介绍创建套接字为套接字绑定地址信息发送数据接收数据关闭套接字字节序相关接口📌————本章重点————📌 🔗…

【Ansible】ansible 变量

ansible 变量 文章目录ansible 变量一、Ansible 变量介绍二、变量命名规则三、变量类型1.全局变量2.剧本变量3.资产变量4.Facts 变量5.注册变量6.变量优先级一、Ansible 变量介绍 在 PlayBook 一节中,将 PlayBook 类比成了 linux 中的shell。那么它作为一门 ansibl…

搜索引擎收录查询,是什么影响了网站被搜索引擎收录

搜索引擎收录是指程序通过辨别把网站内容进行收录,同时会对这些内容进行价值以及其他方面的辨别。 我们想要知道网站有没有被搜索引擎收录,可以借助iis7seo批量查来查询网站有没有被搜索引擎收录。打开iis7seo批量查,添加需要查询的网站网址&…

计算结构体,位段,联合体(共用体)的大小

目录 一、计算结构体的大小 1.1 结构体的计算并不是简单的类型加运算 1.2 内存对齐 1.2.1 内存对齐规则 1.2.2 图解内存对齐 二、计算位段的大小 2.1位段是什么 2.2 位段的内存分配 三、计算联合体的大小 3.1 什么是联合体 3.2 联合体的内存分配 END. 一、计算结构…

Consensus Algorithm -- Raft

The Raft Consensus Algorithm Go 实现:etcd/raft、dragonboat Rust 实现:TiKV C 实现 :nebula-graph-storage、 RethinkDB、logcabin 拜占庭将军问题 拜占庭将军问题(Byzantine failures),是由莱斯利兰…

绝绝子!这些技巧真方便

技巧一:快速切换窗口 如果你还在使用桌面底部“任务栏”切换软件窗口,不妨试试这个“快速切换窗口”快捷键,仅需按住【Alt】键不放,并连续点按【tab】键即可实现窗口的快速切换,果真只有亲自上手体验才知道有多香&…

NLP中的对话机器人——问答机器人的应用场景

引言 本文是七月在线《NLP中的对话机器人》的视频笔记,主要介绍FAQ问答型聊天机器人的实现。 讲得还不错,关键是只要1分钱 FAQ问答机器人 FAQ就是一些常见问题与回答,比如https://letsencrypt.org/docs/faq/。 但是我们要做的不是一问一答…

原生RedHat OpenStack搭建

文章目录OpenStack的搭建方式实验软件及镜像实验环境配置NTP节点初始化配置配置本地yum仓库上传镜像文件至NTP节点搭建基于http的网络yum源搭建NTP服务配置Controller控制节点和Compute计算节点初始化配置安装RedHat OpenStack安装部署OpenStack配置OVS桥接OpenStack的搭建方式…

大赛启幕:2023数字中国创新大赛启动发布会在福州召开

2023年1月10日,由数字中国建设峰会组委会主办,福建省数字办、福建省工信厅、福建省通信管理局、福州市政府、泉州市政府、三明市政府、龙岩市政府等共同承办的2023数字中国创新大赛在福建省福州市盛大启幕。 十二届全国政协副主席王钦敏发来书面致辞。中…

Windows 10随机性死机怎么办?

在诸多的电脑问题中,死机算是格外恼人。尤其是当你正在编辑文档,正在做图,正在玩游戏,电脑突然死机,万一再加上没保存…… 如果你在使用Win10系统的过程中遇到随机性死机的问题,赶紧看看这篇文章。 小编整…

LeetCode 113. 路径总和 II

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 113. 路径总和 II,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 LeetCode …

简单通讯录的实现

这次我们来实现一个简单的通讯录 目录 1.基本框架及的实现 2.相关结构体的实现 3.通讯录的初始化 4.新建联系人 5.显示所有联系人信息 6.删除联系人 7.查找指定联系人 8.修改联系人信息 9.对联系人进行排序 10.完整代码 既然是通讯录,我们要实现以下内容 …

内存泄漏调优案列

案列背景 最近在做公司项目核心接口压测和稳定性压测时,各接口的成功率不足99.99%,通过分割压测之后发现,在压测A服务时,内存上升明显,且伴有频繁的fgc发生 jvm老年代内存使用率已经达到了100%且应用的fgc有5000次&am…

离散数学与组合数学-02二元关系上

文章目录离散数学与组合数学-02二元关系上2.1 序偶和笛卡尔积2.1.1 有序组的定义2.1.2 笛卡儿积笛卡儿积的性质2.2 关系的定义2.2.1 二元关系定义与案例2.2.2 二元关系的数学符号定义案例枚举二元关系2.2.3 定义域和值域2.2.4 二元关系概念的推广2.3 关系的表示2.3.1 集合表示法…

RS-485/RS-422收发器芯片DP3085 兼容替代MAX3085EESA

什么是RS-485 典型的串行通讯标准是RS232和RS485,它们定义了电压,阻抗等,但不对软件协议给予定义。RS-485总线标准规定了总线接口的电气特性标准即对于2个逻辑状态的定义:正电平在2V~6V之间,表示一个逻辑状态&#xf…

【基于动态内存+文件操作】通讯录管理系统

前言 每一个项目文件的功能说明 打印基本菜单1.创建一个适合存放联系人信息的结构体和通讯录结构体2.初始化通讯录(加载上次的联系人,检查容量是否充足) 枚举常量内部内容 (1)增加联系人信息 (2)删除某个联系人信息 (3)查找联系人信息 …

CY5.5-Dextran Cy5.5菁染料标记葡聚糖

产品名称:荧光Cy5.5菁染料标记葡聚糖 英文名称:CY5.5-Dextran 外观状态:紫色粉末 质量:90% 荧光波长:684nm-710nm 溶解性Dextran葡聚糖(右旋糖酐Dextran),是一类具支链葡萄糖高聚物,…

系分 - 案例分析 - 需求分析(FAST分析)

个人总结,仅供参考,欢迎加好友一起讨论 文章目录案例分析 - 需求分析(FAST分析)FAST1 范围定义2 问题分析鱼骨图帕累托图制定系统改进目标3 需求分析定义需求PIECES方法4 逻辑设计5 决策分析6 物理设计和集成/构造和测试/安装和发…

考虑写出一个不抛异常的swap 函数

目录 一.标准库中的swap函数 二.针对于非模板类,设计全特化的std::swap() 三.针对模板类 四.合理使用using 五.swap成员函数不能抛出异常 六.swap函数总结 一.标准库中的swap函数 在C11中有move函数,它可以是一个左值变为右值,在许多场…