セキュリティモデルを構成する3つのコンセプトSymbian OS開発の勘所(10)(3/4 ページ)

» 2007年12月07日 00時00分 公開
[大久保 潤 管理工学研究所,@IT MONOist]

1.TCBケイパビリティ

 TCB(こっちは信頼のレベル)にのみ許されることを表現するための、TCBというケイパビリティが存在します。このケイパビリティを持っていると\sysおよび\resourceディレクトリへの書き込みアクセスが許可されます。その結果何ができるようになるかというと、セキュリティを保つうえでカギとなる実行ファイルの読み書きです。表1でファイルサーバ(F32)やインストーラ(SWInstaller)がカーネルと同じ信頼レベルに入っていた理由がこれです。ファイルサーバはプロセス生成の際に実行ファイルの読み出しを行いますし、インストーラはインストール時に実行ファイルを作成します。これらがTCBを持っていなければ必要な作業を行うことができません。

 以上のとおり、携帯電話上のセキュリティは、最終的にはTCBを持つプログラムが極めて限定されていることに依存しています。このケイパビリティは一般のソフトウェア開発者に与えられることはないと理解しておいてください。

2.システムケイパビリティ

 システムケイパビリティには以下のものがあります。

ケイパビリティ 与えられる権限 ― できるようになること
PowerMgmt ・ ほかのプロセスをKILLできる
・ スタンバイや電源アップの状態に切り替えられる
ReadDeviceData ・ インターネットアクセス情報、デバイス設定、ログデータへのリードアクセス
WriteDeviceData ・ デバイスの設定へのライトアクセス
TrustedUI ・ 信頼されたUI上でダイアログを表示できる
ProtServ ・ 保護された名前(“!”から始まる名前)を指定してサーバを開始できる
SwEvent ・ ソフトウェアキーやイベントを生成できる
・ FEP(Front-End Processors)に与えられる
NetworkControl ・ ネットワークプロトコル制御の変更権やアクセス
Drm ・ DRMコンテンツへのアクセス
・ DRMコンテンツを消費するすべてのアプリケーションに必要
MultimediaDD ・ マルチメディアドライバへのアクセス(カメラ、メディアレコーダ、バイブレータ制御、ボリューム制御……)
SurroundingsDD ・ 周辺情報を提供するデバイスドライバへのアクセス(GPSなど)
AllFiles ・ すべてのファイルの読み込みと\privateディレクトリへの書き込み(バックアップ&リストアなど)
DiskAdmin ・ ディスク管理操作へのアクセス(format c: など)
CommDD ・ イーサカード、USBデバイス、Bluetooth HCIなど通信機器デバイスドライバへの直接アクセス
表2 システムケイパビリティ

 これらはTCBおよびTCEに許されるケイパビリティです。プロセスがこれらのケイパビリティを持たずにリソースにアクセスしようとした場合、ユーザーに問い合わせが発生することなく失敗します。ユーザーに問い合わせ? そう、システムケイパビリティが保護しようとしているものほど重要ではないリソースの場合、ユーザーが許しさえすればアクセスが許可されるものもあるのです。

3.ユーザケイパビリティ

 携帯電話全体のセキュリティに影響を与えない、ユーザーの判断でプログラムに対して権限を与えても構わないケイパビリティの集合をユーザケイパビリティといいます。

ケイパビリティ 与えられる権限 ― できるようになること
NetworkServices ・ 電話をかける、SMSを送るなどのネットワークへのアクセス
LocalServices ・ Bluetooth、IrDAなどのPANサービスへのアクセス
WriteUserData ・ ユーザー情報への書き込みアクセス、カレンダーや電話帳へのアクセス
ReadUserData ・ ユーザー情報への読み込みアクセス、カレンダーや電話帳へのアクセス
Location ・ 携帯電話の位置情報へのアクセス
UserEnvironment ・ ユーザーに関するライブデータ(live data)へのアクセス
表3 ユーザケイパビリティ

 これらのケイパビリティはSymbian Signedを受けることにより、プログラムに付与することができますが(4つの信頼レベルにおける「署名付きソフトウェア」)、署名されていない、まったく信頼されていないプログラムであってもユーザーの責任において権限を与えることが可能です。ユーザーがプログラムに権限を与える方法は2種類存在しています。

Blanket grant:
インストール時に一括して承認してしまう方法

Single shot grant:
APIを発行するたびにダイアログを表示して毎回認証を行う方法

※どのケイパビリティがBlanket grant可能なのかは、電話機のセキュリティポリシーによって異なります。


 逆に、ユーザーに不信感を抱かせないプログラムであろうとすれば、ユーザー認証が不要なようにSymbian Signedで認証を受けておく必要があります。このあたりVistaでAuthenticodeを必要とする理由と似ているようですが、良くも悪くもVistaではSingle shot grantによる毎回認証のようなことはありません。このあたりがケイパビリティに基づくSymbian OSならではの動作ということになります。

Copyright © ITmedia, Inc. All Rights Reserved.