2017-05-07 3 views
0

ハッシュされたパスワードを他の他のデータ(テーブル)同じデータベース内に?例えば他のデータと同じデータベースにハッシュされたパスワードを保存することは安全ですか

は(他のデータ・テーブルの多い)以下の(簡体字)の構造を想像:

authentication  user   
--------------  ----------- 
auth_id {PK}  user_id {PK} 
username   realname 
passwordhash  auth_id {FK} 

は、このようなユーザー認証/パスワードを保存することが安全である、またはそれがdifferntly保存する必要がありますおそらく余分なデータベースなどで?

答えて

0

ソフォスがthis articleを検討することをお勧めします。ソフォスは、その根拠と安全な設計について本当にうまく説明しています。

この記事では、別のパスワードサーバーを使用して、パスワードにアクセスできる役割がないと主張しています。

多くのエンタープライズシステムでは、パスワードを他の資格情報から隔離しています。

+0

_「一般的な推奨は別のパスワードサーバーを使用することです」_ - この申し立てをサポートする資料はありますか? – 1615903

0

すべてが異なります。

一般に、攻撃者が1つのデータベースを読み取ることができる場合、別のデータベースを読み取る可能性が高いため、アプリケーションが他のデータベースへのSQL接続を開くだけでは大きなメリットはありません。

また、データベースにアクセスできる場合は、ユーザー名とパスワードの組み合わせなど、データベースとの間のトラフィックを読み取ることができます。

したがって、認証データを別のデータベースに格納することは、セキュリティの大幅な向上ではありません。キーマネージメント(あなたのハッシュを塩漬けしていますか?)など、他のセキュリティ問題に時間とエネルギーを費やす方が良いでしょう。

ただし、物理的に別のインフラストラクチャを設定し、認証機能をサービスとしてフロントエンドに公開することができます。 OAuthなら、攻撃者にとって大きな障壁となります。彼らはこの代替データベースを妥協する必要があり、統合がフロントエンドにあるため、データベースへのトラフィックを盗聴することに依存することはできません。

関連する問題