情報セキュリティ

基本情報技術者試験パスワード保管」の問題

情報セキュリティ情報セキュリティ難易度:hard
R社のWebサービスはパスワードをハッシュ化して保存しているが、攻撃者にデータベースが流出した際、同じパスワードを使う利用者のハッシュ値が一致していたため、事前計算した一覧との照合で多くが解読された。この弱点を補う保管方法として、最も適切なものはどれか。
保存済みのハッシュ値をさらに共通鍵でひと重ねして暗号化し、保管時の防御層を増やす。
利用者ごとに別々の付加文字列を混ぜてからハッシュ化し、同じパスワードでも保存値が食い違うようにする。
ハッシュ値を複数のサーバへ分散して保存し、一度の流出で漏れてしまう範囲を狭める。
パスワードに設定できる最大文字数を短く制限し、ハッシュ計算にかかる負荷を下げる。
正解
利用者ごとに別々の付加文字列を混ぜてからハッシュ化し、同じパスワードでも保存値が食い違うようにする。

弱点は『同一パスワードが同一ハッシュ値になり、事前計算した一覧(レインボーテーブル等)で一括解読される』点である。利用者ごとに異なるソルト(付加文字列)をパスワードに混ぜてからハッシュ化すれば、同じパスワードでも保存されるハッシュ値が利用者ごとに変わり、汎用の事前計算表が通用しなくなる。これがソルトの本来の効果である。

?選択肢ごとの解説

ア ×ハッシュをさらに暗号化しても、その暗号鍵が流出すれば元のハッシュに戻り、同一値が一致する弱点自体は解消しない。
イ ○弱点は『同一パスワードが同一ハッシュ値になり、事前計算した一覧(レインボーテーブル等)で一括解読される』点である。利用者ごとに異なるソルト(付加文字列)をパスワードに混ぜてからハッシュ化すれば、同じパスワードでも保存されるハッシュ値が利用者ごとに変わり、汎用の事前計算表が通用しなくなる。これがソルトの本来の効果である。
ウ ×分散保存は流出範囲を限定する管理策にすぎず、流出した分については同一ハッシュの一致という弱点が残る。
エ ×最大文字数の制限はパスワードを弱くするだけで、同一ハッシュの一致問題とは無関係で逆効果になりうる。

くわしく

ソルトは利用者ごとにランダムな値を付与してハッシュ化することで、同一パスワードのハッシュ衝突を防ぎ、事前計算攻撃(レインボーテーブル)を無効化する。さらにストレッチング(反復ハッシュ)で計算コストを上げると総当たりも遅延できる。

本番での押さえどころ

試験のコツ

同一パスワード=同一ハッシュで一括解読が論点なら、利用者ごとのソルト付与が正解。暗号化追加では本質解決しない。

覚え方

ソルト=『一人ひとりに違う隠し味』。同じ料理でも味が変わり、レシピ表(事前計算表)が使えない。

よくある誤り

『ハッシュ化していれば安全』と考え、同一パスワードが同一値になる弱点とソルトの役割を理解していない。

情報セキュリティの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0042

【基本情報技術者試験】パスワード保管の問題 — 解答・解説|ukamiru 過去問