首页 › programming › 公钥只换钥匙:HTTPS混合加密内核拆解

公钥只换钥匙:HTTPS混合加密内核拆解

导语:为什么"加密"两个字骗了你十年

每次你在浏览器里敲下一个网址,按下回车的那个瞬间,你的电脑和远端服务器之间,正在上演一场不到 200 毫秒却极其精密的"双人密码舞"。大部分人以为 HTTPS 就是用一把"公钥"把数据锁起来、服务器用"私钥"打开。这是流传最广、也最致命的误解。

真相是:那条加载了你整页淘宝订单、整段视频流量的密文,从来不是被公钥加密的。公钥在整个 HTTPS 会话里只干一件事——帮你换一把一次性的"会话钥匙",然后就退休了。真正加密你数据的,是一套你大概率没听过的对称加密(AES),它快到能把一部 4K 电影实时锁住,却慢得连一秒钟都离不开硬件加速。

TheBinaryBreakdown 频道的这支长片,把对称加密、非对称加密、哈希、TLS 握手这四块看似独立的内容,拼成了一张完整的拼图。它最值得看的地方,不在于教你怎么用 OpenSSL,而在于让你看清:互联网安全的核心,从来不是某个无敌算法,而是一次极其聪明的"分工"——用慢的算法解决分发问题,用快的算法解决吞吐问题,用不可逆的算法解决信任问题。 本文我会在视频讲解的基础上,补足它来不及展开的工程细节与历史脉络,特别是 5G/6G 时代这套体系为何依然不可替代。

视频背景卡片

项目 内容
视频标题 How Cryptography Actually Works: AES, RSA, Hashing & TLS Explained
频道 TheBinaryBreakdown
形式 单集综合长片(四主题串联讲解)
核心主题 对称加密 / 非对称加密 / 哈希 / TLS 如何拼成一次安全通信
适合人群 后端、安全、通信工程师,以及想真正搞懂 HTTPS 而非死记口诀的人
备注 视频元数据(精确时长/播放量)因访问限制未能完整拉取,标题与频道已核实

核心内容拆解

一、密码学的终极难题:你怎么把钥匙递给陌生人

整支视频的逻辑起点,是一个困扰了人类两千年的问题——密钥分发(Key Distribution)。凯撒密码也好,二战的 Enigma 也好,本质上都是对称加密:加密和解密用的是同一把钥匙(或能互相推出的钥匙)。对称加密又快又强,AES-256 的强度足以让全球所有计算机一起暴力破解到宇宙热寂都破不开。

但对称加密有一个致命软肋:你和对方必须事先共享同一把钥匙。问题是,如果你能把钥匙安全地交给对方,你为什么不直接用同样安全的渠道把明文交过去?这就是"鸡生蛋"的死循环。视频用了一个很妙的比喻:对称加密像一个坚固的保险箱,但你永远找不到一个"送保险箱钥匙"的安全快递员。整个现代密码学的诞生,就是为了破解这个"递钥匙"难题。 理解了这一点,你才能理解为什么后面要发明两种看起来很笨拙的算法。

二、对称加密 AES:又快又硬,却只能给熟人用

AES(Advanced Encryption Standard)是当代对称加密的事实标准,2001 年从比利时密码学家 Joan Daemen、Vincent Rijmen 设计的 Rijndael 算法中选出。它是一个分组密码(block cipher):每次处理 128 位(16 字节)的明文块,通过密钥长度决定轮数——AES-128 跑 10 轮,AES-192 跑 12 轮,AES-256 跑 14 轮。每一轮包含四个步骤:字节代换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、轮密钥加(AddRoundKey)。这套"替换-置换网络(SPN)"的设计,让明文每一比特都以雪崩效应迅速扩散到整个密文。

视频强调了一个工程常识:AES-256 被美国国家安全局(NSA)批准用于加密"绝密(Top Secret)"级信息,强度上毫无问题。但 AES 本身只保证"加一块 16 字节",不保证模式安全。真正决定安全的,是它外面套的"工作模式"——早年的 ECB 模式会暴露明文模式(著名的"企鹅图"实验),CBC 模式需要小心初始化向量,而当代主流是 AES-GCM:它在加密的同时生成一个认证标签(authentication tag),一步搞定机密性和完整性。视频没有展开但我必须补一句:现代 CPU 普遍带 AES-NI 硬件指令集,这让 AES 的开销低到可以忽略——这也是它为什么能扛起全互联网流量加密重任的物理前提。 没有硬件加速,HTTPS 会让整个互联网慢成上世纪的拨号。

