ソルトとは?そると
ソルトは、パスワードをハッシュ化(元に戻せない要約値に変換)して保存するとき、利用者ごとに混ぜるランダムな文字列である。同じパスワードでも利用者ごとにソルトが違えばハッシュ値も違うものになるため、よく使われるパスワードのハッシュ値をあらかじめ計算しておいた対応表(レインボーテーブル)を使った解読や、同じパスワードの人をまとめて見破る攻撃を防げる。ソルトは秘密にする値ではなく、ハッシュ値と一緒に保存してよい。あわせて、ハッシュ計算を何千回も繰り返して1回の試行にかかる時間を延ばすストレッチングと組み合わせて使う。
最終更新:2026-10-10
基本情報を最短で暗記・合格する →背景
パスワードを平文のまま保存すると、データベースが漏れた瞬間にすべて読まれてしまう。そこでハッシュ値だけを保存するようになったが、同じパスワードは必ず同じハッシュ値になるため、攻撃者は「よく使われるパスワードとハッシュ値の対応表」を先に作っておけば一瞬で引けた。この対応表を役に立たなくするために、利用者ごとに異なる値を混ぜるソルトが使われるようになった。
具体例
学内システムの利用者AさんとBさんが偶然どちらも「password123」を使っていても、Aさんには「x9Qf」、Bさんには「k2Lm」のように別々のソルトを付けてからハッシュ化するので、保存される値はまったく違う。Linuxのパスワードファイル(/etc/shadow)や、Webアプリで広く使われるbcryptという方式は、ソルトをハッシュ値と同じ欄に一緒に記録している。
試験での引っ掛け
「ソルトは秘密に保管しなければ効果がない」は誤りである。ソルトは利用者ごとに違うことに意味があり、ハッシュ値と一緒に保存してよい。また、ソルトは対応表を使う攻撃を防ぐものであり、1つのアカウントに対して候補を次々に試す総当たり攻撃や辞書攻撃そのものを防ぐ効果は小さい——それを遅くするのはストレッチングの役目である。ハッシュ化は暗号化と違い、鍵を使って元に戻すことはできない。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。