(57)【要約】【課題】複数のユーザーデキュリティドメインを備えたトークンを提供すること【解決手段】セキュリティトークンは、複数の独立したアプリケーションエンクレーブを有し、該エンクレーブ上で、異なるアプリケーションプロバイダが暗号鍵及び／又は他のデータをインストールして、前記トークンのユーザーを前記エンクレーブのそれぞれのアプリケーションに対して認証を行うことができる。【選択図】図３
2012155725.tif 000002
【特許請求の範囲】
【請求項１】
電子システムと共に使用するためのトークンであって、以下を備えるトークン：
プロセッサ；
不揮発性のプログラムストレージメモリ；及び
不揮発性のデータストレージメモリ
（ただし、前記不揮発性のプログラムストレージメモリは、オペレーティングシステムのシングルコピーを含み；
前記不揮発性のデータストレージメモリは、複数のエンクレーブを含み、各エンクレーブは、前記オペレーティングシステムが利用可能なポリシー及び設定データを含み；
前記不揮発性のデータストレージメモリは、以下の動作を行うためのコンピュータ読取可能コードを含む：
前記データストレージメモリの前記複数のエンクレーブから選択された１つに前記プロセッサがアクセスすることを許可すること；
他の全ての前記エンクレーブに前記プロセッサがアクセスすることを拒否すること；及び
前記１つのエンクレーブが含む前記ポリシー及び設定データを用いて前記オペレーティングシステムを前記プロセッサに実行させること）。
【請求項２】
請求項１に記載のトークンであって、外部用通信ポートを更に備え；
コンピュータシステムへ前記外部用通信ポートが接続された際に、以下の動作を前記プロセッサに実行させるために機能するコンピュータ読取可能コードを前記不揮発性のプログラムストレージメモリが含むトークン：
前記通信ポートを介して、エンクレーブクエリメッセージを受け取ること；
前記エンクレーブクエリメッセージに応答し、前記トークン上で定義された１以上の前記エンクレーブを特定するエンクレーブクエリ応答メッセージを前記通信ポートを介して送ること；
前記エンクレーブクエリ応答メッセージ内で特定された前記複数のエンクレーブから１つを指定するエンクレーブ選択メッセージを前記通信ポートを介して受け取ること；及び
前記エンクレーブ選択メッセージに応答し、前記不揮発性のデータストレージメモリの前記指定されたエンクレーブのみを使用して、前記コンピュータシステムと前記トークンが相互作用することを許可すること。
【請求項３】
請求項２に記載のトークンであって、前記エンクレーブクエリメッセージの代わりに判読不能なメッセージを受け取った際に、予め決められたデフォルトエンクレーブのみを使用して前記コンピュータシステムと前記トークンが相互作用することを許可するように機能するトークン。
【請求項４】
請求項１に記載のトークンであって、
前記不揮発性のデータストレージメモリと比べて前記オペレーティングシステムはデータアドレス空間が小さく、及び
前記不揮発性のデータストレージメモリの選択されたエンクレーブのみに前記プロセッサがアクセスすることを許可することが、前記選択されたエンクレーブに対応する前記不揮発性のデータストレージメモリの一部を前記オペレーティングシステムの前記データアドレス空間に関連付けることを含むトークン。
【請求項５】
請求項４に記載のトークンであって、前記不揮発性のデータストレージメモリの一部を前記オペレーティングシステムの前記データアドレス空間に関連づけることが、前記オペレーティングシステムにアクセス可能な揮発性メモリに前記それぞれのエンクレーブのみのコンテンツをロードすることを含むトークン。
【請求項６】
請求項１に記載のトークンであって、前記プロセッサが任意の前記エンクレーブにアクセスすることを許可された場合に、前記エンクレーブを特定する情報であって、前記プロセッサにとってアクセスできない前記不揮発性のデータストレージメモリの一部内に保存される情報を更に備えるトークン。
【請求項７】
請求項１に記載のトークンであって、
前記不揮発性のデータストレージメモリ内のデータが暗号化されており、及び
前記不揮発性のデータストレージメモリの選択されたエンクレーブのみに前記プロセッサがアクセスすることを許可することが、前記選択されたエンクレーブに特有の復号鍵を提供することを含むトークン。
【請求項８】
請求項１に記載のトークンであって、
全ての前記エンクレーブに共通するコードのみを前記オペレーティングシステムの前記シングルコピーが含み、及び
異なるエンクレーブ用に異なるオペレーティングシステムコードが、各エンクレーブ用として、前記それぞれのポリシー及び設定データ内に含まれるトークン。
【請求項９】
請求項１に記載のトークンであって、各エンクレーブ用の前記ポリシー及び設定データが、レジストリ、アップレット、及びキーオブジェクトのうちの少なくとも１つを含むトークン。
【請求項１０】
以下を備えるコンピュータシステム：
プロセッサ；
データ通信ポート；及び
コンピュータ読取可能コードを含む不揮発性のストレージ；
（ここで、
前記データ通信ポートに接続されたトークンとのインターフェースを行うように機能するミドルウェアを前記コンピュータ読取可能コードが含み；
前記ミドルウェアは、前記プロセッサに以下の動作を実行させるように機能する：
前記通信ポートを介してエンクレーブクエリメッセージを送ること；
前記エンクレーブクエリメッセージに応答し、前記通信ポートを介して、１以上のエンクレーブを特定するエンクレーブクエリ応答メッセージを受け取ること；
前記１以上のエンクレーブのいずれかが前記ミドルウェアに関連するエンクレーブであるかどうかを決定すること；そして、もし前記ミドルウェアに関連するエンクレーブである場合には、
前記関連するエンクレーブを指定するエンクレーブ選択メッセージを前記通信ポートを介して送ること；及び
続いて、前記関連するエンクレーブが前記トークン上の唯一のアクティブなエンクレーブであるかのように、前記トークンと相互作用すること）。
【請求項１１】
請求項１０に記載のコンピュータシステムであって、以下を備えるトークンである少なくとも１つの前記トークンを更に備えるシステム：
プロセッサ；
不揮発性のプログラムストレージメモリ；及び
不揮発性のデータストレージメモリ；
（ここで、
前記不揮発性のプログラムストレージメモリは、オペレーティングシステムのシングルコピーを含み；
前記不揮発性のデータストレージメモリは、複数のエンクレーブを含み、各エンクレーブは、前記オペレーティングシステムが使用可能なポリシー及び設定データを含み；並びに
前記不揮発性のデータストレージメモリは、以下の動作を行うために機能するコンピュータ読取可能コードを含む：
前記データストレージメモリの前記複数のエンクレーブから選択された１つに前記プロセッサがアクセスすることを許可すること；
他の全ての前記エンクレーブに前記プロセッサがアクセスすることを拒否すること；及び
前記１つのエンクレーブが含む前記ポリシー及び設定データを用いて、前記プロセッサに前記オペレーティングシステムを実行させること）。
【請求項１２】
データのセキュリティを確保する方法であって、以下のステップを含む方法：
トークンをコンピュータに接続するステップ（ここで、前記トークンは、プロセッサ、オペレーティングシステムのシングルコピー、及び複数のエンクレーブに分割される不揮発性のデータストレージメモリを備える）；
前記コンピュータ上のミドルウェアから前記トークンへエンクレーブクエリメッセージを送るステップ；
前記エンクレーブクエリメッセージに応答して、前記トークン上の１以上のエンクレーブを特定するエンクレーブクエリ応答メッセージを前記コンピュータへ前記トークンが送るステップ；
前記１以上のエンクレーブのうちいずれかが前記ミドルウェアに関連するエンクレーブであるかどうかを決定するステップ；そして、もし前記ミドルウェアに関連するエンクレーブである場合には、
前記関連するエンクレーブを指定するエンクレーブ選択メッセージを前記コンピュータから前記トークンへ送るステップ；
前記トークンが：
前記エンクレーブのうち前記指定された１つにアクセスし；
前記指定されたエンクレーブが含むポリシー及び設定データを用いて、前記オペレーティングシステムの前記シングルコピーを実行し；及び
他の全ての前記エンクレーブへのアクセスを拒否するステップ；並びに
続いて、前記関連するエンクレーブが前記トークン上の唯一のアクティブなエンクレーブであるかのように、前記トークンと相互作用するステップ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願へのクロスリファレンス
本出願はＳｐｒｉｎｇらによる米国仮特許出願６１／４３６，８３３号の利益を主張するものである（出願日２０１１年１月２７日）。
【背景技術】
【０００２】
本発明の背景
許可されていないアクセスからコンピュータシステムを保護するために、通常は、ユーザーと思しき人物が彼又は彼女自身の身元をシステムに対して証明することをアクセスする際に要求する。様々な認証方法が公知となっており、以下のものが含まれる：ユーザーネーム及び／又はパスワードの入力をユーザーに要求すること；コンピュータシステムに対する物理的なトークンの提示をユーザーに要求すること；及び、システムに接続されたセンサーに対して指紋や他の生体認証パラメータの提示をユーザーに要求すること。セキュリティを高めるためこれらの方法を２以上組み合せて使用することもできる。
【０００３】
様々な種類の物理的トークンが幅広く使用されている。より高度なエンド（ｅｎｄ）では、これら物理的トークンは、暗号化機能を備えるマイクロプロセッサチップを含む装置から典型的には構成され、該機能では、ホストコンピュータ上で実行される「ミドルウェア」プロセスとの認証チャレンジ及び認証レスポンス（応答）を交換することができ、そして、前記物理的トークンは、実際のリソースへのアクセスをコントロールする。典型的には、トークンの物理的な形態は、クレジットカードの形状及び大きさである「スマートカード」又はＵＳＢプラグを一端に備えるコンパクトデバイスの何れかである。これらのデバイスは容易に持ち運び可能であり、また、マッチさせるための個人識別番号（ＰＩＮ）又は他のパスコードを前記デバイスを持ち運びする人物に対して要求することを前記デバイス自身の暗号化認証と組み合せているのであれば、ほとんどの影響力の大きい使用形態に対して十分に安全性が確保される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、多くのユーザーは、自分自身について複数のシステムに対して認証を行う必要があり、各システムは典型的には該システムが所有する認証トークンを典型的には発行する。大量の複数のトークン、及びこれらトークンの中から検索して正しいものを探し出す必要性については、両方ともユーザーにとって煩わしいもものとなる。ＵＳＢトークンについては、こうした大量のトークンの問題はより深刻となり、その理由としては、ＵＳＢプラグの厚みによって、カード形態のようにコンパクトに積み重ねることができないことを意味するからである。
【０００５】
Ｊａｖａ（登録商標）オペレーティングシステム内で利用可能であるグローバルプラットフォームファンクショナリティ（ＧＰＦ）では、複数のユーザーセキュリティドメインを備えたスマートカード又は他のトークンを既に可能にしている。しかし、前記ＧＰＦでは、単一の「カード発行者」によってトークン全体がコントロールされていることを想定しており、該発行者は発行者セキュリティドメイン（Ｉｓｓｕｅｒ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ）によってトークン上に表される。また、前記ＧＰＦは、１以上の補助セキュリティドメイン（Ｓｕｐｐｌｅｍｅｎｔａｒｙ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎｓ）を許可し、該ドメインはカード発行者以外のアプリケーションプロバイダを表すことができる。また、ＧＰＦはコントロール権限セキュリティドメイン（Ｃｏｎｔｒｏｌｌｉｎｇ  Ａｕｔｈｏｒｉｔｙ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎｓ）を許可し、該ドメインは特別な種類の補助セキュリティドメインであり、該ドメインは、トークン上にロードされた全てのアプリケーションコードに対してセキュリティポリシーを強制する権限を有する。その結果、カード発行者以外の任意のアプリケーションプロバイダは、前記発行者及びトークン上の任意のコントロール権限のコントロールを受ける。前記トークンが認証トークンとして使用されている場合には、カード上の前記プロバイダの存在がこうした方法で他のエンティティからの監視を受けることは、前記プロバイダにしてみれば通常は受け入れがたいことである。
【課題を解決するための手段】
【０００６】
本発明の概要
本発明の一実施形態によれば、システム、トークン、方法、及びコンピュータプログラムが提供され、これらは、既存の認証トークン及びプロトコルに適合可能なマルチエンクレーブトークンについて、ほとんど全ての厳重なプロバイダに対する認証トークンエンクレーブとして許容するのに十分なほど独立した複数のアプリケーションエンクレーブを管理することを可能にする。
【０００７】
本発明の一態様は、電子システムと共に使用するためのトークンを提供し、該トークンは、プロセッサ、不揮発性のプログラムストレージメモリ、及び不揮発性のデータストレージメモリを備える。前記不揮発性のプログラムストレージメモリは、オペレーティングシステムのシングルコピーを含む。前記不揮発性のデータストレージメモリは、複数のエンクレーブを含み、各エンクレーブは前記オペレーティングシステムが使用可能なポリシー及び設定データを含む。前記不揮発性のデータストレージメモリは、前記プロセッサに以下の動作を許可するように機能するコンピュータ読取可能コードを含む：データストレージメモリの複数のエンクレーブから選択された１つにアクセスすること；他の全ての前記エンクレーブへ前記プロセッサがアクセスすることを拒否すること；前記１つのエンクレーブが含むレジストリ、アップレット、又はキーオブジェクトのうち少なくとも１つを用いてプロセッサにオペレーティングシステムを実行させること。
【０００８】
エンクレーブは、全てのポリシー及び設定を含むことができ、前記エンクレーブを使用している際に、複数のセキュリティドメインを有するＧＰＦトークンをトークンがエミュレートすることを可能にする。
【０００９】
一実施形態において、トークンは外部用通信ポートを更に備える。前記不揮発性のプログラムストレージメモリは、コンピュータシステムへ前記外部用通信ポートが接続された際に、以下の動作を前記プロセッサに実行させるために機能するコンピュータ読取可能コードを含む：
前記通信ポートを介して、エンクレーブクエリメッセージを受け取ること；
前記エンクレーブクエリメッセージに応答し、前記トークンで定義された１以上の前記エンクレーブを特定する（識別する）エンクレーブクエリ応答メッセージを前記通信ポートを介して送ること；
前記エンクレーブクエリ応答メッセージ内で特定された前記複数のエンクレーブから１つを指定するするエンクレーブ選択メッセージを前記通信ポートを介して受け取ること；及び
前記エンクレーブ選択メッセージに応答し、前記不揮発性のデータストレージメモリの前記指定されたエンクレーブのみを使用して、前記コンピュータシステムと前記トークンが相互作用することを許可すること。
【００１０】
一実施形態において、前記トークンは、前記エンクレーブクエリメッセージの代わりに判読不能なメッセージを受け取った際に、予め決められたのデフォルトエンクレーブのみを使用して前記コンピュータシステムと前記トークンが相互作用することを許可するように機能する
【００１１】
一実施形態において、前記不揮発性のデータストレージメモリと比べて前記オペレーティングシステムはデータアドレス空間（スペース）が小さく、及び
前記不揮発性のデータストレージメモリの選択されたエンクレーブのみに前記プロセッサがアクセスすることを許可することが、前記選択されたエンクレーブに対応する前記不揮発性のデータストレージメモリの一部を前記オペレーティングシステムの前記データアドレス空間に関連付けることを含む。
【００１２】
一実施形態において、前記不揮発性のデータストレージメモリの一部を前記オペレーティングシステムの前記データアドレス空間に関連づけることが、前記オペレーティングシステムがにクセス可能な揮発性メモリに前記それぞれのエンクレーブのみのコンテンツをロードすることを含む。
【００１３】
一実施形態のトークンは、前記プロセッサがエンクレーブにアクセスすることを許可された場合に、前記エンクレーブを特定する情報であって、前記プロセッサにとってアクセスできない前記不揮発性のデータストレージメモリの一部内に保存される情報を更に含む。
【００１４】
一実施形態において、前記不揮発性のデータストレージメモリ内のデータが暗号化されており、及び
前記不揮発性のデータストレージメモリの選択されたエンクレーブのみに前記プロセッサがアクセスすることを許可することが、前記選択されたエンクレーブに特有の復号鍵を提供することを含む。
【００１５】
一実施形態において、全ての前記エンクレーブに共通するコードのみを前記オペレーティングシステムの前記シングルコピーが含み、及び異なるエンクレーブ用に異なるオペレーティングシステムコードが、各エンクレーブ用として、前記それぞれのポリシー及び設定データ内に含まれる。一実施形態において、前記ポリシー及び設定データが、レジストリ、アップレット、及びキーオブジェクトのうちの少なくとも１つを含むことができる。そして、各エンクレーブは、典型的には、自身の所有するレジストリ、自身の所有するアップレットの完全なセット、及び自身の所有するデータ暗号鍵オブジェクトを含む。前記アップレットのセットは、各エンクレーブが属するアプリケーションプロバイダの要件に依存して、同一であってもよく、部分的に同一であってもよく、又は異なっても良い。
【００１６】
本発明の別態様では、プロセッサと、データ通信ポートと、及びコンピュータ読取可能コードを含む不揮発性のストレージとを備えるコンピュータシステムを提供する。前記データ通信ポートに接続されたトークンとのインターフェースを行うように機能するミドルウェアを前記コンピュータ読取可能コードが含む。前記ミドルウェアは、前記プロセッサに以下の動作を実行させるように機能する：
前記通信ポートを介してエンクレーブクエリメッセージを送ること；
前記エンクレーブクエリメッセージに応答し、前記通信ポートを介して、１以上のエンクレーブを特定する（識別する）エンクレーブクエリ応答メッセージを受け取ること；
前記１以上のエンクレーブのいずれかが前記ミドルウェアに関連するエンクレーブであるかどうかを決定すること；
そして、もし前記ミドルウェアに関連するエンクレーブである場合には、
前記関連するエンクレーブを指定するエンクレーブ選択メッセージを前記通信ポートを介して送ること；及び
続いて、前記関連するエンクレーブが前記トークン上の前記唯一のアクティブなエンクレーブであるかのように、前記トークンと相互作用すること。
【００１７】
本発明の更なる態様は、コンピュータシステム、通信、及び／又はデータのセキュリティを確保する方法を提供し、該方法は、第二の態様に従ったコンピュータシステムと第一の態様に従ったトークンとのインターフェース行うこと、選択されたエンクレーブ中のトークンをアクティブにすること、通常のセキュリティトークンであるかのようにトークンを使用することを含む。
【００１８】
本発明の別態様は、ミドルウェア用及び／又はトークン用のコンピュータ読取可能コードを含む不揮発性のコンピュータ読取可能記憶媒体を提供する。
【００１９】
本発明の他の態様は、方法と、コンピュータと、コンピュータシステムと、コンピュータプログラムと、及びコンピュータプログラムを含む非一時的なコンピュータ読取可能記憶媒体とを含む。
【００２０】
本発明に係る上述の及び他の態様、特徴、及び利点については、以下の図面に関連して提示される、本発明のより具体的な以下の実施形態の記述からさらに明らかにすることができる。
【図面の簡単な説明】
【００２１】
【図１】コンピュータシステムの実施形態の概念図である。
【図２】図１のシステムにおいて使用可能であるマルチユーザーのトークンの概念図である。
【図３】図２のトークンの使用に関するフローチャートである。
【図４】図２のトークンの管理のフローチャートである。
【発明を実施するための形態】
【００２２】
好ましい実施形態の詳細な説明
本発明の例示的な実施形態に関する下記の詳細な説明及び添付した図面を参照することにより、本発明の方法及び装置に関する様々な特性及び利点をより深く理解することができるであろう。これらの図面は、企図した方法及び装置の実施形態を描写しているが、対象分野における当業者にとって明白な代替手段や等価の実施形態を排除するものとして解釈するべきものではない。
【００２３】
まずは、図１を参照されたい。コンピューティングシステムに係る一実施形態が参照番号２０として本明細書に表されている。他の装置の中で、コンピュータ（２４）は以下を備える：プロセッサ（２６）、入出力装置（２８、３０）、ランダムアクセスメモリ（ＲＡＭ）（３２）、リードオンリメモリ（ＲＯＭ）（３４）、及び磁気ディスク又は他の長期ストレージ（３６）。コンピュータ（２４）はスタンドアロンであってもよく、又は１以上のＩ／Ｏポート（４０）を介して外部のネットワーク又は他の通信媒体（３８）に接続されてもよい。コンピュータ（２４）の入出力装置は、トークン（５０）と接続可能なポート（４２）を更に含む。例えば、ポート（４２）は、ＵＳＢトークン（５０）を挿入可能なＵＳＢソケット、スマートカード（５０）を挿入可能なスマートカードリーダー等であってよい。トークン（５０）は、少なくとも、マイクロプロセッサ（５２）と、不揮発性のストレージ（５４）（例えば、フラッシュメモリ）と、ランダムアクセスメモリ（ＲＡＭ）（５６）と、及びポート（４２）に適合可能な外部のインターフェース（５８）とを備える。また、トークン（５０）は、ハードウェア暗号化モジュール（６０）を備えることができる。
【００２４】
次に図２について参照されたい。トークン（５０）の一実施形態では、マルチエンクレーブマネージャー（１００）及び複数のアプリケーションエンクレーブ又はパーティション（１０２、１０４、１０６、１０８）を備えており、それぞれが個別のアプリケーションプロバイダによって使用されている。アプリケーションエンクレーブの数は、トークン（５０）が作成された際に固定してもよく、又はマルチエンクレーブマネージャー（１００）で管理者権限を有するユーザーによって設計されてもよい。これら各アプリケーションエンクレーブは、オペレーティングシステム（１１０）を実行し、一実施形態において、Ｊａｖａ（登録商標）グローバルプラットフォームファンクショナリティを含む（登録商標）ＯＳを含む。一実施形態において、Ｊａｖａ（登録商標）ＯＳ（１１０）は、以下のものをサポートする：Ｊａｖａ（登録商標）カード仮想マシン；グローバルプラットフォームファンクショナリティ；Ｊａｖａ（登録商標）カード暗号化ライブラリ；及びＵＳＢインターフェース用のＩＳＯ７８１６プロトコル又は異なるインターフェース用のポート（５８）への適切なプロトコル。また、Ｊａｖａ（登録商標）ＯＳ（１１０）は、暗号化モジュール（６０）とのインターフェースを行う暗号化拡張ライブラリをサポートすることができる。
【００２５】
マルチエンクレーブマネージャー（１００）は最小限のものである。該マネージャーの動作機能としては、カードのスタートアップ時に自身を構築すること、コンピュータ（２４）との初期ハンドシェイクを行うこと、どのアプリケーションエンクレーブ（１０２、１０４、１０６、１０８）が特定のコンピュータ（２４）との特定の相互作用に関与するかについて決定すること、適切なアプリケーションエンクレーブ（１０２）に手渡すこと等が挙げられる。こうした目的のため、マルチエンクレーブマネージャー（１００）には、各エンクレーブの状態及び種類を提供するアプリケーションエンクレーブのリストを保存する不揮発性のストレージ（５４）内にメモリ領域（１１２）が割り当てられる。マルチエンクレーブマネージャーは、オペレーティングシステムに対してよりも更にアナログ的に、通常のコンピュータシステム中のＢＩＯＳに対して作用し、Ｊａｖａ（登録商標）ＯＳ（１１０）が引き継ぐことができるポイントまでシステムをスタートアップさせ、幾つかの非常に基礎的な低レベルの機能を扱う。改変されるリスクを最小限にするため、マルチエンクレーブマネージャーは、製造時にプログラムされた（ｆａｃｔｏｒｙ−ｐｒｏｇｒａｍｍｅｄ）ＲＯＭ中に可能な限り記録される。
【００２６】
そして、マルチエンクレーブマネージャー（１００）はハイパーバイザとして動作することができ、アクティブなアプリケーションエンクレーブ（１０２等）が、該マネージャーに割り当てられたメモリ及び他のリソースにしかアクセスできないことを保証する。しかし、好ましいのは、マルチエンクレーブマネージャー（１００）は、ＯＳ（１１０）のアドレス空間からアクティブなアプリケーションエンクレーブ（１０２等）に属している不揮発性メモリ（５４）の一部へのアドレス変換をセットアップすること、及びＯＳ（１１０）が前記メモリ部分を使用するために必要となる復号鍵をセットアップすることだけにすることである。好ましい実施形態において、ＯＳ（１１０）は、アプリケーションデータ用の限られたアドレス空間を有し、各アプリケーションエンクレーブ（１０２等）に割り当てられた不揮発性メモリ（５４）の一部（１１６）は、ＯＳ（１１０）のアプリケーションデータアドレス空間全体と等しいサイズである。マルチエンクレーブマネージャー（１００）は、アクティブなアプリケーションエンクレーブ（１０２）に属している不揮発性メモリ（５４）の特定の一部を含む不揮発性メモリ（５４）の物理的なアドレス空間内のウィンドウに、ＯＳ（１１０）のアプリケーションデータアドレス空間をマッピングする。そして、アプリケーションエンクレーブ（１０２）以外のエンクレーブ等に属している不揮発性メモリ（５４）の他の部分にＯＳ（１１０）がアクセスすることはほとんど不可能である。
【００２７】
たとえ、Ｊａｖａ（登録商標）ＯＳ（１１０）のメモリ空間がアプリケーションエンクレーブ（１０２）にマッピングされていなかったしても、マルチエンクレーブマネージャー（１００）がプライベートなメモリ領域（１１２）にアクセスすることができ、しかし、プライベートなメモリ領域（１１２）にＪａｖａ（登録商標）ＯＳ（１１０）がアクセスすることは決して許可しないように、マルチエンクレーブマネージャー（１００）は、ハードコード（ｈａｒｄ−ｃｏｄｅｄ）なメモリコントロールを有することができる。
【００２８】
一実施形態において、ＲＡＭ（５６）内にメモリ部分（１１６）をコピーし、ＯＳ（１１０）がＲＡＭのコピーにのみ直接アクセスすることを許可することによって、マルチエンクレーブマネージャー（１００）は、メモリアクセスをコントロールする。こうした目的に利用可能な物理的ＲＡＭの量を制限し、ＲＡＭ（５６）からフラッシュメモリ（５４）の書込みを、フラッシュメモリ（５４）内の特定のアドレス空間に制限することによって、マルチエンクレーブマネージャー（１００）又は別のアプリケーションエンクレーブに属するメモリにアクセスするアプリケーションエンクレーブ（１０２等）に対する更なる保護を提供する。
【００２９】
一実施形態において、マルチエンクレーブマネージャーのプライベートなメモリ領域（１１２）は、例えば以下のデータを指定するＯＳ設定ファイル（１１４）を含む：
アプリケーションエンクレーブの数のデータ；
デフォルトエンクレーブの識別子のデータ；
もし、存在するのであれば、エンクレーブが使用できないデータ；
もし、存在するのであれば、エンクレーブが使用されていないデータ；
使用されていないエンクレーブを提供することを試みるための認証を行うために使用されるライセンスキー。
【００３０】
別の実施形態では、例えば、デフォルトエンクレーブは、トークン（５０）上の第一エンクレーブ（１０２）として固定することができ、そして、ＯＳ設定ファイル（１１４）は、デフォルトエンクレーブの識別子を省略することができる。
【００３１】
また、一実施形態において、ＯＳ設定ファイル（１１４）は、各アプリケーションエンクレーブに関するデータを特定し、例えば以下のデータが挙げられる：
前記アプリケーション用の外部のセキュリティドメインにトークン（５０）を接続するために使用されるエンクレーブＩＤ、エンクレーブ認証キー、又は他の識別情報；
エンクレーブモードフラグであって、例えば、エンクレーブがＦＩＰＳに準拠したモードで稼動するか非ＦＩＰＳモードで稼動するかについて表すフラグ；
エンクレーブアップレットタイプのフラグであって、例えば、マルチエンクレーブマネージャー（１００）が認証可能なアップレットを実行することにエンクレーブが制限されているかどうかについて表すフラグ、又はエンクレーブ上で実行される認証アップレット用のルート証明機関を識別するフラグ。
【００３２】
該実施形態において、アプリケーションエンクレーブ（１０２等）は、マルチエンクレーブトークン（１０２）がエミュレートしようとしているシングルーユーザートークン中のアプリケーションドメインに非常に類似している。アプリケーションエンクレーブ（１０２等）は、Ｊａｖａ（登録商標）ＯＳ（１１０）のシングルコピーを共有し、該コピーは、発行者のメモリ領域の共有部分（１１８）に保存され、アクティブであれば如何なるアプリケーションエンクレーブ（１０２等）でもアクセス可能であるが、しかし、各アプリケーションエンクレーブ（１０２等）は、自身が所有するポリシー及び設定データを有しており、例えば、アップレット、証明書、暗号鍵、及びカードレジストリが挙げられ、アプリケーションエンクレーブ（１０２等）に専用に割り当てられた不揮発性のストレージ（５４）の一部（１１６）内に保存される。アップレットは、アクチベーションアップレット、ファイルマネージャーアップレット、及び適切な暗号化アップレットを含むことができる。
【００３３】
また、後で更に詳述するが、関連するアプリケーションエンクレーブ（１０２等）の専用の鍵（キー）を用いて各領域（１１６）のデータを暗号化することによって、メモリ領域（１１６）の分離を強制的に行うことができる。
【００３４】
図３を参照されたい。コンピュータシステム（２０）及びトークン（５０）の使用において、トークン（５０）のユーザーは、コンピュータ（２４）上又はコンピュータ（２４）を介したリソースにアクセスすることを望む。ステップ（２０２）では、ユーザーは、トークン（５０）をポート（４２）に接続し、例えば、ＵＳＢトークン（５０）のプラグ（５８）をＵＳＢソケット（４２）に挿入したり、又はスマートカードトークン（５０）をスマートカードリーダー（４２）に挿入したりすることによって接続する。ステップ（２０４）では、トークン（５０）は、ポート（４２）から電源供給され、マルチエンクレーブマネージャー（１００）が起動する。該ポイントにおいて、ＯＳ設定ファイル（１１４）によって指定されたデフォルトエンクレーブをデフォルトエンクレーブとして設定する。次回トークン（５０）が電源供給されるまでは、デフォルトエンクレーブをこれ以降いかように変更したとしても影響を及ぼすことは無いであろう。
【００３５】
ステップ（２０６）では、コンピュータ（２４）上で実行されているミドルウェアプロセス（１５０）は、トークン（５０）に問い合わせを行い、ステップ（２０８）では、マルチエンクレーブマネージャー（１００）が問い合わせの特性を決定する。
【００３６】
もし、ミドルウェアプロセス（１５０）がマルチエンクレーブトークン（５０）を認識していない場合は、前記問い合わせは、シングル−ユーザートークンに適したものということになるであろう。もし、後述するように、適切な「エンクレーブクエリ」又は「エンクレーブ選択」コマンド以外の任意の問い合わせを受け取った場合には、マルチエンクレーブマネージャー（１００）は、ミドルウェアプロセス（１５０）がマルチエンクレーブを認識していないと想定することができる。そして、ステップ（２１０）では、マルチエンクレーブマネージャー（１００）は、デフォルトエンクレーブとして定義されたあらゆるアプリケーションエンクレーブ（１０２等）にコントロールを渡す。ステップ（２１２）では、トークン（５０）は選択されたエンクレーブ（１０２等）から起動する。もしデフォルトドメインがない場合には、ステップ（２１０）に進む代わりに、マルチエンクレーブマネージャー（１００）は、ステップ（２０６）にループバックすることができ、有効なエンクレーブクエリを待つか、又はシャットダウンすることができる。
【００３７】
もしミドルウェアプロセス（１５０）がマルチエンクレーブトークン（５０）を認識している場合には、ステップ（２０８）での問い合わせは、「エンクレーブクエリ」コマンドから構成され、該コマンドは任意のバイトの文字列であってもよい。ステップ（２１４）では、マルチエンクレーブマネージャー（１００）は、チャレンジと共にエンクレーブのリストを提供するエンクレーブクエリ応答を戻し、前記チャレンジは乱数又は擬似乱数であってもよい。レスポンスは、例えば、以下のもののうち全て又はいくつかを提供することができる：
トークン（５０）上のエンクレーブ（１０２等）の数；
デフォルトエンクレーブの識別子；
不使用エンクレーブのリスト；
ＯＳ設定ファイルからの各アクティブエンクレーブ用のデータのリスト；
チャレンジワード（例えば擬似乱数であってもよい）。
【００３８】
ステップ（２１６）では、ミドルウェアプロセス（１５０）は各エンクレーブ用のデータのリストを検査し、自身に対応するエンクレーブ（１０２等）を特定する。
【００３９】
ステップ（２１８）では、ミドルウェアプロセス（１５０）は、ミドルウェア（１５０）が相互作用することを望むエンクレーブを指定する「エンクレーブ選択」コマンドをトークン（５０）にリターンする。エンクレーブクエリコマンドに応答して提供されたリスト中の位置を表す番号によってエンクレーブを単純に特定することができる。また、ミドルウェア（１５０）は、チャレンジワードに対するレスポンスをリターンし、該チャレンジワードは、例えば、要求されたエンクレーブと、エンクレーブＩＤと、及びチャレンジワードとに特有のエンクレーブ認証キーを用いて生成された擬似乱数から構成される。乱数又は擬似乱数のチャレンジワードの使用により、繰り返しの攻撃に対してガードが行われる。ミドルウェアプロセス（１５０）とマルチエンクレーブマネージャー（１００）との間で共有される秘密である擬似乱数関数をレスポンスにおいて使用することにより、そして、ミドルウェアプロセス（１５０）と、所望のアプリケーションエンクレーブ（１０２等）との間で共有される秘密であるエンクレーブ認証キーを使用することにより、許可されていないミドルウェアプロセス（１５０）によるアクセスに対する保護が行われる。エンクレーブＩＤ及び／又はエンクレーブ認証キーを含めることにより、間違ったエンクレーブをうっかり選択してしまうことから保護される。
【００４０】
ステップ（２２０）では、マルチエンクレーブマネージャー（１００）は、要求されたエンクレーブに対してレスポンスが正しいことを確認し、認証に成功したことだけを表すことができるコードをリターンする。ステップ（２２４）では、その後、マルチエンクレーブマネージャー（１００）は、アプリケーションエンクレーブ（１０２等）のうち要求された１つをアクティブにする。前記アクティブにすることについては、メモリウィンドウを定義することを含むことができ、その結果、Ｊａｖａ（登録商標）ＯＳ（１１０）のデータメモリアドレス空間は、適切なアプリケーションエンクレーブ（１０２等）に関するデータを含むフラッシュメモリ（５４）の一部にマッピングを行う。前記アクティブにすることについては、適切なフラッシュメモリ（５４）の一部をＲＡＭ（５６）にロードすること、及びＪａｖａ（登録商標）ＯＳ（１００）がＲＡＭコピーのみにアクセスすることを許可することを含むことができる。一実施形態において、フラッシュメモリ（５４）中のアプリケーションデータは、アプリケーションエンクレーブに特有のキーを用いて暗号化され、前記アクティブにすることについては、前記アプリケーションデータ用の正しい復号鍵を提供することを含む。
【００４１】
一実施形態において、最初のユーザーキー暗号鍵は、例えば、以下の表現で生成することができる：
2012155725.tif 000003
ここで：ＵｓｅｒＫＥＫは、生成されるキーであり；
ＰＲＦは、所定の擬似乱数関数であり；
ＵｓｅｒＰＩＮは、ユーザーが手動で入力したＰＩＮであり；
ＤｅｖｉｃｅＫＥＫは、個別のトークン（５０）に特有ではあるが、全エンクレーブに共通するキーであり；
ＭＮｕｍｂは、個別のエンクレーブに特有の乱数である。
【００４２】
ＤｅｖｉｃｅＫＥＫ及びＭＮｕｍｂは、トークン（５０）上に保存される。ＭＮｕｍｂの値は、各アプリケーションエンクレーブ（１０２等）用のＯＳ設定ファイル（１１４）エントリ内に含むことができる。ＤｅｖｉｃｅＫＥＫは、所望のセキュリティレベルに依存してトークン（５０）上の様々な場所に保存することができ、２以上の保存場所の間で分割することができる。例えば、ＤｅｖｉｃｅＫＥＫの一部又は全ては、難読化された形態で、フラッシュメモリ（５４）内に保存することができ、又はＣＰＵ（５２）若しくは暗号化エンジン（６０）の一部を形成するＡＳＩＣ内の保護されたメモリ内に保存することができる。
【００４３】
ステップ（２２６）では、その後、マルチエンクレーブマネージャー（１００）は、複数のアプリケーションエンクレーブ（１０２等）のうち要求された１つに対してコントロールを渡す。そして、プロセスはステップ（２１２）へ進み、選択されたエンクレーブ（１０２等）からトークン（５０）が起動される。エンクレーブ選択メッセージが正しくない場合には、ステップ（２２２）において、マルチエンクレーブマネージャー（１００）は、エラーコードをリターンし、そして、シャットダウンを行うか、又はステップ（２０６）へのループバックを行って更に正確なエンクレーブクエリを待つか、若しくはステップ（２１６）へのループバックを行って更に正確なエンクレーブ選択を待つかのいずれかを行う。
【００４４】
プロセスは、ステップ（２１２）からステップ（２２８）に進み、該ステップ（２２８）において、トークン（５０）は、従来のセキュリティトークンとしてサービス提供を行う。例えば、フラッシュメモリ（５４）内のアプリケーションエンクレーブ空間（１１６）に暗号化形態で保存されるユーザーキーを用いて、暗号化、デジタル署名、又はユーザー認証を行うことができる。そして、暗号化エンジン（６０）（存在する場合）又はトークンＣＰＵ（５２）は、暗号化プロセスを取り扱うことができ、アクティブなキーはトークン（５０）の外に曝されることは決してない。
【００４５】
アクティブなアプリケーションエンクレーブ（１０２）の排他的コントロールの下にあるメモリ部分（１１６）に、フラッシュメモリ（５４）への任意の書込みを制限することを単に保証する目的で、マルチエンクレーブマネージャー（１００）は最小限のアクティブ状態を維持している。
【００４６】
ステップ（２３０）では、トークン（５０）がポート（４２）から除去され、又はコンピュータ（２４）がシャットダウンされる。そして、トークンは電源供給が得られないので、トークン（５０）は自動的にシャットダウンされる。
【００４７】
他の順序も可能である。例えば、もし、前記エンクレーブがどの「スロット」を使用しているかをミドルウェアプロセス（１５０）が知っている場合、「エンクレーブクエリ」コマンドを最初に発行することなく「エンクレーブ選択」コマンドを発行することができる。しかし、それでもなお、ミドルウェアプロセス（１５０）とマルチエンクレーブマネージャー（１００）との間でのチャレンジ＆レスポンスサイクルが望ましい可能性がある。或いは、「エンクレーブ選択」コマンドは、エンクレーブの位置を指定する代わりに、例えば、エンクレーブの種類を指定することができる。エンクレーブの種類のコードの形式は、予想されるトークン（５０）の使用に依存して（例えば、必要とされる特有のコードの数に依存して）決定することができる。特に、トークン（５０）は、通常、区別できない種類のコードを有する２つの異なるアプリケーションエンクレーブによって共有されるべきではなく、従って、前記形式は、特有のコードに関する十分な数を許容できるようにするべきである。
【００４８】
一般的に、利用可能なアプリケーションエンクレーブ（１０２等）をユニークに識別するのに十分な任意の情報、及び適切なアプリケーションエンクレーブ（１０２等）をミドルウェアプロセス（１５０）が認識できるようにするのに十分な任意の情報をエンクレーブクエリ及びレスポンス並びにエンクレーブ選択メッセージにおいて使用することができる。
【００４９】
一実施形態において、アプリケーションエンクレーブ（１０２等）のうち異なるエンクレーブが異なるセキュリティレベルを有する場合には、デフォルトエンクレーブ（１０２）は、トークン上で最もセキュリティレベルが低いエンクレーブである。このことにより、トークン（５０）上の高いセキュリティレベルのアプリケーションエンクレーブを、セキュリティレベルがより低い未知の又は故障したミドルウェア（１５０）に曝すというリスクを最小限にすることができる。しかし、他の実施形態では、デフォルトエンクレーブ（１０２等）の選択は、トークン（５０）のマルチエンクレーブの機能性をサポートすることができない又はサポートしないアプリケーションプロバイダの存在によって要求される。
【００５０】
図４を参照されたい。ステップ（３０２）において、マルチエンクレーブマネージャー（１００）が開始され及び配置され、そして、共有メモリ領域（１１８）中に共有Ｊａｖａ（登録商標）ＯＳ（１１０）がロードされた状態で、トークン（４２）が最初に発行される。ステップ（３０４）では、アプリケーションエンクレーブ（１０２等）が空の状態又は非使用状態で定義され、そして初期化される。一実施形態において、これら空のアプリケーションエンクレーブは、以下のものから構成される：フラッシュメモリ（５４）に配置された物理的空間（１１６）；及び各エンクレーブを識別し、及び物理的なメモリ空間（１１６）を識別するのに充分なＯＳ設定ファイル（１１４）内の情報。ステップ（３０４）はステップ（３０２）と組み合せることができ、又は分離することができる。ステップ（３０２）及びステップ（３０４）が分離している場合には、ステップ（３０４）は、ステップ（３０２）を実行する製造者とは異なるトークン発行者によって実行することができる。特定のトークンに依存して、アプリケーションエンクレーブ（１０２等）の数は固定することができ、又は、ステップ（３０４）で設計することができる。もし、アプリケーションエンクレーブ（１０２等）の数が設計可能であるならば、エンクレーブの数を最大値よりも下に減らすことにより、各エンクレーブに割り当てられるメモリ（１１６）の量を増やすことができ、又は幾つかのメモリを割り当てられていないままにしておくことができる。トークン（５０）を共有しようとするアプリケーションプロバイダの数が予め分かっている場合には、アプリケーションエンクレーブ（１０２等）の数を前記数に制限すれば、マルウェアをインストールすることができる利用可能な非使用状態のエンクレーブ（１０２等）が存在することを回避することにより、セキュリティを向上させることができる。
【００５１】
ステップ（３０６）において、エンクレーブアドミニストレーターは「エンクレーブクエリ」コマンドを用いて、トークン（５０）上の非使用状態のエンクレーブを特定する。ステップ（３０８）において、エンクレーブアドミニストレーターは、「エンクレーブ選択」コマンドを使用して、エンクレーブを選択し、構築する。非使用状態のエンクレーブは、エンクレーブ認証キーを持たないので、認証されていないエンクレーブ選択コマンドが受け入れられる。通常、選択されたエンクレーブは、最初の非使用状態のエンクレーブであろう。ステップ（３１０）において、もし、アプリケーションエンクレーブアドミニストレーターが、既にアクティブになっているアプリケーションエンクレーブ（１０２等）を選択しようとした場合、トークン（５０）は、前記アプリケーションエンクレーブ用の認証されたエンクレーブ選択コマンドを要求する。そして、エンクレーブに関して許可されていない人物が、該エンクレーブの設定を変更することを防止する。ステップ（３１２）では、もし、認証されていないエンクレーブ選択コマンドが無効である場合、又は既にアクティブになっているアプリケーションエンクレーブ（１０２等）に関するものである場合、マルチエンクレーブマネージャー（１００）はエラーメッセージをリターンし、その後、シャットダウンをするか、又はステップ（３０６）までループバックして更に適切な要求を待つかのいずれかを行う。
【００５２】
マルチエンクレーブマネージャー（１００）は、有効なエンクレーブ選択メッセージを生成するための正確な共有された秘密の擬似乱数関数を持つ任意のユーザーによって、任意の非使用状態のエンクレーブを初期化することを許可することができ、又は更なるパスワード若しくは他の証明書を要求することができる。例えば、非使用状態のエンクレーブの初期化を許可するために、トークン発行者がアプリケーションプロバイダに別途提供したライセンスキーをトークン（５０）が要求することができる。
【００５３】
ステップ（３１４）において、アプリケーションエンクレーブアドミニストレーターは、アプリケーションエンクレーブ（１０２等）をマルチエンクレーブマネージャー（１００）レベルで初期化する。マルチエンクレーブマネージャー（１００）には、エンクレーブクエリコマンドに応答して報告され、且つエンクレーブ選択のチャレンジ−レスポンスにおいて使用されるエンクレーブ認証キーを用いて報告されるであろうエンクレーブの種類が提供される。
【００５４】
ステップ（３１６）において、エンクレーブアドミニストレーターは、アプリケーションエンクレーブ（１０２等）を初期化し、そして提供する。このステップは、一般的に、マルチエンクレーブトークン（５０）がエミュレートするシングルユーザートークンを初期化及び提供することと類似している。アプリケーションエンクレーブレベルでの初期化及び提供プロセスは、トークンごとに異なっており、当業者に周知であり、従って、本明細書でのこれ以上の詳述は割愛する。一般的に、前記プロセスは、アプリケーションプロバイダによって提供されるキー、証明書、及びアップレットをトークンへインストールすることを伴う。一実施形態において、エンクレーブは、グローバルプラットフォームＧＰＦドメイン階層全体を含むことができる。
【００５５】
ステップ（３１８）では、図３に関連して記述された使用目的で、ユーザーにトークン（５０）が発行される。
【００５６】
ステップ（３１８）の前又は後のいずれかで、管理プロセスは、ステップ（３０６）に戻ることができ、更なるアプリケーションエンクレーブ（１０２等）を初期化又は構築することができる。異なるエンクレーブにアクセスするために、通常は、トークン（５０）のシャットダウン及び再起動が必要となるであろう。責任を持つアプリケーションエンクレーブアドミニストレーターは、任意の既存アプリケーションエンクレーブに関するアプリケーションエンクレーブアドミニストレーターと同一であってもよく、又は異なっても良い。
【００５７】
ステップ（３２０）では、管理機能は、既存のアクティブなトークン（５０）上で実行することができる。次回、関連するセキュリティドメイン上のミドルウェア（１５０）にユーザーがトークン（５０）を接続したときにミドルウェア（１５０）を介してカードにアクセスすることにより、こうした機能は、アプリケーションプロバイダがリモートで実行することができる。アプリケーションエンクレーブ（１０２等）における管理機能には以下のものを含めることができる：アップレット及びグローバルプラットフォーム監査ログの管理；エンクレーブ用のユーザーＰＩＮのリセット；及び、アプリケーションエンクレーブメモリ領域（１１６）内に保存された任意の又は全てのアップレット、キー、又は他のアプリケーションデータの更新又は削除。
【００５８】
特定のアプリケーションエンクレーブに関連するマルチエンクレーブマネージャーレベル（１００）において管理機能を実行するために、ステップ（２１８）において、アプリケーション管理者証明書を用いてログオンすることを必要としてもよい。管理機能は、エンクレーブ認証キーの更新、エンクレーブ用のユーザーＰＩＮのリセット、エンクレーブの「非使用状態」へのリセットを含むことができる。アプリケーションエンクレーブ（１０２等）がリセットされると、エンクレーブ特有のメモリ領域（１１６）内の全てのデータは、自発的に削除されることが好ましい。
【００５９】
マルチエンクレーブマネージャーレベル（１００）に関連する管理機能を実行するために、ステップ（２１２）又はステップ（２１８）において、マルチエンクレーブマネージャー管理者証明書を用いてログオンすることを必要としてもよい。マルチエンクレーブマネージャー（１００）に関連する管理機能は、以下を含むことができる：アップレット及びＧＰ監査ログの管理；トークン用のユーザーＰＩＮのリセット；任意の又は全てのアップレット又はキー（トークン用のマスターキー−暗号鍵を含む）の更新又は削除；並びにアプリケーションエンクレーブのリセット。ＤｅｖｉｃｅＫＥＫを削除することにより、エンクレーブ選択コマンドをトークン（５０）が有効にすることを防止でき、トークンを使用できないものにすること効果的に行うができ、デフォルトエンクレーブ上のシングル−エンクレーブトークンとしてのみトークンが稼動する結果とすることができる。カードが紛失、盗難、或いは深刻な改竄を受けたりしたと思われる場合には、希望によりトークンを使用できないものにすることができる。
【００６０】
マルチエンクレーブマネージャーアドミニストレーターは、アプリケーションエンクレーブ用のアプリケーション管理者証明書を更に持つことなく、個々のアプリケーションエンクレーブをリセットしたり、そうでない場合には管理を行ったりすることを許容してもよく、又は許容しなくともよい。
【００６１】
特定の実施形態について述べてきたが、本発明の思想又は添付した特許請求の範囲に係る範囲から離れることなく様々な改変を行うことが可能である。そして、異なる実施形態の特徴を一の実施形態と組み合せることができる。
【００６２】
例えば、上述したように、マルチエンクレーブトークン（５０）を認識していないミドルウェアプロセス（１５０）によってトークン（５０）へのチャレンジが行われた場合には、コントロールは、デフォルトエンクレーブ（１０２等）へ渡される。従って、トークン（５０）は、マルチエンクレーブトークン（５０）を認識していないたった１つのプロバイダーしかサポートすることができない。少なくとも幾つかの状況では、マルチエンクレーブマネージャー（１００）は、異なるプロバイダミドルウェア（１５０）からのチャレンジを認識し、適切なアプリケーションエンクレーブ（１０２、１０４等）に各チャレンジを向けることが可能であろう。しかし、こうしたことは、異なるシステムによって使用される特定の最初のチャレンジに依存し、そして、ケースバイケースで決定される必要があるだろう。
【００６３】
或いは、デフォルトエンクレーブは存在しなくともよく、適切なエンクレーブクエリメッセージ又はトークン−発行者レベルの管理者のログオンを除いて任意の最初のチャレンジをトークン（５０）は拒否してもよい。
【００６４】
簡潔にする目的で、記述した実施形態では、コンピュータ（２４）は、特別にプログラムされた通常の汎用目的コンピュータを想定しており、該プログラムは、ユーザーが有用なリソースにアクセスすることをコントロールしており、ミドルウェア（１５０）によってコントロールされるリソースについては詳細に検討してこなかった。一実施形態において、コントロールされたリソースは、コンピュータ（２４）自身であってもよい。別の実施形態では、コントロールされたリソースは、ネットワーク（３８）上のコンピューティングリソースであってもよく、ここで、コンピュータ（２４）は、ネットワーク上のクライアントコンピュータ又はクライアント末端であってもよい。更なる実施形態において、コントロールされたリソースは、スペースへの物理的なアクセスであってもよく、コンピュータ（２４）は、電子的なドアロックであってもよい。更なる実施形態において、コンピュータ（２４）は、暗号化通信を取り扱う装置であってもよく、トークン（５０）は、暗号化鍵及び復号化鍵を含むことができる。
【００６５】
従って、本発明の範囲を表すものとしては、上記明細書よりも添付した特許請求の範囲を参照すべきである。
【図１】
2012155725.tif 000004
【図２】
2012155725.tif 000005
【図３】
2012155725.tif 000006
【図４】
2012155725.tif 000007
【外国語明細書】
2012155725000001.pdf