問題

パスワードの保管方式に関する記述として、適切なものはどれか。

ア)ソルトとは、同一のパスワードに対して利用者ごとに異なるランダムな値を付加してからハッシュ化することで、レインボーテーブル攻撃などの事前計算型攻撃を困難にする手法である。

イ)ストレッチングとは、パスワードをハッシュ化せずそのまま平文でデータベースに保存する方式を指す。

ウ)ソルトを付加しても、同一パスワードのハッシュ値は利用者間で常に同一になる。

エ)ストレッチングは、ハッシュ関数の適用回数を減らすことで、パスワード認証時の処理を高速化する手法である。

解答・解説を見る

正解: ア)

解説:

  • ア)ソルトは、パスワードをハッシュ化する前に、利用者ごとに異なるランダムな値(ソルト値)を付加する手法です。これにより同じパスワードでも利用者ごとにハッシュ値が異なるようになり、あらかじめ計算しておいたハッシュ値の対応表を用いるレインボーテーブル攻撃などの事前計算型攻撃を困難にします。正解です。
  • イ)パスワードを平文のまま保存する方式は、ハッシュ化を行わない極めて危険な保存方式であり、「ストレッチング」とは異なる概念です。誤りです。
  • ウ)ソルトを付加する目的はまさに「同一パスワードでも利用者ごとにハッシュ値が異なるようにすること」であり、「常に同一になる」という記述はソルトの効果と正反対であり誤りです。
  • エ)ストレッチングは、ハッシュ関数を意図的に何千回・何万回と繰り返し適用することで、パスワードを解析しようとする総当たり攻撃にかかる計算コストを増大させ、解析を困難にする手法です。「適用回数を減らして高速化する」は目的・手段ともに逆であり誤りです。

重要キーワード

用語説明
ソルトハッシュ化前にパスワードへ付加する利用者固有のランダム値
ストレッチングハッシュ関数を繰り返し適用し解析コストを高める手法
レインボーテーブル攻撃事前計算したハッシュ値の対応表を用いる攻撃
総当たり攻撃あらゆる組合せを試してパスワードを解析する攻撃