HTTPS流程:

HTTPS核心:加了TLS层,加密传输+身份认证

TLS:信息加密、校验机制、身份证书

        TLS(Transport Layer Security)握手是建立安全通信通道的关键过程,发生在客户端(如浏览器)和服务器之间。其主要目标是协商加密参数、验证身份(通常是服务器)并生成共享密钥,以实现后续通信的机密性和完整性。

1、Client Hello (客户端问候):

  • 客户端向服务器发起连接。
  • 发送支持的 TLS 版本列表。
  • 发送一个客户端生成的随机数。

2、Server Hello (服务器问候):

  • 服务器从客户端支持的列表中选择:
  • 一个双方都支持的 TLS 版本。
  • 一个双方都支持的密码套件。
  • 服务器生成一个随机数并发送给客户端。

3、服务器证书:

  • 服务器发送其数字证书给客户端。
  • 该证书包含服务器的公钥、身份信息(域名等),并由受信任的证书颁发机构签名。

4、服务器密钥交换:

  • 此消息通常包含一个签名(用服务器证书对应的私钥生成),证明服务器拥有该证书的私钥并控制了该公钥。

5、服务器问候结束:

  • 服务器表示其初始握手消息已发送完毕。

6、客户端密钥交换:

客户端验证服务器证书:

  • 检查证书是否由受信任的 CA 签发且在有效期内。
  • 检查证书中的域名是否与正在访问的域名匹配。
  • 验证证书链的完整性。

如果服务器发送了密钥交换参数:

  • 客户端将这部分参数发送给服务器。
  • 此时,客户端和服务器都拥有了对方提供的密钥交换参数和自己生成的私密参数。

7、客户端完成:

  • 客户端计算并发送一个加密的完成消息。
  • 这是客户端首次发送的加密消息,用于验证握手过程的完整性以及密钥是否正确协商。

8、服务器完成:

  • 服务器计算并发送一个加密的完成消息。
  • 使用协商好的密钥和算法进行加密。
  • 客户端验证此消息。

客户端和服务器现在可以开始使用协商好的对称加密密钥(主密钥派生的会话密钥)和算法安全地传输应用层数据(如 HTTP 请求和响应)。所有后续通信都被加密和完整性保护。

DNS传输流程:

Linux下:nslookup和dig
Windows下:nslookup

 

  1. 检查本地DNS缓存: 操作系统首先查询本机的DNS缓存记录。如果找到该域名对应的IP地址,则解析完成。

  2. 检查hosts文件: 若本地缓存未命中,则查询操作系统的hosts文件(Linux通常位于/etc/hosts,Windows位于C:\Windows\System32\drivers\etc\hosts)。如果该文件包含域名与IP的映射关系,则直接使用该IP地址完成解析。

  3. 查询本地DNS服务器: 若hosts文件也未提供解析,操作系统将查询请求发送至网络配置中指定的本地DNS服务器(通常由ISP或网络管理员提供)。如果本地DNS服务器缓存中有此记录,则返回结果,解析结束。

  4. 查询根DNS服务器: 若本地DNS服务器无缓存记录,它则向根DNS服务器发起查询请求。

  5. 获取顶级域名服务器地址: 根DNS服务器根据域名后缀(如.com.cn.org等)返回负责该顶级域名的顶级DNS服务器地址(全球根DNS服务器数量有限,约13组)。

  6. 查询顶级域名服务器: 本地DNS服务器随后向接收到的顶级DNS服务器地址发送查询请求。

  7. 获取权威域名服务器地址: 顶级DNS服务器查找并返回负责该具体域名的权威域名服务器(Name Server)的地址。

  8. 查询权威域名服务器: 本地DNS服务器接着向权威域名服务器发送查询请求。

  9. 获取解析结果并缓存: 权威域名服务器返回该域名最终的正确IP地址给本地DNS服务器。本地DNS服务器收到后,会缓存此域名与IP的映射关系,缓存时长由记录的TTL(生存时间)值决定。

  10. 返回结果给客户端并缓存: 本地DNS服务器将解析得到的IP地址返回给用户计算机。用户计算机同样会根据记录的TTL值,将该结果缓存在本地系统DNS缓存中。

  11. 建立连接访问目标: 用户计算机获得目标网站(如百度)的IP地址后,需要与该IP地址对应的服务器建立TCP连接(三次握手)。握手成功后,才能发送访问请求。目标服务器处理请求并返回响应后,用户才能访问该网站。

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

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

相关文章

板子 5.29--7.19

