2011-02-07 10 views
6

私たちには、個人的で機密性の高いデータをデータベースに保存するサイトがあります。データベースに格納するためのデータの暗号化

もちろん、このデータをデータベースに保存してSSLを使用する前に、このデータを暗号化する必要があります。フォーム認証を使用するMVCアプリケーションです。このデータが保存されてから個人ページに表示されるまで解読されるまで、このデータが暗号化されていることを確認する最良の方法は何ですか。

また、開発者やdbaがアプリを操作している場合でも、安全であることを確認する必要があります。

この状況を処理する最善の方法は何ですか?

+0

あなたはデータを保護しようとしていますか? –

+0

誰かがそれを取得する可能性があります。基本的には、データを見ることができる唯一のユーザーであることをユーザーに保証する必要があります。 (私はそれを100%保証することは不可能ですが、可能な限り近づける必要があることは分かっていますが) – twal

+3

基本的には、実行時にユーザーが提供する鍵で暗号化する必要があります。もちろん、ユーザーがそのキーを紛失した場合(覚えているのは、私たちが話しているユーザーです)、バイバイをデータに言います。 –

答えて

1

パブリック・キー暗号化を使用し、エンド・ユーザーがこれを制御しなければ、データからDBAを保護する方法はありません。エンドユーザーがキーを紛失した場合、すべてのデータが失われます。

キーを格納する別のデータベースを持つことができ、DBAはこのDBにアクセスできません。

データ用とキー用の2つのDBAが必要です。

これは、DBAを信頼しないと仮定していますが、それを採用してはいけません。

DBAを信頼する場合、両方のDBにアクセスできるようにしますが、別のアカウントを持つ必要があるため、1つのアカウントが侵害された場合、(ハッカー)はすべてのものにアクセスできなくなります。

通常、適切に設計されたシステムでは、DBA /管理者は個人的な仕事のための別個の口座と仕事をするための高い口座を持っています。

私はプログラマーがテスト環境にアクセスできると仮定しています。プロダクション環境にアクセスできる場合は、キーとデータの両方にアクセスできます。

+0

できるだけ多くのプライバシーを顧客に保証する、私は理想的であると説明した状況を理解する。もちろん、私たちは最終的に、実際にデータを入手したい/必要とする場合、内部的にデータにアクセスする人がいることを理解しています。できるだけ理想的なシナリオに近づけようとしています。これらのコメントは大きく貢献しています。ありがとうございました – twal

0

すべての暗号化キーを持っており、キーは、キー:) 最良の方法は、あなたが任意のプログラミング背景なし


を行うことができますweb.configファイルにキーを設定していること(/取得しないように取得すること)であります

そして私は美しいを見たAES Encryption Algorithm implementation at StackOverflow。私はそれを使用することをお勧めします。

+0

web.configのキーを設定すると、何かが欠落していない限り、開発者はデータにアクセスできます。 – mxmissile

+0

@mxmissile:プロダクションweb.config≠開発用web.config。また、生産db≠開発db。 – rsenna

+0

@mxmissile:開発者に彼らが知っているキーを開発させる。展開後に変更することができます。 – naveen

関連する問題