勒索软件加密体系的标准架构、密钥生命周期攻击面、算法谱系与研究方法论。迪妙安全学院勒索软件研究子课题02。
AES-256、RSA-2048、Curve25519——勒索软件使用的每一个原语,单独拿出来都是当代密码学的标杆,正面攻破在计算上不可行。然而过去十余年间的攻防史实反复证明:勒索软件的弱点几乎从不在算法本身,而在算法的"用法"——实现、组合、密钥管理与随机数来源。从 2014 年 Symantec 发现 CryptoDefense 把私钥遗留在受害者机器上,到 2022 年韩国国民大学团队利用 Hive 的密钥流复用缺陷恢复主密钥,再到 2023 年 Avast 为 Akira 发布免费解密器,每一次"不付赎金也能恢复数据"的胜利,攻破的都是工程实现而非数学难题。
本子课题以"密码学原语 → 工程实现 → 密钥生命周期 → 可利用弱点 → 解密工具开发"为主线,系统梳理勒索软件加密体系的分析框架。全部案例均来自可溯源的公开研究:学术会议论文(NDSS、ICDCS、DIMVA、ACSAC)、标准文档(NIST FIPS/SP、IETF RFC)、安全厂商技术报告(Kaspersky、Cisco Talos、Avast/Gen Digital、Check Point、Emsisoft、Malwarebytes)以及执法行动公报。第 5 册附有完整的编号参考文献表。
性能(AES-NI、ChaCha20 的软件效率)、跨平台可移植性(Rust/C++ 重写潮)、隐蔽性(间歇加密降低熵特征)与"可信交付"(受害者相信付赎金能拿回数据)之间的权衡。
弱随机数种子、nonce/密钥流复用、算法误用(如 Petya 对 Salsa20 的降级实现)、密钥明文驻留内存、以及"解密器本身有 Bug"等交付环节失误。
加密行为产生可检测信号(API 序列、熵突变、文件标记);密钥可能驻留内存——这正是"黄金一小时"规程要求"严禁重启、先固证"的密码学依据。
现代加密勒索几乎无一例外采用混合加密(Hybrid Encryption)架构:用对称密码高速处理海量文件数据,用非对称密码保护对称密钥。该架构与 TLS 的设计哲学同源——并非巧合,而是密码工程的最优解。
选择混合架构的根本原因是非对称密码的速度约束:RSA-2048 加密吞吐比 AES 低三个数量级以上, Curve25519 的 ECDH 也仅用于密钥协商而非数据加密。勒索软件必须在分钟级时间内完成数万文件的加密以赶在防御响应之前"收网",因此数据平面只能交给对称密码。这一约束在 Pavur 与 Martinović 发表于 NDSS 2020 的系统性基准测试中得到量化验证:成熟的混合方案可在数分钟内加密数万个文件,而部分加密(间歇加密)能进一步显著压缩时间开销,代价是安全强度的可度量的折损[07]。
将加密体系拆解为密钥的完整生命周期,每个阶段都对应着已被真实案例验证过的攻击面。
| 生命周期阶段 | 典型实现方式 | 攻击面 | 代表性公开案例 |
|---|---|---|---|
| 随机数生成 | Windows CryptGenRandom / BCrypt;自实现 PRNG | 弱种子、时间戳播种、可预测状态 | CryptoDefense(2014,Symantec 发现私钥可恢复);早期弱 PRNG 家族 |
| 算法实现 | 自实现 AES/Salsa20/ChaCha20,或调用系统 CryptoAPI | 算法误用、降级实现、nonce/密钥流复用 | Petya(2016,Salsa20 降级实现被 Check Point 与 leo-stone 破解);Hive(2022,密钥流复用)[15][16] |
| 密钥封装 | RSA-OAEP / PKCS#1 v1.5;X25519 ECDH | 封装格式缺陷、可预测结构、硬编码公钥 | Avast 对 DoNex 加密方案缺陷的利用(2024,Recon 公开) |
| 密钥存储 | 文件尾部追加、注册表、内存驻留、勒索信回传 | 内存取证提取、磁盘残留、日志泄露 | NotPetya(2017,加密后擦除密钥,反例);应急响应内存捕获规程 |
| 密钥交付 | 攻击者持有私钥,付款后交付解密器 | 解密器本身缺陷、执法扣押、运营者主动释放 | Ryuk 解密器截断 Bug(2019,Emsisoft 披露);TeslaCrypt 作者公开主私钥(2016);CoinVault 主密钥经荷兰警方取证公开(2015) |
速度:赶在 EDR 响应前完成加密,催生 AES-NI 硬件加速与间歇加密;可信:受害者相信"付款即可恢复",否则勒索失效——因此强加密与可靠交付同样重要;隐蔽:低频 API 调用、白加黑、WSL 内运行 Linux 加密器绕过 Windows 侧检测;反恢复:删除卷影副本、覆写原文件扇区、禁用恢复模式。
加密行为产生高价值检测信号:CryptGenKey/CryptEncrypt 高频调用、文件熵突变、统一重命名模式与文件标记串;内存中可能驻留明文密钥或封装前密钥材料;部分加密留下可恢复的明文分块——这些都直接转化为检测规则与数据恢复手段。
下表汇总公开样本分析与厂商报告中披露的主要家族加密特征(不同版本与平台变体间存在差异,分析时应以具体样本为准)。
| 家族(活跃期) | 对称算法 | 非对称封装 | 实现语言 | 已知弱点 / 状态 |
|---|---|---|---|---|
| CryptoLocker (2013–14) | AES-256 | RSA-2048 | — | 无公开实现缺陷;Operation Tovar 执法行动扣押基础设施后,FireEye/Fox-IT 基于收缴密钥发布 DecryptCryptoLocker 工具[21] |
| Petya (2016) | “Salsa10”(降级的 Salsa20) | ECC(secp192k1) | C/汇编 | 三处实现缺陷致 512 位密钥流中 256 位可预测,被遗传算法秒级破解[15][16] |
| WannaCry (2017) | AES-128-CBC | RSA-2048 | C++ | 加密实现无已知缺陷;其全球性中断由非加密机制(域名“自杀开关”)实现[19] |
| NotPetya (2017) | Salsa20 | —(伪装) | C++ | 实为擦除器:安装 ID 为随机垃圾、加密后擦除密钥,付款亦无法恢复[20] |
| GandCrab (2018–19) | Salsa20 | RSA-2048 | C/C++ | 未发现可利用实现缺陷;运营者于 2019 年宣布“退休” |
| REvil/Sodinokibi (2019–21) | Salsa20 | ECC(Curve25519) | C++ | 加密实现未见公开缺陷;2021 年 Kaseya 事件后基础设施被多国执法打击 |
| Maze (2019–20) | ChaCha20 | RSA-2048 | C++ | 双重勒索(加密+窃密+DLS)模式的首创者之一 |
| DarkSide (2020–21) | Salsa20 | RSA-4096 | C++ | 加密实现未见公开缺陷;Colonial Pipeline 事件后运营收敛 |
| Conti (2020–22) | ChaCha20 | RSA-2048(内嵌公钥封装) | C++ | 2022 年 2 月源码泄露使全家系加密逻辑可被完整审计;Akira 被观察到高度相似[25] |
| LockBit 2.0/3.0 (2019– ) | AES-256-CBC(头部/部分加密) | RSA-2048 | C++ | 3.0 构建器 2022 年泄露;部分加密策略留下明文尾部 |
| BlackCat/ALPHV (2021– ) | ChaCha20 或 AES(可选) | Curve25519 | Rust | 首个主流 Rust 家族;可配置间歇加密档位 |
| Hive (2021–23) | AES-256 + 自研“双密钥流”XOR | RSA-2048 | Go/C++ | 密钥流复用缺陷:韩国国民大学团队恢复约 95% 主密钥并解密绝大多数文件[13][14];2023 年 1 月被 FBI 渗透瓦解 |
| Akira (2023– ) | ChaCha20(部分后续版本公开报告采用 ChaCha8) | RSA-4096 | C++/Boost(同期推出 Linux/ESXi 版) | 不超过 2,000,000 字节的文件仅加密前一半,该弱点被 Avast 利用并于 2023 年 6 月底发布免费解密器;攻击者数日内修补[17][18] |
| Ryuk (2018– ) | AES-256(大文件部分加密) | RSA-4096(源自 Hermes) | C++ | 加密本体未见公开缺陷;但其解密器截断 Bug(>54.4MB 文件丢尾字节)曾致付款者数据损毁[22][23] |
| Qilin/Agenda (2022– ) | AES-256-CBC | Curve25519 | Go→Rust 重写 | 公开样本分析未见可利用实现缺陷;以 WSL 跨平台执行绕过 Windows 侧检测见长 |
加密机制的正确实现是勒索商业模式的地基,但从来不是商业模式的全部。2019 年以来,加密之外的三股力量——窃密施压(双重勒索)、交付信任机制与伪装勒索——深刻改变了攻防格局。理解它们,才能完整评估"加密缺陷"的真实杀伤力与修补速度为何如此惊人。
Maze 于 2019 年 11 月率先公开拒付赎金受害者的失窃数据,开启"加密 + 窃密 + 泄露站施压"模式;随后 REvil、Cl0p、Conti、LockBit 等全面跟进。加密只解决"数据不可用",窃密制造"不付款就公开"的第二杠杆,部分团伙还叠加骚扰客户与合作伙伴的第三重施压。对防御方的含义:即使成功恢复数据,也不等于事件结束——失窃数据处置与泄露风险评估必须并行开展。
受害者凭什么相信"付款就能恢复"?产业用一整套机制背书:免费解密单个文件的"试样"、按目录与文件数定价、附属联盟(affiliate)按赎金抽成的 RaaS 分工(REvil、Conti、LockBit 均为典型)。这些机制全部建立在"加密正确、交付可信"之上——这正是实现层缺陷会动摇商业模式根基、并迫使攻击者以小时级速度连夜修补的根本原因(Akira 从公开解密器到修补版样本出现仅约 3 天,即为此类压力的直接体现)。
NotPetya 并非孤例:2022 年出现的 Azov 被多家安全厂商研判为伪装成勒索的破坏器——加密后未留下有效恢复通道,且传播特征疑似嫁祸他国团伙。研判要点不变:加密正确性与交付诚意必须分开取证;遭遇"加密 + 无法交付"组合时,应按数据销毁(wiper)事件定性、定损与响应,而不是按勒索谈判处理。
本专题遵循"先体系、后原语、再案例、终方法"的递进结构,共 5 册,各册可独立阅读。
标准架构、密钥生命周期攻击面、算法谱系与研究方法。建立"原语—协议—实现"三层分析视角。
AES(FIPS 197,CBC 模式)、ChaCha20(RFC 8439)、Salsa20(eSTREAM)三大原语在勒索软件中的工程用法、间歇加密技术及其安全折损量化。
RSA 与 Curve25519 密钥封装、密钥生命周期攻防、内存取证、反恢复机制,以及 NotPetya"假勒索真擦除"的密钥擦除剖析。
十个可溯源的真实案例:从 Petya 的 Salsa20 误用到 Hive 密钥流复用、Akira 解密器、Ryuk 交付 Bug,逐案复盘"缺陷—利用—恢复—启示"。
七步开发流水线、工具链、负责任披露策略(含 Fabian Wosar 的"先私下交付"原则)、防御映射,以及全部参考文献。