现代密码学
什么是密码学?
密码学是一门通过将信息转换为对任何不持有解密密钥的人来说 不可读的格式来保护信息的科学。它是信息安全中最 基础的工具之一,可确保数据的机密性、 完整性和真实性。
密码学的类型
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:对弱哈希进行预计算
最佳实践
- 切勿自行实现密码学,请使用经过测试的库
- 保持密码库的更新
- 对密码哈希使用随机 salt
- 实施 key stretching(PBKDF2、bcrypt、Argon2)
- 使用密码学安全的随机数
- 记录密码设计决策
- 对密码实现进行审计
- 为算法迁移规划 crypto-agility
工具与库
- OpenSSL:完整的密码工具包
- libsodium:现代且易于使用的库
- Bouncy Castle:Java 和 C# 实现
- Cryptography.io:Python 库
- AWS KMS/Azure Key Vault:云密钥管理
- HashiCorp Vault:密钥和机密管理
密码学对于在所有状态下保护数据至关重要。一个稳健的 策略结合了适当的算法、严格的密钥管理、正确的 实现以及对标准的合规性。面对量子计算的威胁,组织 必须开始规划向后量子密码学的过渡,同时保持 当前的最佳实践。
