レイズソフトウェア

ログイン画面とリバースブルートフォース攻撃

はてなブックマーク
2016/07/28 02:24:24

よくある会員認証機能のあるWebサービスのログイン画面というのは、 ユーザーID(またはメールアドレス)とパスワードを同時に入力できる画面となっていますが、 Goolge のログイン画面では、まず最初にユーザーID(メールアドレス)を入力させ、 そのアカウントが有効な場合のみパスワードを入力させるというようなログイン画面になっています。 なぜこのようなログイン画面になっているのでしょうか? とっても賢い Google のことですから、きっと何か裏があるに違いありません。

google1.png

リバースブルートフォース攻撃とは?

突然ですが、リバースブルートフォース攻撃というのをご存知でしょうか?

リバースブルートフォース攻撃とは何か?を語るためには、まずブルートフォース攻撃とは何か?を語らなければなりません。 ブルートフォース攻撃とは、簡単に言えば総当たり攻撃のことです。 仮にパスワードが4桁の数字だとすれば、0000~9999 まで全ての値を試行できれば必ず攻撃は成功します。 人間がやるには非常に手間で時間のかかる攻撃手法ですが、コンピューターがやるならそれほどの時間はかかりません。

ブルートフォース攻撃

とあるユーザーのアカウントに対して不正にログインするとします。 そのアカウントのユーザーIDは知っているがパスワードは知らないという状況において、 ユーザーIDを固定しパスワードを入れ替えて総当たりする攻撃が、いわゆる通常のブルートフォース攻撃です。 この攻撃に対しては1つのアカウントに対してログインが試行された回数を記録しておき、 一定の回数に到達するとそのアカウントをロックするという対策があります。

例)

ユーザーIDパスワード
example@gmail.com 0000
example@gmail.com 0001
example@gmail.com 0002
example@gmail.com
example@gmail.com 9999

リバースブルートフォース攻撃

対して、そのアカウントのパスワードは知っているがユーザーIDは知らないという状況において、 パスワードを固定しユーザーIDを入れ替えて総当たりする攻撃が、リバースブルートフォース攻撃です。 ユーザーIDを知らないのにパスワードを知っているはずがないと思うかもしれませんが、そうでもありません。 よく使われるパスワード(例えば 123456 や password といったもの)のランキングを使った攻撃や、 別のシステムで起きた情報漏洩などによって作成されたパスワードリスト使った攻撃などが可能です。 アカウントごとの試行回数を記録しても意味がなく、アカウントロックできないので、対策が難しいです。

例)

ユーザーIDパスワード
example0001@gmail.com 1234
example0002@gmail.com 1234
example0003@gmail.com 1234
... 1234
example9999@gmail.com 1234

ログイン画面の問題点とは?

さて、ユーザーIDとパスワードを同時に入力できるログイン画面のいったい何が問題なのでしょうか?

twitter.png facebook.png instagram.png amazon.png

それはブルートフォース攻撃とリバースブルートフォース攻撃の両方が可能であるという点です。 対して、Google のようにユーザーIDを先に入力させるログイン画面では、 パスワードを固定するリバースブルートフォース攻撃は行うことができません。 ユーザーIDを固定するブルートフォース攻撃しかできないのです。 そしてユーザーIDを固定するブルートフォース攻撃であれば、様々な防止策によって被害を抑えることが可能です。

google2.png

まとめ

Google すごい。