Jack Dorsey氏のオンライン銀行のアカウントをハックしたいとしよう。どこから始める?ユーザ名?

 やりがいはある。同氏のオンライン銀行のユーザ名は秘密だ。しかし、Twitterアカウントはどうだろうか。

 ああ、これは簡単だ。@jackだ。

 これが「ソーシャルな」ユーザ名の問題だ。知られてしまう運命にある。

Twitter's Password Fails

 もう1つの問題点。Twitterはメールアドレスのバリデーションを行っている模様だ。

Twitter's Password Fails

 jackd@twitter.comは空いているようだ。

Twitter's Password Fails

 Twitterの設定には、メールアドレスや電話番号のような「個人的な」情報を求めるオプションがある。

Twitter's Password Fails

 しかし自分の電話番号を実際にTwitterに登録しなければ、まったくもって役立たずだ。

Twitter's Password Fails

 そして、電話番号はいったいどれほど「個人的な」情報だろうか?

Twitter's Password Fails

 2要素認証?

 もちろん。

 しかし、何はさておきTwitterはメールアドレスのバリデーションを止めるべきだ。

 そして、公開されているユーザ名を使ったログインを無効にするオプションを追加することもあり得るだろう。

追記:再考してみたが…

 これはどうだろうか?

 Twitterはパスワードリセットフォームでメールアドレスのバリデーションを止めなくてはならない。

 そしてメールアドレスとユーザ名のどちらが使用されたかで区別する。ユーザ名でアカウントにアクセスがあったら、アカウントの設定へアクセスできないようにする。さらに、メールアドレス(エイリアス)のみアカウント「管理者」として使用できるようにする。

 例:@APのスタッフは「AP」でログインできるが、設定は行えない。彼らはツイートできるが、アカウントに対し変更を加えることは制限される。しかし、IT部門の人員など@AP「管理者」は、「秘密の」メールアドレスを使ってログインし、アカウントの設定を変更できる(また侵害された場合には当該アカウントをログイン不可にできる)。

 メールアドレスとユーザ名を区別すること、これが「管理者」と「ユーザ」を分離することにつながる。