Javaのセキュリティーを流用

 携帯電話機での利用を考えると,セキュリティーに対する配慮が重要になる(図13)。Androidでは,まずプログラムごとに論理メモリ空間を独立させて実行時にほかのプログラムから直接メモリを参照されないようにしている。また個々のプログラムごとに別のユーザーIDを与えることで,データ・ファイルのアクセス権を変えている。あるプログラムが利用するデータ・ファイルをほかのプログラムが直接読み出して情報を盗み出せない。

図13 Androidのセキュリティー・モデル Androidでは,アプリケーション・プログラムごとに異なるユーザーIDを使い,独立したプロセス空間が与えられるので,直接他のプログラムのメモリを参照したりデータ・ファイルを参照したりはできない(赤い矢印)。ほかのプログラムと連携する場合は,あらかじめインストール時に利用許可を取得する。基本的にエンド・ユーザーが認めた場合に限り,利用可能な状態になる(緑の矢印)。あらかじめ許可する条件をAndroidManifest.xmlファイルに記述しておけば,エンド・ユーザーを介在させないことも可能。
図13 Androidのセキュリティー・モデル Androidでは,アプリケーション・プログラムごとに異なるユーザーIDを使い,独立したプロセス空間が与えられるので,直接他のプログラムのメモリを参照したりデータ・ファイルを参照したりはできない(赤い矢印)。ほかのプログラムと連携する場合は,あらかじめインストール時に利用許可を取得する。基本的にエンド・ユーザーが認めた場合に限り,利用可能な状態になる(緑の矢印)。あらかじめ許可する条件をAndroidManifest.xmlファイルに記述しておけば,エンド・ユーザーを介在させないことも可能。 (画像のクリックで拡大)

 あるプログラムがほかのプログラムのデータを参照したい場合は,プログラムのインストール時にエンド・ユーザーに問い合わせて許可を得なければならない。これを,セキュリティーを確保するための一種の関門としている。あくまでエンド・ユーザーが正しくチェックできるという前提であり,セキュリティー・モデルとしてはやや脆弱ではないかという指摘がある。

 以上の仕組みは,既存のJavaのセキュリティー・モデルに依存していると考えられる。実際,Androidのフレームワークは,java.securityパッケージを含んでいる。このパッケージを利用すると,各種のリソースに対するアクセス権限を設定できる。Androidでは,アクセス権限の設定などでも,必要に応じてエンド・ユーザーに確認を求める形を採る。

―― 終わり ――