网络传输过程

https传输过程

客户端发起HTTPS请求


操作:用户在浏览器输入 https://www.example.com
技术细节:
客户端向服务器443端口发起TCP连接
发送Client Hello消息(包含支持的TLS版本、加密套件、客户端随机数)
安全意义:建立安全通信的起点


服务器返回数字证书


操作:服务器响应并发送数字证书
技术细节:
包含公钥A(通常为RSA/ECC公钥)
证书包含:域名、有效期、颁发机构、公钥信息
示例证书结构:
plaintext
证书版本:v3
序列号:00:aa:bb:cc...
签名算法:sha256WithRSA
颁发者:CN=DigiCert Global CA
有效期:2023-01-01 至 2024-12-31
主体:CN=www.example.com
公钥:RSA 2048位
X509v3扩展:
Subject Alternative Name: DNS:example.com
安全意义:提供服务器身份凭证


客户端验证证书


操作:客户端验证证书合法性
验证流程:
检查证书有效期
验证证书链(从服务器证书→中间CA→根CA)
检查CRL/OCSP吊销状态
验证域名匹配(防止钓鱼网站)
验证失败处理:
浏览器显示警告(如NET::ERR_CERT_INVALID)
用户可选择是否继续访问


生成会话密钥


操作:客户端生成随机对称密钥
技术细节:
生成256位随机数(称为Pre-Master Secret)
在TLS 1.3中称为"Shared Secret"
结合客户端随机数、服务器随机数生成最终会话密钥
math
会话密钥 = HKDF_Expand(
HKDF_Extract(Pre-Master, "TLS Key"),
ClientRandom + ServerRandom,
32
)
安全意义:确保每次会话使用唯一密钥


加密传输会话密钥


操作:用公钥A加密会话密钥
技术细节:
使用RSA加密:Ciphertext = (KEY^e) mod n
或使用ECDH密钥交换(更安全的前向保密)
TLS 1.3中默认使用ECDHE密钥交换
安全意义:防止中间人获取对称密钥


服务器解密会话密钥


操作:服务器用私钥B解密
技术细节:
RSA解密:KEY = (Ciphertext^d) mod n
此时双方拥有相同的会话密钥
安全意义:建立端到端的加密通道基础


切换加密模式


操作:双方发送ChangeCipherSpec
技术细节:
客户端→服务器:ChangeCipherSpec通知
服务器→客户端:ChangeCipherSpec响应
启用协商好的加密套件(如AES_256_GCM)
安全意义:正式启用加密通信


加密数据传输(客户端→服务器)


操作:客户端发送加密的HTTP请求
技术细节:
python
# 加密过程
ciphertext = AES_GCM_encrypt(
key=会话密钥,
plaintext="GET / HTTP/1.1...",
nonce=随机数,
auth_data=附加数据
)
实际数据包:
hex
17 03 03 00 30   # TLS头部
01 02 03 ... 3A  # 加密后的应用数据
60 7B 91 A5      # 认证标签(GCM)


加密数据传输(服务器→客户端)


操作:服务器返回加密的HTTP响应
技术细节:
使用相同会话密钥解密请求
生成加密响应:
python
response = "HTTP/1.1 200 OK..."
encrypted_res = AES_GCM_encrypt(key, response)
性能优化:
TLS会话恢复(Session Tickets)
0-RTT数据(TLS 1.3特性)


连接关闭


操作:加密通信结束
技术细节:
发送加密的close_notify警报
安全关闭TCP连接
安全意义:防止截断攻击
关键安全机制总结:
双阶段加密:
非对称加密:安全传输会话密钥(RSA/ECDH)
对称加密:高效加密业务数据(AES/ChaCha20)
证书信任体系:
三级验证(服务器证书→中间CA→根CA)
OCSP在线证书状态检查
前向保密(PFS):
ECDHE密钥交换
每次会话生成唯一密钥
即使私钥泄露,历史会话仍安全
完整性保护:
HMAC-SHA256消息认证
AEAD模式(如AES-GCM)内置完整性校验

DNS传输过程

客户端发起DNS查询

操作:用户在浏览器输入域名(如 www.example.com)
技术细节:
生成DNS查询报文(UDP 53端口)
报文结构:
plaintext
Header:
ID: 0x4d20      // 随机事务ID
Flags: RD=1      // 递归查询请求
Questions: 1
Question Section:
QNAME: www.example.com
QTYPE: A        // 请求IPv4地址
QCLASS: IN      // Internet类
协议选择:
默认使用UDP(报文<512字节)
大响应自动切换TCP

解析器检查缓存

操作:本地DNS解析器查询缓存
检查内容:
浏览器DNS缓存
操作系统DNS缓存
路由器DNS缓存
ISP DNS服务器缓存
缓存时效:
根据TTL(Time to Live)值决定
典型TTL值:
根域名:48小时
TLD域名:24小时
主机记录:5分钟-1小时

查询根DNS服务器

