Implement perfect forward secrecy (PFS)
PFS ensures 该 compromising 长-项关键不 reveal past 会话关键. Learn ephemeral 键 exchange 模式该 makes 此可能.
- 1
PFS requires ephemeral (temporary) 键 pairs 为每个会话. parties 执行 Diffie-Hellman 具有这些 ephemeral 关键, derive 会话键, 然后 destroy ephemeral 私有关键. Even 如果长-项关键是 稍后 stolen, past sessions 保持安全 because ephemeral 关键否 longer 存在.
- 2 随机字节生成器 →
生成 an ephemeral private key for this session. This key will be destroyed immediately after the key exchange — it must never be stored to disk.
- 3 模幂运算计算器 →
Perform DH computation 具有 ephemeral 键. Send 公共 ephemeral 值, 接收对等's 值, 和计算 shared secret. Derive 会话键 从此 shared secret using HKDF.
- 4
在 TLS 1.3, PFS 是强制 — 所有键 exchanges use ephemeral Diffie-Hellman (DHE 或 ECDHE). 在 TLS 1.2, 你必须 explicitly enable DHE/ECDHE cipher suites 和 disable 静态 RSA 键 exchange. Use ECDHE 具有 X25519 或 P-256 为 best 性能.
常见问题
- PFS protect 针对 future 键 compromise?
- 是 — 该是 其目的. 如果 attacker records 所有 traffic 和稍后 steals 服务器's 长-项私有键, 它们 cannot 解密 past sessions because ephemeral 会话关键是 destroyed. Only future sessions (之前键 rotation) 是 affected.
- 为什么是 PFS 强制在 TLS 1.3?
- 静态 RSA 键 exchange (TLS 1.2 和 earlier) 不提供 PFS — 如果 RSA 私有键 是 compromised, 所有 past traffic 能够是 decrypted. TLS 1.3 removed 静态 RSA 和 mandates ephemeral DH, making PFS 默认.