正解:エ
各選択肢の解説
ア入力された利用者IDが未登録の場合は「このIDは登録されていません」と表示する。
誤り。親切に見えますが、IDが登録済みかどうかを第三者に教えてしまいます。 攻撃者は表示の違いから有効なIDを集め、パスワードの推測をそのIDに絞り込めます。
イ失敗した利用者の登録メールアドレスへ、正しいパスワードを自動で送る。
誤り。正しいパスワードを送れるのは、システムが元に戻せる形で保存しているからです。 本来はハッシュ値などで保存し、忘れた場合は本人確認のうえ再設定させます。
ウ入力内容を確認できるよう、入力したパスワードを画面に表示したまま戻す。
誤り。画面にパスワードが表示されると、周囲の人に盗み見られるおそれがあります。 入力欄は伏せ字にし、失敗後の画面にもパスワードを残さないのが基本です。
エIDとパスワードのどちらが誤っているかを区別せず、ログインできない旨だけを表示する。
正解。どちらが誤りかを示さなければ、攻撃者は入力したIDが有効かどうかを判断できません。 有効なIDを絞り込まれることを防げます。
理解を深めるために
「どちらが違うか」は教えない
ログインに失敗したとき「IDが違います」「パスワードが違います」と出し分けると、 利用者には親切です。しかし攻撃者にとっても親切です。 「パスワードが違います」と出たら、そのIDは実在すると分かってしまうからです。
なぜ出し分けが危ないのか
- 攻撃者は、よくある名前やメールアドレスを次々に入力し、表示の違いから有効なIDを集められる
- 有効なIDが分かれば、あとはパスワードの推測だけに集中できる
- 「IDまたはパスワードが誤っています」とまとめて表示すれば、この手がかりを与えない
あわせて、連続して失敗したときにログインを一時的に止めるアカウントロックを組み合わせると、 パスワードを総当たりで試す攻撃にも備えられます。
選択肢の整理
| 動作 | 問題点 |
|---|---|
| どちらの誤りか区別せず表示 | 有効なIDを推測させない(適切) |
| IDが未登録と表示 | 有効なIDの一覧を作られる |
| 正しいパスワードをメール送信 | 元に戻せる形で保存している証拠。漏えい時の被害が大きい |
| パスワードを画面に表示 | 盗み見のおそれ |
ログインまわりの対策は「攻撃者に手がかりを与えない」が共通の考え方です。 エラー表示、保存方法、画面表示のどれもこの観点で判断できます。