(57)【要約】安全な画面メモリの内容を変更可能とすることを、認証されたアプリケーションだけに許可することによって、そのデバイスに信頼性のあるユーザインタフェースを提供するソフトウエアでプログラムされている移動体無線デバイス。通常は、画面メモリ全体のアドレスは公開情報であり、画面メモリ全体をあらゆるアプリケーションに完全に利用可能とする；このため、慎重に扱うべきダイアログであっても、理論的には悪意のあるソフトウエアによって参照され得る画面メモリを使用し、悪意のあるコードがＰＩＮデータなどを取り込む、或いは信頼性のあるユーザインタフェースに悪影響を与えることが可能となる。しかし本発明によれば、未認証のアプリケーションは安全でない画面メモリだけにアクセス可能であるので、安全なフレームバッファによって表示されるデータが未認証のアプリケーションからアクセスされるのを防ぐ。これにより、悪意のあるアプリケーションは信頼性のあるダイアログからデータを取り出すこと又は近づくことができない。更に、本発明はソフトウエアだけの解決策なので、本質的に新たなハードウエアを必要としない−ただ１つの要件は、構成要素（例えば、ソフトウエアのウインドウサーバ、ビデオチップなど）が画面メモリの異なる部分−すなわち、安全な及び安全でないフレームバッファ、から内容物を選択できることである。【特許請求の範囲】
【請求項１】
安全な画面メモリの内容を変更可能とすることを、認証されたアプリケーションだけに許可することによって、そのデバイスに信頼性のあるユーザインタフェースを提供するソフトウエアでプログラムされていることを特徴とする移動体無線デバイス。
【請求項２】
前記安全な画面メモリのアドレス位置が、該安全な画面メモリを適切な能力を有する実行可能なコードに利用可能とすることができる、ウインドウサーバ及びカーネルだけに知られていることを特徴とする請求項１に記載のデバイス。
【請求項３】
前記ウインドウサーバが、信頼性のあるコンピューティング環境の一部であることを特徴とする請求項２に記載のデバイス。
【請求項４】
実行可能なコードに、そのコードが実行できる慎重に扱うべき動作又はそのコードがアクセスできる慎重に扱うべきリソースを定義する特性である能力が、割り当てられていることを特徴とする請求項３に記載のデバイス。
【請求項５】
前記画面メモリの安全な部分及び安全でない部分が、同じＲＡＭベースの画面メモリの物理的に区別可能な部分であることを特徴とする請求項１に記載のデバイス。
【請求項６】
前記信頼性のあるユーザインタフェースの状態の視覚的表示を提供することを特徴とする請求項１に記載のデバイス。
【請求項７】
前記視覚的表示が、ＬＥＤによって行われることを特徴とする請求項６に記載のデバイス。
【請求項８】
前記視覚的表示が、特定の画面上のアイコン又はメッセージによって行われることを特徴とする請求項６に記載のデバイス。
【請求項９】
前記視覚的表示が、ウインドウサーバ及びカーネルのみによって変更され得ることを特徴とする請求項６に記載のデバイス。
【請求項１０】
前記信頼性のあるユーザインタフェースが動作可能又は動作不能となったときにだけ、ウインドウサーバが前記視覚的表示を変更することを特徴とする請求項６に記載のデバイス。
【請求項１１】
キーボード、マウス及びペンのイベントとしてユーザによって生成された入力イベントが、ウインドウサーバだけによってカーネルから取り出され得ることを特徴とする請求項１に記載のデバイス。
【請求項１２】
前記ウインドウサーバが、信頼性のあるダイアログがオーナーでないプロセスによって、前記信頼性のあるユーザインタフェース内で生成された入力イベントが取り出されるのを許可しないことを特徴とする請求項１１に記載のデバイス。
【請求項１３】
移動体無線デバイス上で実行されたときに、該デバイスを請求項１から１２のいずれか１項のデバイスとして動作させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全な移動体無線デバイス用の信頼性のあるユーザインタフェースに関する。該ユーザインタフェースは、プラットフォーム・セキュリティ・アーキテクチャの要素をなす。
【背景技術】
【０００２】
プラットフォームのセキュリティ（安全保証）は、考え方、アーキテクチャ及び悪意のある或いは誤って書かれたコードに対するプラットフォーム防御メカニズムに渡る。これら防御メカニズムは、そのようなコードが悪影響を与えるのを防止する。一般に悪意のあるコードは、損害を与える負荷メカニズムと、それが広がるのを助長する伝播メカニズムとの２つの構成要素を有している。それらは通常以下のように分類される。
【０００３】
トロイの木馬：悪意が無くユーザにとって魅力的な、正当なアプリケーションのように見せかける。  
ワーム：その加害者又はユーザによる更なるマニュアル動作なしに複製し広がることができる。  
ウィルス：正当なプログラムに侵入し、データを変更又は破壊する。
【０００４】
安全保障に対する脅威は、（ａ）価値連鎖における機密性、完全性又はサービスやデータの有用性、及びサービスの完全性の潜在的な侵害と、（ｂ）サービス機能の低下とを含む。脅威は以下のカテゴリに分類される：
１．データの機密性及び完全性に対する脅威。例：ユーザのパスワードの入手；ファイルの改竄。  
２．サービスの機密性及び完全性に対する脅威。例：使用料金を支払わない電話網加入者の帯域幅の使用；ネットワークサービスプロバイダとのデータ処理を拒絶する。  
３．サービスの有用性に対する脅威（サービス拒否とも呼ばれる）。例：ユーザがテキストのメッセージを送信するのを阻む；ユーザが電話呼を受け付けるのを阻む。
【０００５】
移動体無線デバイスにとって、ゲームは重要なアプリケーションであるが、そのデバイスを高いレベルの安全性のリスクにさらす。通常ゲームは、高速なビットマップ演算を実行するために、画面メモリ又はグラフィック・アクセラレータへの直接アクセスを必要とする。しかしながら、画面への直接アクセスを許可することは、以下の脅威についてのドアを開けることである：
１．サービス拒否
１．１．画素値の消去／スクランブル化によって画面を読めなくする
１．２．ユーザがいくつかのアプリケーションを使用するのを妨げるべく、偽のエラーメッセージを表示させる
２．機密性への侵入
２．１．信頼性のあるユーザインタフェース・ダイアログを偽り、パスワードのような機密データを取得する
２．２．機密データを取り出すために、別のアプリケーションによって書かれた画素値を記録する。
【０００６】
このため、従来の画面メモリ（フレームバッファとしても知られる）は、悪意のある或いは誤って書かれたゲームのようなアプリケーションは、画面に表示された慎重に扱うべき（sensitive）情報（例えば、パスワードなど）を取り込む或いは改変することができるので、プラットフォームの安全性についてアキレス腱を有している。ヒューレット  パッカード社のＰＣＴ／ＧＢ００／０２００５は、この面のプラットフォームの安全性を解決するための手法を示している。該文献は、慎重に扱うべき情報への未認証のアクセスを防ぐべく、二次的な安全なハードウェア・システム（ビデオチップ、フレームバッファ）を有するＰＣを開示している。そのため、慎重に扱うべき情報が表示されているときに、ユーザインタフェースは信頼性があると考えられ得る。しかしながらこのハードウェアでの解決策は、スペース及びコストの制限のため、移動体無線デバイス（一般的に、「スマートフォン」、機能強化された移動電話、ＰＤＡ、又は他の個人的な、携帯用コンピュータ装置）で実施するには非常にコストが高くなるであろう。
【特許文献１】国際公開第ＰＣＴ／ＧＢ００／０２００５号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、移動体無線デバイスは、非常に難しい課題をプラットフォーム・セキュリティ・アーキテクチャの設計者にもたらす。今日まで、安全な移動体無線デバイス用の信頼性のあるユーザインタフェースについて有効な提案はない。
【課題を解決するための手段】
【０００８】
本発明の第１の態様では、移動体無線デバイスが、安全な画面メモリの内容を変更可能とすることを、認証されたアプリケーションだけに許可することによって、移動体無線デバイスに信頼性のあるユーザインタフェースを提供する、ソフトウェアでプログラムされる。
【０００９】
１つの実施形態では、安全な画面メモリのアドレス位置はウインドウサーバ及びカーネルだけに知られており、これらはこのメモリを適切な能力（capability）を有する実行可能なコードに利用できるようにすることができる。「能力」は、そのコードが実行できる慎重に扱うべき動作、或いはそのコードがアクセスできる慎重に扱うべきリソースを定義する、実行可能なコードに割り当てられた特性を表す。
【００１０】
安全な及び安全でないフレームバッファは、同じＲＡＭベースの物理的に区別できる部分であり、このため、実施にコストのかかるハードウエアの重複はない（例えば、いくつかの従来技術で必要とされた、独立した安全なハードウエアの暗号プロセッサ、メモリ又は表示プロセッサはない）。
【００１１】
安全な画面メモリは、慎重に扱うべきダイアログ（例えば、ＰＩＮの入力や文書へのデジタル署名）が安全な環境で行われ得るように、信頼性のあるリソースを提供する。通常は全部の画面メモリの位置は公開情報であり、全部の画面メモリがあらゆるアプリケーションで完全に使用可能としている；このため、慎重に扱うべきダイアログも、理論的には悪意のあるソフトウエアによって参照され得る画面メモリを使用し、その悪意のあるコードがＰＩＮデータを取り込む或いは信頼性のあるユーザインタフェースに悪影響を及ぼすのを可能とする。
【００１２】
しかし本発明によれば、未認証のアプリケーションが安全なフレームバッファによって表示されているデータにアクセスするのが防止されるが、これはそれらは安全でない画面メモリだけにアクセスできるからである。このため、悪意のあるアプリケーションは、信頼性のあるダイアログからデータを取り出す或いはそのデータに近づくことができない。更に、本発明はソフトウエアだけの解決策なので、それ自体で新たなハードウエアを必要としない−ただ１つの要件は、ソフトウエア・ウインドウサーバ及びカーネルによって実行されるビデオデバイスドライバが画面メモリの異なる部分−すなわち、安全な及び安全でないフレームバッファ、から内容物（content）を選択できることである。
【００１３】
更に別の特徴は、キーボード、マウス及びペンのイベントのような入力イベントが、カーネルによって収集されウインドウサーバだけに送信されることである。ウインドウサーバは、イベントを適切なウインドウのプロセスオーナに渡すのを受け持つ。信頼性のあるユーザインタフェース（ＵＩ）モードでは、信頼できないアプリケーションが、パスワードのようなユーザによってタイプされた慎重に扱うべき情報を取り込むのを防止するために、全体的に記録され得る或いは転送され得る入力イベントはない。
【００１４】
実施形態では、信頼性のあるユーザインタフェースがアクティブであるとき、ユーザへの視覚的表示がある；この表示は特定のＬＥＤが点灯するようなハードウエアに基づくものでも良い。他のアプリケーションには禁止される画面の領域に特定の画面アイコンやメッセージが表示されるような、ソフトウエアに基づくものでも良い。全てのケースにおいて、これはカーネルの制御の下にある。安全な画面のフレームバッファのオーナーであるウインドウサーバだけが、カーネルにこの表示のオンやオフを切り替えるよう要求できるが、これは本物の信頼性のあるダイアログを偽者からユーザが識別する方法をウインドウサーバが提供しているからである。
【００１５】
別の態様では、安全な移動体無線デバイス上で実行されるように構成されたオペレーティングシステムが、安全な画面メモリの内容物が認証されたアプリケーションによってだけ変更可能とされるのを許可することによって、信頼性のあるユーザインタフェースをそのデバイスに提供するオペレーティングシステムが提供される。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を、単一ユーザの無線デバイス用に設計された、オブジェクト指向のシンビアンＯＳのセキュリティ・アーキテクチャを参照して説明する。シンビアンＯＳは、英国のロンドンにあるシンビアン  リミテッドによって移動体無線デバイス用に開発された。
【００１７】
このアーキテクチャにおいて、ユーザとＯＳのカーネルとの間に信頼性のあるパスが提供される：これは信頼性のあるダイアログから信頼できないアプリケーションがデータを取り出す或いはデータに近づくのを防止する。
【００１８】
１  信頼性のあるコンピューティング・プラットフォーム
１．１  信頼性のあるコンピューティング・ベース
信頼性のあるコンピューティング・ベース（ＴＣＢ）は、頑健なプラットフォーム・セキュリティについての基本的構成要件である。信頼性のあるコンピューティング・ベースは、壊すことができずデバイスの完全性を保証するいくつかの構成要素からなる。このベースをできるだけ小さく保つことと、システムサーバ及びアプリケーションが使用する必要のない特権を与えられなくてもよいのを保証すべく、最小特権の原則を適用することが重要である。閉じたデバイス上では、ＴＣＢはカーネル、ローダ及びファイルサーバからなり；開いたデバイス上ではソフトウエア・インストーラも必要となる。これら全てのプロセスはシステムに渡って信頼性があり、そのためデバイスに対してフルアクセスを有している。この信頼性のあるコアは、他のプラットフォーム・コードで利用できない「ルート」能力で実行される（セクション２．１を参照せよ）。
【００１９】
本発明の範囲外に、信頼性のあるコンピューティング・ベースの完全性を維持するのに重要な他の１つの構成要素、すなわち、ハードウエアがある。特に、信頼性のあるコンピューティング・ベース機能をフラッシュＲＯＭ内に保持するデバイスでは、信頼性のあるコンピューティング・ベースを悪意のあるＲＯＭイメージで壊すことができないのを保証すべく、安全なブートローダを提供する必要がある。
【００２０】
１．２  信頼性のあるコンピューティング環境
コア以外の、他のシステムの構成要素が、限定された直交する（orthogonal）システム能力を与えられ、信頼性のあるコンピューティング環境（ＴＣＥ）を構成するであろう；それらには電話サーバ及びウインドウサーバのようなシステムサーバが含まれる。例えば、ウインドウサーバには電話スタックのアクセス能力は与えられず、電話サーバにはキーボード・イベントへの直接アクセス能力は与えられないであろう。これらの特権の何らかの誤用による損害の可能性を制限するために、ソフトウエア・コンポーネントに与えるシステム能力をできるだけ少なくすることを強く勧める。
【００２１】
ＴＣＥの各要素が１つのサービスの完全性を保証するので、ＴＣＢはシステム全体の完全性を保証する。ＴＣＥはＴＣＢなしには存在し得ないが、ＴＣＢはそれ自体で各プロセスに安全な「砂箱（ユーティティ機能：sand box）」を保証することで存在し得る。
【００２２】
２  プロセス能力
能力（capability）は、慎重に扱うべき動作に着手する許可に対応するアクセス・トークンとして考えられる。能力モデルの目的は、慎重に扱うべきシステムリソースへのアクセスを制御することである。アクセス制御を必要とする最も重要なリソースはカーネル管理（kernel executive）自体であり、クライアントがカーネルＡＰＩを通じて特定の機能にアクセスするにはシステム能力（セクション２．１を参照せよ）が必要とされる。他の全てのリソースは、ＩＰＣ（Inter Process Communication）を介してアクセスされるユーザ側のサーバにある。サーバ上でのクライアントの特定の動作を監視するためには、基本的能力の小さなセットが定義されるであろう。例えば、発呼能力の所有は、クライアントが電話サーバを使用するのを許可するであろう。能力が表すリソースへのクライアントのアクセスを監視するのは、対応するサーバが責任を持つであろう。能力はまた、各ライブラリ（ＤＬＬ）及びプログラム（ＥＸＥ）にも関連し、カーネルによって保持されるであろう実際のプロセス能力を生成するために実行時にローダによって組み合わされるであろう。開いたデバイスでは、サードパーティのソフトウエアには、それらのインストール用パッケージへのサインに使用される認証に基づいたソフトウエアのインストールの間、或いはソフトウエアのインストールの後にユーザによって、のいずれかで能力が割り当てられるであろう。能力の監視は、ローダ、カーネル及び影響を受けるサーバの間で管理されるが、ＩＰＣメカニズムを通じてカーネルによって調停されるであろう。
【００２３】
プロセス能力モデルのキーとなる特徴は：
・主としてシステムサーバ及びそれらのエンティティ間のクライアント−サーバＩＰＣインタラクションの周りに注目している。
・能力はスレッドではなくプロセスに関連している。同じプロセス内のスレッドは、同じアドレス空間及びメモリアクセス許可を共有する。これは１つのスレッドで使用されているあらゆるデータは、同じプロセス内の他の全てのスレッドによって読み出され変更され得ることを意味する。
・能力の監視はローダ及びカーネルによって、及びターゲット・サーバの能力監視を通じて管理される。カーネルＩＰＣメカニズムは後者に関連する。
・コードが実行中でないとき、能力はライブラリ及びプログラム内部に格納される。ライブラリ及びプログラムに格納された能力は、インストールの間に信頼性のあるコンピューティング・ベースによってのみアクセス可能な位置に格納されるので、変更可能ではない。
・クライアントの能力を扱う必要があるのは全てのサーバではない。サーバはそれらが所望するのに応じて能力を解釈するのを受け持つ。
・この方式に関連する唯一の暗号化は、好適なルート認証に対する認証のチェックが外されるソフトウエアのインストール段階であろう。
【００２４】
２．１  システム能力：デバイスの完全性の保護
ルート、“全てのファイルへのフルアクセス−実行可能に関連する能力を変更できる”
“ルート”能力−信頼性のあるコンピューティング・ベースだけに使用され、デバイス内の全てのファイルへのフルアクセスを提供する。
【００２５】
システム能力
いくつかのシステムは、信頼性のあるコンピューティング・ベースにいくつかの特定のアクセスを必要とする。シンビアンＯＳのオブジェクト指向の実施により、システムサーバによって要求されるリソースの種類は、それに独占される時間が大部分である。従って、１つのシステムサーバは、別のシステムサーバによって要求されるシステム能力と直交するいくつかのシステム能力を許可されるであろう。例えば、ウインドウサーバは、カーネルによって発行されるキーボード及びペンのイベントへのアクセスを許可されるであろうが、電話スタックへのアクセスは許可されないであろう。同様に、電話サーバは、電話スタックへのアクセスは許可されるであろうが、カーネルからのイベントを収集するのは許可されないであろう。
【００２６】
１例として、以下のように命名することができる：
WriteSystemData  システム・コンフィグレーションのデータの変更を許可
CommDD           全ての通信及びイーサネット（登録商標）・カード・デバイスドライバへのアクセスを許可
DiskAdmin        ディス上の管理タスク（再フォーマット、ドライブのリネーム等）を実行できる。
【００２７】
２．２  ユーザに公開される能力：現実世界へのマッピング許可
能力を生成するプロセスは難しくても良い。最初に監視を必要とするこれらのアクセスを識別し、その後これらの要件をユーザにとって意味のある何かにマッピングする必要がある。加えて、大きな能力は複雑さがより大きいことを意味し、複雑さは安全性の主要な敵であると広く認識されている。従って、能力に基づく解決策は、配備される全体数を少なくしようと努める必要がある。以下の例は、システムサービス（例えば、電話スタック）への未認証アクセスである主な脅威と、ユーザデータの機密性／完全性の保護とをかなり広くマッピングしている。
【００２８】
PhoneNetwork.“電話網サービスにアクセスでき、ユーザのお金を使う可能性がある”
“電話をかける”
“ショートテキストメッセージを送信する”
WriteUserData.“ユーザの個人情報を読み出して変更できる”
“連絡先の追加”
“約束（Appointment）の削除”
ReadUserData.“ユーザの個人情報を読み出せる”
“連絡先データへのアクセス”
“予定（Agenda）データへのアクセス”
LocalNetwork.“ローカルネットワークへアクセスできる”
“ブルートゥースメッセージの送信”
“ＩＲ接続の確立”
“ＵＳＢ接続の確立”
Location.“デバイスの現在位置へのアクセス”
“地図上でのデバイスの位置決め”
“もっとも近いレストラン及び映画館の表示”。
【００２９】
LocalNetworkではお金をかけずにネットワークに渡って情報を送信することが可能である（例えば、ブルートゥースのピコネット）ので、PhoneNetworkとLocalNetworkとを区別することは必要である。この種のアクセスは、サードパーティのソフトウエアを使用可能とする人には非常に有用であるが、それにもかかわらずトロイの木馬によって慎重に扱うべき情報がローカルに漏れる方法を代表しているので、LocalNetworkであっても能力で保護する必要がある。PhoneNetworkがユーザによって認められていれば、トロイの木馬が電話網をそれらの脱出口として使用しようとすることが可能となる；これはより大きな損害を与える可能性があり、そのため明確な警告が記載されている。
【００３０】
ルート及びシステム能力は必須である；実行可能に許可されていない場合、デバイスのユーザはそれを行うのを決めることができない。それらの厳格な制御は信頼性のあるコンピューティング・プラットフォームの完全性を保証する。しかしながら、ユーザに公開された能力をサーバがチェックしたり解釈する方法は、十分に柔軟でユーザが任意に決定できても良い。
【００３１】
２．３  プロセスへの能力の割り当て
実行時の能力とプロセスとの関係はローダに関わっている。本質的には、ローダは個々のライブラリ及びプログラムに関連した静的能力の設定を、カーネルが保持しカーネルのユーザライブラリＡＰＩを通して照会され得る実行時の能力に変換する。ローダは以下の規則を適用する。
【００３２】
規則１．プログラムからプロセスを生成するとき、ローダはそのプログラムの能力として同じ能力のセットを割り当てる。  
規則２．実行可能なものの中でライブラリをロードしているとき、ライブラリの能力はロードしている実行可能なものの能力のセットと等しいか大きく設定する必要がある。これが真でない場合、そのライブラリはその実行可能なものにロードされない。  
規則３．実行可能なものはより高い能力のライブラリをロードできるが、そうすることによって能力は取得できない。  
規則４．ローダは、ＴＣＢに確保されたファイルシステムのデータが囲われた部分にないあらゆる実行可能なものをロードするのを拒否する。
【００３３】
以下の点に注意されたい：
・ライブラリの能力はロードの時点でだけチェックされる。その上で、ライブラリに含まれる全てのコードは自由に実行され、同じＩＰＣ呼び出しを開始するときに、それが中で実行されるプログラムと同じ能力のセットが割り当てられる。
・定位置での実行用のＲＯＭイメージについては、ＲＯＭ書き込みツールは、全てのシンボルが実行時のローダと同じタスクを行うことを決定する。従って、ＲＯＭに書き込むときに、ＲＯＭ書き込みツールはローダと同じ規則を適用する必要がある。  
これらの規則は、
・例えば、システムサーバへのプラグインなどの、慎重に扱うべきプロセス内で異常なものがロードされるのを防ぐ。  
・あらゆるバイパスなしにプロセス内部の慎重に扱うべきコードのカプセル化を促進する。  
以下の例は、静的及び動的にロードされたライブラリそれぞれの場合に、これらの規則がどのように適用されるのかを示している。
【００３４】
２．３．１  リンクされたＤＬＬの例
プログラムP.EXEはライブラリL1.DLLにリンクされている。  
ライブラリL1.DLLはライブラリL0.DLLにリンクされている。  
ケース１：
P.EXEは、Cap1 & Cap2を保持
L1.DLLは、Cap1 & Cap2 & Cap3を保持
L0.DLLは、Cap1 & Cap2を保持
プロセスＰは生成され得ない、ローダはL1.DLLがL0.DLLをロードできないのでプロセスの生成を失敗する。これはL0.DLLがL1.DLLと等しいか大きい能力を有していないためで、規則２が適用される。  
ケース２：
P.EXEは、Cap1 & Cap2を保持
L1.DLLは、Cap1 & Cap2 & Cap3を保持
L0.DLLは、Cap1 & Cap2 & Cap3 & Cap4を保持
プロセスＰは生成される、ローダはプロセスの生成に成功し新たなプロセスにはCap1 & Cap2が割り当てられる。新たなプロセスの能力は規則１を適用して決定される；規則３で定義されたように、L1.EXEはL0.DLLの保持する能力Cap4を取得できず、P1.EXEはL1.DLLの保持する能力Cap3を取得できない。
【００３５】
２．３．２  動的にロードされるＤＬＬの例
プログラムP.EXEはライブラリL1.DLLを動的にロードする。  
そしてライブラリL1.DLLはライブラリL0.DLLを動的にロードする。  
ケース１：
P.EXEは、Cap1 & Cap2を保持
L1.DLLは、Cap1 & Cap2 & Cap3を保持
L0.DLLは、Cap1 & Cap2を保持
プロセスＰは成功裏に生成されCap1 & Cap2が割り当てられる。ＰがローダにL1.DLL & L0.DLLのロードを要求したとき、ＰはL1.DLL及びL0.DLLをロードできるのでローダは成功裏にロードできる。ここで規則２が適用され、ロードされている実行可能なものはプロセスＰでありライブラリL1.DLLではない：ローだが処理するＩＰＣロード要求はプロセスＰによって送信される。呼び出しがL1.DLL内部にあるというのはここでは適切でない。規則１＆３が上述のように適用され、ＰはL1.DLLをロードすることによってCap3を取得できない。  
ケース２：
P.EXEは、Cap1 & Cap2を保持
L1.DLLは、Cap1 & Cap2 & Cap3を保持
L0.DLLは、Cap1 & Cap2 Cap4を保持
プロセスＰは成功裏に生成されCap1 & Cap2が割り当てられる。ＰがローダにL1.DLL & L0.DLLのロードを要求したとき、ＰはL1.DLL及びL0.DLLをロードできるのでローダは成功裏にロードできる。ここでもロードされている実行可能なものはプロセスＰでありライブラリL1.DLLではないので、Ｐに再度規則２が適用され、規則３はＰがCap3もCap4も取得できないことを確実にする。
【００３６】
３  信頼性のあるＵＩ
好適な実施では信頼性のあるＵＩと呼ばれるシステム能力を定義する。この能力で実行されるプロセスは、信頼性のあるユーザインタフェースを使用することで信頼性があると定義される。
【００３７】
３．１  ユーザによる信頼性のあるダイアログの識別
信頼性のあるユーザインタフェースは、悪意のある第三者によって信頼性のあるユーザインタフェースが真似されるのを防止し、これによりＴＣＢ内部にユーザインタフェースへの信頼性のあるパスが提供される。特に我々が電子的な財布としても機能する多機能の信頼性のある個人的デバイスの世界へ向かっていることから、これは非常に重要である。例えば、ＰＩＮ入力ダイアログ及び取引サインのダイアログの両方は、包括的な信頼性のあるユーザインタフェースの恩恵を受けるであろう。欠けている場合、悪意のあるアプリケーションはユーザが知ることなしに、ＰＩＮデータを盗みこのＰＩＮによって保護されてるデータを使用できるであろう。
【００３８】
信頼性のあるユーザインタフェースが動作中であることを示す方法は２つある：
・信頼性のあるハードウエア・インジケータ：例えば、信頼性のあるユーザインタフェースの相互作用が発生したときにオンとなる信頼性のあるＬＥＤ。このインジケータは、ウインドウサーバに専用のデバイスドライバを通じてアクセスされるであろう。ウインドウサーバは、信頼性のあるユーザインタフェース・セッションの間に信頼性のあるダイアログを表示する真正な要求をカーネルが受信したときに、カーネルがこのＬＥＤをオンに切り替えるように要求する。このセッションの終わりに、ウインドウサーバはカーネルにＬＥＤをオフに切り替えるよう要求する。
・信頼性のあるソフトウエア・インジケータ：例えば、非管理コード（non-executive code）がアクセス可能でない画面の特定部分における信頼性のあるダイアログ上の特別なシンボル／ロゴ。信頼性のあるソフトウエア・インジケータは、一般的なユーザモードのコードから、画面のこの特定部分に対するビデオＲＡＭへのアクセスを削除するよう要求する。
【００３９】
３．２  信頼性のある画面／キーボード
しかしながら、シンビアンＯＳプラットフォームの範疇における信頼性のあるダイアログは、およそ信頼性のある視覚的インジケータ以上のものであり、表示マネージャＡＰＩ（例えば、ウインドウサーバ）へのクライアントのアクセスに更なる要件を生じさせるであろう。これは、（ゲームのような）信頼性の無いアプリケーションがアクセスできず、信頼性のあるダイアログから信頼性の無いアプリケーションによってキー入力が獲得できないことを確実にする、フレームバッファ内の情報を表示することにも関連している。
【００４０】
３．３  使用状況の識別
ゲームは顧客の間で人気があるという理由で価値がある。それらの数、品質、“プレイ能力（play-ability）”は、スマートフォンのセールスポイントとしてしばしば使用される。通常ゲームは、高速ビットマップ演算を行うために、画面メモリ又はグラフィック・アクセラレータへの直接アクセスを要求する。しかしながら、画面への直接アクセスを許可することは以下の脅威に対してドアを開けることとなる：
・サービス拒否
○  画素値を消去／スクランブル化して画面を読めなくする
○  ユーザがいくつかのアプリケーションを使用するのを防止すべく偽のエラーメッセージを表示させる
・機密性の侵害
○  パスワードなどの機密データを取得するために信頼性のあるユーザインタフェースを真似る
○  機密データを取り出すために別のアプリケーションによって書かれた画素値を獲得する。
【００４１】
サービス拒否の攻撃の経済的危険が低い場合（ユーザは彼のデバイスを使用できないが、他のユーザ、ネットワーク運営者及びサービスプロバイダには影響を与えない）、機密データへの攻撃は一層重大である。攻撃する側は、機密データにアクセスすることによって、ユーザのプライバシーの侵害及び／又はユーザのお金を使用することができるかもしれない。
【００４２】
総括すると、ゲームは矛盾する安全性の機能を要求する２つの主な特性を有している：
・ゲームは通常表示メモリへの直接アクセス、又はグラフィック・アクセラレータ・ドライバへの直接アクセスを要求する。能力の定義及び信頼性のあるコンピューティング環境に基づいて、ある種のシステム能力が許可される必要がある。  
・ゲームはサードパーティによって提供されることが多い。彼らは本質的に信頼できず、彼らの監査は長く費用がかかるプロセスを必要とし、わずかなサードパーティしかそれを望まないであろう。
【００４３】
システム能力がコアとなる構成要素だけに制限されなければならないのは、セキュリティの基本的特徴である。システム能力が許可されるアプリケーションが多くなるほど、能力モデルに適切でなくなる。これはゲームに特別な課題を課す。
【００４４】
３．４  信頼性のあるダイアログに近づかない直接的画面アクセスのゲームへの許可
従来より、画面メモリのアドレスはグローバルにマッピングされており、そのため実際には各アプリケーションがアドレスを知ることによって画面メモリに直接アクセスできる。このアドレスは移動体無線デバイスのタイプごとに固定されており、そのため公になるとこのデバイスについては誰にでも再利用され得る。
【００４５】
本発明の実施においては、信頼性の無いアプリケーションに関連する画面メモリを、信頼性のあるダイアログによって使用される画面メモリから物理的に分離する。ウインドウサーバは、ビデオドライバにどのフレームバッファを表示すべきなのかを告げる責任を負うであろう。
【００４６】
３．４．１  前提
１．１つのフレームバッファ（Fb1と呼ぶ）が信頼性の無いアプリケーションによって使用され、そのアドレスはＲＡＭにグローバルにマッピングされている。  
２．ウインドウサーバ（WSERV）はＴＣＥの一部である。  
３．第２のフレームバッファ（Fb2と呼ぶ）が安全なダイアログを表示するために信頼性のあるアプリケーションによって使用される。そのメモリアドレスは保護されておりウインドウサーバ及びカーネルだけに見える。  
４．信頼性の無いアプリケーションをGameと呼ぶ。  
５．アプリケーションTAppはTrustedUIシステム能力を許可されている。  
６．ＵＩセッション、アプリケーションとウインドウサーバとの間のクライアント−サーバセッションがある。  
７．そのデバイスはウインドウサーバ及びカーネルによってだけ変更可能な信頼性のあるＬＥＤを有している。
【００４７】
３．４．２  GameはFb1アドレスを直接使用する
１．GameはFb1について画素値の書き込み又は読み出しを直接行う。
【００４８】
３．４．３  TAppがWSERVサービスを要求する
１．TAppはWSERVに接続する。  
２．TAppはWSERVに信頼性のあるＵＩセッションの生成を要求する。  
３．WSERVはTAppの能力をカーネルから取り出す。WSERVはTAppが信頼性のあるＵＩシステム能力を有していることを検証する。  
４．WSERVは、カーネルに現在のフレームバッファとしてFb2を使用し、ＬＥＤをオンにするよう要求する。  
５．カーネルは呼び出しがWSERVによって行われたことを検証する。  
６．カーネルは信頼性のあるユーザインタフェースＬＥＤをオンに切り替え、ビデオカードのFb2をアクティブにする。  
７．TAppが信頼性のあるダイアログを生成できる。
【００４９】
３．４．４  GameがWSERVサービスを要求する
１．GameはWSERVに接続する。  
２．GameはWSERVに信頼性のあるＵＩセッションの生成を要求する。  
３．WSERVはGameの能力をカーネルから取り出す。WSERVはGameが信頼性のあるＵＩシステム能力を有していないことを検証する。  
４．WSERVはGameとの接続を断つ。
【００５０】
３．４．５  TAppは自身の信頼性のあるＵＩセッションを閉じる
１．Appは自身の信頼性のあるＵＩセッションを閉じるようWSERVに要求する。  
２．WSERVはTAppの信頼性のあるセッションを閉じる。  
３．WSERVはカーネルにFb1を使用しＬＥＤをオフに切り替えるよう要求する。  
４．カーネルは要求がWSERVによって行われたことを検証する。  
５．カーネルは信頼性のあるユーザインタフェースＬＥＤをオフに切り替え、Fb1を再度アクティブにする。
【００５１】
３．４．６  結論
たとえ“２つのフレームバッファ”がより多くの画面メモリを必要としても、以下の理由でこれは良好な解決策である。  
１．既に書かれたコードの振る舞いを変更しない；Fb1はグローバルのままである。  
２．カーネルがクライアント空間内のＭＭＵマッピングを変更する必要が無い。  
３．信頼性のあるダイアログが表示を要求した場合、信頼性の無いアプリケーションを終了或いは強制的に終了させる必要が無い。たとえユーザから見えなくても、それらは公の画面バッファを使用し続けるだけである。  
４．物理的な画面メモリの区分けがある。
【００５２】
偽の信頼性のあるダイアログの攻撃からユーザを保護するために、ＬＥＤ又は確保された画面スペースを使用する必要がある。画面スペースの節約及びユーザにとっておそらくわかりやすいので、ＬＥＤが好適であろう。
【手続補正書】
【提出日】平成16年10月22日(2004.10.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
安全な画面メモリにアクセス可能又はその内容を変更可能とすることを、認証されたアプリケーションだけに許可することによって、そのデバイスに信頼性のあるユーザインタフェースを提供するソフトウエアでプログラムされており、前記ソフトウエアが、アプリケーションが認証されたアプリケーションであるか否かを検出し、それにより前記安全な画面メモリの完全性を保証するためのメカニズムとして付加的安全用ハードウエアを配備する必要をなくすように、自動的に作動することを特徴とする移動体無線デバイス。
【請求項２】
前記安全な画面メモリのアドレス位置が、該安全な画面メモリを適切な能力を有する実行可能なコードに利用可能とすることができる、ウインドウサーバ及びカーネルだけに知られていることを特徴とする請求項１に記載のデバイス。
【請求項３】
前記ウインドウサーバが、信頼性のあるコンピューティング環境の一部であることを特徴とする請求項２に記載のデバイス。
【請求項４】
実行可能なコードに、そのコードが実行できる慎重に扱うべき動作又はそのコードがアクセスできる慎重に扱うべきリソースを定義する特性である能力が、割り当てられていることを特徴とする請求項３に記載のデバイス。
【請求項５】
前記画面メモリの安全な部分及び安全でない部分が、同じＲＡＭベースの画面メモリの物理的に区別可能な部分であることを特徴とする請求項１に記載のデバイス。
【請求項６】
前記信頼性のあるユーザインタフェースの状態の視覚的表示を提供することを特徴とする請求項１に記載のデバイス。
【請求項７】
前記視覚的表示が、ＬＥＤによって行われることを特徴とする請求項６に記載のデバイス。
【請求項８】
前記視覚的表示が、特定の画面上のアイコン又はメッセージによって行われることを特徴とする請求項６に記載のデバイス。
【請求項９】
前記視覚的表示が、ウインドウサーバ及びカーネルのみによって変更され得ることを特徴とする請求項６に記載のデバイス。
【請求項１０】
前記信頼性のあるユーザインタフェースが動作可能又は動作不能となったときにだけ、ウインドウサーバが前記視覚的表示を変更することを特徴とする請求項６に記載のデバイス。
【請求項１１】
キーボード、マウス及びペンのイベントとしてユーザによって生成された入力イベントが、ウインドウサーバだけによってカーネルから取り出され得ることを特徴とする請求項１に記載のデバイス。
【請求項１２】
前記ウインドウサーバが、信頼性のあるダイアログがオーナーでないプロセスによって、前記信頼性のあるユーザインタフェース内で生成された入力イベントが取り出されるのを許可しないことを特徴とする請求項１１に記載のデバイス。
【請求項１３】
移動体無線デバイス上で実行されたときに、該デバイスを請求項１から１２のいずれか１項のデバイスとして動作させることを特徴とするコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明の第１の態様では、移動体無線デバイスが、安全な画面メモリにアクセス可能又はその内容を変更可能とすることを、認証されたアプリケーションだけに許可することによって、移動体無線デバイスに信頼性のあるユーザインタフェースを提供するソフトウエアであって、アプリケーションが認証されたアプリケーションであるか否かを検出し、それにより安全な画面メモリの完全性を保証するためのメカニズムとして付加的安全用ハードウエアを配備する必要をなくすように、自動的に作動するソフトウェアでプログラムされる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
別の態様では、安全な移動体無線デバイス上で実行されるように構成されたオペレーティングシステムが、安全な画面メモリの内容物が認証されたアプリケーションによってだけアクセス可能又は変更可能とされるのを許可することによって、信頼性のあるユーザインタフェースをそのデバイスに提供し、アプリケーションが認証されたアプリケーションであるか否かを検出し、それにより安全な画面メモリの完全性を保証するためのメカニズムとして付加的安全用ハードウエアを配備する必要をなくすように、自動的に作動するオペレーティングシステムが提供される。


【国際調査報告】
2005531830.tif 000002
2005531830.tif 000003
2005531830.tif 000004