操作:解析器向根DNS服务器发起查询
技术细节:
全球13组根服务器(a.root-servers.net ~ m.root-servers.net)
响应包含TLD服务器信息:
plaintext
Authority Section:
com.    172800  IN  NS  a.gtld-servers.net.
com.    172800  IN  NS  b.gtld-servers.net.
Additional Section:
a.gtld-servers.net.  A  192.5.6.30
b.gtld-servers.net.  A  192.33.14.30
关键点:根服务器不返回最终IP,只引导至正确TLD

查询顶级域(TLD)DNS

操作:解析器向.com TLD服务器查询
技术细节:
TLD服务器管理特定后缀(.com, .org, .cn等)
响应包含权威DNS信息:
plaintext
Authority Section:
example.com.  86400  IN  NS  ns1.example.com.
example.com.  86400  IN  NS  ns2.example.com.
Additional Section:
ns1.example.com.  A  192.0.2.1
ns2.example.com.  A  192.0.2.2

查询权威DNS服务器

操作:解析器向域名注册的权威DNS查询
技术细节:
权威服务器持有最终DNS记录
返回A记录(IPv4)或AAAA记录(IPv6):
plaintext
Answer Section:
www.example.com.  300  IN  A  93.184.216.34
www.example.com.  300  IN  A  93.184.216.35  // 可能多个IP
记录类型:
A:IPv4地址
AAAA:IPv6地址
CNAME:别名记录(如www→example.com)
MX:邮件服务器
TXT:文本验证信息

缓存并返回结果

操作:解析器缓存结果并返回客户端
缓存机制:
分层缓存:本地→ISP→公共DNS
缓存污染防护:
随机事务ID(16位)
随机源端口(DNS over TCP)
响应报文:
plaintext
Header:
ID: 0x4d20
Flags: QR=1, RA=1  // 响应+递归可用
Answer RRs: 1
Answer Section:
www.example.com.  300  IN  A  93.184.216.34

客户端建立连接

操作:客户端使用IP建立TCP连接
后续流程:
TCP三次握手
如果是HTTPS:TLS握手
HTTP请求/响应
关键点:DNS只负责域名→IP转换,不参与后续通信

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

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

相关文章

【LeetCode 3440. 重新安排会议得到最多空余时间 II】解析

目录LeetCode中国站原文原始题目题目描述示例1&#xff1a;示例2&#xff1a;示例3&#xff1a;示例4&#xff1a;讲解1. 新规则&#xff0c;新挑战2. 收益从何而来&#xff1f;两种可能性的诞生3. 我们的终极策略4. 当策略被压缩到极致第一次遍历&#xff1a;从左到右&#xf…

C++卸载了会影响电脑正常使用吗?解析C++运行库的作用与卸载后果

卸载C运行库可能导致常用软件瘫痪&#xff01;这些不起眼的组件为Photoshop、游戏等提供关键支持&#xff0c;多个版本共存是正常现象&#xff0c;随意清理会引发程序报错甚至闪退。一、前言&#xff1a;C不是“编程语言”那么简单很多用户在电脑中看到“Microsoft Visual C Re…

前端vue对接海康摄像头流程

1、拆包摄像头、插电源2、下载SADP&#xff08;设备网络搜索&#xff09;&#xff0c;连接设备&#xff0c;获取ip地址 下载地址&#xff1a;https://partners.hikvision.com/tools 找到自己的设备类型DS开头3、摄像头链接wifi、网线 登录设备预览配置网页-配置网络-可预览等 4…

org.casic.javafx.control.PaginationPicker用法

org.casic.javafx.control.PaginationPicker 是 CASIC&#xff08;或某位作者&#xff09;基于 JavaFX 自制的分页控件&#xff0c;功能比官方 Pagination 更完整&#xff0c;支持&#xff1a;首页 / 上一页 / 下一页 / 尾页按钮页码快速跳转每页条数自定义总数据量、当前页码、…

下载 | Win10 2021精简版,预装应用极少!(7月更新、Win 10 IoT LTSC 2021版、适合老电脑安装)

⏩ 【资源A047】Win10 IoT LTSC 2021精简版 &#x1f536;Windows 10 IoT 企业版 LTSC 2021 正式版更新中。LTSC是长期服务渠道版本&#xff0c;网友俗称“老坛酸菜版”&#xff0c;相当于精简版Win10&#xff0c;精简了很多预装应用&#xff0c;同时更新频率也更低&#xff0c…

Web3:Foundry使用指南

Foundry目录1. 前言2. 什么是Foundry3. 安装与环境配置1. 安装工具2. 重新加载 .bashrc3. 检查环境变量 PATH4. 手动运行 foundryup4. Foundry的基本使用1.创建一个新的Foundry项目2. 编写智能合约3. 编译智能合约4. foundry.toml 主要作用5.部署智能合约5. Cli参考1. forge2. …

uniapp+unipush推送配置

APP推送记录 一、使用框架 Uniappunipush推送插件 二、需要提前准备的 1.准备自有证书 可以用这个网站—香蕉云编&#xff08;用于安卓 ios证书生成&#xff09;https://www.yunedit.com/update/androidzhengshu/list 安卓证书生成后&#xff0c;下载证书&#xff0c;除了原文…

