JP2007183969A - 保護ドメインに基づいたセキュリティ用の方法及び装置 - Google Patents

保護ドメインに基づいたセキュリティ用の方法及び装置 Download PDF

Info

Publication number
JP2007183969A
JP2007183969A JP2007001432A JP2007001432A JP2007183969A JP 2007183969 A JP2007183969 A JP 2007183969A JP 2007001432 A JP2007001432 A JP 2007001432A JP 2007001432 A JP2007001432 A JP 2007001432A JP 2007183969 A JP2007183969 A JP 2007183969A
Authority
JP
Japan
Prior art keywords
application instance
application
access
protection domain
context
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007001432A
Other languages
English (en)
Other versions
JP5013882B2 (ja
Inventor
Thierry Violleau
ビオロ チアリ
Tanjore S Ravishankar
エス. ラビシャンカー タンジョール
Matt Hill
ヒル マット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2007183969A publication Critical patent/JP2007183969A/ja
Application granted granted Critical
Publication of JP5013882B2 publication Critical patent/JP5013882B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】保護ドメインに基づいたセキュリティ用の方法及び装置を提供する。
【解決手段】実行された場合にアプリケーションインスタンスを発生する1組のアプリケーションコードと関連するクリデンシャル(例えば、署名済証明書)に基づいて、第一アプリケーションインスタンスを保護ドメインと関連付け、第一実行コンテキスト内において実行する。第一アプリケーションインスタンスが第二実行コンテキストと関連している保護されている機能性へのアクセスをシークしていることの表示を受取ることに応答して、第一アプリケーションインスタンスが該保護されている機能性へアクセスするためのパーミッションを有しているか否かの決定が行われる。
【選択図】図1A

Description

本発明はセキュリティ技術に関するものであって、更に詳細には、保護ドメインに基づいてセキュリティを提供する方法及び装置に関するものである。
互いに及びライブラリ及びランタイム環境等のその他のソフトウエアとインタラクト即ち相互作用することを必要とする複数のソフトウエアアプリケーションを有する多数の計算環境が存在している。ファイアウォール等は該アプリケーション又はその他のソフトウエアを保護するための1つの技術である。ファイアウォールの1つのタイプは、それ自身の実行コンテキストにおいて各アプリケーション(又はアプリケーションの束)を実行する。例えば、幾つかの計算環境は、アプリケーション実行コンテキストの分離をサポートしている。
アプリケーション実行コンテキストの分離とは、その他のアプリケーションが明示的にアクセス用のインターフェースを提供するものでない限り、1つのアプリケーションが別のコンテキストにおけるアプリケーションにより所有されているオブジェクト又はデータへアクセスすることができないことを意味している。コンテキスト分離は、ファイアウォールにより実施することが可能である。例えば、オブジェクトのインスタンスへのアクセスは、そのオブジェクトインスタンスが作成された同一のコンテキスト(所有コンテキスト)において実行するアプリケーションに対してのみ許可される。アプリケーションは、ファイアウォールをバイパスする共有可能なインターフェースオブジェクト(SIO)の形態でその他のアプリケーションがアクセスするためのインターフェースを提供することが可能である。オブジェクト所有制御に加えて、オブジェクトがアクセスされる場合に、その他の言語アクセス制御を実施することが可能である。
コンテキスト分離は、保護されているデータ又はオブジェクトに対して粗粒度アクセス制御を可能とする。例えば、保護されているオブジェクト又はデータは、スマートカード等のプラットフォームと関連付けることが可能である。スマートカードは、クレジットカードに類似しており且つ埋設されている集積回路(IC)を包含しているカードである。スマートカードは、設計上高度に安全であり、且つ不正変更した場合にはそれが包含する情報を破壊することとなる。スマートカードは、典型的に、安全な処理及び格納のためにマイクロプロセッサ及びメモリを具備している。スマートカードに類似しているがスマートカード以外のフォームファクタにある技術も存在している。このような関連技術の例はスマートボタン(smart button)及びUSBトークンである。これらのその他の技術は、スマートカードと同様の機能に対して使用することが可能である。USBトークンは、PCのUSBポート内に直接プラグインすることが可能である。スマートカード及びUSBトークンは、スマートカードと同様のプログラミング能力を提供し且つ耐不正変更特性を有している。
従って、プラットフォーム機能性又は別のアプリケーションにより提供される機能性又はサービスへのアクセスは、コールを行うアプリケーションのコンテキストに基づいてのみ許可される。例えば、ランタイム環境(RE)機能性又は別のアプリケーションにより提供される機能性又はサービスへのアクセスは、コールを行うアプリケーションのコンテキストに基づいてのみ許可される。然しながら、コンテキスト分離は、細粒度プラットフォーム保護又は該プラットフォームにより実施されるアプリケーション機能保護を許容するものではない。
制限された環境下において、セキュリティのより精細な粒度の制御が可能である場合がある。例えば、アプリケーションのアイデンティフィケーション即ち識別を検査することによりより精細な粒度制御が可能な場合がある。特定の例として、スマートカードアプリケーションクライエントがそのサーバーが許可するものであるか否かをサーバーアプリケーションがプログラムにより検査することが可能である。然しながら、この検査は、それが、典型的に、アプリケーションクライエントの識別にのみ基づいているという点において制限されている。
ポリシーベースアクセス制御はランタイム環境(RE)、アプリケーション又はライブラリにより提供される機能性を保護することを許容する。該保護されている機能性は、その保護されている機能性をインプリメントするコードからなるブロック、オブジェクト指向プログラミングの意味における保護されているオブジェクト、又は保護されているデータとすることが可能である。
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、セキュリティを提供する改善された技術を提供することを目的とする。尚、このセクションにおいて記載する手法は追求することが可能であるが、必ずしも、以前に着想されたか又は追及された手法ではない。従って、本明細書において特にそうでない旨が表示されない限り、このセクションにおいて記載される手法は本願特許請求の範囲に対する従来技術ではなくこのセクションにおいて包含されることにより従来技術であることを認めるものではない。
本明細書においては、セキュリティを提供する手法を記載する。1実施例によれば、実行された場合に、アプリケーションインスタンスを発生する1組のアプリケーションコードと関連しているクリデンシャル(credential)(例えば、証明書)に基づいて第一アプリケーションインスタンスが保護ドメインと関連付けられる。該第一アプリケーションインスタンスは第一実行コンテキストにおいて実行し、尚、該第一実行コンテキストはファイアウォールによりその他の実行コンテキストから分離されている。該第一アプリケーションインスタンスが第二実行コンテキストと関連している保護されている機能性へのアクセスをシークすることの表示が受取られる。該保護されている機能性へのアクセスは、そのアクセスをシークする実体が1組の1つ又はそれ以上の保護ドメインにおける1つの保護ドメインに属するものである場合に許可される(上述した保護されている機能性へのアクセスに対するパーミッション(permission)を許可する)。該表示を受取ることに応答して、該第一アプリケーションインスタンスが該保護されている機能性へアクセスするためのパーミッションを有しているか否かの決定がなされる。その決定は、該第一アプリケーションインスタンスが関連している保護ドメインを決定し、且つ該第一アプリケーションインスタンスが関連している該保護ドメインが該1組の1つ又はそれ以上の保護ドメイン内にあるか否かを決定することにより行われる(上述した保護されている機能性へのアクセスに対するパーミッションを許可する)。
ここに記載するシステム及び方法は、コンテキスト分離を使用した保護ドメインに基づいたセキュリティに関するものである。説明の便宜上、種々のシステム及び方法の完全なる理解を与えるために多数の特定の詳細について説明する。然しながら、ここに記載するシステム及び方法はこれらの特定の詳細なしで実現することが可能であることは明かである。従って、本明細書及び図面は制限的な意味ではなく例示的なものとみなすべきである。
セキュリティモデル外観
本発明の1実施例に基づくセキュリティモデルは、コンテキスト分離に基づいたセキュリティモデルと共に保護ドメインに基づいたセキュリティモデルを提供する。該セキュリティモデルは、スマートカードプラットフォームに対して提供することが可能である。然しながら、該セキュリティモデルはスマートカードプラットフォームに制限されるものではない。スマートカードプラットフォームの1例はジャバ(Java)(登録商標)カードプラットフォームであるが、本発明はそのように制限されるものではない。
1実施例において、成功裡にインストールされたアプリケーションは保護ドメイン及び実行コンテキストに束縛されている。従って、保護ドメインは間接的に実行コンテキストと関連している。従って、本発明の1実施例によって、保護ドメインに基づいたセキュリティモデルとコンテキスト分離に基づいたセキュリティモデルとのシームレスな統合が提供される。
1実施例において、保護ドメインに基づいたセキュリティモデルは、プラットフォーム機能性を包含するプラットフォームオブジェクト用のパーミッションを包含している。例えば、該パーミッションはランタイム環境(RE)に関連することが可能である。然しながら、該パーミッションはその他の環境に対して適用可能である場合がある。特定の例として、パーミッションは、スレッド、共用可能なインターフェースオブジェクト(SIO)ルックアップ等のプラットフォーム機能性、及びライブラリ機能性に関して提供される。パーミッションターゲット及びパーミッションアクションでの細粒度のパーミッション検査をサポートする向上されたセキュリティモデルが本発明の1実施例に基づいて提供される。
本発明の1実施例は、アプリケーション毎に基づいて、プラットフォーム保護機能性、ライブラリ保護機能性、及びサーバーアプリケーション保護機能性に対するアクセスを許可する方法である。1つの側面において、パーミッション検査はコンテキストスイッチ時にSIOに関してトランスペアレントに実施される。例えば、コンテキストスイッチは、第一実行コンテキストと関連するオブジェクトが第二実行コンテキストと関連するオブジェクトへのアクセスをシークする場合に発生する。ファイアウォールは、コンテキストスイッチを検知すると自動的にパーミッション検査を起生させ、それによりトランスペアレントなパーミッション検査を起生させる。
別の側面においては、SIOに関してのパーミッション検査が、保護されている機能性を所有するアプリケーションにより明示的に(プログラム的に)実施される。このことは、該アプリケーションが付加的なパーミッション検査を要求することを許容する。プログラマチック(programmatic)即ちプログラムによるパーミッション検査は細粒度を可能とさせる。該パーミッション検査は、又、ライブラリ保護機能性に関して明示的に(プログラム的に)実施することが可能である。
プログラム的なパーミッション検査は、1つの側面において、メソッドを呼出す保護されている機能性を所有するアプリケーションにより開始される。別の側面においては、プログラム的パーミッション検査は保護されている機能性を所有するアプリケーションにおける開発者が提供するメタデータに基づいて開始される。トランスペアレントであるか又はプログラム的であるかに拘わらず、パーミッション検査は、認証を検査する場合等の多くのタイプのセキュリティ制約検査を可能とさせる。
保護ドメイン及びコンテキスト分離外観
図1Aは本発明の1実施例に基づいてコンテキスト分離と共に使用される保護ドメインに関連する要素間の関連性を例示したブロック図である。保護ドメイン110はアプリケーション束104に対して許可することが可能な1組のパーミッション116を定義する。保護ドメイン110はポリシーコンフィギュレーション131により記載される。例えば、保護ドメイン110におけるパーミッション116は、セキュリティポリシーを実現するためにGUI等により特定することが可能である。保護ドメイン110は保護ドメインクリデンシャル(例えば、証明書)114と関連している。保護ドメインクリデンシャル(例えば、ルート証明書)はアプリケーション束104を検証し且つ認証することが必要な場合がある装置により暗示的に信用される保護ドメインと関連しているクリデンシャルである。
アプリケーション束104からロードされたアプリケーションインスタンス108が保護されている機能性(例えば、保護されているオブジェクト)へのアクセスに対するパーミッションを有しているか否かを検査する場合に、そのパーミッション検査は、アプリケーション束104が属する保護ドメインに基づいて決定することが可能である。例えば、1組の保護ドメインにおける保護ドメインのうちの1つに属するアプリケーションはそのオブジェクトへアクセスすることが許容される。
アプリケーション束104はアプリケーション署名者のクリデンシャル(例えば、証明書)112に基づいて保護ドメイン110へ束縛されている。アプリケーション束104は保護ドメインクリデンシャル114のうちの1つに対して認証することが可能なクリデンシャル112で署名すべきである。
アプリケーション束をインストールするために、該アプリケーション束は信用を確立するために認証されるべきである。これは、アプリケーション実行期間中に成功裡にインストールされたアプリケーションのパーミッションを検査することとは別の初期的プロセスである。署名済アプリケーション束は、該アプリケーション束の署名者を認証し且つ該アプリケーション束を該保護ドメインにおいて許容されるパーミッションを許可することにより該アプリケーション束が保護されている機能性を実施することを承認する保護ドメインへ束縛することにより信用されることが可能となる。1実施例においては、署名済アプリケーション束は、署名者証明書から/を包含する保護ドメインルート証明書のうちの1つへの証明書経路を見つけることが可能である場合に認証することが可能である。認証されると、アプリケーション束が要求したパーミッションが保護ドメインパーミッションと比較される。該アプリケーション束は、該1組のパーミッションが保護ドメインパーミッションのサブセットである場合にのみ、インストールされ且つ該保護ドメインへ束縛される。
各アプリケーション束104に対して実行コンテキスト102(「コンテキスト(context)」)が作成される。実行コンテキストを作成する1つの技術は、該実行コンテキストにおいてインスタンス化される各オブジェクトに対し同一のコンテキスト識別子を割当てることであり、その場合に、該コンテキスト識別子は他の全ての実行コンテキストから異なるものである。実行コンテキスト102は、実行コンテキスト102におけるオブジェクトへのアクセスをシークするアプリケーションのコンテキスト識別子が実行コンテキスト102に対するコンテキスト識別子と一致することを検証することにより保護することが可能である。1実施例においては、この検証をインプリメントするためにファイアウォールが使用される。アプリケーション束104は1つ又はそれ以上のアプリケーションモジュール106を有することが可能である。1実施例において、アプリケーション束104における1組のアプリケーションモジュール106(最大で全てのモジュール106を包含する)全てが共通コンテキスト102において実行する。アプリケーションモジュール(アプリケーションインスタンス)108のランタイムインスタンス108は実行コンテキスト102において実行する。注意すべきことであるが、アプリケーション束106と関連する多くのアプリケーションインスタンス108は1つの実行コンテキスト102において実行することが可能である。
注意すべきことであるが、保護ドメイン110は、アプリケーション束104の保護ドメイン110と実行コンテキスト102との両方への関連性の結果として、実行コンテキスト102と関連している。更に注意すべきことであるが、アプリケーション束104と実行コンテキスト102との間には1対1の関係が存在している。然しながら、保護ドメイン110と実行コンテキスト102との間には1対多数の関係がある。従って、特定の保護ドメイン110は多くの異なるアプリケーション束104と関連することが可能である。
従って、保護ドメインは、どのアプリケーションが保護されている機能性(例えば、オブジェクト)へのアクセスをシークするかに基づいて保護することが可能である。即ち、アプリケーションの夫々の保護ドメインに基づいて、1つのアプリケーションは保護されている機能性(例えば、オブジェクト)へのアクセスが許容されるが、別のアプリケーションは許容されないものとすることが可能である。更に、保護ドメインは、「パーミッションターゲット及びアクション」という表題のセクションの下で以下に説明するように、シークされるアクセスのタイプに基づいて保護することが可能である。
1実施例において、アプリケーションが保護されている機能性へのアクセスをシークする場合に、そのアプリケーションのパーミッション116が、ファイアウォール103、アプリケーションインスタンス108、ランタイム環境(RE)123、又はその他のコードにより呼出すことが可能なアクセスコントローラ105により検査される。
次に図1Bを参照すると、アプリケーション108はアプリケーションクリデンシャル111を具備するその他のものに対し認証を行う。個別的なアプリケーションモジュールとしてパッケージ化されているアプリケーション束104における各アプリケーションは、別個のアプリケーション実行コンテキストへ束縛させることが可能であり、アプリケーションインスタンス108間での直接的なコールを阻止する。アプリケーション実行コンテキストについては後述する。アプリケーション束104における全てのアプリケーションは共通の保護ドメイン110へ束縛されている。アプリケーション束104における全てのアプリケーションは共通コンテキスト102において実行することが可能である。
未だに図1Bを参照すると、アクセスコントローラ105はアプリケーション記述子121により記述されるセキュリティ制約119を実施する。アクセスコントローラ105は、アプリケーション108、ファイアウォール103、又はランタイム環境/システムライブラリ/コンテナコード(container code)125により呼出すことが可能である。図1Bは、アプリケーションインスタンス108がURI133により識別され且つアプリケーション束104がURI133の下にデプロイされることを図示している。
パーミッション外観
パーミッションは、1実施例に基づいて、トランスペアレントに検査される。例えば、より詳細に以下に説明するように、パーミッションは、実行コンテキストにおける変化によって自動的に検査させることが可能である。ファイアウォール103は、1つの側面においては、保護されている機能性の実行コンテキスト外部からの保護されている機能性へのアクセスがシークされる場合にはいつでもトランスペアレントにパーミッションを検査する。特定の例として、1つのコンテキストにおいて実行している第一アプリケーションインスタンスが別のコンテキストにおいて実行している第二アプリケーションインスタンスのSIOにより露呈されているオブジェクトへのアクセスをしようとする場合には、第二コンテキストを保護するファイアウォールが第一アプリケーションに対してのパーミッション検査を自動的に喚起する。
パーミッションはプログラム的に検査することが可能であり、そのことはより詳細に以下に説明するように細粒度制御を提供することが可能である。例えば、アプリケーションインスタンス108、ランタイム環境123、ライブラリ、又はその他のコードは、プログラム的にパーミッションを検査することが可能である。特定の例として、前述した第二アプリケーションインスタンスは第一アプリケーションインスタンスに対するパーミッションを検査させるためのメソッドを喚起即ち呼出すことが可能である。1実施例によれば、プログラムによってパーミッション検査を要求するソフトウエアメソッドは3つの引き数、即ち、パーミッションの名前又はタイプ、オプションのパーミッションターゲット、及びオプションのパーミッションアクションを有している。パーミッションターゲット及びアクションについては次のセクションで説明する。1実施例によれば、第二アプリケーションは、第二アプリケーションにより露呈されている機能性(例えば、オブジェクト)へアクセスするためには、第一アプリケーションが属さねばならないドメインを特定することが可能である。1実施例によれば、該第二アプリケーションは、第二アプリケーションにより露呈されている機能性(例えば、オブジェクト)へアクセスするために、第一アプリケーションのURIが一致せねばならないURI又はURIパターンを特定することが可能である。1実施例によれば、第二アプリケーションは、第二アプリケーションにより露呈されている機能性(例えば、オブジェクト)へアクセスするために第一アプリケーションのクリデンシャルが有効なものとされねばならない認証スキーム及びクリデンシャルを特定することが可能である。
パーミッションターゲット及びアクション
1実施例に基づいて、保護ドメインに基づいたパーミッション検査はパーミッションターゲットの検査をサポートしている。パーミッションターゲットの1例は特定のホストに対するHTTPS接続を開くことのパーミッションである。特定の例として、HTTPS接続を開くことのパーミッションは、un.com等の特定のターゲットに対してのみ許可することが可能である。従って、その保護は、そのアプリケーションがその接続を開くために必要な機能性(例えば、オブジェクト)への一般的なアクセスを有しているか否かに基づくものではなく、そのアプリケーションがその接続を開くことをシークするターゲットに基づいている。
1実施例においては、保護ドメインに基づいたパーミッション検査はパーミッションアクションを検査することをサポートしている。パーミッションアクションの1例はGET又はPOST HTTPメソッドを使用してHTTPS接続を開くためのパーミッションである。従って、その保護は、そのアプリケーションが保護されているGET又はPOSTメソッドへの一般的なアクセスを有しているか否かに基づくものではなく、そのアプリケーションがその保護されているメソッドを使用してとるアクションに基づいている。
アプリケーション、プラットフォーム、及びライブラリにより定義されるパーミッション
1実施例に基づいて、保護ドメインに基づくパーミッション検査はアプリケーションにより定義されるパーミッションをサポートする。例えば、第一アプリケーションが露呈するSIOへ第二アプリケーションがアクセスせんとする場合に第一アプリケーションがパーミッションを検査することが可能である。アプリケーションにより定義される非SIOパーミッションが存在する場合もある。
保護ドメインに基づいたパーミッション検査は、1実施例に基づいて、プラットフォームにより定義されたパーミッションを可能とする。保護されているプラットフォーム機能性の1例は「javacardx.crypto.Cipher」等の強度の高い暗号技術に対するパーミッションである。別の保護されているプラットフォーム機能性は共用可能なインターフェースオブジェクト(SIO)ルックアップに関するパーミッションである。
本発明の1実施例に基づいて、保護ドメインに基づいたパーミッション検査はライブラリにより定義されたパーミッションをサポートする。保護されているライブラリ機能性に関するパーミッション検査はプログラムにより要求することが可能である。本発明の1実施例によれば、ライブラリは保護ドメインと関連しているものではない。然しながら、1実施例においては、ライブラリを保護ドメインと束縛即ち結合させるためにラッパーサービス(wrapper service)が使用される。ライブラリのインストールにおいて署名者のクリデンシャル(例えば、証明書)を使用することを可能とするためにライブラリを署名済とすることが可能である。保護されているライブラリ機能性の1例は「javacardx.crypto.Cipher.encrypt」等の暗号技術に関連しているパーミッションである。
アプリケーション実行コンテキスト
図2は本発明の1実施例に基づいて、関連する実行コンテキストを具備するアプリケーション束を有するプラットフォーム200を例示した模式図である。この模式図は、又、アプリケーションのコードを分離するコード分離階層を例示している。コールは矢印で図示した如くにのみ実行することが可能であり、且つ新たなアプリケーションは、それらがコアライブラリ223、拡張ライブラリ220、及びSI B 222等のアプリケーション間通信用の共用可能なインターフェース等の共通に見ることが可能なクラスのみをコールすることが可能であるようにインストールされる。アプリケーション束AはアプリケーションA1 204、アプリケーションA2 203、ライブラリA 207を有している。アプリケーション束Aはプラットフォーム200上において1つのユニットとしてデプロイされており且つアプリケーションコンテキストA 206A内において実行する。アプリケーションコンテキストA 206A内において、アプリケーションA1 204は、アプリケーションA2 203がアプリケーションA1 201のSIO A1 208をコールするためのインターフェースSI A1 209を露呈させる。イントラSI(A1)209はイントラアプリケーション通信又は通常の非共用可能インターフェース用に降格された共用可能なインターフェースである。該アプリケーション束が実行するコンテキスト206Aはコンテキスト分離を提供する。コンテキスト分離は、1実施例においては、ファイアウォールで実現される。
アプリケーション束BはアプリケーションB 205を有しており且つ単一のユニットとしてプラットフォーム上にデプロイされ且つアプリケーションコンテキストB 206B内において実行する。アプリケーションBは、他のコンテキストにおいて実行するアプリケーションが保護されている機能性SIO B 213へアクセスするためのインターフェースSI B 222を露呈させる。
別のランタイム環境(RE)コンテキスト206Cが存在している。REコンテキスト206CはRE及びコアライブラリ223と関連している。従って、該プラットフォームはコンテキスト分離を有しており、その場合に、各アプリケーション束は他のコンテキストから分離されているコンテキストにおいて実行する。該コンテキスト分離は、1実施例に基づいて、ファイアウォールにより実施される。
図2においては、拡張ライブラリ220も図示されており、それは全てのアプリケーションによりアクセス可能であり且つプラットフォーム上の特定の実行コンテキストへ結合されているものではない。このライブラリからクラスをインスタンス化することによりオブジェクトを作成する場合にのみその作成されるオブジェクトは特定のコンテキスト(例えば、コールを行うアプリケーションのコンテキスト)へ関連付けられる。
図2においては、共用可能なインターフェースSIs B 222も図示されており、それらはそれらがアプリケーション間通信のためにSIO B 213をコールすることを可能とするために共通にみることが可能なレベルにおいてその他のアプリケーションに対しアプリケーションB 205により露呈されている。
コンテキスト変化に基づくパーミッション検査
1つのコンテキストにおいて実行しているアプリケーションが別のコンテキストにより保護されている機能性(例えば、オブジェクト)へのアクセスをシークする場合にパーミッションを検査することが可能である。例えば、該保護されている機能性はプラットフォーム又はライブラリ機能性又は保護されている共用可能なインターフェースオブジェクト機能性である場合がある。パーミッション(SIO又はライブラリ機能性に対して)はコールを行うアプリケーションのコンテキストに基づいて検査することが可能である。前述したように、コールを行うアプリケーションは、ターゲット又はターゲットのカテゴリに関するパーミッションを許可される場合がある。前述したように、コールを行うアプリケーションはアクション又はアクションのカテゴリに対するパーミッションを許可される場合がある。
図3は本発明の1実施例に基づいて、図2に図示したアプリケーション及びコンテキストに対するコンテキスト変化及びセキュリティ検査を例示した模式図である。従って、図3において示されている3つの異なるコンテキストが存在している。これら3つのコンテキストはコンテキストA 206A、コンテキストB 206B、及びREコンテキスト206Cである。特に、図3は、コンテキストが侵入されることに起因してコンテキストスイッチが発生する場合に行われるセキュリティ検査を図示している。
アプリケーション束A内において完全にパスされるメッセージ(コール)はコンテキストスイッチを発生することはない。従って、セキュリティ検査が必要とされることはない。例えば、アプリケーションA2がSIO A1(メッセージ302及び304)を介してアプリケーションA1をコールする。注意すべきことであるが、これらのメッセージ(302及び304)はアプリケーションAのコンテキスト内をパスされる。従って、これらのメッセージ(302及び304)に関連するコンテキストスイッチは存在しない。従って、この点においてセキュリティに関する問題は存在しない。メッセージ306において、アプリケーションA1はライブラリ関数Aをコールする。更に、メッセージ308において、アプリケーションA2はライブラリAをコールする。ライブラリA機能性は同一のコンテキストA 206A内において実行するので、ライブラリAに対するコールに対するセキュリティ検査は必要ではない。注意すべきことであるが、ライブラリAはコンテキストA 206A内にあるものと考えられ、従って、アプリケーションA2がライブラリAをコールする場合にコンテキストスイッチが発生することはない。
然しながら、1つのコンテキストと関連するアプリケーションが別のコンテキストと関連する機能性(例えば、オブジェクト)へアクセスしようとする場合に、コンテキスト変化がトリガされ且つセキュリティ検査が実施される。更に図3を参照すると、アプリケーションA2が、メッセージ310において、SIO Bをコールする。このコールはコンテキストスイッチを発生させ、その場合に、コンテキストB 206Bを表わす値(例えば、コンテキスト識別子)311がスタック312へ押し込まれる。コンテキストA 206Aを表わす値313は既にスタック312上に存在している。コンテキスト変化が存在するので、1つ又はそれ以上のパーミッション検査が実施される。そのパーミッション検査はトランスペアレントであるか又はより精細な制御のためにプログラム的なものとすることが可能である。
トランスペアレントなパーミッション検査はコンテキストスイッチによって自動的に実施させることが可能である。例えば、トランスペアレントなパーミッション検査は、アプリケーションクライエントが異なるコンテキストからのアプリケーションのSIOメソッドを喚起即ち呼出す場合に自動的に実施される。このトランスペアレントなパーミッション検査は、1実施例においては、コンテキストスイッチを実施する前にコールを行うクライエントに対してのアプリケーションの代わりにファイアウォールにより要求される。例えば、アプリケーションA2がSIO Bをコールする場合に、アプリケーションBの代わりにファイアウォールがパーミッション検査を要求する。1実施例においては、トランスペアレントなパーミッション検査を実施するためにアクセスコントローラがファイアウォールにより喚起即ち呼出される。1つの側面において、このトランスペアレントなパーミッション検査は、パーミッションターゲット又はアクションを特定することはないので粗粒度SIOアクセス制御を可能とさせる。
パーミッション検査のより精細な粒度の制御を可能とするために、アプリケーションはプログラム的にパーミッションを検査することが可能である。例えば、矢印314は、アプリケーションBがアプリケーションAのパーミッションを検査することを表わしている。プログラム的なパーミッション検査は、開発者がメソッド又はコードブロック等へのアクセスを保護することを可能とすることにより、細粒度プログラム的SIOパーミッション検査を可能とさせる。1実施例に基づいて、SIOメソッドが喚起即ち呼出される場合にコールを行うコード(クライエント)に対するパーミッション検査をアプリケーションがプログラム的に要求することを可能とするためにソフトウエアメソッドが提供される。このメソッドは、1つの側面において、3つの引き数、即ちパーミッションの名前又はタイプ、オプションのパーミッションターゲット及びオプションのパーミッションアクションを受付ける。パーミッションの名前又はタイプは、SIOにより暗示的に定義することが可能である(例えば、それはSIOクラスの名前自身から派生することが可能である)。何等かの開発者が提供したメタデータ(例えば、アノテーション)に基づいてのこれらのプログラム的なパーミッション検査を実現する保護プロキシーは、ツールにより発生させ且つアプリケーションと共にインストールすることが可能である。従って、1実施例においては、そのアプリケーションの開発者はそのアプリケーション内へ何等かのパーミッション検査要求をコード化することは必要ではなく、そのアプリケーションと関連するメタデータを介して等価な命令を提供することが可能である。
従って、図3における場合を参照すると、アプリケーションA2がSIO Bをコールする場合に、SIO Bはそのコールを行うアプリケーション、即ちアプリケーションA2がパーミッションを有しているか否かをプログラム的に決定することが可能である。この決定を行うために、SIO Bはそのコールを行うアプリケーション(A2)のコンテキストを決定するためにスタック312を検査する。次いで、アプリケーションA2の保護ドメインに基づいて、アプリケーションA2がSIO Bへアクセスするためのパーミッションが許可されているか否かをSIO Bが決定する。1実施例においては、そのパーミッション検査を実施するためのプログラム的検査(例えば、SIO B)を所望するアプリケーションによりアクセスコントローラが喚起即ち呼出される。
更に図3を参照すると、SIO Bは、メッセージ316において、アプリケーションBをコールする。次いで、アプリケーションBは、メッセージ318において、拡張ライブラリをコールする。該拡張ライブラリは、341により表わされるように、パーミッション検査を喚起する。この場合において、パーミッション検査はアプリケーションBに対するものである。従って、アプリケーションBが関連する保護ドメインがそのライブラリへアクセスするためのパーミッションを有している場合には、アクセスが許可される。
該拡張ライブラリは、メッセージ320において、コアライブラリをコールする。コアライブラリに対するコールは、REコンテキスト206Cを表わす値315をスタック312へ押し込ませる。然しながら、注意すべきことであるが、セキュリティは、必ずしも、即時のコールを行うコール(アプリケーション又はライブラリ)に対して検査されるものではない。例えば、アプリケーションBのパーミッションは、拡張ライブラリがコアライブラリへアクセスことが可能であるか否かを決定するために検査される。その他のパーミッション検査の場合におけるように、このことは、アクティブなコンテキスト(例えば、コンテキストB 206B)と関連している保護ドメインを決定することにより実施される。1実施例においては、コアライブラリはこのパーミッション検査を実施するためにアクセスコントローラを喚起即ち呼出す。従って、RE保護機能性に関するパーミッション検査は、RE自身により要求され且つコールを行うクライエントに対して検査することが可能である。
アプリケーションA2が拡張ライブラリをコールする場合には(メッセージ326)、該拡張ライブラリは351により表わされるようにパーミッション検査を喚起する。この場合において、パーミッション検査はアプリケーションA2に対するものである。従って、アプリケーションAが関連している保護ドメインがそのライブラリへアクセスするためのパーミッションを有している場合には、アクセスが許可される。
該拡張ライブラリが、次いで、コアライブラリをコールに場合には(メッセージ328)、そのパーミッションは、アプリケーションA2と関連する保護ドメインに対して尚且つ検査される。というのは、それが、メッセージ328が受取られた場合のアクティブなコンテキストだからである。このパーミッション検査は316により表わしている。メッセージ328を受取った後に該コンテキストはREに対するコンテキストへスイッチさせることが可能である。
最後に、アプリケーションA2が直接的にコアライブラリをコールする場合には(メッセージ330)、アプリケーションA2 371と関連している保護ドメインに対してパーミッションが検査される。
従って、パーミッション検査はコード自身に基づくものではなく、誰がそのコードのインスタンスを署名したか又は何等かのその他のアプリケーション認証スキームに基づいている。再度図1Aを参照すると、アプリケーション束104は保護ドメインクリデンシャル(例えば、保護ドメインのルート証明書)114に対して認証されているクリデンシャル(例えば、証明書112)で署名されている。従って、同一の拡張ライブラリコードの2つの異なるインスタンスのパーミッションの検査は、そのオブジェクトが作成されたコンテキスト(所有コンテキスト)に基づいて、異なる結果を有する場合がある。
処理の流れ
図4は本発明の1実施例に基づいて、コンテキスト分離を使用した保護ドメインに基づいたセキュリティのプロセス400を例示したフローチャートである。ステップ402は、実行された場合に、アプリケーションインスタンスを発生する1組のアプリケーションコードと関連しているクリデンシャル(例えば、証明書)に基づいて第一アプリケーションインスタンスを保護ドメインと関連付ける。
ステップ404はプラットフォーム上の第一実行コンテキストにおいて第一アプリケーションインスタンスを実行し、その場合に、第一実行コンテキストはプラットフォーム上の他の実行コンテキストからファイアウォールにより分離されている。
ステップ406は、第一アプリケーションインスタンスが第二実行コンテキストと関連している保護されている機能性へのアクセスをシークすることの表示を受取り、その場合に、該保護されている機能性へのアクセスは、そのアクセスをシークする実体が1組の1つ又はそれ以上の保護ドメインにおける1つの保護ドメインに属している場合に許容される(上述した保護されている機能性へのアクセスに対するパーミッションが許可される)。該保護されている機能性は、第二コンテキストにおいて実行している第二アプリケーションインスタンスにより露呈させることが可能である。該保護されている機能性はREコンテキストと関連することが可能である。例えば、該保護されている機能性はコアライブラリ又はプラットフォーム関数とすることが可能である。該保護されている機能性は、又、第一アプリケーションと同一のコンテキストにおいて実行している拡張ライブラリにおけるものとすることが可能である。
ステップ408は、第一アプリケーションインスタンスがステップ406における表示を受取ることに応答して保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定する。ステップ408は、第一アプリケーションインスタンスが関連している保護ドメインを決定すること、及び第一アプリケーションインスタンスが関連している保護ドメインが該1組の1つ又はそれ以上の保護ドメイン内のものであるか否かを決定することを包含している。該保護ドメインを決定することは、第一アプリケーションインスタンスが実行する実行コンテキストに基づくものとすることが可能である。例えば、該プラットフォームは実行コンテキストと保護ドメインとの間の関連性を格納することが可能である。
1実施例においては、第二アプリケーションインスタンスが、第一アプリケーションインスタンスが保護されている機能性へのアクセスに対するパーミッションを有しているか否かの決定を行わせる。該第二アプリケーションインスタンスは1組の1つ又はそれ以上の保護ドメインを特定することが可能であり、その場合に、コールを行うアプリケーションは該保護されている機能性へアクセスするためには該保護されているドメインのうちの少なくとも1つに属するものでなければならない。
1実施例において、第二コンテキストと関連するファイアウォールは、第一アプリケーションインスタンスが第二実行コンテキストと関連している保護されている機能性へのアクセスをシークすることの表示を受取ることに応答して該保護されている機能性へのアクセスに対するパーミッションを第一アプリケーションインスタンスが有しているか否かを決定させる。
1つの側面において、拡張ライブラリが、第一アプリケーションインスタンスが保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定させる。更に別の側面においては、該プラットフォームが該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定させる。
ハードウエア外観
1実施例において、図4のプロセス400のステップの少なくとも幾つかは1つ又はそれ以上のプロセッサにより実行される複数組の命令の形態をとる。1実施例においては、図3におけるアクションのうちの少なくとも幾つかは1つ又はそれ以上のプロセッサにより実行される複数組の命令の形態をとる。図5は該命令を実行するためのプラットフォームの1つの可能な実施例を示している。コンピュータシステム500は、情報交換を容易化するためのバス502、及び情報を処理するためにバス502と結合されている1つ又はそれ以上のプロセッサ504を包含している。コンピュータシステム500は、又、ランダムアクセスメモリ(RAM)又はその他のダイナミック格納装置等のメインメモリ506を包含しており、それは情報及びプロセッサ504により実行されるべき命令を格納するためにバス502へ結合されている。メインメモリ506は、又、プロセッサ504による命令の実行期間中に一時的な変数又はその他の中間情報を格納するために使用することが可能である。コンピュータシステム500は、更に、プロセッサ504に対するスタチックな情報及び命令を格納するためにバス502へ結合されているリードオンリメモリ(ROM)508又はその他のスタチック格納装置を包含することが可能である。磁気ディスク又は光学ディスク等の格納装置510が情報及び命令を格納するために設けられており且つバス502へ結合されている。
コンピュータシステム500は、バス502を介して、コンピュータユーザに対し情報を表示するためにディスプレイ512へ結合することが可能である。英文字及びその他のキーを包含する入力装置515がプロセッサ504に対し情報及びコマンド選択を通信するためにバス502へ結合されている。別のタイプのユーザ入力装置は、マウス、トラックボール、又はカーソル方向器等の方向情報及びコマンド選択をプロセッサ504へ通信し且つディスプレイ512上のカーソルの動きを制御するためのカーソル制御516である。この入力装置は、典型的に、2つの軸、即ち第一軸(例えば、x)及び第二軸(例えば、y)等の2つの自由度を有しており、それは該装置が面内における位置を特定することを可能とする。
コンピュータシステム500において、バス502は情報、信号、データ等を種々のコンポーネント間において交換することを可能とする任意のメカニズム及び/又は媒体とすることが可能である。例えば、バス502は電気的信号を担持する1組の導体とすることが可能である。バス502は、又、1つ又はそれ以上のコンポーネント間においてワイヤレス信号を担持するワイヤレス媒体(例えば、空気)とすることが可能である。バス502は、更に、1つ又はそれ以上のコンポーネントを接続するネットワーク接続することが可能である。情報、信号、データ等を種々のコンポーネント間において交換することを可能とする任意のメカニズム及び/又は媒体は、バス502として使用することが可能である。
バス502は、又、これらのメカニズム/媒体の結合とすることが可能である。例えば、プロセッサ504は、ワイヤレスにより格納装置510と通信することが可能である。このような場合には、バス502は、プロセッサ504及び格納装置510の観点からは、空気等のワイヤレス媒体である。更に、プロセッサ504は容量的にROM508と通信することが可能である。更に、プロセッサ504はネットワーク接続を介してメインメモリ506と通信することが可能である。この場合には、バス502はネットワーク接続である。更に、プロセッサ504は1組の導体を介してディスプレイ512と通信することが可能である。この場合には、バス502は1組の導体である。従って、どのようにして種々のコンポーネントが互いに通信するかに依存して、バス502は異なる形態をとることが可能である。図5に示したように、バス502は、種々のコンポーネント間において情報、信号、データ等を交換することを可能とする全てのメカニズム及び/又は媒体を機能的に表わしている。
本発明は本明細書に記載した技術を実現するためのコンピュータシステム500の使用に関連している。本発明の1実施例によれば、これらの技術はメインメモリ506内に包含される1つ又はそれ以上の命令からなる1つ又はそれ以上のシーケンスを実行するプロセッサ504に応答してコンピュータシステム500により実施される。このような命令は、格納装置510等の別のマシンにより読取可能な媒体からメインメモリ506内に読取ることが可能である。メインメモリ506内に包含されている命令からなるシーケンスの実行は、プロセッサ504をして本明細書に記載した処理ステップを実施させる。別の実施例においては、本発明を実現するためにソフトウエア命令の代わりに又はそれと結合してハードワイヤード回路を使用することが可能である。従って、本発明の実施例はハードウエア回路及びソフトウエアの何等かの特定の結合に制限されるものではない。
本明細書において使用される「マシンにより読取可能な媒体」という用語は、マシンをして特定の態様で動作させるデータを提供する場合に参画する任意の媒体のことを意味している。コンピュータシステム500を使用して実現される1実施例においては、種々のマシンにより読取可能な媒体は、例えば、実行のためにプロセッサ504へ命令を供給する場合に関与する。このような媒体は、これらに制限されるものではないが、非揮発性媒体、揮発性媒体、及び伝送媒体を包含する多くの形態をとることが可能である。非揮発性媒体は、例えば、格納装置510等の光学的又は磁気的ディスクを包含している。揮発性媒体は、メインメモリ506等のダイナミックメモリを包含している。伝送媒体は、バス502を構成するワイヤを包含して、同軸ケーブル、銅ワイヤ及びオプチカルファイバを包含している。伝送媒体は、又、無線及び赤外線データ通信期間中に発生されるもののような音波又は光波の形態をとることが可能である。
マシンにより読取可能な媒体の一般的な形態は、例えば、フロッピィディスク、フレキシブルディスク、ハードディスク、磁気テープ、又は何等かのその他の磁気媒体、CD−ROM、DVD、又は何等かのその他の光学的格納媒体、パンチカード、ペーパーテープ、孔のパターンを具備する何等かのその他の物理的媒体、RAM、PROM,EPROM、フラッシュEPROM、何等かのその他のメモリチップ又はカートリッジ、後に記載するような搬送波、又はそれからコンピュータが読取ることが可能な何らかのその他の媒体を包含している。
種々の形態のマシンにより読取可能な媒体は、実行のためにプロセッサ504に対しての1つ又はそれ以上の命令からなる1つ又はそれ以上のシーケンスを担持することに関与することが可能である。例えば、命令は初期的には遠隔コンピュータの磁気ディスク上に担持されている場合がある。該遠隔コンピュータは、該命令をダイナミックメモリ内にロードさせ且つ該命令をモデムを使用して電話線を介して送信することが可能である。コンピュータシステム500に対してローカルなモデムが電話線を介してのデータを受信し且つ赤外線送信器を使用して該データを赤外線信号へ変換することが可能である。赤外線検知器が該赤外線信号内に担持されるデータを受取ることが可能であり且つ適宜の回路が該データをバス502上に配置させることが可能である。バス502は該データをメインメモリ506へ担持し、それから、プロセッサ504が該命令を検索し且つ実行する。メインメモリ506により受取られる命令は、オプションとして、プロセッサ504による実行の前又は後のいずれかにおいて格納装置510へ格納させることが可能である。
コンピュータシステム500は、又、バス502へ結合されている通信インターフェース518を包含している。通信インターフェース518は、ローカルネットワーク522へ接続されているネットワークリンク520に対する二方向データ通信結合を提供する。例えば、通信インターフェース518は対応するタイプの電話線に対するデータ通信接続を提供するための統合サービスデジタルネットワーク(ISDN)カード又はモデムとすることが可能である。別の例として、通信インターフェース518は、互換性のあるLANに対するデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードとすることが可能である。ワイヤレスリンクを実現することも可能である。いずれかのこのようなインプリメンテーションにおいて、通信インターフェース518は種々のタイプの情報を表わすデジタルデータストリームを担持する電気的、電磁的又は光学的信号を送信し且つ受信する。
ネットワークリンク520は、典型的に、他のデータ装置に対して1つ又はそれ以上のネットワークを介してのデータ通信を提供する。例えば、ネットワークリンク520は、ローカルネットワーク522を介してホストコンピュータ524に対して又はインターネットサービスプロバイダ(ISP)526により運用されるデータ装置への接続を提供することが可能である。ISP526は、現在一般的に「インターネット」528と呼称されるワールドワイドパケットデータ通信ネットワークを介してのデータ通信サービスを提供する。ローカルネットワーク522及びインターネット528は、両方共、デジタルデータストリームを担持する電気的、電磁的又は光学的信号を使用する。種々のネットワークを介しての信号およびネットワークリンク520上及び通信インターフェース518を介しての信号はコンピュータシステム500への及びそれからのデジタルデータを担持しており、情報を輸送するための搬送波の例示的な形態である。
コンピュータシステム500はネットワーク、ネットワークリンク520及び通信インターフェース518を介して、メッセージを送信し且つプログラムコードを包含するデータを受信することが可能である。インターフェースの例においては、サーバー530がインターネット528、ISP526、ローカルネットワーク522及び通信インターフェース518を介して、アプリケーションプログラムに対する要求されたコードを送信する場合がある。
受信されたコードは、それが受信された状態で、プロセッサ504により実行することが可能であり、及び/又は後の実行のために格納装置510又はその他の非揮発性格納部内に格納することが可能である。このように、コンピュータシステム500は搬送波の形態でアプリケーションコードを得ることが可能である。
この点において、注意すべきことであるが、本発明の特定の実施例を参照して説明したが、そのように制限されるものとして解釈されるべきではない。本発明の精神を逸脱することなしにこの開示に基づいて当業者が種々の修正を行うことが可能である。従って、本発明は例示するために使用した特定の実施例に制限されるべきものではなく、特許請求の範囲及びその均等物によってのみ制限されるべきものである。
以上、本発明の具体的実施の態様について説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
本発明の1実施例に基づいてコンテキスト分離と共に使用される保護ドメインに関連する要素間の関係を例示したブロック図。 本発明の別の実施例に基づいてコンテキスト分離と共に使用される保護ドメインに関連する要素間の関係を例示したブロック図。 本発明の1実施例に基づくアプリケーション束及び関連するコンテキストを例示した概略図。 本発明の1実施例に基づいて図2に図示したアプリケーション及びコンテキストに対するコンテキスト変化及びセキュリティ検査を例示した概略図。 本発明の1実施例に基づいてコンテキスト分離を使用する保護ドメインに基づいたセキュリティのプロセスを例示したフローチャート。 本発明の1実施例を実現することが可能なコンピュータシステムを例示したブロック図。
符号の説明
102 実行コンテキスト
103 ファイアウォール
104 アプリケーション束
105 アクセスコントローラ
106 アプリケーションモジュール
108 アプリケーションインスタンス
110 共通保護ドメイン
112 アプリケーション署名者クリデンシャル(証明書)
114 保護ドメインクリデンシャル(証明書)
116 パーミッション
119 セキュリティ制約
121 アプリケーション記述子
123 ランタイム環境(RE)

Claims (20)

  1. セキュリティを与えるためのマシンにより実現される方法において、
    実行された場合にアプリケーションインスタンスを発生する1組のアプリケーションコードと関連しているクリデンシャルに基づいて第一アプリケーションインスタンスを保護ドメインと関連付け、
    該第一アプリケーションインスタンスを第一実行コンテキストにおいて実行し、該第一実行コンテキストはファイアウォールによってその他の実行コンテキストから分離されており、
    該第一アプリケーションインスタンスが第二実行コンテキストと関連している保護されている機能性へのアクセスをシークしていることの表示を受取り、尚該保護されている機能性へのアクセスは、そのアクセスをシークしている実体が1組の1つ又はそれ以上の保護ドメインにおける1つの保護ドメインに属している場合に許可されるものであり、
    該表示を受取ることに応答して、
    該第一アプリケーションインスタンスが関連している保護ドメインを決定し、且つ
    該第一アプリケーションインスタンスが関連している該保護ドメインが該1組の1つ又はそれ以上の保護ドメイン内のものであるか否かを決定する、
    ことにより該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定する、
    ことを包含している方法。
  2. 請求項1において、該保護されている機能性が該第二コンテキストにおいて実行している第二アプリケーションインスタンスにより露呈されることを特徴とする方法。
  3. 請求項2において、該第二アプリケーションインスタンスが、該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定させることを特徴とする方法。
  4. 請求項2において、該第二アプリケーションインスタンスが該1組の1つ又はそれ以上の保護ドメインを特定することを特徴とする方法。
  5. 請求項2において、更に、
    該第二アプリケーションインスタンスが第三実行コンテキストと関連している別の保護されている機能性へのアクセスをシークすることの表示を受取り、尚該その他の保護されている機能性へのアクセスは、そのアクセスをシークする実体が別の組の1つ又はそれ以上の保護ドメインにおける1つの保護ドメインに属するものである場合に許可されるものであり、
    該第二アプリケーションインスタンスが該その他の保護されている機能性へのアクセスに対するパーミッションを有しているか否かを、
    該第二アプリケーションインスタンスが関連している保護ドメインを決定し、且つ
    該第二アプリケーションインスタンスが関連している該保護ドメインが該その他の組の1つ又は以上の保護ドメイン内のものであるか否かを決定する、
    ことにより決定する、
    ことを包含していることを特徴とする方法。
  6. 請求項1において、更に、
    該第一アプリケーションインスタンスが実行している実行コンテキストを決定する、
    ことを包含しており、且つ該第一アプリケーションインスタンスが関連している保護ドメインを決定することが該第一アプリケーションインスタンスが実行している実行コンテキストに基づいている、ことを特徴とする方法。
  7. 請求項1において、該第二コンテキストと関連しているファイアウォールが、該第一アプリケーションインスタンスが第二実行コンテキストと関連している保護されている機能性へのアクセスをシークしていることの表示を受取ることに応答して該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かの決定を行わせることを特徴とする方法。
  8. 請求項1において、該保護されている機能性が拡張ライブラリと関連しており、且つ該拡張ライブラリは、該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定させることを特徴とする方法。
  9. 請求項1において、該クリデンシャルが署名済証明書を有していることを特徴とする方法。
  10. 請求項1において、該保護されている機能性が、保護されているデータ及び保護されているオブジェクトのうちの少なくとも1つと関連していることを特徴とする方法。
  11. 1つ又はそれ以上のプロセッサにより実行される場合に、該1つ又はそれ以上のプロセッサをして以下のオペレーション、即ち
    実行された場合にアプリケーションインスタンスを発生させる1組のアプリケーションコードと関連しているクリデンシャルに基づいて第一アプリケーションインスタンスを保護ドメインと関連付け、
    該第一アプリケーションインスタンスを第一実行コンテキストにおいて実行し、尚該第一実行コンテキストはファイアウォールによってその他の実行コンテキストから分離されており、
    該第一アプリケーションインスタンスが第二実行コンテキストと関連している保護されている機能性へのアクセスをシークしていることの表示を受取り、尚該保護されている機能性へのアクセスは、そのアクセスをシークしている実体が1組の1つ又はそれ以上の保護ドメインにおける1つの保護ドメインに属する場合に許可されるものであり、且つ
    該表示を受取ることに応答して、該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かを、
    該第一アプリケーションインスタンスが関連している保護ドメインを決定し、且つ
    該第一アプリケーションインスタンスが関連している保護ドメインが該1組の1つ又はそれ以上の保護ドメイン内にあるか否かを決定する、
    ことにより決定する、
    を実行させる1組の命令がその上に格納されているマシンにより読取可能な媒体。
  12. 請求項11において、該保護されている機能性が該第二コンテキストにおいて実行する第二アプリケーションインスタンスにより露呈されることを特徴とするマシンにより読取可能な媒体。
  13. 請求項12において、該1組の命令が、該第二アプリケーションインスタンスの一部であり且つ、1つ又はそれ以上のプロセッサにより実行された場合に、該1つ又はそれ以上のプロセッサをして以下の更なるオペレーション、即ち、
    該オペレーションをして該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定させる、
    を実施させる命令を有していることを特徴とするマシンにより読取可能な媒体。
  14. 請求項12において、該1組の命令が、該第二アプリケーションインスタンスの一部であり且つ、1つ又はそれ以上のプロセッサにより実行された場合に、該1つ又はそれ以上のプロセッサをして以下の更なるオペレーション、即ち、
    該1組の1つ又はそれ以上の保護ドメインを特定する、
    ことを実施させる命令を有していることを特徴とするマシンにより読取可能な媒体。
  15. 請求項12において、該1組の命令が、1つ又はそれ以上のプロセッサにより実行される場合に、該1つ又はそれ以上のプロセッサをして以下の更なるオペレーション、即ち、
    該第二アプリケーションインスタンスが第三実行コンテキストと関連している別の保護されている機能性へのアクセスをシークしていることの表示を受取り、尚該その他の保護されている機能性へのアクセスは、そのアクセスをシークする実体が別の組の1つ又はそれ以上の保護ドメインにおける1つの保護ドメインに属するものである場合に許可され、
    該第二アプリケーションインスタンスが該その他の保護されている機能性へのアクセスに対するパーミッションを有しているか否かを、
    該第二アプリケーションインスタンスが関連している保護ドメインを決定し、且つ
    該第二アプリケーションインスタンスと関連している該保護ドメインが該その他の組の1つ又はそれ以上の保護ドメイン内にあるか否かを決定する、
    ことにより決定する、
    を実施させる命令を有していることを特徴とするマシンにより読取可能な媒体。
  16. 請求項11において、該1組の命令が、1つ又はそれ以上のプロセッサにより実行される場合に、該1つ又はそれ以上のプロセッサをして以下の更なるオペレーション、即ち、
    該第一アプリケーションインスタンスが実行している実行コンテキストを決定し、且つ該第一アプリケーションインスタンスが関連している保護ドメインを決定するための該オペレーションが該第一アプリケーションインスタンスが実行している実行コンテキストに基づいている、
    を実行させる命令を有していることを特徴とするマシンにより読取可能な媒体。
  17. 請求項11において、該保護されている機能性が拡張ライブラリと関連しており、且つ該1組の命令が、該拡張ライブラリの一部であり、且つ、1つ又はそれ以上のプロセッサにより実行される場合に、該1つ又はそれ以上のプロセッサをして、以下の更なるオペレーション、即ち、
    該第一アプリケーションインスタンスが該保護されている機能性へのアクセスに対するパーミッションを有しているか否かを決定する、
    ことを実施させる命令を有していることを特徴とするマシンにより読取可能な媒体。
  18. 請求項11において、該クリデンシャルが署名済証明書を有していることを特徴とするマシンにより読取可能な媒体。
  19. 請求項11において、該保護されている機能性が保護されているデータと関連していることを特徴とするマシンにより読取可能な媒体。
  20. 請求項11において、該保護されている機能性が保護されているオブジェクトを有していることを特徴とするマシンにより読取可能な媒体。
JP2007001432A 2006-01-09 2007-01-09 保護ドメインに基づいたセキュリティ用の方法及び装置 Active JP5013882B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75773506P 2006-01-09 2006-01-09
US60/757735 2006-01-09
US11/507872 2006-08-21
US11/507,872 US7739731B2 (en) 2006-01-09 2006-08-21 Method and apparatus for protection domain based security

Publications (2)

Publication Number Publication Date
JP2007183969A true JP2007183969A (ja) 2007-07-19
JP5013882B2 JP5013882B2 (ja) 2012-08-29

Family

ID=37964696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007001432A Active JP5013882B2 (ja) 2006-01-09 2007-01-09 保護ドメインに基づいたセキュリティ用の方法及び装置

Country Status (3)

Country Link
US (1) US7739731B2 (ja)
EP (1) EP1806674A3 (ja)
JP (1) JP5013882B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018136920A (ja) * 2017-02-23 2018-08-30 キヤノン株式会社 画像形成装置及びその制御方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0510378B1 (pt) 2004-04-30 2018-12-11 Blackberry Ltd Método de manusear transferências de dados em um dispositivo móvel , mídia lida porcomputador e aparelho de transferência de dados
US7614082B2 (en) 2005-06-29 2009-11-03 Research In Motion Limited System and method for privilege management and revocation
US8352749B2 (en) 2010-12-17 2013-01-08 Google Inc. Local trusted services manager for a contactless smart card
US8807440B1 (en) 2010-12-17 2014-08-19 Google Inc. Routing secure element payment requests to an alternate application
US9691055B2 (en) 2010-12-17 2017-06-27 Google Inc. Digital wallet
US8335921B2 (en) 2010-12-17 2012-12-18 Google, Inc. Writing application data to a secure element
KR101295428B1 (ko) * 2011-09-09 2013-08-23 주식회사 팬택 스마트 단말기에서 어플리케이션의 권한정보 관리 장치 및 제어 방법
US8255687B1 (en) 2011-09-15 2012-08-28 Google Inc. Enabling users to select between secure service providers using a key escrow service
US8171525B1 (en) 2011-09-15 2012-05-01 Google Inc. Enabling users to select between secure service providers using a central trusted service manager
US8313036B1 (en) 2011-09-16 2012-11-20 Google Inc. Secure application directory
US9497220B2 (en) 2011-10-17 2016-11-15 Blackberry Limited Dynamically generating perimeters
US9161226B2 (en) 2011-10-17 2015-10-13 Blackberry Limited Associating services to perimeters
EP2592578A1 (en) * 2011-11-10 2013-05-15 Research In Motion Limited Managing cross perimeter access
US9613219B2 (en) * 2011-11-10 2017-04-04 Blackberry Limited Managing cross perimeter access
US8799227B2 (en) 2011-11-11 2014-08-05 Blackberry Limited Presenting metadata from multiple perimeters
US8385553B1 (en) 2012-02-28 2013-02-26 Google Inc. Portable secure element
US8429409B1 (en) 2012-04-06 2013-04-23 Google Inc. Secure reset of personal and service provider information on mobile devices
US9369466B2 (en) 2012-06-21 2016-06-14 Blackberry Limited Managing use of network resources
US20140006598A1 (en) * 2012-06-29 2014-01-02 Nokia Corporation Methods, apparatuses and computer program products for facilitating dynamic origin-based domain allocation
US9075955B2 (en) 2012-10-24 2015-07-07 Blackberry Limited Managing permission settings applied to applications
US8656016B1 (en) 2012-10-24 2014-02-18 Blackberry Limited Managing application execution and data access on a device
US9710665B2 (en) * 2013-07-19 2017-07-18 Blackberry Limited Selectively allowing reference to object on unlock display screen
WO2015056056A1 (en) * 2013-10-18 2015-04-23 Nokia Technologies Oy Method and system for operating and monitoring permissions for applications in an electronic device
US10121144B2 (en) 2013-11-04 2018-11-06 Apple Inc. Using biometric authentication for NFC-based payments
GB2520061B (en) * 2013-11-08 2016-02-24 Exacttrak Ltd Data accessibility control
JP6370408B2 (ja) * 2014-06-25 2018-08-08 グーグル エルエルシー ネイティブアプリケーションに関するディープリンク
CN104580188B (zh) * 2014-12-29 2017-11-07 中国科学院信息工程研究所 一种在虚拟化环境中保护根ca证书的方法与系统
CN104980438B (zh) * 2015-06-15 2018-07-24 中国科学院信息工程研究所 一种虚拟化环境中数字证书撤销状态检查的方法和系统
US9584378B1 (en) 2015-12-22 2017-02-28 International Business Machines Corporation Computer-implemented command control in information technology service environment
CN106951795B (zh) 2016-01-07 2020-07-21 阿里巴巴集团控股有限公司 一种应用程序数据访问隔离方法及装置
EP3244337A1 (en) * 2016-05-10 2017-11-15 Cyber-Ark Software Ltd. Application control
GB2552966B (en) * 2016-08-15 2019-12-11 Arm Ip Ltd Methods and apparatus for protecting domains of a device from unauthorised accesses
US10484564B2 (en) * 2017-02-23 2019-11-19 Canon Kabushiki Kaisha Image forming apparatus and method for controlling the same comprising a storage medium that indicates whether the image forming apparatus is in a setting of checking a signature when an application is installed
FR3069670A1 (fr) * 2017-07-27 2019-02-01 Safran Identity and Security Pare-feu logiciel
FR3090923B1 (fr) * 2018-12-21 2021-09-17 Thales Sa Dispositif de contrôle généralisé des transferts mémoires pour les accès concurrentiels sur un système sur une puce
CN112035272A (zh) * 2019-06-03 2020-12-04 华为技术有限公司 进程间通信的方法、装置以及计算机设备
US20230418964A1 (en) * 2022-06-28 2023-12-28 Red Hat, Inc. Generating customized policy decision point services for controlling access to computing resources

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003522987A (ja) * 1999-01-22 2003-07-29 サン・マイクロシステムズ・インコーポレイテッド 小面積装置において入力点オブジェクトを使用してコンテキスト障壁を横断するアクセスを許可する技術
JP2005216305A (ja) * 2004-01-30 2005-08-11 Hewlett-Packard Development Co Lp 保護をコンピュータ特権レベルから切り離すことによるコンピュータシステムへの柔軟な保護モデルの提供

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282652B1 (en) * 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6125447A (en) * 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system
US6708276B1 (en) * 1999-08-03 2004-03-16 International Business Machines Corporation Architecture for denied permissions in Java
US7051366B1 (en) * 2000-06-21 2006-05-23 Microsoft Corporation Evidence-based security policy manager
GB0102518D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
US6993665B2 (en) * 2002-05-01 2006-01-31 Sun Microsystems, Inc. Applet permissions manager
AU2003238908A1 (en) * 2002-06-06 2003-12-22 Green Border Technologies Method and system for implementing a secure application execution environment using derived user accounts for internet content
US20040088562A1 (en) 2002-10-31 2004-05-06 Schlumberger Malco, Inc. Authentication framework for smart cards
US7565533B2 (en) 2002-11-05 2009-07-21 Sun Microsystems, Inc. Systems and methods for providing object integrity and dynamic permission grants
US20040123152A1 (en) 2002-12-18 2004-06-24 Eric Le Saint Uniform framework for security tokens
WO2005045735A1 (en) 2003-11-07 2005-05-19 Nokia Corporation Method and device for controlling installation of applications using operator root certificates
WO2006017388A1 (en) * 2004-08-03 2006-02-16 Softricity, Inc. System and method for controlling inter-application association through contextual policy control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003522987A (ja) * 1999-01-22 2003-07-29 サン・マイクロシステムズ・インコーポレイテッド 小面積装置において入力点オブジェクトを使用してコンテキスト障壁を横断するアクセスを許可する技術
JP2005216305A (ja) * 2004-01-30 2005-08-11 Hewlett-Packard Development Co Lp 保護をコンピュータ特権レベルから切り離すことによるコンピュータシステムへの柔軟な保護モデルの提供

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018136920A (ja) * 2017-02-23 2018-08-30 キヤノン株式会社 画像形成装置及びその制御方法
JP6991837B2 (ja) 2017-02-23 2022-01-13 キヤノン株式会社 画像形成装置及びその制御方法

Also Published As

Publication number Publication date
US20100024016A1 (en) 2010-01-28
EP1806674A3 (en) 2007-12-12
EP1806674A2 (en) 2007-07-11
JP5013882B2 (ja) 2012-08-29
US7739731B2 (en) 2010-06-15

Similar Documents

Publication Publication Date Title
JP5013882B2 (ja) 保護ドメインに基づいたセキュリティ用の方法及び装置
Gray et al. D’Agents: Security in a multiple-language, mobile-agent system
US7926086B1 (en) Access control mechanism for shareable interface communication access control
Provos et al. Preventing privilege escalation
JP4164855B2 (ja) プラグ対応認可システムに対するサーバサポート方法およびシステム
JP4177957B2 (ja) アクセス制御システム
US8560857B2 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable program
JP6286034B2 (ja) プロセス認証とリソースパーミッション
CN101004776B (zh) 用于基于保护域的安全性的方法和装置
EP3961456B1 (en) Data authorization information acquisition methods, apparatuses, and devices
US20140189880A1 (en) System and method for administrating access control rules on a secure element
US20070061432A1 (en) System and/or method relating to managing a network
CN112204548B (zh) 应用特定客户端证书的自动生成
KR20180019057A (ko) 비인가된 액세스들로부터 디바이스의 도메인들을 보호하는 방법들 및 장치
JP5422103B2 (ja) 分離されている実行コンテキスト間でのデータ転送方法及び装置
JP2014526728A (ja) プロセス毎ネットワーキング機能
CN115462109A (zh) 对附件设备资源的安全访问
US8713640B2 (en) System and method for logical separation of a server by using client virtualization
CN111783051B (zh) 身份认证方法及装置和电子设备
TW200809573A (en) Prevention of executable code modification
Sadeghi et al. Taming “trusted platforms” by operating system design
US8601544B1 (en) Computer system employing dual-band authentication using file operations by trusted and untrusted mechanisms
Tripathi et al. Protected resource access for mobile agent-based distributed computing
US9800585B2 (en) Restricting access by services deployed on an application server
US9240988B1 (en) Computer system employing dual-band authentication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120307

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120529

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120605

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5013882

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250