本文へ移動

基本情報技術者試験 · 学習ガイド

2018年度 春期 午後の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2018年度 春期 午後の概要
30:00

問題番号から選ぶ

Webサービスにおけるパスワードの安全な保存

情報セキュリティ · ハッシュ関数 / ソルト / ストレッチング / オフライン総当たり攻撃 / 辞書攻撃

Webサービスにおいて利用者のパスワードを安全に保存・照合する方式に関する記述を読み、設問1〜3に答えよ。

解答・解説を表示

解答

設問1 a: エ, 設問1 b: イ, 設問2 c: イ, 設問2 d: エ, 設問3: エ

解説

まず要点:パスワードは元に戻せない一方向ハッシュ関数(入力を固定長の値に変換する仕組み)で変換して保存します。理由は、万が一データが漏れても元のパスワードが分からないようにするためです。さらに、事前に計算した表を使う辞書攻撃(レインボーテーブル攻撃)を防ぐためランダムな文字列ソルトを加え、計算を何度も繰り返すストレッチングで総当たり攻撃を遅くします。

解き方

  1. ハッシュ関数の基本的特性(固定長出力、同一入力での同一出力、不可逆性)と代表例(SHA-256)を確認する。
  2. 事前計算による辞書攻撃の原理と、ランダムなソルト付加によって事前計算表の作成コストを膨大にさせる仕組みを理解する。
  3. ストレッチングによる反復計算が1試行あたりの計算時間を増加させ、オフライン総当たり攻撃を遅延させる効果を導く。

小問ごとの答え

小問 設問1 a:エ
選択肢の中で暗号学的ハッシュ関数に該当するのはSHA-256(エ)である。アのAESは共通鍵暗号、イのDiffie-Hellmanは鍵交換プロトコル、ウのRSAは公開鍵暗号、オのTLSはトランスポート層の暗号化通信プロトコルである。
小問 設問1 b:イ
ハッシュ関数は同一の入力値に対して常に同一のハッシュ値を出力する決定論的特性をもつため、パスワードの一致確認に利用できる。アは衝突困難性に反し、ウのように再度ハッシュ化しても元には戻らず、エの秘密鍵による復号も不可逆性のため不可能である。
小問 設問2 c:イ
ハッシュ関数は入力が1文字でも異なれば出力が大きく異なる雪崩効果をもつため、ソルトを連結した文字列のハッシュ値はパスワード単体のハッシュ値とは異なる値になる。また出力長は固定長であるため長さは変化しない。
小問 設問2 d:エ
ソルトが付与されると、攻撃者はパスワード候補ごとに生成された多種類のソルトとの組み合わせを計算しなければならず、一つのパスワード候補に対して事前に求めるべきハッシュ値の数が膨大になるため、事前計算表による辞書攻撃を無効化できる。
小問 設問3:エ
ストレッチングはハッシュ計算を多数回繰り返す手法であるため、攻撃者がパスワード候補を検証する際にも同様に多数回の計算が必要となり、一つのパスワード候補からハッシュ値を求める計算時間が増加する。これによりオフライン総当たり攻撃の成立を困難にする。

覚えるポイント

  • ハッシュ関数は不可逆・固定長出力であり、同一入力なら常に同一ハッシュ値を出力する。
  • ソルトは事前計算辞書攻撃(レインボーテーブル)対策、ストレッチングは総当たり攻撃対策である。

間違えやすいところ

  • ソルトを連結してもハッシュ関数の出力長は固定長であり、ハッシュ値の長さ自体は伸びない点に注意する。
  • ストレッチングを行っても最終的に保存・照合するハッシュ値は1つであり、ハッシュ値の比較回数が増えるわけではない点を見落とさないこと。

出題の前提:平成30年度春期 基本情報技術者試験 午後 問1

出典:IPA『2018年度 春期 午後』
公式問題冊子 p.6 ↗(www.ipa.go.jp) / 公式問題冊子 p.7 ↗(www.ipa.go.jp) / 公式問題冊子 p.8 ↗(www.ipa.go.jp) / 公式問題冊子 p.9 ↗(www.ipa.go.jp) / 公式問題冊子 p.10 ↗(www.ipa.go.jp)

2018年度 春期 午後

参照した公式資料

IPAが公開した2018年度 春期 午後の問題・解答資料です。