パスワードの安全な保存(ソルト・ストレッチング)とは?
パスワードの安全な保存(ソルト・ストレッチング)とは、パスワードは平文でも可逆暗号でもなく、利用者ごとに異なる乱数(ソルト)を連結したうえでハッシュ化して保存する。さらにハッシュ計算を数千〜数万回繰り返す(ストレッチング)ことで、総当たりや辞書攻撃の1回あたりの試行コストを意図的に引き上げる。
高度試験・午前I(全区分共通)の過去問では1回出題されています。
ぱすわーどのあんぜんなほぞん
パスワードの安全な保存(ソルト・ストレッチング)の意味
パスワードは平文でも可逆暗号でもなく、利用者ごとに異なる乱数(ソルト)を連結したうえでハッシュ化して保存する。さらにハッシュ計算を数千〜数万回繰り返す(ストレッチング)ことで、総当たりや辞書攻撃の1回あたりの試行コストを意図的に引き上げる。
パスワードの安全な保存(ソルト・ストレッチング)の具体例
bcryptやArgon2はコストパラメータを持ち、計算機の高速化に合わせて反復回数やメモリ使用量を引き上げられる。同じパスワードを使う利用者がいても、ソルトが違えば保存値が異なるため、1つ解けても他が芋づる式に破られない。
パスワードの安全な保存(ソルト・ストレッチング)は試験でどう引っ掛けられる?
ソルトは秘密情報ではなく、反復回数とともにハッシュ値の隣へ平文で保存してよい。ソルトが防ぐのは総当たり自体ではなく、レインボーテーブルのような事前計算表の使い回しと、「同じパスワードなら同じハッシュ値」という露見である。またSHA-256のような高速ハッシュを1回掛けるだけでは、ソルトがあっても解析速度の面で不十分とされる。
パスワードの安全な保存(ソルト・ストレッチング)と関連する用語
パスワードの安全な保存(ソルト・ストレッチング)が出た過去問
パスワードクラック手法の一種である、レインボーテーブル攻撃に該当するものはどれか。
正解:平文のパスワードとハッシュ値をチェーンによって管理するテーブルを準備しておき、それを用いて、不正に入手したハッシュ値からパスワードを解読する。
要点:レインボーテーブルは事前計算表でハッシュを逆引きする
レインボーテーブル攻撃は、平文パスワードとそのハッシュ値を還元関数によるチェーンの形で圧縮して保持したテーブルを事前に用意し、盗み出したハッシュ値から元のパスワードを高速に逆引きする手法である。ソルトを付けてハッシュ化すれば事前計算表が使えなくなるため、有効な対策となる。
出典:令和5年度 秋期 高度共通_午前I試験 am1 問12(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。