前方秘匿性
長期的な秘密鍵が後から漏えいしても、それだけでは過去の通信の暗号文を解読できないという性質。DHEなどでは接続ごとに使い捨ての秘密鍵から共通鍵を導き、不要になった鍵を消去することで実現する。
イマシルちゃんの解説
前方秘匿性は、あとで長く使う秘密鍵が漏れても過去の暗号化通信を守れるという性質だよ。
通信を盗み見した人が暗号文を保存していても、あとからその鍵だけで読み解けないようにするんだ。
例えばTLSでDHEという鍵交換方式を使うと、接続ごとに使い捨ての秘密鍵を作って通信相手と共通鍵を導き出すよ。
相手の本人確認に使う長期的な秘密鍵とは役割を分け、使い捨ての秘密鍵や通信に使った共通鍵は不要になったら消すの。
こうすると、長期的な秘密鍵が盗まれたときに、それ以前の通信までまとめて読まれる被害を防げるんだ。
この解説はわかりやすかったですか?
より深い解説
定義
前方秘匿性(Forward Secrecy、PFS:Perfect Forward Secrecy とも)は、鍵交換の方式が持つべき安全性の性質で、長期的に使う秘密鍵が将来漏えいしても、それ以前に行われた通信のセッション鍵が求められず、過去の暗号文を解読されないことをいう。
前方秘匿性がない場合
TLS 1.2までの RSA鍵交換では、クライアントが作ったセッション鍵の素(プリマスターシークレット)を、サーバの公開鍵で暗号化して送る。
- 攻撃者が、暗号化された通信をすべて記録しておく
- 後で、サーバの秘密鍵が漏えいする
- 記録した通信から、プリマスターシークレットを復号でき、過去の通信をすべて解読できる
前方秘匿性がある場合
| 方式 | 内容 |
|---|---|
| DHE(ディフィー・ヘルマン鍵交換、使い捨て) | 通信のたびに、使い捨て(エフェメラル)の鍵ペアを作って鍵交換する |
| ECDHE(楕円曲線を使ったDHE) | DHEを楕円曲線暗号で行う。現在の主流 |
使い捨ての秘密鍵は、通信が終わると捨てられる。サーバの長期的な秘密鍵は、相手が本物のサーバかを確かめる署名(認証)にだけ使われ、セッション鍵を求めるのには使われない。そのため、長期的な秘密鍵が漏れても、過去のセッション鍵は求められない。
TLS 1.3では、RSA鍵交換が廃止され、(EC)DHEだけが使われるため、前方秘匿性が必ず確保される。
似た性質との区別
| 性質・技術 | 内容 |
|---|---|
| 前方秘匿性 | 秘密鍵が漏えいしても、過去の暗号文は解読されない |
| ブロックチェーン | 時系列のデータをチェーンの形で結び、多数のノードで共有して、改ざんを難しくする |
| 公開鍵暗号 | 一方の鍵で暗号化したデータは、対になるもう一方の鍵でだけ復号できる |
| ハッシュ関数の一方向性 | ハッシュ値から、元のデータを推測できない |
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