2011-09-09 11 views
1

私は現時点でWebアプリケーションを設計しており、要件の1つはユーザー資格情報とその役割を保護することです。今では通常のpwdハッシング+塩+以外にも... 私はこれらの特定のテーブルを暗号化H2データベースに入れ、残りのデータをMySQLデータベースに入れることを考えていました。私の場合のH2の利点は次のとおりです。暗号化されたデータベースであるため、サーバーが侵害された場合に備えて追加のセキュリティ層が必要です。DB内の機密データを保護し、その価値のあるH2を使用していますか?

私の質問:セキュリティレイヤーを追加する必要がある場合はこれが一般的な方法ですか?つまり、他のデータからログイン情報(私の場合は機密データ)を分離するのは良い考えですか?

ありがとうございます。

答えて

0

これは本当に関連するセキュリティレイヤを追加するとは思わないのですが、サーバーがを侵害され

場合、サーバーは、ユーザーの資格情報を確認することができ、その後、あなたのサーバーは、例えば(同様にそれを検証するために必要なデータを持っている危険にさらさ誰:あなたは、暗号化キーを格納する必要があるだろう/パスワードをサーバー上で解読します。

また、設定がかなり複雑になるため、セキュリティ上の問題(「コンポーネントAはこのファイルを読むことができないのですか?ああ、私はそれを世界で読めるようにしています」)が多発します。シンプルさとすることができます。

+0

あなたのポイントを参照してくださいhmm..Iで、セキュリティフォーラムで、私の答えを得ました。私の場合、dbsはwebappよりも別のサーバに保存されるので、安全なチャンネルを使ってサーバAからサーバBへ通信が行われます。しかし、私は同意します、これはセットアップを複雑にするでしょう... 私はあなたがDBをdesigninしている場合、あなたはいくつかのテーブルに格納されている特定の機密データを保護する必要があることを知って、行う? – Elio

0

アプリケーションが非常に単純な場合は、1つのタイプのデータベースしか使用できないと思います。 MySql。データベースに保存する前にパスワードをハッシュすることができます。ハッシュは、ハッシュされたパスワードから実際のパスワードを取得できないという点で、暗号化とは異なります。ユーザーがログインしようとすると、ユーザーが入力したパスワードがハッシュされ、データベースにすでに格納されているハッシュ値が比較されます。 salt値を使用すると、ハッシュされたパスワードにアクセスしてもハッカーが実際のパスワードを取得することは非常に困難になります。

もっと複雑なアプリケーションの場合は、ldapサーバー(openladpなど)を使用することをお勧めします。次に、パスワードポリシーとハッシングを無料で入手します。