[0211] ハッシュ関数,パスワード

平成12年度秋期 (旧)第2情報処理技術者試験より
入力パスワードと登録パスワードを比較しユーザを認証する方法において、パスワードファイルへの不正アクセスによる登録パスワードの盗用防止策はどれか。
パスワードに対応するユーザIDのハッシュ値を登録しておき、認証時に入力されたユーザIDをハッシュ関数で変換し、登録パスワードと入力パスワードを比較する。
パスワードをそのまま登録しておき、認証時に入力されたパスワードと登録内容をともにハッシュ関数で変換して比較する。
パスワードをそのまま登録しておき、認証時に入力されたパスワードと比較する。
パスワードをハッシュ値に変換して登録しておき、認証時に入力されたパスワードをハッシュ関数で変換して比較する。

正解

解説

 ハッシュ関数を用いた機密情報の漏洩防止に関する問題です。

 ハッシュ関数とは、ある値に対して特殊な計算を行うことで、元の値とは異なる一定長の値を得るためのものです。ハッシュ関数は一方向関数なので、得られたハッシュ値から元のデータを再現することは不可能です。この性質を利用して、パスワードといった機密情報を保管する際にはデータをハッシュ化しておき、万が一データが第三者に渡っても、解読できない状態にすることができます。

 実際にハッシュ関数を使って、文字列からハッシュ値を生成してみましょう。



 元のデータはすべて辞書に載っている英単語であり、極めて単純ですが、生成されたハッシュ値は、全く無関係な文字列に変換されてしまいます。こうなると、ハッシュ値から元のデータを推測することは、もはや不可能です。


 パスワードに対応するユーザIDのハッシュ値を登録しておき、認証時に入力されたユーザIDをハッシュ関数で変換し、登録パスワードと入力パスワードを比較する。
不正アクセスによる登録バスワードの盗用を防止するためには、パスワードファイル自体を第三者からみて無意味な情報に変換しておくことが重要です。

 パスワードをそのまま登録しておき、認証時に入力されたパスワードと登録内容をともにハッシュ関数で変換して比較する。
選択肢アと同様、パスワードファイルにそのまま登録しておいては意味がありません。

 パスワードをそのまま登録しておき、認証時に入力されたパスワードと比較する。
選択肢アと同様、パスワードファイルにそのまま登録しておいては意味がありません。

 パスワードをハッシュ値に変換して登録しておき、認証時に入力されたパスワードをハッシュ関数で変換して比較する。
正しい記述です。


 以上より、エが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題