现代密码学

什么是密码学?

密码学是一门通过将信息转换为对任何不持有解密密钥的人来说 不可读的格式来保护信息的科学。它是信息安全中最 基础的工具之一,可确保数据的机密性、 完整性和真实性。

密码学的类型

1. 对称密码学

使用相同的密钥对信息进行加密和解密。对于大量数据而言, 它快速且高效。

  • AES (Advanced Encryption Standard):当前标准,使用 128、192 或 256 位
  • ChaCha20:AES 的现代替代方案,针对移动设备进行了优化
  • 3DES:遗留算法,正在逐步淘汰
  • Blowfish:AES 的前身,仍用于特定应用

2. 非对称密码学

使用一对密钥:用于加密的公钥和用于解密的私钥。 对于数字签名和安全密钥交换至关重要。

  • RSA:广泛使用,安全性基于质数因式分解
  • ECC (Elliptic Curve Cryptography):比 RSA 更高效,密钥更小
  • DSA:用于数字签名的 Digital Signature Algorithm
  • Ed25519:椭圆曲线的现代实现

3. 哈希函数

将任意大小的数据转换为固定大小的输出。用于 完整性验证和安全的密码存储。

  • SHA-256/SHA-512:SHA-2 系列,当前标准
  • SHA-3:最新标准,SHA-2 的替代方案
  • BLAKE2/BLAKE3:比 SHA 更快,采用率不断增长
  • bcrypt/Argon2:专门用于密码哈希

公钥基础设施 (PKI)

PKI 是一个管理数字证书和公钥密码学的框架, 对于安全身份验证和加密通信至关重要。

PKI 组件

  • 证书颁发机构 (CA):颁发和吊销数字证书
  • 注册机构 (RA):在颁发前验证身份
  • 数字证书:X.509 将公钥与身份绑定
  • CRL/OCSP:吊销列表和证书状态

TLS/SSL

Transport Layer Security (TLS) 及其前身 SSL 是加密协议, 可确保互联网上的安全通信。

TLS 最佳实践

  • 仅使用 TLS 1.2 或 TLS 1.3
  • 禁用弱 cipher suites(RC4、DES、3DES)
  • 实施 Perfect Forward Secrecy (PFS)
  • 使用 2048 位或更高的证书
  • 启用 HSTS (HTTP Strict Transport Security)
  • 在关键应用中实施 Certificate Pinning

密钥管理

任何密码系统的安全性都关键地依赖于对密码密钥的 妥善管理。

密钥生命周期

  • 生成:使用密码学安全的生成器 (CSPRNG)
  • 存储:关键密钥使用 HSM,应用使用 vault
  • 分发:安全通道、密钥交换协议
  • 轮换:定义周期,建议自动化
  • 吊销:针对泄露的明确流程
  • 销毁:在生命周期结束时安全清除

Hardware Security Modules (HSM)

HSM 是生成、存储和保护密码密钥的物理设备, 具有 FIPS 140-2/3 认证。

  • 防止密钥提取的保护
  • 硬件加速的密码操作
  • 法规合规性(PCI-DSS、LGPD)
  • 适用于云环境的 Cloud HSM

不同场景下的密码学

静态数据

  • 使用 BitLocker、LUKS 的 Full Disk Encryption (FDE)
  • Database encryption (TDE - Transparent Data Encryption)
  • 针对敏感数据的 File-level encryption
  • 强制性的 Backup encryption

传输中的数据

  • 用于 Web 通信的 TLS/SSL
  • 用于站点到站点 VPN 的 IPSec
  • 用于远程管理的 SSH
  • 用于电子邮件 (SMTP、IMAP) 的 STARTTLS

使用中的数据

  • Homomorphic Encryption(仍处于实验阶段)
  • Secure Enclaves (Intel SGX、AMD SEV)
  • Confidential Computing

后量子密码学

量子计算机威胁着 RSA 和 ECC 等当前算法。NIST 正在 标准化能够抵御量子攻击的算法:

  • CRYSTALS-Kyber:密钥封装
  • CRYSTALS-Dilithium:数字签名
  • SPHINCS+:基于哈希的签名
  • FALCON:紧凑型签名

合规与法规

  • LGPD/GDPR:建议对个人数据进行加密
  • PCI-DSS:对卡数据强制加密
  • HIPAA:对医疗记录进行加密
  • FIPS 140-2/3:密码模块标准

常见漏洞与攻击

  • Man-in-the-Middle:拦截未受保护的密钥
  • Padding Oracle:利用 padding 错误
  • Timing Attacks:分析操作的时间
  • Side-Channel Attacks:通过功耗/电磁辐射进行提取
  • Rainbow Tables:对弱哈希进行预计算

最佳实践

  1. 切勿自行实现密码学,请使用经过测试的库
  2. 保持密码库的更新
  3. 对密码哈希使用随机 salt
  4. 实施 key stretching(PBKDF2、bcrypt、Argon2)
  5. 使用密码学安全的随机数
  6. 记录密码设计决策
  7. 对密码实现进行审计
  8. 为算法迁移规划 crypto-agility

工具与库

  • OpenSSL:完整的密码工具包
  • libsodium:现代且易于使用的库
  • Bouncy Castle:Java 和 C# 实现
  • Cryptography.io:Python 库
  • AWS KMS/Azure Key Vault:云密钥管理
  • HashiCorp Vault:密钥和机密管理

密码学对于在所有状态下保护数据至关重要。一个稳健的 策略结合了适当的算法、严格的密钥管理、正确的 实现以及对标准的合规性。面对量子计算的威胁,组织 必须开始规划向后量子密码学的过渡,同时保持 当前的最佳实践。