web-dev-qa-db-ja.com

安全なike / ipsecに必要なdiffie-hellmanグループ

組み込みデバイスにipsecを展開し、ikeのdiffie hellman 2048グループから壊滅的なパフォーマンスを取得しています。その後、共有セキュリティが3des、sha1に使用されます。 ipsecネゴシエーションは、単一のトンネルで20秒をはるかに超えています。ネットワークスタックは、ネゴシエーションにopensslを使用しています。

この文脈では、1024はDHで使用するのに十分に安全であると私は言うべきですか?私の理解では、dh 1024は、24時間未満でdh 1024を強制することができるまで、24時間のライフタイムでipsec saをネゴシエートしてもかまいません。それは2030年以前になることはほとんどありません

機密性の要件はないため、24時間後にトラフィックを復号化できるかどうかは、再注入できないか、現在のパケットを改ざんできないかぎり問題ありません。

Dh 2048を使用する理由は、「1024はもはや安全ではない」ためです。私はdh 2048に対して何もしていませんが、パフォーマンスの問題を考えると、1024グループをプッシュしようとしています。私はいくつかの問題を見逃した場合でも、それをしたくありません。

1024は安全ではないというアドバイスは、長期間(1〜2年)のRSA鍵に関連しています。 DHは短期間(24時間)のセッションキーをネゴシエートするため、1024グループのDHで問題ありません。

2048グループでdhを使用する場合、結果の共有秘密には160ビットのセキュリティがあり、10〜15年間は強制できません。 20〜30年まではRSA 2048が安全であると考えられ、DH 2048も同様であると想定しているため、10〜15年

1024グループのdhが使用されている場合、結果の共有秘密はおそらく数年間安全です。 ikeのdh 1024を定義するRFC 2409は、160ビットを超えるセキュリティを生成すると述べています。ただし、必要なセキュリティビットの数は2倍にする必要があります。224= 2 * 112であり、3desは112であるため、224が必要です。したがって、RFCで「以上」とはどういう意味ですか。

デフォルトでは、opensslはdhシークレットをdh共有素数に等しい長さの乱数として生成するため、「より大」が意味するものの大部分にあると思います。方法はわかりません。それを確認します

RSA 1024はまだ強制されていませんが、近い将来、おそらく数か月または数年の計算が必要になると予想されます。ただし、当社の製品は10年間使用されます。 RSA 1024は、1日以上かかる場合、2025年に簡単に強制可能になるでしょう。dh1024でも問題ありません。 (2025年にはdh 1024が良い選択になると言っているわけではありません。今日それを選択すれば、2025年までに段階的に廃止する必要はありません)

私たちのdhから得られた共有秘密は、24時間だけ使用されます。 SAライフタイムは24時間であるため、トンネルを24時間ごとに再ネゴシエートします。つまり、24時間ごとに新しいDHシークレットを使用します。dh1024を24時間で強制できない限り、 dh 1024を使用しても問題ありません。DH1024にまだ1日以上かかると思われる限り、dh 1024の共有シークレットは数週間で強制される可能性があります。

追加の質問です。3destatを使用する場合、112ビットのセキュリティが必要です。DHは必要なビット数の2倍のビットを生成しますが、DH 1024は160ビットしか生成しません。

ネゴシエーションを変更するオプションもあります。dh2048と言うこともできますが、より小さな値空間でシークレットを生成します。 opensslでは、DH構造にqパラメータを設定して、DH_generate_keyで生成するバイト数を決定できます。これは、dh 1024を使用するよりも魅力的ではないオプションです。

これが水を保持しない場合、誰かが私を修正できますか?ありがとう

10
dancl

いくつか明確に定義しましょう...

DHのような非対称アルゴリズムを使用すると、最もよく知られている攻撃でそれを突破する難しさに関連する「強さ」があります。 DHで最もよく知られている攻撃は、 離散対数インデックス計算一般的な数値フィールドシーブ 、整数因数分解アルゴリズム。それらは同じ漸近的な複雑さを持っているため、RSA-1024とDH-1024は「同じ強さ」を持っているとよく言われます。

