認証方法について
長年ウェブサービスに関わった仕事をしてきましたが、その中でも個人的にセキュリティには非常に気を使っています。
このページではMovatterで採用しているOAuthと、従来のBASIC認証の違いを説明します。派手な機能に目が行きがちですが、こういう地味だけど安全な機能こそ必要だと思うのです。
ウェブサービスも安全第一ですよね。
BASIC認証とは
MovatterではBASIC認証は採用していません。
BASIC認証とは、簡単に言えばユーザーIDとパスワードを使用した認証のことです。Twitter関連のサービスでも良くありますね。
携帯電話での自動ログインをBASIC認証で実現するためには、ユーザーIDとパスワードをサーバーに保存しなくてはなりません。これには次の様な危険があります。
保存されたユーザーID、パスワードは、サーバーの管理者には丸見えです。大抵は暗号化して保存されるはずですが、管理者なら簡単に複合化できます。暗号化した本人だから当然ですね。
サーバーが、悪意を持ったものに侵入されてしまったらどうでしょう。パスワードは暗号化されていても、サーバーに侵入を許した時点で複合化のために必要なキーも入手されているでしょう。何故なら認証のたびに毎回複合化しなくてはいけませんから、すぐ近くにキーは保存されているのです。
さらに、BASIC認証は暗号化されずに通信されます。これは、もしネットワーク上を流れるパケットを見られることがあれば、ユーザーIDとパスワードが丸見えだということです。
統計上、多くの方がユーザーIDやパスワードを使いまわしていることが分かっています。その様な方にとっては、TwitterのユーザーIDやパスワードが漏洩するということは、Twitter以外のサービスの認証情報も同時に漏洩するということなのです。
BASIC認証だから危険だという訳ではありません。ですが、完全に安全とは言えません。あなたは自分のユーザーIDやパスワードを預けるサービスを完全に信用できますか?
OAuthとは
OAuthはBASIC認証に置き換わる、新しくて安全な認可プロトコルだと言われています。
認証ではなく、認可だということに注意してください。あるサービス(この場合Twitter)のデータに、他のあるサービス(この場合Movatter)がアクセスすることを、ユーザーであるあなた自身が認可を与えるのです。
OAuthはユーザーIDとパスワードの代わりに、トークンという暗号化された認証情報を使用します。
MovatterはTwitterから発行されたトークンを持っています。そしてユーザーにもトークンがあり、OAuthでログインする際に発行されます。Movatterでは自動ログインのために皆さんのトークンをサーバーに保存しています。
BASIC認証と違う点は、トークンが第三者に渡っても、何ら危険がないということです。トークンからユーザーIDやパスワードは分かりません。また、トークンでTwitterにログインすることはできませんし、ユーザーのトークンはMovatterのトークンと同時に使用して初めて意味を成すのです。
万が一、Movatterのサーバーが悪意を持ったものに侵入されたとしても、Movatterのサービスにログインされる以外の被害はありません。例えその様な状況でも、ユーザー自身が直ちにトークンを無効にしたり変更することで、被害をすぐさま止めることができるのは、BASIC認証にはない利点です。
OAuthに関するより詳しい情報は、OAuthのウェブサイト(英語)でご確認ください。


