2012/01/30

Androidのセキュリティ:パーミッションの保護レベル



Androidのセキュリティを考える上でパーミッションは重要な要素です。
アプリのデータにアクセスするパーミッションや、アプリを実行するパーミッションなど、
開発者は様々なパーミッションを作成することができます。
同時にパーミッションはアプリがもつ権限の強さを示す指標でもあります。
リスクのあるパーミッションをアプリが使用するにはユーザの許可を得る必要があります。
(インストール確認画面で要求するパーミッションが表示されます)
# 様々なパーミッションを要求するアプリを不審に思うユーザもいるようです。

パーミッションには、Android標準で用意されているインターネットへのアクセスや電話帳
データのリード/ライトなど様々ですが、例えば「自アプリのデータにアクセスするパー
ミッション」「自アプリを起動するためのパーミッション」等を独自に作成することも可能です。

独自に作成したパーミッションには保護レベルを設定することができます。
保護レベルはパーミッションの定義側ではなく、使用側を制御する仕組みです。

●保護レベルの種類
・normal
 低リスクのパーミッションであることを表します。
 インストール確認画面でも[すべて表示]を選択しないと表示されません。

・dangerous
 リスクあるパーミッションであることを表します。
 インストール確認画面でユーザに許可を求める場合に指定します。

・signature
 同じ署名を持つアプリにのみ、パーミッションの使用を許可します。
 インストール確認画面には表示されません。

・signatureOrSystem
 サードパティアプリでは使用できない権限です。
 主にシステムアプリ間で使用される保護レベルです。

データベースにアクセスできるアプリを制限したい場合は保護レベルsignatureを指定します。
パーミッションの保護レベルはpermission要素のandroid:protectionLevel属性に指定します。

参考:http://developer.android.com/guide/topics/manifest/permission-element.html
参考:http://developer.android.com/guide/topics/manifest/permission-element.html#plevel

以上です。