[解決済み】塩の文字列はどこに保存していますか?
質問
私はこれまで、データベースの保存用にパスワードをハッシュ化する際、エントリーごとに適切なソルト文字列を使用してきました。私のニーズでは、ハッシュ化されたパスワードの隣にソルトをDBに保存することで、常にうまくいっています。
しかし、ソルトをデータベースとは別に保存することを推奨する人もいます。彼らの主張は、もしデータベースが侵害されても、攻撃者は特定のソルト文字列を考慮したレインボーテーブルを構築し、一度に1つのアカウントをクラックすることができるというものです。このアカウントが管理者権限を持っていれば、他のアカウントをクラックする必要さえないかもしれません。
セキュリティの観点から、ソルトを別の場所に保存することに意味はあるのでしょうか?サーバーコードとDBが同じマシンにあるウェブアプリケーションを考えてみましょう。もし、塩がそのマシンのフラットファイルに保存されているなら、もしデータベースが危険にさらされたら、塩のファイルもそうなる可能性があります。
これに対して、何か推奨される解決策はありますか?
どのように解決するのですか?
レインボーテーブルのポイントは、事前に作成され、他の人の計算時間を節約するために大量に配布されていることです - それはちょうどそれが直接パスワードと塩の組み合わせをクラックすると同じように、その場でレインボーテーブルを生成するために時間がかかります(レインボーテーブルを生成するときに行われていることは、実質的にブルートフォースハッシュの計算を事前に実行しているので)、したがって、誰かが塩を知っていれば虹テーブル&を生成できる、という主張は偽りである。
ソルトのポイントは、単に1つのレインボーテーブルでDB内のすべてのパスワードを破ることができないようにすることなのです。
関連
-
[解決済み] XMLHttpRequestがファイルを読み込めません。クロスオリジンリクエストはHTTPのみサポートされています
-
[解決済み] 後で平文を取り出すためのユーザーパスワードの保管について、倫理的にどのように取り組むべきでしょうか?
-
[解決済み] bcryptはどうして塩を内蔵しているのですか?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み】XKCDコミック「Bobby Tables」のSQLインジェクションはどのように動作するのでしょうか?
-
[解決済み】レインボーテーブル攻撃に対してパスワードソルトはどのように役立つのでしょうか?
-
[解決済み】JWTリフレッシュトークンフロー
-
[解決済み】Windowsでコードサイニング用の自己署名証明書を作成する方法を教えてください。
-
[解決済み] ベストプラクティス。パスワードのソルティングとペパリング?
-
[解決済み] データベースにBcryptハッシュ化されたパスワードを格納するために使用する列の種類/長さは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MacのChromeから証明書をエクスポートする方法は?
-
[解決済み] .pfxを.cerに変換する
-
[解決済み】ソフトウェアのライセンスキーはどのように生成されるのですか?
-
[解決済み】非画像ベースのCAPTCHAの実用的なアプローチ?
-
[解決済み】塩の文字列はどこに保存していますか?
-
[解決済み】レトポリンとはどのようなもので、どのように機能するのですか?
-
[解決済み】cerファイル、pvkファイル、pfxファイルの違いは何ですか?
-
[解決済み】Windowsでコードサイニング用の自己署名証明書を作成する方法を教えてください。
-
[解決済み】ペイメントプロセッサー - 自分のウェブサイトでクレジットカードを利用したい場合、何を知っておく必要がありますか?[終了しました]
-
[解決済み】Webブラウザはhttpsでコンテンツをキャッシュするか?