三、非对称加密 RSA:用数学换来的"公共邮箱"

RSA 是 1977 年由 Rivest、Shamir、Adleman 三人提出的(有趣的是,英国 GCHQ 的 Clifford Cocks 早在 1973 年就发明了同样的算法,但因保密被埋没)。它解决了"递钥匙"难题,思路堪称天才:每人持有一对数学上绑定、但无法互相反推的钥匙——公钥和私钥。用公钥加密的,只有私钥能解;用私钥签名的,任何人都能用公钥验。

RSA 的安全性押在一个数论事实上:把两个大素数相乘很容易,但把乘积分解回两个素数极难。 选两个 1024 位以上的素数相乘,目前的算力(和量子计算机)都无能为力。这让你可以放心地把公钥贴满全世界,任何人都能用它给你"上锁",但只有持有私钥的你能"开锁"。这就是视频里那个"公共邮箱"比喻的来历——邮筒(公钥)人人可投,钥匙(私钥)只有你有。

但 RSA 有两个致命弱点,视频点到了关键:第一,它慢得离谱,比 AES 慢大约 1000 倍;第二,它处理不了大数据,能加密的明文长度受密钥长度限制,2048 位 RSA 一次只能加密约 245 字节。所以你绝不可能用 RSA 去加密一部电影或一段视频流——那等于让一辆自行车去拉一整列火车的货。这就是为什么 RSA 在真实系统里几乎从不直接加密业务数据。它的命运,在下一节被改写。

四、哈希 SHA-256:不可逆的数字指纹

很多人把哈希也算作"加密",这是又一个常见误解。视频明确划清了界限:哈希根本不是加密。加密是可逆的(有密钥就能解密),而哈希是单向、不可逆的——你把任意长度的输入扔进去,吐出一段固定长度(SHA-256 是 256 位)的"指纹",而且没有任何办法从指纹反推原文。

一个好的哈希函数必须满足:确定性(同样输入永远同样输出)、雪崩效应(改一个比特,输出天翻地覆)、抗碰撞(找不到两个不同输入产生相同输出)、抗原像(无法构造出指定输出的输入)。SHA-256 属于 SHA-2 家族,由 NSA 设计、NIST 标准化,是目前最广泛部署的密码学哈希之一。

它的用途极广:校验文件完整性(下载大文件后比对哈希)、密码存储(数据库里存的是 hash(密码+盐) 而非明文,且要用 bcrypt/Argon2 这类"慢哈希"对抗暴力破解)、数字签名(先对文件哈希再签名,否则签一个大文件要慢死)、区块链挖矿(比特币就是不断寻找让 SHA-256 结果小于某阈值的 nonce)。视频把哈希定位为整个安全体系的"完整性支柱"——它告诉你"东西没被改过",这正是 TLS 里不可或缺的一块。

五、混合加密:互联网安全的真正天才设计

这是整支视频最值钱的一节,也是本文标题"公钥只换钥匙"的由来。 既然 AES 快但分不开钥匙、RSA 能分开钥匙但慢又只能处理小数据——那为什么不让它们各干各最擅长的活?

混合加密(Hybrid Encryption)的设计是这样的:客户端先用 RSA(或更现代的 ECDHE)加密一把临时生成的 AES 会话密钥,发给服务器;服务器用私钥解开,拿到那把 AES 密钥;之后双方就用这把 AES 密钥高速加密所有真实数据。 公钥/私钥这对"贵重但慢"的算法,整个会话只用一次,唯一的任务就是"安全地递一次 AES 钥匙"。一旦钥匙递到,它们就功成身退,剩下的全是 AES 的舞台。

这个设计的精妙之处在于:它同时吃下了两种算法的优点——用非对称解决了密钥分发(你不需要事先认识对方),又用对称解决了吞吐(数据加密又快又省电)。你日常访问的每一个 HTTPS 网站、每一次微信通话、每一笔支付,本质上跑的都是这套"慢算法换钥匙、快算法搬数据"的混合逻辑。所以请记住那句反直觉的话:你的银行流水、你的聊天记录,从来不是被公钥加密的——它们是被一把临时 AES 钥匙锁的,而那把钥匙,才是公钥唯一碰过的东西。

