ID入力画面とパスワード入力画面が分かれた理由
IDまたはパスワードが違います#
昔の認証が必要なサイトでは、ID(やメールアドレスなど)とパスワードを一つのフォーム上で入力させ、まとめて検証するスタイルのものが多かった。
そして、その際のエラーメッセージは「IDが登録されていません」「パスワードが違います」 といったものではなく、 「IDまたはパスワードが違います」のような表記のものが多かった。
これは、前者の場合は攻撃者に対して「そのアカウントは存在する」ということを知られてしまうため、それを防ぐためのものであった。
昔の認証は「アカウント特定」と「本人確認」を「意図的に」混ぜて扱っていたのだ。
しかしながら、現代においてはIDを入力させ、それが成功した場合にパスワードを入力させる、といったUIが主流となっている。
最適な認証手段を提示する#
現代においては、パスワードによる認証は認証の一手段でしかない。
- ワンタイムパスワード
- SMS認証
- パスキー
など、さまざまな方法がある。
これらを、ユーザーに対して柔軟に案内するための仕組みが一般的になっているのだ。
ただし、先にIDを確定しなければ、どの認証手段を提示すべきかは判断できない。
攻撃に対する思想#
セキュリティは、もはや存在秘匿だけで守れるものではなくなっている。
認証側では
- レート制限 - 認証試行回数を制限し総当たり攻撃対策
- 挙動監視 - 行動パターンによるスクリプト・ボット対策
- リスクベース認証 - 状況に応じて追加認証を求めるなど認証強度を変化させる
といったものを組み合わせることによって、本人認証はより強固なものとなっている。
「量での試行を防ぐ」「正しいパスワードであっても怪しい場合は承認しない」「アカウントごとに状況を把握する」という思想を採ることで、旧来のIDを隠すことよりも大きなメリットを得られる。
つまり#
ID入力画面とパスワード入力画面が分かれたのはセキュリティが緩んだわけではない。
認証を「秘密を当てる行為」ではなく、「主体を特定し、状況に応じて検証を積み重ねるプロセス」として再定義した結果、ログインUIもそれに対応した構造へと変化した、といえるだろう。