CentOS系统哪些版本?分别适用于那些业务或网站类型?

CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一款开源的企业级 Linux 操作系统&#xff0c;因其稳定性、安全性和长期支持周期&#xff0c;广泛应用于服务器环境。以下是 CentOS 的主要版本及其适用场景的详细介绍。1. CentOS 主要版本CentOS 的版本…

【前端】【Iconify图标库】【vben3】createIconifyIcon 实现图标组件的自动封装

&#x1f9e9; Vue 图标管理全攻略&#xff1a;Iconify createIconifyIcon 封装最佳实践 在前端项目中&#xff0c;图标无处不在。按钮需要图标&#xff0c;导航需要图标&#xff0c;提示信息也少不了图标。如何优雅、高效地使用图标&#xff0c;是每个中大型 Vue 项目不可回…

数据可视化全流程设计指南

一、需求定义阶段1. 明确核心目标回答关键问题&#xff1a;2. 确定数据特性import pandas as pd data pd.read_csv(your_data.csv) print(f""" 数据概览: - 维度: {data.shape[1]}列 {data.shape[0]}行 - 类型分布: {data.dtypes.value_counts()} - 缺失值: …

Llama系列:Llama1, Llama2,Llama3内容概述

前言 参考视频&#xff1a;大模型修炼之道(三): Llama系列讲解 Llama1&#xff0c;Llama2, Llama3_哔哩哔哩_bilibili 本博客是基于视频的学习笔记&#xff0c;以及相关知识点的扩充 Llama1 1. 动机 使用完全开源数据&#xff0c;性能媲美GPT3研究开源&#xff0c;禁止商用…

Docker 搭建本地Harbor私有镜像仓库

Docker 搭建本地Harbor私有镜像仓库 一、Harbor 核心价值与企业级特性解析 在容器化技术普及的背景下&#xff0c;镜像仓库作为容器生命周期的核心组件&#xff0c;其可靠性直接影响开发效率与生产稳定性。Docker 官方的 Registry 虽能实现基础镜像存储&#xff0c;但存在明显短…

AI 助力:如何批量提取 Word 表格字段并导出至 Excel

在日常办公中&#xff0c;我们经常需要处理大量的 Word 文档中的表格数据&#xff0c;如学生登记表、客户信息表、报名表等。然而这些表格往往格式各异、字段命名不统一&#xff08;如“姓名”“名字”“Name”&#xff09;&#xff0c;甚至含有合并单元格或多余空白行&#xf…

在 Azure Linux 上安装 RustFS

本文分享在 Azure Linux 上安装并使用对象存储 RustFS 的过程。 关于 RustFS RustFS 是一款用 Rust 语言编写的分布式存储系统&#xff0c;兼容 S3 协议&#xff0c;是 MinIO 的国产化平替。详情可以前往 RustFS 官网。目前&#xff0c;RustFS 支持二进制、Docker 安装方式&am…

实现在线预览pdf功能,后台下载PDF

<!-- PDF预览模态框 --><n-modalv-model:show"pdfModalVisible"title"投诉统计报告预览":closable"false":mask-closable"false"positive-click"closePdfModal"positive-text"关闭":width"900"…

华为VS格行VS中兴VS波导随身WIFI6怎么选?流量卡OR随身WIFI,长期使用到底谁更香?

在移动互联时代&#xff0c;流量焦虑成为现代人的通病。面对"办流量卡还是随身WiFi"的抉择&#xff0c;许多人陷入两难。本文从实际需求出发&#xff0c;用数据和场景帮你精准决策&#xff0c;尤其这五类人群建议直接选择正规随身WiFi。一、这五类人&#xff0c;随身…

AI网络搜索

作为AI应用程序开发人员在了解函数调用&#xff08;Function Calling&#xff09;特性调用本地函数时可能注意到列表型参数tools中每一个元素都携带有一个type值。而在大多数函数调用示例程序中&#xff0c;这个type值一直被设定为“function”&#xff0c;这意味着它还可能存在…

39.Sentinel微服务流量控制组件

雪崩问题 微服务调用链路中某个服务故障,引起整个链路中的所有微服务都不可用。 解决方案 1.超时处理:设置一个超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止的等待。(只能起到缓解作用,并不能从根本上解决问题) 2.舱壁模式:限定每个业务能使用的线程…

基于hadoop的竞赛网站日志数据分析与可视化(下)

【基于hadoop的竞赛网站日志数据分析与可视化&#xff08;上&#xff09;】讲解了如何用hadoop对数据进行初步处理&#xff0c;本篇主要讲解用python对结果数据进行可视化分析。 ------------------------------------------------------------------------------------------…

Python爬虫打怪升级:数据获取疑难全解析

一、引言 **​​​ 在大数据时代,数据就是价值的源泉。而 Python 爬虫,作为数据获取的得力助手,凭借 Python 简洁的语法和丰富强大的库,在众多领域发挥着重要作用。无论是电商领域的价格监测、市场调研中的数据收集,还是学术研究里的文献获取,Python 爬虫都能大显身手。…