11

MVC3 アプリケーションでデータを暗号化および復号化するキー値とベクトル値を必要とする AES 暗号化/復号化クラスを使用しています。

レコードを保存する際に、データを暗号化してからデータベースに保存しています。レコードを取得すると、コントローラーで復号化され、暗号化されていない値がビューに渡されます。

懸念事項は、ネットワークを通過するデータを保護することではなく、データベースが危険にさらされた場合にデータベースを保護することです。

コードに暗号化用のキーを入れないでくださいという多くの投稿を読みました。

わかりましたので、どこに保管する必要がありますか?ファイルシステム?別のデータベース?

何らかの方向性を探しています。

4

2 に答える 2

3

常識では、侵入者がデータベースにアクセスした場合、ファイル システムにもアクセスできる可能性が高いと言われています。それは本当にあなた次第です。一つには、それを隠そうとすることができます。構成ファイルでは、ファイルシステムのどこかにあるプレーンファイルで、アプリケーション内にある別のキーで暗号化します...などなど。

構成ファイルは論理的な答えですが、チャンスをつかむ理由はありません。複数レベルの暗号化と自由にキーを混在させてください。1 つはレコード自体から何かを必要とし、すべてのレコードに固有のもの、もう 1 つは構成値を必要とするもの、3 番目はアプリケーション固有の値を必要とするもの、そしておそらく非表示のライブラリからの 4 番目のものです。あなたのアプリケーションの参照の範囲内ですか?このようにして、1 つのレイヤーが何らかの形で危険にさらされたとしても、他のレイヤーでそれを保護することができます。

はい、オーバーヘッドが追加されます。はい、比較的高価です。しかし、ユーザーのクレジット カード情報などの機密データがある場合、それだけの価値があるでしょうか? きっとそうです。

私は、非常にセキュリティに重点を置き、慎重に管理されている私の個人的なペット プロジェクトの 1 つで、同様の暗号化およびハッシュ技術を使用しています。一度に表示する必要があるデータの量によって異なります。たとえば、私の場合は一度に 10 レコードしか取得できず、おそらくそれ以下です。

... 混合の意味を明確にするには: 一度暗号化します。次に、別のキーと提案されている別のアルゴリズムを使用して、そのデータを再度暗号化します。

于 2012-06-08T09:34:05.807 に答える
0

ACL で保護されたレジストリ キーを使用するので、アプリ プールを実行しているアカウントだけがそれらを読み取ることができます。

于 2012-06-08T09:38:16.297 に答える