六、TLS 握手:把四块积木拼成一次安全通话

理解了前面四块,TLS(Transport Layer Security)握手就是把它们编排成一次完整安全会话的"剧本"。视频用一次浏览器访问网站的过程串起来,我把它拆成五个关键动作:

  1. 协商(ClientHello/ServerHello):客户端告诉服务器"我支持这些加密套件、我用的 TLS 版本",服务器回选一个。这是双方先对"语言"达成一致。
  2. 身份认证(证书链):服务器出示一张数字证书,里面装着它的公钥,并由一个权威证书颁发机构(CA)用 CA 的私钥签名。客户端用本地预置的 CA 公钥验签——验得过的,说明这把服务器公钥确实属于它声称的域名。这是"防中间人"的根基:你不仅拿到了公钥,还确认了公钥的主人是谁。
  3. 密钥交换:双方用 ECDHE(椭圆曲线 Diffie-Hellman 临时密钥交换)各自算出一把相同的会话密钥——神奇的是,这把密钥从不在网络上明文传输。Diffie-Hellman 的数学特性保证:即使窃听者录下了全部交换报文,也算不出这把共享密钥。
  4. 派生与会话加密:用 HKDF 从共享密钥派生出一组 AES 会话密钥,之后所有应用数据都用 AES-GCM 加密。
  5. 完整性保护:AES-GCM 自带的认证标签 + HMAC,保证数据没被篡改。

TLS 1.3(2018 年 RFC 8446)相对 1.2 做了大幅瘦身:握手从 2-RTT 压到 1-RTT(一个来回就开始传数据),彻底砍掉 RSA 密钥传输和所有弱算法(只剩 ECDHE + AEAD),还支持 0-RTT 恢复——老朋友再次连进来时,第一个数据包就能直接带载荷,省下一个来回。视频把 TLS 比作"安全协议的总装车间",我觉得非常贴切——它本身不发明任何新加密算法,它的全部价值,是把上面四块积木按正确顺序、正确组合拧在一起。

七、前向保密:今天被攻破,昨天依然安全

视频最后触及了一个常被忽略却至关重要的概念——前向保密(Forward Secrecy,又称完美前向保密 PFS)。它的含义是:即使服务器长期私钥今天被泄露,过去所有录下的会话依然无法被解密。

为什么?关键在"临时(ephemeral)"。RSA 密钥传输模式下,客户端用服务器公钥加密会话密钥发过去——这意味着,谁拥有服务器私钥,谁就能解出历史上所有会话密钥,进而解密所有被录下来的历史流量。这种"录下来等以后破"的攻击真实存在:情报机构会囤积加密流量,等某天拿到私钥再批量解。

ECDHE 的"临时"二字,正是为了对付这种攻击:每次会话都临时生成一对一次性的 DH 密钥,会话结束就丢弃。 共享密钥是临时密钥协商出来的,从不在磁盘留存,更不受长期私钥泄露影响。所以即便服务器私钥明天失窃,攻击者手里那堆去年的录音也只是废纸。正是基于这一认知(尤其 2013 年斯诺登事件后的大规模流量囤积曝光),TLS 1.3 干脆把 RSA 密钥传输整个移除,强制全部使用具备前向保密的 ECDHE。 这是一个"用工程对抗国家级威胁"的经典案例——它告诉我们,密码学不只是数学,更是一种"对抗时间"的政治选择。

知识结构图

flowchart TB
    Problem["终极难题:密钥分发<br/>对称加密够强,但递不过钥匙"]

    subgraph FOUR["四大基础积木"]
        AES["对称加密 AES<br/>快·AES-256绝密级<br/>软肋:要先共享密钥"]
        RSA["非对称加密 RSA/ECDHE<br/>公私钥分离·解密分发<br/>软肋:慢·只能处理小数据"]
        HASH["哈希 SHA-256<br/>不可逆·抗碰撞<br/>保证完整性·非加密"]
        CERT["数字签名/证书 CA<br/>公钥+CA签名<br/>证明身份·防中间人"]
    end

    HYBRID["混合加密(核心天才设计)<br/>RSA 只用来递一次 AES 会话密钥<br/>之后全部由 AES 高速加密"]

    TLS["TLS 握手编排<br/>协商→证书→ECDHE→HKDF派生→AES-GCM"]

    FS["前向保密<br/>临时密钥·一次性丢弃<br/>私钥泄露也保不住历史"]

    Problem --> FOUR
    RSA -->|只递一次钥匙| HYBRID
    AES -->|加密全部数据| HYBRID
    HYBRID --> TLS
    CERT --> TLS
    HASH -->|完整性校验| TLS
    TLS --> FS

    style HYBRID fill:#fff3cd,stroke:#d39e00,stroke-width:2px
    style TLS fill:#d1ecf1,stroke:#0c5460,stroke-width:2px

