web-dev-qa-db-ja.com

Diffie-Hellmanパラメータは定期的に再作成する必要がありますか?

2048ビットのDHパラメーターを生成した後、それらを定期的に再生成する必要がありますか?その場合、どれくらいの頻度でこれを行うべきですか?

8
Roger Lipscombe

通常、いいえ、定期的にパラメータを再作成する必要はありません。

Diffie-Hellamは 離散対数 問題を解決することで壊れます(技術的には、1つmustを解決する必要があるという証明はありませんDL DHを破壊するが、それはまだ最もよく知られた方法です。)たまたまif1つのインスタンスを破壊することができますDLの場合、すべてが同じ係数(つまり、同じ「DHパラメータ」)を使用する限り、作業の多くを再利用してDLの他のインスタンスを壊すことができます。最近の " Logjam attack = "これが使用されました:一部のクライアントとサーバーは(512ビットの)弱いモジュラスを使用することに同意し、さらに、それらはすべてsameモジュラス、攻撃者はDLを1回(かなりの労力をかけて)壊した後、準リアルタイムでその特定のモジュラスに対して同じことを再び実行できるようになり、その後- MitM 実用的です。

ただし、最初の「if」は大きなものです。通常、最初のDLを破壊する作業がまったく行われないように十分な大きさのDHパラメータを使用します。攻撃者が最初の成功を簡単なMitMに拡張するのは望ましくありませんが、攻撃者がその最初の成功を達成するのも望ましくありません。 2048ビットのモジュラスセットを使用すると、すでに「それを壊すことはできません」ゾーンにかなり遠くにいます。詳細は this site を参照してください。また、DHが壊れたSFシナリオでも、これはyourパラメータのままであり、攻撃の取り組みは適用されません他のサーバー-他の人のDHパラメータへの取り組みを壊しても影響はありませんあなた。自分で生成したパラメーターを使用することで、保護の大部分をすでに取得しています。実際、512ビットのモジュラスを使用した場合でも、「標準」パラメータの代わりに独自のパラメータを使用すると、かなりの保護が提供されます。これは、512ビットのモジュラスの最初のブレークが可能である一方で、実質的なものです。単一のサーバー(自分のもの)へのアクセスをロック解除するだけの場合、攻撃者が行う可能性は低いです。


その質問を表示する別の方法は、サーバーキーを検討することです。 DHEを使用したSSL/TLSでは、クライアントとサーバーはDiffie-Hellman鍵交換を行いますが、サーバーは送信するものにも署名します(通常はRSAを使用)。サーバーのキーは、攻撃者によって破壊されないまた必要があります。それ以外の場合、攻撃者はサーバーになりすまし、簡単なMitM攻撃を実行する可能性があるためです。したがって、DHパラメータをどのように処理するかに関係なく、サーバーキーを処理する必要があります。つまり、DH部分を(RSA)署名部分よりも実際に強くすることは役に立ちません。これは、鍵の更新という概念にも当てはまります。RSA鍵を3年ごとに更新する必要があると感じた場合(これは例です)、次のことを行います可能性があります同じスケジュールでDHパラメータを更新します。それより頻繁に更新するのは無意味です。同様に、DHキーとRSAキーは同じ長さで同様の抵抗を提供するように見えるため、2048ビットRSAキーも使用する場合は、2048ビットDHモジュラスを使用する必要があります。

技術的には、キーの更新は役に立たないが、人々は、キーの更新がいくつかのあいまいに指定された方法で最高のセキュリティ上の利点を与えると信じがちであり、彼らはそれが非常に好きだ。 RSAキーを定期的に更新する必要があると感じて、夜によく眠れるようにしたら、それを試してください。同じ心理的な理由がDHパラメータにも当てはまるので、更新が必要な場合は、同じ日にパラメータを更新してください。

(トリッキーな詳細に行きたい場合、署名は即時のサーバー認証用であるため、サーバーRSAキーはDHパラメータとは異なるセキュリティモデル用であると主張するかもしれませんが、DHはおそらく何年も後の記録と潜在的な破壊に抵抗する必要があります、保護されているデータの種類と価値に応じて異なります。ただし、過去に記録された会話は、定義により、後の更新によって影響を受けないため、この議論は最終的に現在の質問には適用されません。)

9
Tom Leek