パスワードの安全な保存(ソルト・ストレッチング)とは?ぱすわーどのあんぜんなほぞん
パスワードの安全な保存(ソルト・ストレッチング)とは、パスワードは元へ戻せない形にして保管する。利用者ごとに異なる乱数(ソルト)を付けてからハッシュ化し、さらにその計算を数千から数万回繰り返す(ストレッチング)ことで、1件を試すのに要する計算量を意図的に引き上げる。保存先ごと持ち出されても、総当たりが割に合わない状態にしておくのが狙いである。
最終更新:2026-10-06
この語が出る過去問を解く →背景
かつてはパスワードを守る前提が「サーバへ侵入させない」ことだったが、実際には保存先ごと外部へ出る事故が繰り返し起きた。そこで前提を変え、漏れた後にどれだけ時間を稼げるかで設計するようになった。GPUによる試行速度は年々上がるので、対策も「解けない」ではなく「解くのに見合わないほど遅くする」という相対的な話になる。応用情報では可逆暗号や単純なハッシュとの違いを説明させる形で問われる。
具体例
bcryptやscrypt、2015年のPassword Hashing Competitionで選ばれたArgon2は、反復回数やメモリ使用量をパラメータとして持ち、計算機が速くなったら設定値を引き上げて追随できる。Argon2がメモリ量まで指定できるのは、演算器を並べるだけのGPUやASICに有利を取らせないためで、NIST SP 800-63Bもこの種の関数の使用を求めている。
試験での引っ掛け
ソルトは秘密情報ではなく、反復回数と一緒にハッシュ値の隣へそのまま保存してよい。ソルトが無効化するのは事前計算表(レインボーテーブル)の使い回しと、「同じパスワードなら同じ値になる」ことによる利用者間の露見であって、1件ずつの総当たりそのものは止まらない。そこを遅くするのがストレッチングの役割で、SHA-256を1回掛けるだけではソルトがあっても不十分とされる。
関連用語
出た過去問
出典:令和7年度 春期 応用情報技術者試験 午前 問44(IPA)
パスワードクラックの対策のうち,ストレッチングに該当するものはどれか。
正解:パスワードの照合のためのハッシュ値を,パスワードに対してハッシュ化を繰り返して,求める。
要点:ストレッチングはハッシュ化の反復で解読の計算コストを上げる
ストレッチングは、パスワードのハッシュ化を数千〜数万回繰り返して、1件あたりの照合に必要な計算量を意図的に増やす手法である。正規の認証では1回分の遅延で済むが、総当たりで大量の候補を試す攻撃者には膨大な時間がかかるようになる。利用者ごとに異なる文字列を加えるソルトとは別の手法で、通常は併用する。
出典・参考
公式シラバスの3 技術要素 > 5. セキュリティ実装技術 > (6) アプリケーションセキュリティに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。