前方秘匿性 【forward secrecy】 PFS / Perfect Forward Secrecy
概要
前方秘匿性(forward secrecy)とは、暗号通信に用いられる鍵交換プロトコルの性質の一つで、暗号鍵の共有・生成に用いられる長期運用の秘密情報(秘密鍵など)が漏洩しても過去に交換した暗号文の解読はできないようにすること。現代の実用的な暗号通信では、鍵交換プロトコルによって送信者と受信者の間で暗号化に用いる暗号鍵(セッション鍵)を共有し、その鍵を用いた共有鍵暗号によって実際に伝送されるデータを暗号化する仕組みになっているものが多い。
その際、公開鍵暗号の秘密鍵や共有秘密(パスワードなど)といった長期的に運用される秘密の情報のみを用いて直に暗号鍵を算出すると、秘密が攻撃者に渡った際に過去に送受信したすべての暗号文が解読されてしまうという問題がある。
前方秘匿性はこれを防ぐために必要となる性質で、「データを暗号化する鍵から別の鍵を生成しない」「鍵生成の元になるデータには一度限りの使い捨てのデータも含める」などの点が要求される。これにより、秘密鍵などが漏洩しても、その鍵に基づいて生成・交換した暗号鍵は復元できず、過去に収集された暗号文を解読することはできない。
2014年にHTTPS通信などで用いるTLS暗号化を行うライブラリ「OpenSSL」に秘密鍵漏洩の危険性がある脆弱性「Heartbleed」が見つかり、前方秘匿性の確保が大きな課題となった。TLS 1.3では前方秘匿性が必須の要件となり、Diffie-Hellman鍵交換に使い捨てデータを用いるようにしたDHE(Diffie-Hellman Ephemeral)あるいはECDHE(楕円曲線DHE)のみを使うことになった。
(2023.6.5更新)