SSL / TLS注:フォワード、バックワードの秘密

Google SSL PFSに関するニュースを読んだ後、ニュースを発表した人でさえ、次の2つの概念を混乱させているようです。



Google SSL PFSの記事では、Perfect Forward Secrecyという用語を使用して、Backward Secrecyの例を示しています。 大多数の人にとって、これは大した問題ではありませんが、整理したい人のために、お願いします。





将来のメッセージの秘密とは、非対称暗号化(秘密キー)で秘密キーが漏洩した場合、将来のすべてのメッセージをその場で復号化できることを意味します。



過去のメッセージの秘密は、非対称暗号化(秘密キー)で秘密キーが漏洩した場合、ハッカー(ネットワーク攻撃者の脅威モデル)によって記録されたすべての過去のメッセージを解読できることを意味します。



これは、クライアントではなくサーバーの秘密鍵を意味することに注意してください。



Ephemeral Diffie-Hellmanアルゴリズムを使用するコンテキストでのこの特定の例では、アルゴリズム自体に両方のプロパティ(未来と過去のメッセージの機密性)があることも追加する必要があります。 しかし、他のアルゴリズムとコミットメント配信スキームでは、アルゴリズムは将来のメッセージのプライバシーを提供しますが、過去のメッセージのプライバシーは提供しません。 1つの例は制限された送付者がいるTimedの効率的なコミットメント計画です。



次に、SSL / TLSでの現在のセッションのキー生成メカニズムを見てみましょう。

SSL / TLSでキーを形成するにはどうすればよいですか? 主に4つの方法があります。



各キー生成メソッドの詳細に立ち入らずに、各メソッドにどのようなプロパティがあるか、または「起こりうる最悪の事態は何ですか?」を見てみましょう。



RSA秘密鍵失われた場合、ハッカーは記録された過去のメッセージと将来のメッセージをすべて解読できます。 RSAでのキー交換の実装は一方向(非寄与)です。ハンドシェイク段階(SSL / TLSハンドシェイク)で作成される対称キーを生成するために必要なすべての情報は、サーバーに送信され、サーバーの公開キーで暗号化されます。 秘密鍵の開示により、このセッションの対称鍵を見つけることができます。



Fixed Diffie-Hellmanメカニズムは、サーバー証明書に登録されている定数公開鍵(g ^ a mod p)を使用します。 また、新しい接続ごとに、クライアント(ブラウザ)がキーの一部(g ^ b mod p)を提供することも意味します。 キーを交換した後、現在のセッションの情報を交換するために、新しい対称キー(g ^(ab)mod p)が形成されます。 ハッカーは、サーバーのDiffie-Hellman秘密鍵(g ^ a mod pから)を明らかにすることにより、以前に記録されたメッセージと将来のすべてのメッセージを解読できます。 これは、Diffie-Hellmanメカニズム自体によって可能になります。(g ^ a mod p)^ b mod p = g ^(ab)mod p。 ハッカーはサーバーの秘密鍵を知っているので、各セッションの対称鍵を見つけることができ、鍵生成メカニズムが双方向(寄与)であるという事実でさえ助けにはなりません。



Anonymous Diffie-Hellmanメカニズムは、データが暗号化されずに送信されるため、プライバシーを保証しません。



過去および将来のメッセージの安全性を保証する唯一のオプションは、 Ephemenral Diffie-Hellmanです。 前述の方法との違いは、新しい接続ごとに、サーバーとクライアントがワンタイムキーを作成することです(g ^ a mod pおよびg ^ b mod p)。 したがって、ハッカーが現在の秘密鍵を取得した場合でも、彼は現在のセッションのみを復号化できますが、以前または将来のセッションは復号化できません。



All Articles