Forward secrecy
forward secrecyは秘密鍵の危殆化からセッションキーを守ることはできるが、セッションキーを使わずに1つのメッセージへ暗号解読を行う試みに対しては無力である。また、実装によっては計算負荷を軽減するためにセッションキーの再利用が行われており、不適切な設定ではforward secrecyの安全性が脅かされることとなる。また、2013年に行われた調査では、DHEによりSSL上でのforward secrecyを実装していたサーバのうち実に82.9%で、DHのパラメータ長がRSAの鍵長より小さくなっていた、すなわち総当たり攻撃への耐性を大きく下げるような設定となっていたことが判明している。
SSL 3.0時点でも、仕様上forward secrecyを実現可能な暗号スイート(英語版)は存在したのだが、実装がなされていない、あるいは暗号化強度が弱すぎるなどの問題を抱えていた。
SSLでforward secrecyを実現可能なアルゴリズムとして、ディフィー・ヘルマン鍵共有(DHE)と、それを楕円曲線暗号で実現した楕円曲線ディフィー・ヘルマン鍵共有(ECDHE)が存在する。この2つのアルゴリズムについては、以下のような特徴・実装上の特性を持つ。
forward secrecyの中でも、以下の条件を満たすものはperfect forward secrecyと呼ばれる。
鍵合意のために公開可能な、ランダムな値を使う。
鍵合意の過程で決定的なアルゴリズムを一切使わない。
これらの条件を満たす場合、1つのメッセージが危殆化したとしてもそれが他に及ぶことはなく、また、これ1つで複数のメッセージを解読可能な秘密情報も存在しない。
「perfect」と付いているが、これはワンタイムパッドのような完全暗号とは別の概念である。
IPsecではオプションとなっている(RFC 2412)。
SSH
SSL/TLSにも適用可能である(後述)。