暗号
セッション鍵
別称: エフェメラル鍵, セッションごとの鍵
定義
1 回の通信セッションを保護するために使われ、終了後に破棄される短命の対称鍵。
セッション鍵は、通常 AES-128/256 や ChaCha20 などの対称鍵で、1 回のセッション中にやり取りされるデータの機密性・完全性・真正性を提供し、セッション終了時に破棄されます。HKDF などの KDF を介して長期の共有秘密や鍵交換の出力から導出されるのが一般的で、TLS、SSH、WireGuard、IPsec、Signal などの 1 回のハンドシェイクから、方向別・用途別(暗号化、MAC、鍵更新)に異なる鍵を生成できます。寿命が短く一時的であることから、漏えい時に露出するデータ量を限定でき、エフェメラル Diffie-Hellman と組み合わせることで過去の通信に対する完全前方秘匿性を実現します。
例
- TLS 1.3 は HKDF で client_application_traffic_secret や server_application_traffic_secret などのセッション鍵を導出する。
- Signal は Double Ratchet アルゴリズムにより、メッセージごとに新しい AES-256 鍵を生成する。
関連用語
暗号鍵
暗号アルゴリズムをパラメータ化し、データの暗号化・復号・署名・認証に用いる高エントロピーな秘密または公開値。
マスター鍵
他の鍵を導出したり、他の鍵を直接暗号化したりするために用いる、長期に保有する高価値の暗号鍵。
鍵導出関数(KDF)
パスワードや共有秘密、マスター鍵などの秘密入力から、1 つまたは複数の強力な暗号鍵を導出する暗号関数。
完全前方秘匿性(PFS)
長期鍵が将来漏洩しても過去のセッション通信が復号されないことを保証するプロトコル特性。
TLS (Transport Layer Security)
TLS (Transport Layer Security) — definition coming soon.
対称鍵暗号
暗号化と復号に同じ秘密鍵を使う暗号方式で、鍵を安全に共有できれば高速で強力な機密性を提供する。