1

対称鍵の保存に関して、特にイライラする問題があります。

バックグラウンド:

暗号化/復号化する必要がある機密データがデータベースに保存されています。現在、Rijndael アルゴリズムを使用しています。アプリケーションは Web ベース (ASP.NET MVC) です。秘密鍵は、複数のインスタンス間で同じである必要があります (それらのインスタンスが同じ DB に接続する場合)。

問題:

上記を念頭に置いて、秘密鍵を保管するのに最適な場所はどこですか? それとも、非対称アルゴリズムを使用する必要がありますか? .cer ファイルを使用することも提案されました。それはどのように機能しますか?

4

4 に答える 4

0

ランダムに生成された単一使用の対称キーを使用します。このキーをメッセージに直接追加し、非対称暗号化アルゴリズムで暗号化します。受信者はまず対称キーをデコードし、それを使用して残りのメッセージをデコードします。その後、対称鍵は破棄され、再利用されることはありません。したがって、保存する必要はありません。

非対称暗号化のすべてのロジックが取得され、適切な暗号化キーのサイズであっても大きなパフォーマンスの問題にはなりません。

于 2013-02-20T20:21:33.567 に答える
0

これは、暗号化が Windows/.NET でどのように機能するかについての適切な説明です。基本的に、証明書を Windows 証明書ストアに保存し、Crypt API を使用して使用します。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa388162(v=vs.85).aspx

于 2013-02-20T13:49:34.370 に答える
0

非対称暗号化は、対称暗号化に比べてはるかに多くのリソースを使用します。データを対称的に暗号化し、キーを非対称的に暗号化することをお勧めします (SSL など)。

複数のインスタンスが必要になる場合があるため、補完的な非対称ソリューションがないと、リスクが高くなります。

CertMgr.msc最初の部分を完了しました。Windows 証明書管理コンソール (実行 => )を介して非対称アルゴリズムでキーを安全に保ちます。

于 2013-02-20T13:50:15.770 に答える
0

キーを保存するための優れたソリューションはありません。キーをハードコーディングしたり、データベースに保存したりするなど、多くの悪い解決策があるため、.cer のアイデアのようなファイルにキーを保存する方がはるかに優れています。

Google のKeyczarフレームワークを C#に移植しました。キーは主にファイル システムに格納されます。複数キーの強調。

形式に鍵のローテーションが組み込まれているため、対称鍵を時間の経過とともにローテーションできます。基本的に、古い暗号文を復号化する機能を失うことなく、新しい暗号文の鍵の強度を交換または強化できます。これは、小さな鍵識別子を追加することによって行われます。暗号文に認証された暗号化を使用します。

暗号化キーを変更できることは、独自の暗号化を構築するときに見過ごされがちです。

于 2013-02-20T14:16:44.870 に答える