ログイン失敗時のメッセージの内容はかなり大事

ログイン失敗時のメッセージの謎

世の中にある様々なWEBサービスのログイン機能ですが、ログインに失敗すると以下のようなメッセージが表示されることがほとんどです。

例えばTwitterでは以下のようなメッセージが現れます。

Twitterのログイン失敗

この「メールアドレスまたはパスワードに誤りがあります。」という文言に注目しました。

 

ログイン機能の実装の際にはバリデーションをかけてそれぞれに適切なメッセージを表示させるコードを書きますが、なぜ「または」という言葉を使うのかがひっかかっていました。

 

メールアドレス(またはアカウント名)は絶対に正解なのに、なぜ「または」を使うのでしょうか。

Twitterに限らずどのWEBサービスでもそうです。

単に「パスワードに誤りがあります。」だけでいいじゃないか。どうせふたつが同時に正解しないとログインできないわけだし。

 

しばらく謎だったのですが、最近自分の中で納得したのでここに書きます。

 

 

もちろん、セキュリティの観点から

答えは「悪質なユーザーからのログインを防ぐため」です。

 

「メールアドレスは正解だけどパスワードが違います」なんてメッセージを表示してしまうと、あとはパスワードの正解を探せば誰でもログインが可能になります。

メールアドレス(またはアカウント名)とパスワードの両方が同時に正解しないとログインできないところがいいのに、わざわざ第三者に「メールアドレスは正解」なんてことを伝えてしまうのは自滅行為です。

 

メールアドレス(またはアカウント名)はわかってしまえば、あとはパスワードをブルートフォースアタックであたれば第三者がログインできてしまいます。

ブルートフォースアタックとは

総当たり攻撃のことで、パスワードなどの暗号を解読するために考えられるパスワードを全て試すことです。考えられる全てのパターンを入力できるプログラムを作れば簡単にできます。

詳しい説明は以下のURLを参照してください。

https://cybersecurity-jp.com/cyber-terrorism/17426

だから、メールアドレス(またはアカウント名)とパスワードの片方が正解だとしても「または」なんて表現にとどめておくのです。

 

補足

ログインに数回失敗すると、しばらくログインができなくなる機能はWordPressのプラグインで可能です。

iPhnoeにも同様の機能があります。

 

これらはブルートフォースアタックを防ぐためです。