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

12. 说一下 https 的加密过程

总结

  1. 客户端发送一个 http 请求,告诉服务器支持哪些 hash 算法。
  2. 服务端发送证书(公钥、网址、证书机构等)给客户端。
  3. 验证证书
  4. 生成随机密码(RSA 签名):对称密码用公钥加密,服务器用私钥解密。进行传输
  5. 生成对称加密算法

说一下 HTTPS 的加密过程

HTTPS(HyperText Transfer Protocol Secure)是 HTTP 协议的安全版本,通过 SSL/TLS 协议实现数据加密传输,确保客户端与服务器之间的通信安全。


一、HTTPS 的核心作用

作用描述
身份验证确保访问的是真实的服务器(通过证书验证)
数据加密防止中间人窃听或篡改通信内容
完整性校验确保数据在传输过程中未被篡改

二、HTTPS 加密通信流程详解(以 TLS 1.2 为例)

✅ 第一步:客户端发起请求(ClientHello)

  • 客户端向服务器发送 ClientHello 消息,包含:
    • 支持的 TLS 版本
    • 支持的加密套件(Cipher Suites)
    • 支持的压缩算法
    • 随机数(ClientRandom

✅ 第二步:服务器响应(ServerHello)

  • 服务器返回 ServerHello 消息,包含:
    • 选定的 TLS 版本
    • 选定的加密套件
    • 随机数(ServerRandom
  • 同时发送:
    • 服务器证书(含公钥)
    • 可选:请求客户端证书(双向认证时)

✅ 第三步:客户端验证证书

  • 客户端对服务器证书进行验证,主要包括:
    • 是否由受信任的 CA(证书颁发机构)签发
    • 证书是否在有效期内
    • 证书中的域名是否与当前访问域名一致
  • 若验证失败,浏览器会提示“证书错误”并中断连接

✅ 第四步:生成预主密钥(Pre-Master Secret)

  • 客户端生成一个随机的预主密钥(Pre-Master Secret)
  • 使用服务器证书中的公钥对该预主密钥进行加密
  • 发送加密后的数据给服务器(ClientKeyExchange

✅ 第五步:服务器解密预主密钥

  • 服务器使用自己的私钥解密出预主密钥
  • 此时,客户端和服务器都拥有:
    • ClientRandom
    • ServerRandom
    • Pre-Master Secret

✅ 第六步:双方生成主密钥(Master Secret)

  • 利用上述三个随机值,通过伪随机函数(PRF)生成主密钥(Master Secret)
  • 主密钥用于派生后续通信所需的对称加密密钥

✅ 第七步:切换加密通信

  • 客户端发送 ChangeCipherSpec 消息表示之后的数据将使用对称加密
  • 发送 Finished 消息(已加密),用于验证握手过程是否被篡改
  • 服务器同样切换加密方式,并回复加密的 Finished 消息

✅ 第八步:开始加密数据传输

  • 双方使用协商好的对称加密算法和密钥进行数据加密传输
  • 常见加密算法包括:
    • AES(Advanced Encryption Standard)
    • ChaCha20
    • 3DES 等

三、加密过程总结图示

[客户端]                        [服务器]|-------- ClientHello -------->||                             ||<------- ServerHello ---------||<------- Certificate ---------||<------- ServerHelloDone -----||                             ||-------- ClientKeyExchange -->||-------- ChangeCipherSpec ---->||-------- Finished (encrypted) ->||                             ||<------- ChangeCipherSpec ----||<------- Finished (encrypted) -||                             ||<-- 加密数据交互(HTTP 请求/响应)-->|

四、常见加密算法与概念说明

名称说明
RSA非对称加密算法,用于加密预主密钥
Diffie-Hellman(DH)密钥交换算法,支持前向保密(PFS)
ECDHE基于椭圆曲线的 DH 算法,性能更优
AES对称加密算法,速度快、安全性高
SHA哈希算法,用于签名和完整性校验
CA证书颁发机构,负责为服务器颁发可信证书

五、HTTPS 为什么安全?

  • 身份验证:通过证书机制防止连接到假冒网站
  • 加密传输:防止中间人监听通信内容
  • 完整性保护:使用 MAC(消息认证码)确保数据未被篡改
  • 前向保密(PFS):即使长期密钥泄露,也不会影响历史通信的安全性(需使用 ECDHE 等算法)

六、一句话总结

HTTPS 的加密过程本质上是一个混合加密机制:利用非对称加密建立安全通道,再通过协商出的对称密钥加密实际通信数据,从而实现安全、高效的网络通信。


http://www.lryc.cn/news/585266.html

相关文章:

  • 笔记 | 理解C/汇编中的数组元素访问
  • 飞算JavaAI:给Java开发装上“智能引擎”的超级助手
  • UNet改进(21):门控注意力机制在UNet中的应用与优化
  • 前端高频面试题深度解析(JavaScript + Vue + jQuery)
  • 云蝠智能 VoiceAgent重构企业呼入场景服务范式
  • SpringCloud云间剑歌 第一章:云间阁现,群雄并起
  • 智能运维管理平台:AI赋能的数字化转型引擎
  • DNS(Domain Name System,域名系统)
  • java底层的native和沙箱安全机制
  • JavaScript加强篇——第四章 日期对象与DOM节点(基础)
  • 如何批量旋转视频90度?
  • 【DataFlow】数据合成流水线工具
  • Neo4j启动
  • 将手工建模模型(fbx、obj)转换为3dtiles的免费工具!
  • 抽丝剥茧,一步步推导“大模型强化学习的策略梯度公式”
  • manifest.json只有源码视图没其他配置
  • Monorepo 与包管理工具:从幽灵依赖看 npm 与 pnpm 的架构差异
  • php的原生类
  • 云、实时、时序数据库混合应用:医疗数据管理的革新与展望(中)
  • 安全领域的 AI 采用:主要用例和需避免的错误
  • 将Blender、Three.js与Cesium集成构建物联网3D可视化系统
  • Redis数据库基础篇章学习
  • 2025年NSSCTF-青海民族大学 2025 新生赛WP
  • 【Spring Boot】Spring Boot 4.0 的颠覆性AI特性全景解析,结合智能编码实战案例、底层架构革新及Prompt工程手册
  • 《棒球规则介绍》领队和主教练谁说了算·棒球1号位
  • Lookahead:Trie 树(前缀树)
  • 关于List.of()
  • 深度对比扣子(Coze) vs n8n
  • PyTorch笔记5----------Autograd、nn库
  • Android Jetpack Compose 状态管理介绍