前方秘匿性

読み:ぜんぽうひとくせい / 英語表記:forward secrecy

鍵交換に使った秘密鍵(サーバの長期的な秘密鍵など)が漏えいしたとしても、過去の通信の暗号文は解読されないという性質。通信のたびに使い捨ての鍵を作って共通鍵を共有することで実現する。

イマシルちゃんの解説

だれかが、きみとお友だちの、これまでの秘密の会話を全部録音していたとするよ。
もし、あとで家の「合鍵」が盗まれたら、録音を全部聞かれちゃうかもしれないよね。

でも、会話のたびに、その場限りの鍵を作って、終わったら捨てていたらどうかな?
合鍵が盗まれても、もう捨てた鍵は手に入らないから、昔の会話は守られるんだ。
これが、この性質の考え方なんだよ。

より深い解説

定義

前方秘匿性(Forward Secrecy、PFS:Perfect Forward Secrecy とも)は、鍵交換の方式が持つべき安全性の性質で、長期的に使う秘密鍵が将来漏えいしても、それ以前に行われた通信のセッション鍵が求められず、過去の暗号文を解読されないことをいう。

前方秘匿性がない場合

TLS 1.2までの RSA鍵交換では、クライアントが作ったセッション鍵の素(プリマスターシークレット)を、サーバの公開鍵で暗号化して送る。

  1. 攻撃者が、暗号化された通信をすべて記録しておく
  2. 後で、サーバの秘密鍵が漏えいする
  3. 記録した通信から、プリマスターシークレットを復号でき、過去の通信をすべて解読できる

前方秘匿性がある場合

方式内容
DHE(ディフィー・ヘルマン鍵交換、使い捨て)通信のたびに、使い捨て(エフェメラル)の鍵ペアを作って鍵交換する
ECDHE(楕円曲線を使ったDHE)DHEを楕円曲線暗号で行う。現在の主流

使い捨ての秘密鍵は、通信が終わると捨てられる。サーバの長期的な秘密鍵は、相手が本物のサーバかを確かめる署名(認証)にだけ使われ、セッション鍵を求めるのには使われない。そのため、長期的な秘密鍵が漏れても、過去のセッション鍵は求められない。

TLS 1.3では、RSA鍵交換が廃止され、(EC)DHEだけが使われるため、前方秘匿性が必ず確保される。

似た性質との区別

性質・技術内容
前方秘匿性秘密鍵が漏えいしても、過去の暗号文は解読されない
ブロックチェーン時系列のデータをチェーンの形で結び、多数のノードで共有して、改ざんを難しくする
公開鍵暗号一方の鍵で暗号化したデータは、対になるもう一方の鍵でだけ復号できる
ハッシュ関数の一方向性ハッシュ値から、元のデータを推測できない

実際の試験ではここに出る!

この用語が出てくる記事

↑