web-dev-qa-db-ja.com

ECDHとForward Secrecy

私は [〜#〜] ecdh [〜#〜] について読んだだけで、プロセスの概要を取得しているときに、この鍵交換方法は前方秘密性を提供せず、またそれに対して保護していません共有シークレットは各セッションで同じになるため、リプレイ攻撃。 ECDHを拡張してこれらのセキュリティ機能をサポートする一般的な方法はありますか?

6
cooky451

Perfect Forward Secrecy を取得するには、一時キーを使用する必要があります。

静的Diffie-Hellman(楕円曲線であるかどうかは問題ではありません)では、アリスとボブの両方がDHキーペアを所有しています。アリスの秘密キーはa、公開キーはaGです。 =(楕円曲線表記、[〜#〜] g [〜#〜]は、曲線の従来の「基点」です);ボブの秘密鍵はb、公開鍵はbGです。アリスとボブがお互いに話したいとき、彼らはDHのことをします、それは彼らが共有された秘密の値abGで終わることを意味します。彼らは常にこの正確な共有秘密を持っています。攻撃者がアリスの秘密鍵(a)を盗むことができた場合、攻撃者は共有シークレットを再計算できるため、アリスとボブの間の過去および将来のすべての会話を解読できます。

Ephemeral Diffie-Hellmanは、「オンザフライ」でDH鍵ペアを生成し、秘密鍵をどこにも記録しないことを目的としています(秘密鍵はRAMにのみ保持され、会話の期間のみ。記録されないようにして、これらの秘密鍵を盗難の影響を受けないようにする必要があります。そこからPFSを取得します。これは SSL/TLS で「DHE」(および「ECDHE」と共に使用されます")暗号スイート:サーバーは秘密鍵と公開鍵のペアを所有し、公開鍵は証明書に含まれており、signaturesに適合します(たとえば、その鍵ペアはRSAまたはDSAタイプです)。クライアントが接続すると、クライアントとサーバーの両方が新しいDHキーペアを生成します;サーバーsigns彼の新しく生成されたDH公開キーと署名キー(クライアントはその署名を検証し、サーバー証明書を検証します)。実際にデータの暗号化に使用されるのは、Diffie-Hellmanアルゴリズムから派生したものです。

DHE暗号スイートを使用すると、サーバーの秘密鍵が盗まれた場合、泥棒は偽造された署名を計算する力しか得られません。その後、泥棒はサーバーを偽装してfutureMan-in-the-Middle attack を実行して通信を危険にさらす可能性がありますが、-past接続は長い間失われているため、攻撃者によって復号化されないDHキーに関して。それがPFSです。

13
Tom Leek