基本情報技術者試験「パスワード保管」の問題
R社のWebサービスはパスワードをハッシュ化して保存しているが、攻撃者にデータベースが流出した際、同じパスワードを使う利用者のハッシュ値が一致していたため、事前計算した一覧との照合で多くが解読された。この弱点を補う保管方法として、最も適切なものはどれか。
ア保存済みのハッシュ値をさらに共通鍵でひと重ねして暗号化し、保管時の防御層を増やす。
イ利用者ごとに別々の付加文字列を混ぜてからハッシュ化し、同じパスワードでも保存値が食い違うようにする。
ウハッシュ値を複数のサーバへ分散して保存し、一度の流出で漏れてしまう範囲を狭める。
エパスワードに設定できる最大文字数を短く制限し、ハッシュ計算にかかる負荷を下げる。
正解
イ.利用者ごとに別々の付加文字列を混ぜてからハッシュ化し、同じパスワードでも保存値が食い違うようにする。
弱点は『同一パスワードが同一ハッシュ値になり、事前計算した一覧(レインボーテーブル等)で一括解読される』点である。利用者ごとに異なるソルト(付加文字列)をパスワードに混ぜてからハッシュ化すれば、同じパスワードでも保存されるハッシュ値が利用者ごとに変わり、汎用の事前計算表が通用しなくなる。これがソルトの本来の効果である。
?選択肢ごとの解説
ア ×ハッシュをさらに暗号化しても、その暗号鍵が流出すれば元のハッシュに戻り、同一値が一致する弱点自体は解消しない。
イ ○弱点は『同一パスワードが同一ハッシュ値になり、事前計算した一覧(レインボーテーブル等)で一括解読される』点である。利用者ごとに異なるソルト(付加文字列)をパスワードに混ぜてからハッシュ化すれば、同じパスワードでも保存されるハッシュ値が利用者ごとに変わり、汎用の事前計算表が通用しなくなる。これがソルトの本来の効果である。
ウ ×分散保存は流出範囲を限定する管理策にすぎず、流出した分については同一ハッシュの一致という弱点が残る。
エ ×最大文字数の制限はパスワードを弱くするだけで、同一ハッシュの一致問題とは無関係で逆効果になりうる。
✎くわしく
ソルトは利用者ごとにランダムな値を付与してハッシュ化することで、同一パスワードのハッシュ衝突を防ぎ、事前計算攻撃(レインボーテーブル)を無効化する。さらにストレッチング(反復ハッシュ)で計算コストを上げると総当たりも遅延できる。
✓本番での押さえどころ
試験のコツ
同一パスワード=同一ハッシュで一括解読が論点なら、利用者ごとのソルト付与が正解。暗号化追加では本質解決しない。
覚え方
ソルト=『一人ひとりに違う隠し味』。同じ料理でも味が変わり、レシピ表(事前計算表)が使えない。
よくある誤り
『ハッシュ化していれば安全』と考え、同一パスワードが同一値になる弱点とソルトの役割を理解していない。
情報セキュリティの他の問題
A社の経理担当者が、取引先を装ったメールに添付された請求書ファイルを業務PCで開いたところ、見慣れない画面が一瞬表示されて消…B社のWebサービスで、複数の利用者アカウントに対し正しいIDとパスワードの組合せによるログインが短時間に外部から成立する事…C社では、退職予定者や異動者のアカウント権限の見直しが滞り、業務上不要になった共有フォルダへのアクセス権が残り続けている。情…D社のファイルサーバがランサムウェアに感染し、業務ファイルが暗号化された。D社は日次でバックアップを取得しているが、バックア…E社の従業員に、取引先銀行を名乗る『口座情報の更新が必要』というメールが届いた。本文中のリンク先URLにアクセスすると、銀行…F社は社外の従業員が、カフェなどの公衆無線LANを利用して社内システムへアクセスしている。通信内容が経路上で第三者に盗聴・改…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0042