8

1024 ビット未満の RSA キーはブロックされているというこの記事を読んだところです。私の .NET ソフトウェアでは、384 ビット キーを多用しています。私のプログラムは、RSACryptoServiceProvider を使用して MachineKeyStore からキーを生成/保存/読み取りできますか? または、パッチを送信する必要がありますか?

4

3 に答える 3

4

Microsft (Kurt L Hudson) から返信がありましたが、この更新はチェーン構築にのみ影響するはずなので、RSACryptoServiceProvider は 2012 年 8 月以降も小さなキーサイズで引き続き機能するようです。

于 2012-07-14T09:13:28.910 に答える
0

署名のサイズを最小限に抑えることが重要な場合、RSA は最初から適切な選択ではありません。DSA とECDSAはどちらも、RSA よりもはるかに強力な短い署名を生成します。ただし、DSA も ECDSA も、RSA 384 の署名検証の速度には近づきません。

ただし、所有しているキーを引き続き使用する必要がある場合は、Microsoft 暗号化 API を使用しないようにコードを変更する必要があります。たとえば、C# を使用している場合は、Bouncycastle C# ライブラリを使用できます。最後に、これについて Microsoft に苦情を申し立てることができます。うまくいくとは思えませんが、いつでも試すことができます。

于 2012-07-13T21:43:24.000 に答える
0

これは、コメントで出てきた質問に対する提案された回答です。

対称的な方法を使用してクライアントを認証する方法を見つけることができるでしょう。私は今、典型的な RSA 署名方式を使用していると仮定しています。この方式では、メッセージ ハッシュがクライアントの秘密鍵によって署名され、公開鍵によって検証できます。

おそらく、永続キーの交換を実行してから、非対称キーの代わりにそのキーを使用してメッセージ ダイジェストを暗号化できます。メッセージの送信者が秘密鍵を知っていることは保証されますが、メッセージがクライアントから送信されたのかサーバーから送信されたのかを確認する方法はありません (両方とも鍵を知っているため)。クライアントが認証中にサーバーに挑戦した場合、中間者攻撃を防ぐのに役立ちます (ただし、クライアントはサーバーの公開鍵をローカルに埋め込む必要があります)。

于 2012-07-12T20:24:55.963 に答える