androidOSはOSの権限を管理するために、パーミッションという仕組みを用意している。
パーミッションは機能ごとに細かく分けられていて、アプリがなにをするかがわかるようになっている。
たとえば、 端末の電話番号を取得するアプリなら「READ_PHONE_STATE」、インターネットに接続するアプリなら「INTERNET」というパーミッションが必要となる。
パーミッションはアプリがどのような機能をもつかを示しているため、危険なアプリかどうかの判断材料のひとつとなる。
先に示した、電話番号を取得する「READ_PHONE_STATE」と、インターネットに接続する「INTERNET」のふたつのパーミッションをもつアプリの場合、端末の電話番号を使用者にわからないように外部に送信することが可能となる。
危険なパーミッションの組み合わせ
危険なパーミッションの組み合わせには、次のようなものがある。
- インターネットに接続する「INTERNET」と端末の現在位置を取得する「ACCESS_FINE_LOCATION」
- インターネットに接続する「INTERNET」と電話帳の内容を読み取る「READ_CONTACTS」
- インターネットに接続する「INTERNET」とSMSの受信を取得する「READ_SMS」
- 電話帳の内容を読み取る「READ_CONTACTS」と電話をかけることのできる「CALL_PHONE」
- 電話帳の内容を読み取る「READ_CONTACTS」とSMSを送信できる「SEND_SMS」
危険なパーミッション組み合わせは他にも多く存在する。
androidOSにどのようなパーミッションがあるのかは、下記のサイトから確認できる。
android developers Manifest permission
アプリを使用する上で注意すべきこと
アプリがどのパーミッションを使用するか(どのような権限を持っているか)知りたい場合は、アプリをインストールした端末で確認することができる。
端末によって多少操作方法が異なるが、だいたい次の操作で確認が可能。
- ホーム画面でメニューボタンを押す。
- メニューから設定を選ぶ。
- 設定のリストから「アプリケーション」を選ぶ。
- アプリケーションのリストから「アプリケーションの管理」を選ぶ。
- 確認したいアプリを選ぶ。
- 「許可」の欄にアクセスする内容が書かれている。
また、アプリのインストール時にもパーミッションについての許可を求められるので、
危険だと判断した場合は、アプリをインストールしないようにすべき。
アプリをインストールする前に、アプリの開発元が信頼できるところなのか、アプリの紹介元は危険がないことを確認しているのかなど、他者がどのように判断したのかを確認する。
それに加え、最終的にはアプリ使用者の自己責任でアプリをインストールするようにしたい。
開発者として注意すべきこと
開発したい、または開発済みのアプリのパーミッションが危険な組み合わせとなる場合は、危険性がないことを表明しなくてはならない。使用者が不安にならないように配慮する必要がある。
androidマーケットのインストール画面で次のことをを記載すれば、多少は使用者の不安を取り除くことができる。
- アプリで使用するパーミッションの種類を明記
- アプリが端末情報や個人情報にアクセスする理由
- 通話、SMS、インターネット接続など、費用が発生する機能を使用する理由
- 必要以上に端末情報、個人情報を取得していない、不正アクセをしていないことを表明
また、使用者の不安を取り除くことも大切だが、まずは、設計段階でアプリで使用するパーミッションを必要最低限にすることが大前提だろう。