实战启示

对工程师:永远不要"直接用 RSA 加密数据"。 这是最常见的代码味儿。如果你的代码里出现"用对方公钥把一段长文本加密发出去",几乎可以肯定你做错了——正确做法是随机生成一把 AES 密钥加密数据,再用对方公钥加密这把 AES 密钥一起发。库函数层面,直接用成熟的封装(如libsodium 的 crypto_box、JWE、PGP),它们早就帮你做好了混合加密。

对架构师:TLS 1.3 应是默认,前向保密不可妥协。 评估任何对外服务的安全水位,先看它是否强制 ECDHE、是否禁用了 RSA 密钥传输与 RC4/3DES 等弱算法。一个不支持前向保密的系统,意味着它的所有历史流量都是"待解的录音"。在合规与等保语境里,这已经从"加分项"变成"扣分项"。

对通信人:这套体系正是 5G/6G 安全的地基。 5G 核心网的服务化架构(SBA)中,NF 之间用 HTTP/2 over TLS 通信,3GPP 明确要求双向 TLS(mTLS)与证书管理;5G 的鉴权 5G AKA、EAP-AKA' 协议里的密钥派生,背后正是哈希与混合加密那套思想;6G 研究中的"后量子密码(PQC)迁移",要解决的也恰恰是"RSA/ECC 会被量子计算机破解"这个未来密钥分发问题。你看,理解了本文的混合加密内核,再去读 3GPP TS 33.501,会豁然开朗——通信安全不过是把这套 Web 密码学体系,搬到了一个有运营商背书、有 USIM 卡持钥的特殊场景里。

对普通用户:哈希不等于加密,别再混用。 看到"我们用 SHA-256 加密了你的数据"这种话术,基本可以判定对方不懂密码学或在糊弄你——哈希不可逆,加密出的东西是取不回来的。同理,存密码要用 bcrypt/Argon2 而非裸 SHA-256,否则一个彩虹表就能让你全军覆没。

延伸学习路径

  1. RFC 8446 — TLS 1.3 官方规范:想真正吃透握手报文每一字节的含义,这是终极权威。配合 Wireshark 抓一次 HTTPS 包对照看,理解会脱胎换骨。
  2. 《Real-World Cryptography》by David Wong:当前最好的"实战密码学"入门书,把本文涉及的算法落到真实工程场景,含大量图表。
  3. Computerphile / Fireship 频道相关短片:Computerphile 的 AES、RSA、Diffie-Hellman 单集是经典互补材料,偏直觉;Fireship 的 100 秒系列适合快速建立轮廓。
  4. 3GPP TS 33.501(5G 系统安全架构):通信人的专属延伸。看完本文再去读它,会发现 5G 安全就是本文这套体系在运营商语境下的工程化。
  5. Cloudflare 博客《Why TLS 1.3 isn't in browsers yet》系列:了解 TLS 1.3 从标准到落地的工程博弈,看一个安全协议如何在真实互联网上被部署。

一句话总结

公钥从始至终不碰你的数据,它毕生的事业,只是把一把一次性的 AES 钥匙,安全地塞进陌生人手里——互联网全部的安全感,都建立在这场"慢递钥匙、快搬数据"的分工之上。

参考来源

  1. How Cryptography Actually Works: AES, RSA, Hashing & TLS Explained — TheBinaryBreakdown,本文分析的核心视频
  2. Difference Between AES and RSA Encryption — 对称与非对称加密的工程对比
  3. TLS 1.3 Explained: RFC 8446 + Handshake Walkthrough — 1-RTT、HKDF、0-RTT 恢复的细节
  4. How the TLS 1.3 Handshake Works: 1-RTT, 0-RTT, and Removed Features — TLS 1.2→1.3 的关键改动与被移除特性
  5. RSA vs AES: Why Most Apps Use Both (Hybrid Encryption) — 混合加密架构的标准解读

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入