パスワードを用いて利用者を認証する方法のうち、適切なものはどれか。
ア パスワードに対応する利用者IDのハッシュ値を登録しておき、認証時に入力されたパスワードをハッシュ関数で変換して比較する。
イ パスワードに対応する利用者IDのハッシュ値を登録しておき、認証時に入力された利用者IDをハッシュ関数で変換して比較する。
ウ パスワードをハッシュ値に変換して登録しておき、認証時に入力されたパスワードをハッシュ関数で変換して比較する。
エ パスワードをハッシュ値に変換して登録しておき、認証時に入力された利用者IDをハッシュ関数で変換して比較する。
パスワードは、ハッシュ関数を使ってハッシュ値に変換して登録しておきます。認証時に入力されたパスワードをハッシュ関数でハッシュ値に変換して登録時のハッシュ値と比較します。両者のハッシュ値が一致したときに正規の利用者として認証させます。
なぜパスワードはそのまま登録せずにハッシュ値として登録するのでしょうか?パスワードをそのまま登録すれば、システムにセキュリティの欠陥があった場合にパスワードが簡単に漏えいしてしまうからです。
パスワードをハッシュ関数を使ってハッシュ値に変換し登録しておけばセキュリティは高まります。ハッシュ関数とは、文字や数値をある一定の規則で変換して、元の値とは異なる固定長のデータを得るものです。
ハッシュ関数は一方向関数とも呼ばれており、変換後のデータから変換前のデータを再現することはできません。つまりパスワードをハッシュ化すれば、ハッシュ値からパスワードを再現できません。
万が一、ハッシュ値が漏えいしたとしてもパスワードを解読されることは回避できますのでセキュリティは高まります。
解答は「ウ」です。
今日の問題は、基本情報技術者レベルの難問だったと思います。パスワードをハッシュ値として登録することでセキュリティが向上することを覚えておきましょう。

