“特殊だ”と形容されることの多い日本の携帯電話向けWebサイト。そこには、さまざまな思い込みや性善説の上しか成り立たないセキュリティが横行しています。本連載は、ケータイWebの特殊性をていねいに解説し、正しいケータイWebセキュリティのあるべき姿を考えます(編集部)
はじめまして。今回からこの連載を担当することになりました徳丸浩といいます。この連載では、携帯電話向けWebアプリケーション(以後「ケータイWeb」と表記します)のセキュリティについて解説します。ここでいう携帯電話とは、iモードやEZweb、Yahoo!ケータイなど、日本で従来、広く利用されているサービスを指します。一方、いわゆるフルブラウザやiPhone、Android端末などは含みません。
ケータイWebは、一般のPCなどから利用されるWebと比較して、使用技術の90%くらいは共通です。しかし、残りの10%のために、ケータイWebならではのセキュリティ上の注意点があります。この連載では、そのケータイWebならではの部分にフォーカスして解説していきます。
本連載の想定読者は、PHPやJavaなどでWebアプリケーションを開発しているプログラマやプロジェクトマネージャなど、「開発側」の方々、およびケータイWebを開発会社に発注する側の担当者など、現場寄りの方々です。できるだけ具体的な説明を心掛けますので、実務に役立てばと希望します。
さきほど、ケータイWebは、PCなどのWebと「10%程度違う」と説明しましたが、その10%とは具体的にはどこでしょうか。セキュリティに関係の深い部分のみ取り出すと、以下のようになります。
以下、順に説明しましょう。
図1に、ケータイで用いられるネットワークの構成を示しました。
この図のように、ケータイWebでは端末が直接インターネットに接続されているのではなく、いったん携帯電話会社のゲートウェイを通って、そこでさまざまな処理がされてからインターネットにつながるように構成されています。ゲートウェイの機能や構成の詳細仕様は公開されていませんが、一種のプロキシとして動作し、認証情報を付加するなどの処理が行われていると推測されます。
携帯電話会社のゲートウェイのIPアドレス一覧表が公表されていますので、Webサーバ側でリモートIPアドレスを調べることにより、確かにケータイからの接続であることを確認することが可能になります。いい換えれば、IPアドレスを調べることで、PCなどからの接続を拒否することができます。PCからの接続拒否は必須ではありませんが、拒否した場合、近年問題になっているボットやツールなどからの攻撃に対して効果的に防御することが可能となります。
NTTドコモのケータイブラウザは、最近までCookieに対応していませんでした。詳しくいえば2009年の夏モデル以降、「iモードブラウザ2.0」としてCookie対応がなされましたが、それ以前の機種ではCookieには対応していないのです。NTTドコモのシェアから考えて、インターネットに接続されているケータイのざっと半分がCookie非対応のブラウザを搭載していることになります。
【関連記事】
“iモード2.0”はCookieやAjax、インライン動画に対応(@IT NewsInsight)
http://www.atmarkit.co.jp/news/200905/19/imode.html
Cookieは通常、セッション管理のためにセッションIDと呼ばれる識別子を保持するために用いられますが、Cookie非対応のケータイ端末を考慮して、ケータイWebの場合は、セッションIDをURLに埋め込むことが一般に行われています。
しかしこの方法はセキュリティ上の問題を発生させる可能性があるため、注意が必要です。詳しくは、連載第3回のセッション管理のところで説明します。
NTTドコモは、前述のiモードブラウザ2.0の目玉機能として、2009年5月にJavaScript機能を搭載した携帯電話を発売しました。しかし、セキュリティ上の問題があったようで、リリース後すぐにJavaScript機能はいったん停止されました。
しかし、2009年10月23日にNTTドコモからアナウンスがあり、10月末から段階的にJavaScript機能が再開されつつあります。従って、今後はケータイでJavaScriptが動作しても大丈夫なようにWebアプリケーションを開発しておかなければなりません。具体的にはクロスサイトスクリプティング(XSS)対策を怠らないことですが、詳しくは連載第4回(最終回)で説明します。
Copyright © ITmedia, Inc. All Rights Reserved.