September 17, 2008
モバツイが気がついたら、ユニークツイッターユーザーが20,000人を超えてました。
このサービスがここまで続くとは思ってなかったので、アクセスURLに認証情報を内蔵して、如何に携帯で起動しやすくするか?というのを考えて今のモバツイの仕様にしてきたのですが、思ったより多くの人にご利用いただき、ユニークユーザーが1万何千人を超えたところで、段々怖くなってきました。
ここでモバツイッターの現状のセキュリティに関する取り組みを書いてみたいと思います。
■アクセスURLの流出対策について。
モバツイのアクセスURL流出については、定期的に気をつけていて、流出しているURLを見つけ次第アクセスURLを停止してきました。(通常のログイン処理で使うようなセッションIDが長い時間軸で生き残ってるような実装なので、もう一度新しいURLを取得してもらえばすぐ元に戻りますし、ユーザーの方で簡単に無効化(削除)できます。)
また、検索エンジン系からのアクセスは自動的にステータスコード404を返して、できる限りインデックスされないようにしたり、その他、細かい活動をしています。
モバツイのSEOが全然イケてないのは、そういう努力をしているからであったりもします。
(ということなので、皆様のクチコミだけが頼りです。)
■twitterパスワードについて。
モバツイには、twitterのパスワードが保存されていますが、これに関しては、DBの情報流出が万が一あった時のために、可逆な暗号化方式で暗号化しております。
現在は生データでtwitterのパスワードは保存されておりません。
ただ、モバツイ内で復号してtwitterにログイン情報を送っていることから、それで完璧というものではありませんが、万が一DBの生データが流出しても、復号するのは簡単ではありません。twitterアカウントであることも踏まえ、カジュアルなクラックであれば問題ないセキュリティを確保していると思います。
でも、頼むからYahoo!ウォレットのメール、パスワードと同じです、とか、クレジットカードの3Dセキュアと同じパスワードです、なんてのは勘弁してね。そういう人は、今すぐモバツイを退会して、twitterでパスワードを変更して再登録してください。
twitterだってscreen name+ passwordで認証できて、それをJavaScript経由で自動でループ回せばパスワードの検証ができるようなゆるい作りなので、ご注意ください。
(暗号化方式がわかってて、クラックする人がモバツイユーザー、かつあなたがプログラマだったりすれば、暗号を解読するのは難しくもないのかもしれません。だからってモバツイのSQLインジェクションあたりを誘発するクエリを送るとか、知的好奇心とか感情論でクラックするのは勘弁してね>< (実際あったから。協力的にセキュリティチェックをやってもらえるなら先にやるって教えてください。))
もちろん僕がデータベースのデータを見ただけでは一切パスワードはわかりません。
■現在、テスト中の認証機能について。
モバツイのアクセスURLを、twitterパスワードでロックする機能をつけました。
MovaTwitter開発者blog | モバツイにログイン認証をつけていますベータ版
今までの使い勝手を落とさずに認証機能をつけるにはどうしたらいいか?とずっと考えていましたが、これが一番シンプルでいいんじゃね?と言うことで実装してみました。
携帯の簡単ログインを設定することで、今までと変わらぬ使用感を維持することができます。
近いうちに認証つきを標準にしていこうと思っています。
ただ、高木さんが指摘しているようなセキュリティ懸念については、今のところマズいポイントが思いつかないので、今後問題がありそうか考えてみたいと思いました。
(あくまで個々に発行しているユニークなURLのロックために、URLと端末IDが紐付いているのであって、端末IDだけでモバツイにログインできるわけじゃありません。)
何故、今の段階で公開したのも、僕以外の誰かが何か問題点を思いついてくれたらうれしいなとも考えているため、もし懸念点がありましたら教えてください。
■最後に
3キャリア対応の認証機能は、PEAR::Net_UserAgent_Mobileと、FireMobileSimulatorにはお世話になりました。この2つがなかったらやってないと思います。
参考:Firefoxでモバイル端末をシミュレートする独自アドオン「FireMobileSimulator」を公開します - 遙かへのスピードランナー