勒索软件最佳实践

加密原理

椭圆曲线难解性

椭圆曲线密码学(ECC)的安全性基于椭圆曲线离散对数问题(ECDLP)的难解性。

基本概念

椭圆曲线是满足方程 $y^2 = x^3 + ax + b$ 的点的集合(在有限域上)。在椭圆曲线上定义了一种特殊的加法运算,使得曲线上的点构成一个群。

离散对数问题

给定椭圆曲线上的两个点 $P$ 和 $Q = kP$(其中 $k$ 是一个标量),已知 $P$ 和 $Q$,求 $k$ 是计算困难的。

难解性原因

  1. 没有已知的高效算法:与整数分解不同,目前没有找到能够在多项式时间内求解 ECDLP 的算法。
  2. 指数级复杂度:最好的已知算法(如 Pollard’s rho)的时间复杂度为 $O(\sqrt{n})$,其中 $n$ 是椭圆曲线的阶。
  3. 与素数分解的区别:椭圆曲线上的离散对数问题比基于整数分解的 RSA 更难解。同样的密钥长度下,ECC 提供更强的安全性。

应用

由于 ECDLP 的难解性,椭圆曲线被广泛用于:

  • ECDSA(椭圆曲线数字签名算法)
  • ECDH(椭圆曲线 Diffie-Hellman 密钥交换)
  • 现代区块链和加密货币(如比特币)

对称加密

对称加密是指使用同一密钥进行加密和解密的加密方法。加密者和解密者需要共享同一个秘密密钥。

特点

特性 描述
密钥 加密和解密使用同一密钥
效率 非常快速,适合大数据加密
密钥管理 难度大(需要安全分发密钥)
可扩展性 不适合大规模应用(N个参与方需要N(N-1)/2个密钥)

常见对称加密算法

1. DES(Data Encryption Standard)

  • 密钥长度:56 位(已过时,已破解)
  • 块大小:64 位
  • 用途:已废弃,仅用于遗留系统

2. 3DES(Triple DES)

  • 密钥长度:168 位(3 × 56)
  • 原理:对数据进行三次 DES 加密
  • 安全性:较好,但速度较慢

3. AES(Advanced Encryption Standard)

  • 密钥长度:128、192、256 位
  • 块大小:128 位
  • 工作模式:ECB、CBC、CTR、GCM 等
  • 安全性:强,目前最广泛使用
1
2
3
4
5
// AES 加密示例
plaintext: "Hello World!!!!!"
key: "secretkey1234567"
IV: "initialvector12"
→ ciphertext: (密文数据)

4. ChaCha20:

  • 密钥长度:256 位
  • 流密码:实时加密流
  • 用途:用于 TLS 1.3、移动设备

对称加密的工作模式

ECB(Electronic Code Book)- 电子码本

  • 简单,但不安全(相同明文块加密后相同)
  • 不推荐使用

CBC(Cipher Block Chaining)- 密码块链接

1
Ci = E(K, PiCi-1)
  • 每个块依赖前一个块
  • 需要初始向量 IV
  • 广泛应用

CTR(Counter Mode)- 计数器模式

1
Ci = PiE(K, Counter+i)
  • 可并行处理
  • 实时性好

GCM(Galois/Counter Mode)- 伽罗瓦计数器模式

  • 提供认证加密
  • 同时保证机密性和完整性

对称加密的优缺点

优点

  • 速度快(通常比非对称加密快 1000 倍以上)
  • 算法简单,易于实现
  • 安全性好(密钥保密的情况下)

缺点

  • 密钥分发困难
  • 无法实现数字签名
  • 参与方多时密钥管理复杂
  • 无法证明数据来源

非对称加密

非对称加密(也称为公钥加密)使用一对相关的密钥:公钥(可公开)和私钥(必须保密)。

特点

特性 描述
密钥 使用公钥加密,私钥解密
效率 较慢,通常比对称加密慢 1000 倍
密钥管理 简单(只需分发公钥)
可扩展性 良好(每个参与方只需一对密钥)

常见非对称加密算法

1. RSA(Rivest-Shamir-Adleman)

  • 密钥长度:1024、2048、4096 位
  • 原理:基于大数分解的困难性
  • 用途:广泛用于 HTTPS、数字签名
1
2
加密:C = M^e (mod n)
解密:M = C^d (mod n)
  • 其中 n = p × q(两个大素数的乘积)
  • e 是公钥指数,d 是私钥指数

2. ECC(椭圆曲线密码)

  • 密钥长度:256、384、521 位
  • 原理:基于椭圆曲线离散对数问题
  • 优势:密钥短但安全性等同于 RSA(256 位 ECC ≈ 3072 位 RSA)
  • 用途:现代应用首选

3. ElGamal

  • 原理:基于离散对数问题
  • 特点:生成的密文长度是明文的两倍
  • 用途:较少使用

