問題 41★★★

パスワードをハッシュ値で保存しているシステムから、ハッシュ値の一覧が盗まれた。 ログイン画面には5回の失敗でロックする設定があるが、盗まれた一覧に対する 総当たり攻撃はこの設定では防げない。その理由として、最も適切なものはどれか。

正解:イ

各選択肢の解説

  1. アハッシュ値から元のパスワードを計算で逆にたどれるので、試行が要らないから。

    誤り。ハッシュ関数は一方向で、ハッシュ値から元のパスワードを計算で戻すことはできません。 だからこそ攻撃者は候補を1つずつハッシュ化して一致を探す、つまり総当たりをします。 暗号化(鍵で戻せる)とハッシュ化(戻せない)の取り違えです。

  2. イ攻撃者は候補のハッシュ値を手元で計算して照合し、ログイン画面を使わないから。

    正解。一覧を手に入れた攻撃者は、自分の計算機で候補を次々にハッシュ化して比べられます。 ログイン画面で失敗しないので、ロックの回数は1回も数えられません。

  3. ウ盗んだハッシュ値をログイン画面に入力すれば、照合を通過できてしまうから。

    誤り。盗んだ値を送り直して通ろうとするのはリプレイ攻撃の発想です。 しかしログイン画面ではパスワードを入力し、システムがそれをハッシュ化して比べるので、 ハッシュ値を入力しても再びハッシュ化されて一致しません。候補を試す総当たりとも別物です。

  4. エ流出した正しいIDとパスワードの組を使うので、ログインに失敗しないから。

    誤り。これはクレデンシャルスタッフィングでロックが効きにくい理由です。 場面で盗まれたのはパスワードそのものではなくハッシュ値で、攻撃者はまだ正しいパスワードを知りません。 それを探す段階で、ログイン画面を経由しないことがロックの効かない理由です。

理解を深めるために

金庫ごと持ち帰られたら、ダイヤルの回数制限は効かない

アカウントロックは、店頭の金庫に「5回間違えたら開かなくなる」仕掛けを付けるようなものです。 店頭で試してくれる相手には効きますが、金庫ごと持ち帰られたら、攻撃者は自宅で好きなだけダイヤルを回せます。 ハッシュ値の一覧が盗まれたときに起きるのは、この「持ち帰り」です。

なぜログイン画面の外で総当たりができるのか

ハッシュ関数には、同じ入力からは必ず同じ値が出て、値から入力には戻せない、という性質があります。 攻撃者はこれを逆手に取ります。

  • 候補のパスワードを自分の計算機でハッシュ化する
  • 盗んだ一覧のハッシュ値と一致するかを比べる
  • 一致した候補が元のパスワード。この間、システムには1回もアクセスしない

ログイン画面を経由しない攻撃は、オフライン攻撃とも呼ばれます。 ロックはシステムに届いた失敗を数える仕組みなので、届かない試行には働きません。 備えとしては、一覧を盗ませない管理に加え、ソルトを付け計算に時間がかかる方式で保存する、 長く推測されにくいパスワードにして1つ当てるまでの計算量を増やす、といった対策が効きます。

混同しやすいものとの違い

考え方 何をしているか ロックとの関係
一覧を使った総当たり攻撃 手元で候補をハッシュ化して照合 システムに届かないので数えられない
ハッシュ値の逆算 そもそも計算では戻せない 成り立たない
リプレイ攻撃 通信で流れた値をそのまま再送 画面に入れたハッシュ値は再びハッシュ化される
クレデンシャルスタッフィング 他で漏れた正しい組を使う 正しい組なら1回目で通る

ロックが効くかどうかは、「試行がシステムに届くかどうか」で判断します。 攻撃者の手元で完結する試行には、保存方式とパスワードの強さで備えます。

前の問題へ次の問題へ