(57)【要約】  本発明の第１実施例において、プロセッサ及びメモリを有するコンピュータシステムでウィゼットの保安執行を提供する方法が提供される。この方法は、サービスを要請するウィゼットプロセスから接近制御情報を抽出し、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成し、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供する段階と、任意の静的接近制御規則に対して、前記ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査を委任する段階とを含む。
2014524606.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ及びメモリを有するコンピュータシステムでウィゼットの保安執行（ｓｅｃｕｒｉｔｙ  ｅｎｆｏｒｃｅｍｅｎｔ）を提供する方法において、
サービスを要請するウィゼットプロセスから接近制御情報を抽出する過程と、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成する過程と、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供する過程とを含む段階と；
任意の静的接近制御規則に対して、前記ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査を委任する段階と；
を含むコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項２】
任意の非静的接近制御規則に対して、
保安サーバーからの使い捨てトークンを要請する段階であって、前記使い捨てトークンは、ウィゼットプロセスが前記要請されたサービスを消費した後に満了する、要請する段階；をさらに含み、
前記使い捨てトークンは、前記サービスに接近するために前記ウィゼットプロセスによって使用されることを特徴とする請求項１に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項３】
前記静的接近制御規則は
ブランケットプロンプト；
許容プロンプト；及び
拒否プロンプト；のうち少なくとも１つを含むことを特徴とする請求項１に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項４】
前記非静的接近制御規則は
セッションプロンプト；及び
ワンショットプロンプト；のうち少なくとも１つを含むことを特徴とする請求項２に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項５】
前記任意の非静的接近制御規則がセッションプロンプトである場合、
ウィゼットプロセスを開始する前に、ユーザからの許可を要請する段階と；
ウェブランタイムの権限（ｐｒｉｖｉｌｅｇｅｓ）を削除（ｄｒｏｐ）する段階と；
前記ウィゼットプロセスの動的接近制御構成をリセットし、前記ウィゼットプロセスの次の開始時に保安サーバーが前記使い捨てトークンを取り消すように要請する段階と；を含むことを特徴とする請求項２に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項６】
任意の非静的接近制御規則が使い捨てプロンプトである場合、
前記ウィゼットプロセスが前記サービスを要請するとき、ユーザから許可を要請する段階と；
前記保安サーバーが使い捨てトークンをただ一度順守（ｈｏｎｏｒ）するように要請する段階と；をさらに含むことを特徴とする請求項２に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項７】
前記信頼される領域は、
運営体制カーネルであることを特徴とする請求項１に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項８】
前記接近制御規則は、
前記運営体制カーネルによって執行される強制接近制御規則で具現されることを特徴とする請求項７に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項９】
前記抽出する過程、前記生成する過程、及び前記提供する過程は、
ウェブランタイム管理プロセスによって行われることを特徴とする請求項７に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項１０】
前記保安サーバーは
サービス位置プロトコル（ＳＬＰ、Ｓｅｒｖｉｃｅ  Ｌｏｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）接近制御の一部であることを特徴とする請求項２に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項１１】
プロセッサ及びメモリを有するコンピュータシステムでウィゼットの保安執行を提供する方法において、
サービスを要請するウィゼットプロセスから接近制御情報を抽出する過程と、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成する過程と、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供する過程とを含む段階と；
任意の静的接続制御規則に対して、保安検査の２個のレベルが行われ、且つ保安検査の２個のレベルのうちいずれか一方は、ウェブランタイムシステムによって、他方は、前記コンピュータシステムの信頼される部分によって行われるように、前記ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査の全部ではない一部を委任する段階と；
を含むコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項１２】
前記信頼される領域は、
運営体制カーネルであることを特徴とする請求項１１に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項１３】
前記接近制御規則は、
前記運営体制カーネルによって執行される強制接近制御規則で具現されることを特徴とする請求項１２に記載のコンピュータシステムでウィゼットの保安執行を提供する方法。
【請求項１４】
向上したウィゼット保安を有するコンピュータシステムにおいて、
プロセッサと；
メモリと；
運営体制と；
ウィゼットの設置及び作動を支援するウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムと；を含み、
前記ウェブランタイムシステムは、各設置されたウィゼットからウィゼットマニフェストを受信し、ウェブランタイムシステムから運営体制と関連したコンピュータシステムのより安全な部分に委任することができる接近制御規則を決定するように構成され、
前記ウェブランタイムシステムは、保安検査を行うための前記より安全な部分に委任することができる静的接近制御規則のセットを伝達するように構成されることを特徴とするウィゼット保安を有するコンピュータシステム。
【請求項１５】
前記ウェブランタイムシステムは、
任意の非静的接近制御規則に対する使い捨てトークンを得るために保安サーバーと通信するように構成されるウェブランタイム管理プロセスを含むことを特徴とする請求項１４に記載のウィゼット保安を有するコンピュータシステム。
【請求項１６】
前記ウェブランタイムシステムは、
ウィゼットが作動するとき（ｉｎｖｏｋｅｄ）、委任することができる静的接近制御規則のセットを伝達するように構成されることを特徴とする請求項１４に記載のウィゼット保安を有するコンピュータシステム。
【請求項１７】
前記ウェブランタイム管理プロセスは、
セッションプロンプトである任意の非静的接近制御規則に対してウィゼットが作動するとき、前記保安サーバーと通信するように構成されることを特徴とする請求項１５に記載のウィゼット保安を有するコンピュータシステム。
【請求項１８】
前記ウェブランタイム管理プロセスは
ウィゼットが特定サービスに連結された使い捨てプロンプトである任意の非静的接近制御規則に対して特定サービスを要請するとき、前記保安サーバーと通信するように構成されることを特徴とする請求項１６に記載のウィゼット保安を有するコンピュータシステム。
【請求項１９】
前記信頼される部分は、カーネルであることを特徴とする請求項１４に記載のウィゼット保安を有するコンピュータシステム。
【請求項２０】
システムにおいて、
複数のウィゼット；
ウェブランタイム管理プロセス；
保安サーバー；及び
運営体制カーネル；を含み、
前記ウェブランタイム管理プロセスは、前記ウィゼットから接近制御情報を抽出し、接近制御規則を生成し、運営体制カーネルに前記接近制御規則を提供するように構成され；そして、
任意の静的接続制御規則に対して、前記静的接続制御規則の少なくとも一部の保安検査を前記運営体制カーネルに委任するように構成されることを特徴とするシステム。
【請求項２１】
前記ウェブランタイム管理プロセスは、ウェブランタイムシステムと関連することを特徴とする請求項２０に記載のシステム。
【請求項２２】
プロセッサ及びメモリを有するコンピュータシステムでウィゼットの保安執行を提供する方法を行うためにマシンによって実行可能な命令のプログラムが実体的に具現されたマシンによって読み取り可能なプログラムストレージ 装置において、
サービスを要請するウィゼットプロセスから接近制御情報を抽出し、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成し、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供する段階と；
任意の静的接近制御規則に対して、前記ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査を委任する段階と；を含む方法を行うことを特徴とするマシンによって読み取り可能なプログラムストレージ 装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、本出願人に譲渡され、２０１１年８月３日に仮出願された米国特許仮出願６１／５１４，８５６と２０１２年３月５日に出願された米国特許出願１３／４１２，４９６に対して優先権の利得を請求する。この文献は、参照として本文献にその全体が含まれる。
【０００２】
本発明は、一般的にウェブランタイムシステムの保安（セキュリティ）を向上させるためのものである。より詳細には、本発明は、ウェブランタイムシステムの保安を向上させるためにサンドボクシング（ｓａｎｄｂｏｘｉｎｇ）技術を利用することに関する。
【背景技術】
【０００３】
ウィゼット（また、一般的にウェブウィゼットと称される）は、ローカルデータまたはウェブ上のデータをディスプレイ及び／または更新するための対話形の単一目的アプリケーションである。ウィゼットは、単一ダウンロード及びユーザのマシンまたはモバイル装置上に設置されることを許容する方式でパッケージされる。ウィゼットは、配布のためにウェブ標準を利用して製作され、パッケージされるクライアント側アプリケーションである。ウィゼットは、クライアントマシンにダウンロードされ、設置される。ウィゼットは、多分スタンドアローン（ｓｔａｎｄ−ａｌｏｎｅ）アプリケーションで駆動される（これは、ウェブブラウザーの外側で駆動されることができることを意味する）。ウィゼットは、ＨＴＭＬ（ｈｙｐｅｒ  ｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）、ＪａｖａＳｃｒｉｐｔ、及びＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ）を利用して一般的に作成されたダウンロード可能なアプリケーションであり、ウェブ技術及び標準を利用する。
【０００４】
ウィゼットが実行されるランタイム環境は、ウィゼットユーザエージェントまたはウェブランタイムシステム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ  Ｓｙｓｔｅｍ）と称する。ウェブランタイムシステムは、ウィゼットの設置／除去（ｉｎｓｔａｌｌａｔｉｏｎ／ｄｅ−ｉｎｓｔａｌｌａｔｉｏｎ）を担当し、ウィゼットの革新及び構成のための機能を提供する。ウェブランタイムシステムは、また、ウィゼットの実行を担当する。例えば、ウェブウィゼットは、典型的に、独立言語であるジャバスクリプト（ＪａｖａＳｃｒｉｐｔ）で作成されることができる。ウェブランタイムシステムは、ウィゼットのジャバスクリプトコードを解釈し、その実行を行うために、ジャバスクリプトエンジンと知られた、ソフトウェアモジュールを含む。
【０００５】
図１は、リモ（Ｌｉｍｏ）プラットホーム（すなわち、モバイルフォンプラットホームを基盤とするリナックス（Ｌｉｎｕｘ））を基盤とするウェブランタイムシステムの単純化された上位階層アキテクチャーダイヤグラムの実施例を示す。この実施例において、ユーザインターフェース（ＵＩ、Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）階層で、ウィゼットは、天気情報、時計またはフォトビューアーのような機能を行うことができる。ウェブランタイムユーザインターフェースが存在する。エンジン階層に、ウィゼットエンジン及びウィゼット管理者が存在する。コア階層に、ウェブキット（Ｗｅｂｋｉｔ）が存在する。ウェブキットは、ウェブエンジンで使用されるライブラリ（ｌｉｂｒａｒｙ）である。ウェブランタイムシステムは、設置されたウィゼットを支援するために必要な、コア階層でウェブエンジンの上に存在する、すべてのコンポネントの集合である。
【０００６】
ウィゼットパッケージは、ウィゼットの具現を構成するものと認められる、特定標準（例えば、ワールドワイドウェブコンソーシアム（Ｗ３Ｃ、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）で、２０１１年８月１１日発表した、Ｗ３Ｃ提案勧告案（ＰＲ、Ｐｒｏｐｏｓｅｄ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎｓ）である、“ウィゼット：パッケージング及び構成規格（Ｗｉｄｇｅｔｓ：Ｐａｃｋａｇｉｎｇ  ａｎｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｓｐｅｃｉｆｉｃａｔｉｏｎ）”を参照されたい）を守るパッケージである。ウィゼットパッケージは、関連したウィゼットのために、この特許明細書でマニフェスト（Ｍａｎｉｆｅｓｔ）ファイルとして称されることができる、メタデータ（ｍｅｔａｄａｔａ）を含む。マニフェストファイルは、ウィゼットに対する接近（アクセス）制限を含む多数のものを特定する。接近制限は、装置性能（ｄｅｖｉｃｅ  ｃａｐａｂｉｌｉｔｉｅｓ）、ネットワークリソース、ファイルシステム、などに対するウィゼットによる接近を制御するためにウェブランタイムシステムによって使用される。
【０００７】
ウィゼットとウィゼットに対するジャバスクリプトＡＰＩのための多少異なる規格及び標準化を設定する数個の異なる標準の組職がある。このような組職は、ウィゼットに対する規格を設定し、このような組職は、他のもののうち、ワールドワイドウェブコンソーシアム（Ｗ３Ｃ、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）、ウェブ基盤全世界統合アプリストア（ＷＡＣ、Ｗｈｏｌｅｓａｌｅ  Ａｐｐ  Ｃｏｍｍｕｎｉｔｙ）ＪＩＬ（Ｔｈｅ  Ｊｏｉｎｔ  ＩｎｎｏｖａｔｉｏｎＬａｂ）、ボンディ（ＢＯＮＤＩ）、及びオペラ（Ｏｐｅｒａ）を含む。結果的に、異なる形式のウィゼット及びウィゼットランタイムシステムが存在する。規格の詳細なもの（例えば、どんなに接近権限及び許可の単位（ｇｒａｎｕｌａｒｉｔｙ  ｏｆ  ｐｅｒｍｉｓｓｉｏｎｓ）を特定するか）が異なるにもかかわらず、このようなウィゼットシステムの汎用保安モデル及び接近制御強制規定（ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ  ｅｎｆｏｒｃｅｍｅｎｔ  ｐｒｉｎｃｉｐｌｅｓ）は、非常に類似している。
【０００８】
近年のウェブランタイムシステム具現で接近制御執行（ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ  ｅｎｆｏｒｃｅｍｅｎｔ）は、ウィゼット自体を駆動するプロセスと同一にウェブランタイムシステムのユーザ−空間（ｕｓｅｒ−ｓｐａｃｅ）コードによって処理される。例えば、このような制御及び執行は、図２に示されたようなウェブエンジンコードで処理される。ここで、図２は、ウェブエンジン階層で接近制御フィーチャーを有するＢＯＮＤＩウィゼット具現の全体上位階層アキテクチャーを示す。
【０００９】
図３を参照すれば、本特許出願の発明者は、現在のウェブランタイムシステム具現で接近制御執行がウェブランタイムシステムのユーザ空間コードで処理されるので、従来のウェブランタイムシステムで保安脆弱性が発生するものと認知している。すなわち、接近制御執行がウィゼット自体を実行するものと同一のプロセスで、ウェブランタイムシステムのユーザ空間コードで処理されるので、保安脆弱性が発生する。例えば、このような制御及び執行は、ウェブエンジン（例えば、ウェブキット（Ｗｅｂｋｉｔ））コードで処理される。図３に示されたように、適法な接近手続を有する良性プロセス（ｂｅｎｉｇｎ  ｐｒｏｃｅｓｓ）は、保安検査を通過する。しかし、損傷されたプロセス（ｃｏｍｐｒｏｍｉｓｅｄ  ｐｒｏｃｅｓｓ）は、変形された接近手続を有し、これは、言及された保安検査をバイパス（ｂｙｐａｓｓ）する結果をもたらす。
【００１０】
従来のウェブランタイムシステムで保安制御は、内在的に脆弱であり、アドレス空間変形（ａｄｄｒｅｓｓ  ｓｐａｃｅ  ｃｏｒｒｕｐｔｉｏｎ）及びコード注入（ｃｏｄｅ  ｉｎｊｅｃｔｉｏｎ）のような脅威（ｔｈｒｅａｔ）を通じてバイパス（ｂｙｐａｓｓ）されることができる。例えば、ウェブエンジンは、該ウェブエンジンで任意のコードを注入及び実行するか、または適法な制御手続を変更する遠隔攻撃または悪意的なウィゼットを許容するバグを含むことができる。結果的に、攻撃者／ウィゼットは、保安検査をバイパスすることができ、制限されたリソースに接近することができる。
【００１１】
例を取って説明すれば、著名なウェブブラウザーであるサファリ（Ｓａｆａｒｉ）は、保安検査をバイパスする結果をもたらすことができる数個の脆弱な形式を有する。サファリ（Ｓａｆａｒｉ）は、ウェブキットと呼ばれるウェブエンジンと同一ウェブエンジンを基礎とし、これは、アイホン（ｉＰｈｏｎｅ）、アンドロイド（Ａｎｄｒｏｉｄ）プラットホームを含む多くのモバイルプラットホームに使用されている。このような脆弱性は、実行コード脆弱性、オーバーフロー（ｏｖｅｒｆｌｏｗ）脆弱性及びメモリ変形（ｍｅｍｏｒｙ  ｃｏｒｒｕｐｔｉｏｎ）脆弱性を含む。サファリ（Ｓａｆａｒｉ）は、多くのモバイルプラットホームで使用される同一のウェブキットウェブエンジンに基礎する。したがって、従来のウェブランタイムシステム保安制御に関連して相当な保安に対する憂慮が存在する。
【００１２】
ウェブ基盤全世界統合アプリストア（ＷＡＣ、Ｗｈｏｌｅｓａｌｅ  Ａｐｐ  Ｃｏｍｍｕｎｉｔｙ）は、装置能力値（ｄｅｖｉｃｅ  ｃａｐａｂｉｌｉｔｉｅｓ）に接近するためのジャバスクリプトＡＰＩを定義する。ＷＡＣ規格は、ＪＩＬ（Ｔｈｅ  Ｊｏｉｎｔ  Ｉｎｎｏｖａｔｉｏｎ  Ｌａｂ）、ＢＯＮＤＩ及びＷ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）のような、以前の規格努力によって影響を受け、それらから由来した。ＪＩＬ及びＢＯＮＤＩグループは、既にＷＡＣに合流し、すべてのこのような努力及び運営は、現在のＷＡＣの傘下にある。
【００１３】
ＷＡＣ  ＡＰＩは、異なるモジュールにグループ化される数個の方法及び属性（ｐｒｏｐｅｒｔｉｅｓ）を含む。
【００１４】
・装置の加速度計センサー（ａｃｃｅｌｅｒｏｍｅｔｅｒ  ｓｅｎｓｏｒ）を利用することを許容する加速度計モジュールＡＰＩ    ？
・装置の方向センサー（ｏｒｉｅｎｔａｔｉｏｎ  ｓｅｎｓｏｒ）を利用することを許容する方向モジュールＡＰＩ
・装置のカメラを通じてメディアをキャプチャすることを可能にするカメラモジュールＡＰＩ
・装置状態情報に対する接近を提供する装置状態モジュールＡＰＩ
・装置のファイルシステム（ｆｉｌｅ  ｓｙｓｔｅｍ）に接近することを許容するファイルシステムモジュールＡＰＩ
・メッセージを伝送し、取り戻すことを許容するメッセージングモジュールＡＰＩ
・装置の位置（Ｗ３Ｃに特定されたように）を露出させる地理位置（ｇｅｏｌｏｃａｔｉｏｎ）モジュールＡＰＩ
・異なる個人情報管理（ＰＩＭ、Ｐｅｒｓｏｎａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ）機能を露出させる個人情報管理（ＰＩＭ）モジュールＡＰＩ
・連絡情報の管理を可能にする連絡モジュールＡＰＩ
・カレンダー情報の管理を可能にするカレンダーモジュールＡＰＩ
・タスク情報の管理を可能にするタスクモジュールＡＰＩ
・異なる装置性能を通じてエンドユーザーと相互作用することができるようにする装置相互作用モジュールＡＰＩ
【００１５】
このようなモジュール（前述したＡＰＩモジュール）の方法及び属性に対して接近することは、異なる政策規則（ｐｏｌｉｃｙ  ｒｕｌｅｓ）に対象になる。ＷＡＣは、このようなＡＰＩを“制限された（ｒｅｓｔｒｉｃｔｅｄ）”、また“敏感な（ｓｅｎｓｉｔｉｖｅ）”とも言う、機能で識別し、このような制限されたＡＰＩに対する接近は、ＷＡＣ保安フレームワークによって制御され、ユーザ同意を要求する。
【００１６】
ＷＡＣは、このような保安ドメインを定義する：このような保安ドメインは、“信頼（ｔｒｕｓｔｅｄ）”（ａｋａ．ＷＡＣ  ｄｏｍａｉｎ）ドメイン、“非信頼（ｕｎ−ｔｒｕｓｔｅｄ）”ドメイン及び“オペレータ（ｏｐｅｒａｔｏｒ）”（ａｋａ．ＷＡＣ  ｏｐｅｒａｔｏｒ）ドメインを含む。アプリケーションは、該アプリケーションがどんなドメイン内で実行されているかによって異なる保安規則に対象になる。ＷＡＣは、また、デジタル署名スキームを使用し、アプリケーションのドメインは、そのデジタル署名チェーンに基づいて決定される。“オペレータ”ドメインは、ネットワークサービス提供者による使用のために意図された。アプリケーションがＷＡＣキャリアから由来するデジタル署名を有すれば、アプリケーションは、オペレーションドメインで実行される。すなわち、このアプリケーションの認証書チェーンのルート（ｒｏｏｔ  ｏｆ  ｔｈｅ  ｃｅｒｔｉｆｉｃａｔｅ  ｃｈａｉｎ）は、オペレータルート認証書（ｏｐｅｒａｔｏｒ  ｒｏｏｔ  ｃｅｒｔｉｆｉｃａｔｅ）である。アプリケーションは、その認証書チェーンが知られたＷＡＣルート認証書なら、信頼ドメインで実行される。その他、アプリケーションが署名されないか、または署名チェーンがＷＡＣルート認証書に拡張されなければ、該アプリケーションは、非信頼ドメインで実行される。図４は、どんな条件に基づくウィゼットの属するドメインが何であるかを要約する。
【００１７】
提案されたＡＰＩに接近することは、典型的に、その場で（用意されている）、保安制御に起因したユーザの確認を要求する。例えば、地理位置モジュールＡＰＩに接続しようとするアプリケーションは、ユーザがアプリケーションがこの地理位置モジュールＡＰＩに接続することができるようにする許可を提供するように要求することができる。この許可は、臨時または永久基盤で与えられることができる。例えば、ＷＡＣは、このようなＡＰＩ上に位置し、保安制御を可能にする５個の異なる形式のユーザ許可要求を定義する。
【００１８】
・許容（Ａｌｌｏｗｅｄ）：ユーザに許可に対するプロンプティング（ｐｒｏｍｐｔｉｎｇ、ユーザに許可を入力するように要請する）なしに実行することができるようにする機能。
・ワンショット（Ｏｎｅ  Ｓｈｏｔ）：ユーザは、機能が実行されることができるということを確認するために毎度必ずプロンプトされなければならない。
・セッション（Ｓｅｓｓｉｏｎ）：ユーザは、機能が実行されることができるということを確認するために必ずセッション当たり一度（すなわち、ウィゼットが初めて活性化されたページに追加されたとき）プロンプトされなければならない。
・ブランケット（Ｂｌａｎｋｅｔ）：ユーザは、必ず初めてＡＰＩ機能がウィゼットによって作われるとき、確認のためにプロンプトされなければならない。しかし、一応確認されれば、二度とプロンプトが要求されない。
・拒否（Ｄｅｎｙ）：拒否は、ＡＰＩ機能が絶対許容されないことを示すためにオペレータによって使用される。
【００１９】
下記の表１は、各保安ドメインに対する制限された規則及びそれらに対応する政策規則を説明する。この表は、経験をカスタマイズ（ｃｕｓｔｏｍｉｚｅ）するためにオペレータによって修正されることができる。さらに、ユーザは、また、政策を設定することができ、オペレータによって提供されるデフォルト（ｄｅｆａｕｌｔ）から誘導される政策を使用するために選択することができる。
【００２０】
【表１】
2014524606.tif 000003
2014524606.tif 000004
2014524606.tif 000005
2014524606.tif 000006
2014524606.tif 000007
【００２１】
フレームワーク内で駆動されるアプリケーションは、接続のために要求されるＡＰＩ及び遠隔ネットワークリソースをアプリケーションのメタデータファイル（例えば、マニフェスト（Ｍａｎｉｆｅｓｔ）、ウィゼット構成文書など）に特定され記述されることが要求される。これらは、従属性（ｄｅｐｅｎｄｅｎｃｉｅｓ）と知られている。メタデータファイルの［ｆｅａｔｕｒｅ］及び［ｉｒｉｓｅｔ］属性は、この目的のために使用されることができる。ＷＡＣ可能な装置は、設置されたウィゼットリソースに対する許容を受諾する前に、ウィゼットの統計的に表現された従属性（ｄｅｐｅｎｄｅｎｃｉｅｓ）（例えば、ウィゼット構成文書で〈ｆｅａｔｕｒｅ〉要素ステートメント（ｓｔａｔｅｍｅｎｔ）に関連したＡＰＩ）を表示することができる。
【００２２】
リナックスで接近制御を提供するための２個の主要メカニズムが存在する：任意接近制御（ＤＡＣ、ｄｉｓｃｒｅｔｉｏｎａｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ）及び強制接近制御（ＭＡＣ、ｍａｎｄａｔｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ）メカニズム。
【００２３】
コンピュータ保安で、強制接近制御（ＭＡＣ、ｍａｎｄａｔｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ）は、運営体制（ＯＳ、ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）が客体またはターゲット上でどんな種類のオペレーションに接近するか、またはどんな種類のオペレーションを一般的に行う主体の能力を制限する接近制御の形式を示す。実行で、主体は、一般的にプロセッサまたはスレッドである；客体は、ファイル、ディレクトリー、伝送制御プロトコル／ユーザデータグラムプロトコル（ＴＣＰ／ＵＤＰ、ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ／ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）ポート、共有メモリセグメントなどのような構成体である。主体及び客体それぞれは、保安属性のセットを有する。主体が客体に接近を試みる度に、運営体制カーネルによって強制される許可規則は、このような保安属性を検査し、接近が行われることができるか否かを判断する。任意の客体上の任意の主体による任意のオペレーションは、該オペレーションが許可されるか否かを決定するために許可規則のセット（ａｋａ政策）に対してテストされる。
【００２４】
強制接近制御とともに、この保安規則は、保安政策管理者によって中央集権的に制御される；ユーザは、この政策より優先する（無視する）能力を有することができず、このような例えば、そうではなければ制限されることができるファイルに対する接近を許容するもののようなものである。それと対照的に、また客体に接続するための主体の能力を管理する任意接近制御（ＤＡＣ）は、ユーザに政策を決定する能力及び／または保安属性を割り当てるようにする能力を許容する。（従来のユーザ、グループ及び読み取り−記録−実行許容のユニックスシステムは、任意接近制御（ＤＡＣ）の例である。）強制接近制御（ＭＡＣ）可能なシステムは、政策管理者が組職全体的な保安規則を実行するように許容する。任意接近制御（ＤＡＣ）とは異なって、ユーザは、この政策を偶然にでも、または、意図的でも、無視するか、または、修正することができない。これは、保安管理者がすべてのユーザに対して（原則的に）強要するように保障される主要規則を定義することを許容する。
【００２５】
現在システムで任意接近制御（ＤＡＣ）メカニズムは、異なるユーザが資産に対して分離（ｉｓｏｌａｔｉｏｎ）を提供する。伝統的に、コンピュータシステムは、多重ユーザシステムに設計された。例えば、会社または大学でコンピュータは、異なる個人の資産（例えば、ファイル、パスワード、プログラムなど）を格納することができ、多重ユーザに同時にサービスを提供する（例えば、ファイルサーバー）。従来の任意接近制御（すなわち、ユーザ／グループ許容）は、どんなユーザーがどんな資産に接近することができるかを決定し、よって、ユーザレベル分離を提供する。
【００２６】
現代のハイ−エンドモバイル装置で、これらが単一ユーザ装置であることは事実であり、任意接近制御（ＤＡＣ）は、アプリケーションのための分離及びサンドボクシングを提供するのに使用される。例えば、アンドロイドフォンで、各アプリケーションは、ユーザ識別子が割り当てられ、まるでこれが‘仮想ユーザ’のように駆動する。このように、異なるアプリケーションに属するファイルは、異なる任意接近制御（ＤＡＣ）許可を有することができる。そして、アプリケーションは、任意接近制御（ＤＡＣ）の分離によってそれぞれの異なるアプリケーションのファイルに接続することができない。さらに、各アプリケーションは、接続を許容するリソースの特定セットに接続するために制御されることができる。アンドロイドで、例えば、新しいアプリケーションが設置されるとき、システムは、ユーザにアプリケーションが要求する許可のリストを示し、ユーザがそれらの許容を承認するべきか否かを質問する。もし、許可が承認されれば、システムは、アプリケーションが許可によって特定されるサービスまたは資源にただ接近するように許容する方法で、アプリケーションの任意接近制御（ＤＡＣ）許可を構成する。
【００２７】
同様に、例えば、ＳＭＡＣＫのような、強制接近制御（ＭＡＣ）メカニズムは、モバイル装置でアプリケーション分離及びサンドボクシングを提供するのに使用されることができる。ＳＭＡＣＫ及びＳＥＬｉｎｕｘは、強制接近制御（ＭＡＣ）メカニズムに基づくラベルである。われらは、システムでアプリケーション及びリソースに対する特定（そして可能な固有な）ラベルを割り当てることができる。ＳＭＡＣＫ及びＳＥＬｉｎｕｘは、また、接近制御政策を使用する（すなわち、どんなラベルがどんなラベルのリソースに接続することができるかアプリケーションを特定する接近規則のリスト）。
【００２８】
前述したように、任意接近制御メカニズムと同様に、これは、モバイルフォンでアプリケーションに異なるラベルを割り当てて、アプリケーションが接続することができるリソース及びサービスを制御するための、任意接近制御（ＭＡＣ）メカニズムに対して適切な政策規則を伝達することが可能である。ユーザによって承認された許可に基づいて、モバイルフォンシステムは、新しく設置されたアプリケーションの強制接近制御（ＭＡＣ）ラベル及び政策規則を構成することができる。
【００２９】
リナックスで、強制接近制御（ＤＡＣ）及び任意接近制御（ＭＡＣ）は、ファイル、ソケット、ディレクトリー及び装置のようなカーネル空間客体上で執行される。しかし、スマートフォンのように複雑なシステムで、任意接近制御（ＤＡＣ）または強制接近制御（ＭＡＣ）を通じて制御されることができないユーザ空間で定義される多くの客体が存在することができる。このような客体は、システムデモン、フレームワークデモンなどのようなプロセスによって生成され、制御される。もし、アプリケーションがデモンによって制御されるユーザ空間客体に接近することが必要なら、これは、デモに客体をもちらすようにする要請を伝送しなければならない必要がある。このようなユーザ空間客体を保護するために、接近権限を執行するための一種のクリデンショル（ｃｒｅｄｅｎｔｉａｌ）が存在しなければならない。もし、アプリケーション／プロセスがユーザ空間客体に接近する権限を有すれば、信頼されるエンティティーは、必ず検査されなければならない。一部の場合で、ユーザ空間客体のデモンは、そのような保安検査及び執行を行うことができる。もし、アプリケーション及びデモンが相互間に直接通信のために標準リナックスプロセス間通信（ＩＰＣ、Ｉｎｔｅｒ−Ｐｒｏｃｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を使用すれば、デモンは、クリデンショル及び要求されるアプリケーションの接続権限を検査することができる。したがって、保安チェックを行うために、サードパーティー（３ｒｄ  ｐａｒｔｙ）プロセスを導入する必要がない。しかし、スマートフォンで、一部のサービスは、通信、サービス要請などのためのＤバス（Ｄ−ｂｕｓ）のような仲裁エンティティーを使用することができる。そのような場合において、ピア（ｐｅｅｒ）のクリデンショルは、通信チャネルの他のエンドに自動で伝搬されない。したがって、われらがこの文献で“保安サーバー”と呼ぶようになるサードパーティー信頼エンティティーは、接近制御目的のために必要である。このような保安サーバーは、要請プロセスに検証可能なクリデンショルを配布することができ、その後、要請プロセスの接近権限を検査することを希望する他のプロセスの代わりにクリデンショルを検証することができる。このようなスキームは、異なる形式のクリデンショルに使用することができる。この文献で、単純化のために
、われらは、クリデンショルが保安サーバーによって生成されたランダムクッキー（すなわち、ランダム数）であるものと見なすことができる。オペレーション手続の実施例は、図５に示されている。
【００３０】
５００段階で、クッキーは、アプリケーションプロセスによって要請される。５０２段階で、保安サーバーは、アプリケーションプロセスの接近権限を取り戻し、ランダムクッキーを生成し、接近権限と共にこれを格納する。５０４段階で、保安サーバーは、アプリケーションプロセスに応答を伝送する。５０６段階で、アプリケーションプロセスは、サービスデモンからクッキーを利用してサービスを要請する。５０８段階で、サービスデモンは、与えられたクッキーを利用して権限（ｐｒｉｖｉｌｅｇｅ）を要請する。５１０段階で、保安サーバーは、権限（ｐｒｉｖｉｌｅｇｅ）を検査し、５１２段階で、保安サーバーは、サービスデモンにその結果をリターンする（ｒｅｔｕｒｎ）。５１２段階で、サービスデモンは、アプリケーションプロセスに対応する。
【発明の概要】
【発明が解決しようとする課題】
【００３１】
前述したように、接近制御執行がウィゼット自体を実行することと同一のプロセスで、ウェブランタイムシステムのユーザ空間コードで処理されるから発生する保安脆弱性を勘案した本発明の目的は、ウェブランタイムシステムの保安を向上させることができるサンドボクシング（ｓａｎｄｂｏｘｉｎｇ）技術を利用する方法、このための装置及びこのためのシステムを提供することにある。
【課題を解決するための手段】
【００３２】
本発明の第１実施例において、プロセッサ及びメモリを有するコンピュータシステムでウィゼットの保安執行を提供する方法が提供される。このようなコンピュータシステムでウィゼットの保安執行を提供する方法は、サービスを要請するウィゼットプロセスから接近制御情報を抽出する過程と、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成する過程と、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供する過程と、を含む段階と；任意の静的接近制御規則に対して前記ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査を委任する段階と；を含む。
【００３３】
本発明の第２実施例において、プロセッサ及びメモリを有するコンピュータシステムでウィゼットの保安執行を提供する方法が提供される。このようなコンピュータシステムでウィゼットの保安執行を提供する方法は、サービスを要請するウィゼットプロセスから接近制御情報を抽出する過程と、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成する過程と、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供する過程とを含む段階と；任意の静的接続制御規則に対して、保安検査の２個のレベルが行われ、且つ保安検査の２個のレベルのうちいずれか一方は、ウェブランタイムシステムによって、他方は、前記コンピュータシステムの信頼される部分によって行われるように、前記ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査の全部ではない一部を委任する段階と；を含む。
【００３４】
本発明の第３実施例において、向上したウィゼット保安を有するコンピュータシステムが提供される。このようなコンピュータシステムは、プロセッサ；メモリ；運営体制；及びウィゼットの設置及び作動を支援するウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システム；を含み、前記ウェブランタイムシステムは、各設置されたウィゼットからウィゼットマニフェストを受信し、ウェブランタイムシステムから運営体制と関連したコンピュータシステムのより安全な部分に委任することができる接近制御規則を決定するように構成され、前記ウェブランタイムシステムは、保安検査を行うための前記より安全な部分に委任することができる静的接近制御規則のセットを伝達するように構成されることを特徴とする。
【００３５】
本発明の第４実施例において、システムが提供される。このようなシステムは、複数のウィゼット；ウェブランタイム管理プロセス；保安サーバー；及び運営体制カーネル；を含み、前記ウェブランタイム管理プロセスは、前記ウィゼットから接近制御情報を抽出し、接近制御規則を生成し、運営体制カーネルに前記接近制御規則を提供するように構成され；そして、任意の静的接続制御規則に対して、前記静的接続制御規則の少なくとも一部の保安検査を前記運営体制カーネルに委任するように構成されることを特徴とする。
【００３６】
本発明の第５実施例において、プロセッサ及びメモリを有するコンピュータシステムでウィゼットの保安執行を提供する方法を行うためにマシンによって実行可能な命令のプログラムが実際に具現されたマシンによって読み取り可能なプログラムストレージ 装置が提供される。このようなマシンによって読み取り可能なプログラムストレージ装置は、サービスを要請するウィゼットプロセスから接近制御情報を抽出し、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成し、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供する段階と；任意の静的接近制御規則に対して、前記ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査を委任する段階と；を含む方法を行うことを特徴とする。
【００３７】
前述したように、本発明は、接近制御執行がウィゼット自体を実行することと同一のプロセスで、ウェブランタイムシステムのユーザ空間コードで処理されるので、発生する保安脆弱性を改善するために、サービスを要請するウィゼットプロセスから接近制御情報を抽出し、ウィゼットプロセスに対してカスタマイズされた（ｃｕｓｔｏｍｉｚｅｄ）接近制御規則を生成し、ウェブランタイム（ＷＲＴ、Ｗｅｂ  Ｒｕｎｔｉｍｅ）システムのユーザコード空間外部のコンピュータシステムの信頼される部分に前記接近制御規則を提供して、ウェブランタイムシステムから前記コンピュータシステムの信頼される部分に前記ウィゼットプロセスの保安検査を委任することによって、ウェブランタイムシステムの保安を向上させることができる。
【図面の簡単な説明】
【００３８】
【図１】図１は、リモ（Ｌｉｍｏ）プラットホーム（すなわち、モバイルフォンプラットホームを基盤とするリナックス（Ｌｉｎｕｘ））を基盤とするウェブランタイムシステムの単純化された上位階層アキテクチャーダイヤグラムの実施例を示す。
【図２】図２は、従来技術によるウェブランタイムアキテクチャーの部分を示す上位レベルアキテクチャーダイヤグラムである。
【図３】図３は、従来の技術のシステムでウィゼット保安脆弱点を示す。
【図４】図４は、どんな条件に基盤を置いたウィゼットの属するドメインが何であるかを要約する。
【図５】図５は、本発明の実施例によるオペレーション手続の実施例である。
【図６】図６は、本発明の実施例によるウェブランタイムアキテクチャーを示すブロック図である。
【図７】図７は、本発明の実施例による、運営体制カーネルのような、システムのより安全な部分にウィゼット接近規則を提供する修正されたウェブランタイムシステムを示す。
【図８】図８は、本発明の一実施例によるウェブランタイムからカーネルへの保安検査の委任を示す。
【図９】図９は、本発明の一実施例による、運営体制カーネルのような、システムのより安全な部分にウィゼット接近規則を提供する修正されたウェブランタイムシステムを示す。
【図１０】図１０は、本発明の実施例によるウィゼット保安を執行するための保安トークンを利用することを示す。
【図１１】図１１は、本発明の一実施例によるウィゼットの位置サービス要請に対する保安検査を行うために保安トークンを利用する実施例を示す。
【図１２】図１２は、本発明の実施例によるウィゼットの保安執行を提供するための方法を示す流れ図である。
【発明を実施するための形態】
【００３９】
以下、レファレンスは、本発明を実施するための発明者が考慮するベストモードを含む本発明の特定実施例を特定するために詳細に作られる。このような特定された典型的な実施例は、添付の図面で説明される。本発明がこのような特定実施例とともに説明されるが、本発明を説  明された実施例によって制限するための意図ではないことを理解しなければならない。それとは反対に、代案、修正、及び同等なものは、添付の請求範囲に定義されたものによって本発明の思想及び範囲内に含まれると言える。下記の説明で、特定された詳細は、本発明を完全に理解することができるようにするために提示される。本発明は、一部または全部のこのような特定された詳細なしに実施することもできる。さらに、よく知られた特徴は、発明を不要に曖昧にすることを避けるために詳細に説明しないことがある。
【００４０】
本発明によれば、コンポネント、プロセス段階、及び／またはデータ構造は、多様な形式の運営体制（ＯＳ、ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）、プログラミング言語、コンピューティングプラットホーム、コンピュータプログラム及び／または汎用マシン（ｇｅｎｅｒａｌ  ｐｕｒｐｏｓｅ  ｍａｃｈｉｎｅ）を利用して具現されることができる。さらに、この技術分野における通常の知識を有する者は、ハードウェアに内蔵された装置、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）などのような汎用の特徴が少ない装置が、本文献に公開された本発明の概念の範囲及び思想を逸脱することなく、使用されることもできることを理解することができる。本発明は、メモリ装置のような、コンピュータ読み取り可能な媒体上に格納されるコンピュータ命令のセットで具体的に具現されることもできる。
【００４１】
本発明は、一般的にウィゼットシステムの保安を向上させ、ウィゼットを駆動する汚染されるかまたは感染されたウィゼット及び／またはプロセスから他のアプリケーション及び装置に対する保護を提供することに向けられている。１つの解決策は、ウェブランタイムシステム（ＷＲＴ）から１セットの接近制御規則をウェブランタイムシステムのユーザ空間コードの外部のコンピュータシステムのより安全な部分に委任することを含むことができる。しかし、この解決策は、また、ＷＡＣ  ＡＰＩのような、接近制御執行規則を含むアドレスＡＰＩが必要である。
【００４２】
本発明の実施例で、サンドボックスメカニズムを有する多重−プロセスウェブランタイムシステムは、ＷＡＣウィゼットを安全に駆動するのに使用される。許容され、拒否される許可は、各ウィゼットに対して静的である。すなわち、もし、すべての接近権限が知られているか、または、設置時点で決定されたら、ウェブランタイムシステムから接近制御規則のセットをコンピュータシステムのより安全な部分に委任することを含む解決策は、十分である。しかし、セッションの追加された特徴及びＷＡＣ規格によって許容されたワンショット（ｏｎｅ−ｓｈｏｔ）プロンプト（ｐｒｏｍｐｔ）は、接近制御管理及びサンドボクシングを複雑にする。なぜなら、ウィゼットの接近権限は、ランタイムに変更されることができ、それらの接近権限のコンテクストでそのような変化を検出するためにＷＡＣウィゼットの実行をモニターするシステム上の信頼エンティティー（ｔｒｕｓｔｅｄ  ｅｎｔｉｔｙ）が存在しなければならないので、それによって接近制御政策を修正し、新しいコンテクストを執行する。
【００４３】
本発明で、ウェブランタイムシステムは、多重プロセスモデルを利用して再構成（ｒｅａｒｃｈｉｔｅｃｔｅｄ）される。ウェブランタイムシステムプロセスと呼ばれる、管理プロセスがウィゼットプロセスを初期化し、保安構成の一部の部分を調節し、そして、ウィゼットプロセスから保安重要要請を処理することに対する変更に導入する。各ウィゼットは、個別的で且つ分離されたプロセスで駆動する。このプロセス以前の接続は、任意接近制御（ＤＡＣ）及び強制接近制御（ＭＡＣ）規則の組合を通じて、保安サーバー、ウェブランタイムプロセス、及びカーネルによって制御され、これらは、設置時点で設置管理者によって、そして、開始時点（ｌａｕｎｃｈ  ｔｉｍｅ）及びランタイムでウェブランタイムプロセスによって構成される。  ウィゼットの設置中に、パッケージ管理者としても知られた、設置管理者は、（その認証書及びマニフェストファイルを含む）ウィゼットのパッケージを処理し、その後、設置−時間に承認されることができるその接近権限を識別する。それでは、設置管理者は、識別された権利に基づいてこのウィゼットのための接近制御規則を作る（ｃｒａｆｔ）。そして、設置管理者は、このような規則を運営体制カーネル及び／または適当な運営体制／フレームワークデモン／サービスに伝達する。このウィゼットが作動するとき、ウェブランタイムプロセスは、どんな接近権限が開始時点にこのウィゼットに承認されるか否かを決定し、接近制御規則を作って、作られた接近制御規則を運営体制カーネル及び／または適切な運営体制／フレームワークデモン／サービスに伝達する。その後、ウェブランタイムプロセスは、このウィゼットの実行のためのプロセスを生成するか、または、予約する。結果的に、ウィゼットは、他の活性化されたウィゼットに対して個別的で且つ分離されたプロセスで実行される。ウィゼットの実行中に、保安検査及び執行は、運営体制カーネル及び他の関連したプロセスに委任される。また、ウェブランタイムプロセスは、ランタイムで保安制御及び構成に関して積極的な役目を行う。このように、システムは、どんなエンティティーがＡＰＩに基づいて接近制御政策の検査を行うかを動的に変更することができる。
【００４４】
図６は、本発明の実施例によるウェブランタイムアキテクチャーを示すブロック図である。パッケージ管理者６００は、設置中にウィゼットパッケージを処理し、その認証書を検査することによってウィゼットがどんなドメインに属しているかを識別する。ウィゼットのドメインは、どんな許可に対してどんな形式のプロンプトに対して使用されることが必要であるかを指示する。ブランケットプロンプトを要求する許可に対して、設置管理者は、要請された許可に対する承認を得るためにユーザにプロンプトする。ユーザからのフィードバックに基づいて、設置管理者は、そのウィゼットに対して承認されたこのような許可のための接近規則を構成する。
【００４５】
開始時間に、ウィゼットは、ＡＵＬ  ６０４で開始要請を中継する、メニュー画面６０２を通じて識別される。それでは、ＡＵＬ  ６０４は、ウェブランタイム管理プロセス６０６にその要請を中継する。ウェブランタイム管理プロセス６０６は、このウィゼットのどんな許可がセッション及び使い捨てプロンプトを要求するか、そして、このウィゼットの許可がセッション及び使い捨てプロンプトを要求するか否かを識別する。このようなセッションプロンプトを要求する許可に対して、ウェブランタイムプロセスは、ユーザに確認（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を得るためにプロンプトする。ユーザからのフィードバックに基づいて、ウェブランタイムプロセスは、そのウィゼットに対して承認されたこのような許可のための接近規則を構成する。
【００４６】
ランタイムで、ＷＡＣウィゼットが駆動されるとき、ワンショット（ｏｎｅ−ｓｈｏｔ）を除いたすべてのプロンプト形式に対応する接続は、設置管理者及びウェブランタイム管理プロセス６０６によって設定される接近制御構成に基づいてカーネル及び保安サーバー６０８によって処理されることができる。ワンショットプロンプトに対応する接続は、異なって処理される。ワンショットプロンプト許可を要求するウィゼット６１０は、ウェブランタイム（ＷＲＴ）管理プロセス６０６に要請を伝送する。ウェブランタイム管理プロセス６０６は、許可が承認されるか否かを識別するためにユーザから確認（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を得る。この許可によって制御される接近は、デモン６１２から客体／サービスに対する接近及び／またはカーネル−レベル客体に対する直接接近を含むことができる。接近のために、保安サーバー６０８は、制御に含まれることができる。ウェブランタイム管理プロセス６０６は、保安サーバー６０８と通信し、“ワン−ショットクッキー（ｏｎｅ−ｓｈｏｔ  ｃｏｏｋｉｅ）”を要請し、その後、要請者（ｒｅｑｕｅｓｔｅｒ）プロセスにこれを伝達する。このワンショットクッキーとともに、ウィゼットプロセス６１０は、デモン６１２からのサービスを要請することができる。ワンショットクッキーは、ウィゼットプロセスがそのウィゼットに対して承認されたワンショットプロンプト許可によって制御される要請されたサービスを消尽した後に満了する特別なクッキーである。強制接近制御（ＭＡＣ）及び任意接近制御（ＤＡＣ）を通じてカーネルによって制御される客体に対する接近のために、ウィゼットプロセスは、接近要請をウェブランタイム管理者プロセス６０６に伝送する。ウェブランタイム管理プロセス６０６は、保安検査を行い、もし、要請された許可がウィゼットに対して承認されれば、ウェブランタイム管理プロセス６０６は、ウィゼットの代わりに接続を行い、要請者ウィゼットに対してさらにその結果をリターンする（ｒｅｔｕｒｎ）。
【００４７】
先立って概要を記述したように、保安執行及び構成は、個別許可が要請するプロンプトの形式によって異なるように処理される。ブランケットプロンプトのために、ユーザは、設置する中にまたはそのウィゼットが初めて開始される中に、許可承認を要請することができる。対応する接近規則（ＤＡＣ、ＭＡＣなど）は、このウィゼットに対して一度だけ構成され、そのウィゼットの存続（ｌｉｆｅ−ｔｉｍｅ）中に同一の構成を利用して維持する。セッションプロンプトのために、ユーザは、ウィゼットが開始される前に許可承認を要請することができる。それでは、新しいプロセスがフォークされた（ｆｏｒｋｅｄ）ウェブランタイムプロセスでこれによって構成されることができる（例えば、これを対応するＤＡＣグループ、ロードＳＭＡＣＫ規則などに追加する）。保安サーバー６０８は、セッショントークンに対して接続されることができる。これは、ただセッション期間にのみ有効なトークンである。それでは、権限（ｐｒｉｖｉｌｅｇｅ）は、削除（ｄｒｏｐ）され、ウィゼットは実行される。次回のウェブランタイムが同一のウィゼットに開始され、動的接近制御構成がウィゼットの最後のセッションから再設定され、保安サーバーは、以前セッショントークンを取り消すように要請される。  ワンショットプロンプトのために、直接接続を要請するリソースに対して、ウィゼットプロセス６１０は、ウェブランタイム管理プロセス６０６にリソースに対する要請を伝送する。それでは、ウェブランタイム管理プロセス６０６は、ユーザに許可を承認することを要請する。もし、許可が承認されれば、ウェブランタイム管理プロセス６０６は、ウィゼットの代わりにオペレーションを行う。デモンによって制御されるリソースのために、ウィゼットは、ウェブランタイム管理プロセス６０６に特定許可のためのワンショットプロンプトを得るように要請する。ウェブランタイム管理プロセス６０６は、ユーザに要請する。もし、許可が承認されれば、ウェブランタイムプロセスは、保安サーバーから使い捨てトークンを得る。保安サーバー６０８は、ウィゼットがデモンの要請されたサービスをただ一度消費することができるようにトークンをただ一度検証する。同一のサービス／リソースに次回に接続を希望する場合、他のワンショットプロンプトを開始することが必要である。
【００４８】
この図面から分かるように、個別ウィゼット６１４は、個別ウィゼット自体に対応するローカルデータストア６１６に接続することができる。しかし、個別ウィゼットは、他のシステムファイル６１８または他のウィゼットに対応する地域データストア６２０に接続することができない。
【００４９】
図７は、本発明の実施例によるウィゼットの設置中に保安規則を生成するための段階の例示的なセットを示す。異なる標準組職（例えば、Ｗ３Ｃウィゼット、ＷＡＣウィゼットなど）に関連した異なる形式のウィゼットと、また異なるウィゼットランタイムシステムが存在する。しかし、一般的な保安モデル及び接近制御執行原則は、同様である。それ故に、本発明が異なる形式のウィゼット及びランタイムシステムに適用可能であるということが理解される。
【００５０】
ウィゼットは、ウィゼットパッケージ７００で分配される。これは、ＨＴＭＬ、ＣＳＳファイル、ジャバスクリプトコードなどのような他のファイル７０４によるマニフェストファイル７０２を含む。マニフェストファイルは、ウィゼットの名称、著作者情報、構成情報などのようなメタデータを含む。マニフェストファイルは、またそのウィゼットを運営するために要請される接近権限に関連したメタデータを含む。例えば、もし、ウィゼットがネットワークリソースまたはカメラのような、装置リソースに接続することが必要であれば、このウィゼットのマニフェストファイルは、必ずこのようなリソースを特定しなければならない。マニフェストの例のように、次の簡略化されたマニフェストファイルを考慮する：
【００５１】
<widget id= "http://quirksmoke.org/widget" dockable= "true">
<widgetname> Test widget</widgetname> 
<icon>pix/myIcon.gif</icon>
<width>200</width>
<height>200</height>
<security>
<access>
<host>quirksmode.org</host>
</access>
</security>
</widget>
【００５２】
単純化されたマニフェストファイルの実施例で、ウィゼットマニフェストファイル７０２は、名称、識別情報を含み、ネットワークに対する接近権限を特定する。この実施例で、ウィゼットは、ネットワークホスト“ｑｕｉｒｋｓｍｏｄｅ．ｏｒｇ”にリソースとして接続を要請する。それでは、この実施例で、特定されたネットワークホストリソースに対する接続は、〈ｓｅｃｕｒｉｔｙ〉及び〈ａｃｃｅｓｓ〉タグを利用して特定される。同様に、マニフェストファイルは、アドレスブックまたは連絡リストエントリー、位置情報などのような個人情報、カメラのような他のリソースに対する接続要請を含むことができる。
【００５３】
前述したように、ウィゼットの設置中に、ウェブランタイムモジュール７０６は、そのマニフェストファイル７０２を含むそのウィゼットのパッケージを処理７０８する管理プロセスを有する。その後、ウェブランタイムモジュール７０６は、有効な接近要請に関連したその承認された接近権限を識別して抽出する（ウェブランタイムシステムがその全体でウィゼットの設置及び実行の両方のためのコンポネントを含むものと理解されるが、ウェブランタイムモジュール７０６は、ウィゼットの設置と関連した全体ウェブランタイムシステムのうち少なくともこのようなコンポネントを含む。）。それでは、ウェブランタイムモジュール７０６は、ウィゼットに対して承認された接近権限のリストを含み、識別された権限に基づくこのウィゼットに対する接近制御規則７１０を生成する。これは、静的接近制御規則７１２及び非静的接近制御規則７１４との間の差異を作る。静的接近制御規則は、設置時間に決定されるか、または評価されることができるものである。それでは、非静的接近制御規則は、以後まで、すなわちランタイムまで、決定されることができないか、または評価されることができない規則である。ウィゼットに対する静的接近制御規則７１２は、運営体制／カーネル７２０及び／または適当な運営体制／フレームワークデモン／サービスのような、コンピュータシステムのより安全な部分に直接または間接で伝達される（７１６）。この実施例で、静的ウィゼット接近制御規則７１２は、全体システム７１８に対する接近制御規則を格納する領域に伝達される。
【００５４】
ウィゼットが作動したとき、ウェブランタイムモジュール７０６は、ウィゼットの実行のためのプロセスを生成するか、または、予約する。結果的に、ウィゼットは、他の活性化されたウィゼットから個別的で且つ分離したプロセスで実行される。ウィゼットの実行中に、保安検査及び執行は、運営体制カーネル及び他の関連したプロセスのより安全な部分７２０に委任される。一実施例で、ウェブランタイムモジュール７０６は、カーネル及び関連したプロセスのより安全な部分７２０に規則を生成し伝達することによって委任されるそんな形式の接近のための保安制御を必ず行わなくてもよい。他の実施例で、ウェブランタイムモジュール７０６は、ウィゼットＡＰＩ呼び出し上で規則的な（すなわち、従来の）保安検査を行う。それでは、検査の他の階層は、カーネル７２０によって行われる。ウィゼット接続がウェブランタイムモジュール検査に伝達されるとき、ウェブランタイムモジュールコードは、対応するリソースに接近するためのシステム呼び出しを発行（ｉｓｓｕｅ）する。それでは、カーネル７２０は、特定接近が許容されるか否かを把握するためにシステム呼出上で、検査、例えば、強制接近制御（ＭＡＣ）検査を行う。カーネル検査は、相変らず、例えば、設置中にウェブランタイムモジュール７０６によって生成された規則を基盤とする。この代案的な実施例において、ウェブランタイムモジュール７０６は、保安検査を委任しない。
【００５５】
一具現において、強制接近制御（ＭＡＣ）は、保安決定及び執行スキームの一部として使用される。一般的に、ウェブランタイムモジュール７０６によってカーネルに伝達された規則は、強制接近制御（ＭＡＣ）規則になることができ、カーネルは、その強制接近制御（ＭＡＣ）メカニズムを通じてこのような規則を執行する。これは、従来のウィゼット保安試みと比較して優れた保安保障を提供する。
【００５６】
図７に示された段階の多くの小さい変化がウィゼット、運営体制／カーネル、及びそのプラットホーム上で使用される保安メカニズムを考慮する具現の詳細事項によって含まれることができる。図７に示されたように、ウェブランタイムモジュール７０６は、設置する中にウィゼットパッケージ７００を処理し、ウィゼットの接近要請／必要を識別する。ウェブランタイムモジュール７０６は、このウィゼットによって承認された接近権限をコンパイル（ｃｏｍｐｉｌｅ、命令を翻訳して伝達）する。このプロセスは、ユーザ選好度、システム政策を検査する段階、または許可承認を確認を得るためにユーザにプロンプトする段階のような、他の段階を含むことができる。承認された許可、許可の単位（ｇｒａｎｕｌａｒｉｔｙ）などの一部の詳細事項は、異なるウィゼットシステムの間に異なり、よって、具現によって特定される（ｉｍｐｌｅｍｅｎｔａｔｉｏｎ−ｓｐｅｃｉｆｉｃ）。
【００５７】
ウェブランタイムモジュール７０６は、ウィゼットに対して承認された許可のリスト（または一部のリスト）をコンパイルした後、ウェブランタイムモジュール７０６は、このリストによって保安規則を生成する。ウェブランタイムシステムは、生成された保安規則をカーネルに伝達する。これは、プラットホーム上で使用される保安メカニズムの詳細事項及び運営体制／カーネルの特定によって多様な手段で発生することができる。例えば、ウェブランタイムシステムは、システム上で一般政策ファイルを更新するか、または、このような保安規則のカーネルを動的に通知するためにシステム呼び出しを発行することができる。一実施例で、ウェブランタイムモジュール７０６は、ウィゼットが駆動される中に、カーネルによって執行されることができる（リナックスシステムのためのＳＥＬｉｎｕｘ（Ｓｅｃｕｒｉｔｙ−Ｅｎｈａｎｃｅｄ  Ｌｉｎｕｘ）またはＳＭＡＣＫ規則またはリナックス上のネットワーク接近を制御するためのＩＰテーブル／ネットフィルタ（ｉｐｔａｂｌｅｓ／Ｎｅｔｆｉｌｔｅｒ）規則のような）強制接近制御（ＭＡＣ）規則を生成する。
【００５８】
図７をさらに参照すれば、以下、本発明及び従来のウェブランタイムシステム具現間の数個の差異について説明される。従来のウェブランタイムシステム具現は、ウィゼットパッケージを処理し、マニフェストファイルから接近要請を抽出し、ウィゼットに対する承認された接近権限のリストをコンパイルする。しかし、その後、それらは、例えば、データベースファイル（ＳＬＰ  ＷＲＴで行われるもののように）、または、接近規則を執行するウェブランタイムシステムのためにそれらを後で取り戻すためのウェブランタイムのためのファイルに許可リストを格納する。それらは、どんな強制接近制御（ＭＡＣ）規則も生成しないか、どんな規則もカーネルに伝達しない。それらは、また静的及び非静的規則間の区分を失敗し、本発明によってあらかじめ定められた方式で非静的規則を処理することを失敗する。ウィゼットの作動時に、従来のウェブランタイムシステムは、データベースからその許可リストを読み出し、保安検査を処理し、ウィゼット実行中に自体で執行されることもできる。一方、図６及び図７の実施例で、ウェブランタイムシステムは、保安サーバーのヘルプを有する非静的接近制御規則を処理するための、そして、そのウェブランタイムシステムによって従来に行われる保安検査の少なくとも一部を行うためのカーネルのためにカーネルに伝達することができる形式で静的接近制御規則を生成するために修正される。これは、従来のウェブランタイムシステム具現の相当な修正を要求する。ウィゼット保安検査を執行するためのカーネル具現強制接近制御（ＭＡＣ）規則を有するものの例で、この要請は、静的接近制御規則を強制接近制御（ＭＡＣ）規則に変換する。例えば、一具現で、ウェブランタイムシステムの修正は、次を含む：
【００５９】
・使用された強制接近制御（ＭＡＣ）技術及び運営体制の要求事項に特定された許可リストから強制接近制御規則を生成するためのアルゴリズムの具現、これは、生成された強制接近制御（ＭＡＣ）規則を運営体制／カーネルに伝達するためのコードによるアルゴリズムをウェブランタイムコードベースに追加される。
【００６０】
図８は、運営体制／カーネル上に伝達された規則に対してランタイムで保安規則を執行するための一般的な段階の実施例を示す。ウィゼットが作動するとき、ウェブランタイムモジュール８００は、他のアプリケーション及びウィゼットから分離した個別プロセス８０２でこれを行う。いずれか１つのウェブランタイムシステムがあれば、ウェブランタイムシステムの異なるコンポネントが存在することをこの技術分野における通常の知識を有するなら理解することができる。図８のウェブランタイムモジュール８００は、ウィゼット実行と関連したウェブランタイムシステムのうち少なくともコンポネントを含む。また、ウェブランタイムシステム管理プロセスは、カーネル８０４がそのプロセスで駆動されるウィゼットを区分するように、これにより、プロセス８０２の保安属性（例えば、ＳＥＬｉｎｕｘまたはＳＭＡＣＫラベル）を構成する。それでは、矢印８０６によって図示されたように、ウィゼットは、制御されたリソース−すなわち、先立ってウェブランタイムシステムによって生成され、システムに伝達された静的接近制御規則８０８を通じてカーネルによって制御されるリソースに対する接近を試みる。その後、ウェブランタイムモジュール８００は、矢印８１０に示されたように、保安検査を行うことなく、カーネルに関連したシステム呼び出しを発行する。すなわち、ウェブランタイムシステムは、静的規則の保安検査を運営体制／カーネル８０４に委任する。その後、カーネルは、矢印８１２に示されたように、システム呼出を調査し、ウィゼット静的接近制御規則８０８を検査する。次に、カーネルは、オペレーションを拒否すべきかまたは進行すべきか否かを決定する。そして、カーネルは、矢印８１４によって示されたように、ウェブランタイムモジュール８００に結果をリターンする。もし、接近が拒否されれば、カーネルは、エラーコードを一緒にリターンする。もし、接近が許容されれば、カーネルは、オペレーションを行い、その結果をリターンする。したがって、カーネルがこのウィゼットを実行するプロセスから呼出を受信すれば、これは、ウィゼットに対する接近規則を検査し、その呼出に対する詳細事項（例えば、パラメータ、呼出によって影響を受けることができる客体など）を調査し、その後、呼出を許容するか、または、拒否する。
【００６１】
ウィゼットの作動時に、従来のウェブランタイム具現は、例えば、データベースからのそれらそれぞれの許可リストを読み取り、ウィゼット実行中にそれら自体で保安検査及び執行を処理する。一方、本発明では、静的規則に対するこのような保安検査及び執行は、ウェブランタイムシステムから除去され、保安サーバーと一緒に非静的規則がウェブランタイム管理プロセスによって処理される中に、責任がカーネルに委任される。ウェブランタイムシステムは、既にカーネルに伝達された強制接近制御（ＭＡＣ）規則に関連したどんな検査も行わない。その代わりに、これは、それらを制止することなく、いつも通過される関連した要請を許容する。このような規則に対する実際保安制御は、カーネルによって処理される。これは、このような従来の保安検査を除去するために既存のウェブランタイムシステムを修正することが要求される。さらに、運営体制（ＯＳ）及び強制接近制御（ＭＡＣ）技術によって、ウィゼットを実行するすぐ前に、ウィゼットプロセスの保安コンテクスト（例えば、強制接近制御（ＭＡＣ）主体ラベル）を構成するために、ウェブランタイムシステムに追加される追加コードが要請される。
【００６２】
前述したように、カーネルは、強制接近制御（ＭＡＣ）メカニズムを通じてウィゼット接近を制御することができる。一部の例示的なメカニズムが論議されるが、他のメカニズムもまた使用されることができることを理解しなければならない。一実施例において、ウィゼットは、ネットワーク接続許可を受けなかったと仮定する。すなわち、そのマニフェストは、ネットワークに接続するためのどうな要求条件も特定しないか、または、与えられることができるネットワーク接近に特別な要請をしないと仮定する。ウェブランタイムシステムは、このウィゼットは、ネットワークに接近することが禁止されなければならないこのウィゼットのマニフェストを処理するときを認知することができるようにプログラムされる。この例で、ウェブランタイムシステムは、保安コンテクスト（例えば、ＳＭＡＣＫまたはＳＥＬｉｎｕｘラベル）をこのウィゼットに割り当てて（すなわち、ウィゼットを実行するプロセスに対して）、このウィゼットから任意のネットワーク接近要請を禁止するための強制接近制御（ＭＡＣ）規則を生成する（または、使用されている強制接近制御（ＭＡＣ）システムによって、ウェブランタイムシステムは、ネットワーク接続を許容するためのどうな規則も生成しない）。ウェブランタイムシステムは、この情報（保安コンテクスト＋強制接近制御（ＭＡＣ）保安規則）をカーネルに伝達する。もし、ウィゼットがランタイム時にネットワークリソースに接近を試みれば、カーネルは、ネットワークに対する接近を要請するこのウィゼットのプロセスからシステム呼出を受信する。そのカーネルは、プロセスの保安コンテクストを検査し、接近は、必ず拒否されなければならないことを認知する。これは、システム呼出を行わず、呼出プロセスにエラーメッセージをリターンする。
【００６３】
以下、ウィゼットがプラットホーム上の位置情報（例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）位置情報）に接近するための許可を有しないと仮定する。また、ＧＰＳ情報の配布を処理するこのプラットホーム上のシステムデモンが存在すると仮定する。さらに詳細には、ただこのデモンだけがＧＰＳハードウェアに接近を有し、すべての他のプロセス／アプリケーションは、ＧＰＳデータを得るためにこのデモンに対して要請を伝送することが必要である。ウェブランタイムシステムは、このウィゼットがＧＰＳ情報に接近することを禁止されなければならないウィゼットのマニフェストを処理する時を把握している。ウェブランタイムシステムは、保安コンテクスト（例えば、ＳＭＡＣＫまたはＳＥＬｉｎｕｘラベル）をこのウィゼットに割り当て（すなわち、ウィゼットを実行するプロセスに対して）、このウィゼットがＧＰＳデモンと通信することを禁止するための強制接近制御（ＭＡＣ）規則を生成する（または、使用されている強制接近制御（ＭＡＣ）システムによって、ウェブランタイムシステムは、ネットワーク接続を許容するためのどうな規則も生成しない）（例えば、ウィゼットプロセス及びデモン間のＩＰＣ（Ｉｎｔｅｒ−Ｐｒｏｃｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を禁止する）。ウェブランタイムシステムは、この情報（保安コンテクスト＋強制接近制御（ＭＡＣ）保安規則）をカーネルに伝達する。もし、ウィゼットがランタイム時に位置情報を得るためにＧＰＳデモンと通信を試みたら、カーネルは、そのデモンと通信するためのウィゼットのプロセスからシステム呼出を受信する（例えば、ＩＰＣ呼出）。カーネルは、ウィゼットプロセス及びＧＰＳデモンの保安コンテクストを検査し、その接近が拒否されなければならないことを認知する。システム呼出は、行われず、プロセスにエラーメッセージをリターンする。
【００６４】
他方、この実施例で、もし、ウィゼットがＧＰＳ情報を接近するようにする許可に対して承認を受ければ、ウェブランタイムシステムは、ウィゼットプロセス及びＧＰＳデモン間のＩＰＣを許容する規則を生成する（または、これを禁止するためのどんな規則も生成しない）。このウィゼットがランタイム時にＧＰＳデータに接近するために試みるとき、カーネルは、デモンと通信するためのウィゼットのプロセスからシステム呼出（例えば、ＩＰＣ呼出）を受信する。カーネルは、ウィゼットプロセス及びＧＰＳデモンの保安コンテクストを検査し、接近が承認されなければならないことを認知する。システム呼出が進行される。
【００６５】
好ましい実施例において、カーネルレベルの強制接近制御（ＭＡＣ）は、保安決定及び執行のために使用される。コンピュータ保安において、強制接近制御（ＭＡＣ）は、運営体制が客体（ｏｂｊｅｃｔ）またはターゲット（例えば、特定ファイル、ネットワークリソースまたはハードウェアコンポネント）上で一部種類のオペレーションを一般的に行うための、または、客体またはターゲットに接近するための主体（ｓｕｂｊｅｃｔ）または開始子（ｉｎｉｔｉａｔｏｒ）（例えば、ウィゼットを実行するプロセス）の能力を制限する接近制御の形式である。実際に、主体は、一般的にプロセスまたはスレッドである；客体は、ファイル、ディレクトリー、伝送制御プロトコル／ユーザデータグラムプロトコル（ＴＣＰ／ＵＤＰ）ポート、共有されたメモリセグメントなどのような構造体である。主体及び客体それぞれは、保安属性のセットを有する。主体が客体に接近を試みる度に、運営体制カーネルによって強制される許可規則は、このような保安属性を検査し、接近が行われることができるか否かを判断する。任意の客体上の任意の主体による任意のオペレーションは、該オペレーションが許可されるか否かを決定するために許可規則のセット（例えば、政策）に対してテストされる。
【００６６】
異なる運営体制に適用されることができる多様な強制接近制御（ＭＡＣ）技術が存在する。リナックス（Ｌｉｎｕｘ）は、公式バージョンカーネル（ｍａｉｎｌｉｎｅ  ｋｅｒｎｅｌ）に具現された４個の異なる主要強制接近制御（ＭＡＣ）メカニズム−ＳＥＬｉｎｕｘ、Ｓｍａｃｋ、Ｔｏｍｏｙｏ及びＡｐｐＡｒｍｏｒ−を有する。それらは、すべて同一であるか、または類似な原則に基礎するにもかかわらず、それらのアキテクチャー、能力及び使用は、顕著な差異を示す。
【００６７】
先立って言及されたように、ウェブランタイムシステム及び単位（ｇｒａｎｕｌａｒｉｔｙ）の詳細レベルでの運営体制（ＯＳ）具現で多くの潜在的な変形が存在する。したがって、具現詳細事項は、どれほど多い保安検査がカーネルに対して除去されることができるかを決定する。ウィゼットシステム及び運営体制（ＯＳ）の組合によって、一部のウィゼット活動は、カーネルシステム呼出に対して正確に翻訳／マッピングしないことがある。そのような場合において、カーネルは、ウィゼットシステムによって要求されるもののような細かい（ｆｉｎｅｇｒａｉｎｅｄ）保安制御を提供しないことがある。このような状況を扱うために、ウェブランタイムシステムは、どんなウィゼット活動がシステム呼出を調査することを通じてカーネルによって制御されることができるかを識別するようにプログラムされることができる。その後、ウェブランタイムシステムは、ただ制御のサブセットをカーネルに委任する。もし、カーネルまたは運営体制（ＯＳ）が一部のウィゼット活動のための十分な保安制御を提供することができなければ、それでは、ウェブランタイムシステムは、運営体制／カーネルによって処理されることができない制御を処理することが必要である。したがって、原則的に、カーネルが、保安検査をカーネルに委任することができることを検査することに基礎した粗いレベルの単位（ｇｒａｎｕｌａｒｉｔｙ）で提供するうちに、ウェブランタイムシステムが単位（ｇｒａｎｕｌａｒｉｔｙ）の微細レベルで保安検査／制御を提供する状況が存在する。そのようなシナリオで、一部の加工がウェブランタイムシステムに対して作われることができる。これは、ウェブランタイムシステムが運営体制（ＯＳ）／カーネルによって満足に制御される活動に対応するこのような接近制御規則を運営体制（ＯＳ）／カーネルに伝達することを含む。ウィゼットのランタイム中に、これは、どんな保安検査も行わず、カーネル／運営体制に伝達するウェブランタイムシステムに対応し、ただそれらは、運営体制／カーネルによって満足に制御されることができるウィゼットのための関連した活動を保安検査することに対応することを要請する。運営体制／カーネルによって満足に制御されることができない活動または要請は、ウェブランタイムシステム自体で処理されることができる。
【００６８】
代案的に、ウェブランタイムシステムは、異なる階層の検査がカーネルによって行われるうちに、ウィゼットＡＰＩ呼出上で従来の保安検査を行う。ウィゼット接近がウェブランタイム検査に伝達されるとき、ウェブランタイムコードは、対応するリソースに接近するためのシステム呼出を発行（ｉｓｓｕｅ）する。それでは、カーネルは、もし、特定接近が許容されるか否かを認知するために、システム呼出上で、検査、例えば、強制接近制御（ＭＡＣ）検査を行う。このようなことの代案において、ウェブランタイムシステムは、保安検査を委任しない。
【００６９】
本発明の多くの変形及び多様な実施例が考慮された。図９を参照すれば、一実施例において、保安規則の生成は、設置中ではなく、作動時に行われる。例えば、ウェブランタイムシステム管理プロセス９００は、ウィゼットパッケージを処理することができ、矢印９０２によって指示されるように、マニフェストファイルから接近要請を抽出することができる。その後、ウェブランタイムシステムは、規則を生成し、ユーザがこれを作動させることを希望するとき、ウィゼットを実行することを開始するすぐ前に生成された規則を運営体制９０４に伝達する。図７の実施例との重要な差異点は、矢印９０６によって図示される。これは、ウィゼット及びウィゼットコードを駆動するために新しいプロセスで生成された管理プロセスを示す。そして、データは、新しいプロセスから取り戻し、そして、ウィゼット実行が開示される。
【００７０】
他の実施例において、ウェブランタイムシステムは、規則生成を他のエンティティー（例えば、運営体制サービスまたはプロセス）に委任することができる。この実施例で、ウェブランタイムシステムは、マニフェストファイル、そして他の関連した情報をこのエンティティーに伝達することができる。このエンティティーは、規則生成及び政策を更新することを処理する。（すなわち、規則をカーネルに伝達する。）
【００７１】
前述したように、好ましい実施例において、保安執行は、ウェブランタイムシステム保安検査実行の保安弱点を除去するために、カーネルによって強制接近制御（ＭＡＣ）メカニズムを通じて処理される。しかし、運営体制デモン及び／または保安トークンを利用するようにするもののように、コンピュータシステムのより安全な領域がウィゼットの保安検査を処理する他の方式も可能である。代案的な実施例は、図１０及び図１１に示されたような多様な異なる方法でこれを実現することができる。保安検査及び執行は、保安トークンに依存することができる。各ウィゼットは、その接近権限を示す保安トークンを有する。
【００７２】
図１０に示されたように、設置する中にまたは作動する中に、ウェブランタイムシステムは、ウィゼットパッケージを処理し、矢印１０００によって指示されるもののように、マニフェストファイルから接近要請を抽出する。その後、ウェブランタイムシステムは、ウィゼットに対して承認された接近権限のリストをコンパイルし、また、矢印１００２によって示されたように、トークン生成及び検証デモン１００４からの承認された権限に対する保安トークンを要請する。そのデモンは、適当な保安トークンを生成し、矢印１００６が指示するものように、これをウェブランタイムシステムにさらに伝達する。その後、ウェブランタイムシステムは、矢印１００８によって指示されたもののように、以後の使用のために保安トークンを格納する。
【００７３】
そのようなトークンは、信頼されるパーティー（ｔｒｕｓｔｅｄ  ｐａｒｔｙ）（例えば、ウェブランタイムシステムまたはシステムデモン）によって生成され、信頼されるパーティー（例えば、ウィゼット）によって不当に変更されることから保護され、本物であり、検証可能であり、そして、他のエンティティー（例えば、システムサービス）がウィゼットの接近権限を検査するように許容することが必要である。
【００７４】
図１１は、保安トークンがウェブランタイムシステムによってあらかじめ格納されることを示す使用実施例である。プラットホームは、トークン−基盤保安フレームワークを使用し、また、例えば、ＧＰＳ、センサーなどに接近するための多様なシステムまたは運営体制フレームワークデモンを有すると仮定する。このプラットホーム上で駆動するウィゼットは、ＧＰＳデータに接近することを希望する。ウェブランタイムシステムは、ＧＰＳデータに対する接近を要請し、矢印１１０２によって示されたように、ＧＰＳサービスデモン１１００に対する要請に保安トークンを添付する。ＧＰＳデモン１１００は、要請を受信し、保安トークンを検査する。これは、ウィゼットが要請されたデータに対する接近のための権限を必要とするか否かを検査するために、トークンをトークン生成及び検証デモン１１０６に伝送すること（矢印１１０４）を含む。トークン生成及び検証デモン１１０６は、ウィゼットが接近が承認されることができ、ＧＰＳデモン１１００に対して許容／拒否決定をさらにリターンすることができるかを決定するために、受信されたトークンを検査する。ＧＰＳサービスデモン１１００は、矢印１１０８によって指示されるもののように、メッセージをリターンする。もし、このウィゼットが（保安トークンで指示されるように）ＧＰＳデータに対する接近のための許可を有していれば、ＧＰＳサービスデモン１１００は、要請を履行し、要請された結果をリターンする。そうではなければ、ＧＰＳサービスデモンは、要請を行うことを拒否し、エラーメッセージを送り返す。
【００７５】
図１２は、本発明の実施例によるウィゼットの保安執行を提供するための方法を示す流れ図である。１２００段階で、接近制御情報は、サービスを要請するウィゼットプロセスから抽出されることができる。１２０２段階で、接近制御規則は、生成されることができる。１２０４段階で、接近制御規則は、ウェブランタイムシステムのユーザコード空間外部のコンピュータシステムの信頼される部分に提供されることができる。それでは、１２０６段階〜１２１０段階は、処された状況によってそれぞれの接近制御規則に対して実行されることができる。１２０６段階で、接近制御規則が静的であるかあるいは非静的であるか否かが決定されることができる。もし、静的なら、１２０８段階で、ウィゼットプロセスの保安検査は、ウェブランタイムシステムからコンピュータシステムの信頼された部分に委任されることができる。もし、非静的なら、１２１０段階で、使い捨てトークンが保安サーバー以前に、要請されることができる。ここで、使い捨てトークンは、要請されたサービスに対するウィゼットプロセスが消費した後、満了する。
【００７６】
この技術分野における通常の知識を有する者なら誰でも理解するように、前述した例示的なアキテクチャーは、プロセッサによって実行されることができるプログラム命令、ソフトウェアモジュール、マイクロコード、コンピュータ読み取り可能な媒体上のコンピュータプログラム製品、消費者電子装置などのように多くの方法で具現されることができ、そして、無線装置、無線送信機／受信機及び無線ネットワークの他の部分を利用することができる。さらに、多重電子ディスプレイスクリーン上にマルチメディアコンテンツをディスプレイするための開示された方法及びシステムの実施例は、完全なハードウェア実施例、完全なソフトウェア実施例、または、ソフトウェア及びハードウェア両方の要素を含む実施例の形態を取ることができる。
【００７７】
用語“コンピュータ読み取り可能な媒体”は、メインメモリ、二次メモリ、脱着可能なストレージ 、ハードディスク、フラッシュメモリ、ディスクドライブメモリ、ＣＤ−ＲＯＭ及び他の形式の永久的なメモリのような媒体を一般的に示す。本発明の多様な方法を運営するための実行可能なコンピュータコードを含むストレージ装置を説明するために使用されることができ、プログラム格納装置は、搬送波または信号のように、一時的な主題をカバーするために解釈されないことがあることを認知しなければならない。プログラムストレージ装置及びコンピュータ読み取り可能な媒体は、メインメモリ、二次メモリ、脱着可能なストレージディスク、ハードディスクドライブ、及び有形のストレージ装置またはコンポネントのように、媒体を示すために一般的に使用される用語である。
【００７８】
本発明のただ一部の実施例が詳細に説明されたが、本発明は、本発明の思想または範囲を逸脱することなく、多くの異なる形態に具現されることもできることを理解しなければならない。したがって、本発明の実施例は、制限のためのものではなく、説明のために考慮されなければならないし、本発明は、本文献に与えられた詳細によって制限されない。しかし、本発明は、添付の請求範囲と同等なもの、そしてその範囲内で変形されることもできる。
【符号の説明】
【００７９】
６００  パッケージ管理者
６０２  メニュー画面
６０４  ＡＵＬ
６０６  ウェブランタイム管理プロセス
６０８  保安サーバー
６１０  ウィゼット
６１２  システムデモン
【図１】
2014524606.tif 000008
【図２】
2014524606.tif 000009
【図４】
2014524606.tif 000010
【図５】
2014524606.tif 000011
【図６】
2014524606.tif 000012
【図７】
2014524606.tif 000013
【図８】
2014524606.tif 000014
【図９】
2014524606.tif 000015
【図１０】
2014524606.tif 000016
【図１１】
2014524606.tif 000017
【図１２】
2014524606.tif 000018
【図３】
2014524606.tif 000019
【国際調査報告】
2014524606.tif 000020
2014524606.tif 000021