非对称加密的工作原理

1
2
3
4
5
6
7
8
9
1. 生成密钥对:(公钥 PK, 私钥 SK)
PK 发布给所有人
SK 严格保密

2. 加密过程:
密文 C = E(PK, 明文 M)

3. 解密过程:
明文 M = D(SK, 密文 C)

非对称加密的应用

1. 保密通信

  • Alice 用 Bob 的公钥加密消息
  • 只有 Bob 的私钥能解密该消息

2. 数字签名

  • 用私钥对数据签名(只有本人能做)
  • 用公钥验证签名(任何人都能验证)
  • 实现身份认证和不可否认性
1
2
生成签名:S = Sign(SK, 文件)
验证签名:Verify(PK, 文件, S) → True/False

3. 密钥交换

  • 使用 Diffie-Hellman 或 ECDH 协议
  • 双方协商出共同的对称密钥
  • 即使通信被监听也无法得知密钥

非对称加密的优缺点

优点

  • 密钥管理简单(只需分发公钥)
  • 可以构建完整的 PKI 体系
  • 支持数字签名和不可否认性
  • 支持密钥交换
  • 适合大规模应用

缺点

  • 性能较差(速度慢)
  • 不适合加密大数据
  • 密钥长度较长
  • 计算复杂度高

加密和密钥交换

勒索软件需要解决三个问题:

1.在加密时应当占用资源少并且耗时短。

2.加密的密钥应该能正确回传。

3.加密的密钥即使被流量监听到也不应能成功解密。

要解决这三个问题,一种混合的加密模式出现:

1. 生成非对称密钥对

  • 攻击者预先生成一对非对称密钥(公钥 PK 和私钥 SK)。
  • 私钥 SK 保存在攻击者的服务器上,不会泄露。
  • 公钥 PK 被用来加密文件密钥(对称密钥 K),并发送给受害者的机器。

2. 下载公钥(PK)

  • 当勒索软件被植入受害者的机器后,勒索软件会从攻击者的 C2(Command and Control)服务器 下载 公钥 PK,即攻击者用于加密文件密钥的公钥。

3. 生成对称密钥(K)

  • 勒索软件在受害者的机器上随机生成一个 对称密钥 K。通常使用高效的对称加密算法,如 AES-256,因为对称加密的速度比非对称加密快,适合加密大量数据(例如受害者的文件)。

4. 加密受害者文件

  • 勒索软件使用生成的 对称密钥 K 来加密受害者的文件。由于 AES-256 等对称加密算法的效率,文件加密操作非常快速,适合加密大量数据。

5. 加密对称密钥(K)

  • 一旦文件加密完成,勒索软件会用攻击者的 公钥 PK 加密受害者本地生成的 对称密钥 K。这样做是为了确保只有攻击者能够解密这个密钥。
  • 由于 PK 是公钥,任何人都可以用它加密数据,但只有攻击者手中的私钥 SK 可以解密。

6. 保存加密的对称密钥(Encrypted_K)

  • Encrypted_K = PK(K)加密后的对称密钥。勒索软件会将这个加密后的密钥(Encrypted_K)上传到攻击者的 C2 服务器 或者保存在本地,并删除明文对称密钥 K。
  • 一旦删除了对称密钥 K,受害者就无法自行解密他们的文件。

7. 勒索和恢复

  • 受害者无法解密自己的文件,除非他们从攻击者手中购买私钥 SK,攻击者声称持有该私钥,并且能用它解密 Encrypted_K(从而恢复 K)。
  • 使用私钥 SK 解密 Encrypted_K 得到 K,然后可以用 K 解密受害者的文件。

关键优点和解释

  • 对称加密(如 AES)适用于大文件,因为它比非对称加密快。
  • 非对称加密(使用公钥 PK)用于加密对称密钥 K,确保只有攻击者能解密密钥。
  • 这种混合加密方案避免了使用纯非对称加密的效率瓶颈,因为非对称加密(例如 RSA)处理大文件时会非常慢。

常见勒索软件中类似的加密流程

这一加密过程与许多实际的勒索软件攻击相似,常见的勒索软件,如 WannaCryNotPetyaCryptoLocker 等,都使用了 对称加密 + 非对称加密 的混合方法来加密受害者文件。

勒索软件的整体流程

  1. 植入受害者机器
  2. 下载攻击者公钥 PK
  3. 生成对称密钥 K
  4. 用 K 加密文件
  5. 用 PK 加密 K
  6. 将加密后的 K 上传或保存在本地
  7. 删除明文 K,使得受害者无法自行解密文件。
  8. 要求支付赎金,以换取私钥 SK,进而解密文件。

勒索软件最佳实践
https://yicizhang00.github.io/posts/网络安全/encrypt/
作者
Yici Zhang
发布于
2025年12月15日
许可协议