当前位置: 首页 > news >正文

近期学习小结

一、TLS(Transport Layer Security)握手是建立安全通信通道的关键过程,确保客户端与服务器之间的通信加密和身份验证。以下是TLS 1.2和TLS 1.3的握手流程详解及对比:

TLS 1.2 握手流程


目标:协商加密套件、交换密钥、验证身份  
步骤:  
1. Client Hello 
- 客户端发送支持的TLS版本、加密套件列表(如`AES256-GCM-SHA384`)、随机数(Client Random)及扩展字段(如SNI)。
2. Server Hello  
- 服务器选择TLS版本、加密套件,并返回随机数(Server Random)和服务端证书(包含公钥)。
3. 证书验证
- 客户端验证服务器证书链(是否可信、是否过期、域名匹配等)。若启用双向认证,服务器会请求客户端证书。
4. Server Key Exchange 
- 若使用DH/ECDHE密钥交换,服务器发送临时公钥参数(如ECDHE公钥)和签名。
5. Server Hello Done  
- 服务器通知客户端初始协商完成。
6. Client Key Exchange  
- 客户端生成预主密钥(Pre-Master Secret),用服务器公钥加密(RSA)或发送临时公钥(DH/ECDHE)。
7. 密钥派生 
- 双方通过Client Random、Server Random和Pre-Master Secret生成会话密钥(Master Secret),再派生出加密密钥和MAC密钥。
8. 切换加密通信  
- 双方发送`Change Cipher Spec`通知,后续通信使用协商的密钥加密。
9. Finished 
- 双方发送加密的`Finished`消息,验证握手完整性。

TLS 1.3 握手流程

 优化目标:减少延迟(1-RTT或0-RTT)、移除不安全特性。  
关键改进:  
- 删除RSA密钥交换、静态DH,仅支持前向安全的ECDHE。  
- 合并多步骤为单条消息,支持1-RTT握手。  

步骤:  
1. Client Hello 
- 发送支持的加密套件、Client Random、密钥共享参数(如ECDHE公钥)。
2. Server Hello  
- 服务器选择参数,返回Server Random、密钥共享参数(ECDHE公钥),并附带证书和签名。  
- 直接生成会话密钥:双方通过ECDHE参数即时计算共享密钥。
3. 加密通信  
- 服务器立即发送`Finished`消息,客户端验证后即可开始加密通信(1-RTT)。  
- **0-RTT(可选)**:若之前连接过,客户端可在首次请求中携带加密数据(有重放攻击风险)。

二、DNS(Domain Name System)解析是将域名转换为IP地址的过程,以下是详细的解析流程:

---

1. 用户输入域名
用户在浏览器中输入域名,触发DNS解析请求。

---

2. 本地缓存查询
- 浏览器缓存:浏览器首先检查自身缓存中是否有该域名的解析结果。
- 系统缓存(Hosts文件):如果浏览器无缓存,操作系统会检查本地Hosts文件是否有对应的IP记录。
- 系统DNS缓存:操作系统查询本地DNS缓存。

> 若缓存命中且未过期:直接返回IP,解析结束。

---

3. 向递归DNS服务器发起请求
如果本地无缓存,系统会向递归DNS服务器(通常由ISP或公共DNS如`8.8.8.8`、`114.114.114.114`提供)发送查询请求。

- 递归DNS服务器缓存:递归服务器先检查自身缓存,若有记录则直接返回。
- 无缓存时:递归服务器开始迭代查询。

---

4. 迭代查询(根域名→顶级域→权威DNS)
递归服务器按层级依次查询以下DNS服务器:

(1) 根域名服务器(Root DNS)
- 全球共13组根服务器(逻辑上,实际通过任播扩展)。
- 返回`.com`顶级域(TLD)的DNS服务器地址(如`a.gtld-servers.net`)。

(2) 顶级域名服务器(TLD DNS)
- 管理`.com`、`.org`等顶级域的服务器。
- 返回`example.com`的**权威DNS服务器**地址(如`ns1.example.com`)。

(3) 权威域名服务器(Authoritative DNS)
- 由域名注册商或托管服务商(如Cloudflare、阿里云)提供。
- 返回`www.example.com`的IP地址(如`192.0.2.1`)。

---

5. 返回解析结果
- 递归DNS服务器将IP返回给用户,并缓存该记录(根据TTL值)。
- 操作系统和浏览器也缓存结果,加速后续访问。

---

6. 建立连接
用户获取IP后,通过TCP/IP协议(如HTTP/HTTPS)与目标服务器建立连接。

http://www.dtcms.com/a/284650.html

相关文章:

  • DIDCTF-陇剑杯
  • MySQL安装(yum版)
  • 为什么使用时序数据库
  • 通用人工智能AGI遥遥无期,面临幻灭
  • C++11 ---- lambda表达式
  • 【图像处理基石】如何入门色彩评估?
  • 最大子段和,但是两段# Kadane
  • IMU噪声模型
  • 第五届建筑防水科技创新大会召开,凯伦股份再度入选科技创新企业十强榜单!
  • Pytorch深度学习框架实战教程03:Tensor 的创建、属性、操作与转换详解
  • 杨耀东老师在ICML2025上对齐教程:《语言模型的对齐方法:一种机器学习视角》
  • 迅速高效从web2到web3转型 ,开启远程工作
  • 【yaml文件格式说明】
  • 开源大模型api接口调用
  • React钩子HOOK
  • 原生前端JavaScript/CSS与现代框架(Vue、React)的联系、区别与运行环境(精简版)
  • [yotroy.cool] Git 历史迁移笔记:将 Git 项目嵌入另一个仓库子目录中(保留提交记录)
  • Mysql测试题
  • AI 智能质检系统在汽车制造企业的应用​
  • ubuntu 22.04 pam 模块设置用户登录失败锁定
  • RocketMQ 高可用集群架构与一致性机制解析
  • reids依赖删除,但springboot仍然需要redis参数才能启动
  • 黄仁勋链博会首秀:中国开源AI催化全球革命,机器人浪潮重塑未来工厂
  • HCIE - 云计算拿下后的职业选择如何规划?
  • HCIE - 云计算方向考什么?一文全解
  • JMeter 性能测试工具
  • 推荐较好的zynq开发博客
  • 算法竞赛备赛——【图论】求最短路径——Floyd算法
  • Redis 中的看门狗机制:分布式锁的守护者
  • 力扣每日一题--2025.7.17