ただし、実際には、DHは同じサイズのRSAよりもやや強い傾向があります。 GNFSの最後のフェーズでは、非常に大きな行列で線形代数を実行します。 RSAの場合、行列要素はビットですが、DHの場合、要素は係数とほぼ同じサイズの数値になります。したがって、DH-1024の行列は、RSA-1024の行列よりも約1000倍大きくなります。大きなキーの場合、この線形代数はボトルネックです。これは、マトリックスのサイズが非常に大きいためです。したがって、DH-1024は、RSA-1024よりも何らかの「耐性」があると予想されます。 RSA係数因数分解の現在のレコードは 768ビット であり、離散対数レコードは 596ビット であることに注意してください。

1024ビットの因数分解では、問題が既存のコンピューターの容量を超えていることがわかっています。 1024ビット整数を因数分解できる特別な目的のマシンのためのいくつかの理論的な設計概念があります。単一の計算を行うには何年もかかり、マシンを構築するにはかなりの数百万ドル(ただし数十億ドルではなく、少なくとも「紙の上」)の費用がかかります。 DH-1024の場合、同様の設計やコストの見積もりは知りません。

これは、生成する鍵の長さに関するものではないことに注意してください。暗号学者が使用したいのは等価対称強度です。彼らは、アルゴリズム/キーの強度が、たとえば「100ビット」であると言いたいのです。つまり、「それを破る努力は、100ビットキーの徹底的な検索を打ち破るのに必要な労力と同等です。理想的な対称暗号化アルゴリズム」。ただし、これは非常に還元的です。対称キーをブルートフォースすることは、可能なすべてのキーを試すことであり、これは並行して行うことができ、必要なのは無視できるRAMコンテンツ、CPUのみです。これはを保持しません(= /// =)GNFSの場合、特に、大きなRSAまたはDHキーのGNFSの主な難点は、行列の最後のステップを並列に計算することが非常に難しいことです非常に高速なRAMが大量に必要です。

これは、さまざまな人や組織が推定を行うことを妨げていません。あなたはこれらの推定値 there を閲覧できます。要約すると、話し相手に応じて、DH-1024は約「80ビット強度」であると見なされ、DH-2048レートは112ビット強度に近くなります。

今でも80ビットの強度はかなりのものです。これまでに報告された最大のキー操作は 64-bit です。 80ビットは65536倍困難です。専用回路はおそらくコストを大幅に下げることができます。しかし、私たちはまだ数百万ドルを話しているだけで、数百万ドルだけではありません。本当に10億に近いですおそらく、これは、組み込みシステムに隠したい秘密の価値にとって十分です。


「20秒」はたくさんあると思います。数年前、33 M​​Hz ARM7TDMIに基本的なDH-2048を実装しました。つまり、これまでで最速の組み込みシステムではありません。そしてそれは7秒未満で完全なDHを行うことができました。私のコードは純粋なCでしたが、Cは大きな整数の算術演算の乗算でCPUの能力を活用するのに最適ではないことがわかっています。私の推測では、議会に行くことで、DH-2048を同じプラットフォームで4秒程度で実行できたでしょう。

考慮すべき1つのことは、指数のサイズです。 DHを行う場合、ビッグプライムpを法として計算し、2つの値を指数x(DH秘密鍵はあなたの側)。 80ビットセキュリティの場合、pを1024ビット整数(少なくとも)にする必要があり、さらにxを実行する必要があります。長さ160ビットのランダムに選択されます(攻撃はpを超えるGNFS、またはコストsqrt(x))。 2048ビットの素数の場合、GNFS側で112ビットのセキュリティが得られるため、DH秘密鍵は224ビットである必要があります。 DH秘密鍵が大きくなってもセキュリティは向上しませんが、計算時間が長くなります。おそらく、現在の実装では、特大のDH秘密鍵(512ビットの指数など)を使用しているため、問題が説明されている可能性があります。

パフォーマンスを向上させるには、楕円曲線(ECDH)に切り替えることができます。もちろん、反対側でサポートされているものによって異なります。 ECDHはDHと同じレベルのセキュリティを提供しますが、算術演算は多くなりますが、値がはるかに小さいため、パフォーマンスが大幅に向上します(通常は5〜20倍高速)。 224ビットの曲線は「112ビットの強度」を提供します。つまり、2048ビットのDHと同様です。

11
Thomas Pornin

Snowdenのドキュメントによると、DH 1024はNSAに対してもはや安全ではありません。

NSAはDH 512、DH 768およびDH 2014の個別ログを事前に計算し、リアルタイムで破壊することができます。

https://weakdh.org/imperfect-forward-secrecy-ccs15.pdf

1
Kilo