板子 5.29–7.19 目录 1. 树状数组 2. KMP 3. 矩阵快速幂 4. 数位DP 5. 状压枚举子集 6. 快速幂(新版 7. priority_queue 8. dijkstra 9. 单调栈 10. debug内容 1. 树状数组 // 树状数组 快速求前缀和 / 前缀最大值 // 维护位置数量(离散化)...// (区间加 区间求和…

min-max容斥学习笔记

最近报了航电的春季赛,在一道题目里面遇到了做法,感觉挺有意思。 考虑一个(多重)集合S{ai}S\{a_i\}S{ai​},有如下的等式成立 min⁡ai∈S(ai)∑T⊆S,T≠∅(−1)∣T∣−1max⁡ai∈T(ai)\min_{a_i\in S}(a_i)\sum_{T\sub…

使用帆软制作项目

https://zhuanlan.zhihu.com/p/23429318335 项目背景 为加快大数据体系建设,稳步推进数字化转型战略,规范数据架构体系和数据治理体系,运用大数据推进全行数字化转型建设,为业务发展提供创新动力,目标是利用金融科技和…

论C/C++的条件编译#if、#ifdef、#ifndef、#undef

我们以实例来演示: ------------------------------------------实验①------------------------------------------ 子函数:主函数:当定义了COMMENT_FLAG该宏,且其为0,则运行结果如下:只执行了sub_func_1函…

21、鸿蒙Harmony Next开发:组件导航(Navigation)

目录 设置页面显示模式 设置标题栏模式 设置菜单栏 设置工具栏 路由操作 页面跳转 页面返回 页面替换 页面删除 移动页面 参数获取 路由拦截 单例跳转 子页面 页面显示类型 页面生命周期 页面监听和查询 页面转场 关闭转场 自定义转场 共享元素转场 跨包…

“外卖大战”正在改变国内“大零售”

出品 | 何玺排版 | 叶媛7月18日,市场监管总局约谈美团、饿了么、京东三家外卖平台,要求“理性竞争、规范促销”,剑指近期愈演愈烈的“0元购”“0.1秒杀”等外卖补贴乱象。但约谈之后,平台们是真整改,还是玩话术&#x…

当CAN握手EtherCAT:视觉检测系统的“双芯合璧”时代来了

在汽车制造的高速生产线上,设备间的“语言不通”曾是工程师们的头疼事:CAN总线像踏实的老司机,稳扎稳打传输传感器数据;而EtherCAT网关则是追求极致速度的“闪电侠”,主导着实时控制的重任。当视觉检测系统需要同时对接…

【C语言】动态内存管理全解析:malloc、calloc、realloc与free的正确使用

C语言学习 动态内存分配 友情链接:C语言专栏 文章目录C语言学习前言:一、为什么要有动态内存分配二、malloc和free2.1 malloc2.2 free三、calloc和realloc3.1 calloc3.2 realloc总结附录上文链接下文链接专栏前言: 在C语言编程中&#xff0…

基于Arduino智能家居环境监测系统—以光照强度检测修改

2 相关技术与理论 2.1 Arduino 技术 Arduino 是一款广受欢迎的开源电子原型平台,由硬件和软件组成,为开发者提供了便捷且低成本的解决方案,尤其适用于快速搭建交互式电子项目,在本智能家居环境监测系统中担当核心角色。​ 硬件方…

前端上传 pdf 文件 ,前端自己解析出来 生成界面 然后支持编辑

要在前端解析 PDF 文件并生成可编辑界面,我们可以使用 PDF.js 库来解析 PDF 内容,然后将其转换为可编辑的 HTML 元素。 主要特点和工作原理如下: PDF 解析: 使用 Mozilla 的 PDF.js 库解析 PDF 文件内容,提取文本信息。…

Linux“一切皆文件“设计哲学 与 Linux文件抽象层:struct file与file_operations的架构解析

在Linux系统中,“一切皆文件”(Everything is a file)是一个核心设计哲学,它抽象了系统资源的访问方式,使得几乎所有硬件设备、进程、网络连接等都可以通过统一的文件接口(如open()、read()、write()、clos…

蓝桥杯零基础到获奖-第3章 C++ 变量和常量

蓝桥杯零基础到获奖-第3章 C 变量和常量 文章目录一、变量和常量1.变量的创建2.变量初始化3.变量的分类4.常量4.1 字⾯常量4.2 #define定义常量4.3 const 定义常量4.4 练习练习1:买票https://www.nowcoder.com/practice/0ad8f1c0d7b84c6d8c560298f91d5e66练习2&…

物理AI是什么技术?

当英伟达CEO黄仁勋在链博会上明确提出“物理AI将是AI的下一浪潮”时,这个看似陌生的概念瞬间引发了科技圈的广泛关注。究竟什么是物理AI?它与我们熟悉的人工智能有何不同?又将如何重塑我们与物理世界的交互方式? 物理AI&#xff1…

GRIB数据处理相关指令

GRIB 数据格式简介 GRIB(General Regularly distributed Information in Binary form),是由世界气象组织(WMO)设计和维护的一种用于存储和传输网格数据的标准数据格式,它是一种自描述的二进制压缩格式,通常具有扩展名…

微服务学习(六)之分布式事务

微服务学习(六)之分布式事务一、认识Seata二、部署TC服务1、准备数据库表2、准备配置文件3、docker部署三、微服务集成seata1、引入依赖2、改造配置3、添加数据库表4、测试四、XA模式1、两阶段提交2、seata的XA模型3、优缺点4、实现步骤五、AT模式1、Sea…

Go实现用户登录小程序

写一个用户登录注册的小程序 运行程序,给出提示1. 注册输入用户名、密码、年龄、性别 {"用户名": "root", "passwd": "123456", "age": 18, "sex": "男"}注册前要判断是否存在此用户2. 登录…

鸿蒙蓝牙通信

https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-bluetooth-low-energy 蓝牙权限 module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.ACCESS_BLUETOOTH","reason": "…

Java:Map

文章目录Map常用方法Map遍历的三种方法先获取Map集合的全部键,再通过遍历来找值Entry对象forEach结合lambda表达式Map 案例分析需求我的代码(不好)老师的代码(好)好在哪里另外集合分为Collection和MapMap常用方法 代码…

fastjson2 下划线字段转驼峰对象

在对接第三方或查询数据库时,返回的字段是下划线分隔的,而在业务中需要转成java对象,java对象的字段是驼峰的,使用fastjson2时,有两种方法可以实现: 比如数据格式是: {"item_id": &q…

【硬件】蓝牙音频协议

1. 无线音频传输的工作原理 在无线传输的过程中,音源设备首先将MP3、FLAC等音频文件还原为PCM格式。通过蓝牙音频编码转为蓝牙无线传输的文件,发送到音频设备段。将蓝牙无线传输的文件再次还原为PCM格式,之后转为模拟信号并放大,通…