news 2026/7/3 2:29:01

传输层安全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
传输层安全

传输层安全

定义

传输层安全(TLS) 就是在HTTP和TCP之间TLS 就是在HTTP 和 TCP 中间加一层保护层。原先的流程是这样:

HTTP → TCP → IP → 网络

但是这样明文会直接传输。HTTP 本身是明文的。也就是说,如果你登录网站,发送:

username=abc&password=123456

中间有人抓包,可能直接看到。

加上TLS后:

HTTP → TLS → TCP → IP → 网络

所以 HTTPS 其实就是:HTTP + TLS = HTTPS

TLS 主要做三件事:

第一,加密

别人抓包也只能看到乱码,看不到你发的密码、cookie、网页内容。

第二,认证服务器身份

浏览器会检查证书,确认你连到的确实是unsw.edu.au,不是攻击者假冒的网站。

第三,防篡改

中间人不能偷偷把服务器返回的内容改掉。比如把pay $10 -> pay $1000 TLS 会检测出来。

TLS提供了:Confidentiality:机密性Integrity:完整性Authentication:认证

简易版TLS

设计逻辑

  1. 握手 Handshake

    双方互相验证身份(靠证书),然后协商出一个共享秘密(比如 DH 交换)。这一步结束后,只有通信双方知道这个密钥,窃听者不知道。

    • Alice 发Hello给 Bob。

    • Bob 发Public Key Certificate给 Alice,证书里面核心有两样东西:

      Bob 的身份信息

      Bob 的公钥 K_B^

    • Alice 生成一个Ms,也就是 Master Secret。然后 Alice 用 Bob 的公钥加密它:

      K_B^+(Ms) = Ems。Alice 把Ems发给 Bob。Bob 收到以后,用自己的私钥解密

    所以这一步结束后,结果是:

    Alice 知道 Ms Bob 也知道 Ms 中间人不知道 Ms

    这就是“协商/建立共享秘密”。

    所以这张图对应 ToySSL 的第一步:

    Handshake = 认证 Bob + 让 Alice 和 Bob 拥有同一个 Master Secret
  2. 密钥派生 Key Derivation

    共享密钥本身不直接拿来加密。你从它派生出多把密钥:一把加密用、一把算 MAC 用、甚至双向各一套。同一个密钥用在不同地方会削弱安全性——密钥分离原则。

    • Kc:客户端 → 服务器 的加密密钥
    • Mc:客户端 → 服务器 的 MAC 密钥
    • Ks:服务器 → 客户端 的加密密钥
    • Ms:服务器 → 客户端 的 MAC 密钥
  3. 数据传输 Data Transfer

    把HTTP需要传输的数据,切分成一条一条的record再独立加密,每条record加上MAC再发送

    所以一条 record 发出去长这样:

    明文数据 → 加上MAC → 整体加密 → 发送

    这样的好处是,可以来一条record就检验一条,不用等到整个会话结束后,才发现信息被篡改

  4. 安全关闭连接 Connection closure

    需要一个加密的"我说完了"信号,双方确认才算真正结束。

replay attack

攻击者可以截取到多条 record,然后不停的重复发送,或者调换record顺序发送

解决方法

sequence number放进 HMAC 计算中,即HMAC = MAC(Mx, sequence || data)

这样即使数据内容一样,只要序号不对,校验就过不了。

truncation attack

攻击者伪造一个 TCP 关闭连接的信号,导致一方误以为“数据传完了”,但其实后面还有内容。

于是接收方看到的是一个被截断的会话

解决方法

给 record 加type。比如type 0表示正常数据,type 1表示正常数据。然后把type也放入 HMAC:HMAC = MAC(Mx, sequence || type || data)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/29 10:35:10

Awesome RSS Feeds:一份按国家和兴趣分类的 RSS 订阅源合集

文章目录Awesome RSS Feeds:一份按国家和兴趣分类的 RSS 订阅源合集Awesome RSS Feeds:一份按国家和兴趣分类的 RSS 订阅源合集 RSS 订阅一直是很多人获取信息的主要方式。不用刷社交媒体,不用被算法推荐,打开阅读器就能看到自己关…

作者头像 李华
网站建设 2026/6/29 10:32:56

iOS系统调用转换技术深度解析:Windows平台上的跨架构模拟器实现

iOS系统调用转换技术深度解析:Windows平台上的跨架构模拟器实现 【免费下载链接】ipasim iOS emulator for Windows 项目地址: https://gitcode.com/gh_mirrors/ip/ipasim 在移动应用生态中,iOS应用因其优秀的用户体验和丰富的功能而备受青睐&…

作者头像 李华
网站建设 2026/6/29 10:34:50

如何从Unity游戏资源中提取Live2D模型:技术原理与实战指南

如何从Unity游戏资源中提取Live2D模型:技术原理与实战指南 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 随着二次元游戏的流行,Live…

作者头像 李华
网站建设 2026/6/28 17:58:11

如何快速掌握Beyond Compare 5密钥生成:从零到精通的完整指南

如何快速掌握Beyond Compare 5密钥生成:从零到精通的完整指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 你是否曾经在使用Beyond Compare 5进行文件对比时,被突然弹…

作者头像 李华
网站建设 2026/6/28 17:58:10

FigmaCN终极指南:3种快速方法免费解锁中文版Figma

FigmaCN终极指南:3种快速方法免费解锁中文版Figma 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而困扰吗?想要专注于创意设计却被语言障…

作者头像 李华
网站建设 2026/6/28 17:58:09

QKeyMapper:终极游戏手柄按键映射工具,免费解锁PC游戏新体验

QKeyMapper:终极游戏手柄按键映射工具,免费解锁PC游戏新体验 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射…

作者头像 李华