【そると】
ソルト とは?
最終更新:
💡 同じパスワードでも、計算を使い回しにくくする
パスワードのハッシュ計算に使う、保存するパスワードごとに異なるランダムな値。事前計算への対策と、推測攻撃への限界を説明します。
📌 このページのポイント
- パスワードのハッシュ計算に使うランダムな値
- 異なるソルトで、事前計算や複数利用者への使い回しを妨げる
- ソルトは秘密にする値ではなく、ハッシュと一緒に保存
- 専用のハッシュ方式と計算コストも必要
パスワードに塩を振るって、どういうこと?
何の攻撃を難しくするの?
候補のパスワードからあらかじめ作ったハッシュの一覧を、そのまま使う攻撃への対策になる。異なるソルトごとに計算が必要だから、一回の計算を多くの利用者へ使い回すことも妨げるんだ。
ソルトは、隠さなくてよい?
ソルト自体は秘密にする値ではなく、ハッシュと一緒に保存するよ。ログイン時には、保存したソルトと同じ方式・条件で計算して、結果を照合できるようにするんだ。
公開しても、パスワードは絶対分からない?
絶対に推測できないわけではないよ。漏れたハッシュに候補を計算して比べる攻撃は残る。専用のパスワードハッシュ方式と適切な計算コストも大切で、ソルトだけで安全とは言えないんだ。
Argon2idなら、何もしなくてよい?
もっと詳しく知りたい人へ
SHA-256へランダムな文字を足せば十分?
ソルトだけでは、一回の推測を計算する速さは十分に抑えられません。OWASPは高速なSHA-256をパスワード保存に使うことを勧めず、Argon2idなどの専用方式を案内しています。
ペッパーとの違いは?
ペッパーは追加の防御として使う秘密の値で、パスワードのデータベースとは別に保管します。公開してよいソルトと、秘密を守るペッパーは役割が違います。
まとめ:ざっくりこれだけ覚えればOK!
「ソルト」って出てきたら「パスワードのハッシュ計算に加える、使い回しを妨げるランダムな値」と思えばだいたいOK!
📖 おまけ:英語の意味
「Salt」 = 塩
💬 ここではパスワードの保存に使う、ハッシュ計算の入力の一つを指します。