【注意】LINEが勝手に電話帳を同期して友達を増やすバグアップデートで被害者多数の模様 – Togetter この記事を読んですぐに、「これはおそらくAndroidでの状況だろうな。」と思いました。調べてみると確かにAndroid版でのバグのようです。Android版「LINE」で電話帳データが強制的に同期される不具合 -INTERNET Watch
これは、iOSとAndroidのセキュリティの設計思想が関係しています。
わたしは仕事でiOS、Android共にアプリ開発をしていますが、Android開発の際にアプリのパーミッション(権限)で気になる点がありました。Androidのアプリではアプリの設定ファイル(AndroidManifest.xml)に、アプリが使用したい情報を記述します。例えば、”READ_CONTACTS”をONにすると、そのアプリでの連絡先へのアクセスを求めます。アプリインストールの際に、”このアプリは、連絡先へのインストールを求めていますが、アプリをインストールしてもよろしいですか?”というメッセージがでて、各ユーザが許可すれば、アプリがインストールされます。一度アプリがインストールされると、アプリがアンインストールされるまで、アプリには連絡先情報アクセスが許可されることになります。
iOS6でも、アプリから連絡先情報にアクセスする機能を実装できます。しかしアプリ設定ファイルに連絡先情報へのアクセスを求めるのではなく、連絡先情報にアクセスするメソッドが使用されたタイミングで、初めて許可を求めるメッセージが表示されます。また、使用する理由の説明も設定に含めることが出来るため、連絡先にアクセスしたい理由をデベロッパーがユーザーに説明することが可能です。
ここで、アクセスを不許可にした場合は、アプリには連絡先の情報は全く与えられませんが、アプリは他の機能を続けて実行することが出来、例えばLINEのようなアプリでも連絡先情報にアクセスせずに実行を続けることが出来ます。アクセスを許可にした場合でも、ユーザーが後から設定を変更したいと思った場合は、設定>プライバシ>連絡先から該当のアプリの設定をオフにすることによって、将来の連絡先情報へのアクセスを制限することが出来ます。つまり、アプリをインストールした状態でも、オプトイン、オプトアウトを自由に設定できるということです。
追記 11/28/2012
Androidの場合も、もちろんアプリ内に”許可する”ボタンを設定することが出来ますが、今回のLINEアプリの”バグ”のように流出したり、意図的に隠れてデータを吸い取られる危険が上がります。完全に不許可にするためには、アプリの削除が必要になります。Androidの場合は、アプリ毎にネットワークアクセスを遮断するアプリなどがあり、それでデータの送信を阻むことが出来ますが、LINEアプリのような、常時データ通信を行うアプリに関しては、デベロッパーの良心に頼るしかありません。
追記ここまで
このiOSの設計はとても良く出来ていて、ユーザーのためにも開発者のためにもなります。理由としては、
- 開発者としては、ユーザーとして便利な機能を部分的にアプリに取り込み、ユーザーに機能のオンオフを設定できるように設定できる。
- ユーザーとしては、インストール前のアプリを知らない時点でセキュリティの選択を強いられることはなく、使用しながら、オンオフを決定できる
- ユーザーは、アプリを信用するまでは、連絡先情報へのアクセスを禁止して、実際にその機能をどうしても使用したいときにオンに出来る
Androidに関して、シミュレータで試してみた限りだと、アプリ単位でインストール後に権限を編集する機能を見つけることが出来ませんでした。Androidの経験が足りないため見逃していたら教えてください。どちらにせよ、アプリ毎のプライバシの設定が分かりにくいために、今回のLINEの問題が起きたのだと思います。
このように、iOSとAndroidで出来ることが一緒でも、可能なプロセスや設計思想が違っています。Androidに関しても今後の機能設定、また追加のアプリインストールでこのような詳細な設定もすでに可能か、今後可能になると思います。ユーザー、開発者として、iOSはセキュリティの点でも一歩先を行っているということを実感できました。
追記 11/28/2012
Androidは強制的オプトイン。同意しないとアプリ自体使用できない (参考: bit.ly/Hfkn0K ) : LINE電話帳問題から考えるAndroidとiOSのセキュリティの”違い” zero4racer.com/blog/991 #1tp
— sawat1203さん (@sawat1203) 11月 27, 2012
こちらの参考記事がよく説明されています。
【レポート】ABC 2012 Spring – 高木浩光氏が「スマホアプリの利用者情報送信における同意確認のあり方」について講演 (1) オプトイン・オプトアウトの線引きについて | 携帯 | マイナビニュース
確かに、AndroidはiOSのように、各権限(GPS、ネットワーク、ユーザデータ)を個別に設定できないです。Androidの設定アプリにもある権限を持っているアプリの一覧リストもないです。セキュリティ上から見れば、iOSは上位です。