【文献】
田坂 和之 ほか,ネットワークサービスを非常時にも継続提供するためのアカウント提供・管理方式の実装と評価,情報処理学会第73回(平成23年)全国大会講演論文集(3),日本,一般社団法人情報処理学会,2011年 3月 2日,1E−4,p.3−59〜3−60
(58)【調査した分野】(Int.Cl.,DB名)
請求項1記載のシステムにおいて、前記被保護データー集合が、前記セキュリティ・プロセッサー・インスタンスによる場合を除いて、読み取り不可である少なくとも一部を含む、システム。
請求項1記載のシステムにおいて、前記アカウント管理モジュールが、更に、新たなエンティティが前記アカウントに追加されたとき、新たな被保護データー集合を前記複数のデーター集合に追加するように構成される、システム。
請求項1記載のシステムにおいて、前記アカウント管理モジュールが、更に、対応するエンティティがもはや動作しなくなった後に、被保護データー集合を前記複数のデーター集合から除去するように構成される、システム。
【発明を実施するための形態】
【0007】
[0011] 本明細書において説明する少なくとも1つの実施形態によれば、アカウント管理モジュールが被保護アカウントを維持するシステムについて説明する。例えば、特定の被保護アカウントは、システムの外部からはアクセスできず、恐らくアカウントの外部からでもアクセスできない被保護データー集合を含む。特定のデーター集合は、特定のアカウントに割り当てられた特定のエンティティ(例えば、デバイス、システム(計算システムのような)、ユーザー、コンポーネント、またはこれらの組み合わせ)に対応し、特定のエンティティに対応する鍵を含む。セキュリティ・プロセッサーは、複数の鍵の内少なくとも一部を使用して、特定のエンティティから受けた1つ以上の信頼実行環境コマンドに応答して、暗号プロセスおよびセキュリティ・プロセスを実行する。実施形態では、複数のデーター集合があってもよく、各々が異なるエンティティに対応する。更に、必須ではないが、1つのアカウント内部に複数の被保護データー集合があってもよい。
【0008】
[0012] 計算システムは、今日増々多様な形態を取りつつある。例えば、計算システムは、ハンドヘルド・デバイス(スマート・フォンのような)、アプライアンス、ラップトップ・コンピューター、デスクトップ・コンピューター、メインフレーム、分散型計算システム、または従来では計算システムとは見なされなかったデバイス(腕時計、調理家電、自動車、医療用インプラント等)でもよい。この説明および特許請求の範囲では、「計算システム」という用語は、少なくとも物理的で有形なプロセッサーと、このプロセッサーによって実行することができるコンピューター実行可能命令を有することができる物理的で有形なメモリーとを含む、任意のデバイスまたはシステム(またはこれらの組み合わせ)を含むように、広く定められる。メモリーは、任意の形態を取ることができ、計算システムの性質(nature)および形態に依存してもよい。
【0009】
[0013] 本明細書において使用する場合、「モジュール」または「コンポーネント」という用語は、計算システムにおいて実行するソフトウェア・オブジェクトまたはルーチンを指すことができる。本明細書において説明する異なるコンポーネント、モジュール、エンジン、およびサービスは、計算システムにおいて実行するオブジェクトまたはプロセスとして実装することができる(例えば、別個のスレッドとして)。
【0010】
[0014] 本明細書において説明する実施形態は、以下で更に詳しく説明するように、例えば、1つ以上のプロセッサーおよびシステム・メモリーというようなコンピューター・ハードウェアを含む特殊目的コンピューターまたは汎用コンピューターを含むまたは利用することができる。また、本明細書において説明する実施形態は、コンピューター実行可能命令および/またはデーター構造を伝えるまたは格納するために物理的およびその他のコンピューター読み取り可能媒体も含む。このようなコンピューター読み取り可能媒体は、汎用または特殊目的コンピューター・システムによってアクセスすることができる任意の入手可能な媒体とすることができる。コンピューター実行可能命令またはデーターを格納するコンピューター読み取り可能媒体は、物理的記憶媒体である。コンピューター実行可能命令またはデーターを伝えるコンピューター読み取り可能媒体は、送信媒体である。したがって、一例として、そして限定ではなく、本発明の実施形態は、少なくとも2つの全く異なる種類のコンピューター読み取り可能媒体、即ち、コンピューター記憶媒体および送信媒体を含むことができる。
【0011】
[0015] コンピューター記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいはコンピューター実行可能命令またはデーター構造の形態で所望のプログラム・コード手段を格納するために使用することができ、汎用または特殊目的コンピューターによってアクセスすることができる任意の他の媒体を含む。
【0012】
[0016] 「ネットワーク」は、コンピューター・システムおよび/またはモジュールおよび/または他の電子デバイス間における電子データーの伝送を可能にする1つ以上のデーター・リンクとして定められる。ネットワークまたは他の通信接続(ハードワイヤ接続、ワイヤレス、あるいはハードワイヤまたはワイヤレスの組み合わせ)を介してコンピューターに情報が送られるまたは提供されるとき、コンピューターが接続を送信媒体と見なすのは適正である。送信媒体は、コンピューター実行可能命令またはデーター構造の形態で所望のプログラム・コード手段を伝えるために使用することができ、汎用または特殊目的コンピューターによってアクセスすることができるネットワークおよび/またはデーター・リンクを含むことができる。以上のものの組み合わせも、コンピューター読み取り可能媒体の範囲内に含まれてしかるべきである。
【0013】
[0017] 更に、種々のコンピューター・システム・コンポーネントに到達したとき、コンピューター実行可能命令またはデーター構造の形態のプログラム・コード手段は、自動的に送信媒体からコンピューター記憶媒体に(またはその逆)送ることができる。例えば、ネットワークまたはデーター・リンクを介して受信されたコンピューター実行可能命令またはデーター構造を、ネットワーク・インターフェース・モジュール(例えば、「NIC」)内にあるRAMにバッファし、次いで最終的にコンピューター・システムのRAMおよび/またはコンピューター・システムにおける揮発性でない(less volatile)コンピューター記憶媒体に送ることができる。したがって、コンピューター記憶媒体は、送信媒体も利用する(または主に利用する)コンピューター・システム・コンポーネントに含むことができることは理解されてしかるべきである。
【0014】
[0018] コンピューター実行可能命令は、命令およびデーターを含み、プロセッサーにおいて実行されると、汎用コンピューター、特殊目的コンピューター、または特殊目的処理デバイスに、一定の機能または機能の一群を実行させる。コンピューター実行可能命令は、例えば、バイナリー、アセンブリ言語のような中間フォーマット命令、またはソース・コードであってもよい。主題について、構造的特徴および/または方法論的アクトに特定な文言で説明したが、添付する特許請求の範囲において定められる主題はかならずしも説明した特徴や以上で説明したアクトには限定されないことは理解されてしかるべきである。逆に、説明した特徴およびアクトは、特許請求の範囲を実現する形態例として開示される。
【0015】
[0019] 当業者は、多くのタイプのコンピューター・システム構成を有するネットワーク計算環境において本発明が実施されてもよいことを認めよう。多くのタイプのコンピューター・システム構成には、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、メッセージ・プロセッサー、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター、移動体電話機、PDA、ページャー、ルーター、スイッチ等が含まれる。
【0016】
[0020] この説明および特許請求の範囲において、「デバイス」とは分散型でない任意の計算システムとして定義される。しかしながら、本発明は、分散型システム環境において実施することもでき、ネットワークを介してリンクされたローカルおよびリモート・コンピューター・システム(ハードワイヤ結合データー・リンク、ワイヤレス・データー・リンク、またはハードワイヤ結合およびワイヤレス・データー・リンクの組み合わせのいずれかによって)、双方ともタスクを実行する。分散型システム環境では、プログラム・モジュールはローカルおよびリモート双方のメモリー記憶デバイスに配置されてもよい。
【0017】
[0021]
図1は、計算システム100の一例を示す。計算システム100は、管理ドメイン110(または「管理レベル」)と、ローカル信頼実行環境ドメイン120(または「ローカル信頼実行環境レベル」)とを含む。管理ドメイン110は、プロセッサー111と主メモリー112とを含む。主メモリー112は、プロセッサー111の使用を介して、計算システム100のアドミニストレーターにアクセス可能である。主メモリー112は、物理システム・メモリーであり、揮発性、不揮発性、またはこれら2つの何らかの組み合わせでもよい。「メモリー」という用語は、本明細書では、物理記憶媒体のような、不揮発性大容量ストレージを指すために使用される場合もある。
【0018】
[0022] ローカル信頼実行環境ドメイン120は、人間のアドミニストレーターによってであっても直接アクセスすることはできない。ローカル信頼実行環境ドメイン120は、暗号機能122と被保護エリア123とを含むトラステッド・プラットフォーム・モジュール(TPM)121を含む。TPMのコンテンツに直接アクセスするための何らかの可能な方法があるとすると、この方法は実際にTPMを物理的にばらばらにスライス(slicing)または分解し、複雑な機器を使用してコンテンツを物理的に試験することを伴うであろう。つまり、ローカル信頼実行環境ドメイン120のコンテンツは安全である。被保護エリア123は、TPM外部では読み取りできない少なくともいくつかのコンテンツを含む。しかしながら、暗号機能122は、被保護エリア123のコンテンツを使用して動作することができる。被保護エリアは、イミュータブル・データー123Aとミュータブル・データー123Bとを含む。両タイプのデーターは、暗号機能122によって読み取ることができる。しかしながら、ミュータブル・データー123Bのみが、暗号機能122によって書き込むことができる。
【0019】
[0023] イミュータブル・データーの一例に、裏書き鍵(endorsement key)があり、これはTPMに対するパスポートとして機能し、TPMの識別において製造者レベルのセキュリティを提供する。更に、従来のTPMは物理的に計算システムに接続されるので、裏書き鍵は計算システム100を安全に識別し、つまり計算システム100に対して信頼の土台として役割を果たすことができる。
【0020】
[0024] ミュータブル・データーの例には、他の鍵、単調カウンター(monotonic counter)、および不揮発性メモリーが含まれる。他の鍵は、プロセッサー111の要求に対して作られるのでもよい。単調カウンターは、ゼロから開始し、プロセッサー111によって要求されるとき、またはある種のイベント(システムに電源を投入するというようなイベント)に応答して増分される。鍵は、移動可能(migratable)または移動不可(non-migratable)とすることができる。移動可能鍵は、任意のTPMにおいて適正な許可によって使用することができ、一方移動不可鍵はTPM121においてのみ使用することができる。
【0021】
[0025] 計算システム100は、プロセッサー111とTPM121との間で通信するためのインターフェース130を含む。従来のインターフェース130の一例に、TPMベース・サービス・モジュール(TBS)がある。これは、TPMコマンドをプロセッサー111からTPM121に供給し、しかるべきときには、暗号処理の結果をプロセッサー111に供給する(しかし、勿論、TPM121のコンテンツは供給しない)。
【0022】
[0026]
図1を参照して説明したこの従来の計算システム100は、従来通りに配備されたTPMを有するが、ある種の利点および欠点を有する。例えば、従来のTPMは、どちらかと言えば製造が安価であり、ローカル信頼実行環境レベルにおいて被保護エリアを提供する。しかしながら、TPMの暗号機能は、小型のTPMの能力に処理が限定されるので、非常に遅いことが多い。更に、被保護エリア122のメモリー空間も、非常に狭いことが多く、1メガバイトよりも遙かに少ないことが多い。更に、計算システム100またはTPM121が損傷を受けた場合、TPMに結合された全ての鍵、またはTPMによって作られた全ての鍵が使用できなくなる。更に、従来の計算システムは、物理的にTPMに結び付けられることによってのみ、TPM機能を利用することができる。
【0023】
[0027] TPMを含む従来の計算システムは分散されないが、「計算システム」という用語は、本明細書において使用される場合、ネットワーク環境にわたって分散されることもあり、その場合、処理、メモリー、および/または記憶能力も同様に分散されるであろう。
【0024】
[0028] 以下に続く説明では、1つ以上の計算システムによって実行されるアクトを参照して、実施形態について説明する。このようなアクトがソフトウェアで実現される場合、そのアクトを実行する関連計算システムの1つ以上のプロセッサーが、コンピューター実行可能命令を実行したことに応答して、計算システムの動作を指令する(direct)。このような動作の例は、データーの操作を伴う。コンピューター実行可能命令(および操作されたデーター)は、計算システムのメモリーに格納することができる。
【0025】
[0029]
図2は、本明細書において説明する原理を採用することができる環境200を示す。具体的には、環境200は、複数のクライアント計算システム201(以後「クライアント201」と呼ぶ)を含む。本明細書において説明する原理は、少なくとも一部のローカル信頼実行環境機能を、クライアントからネットワーク203を介してシステム210にオフロードすることを可能にする。従前では、TPMモジュールはローカル信頼実行環境レベルにおいて動作し、つまりクライアントに物理的に結び付けられるので、これは反直感的(counterintuitive)である。
図2の場合、複数のクライアントがTPM機能をシステム210にオフロードすることができる。ネットワーク203の一例はインターネットであるが、本明細書において説明する原理は、恐らくは企業ネットワークのような、他のネットワークにも適用することができる。
【0026】
[0030] TPMの機能は、被保護エリアおよびその読み取り不可機構(non-readability feature)をシステム210にエミュレートさせることによってオフロードされる。例えば、従前のTPMは当該TPMの外部では読み取ることができないデーターを含む被保護エリアを有するが、システム210はエンティティ毎に被保護エリアを有し、この被保護エリアは、セキュリティ・プロセッサー213による場合を除いて、システムの外部から、またはアカウントの外部から読み取ることはできない。システム210は容易に侵害されず、これによって他のエンティティが被保護データーを読み取ることを許さないので、システム210は、被保護エリアのコンテンツの発見に対して重要なバリアを作るときに、ローカル信頼実行環境セキュリティの同等物を設ける。
【0027】
[0031] 更に、セキュリティ・プロセッサー213は、ローカルTPMが通常信頼実行環境コマンドに応答するのと同様に、このような信頼実行環境コマンドに応答することができる。例えば、セキュリティ・プロセッサー213は、鍵および/または被保護データー集合に対して暗号処理および/またはセキュリティ処理を実行することもできる。これによって、
TPMの機能の多くをエミュレートすることができる。クライアントが破壊されても、TPMは引き続きシステム210において利用可能であり、したがって、TPMから生成された鍵および他のデーター(TPMに関連する単調カウンター、不揮発性RAMのコンテンツ等)を引き続き使用することができる。
【0028】
[0032]
図2において、6つのクライアント201Aから201Fまでが示されている。しかしながら、楕円201Gは、本明細書において説明する原理がシステム210に接続された特定数のクライアントに限定されるのではないことを表す。特に、ネットワーク203がインターネットであり、および/またはシステム210がクラウド計算環境である場合、たった1つであっても、潜在的に多くある可能性もある。更に、クライアント201の数は時の経過と共に変化することもあり得る。例えば、システム210がクラウド計算環境である場合、クライアント201の数は秒毎または分毎に変わる可能性がある。
【0029】
[0033] この説明およびそれに続く特許請求の範囲では、「クラウド・コンピューティング」は、構成可能な計算リソース(例えば、ネットワーク、サーバ、ストレージ、アプリケーション、およびサービス)の共有プールに対してオンデマンドのネットワーク・アクセスを可能にするモデルとして定められる。「クラウド・コンピューティング」の定義は、このようなモデルが適正に配備されたときに得ることができる他の複数の利点のいずれにも限定されない。
【0030】
[0034] 例えば、クラウド・コンピューティングは、現在構成可能な計算リソースの共有プールに対して遍在的で便利なオンデマンド・アクセスを提供するように、市場において採用されている。更に、構成可能な計算リソースの共有プールは、仮想化によって迅速にプロビジョニングすることができ、少ない管理の手間またはサービス・プロバイダーの介入で放出することができ、次いでしかるべくスケーリングすることができる。
【0031】
[0035] クラウド・コンピューティング・モデルは、オンデマンド・セルフ・サービス、ブロード・ネットワーク・アクセス、リソース・プーリング、すばやく(時には自動的に)スケールアウト・スケールインできる(rapid elasticity)、適切な計測により、サービスの透明性が確保される(measured service)等というような種々の特性で構成することができる。また、クラウド・コンピューティング・モデルは、例えば、サービスとしてのソフトウェア(「SaaS」)、サービスとしてのプラットフォーム(「PaaS」)、およびサービスとしてのインフラストラクチャ(「IaaS」)というような種々のサービス・モデルの形態で表すこともできる。また、クラウド・コンピューティング・モデルは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、ハイブリッド・クラウド等というような、異なる配備モデルを使用して配備することもできる。この説明および特許請求の範囲において、「クラウド・コンピューティング環境とは、クラウド・コンピューティングが採用される環境のことである。
【0032】
[0036] クライアント201の一部はTPMを含んでもよく、一部は含まなくてもよい。例えば、
図2の場合、クライアント201AはTPM202Aを有し、クライアント201BはTPM202Bを有し、クライアント201Eは
TPM202Eを有する。クライアントの内、クライアント201C、201D、または201Fを含む他のものは、TPMを有さない。ローカル・クライアントTPMが完全にTPMとして実行していなくても、TPMの存在は、以下で説明するように、そのTPMの一部のマシン特定機能をオフロードすることを可能にする(マシンに関連する信頼イベント履歴を供給する能力というような)。しかしながら、TPMがなくても、以下で説明するようにTPM機能の一部をなおもオフロードすることができる。
【0033】
[0037] システム210は、クライアント201によって出された信頼実行環境コマンドを受信する受信モジュール211を含む。信頼実行環境コマンドは、通常はTPMソフトウェア・インターフェース(TBSのような)を使用してTPMに出されるが、代わりに傍受されシステム210にディスパッチされることによって、受信モジュール211によって受信される。例えば、クライアント201Aから201Fまでは、このような信頼実行環境コマンドを、対応する矢印205Aから205Fまでによって表されるようにディスパッチする。各信頼実行環境コマンドは、そのコマンドを出したエンティティに対応するセキュリティ・コンテキスト(例えば、キーまたはデーター)に対して動作するコマンドである。本システムは、受信モジュール211によって受信された信頼実行環境コマンドに応答して、暗号機能およびセキュリティ機能を実行するセキュリティ・プロセッサー213を含む。
【0034】
[0038] また、システム210は、複数の被保護アカウント221を含むアカウント管理モジュール212も含む。
図2において、アカウントは3つのアカウント221A、221B、および221Cを含むが、楕円221Dは、システム210によって管理される任意の数のアカウントがあってもよいことを表す。各アカウントは、クライアント201の内1つ以上に対応し、各クライアントに対応する被保護データー集合を含む。各被保護データー集合は、TPMの被保護エリアがどのようになるか(look like)、クライアント毎にエミュレートする。しかしながら、被保護データー集合はTPMの小さなエリアに限定されないので、被保護データー集合は、はるかに大きくてもよく、恐らくメガバイト、ギガバイト、またはテラバイト範囲となることもあり得る。
【0035】
[0039]
図2において、アカウント221Aは、クライアント201Aに対応する被保護データー集合222Aを有する。アカウント221Bは、クライアント201Bに対応する被保護データー集合222B、およびクライアント201Cに対応する被保護データー集合222Cを有する。アカウント221Bに対するそれぞれのクライアントは、点線のボックスで囲まれている。アカウント221Cは、クライアント201Dに対応する被保護データー集合222D、クライアント201Eに対応する被保護データー集合222E、およびクライアント201Fに対応する被保護データー集合222Fを有する。アカウント221Cに対するそれぞれのクライアントは、破線のボックスによって囲まれている。
【0036】
[0040] 被保護データー集合222は、そのコンテンツがシステムのコンテキストの外部では読み取りできず、おそらくはセキュリティ・プロセッサー213による場合を除いて、おそらくは対応するアカウントの外部でも読み取りできないという意味で「保護される」。一実施形態では、セキュリティ・プロセッサー213のインスタンスが、アカウントのコンテキストの内部で実行される。その場合、アカウント221Aの内部にセキュリティ・プロセッサー213があり、アカウント221Bの内部に他のセキュリティ・プロセッサー213があり、アカウント221Cの内部に他のセキュリティ・プロセッサー213がある。
【0037】
[0041] 各データー集合は、そのTPMに対してメモリーの制約がない場合、対応するクライアント201がそのTPMにおいて有することができるものの例をエミュレートする。例えば、
図3は、イミュータブル・データー301およびミュータブル・データー302を含む特定のデーター集合300を示す。例えば、イミュータブル・データー301は、移動不可である裏書き鍵311を含む。また、イミュータブル・データー301は、移動可能鍵312と、他のイミュータブル・データー313も含む。イミュータブル・データー302は、移動可能鍵321、移動不可鍵322、単調カウンター323、および不揮発性メモリー324を含む。
【0038】
[0042] データー集合300の全ては、以上で述べたように保護される。しかしながら、イミュータブル・データー301は、セキュリティ・プロセッサー213によってでも、変更することはできない。ミュータブル・データー302は、変更することができるが、セキュリティ・プロセッサー213の実行に応答してのみである。裏書き鍵311は、対応するデーター集合のアカウント内部でのみ使用できることから、移動不可鍵である。しかしながら、移動可能鍵312は、アカウントの外部で使用することができるが、移動可能鍵を自由に(in the clear) 読み取ることを防止する、保護された状況(他のTPMまたは他の同様に構成されたアカウントにおいてというような状況)の下でないと使用できない。また、イミュータブル・データー301は他のデーター313も含むことができる。また、ミュータブル・データー302は、移動可能鍵321および移動不可鍵322というような、移動可能および移動不可鍵を有することもできる。また、ミュータブル・データー302は、増分要求に応答しておよび/または他のイベント(マシンの電源投入というような)に応答して不可逆的に増分する単調カウンターも含む。また、ミュータブル・データー302は、不揮発性メモリーも含むことができる。
【0039】
[0043] 任意に、各被保護アカウント221Aから221Cまでが、対応するアカウント・レベル・データー集合223Aから223Cまでを含むこともできる。例えば、アカウント221Aはアカウント・レベル・データー集合223Aを有し、アカウント221Bはアカウント・レベル・データー集合223Bを有し、アカウント221Cはアカウント・レベル・データー集合223Cを有する。各アカウント・レベル・データー集合は、そのアカウントに関連するエンティティのいずれにも特定的ではなく、アカウント自体に対して一般的である。一例として、既存のTPM通信プロトコルを使用する場合、このようなアカウント・レベル・データーに上位PCR(PCR24以上というような)を使用することができる。
【0040】
[0044] 一例として、アカウント221Bが特定のユーザーに対応すると仮定し、アカウント・レベル・データー集合223Bがユーザーのパスワードを列挙するのでもよい。アカウント・レベル・データー集合223Bは、アカウントに関連するイミュータブル・イベントを記録するためにも使用することができる。例えば、アカウント・レベル・データー集合223Bは、オペレーティング・システムにおける高機密機能(アカウントおよびセッション管理というような)の記録を格納するのでもよい。これは、特権を引き上げることまたはアカウントを盗むことを難しくするであろう。更に、アカウントを、例えば、PCRのような他のトラステッド・プラットフォーム・モジュール(TPM)プロパティに結び付けることができると、ユーザーを首尾良く認証し動作状態にするための、システムの暗黙の証明が可能になる。他の例として、ユーザーは、そのユーザーがサイン・アップした一連のライセンスを格納することもできる。この場合も、この一連のライセンスはイミュータブルにすることができ、恐らくこの一連のライセンスを数学的に導くことができる1つのエントリーを使用して作ることができる。その場合、ユーザーが特定の製品に対してライセンスを有するか否かについて質問が出ても、ユーザーは具体的に答えを知ることができる。
【0041】
[0045] したがって、説明したのは、クラウド・コンピューティング環境においてというように、被保護エリアのコンテンツの保証された不変性(immutability)をローカルTPMからサーバにネットワークを介してオフロードする効果的な方法である。これは、クライアント・プロセッサーからTPMに出される信頼実行環境コマンドを傍受し、これらをネットワークを介して、信頼実行環境コマンドを解釈することができるセキュリティ・プロセッサーを有するシステムにリディレクトすることによって遂行され、クライアント毎のデーター集合は、保護されるべきデーターを含む。
【0042】
[0046] これは、ローカルな信頼実行環境レイヤのセキュリティを保存する。何故なら、被保護エリア(例えば、データー集合)は、侵入するのか非常に難しいかまたは不可能であり、被保護データーにアクセスするためにはシステム210の突破を絶対に(essentially)必要とするからである。システム210は非常に精巧であり、高いレベルのセキュリティを有するであろうから、システム210の突破は非常に難しいかまたは不可能であろう。このような困難さまたは不可能は、クライアント・マシン自体においてクライアントTPMに侵入しようとすることの困難さまたは不可能も超えるであろう。したがって、ローカルな信頼実行環境セキュリティが保存される。クライアントからシステム210に情報が伝達されることもあるが、このような情報は信頼実行環境コマンドだけであり、データー集合において保護された実際のデーターではない。したがって、ある人がこのようなトラフィックを読み取ることができても、被保護データーは保護されたままである。実施形態では、クライアント・プロセッサーとシステム210との間に信頼関係が存在すれば、ネットワーク・トラフィックでさえも暗号化されてもよい。このようなことは、コマンドを自由に送信することに関連するセキュリティ問題がある場合にも役に立つであろう。このような信頼関係は、例えば、クライアントがプロビジョニングされる時点で、自動的に開始することができる。
【0043】
[0047] 追加の利点として、メモリー空間がもはや小さいチップに限定されないので、利用可能なメモリーの量を大幅に増やすことができる。更に、処理パワーはもはや小さいTPMチップに限定されないので、暗号プロセスを遙かに効率的に実行することができ、および/または一層複雑にすることができる。また、被保護エリアはもはやクライアントに物理的に結合されないので、クライアントが破壊された場合、被保護エリアからのデーターを使用して作られた鍵を使用し続けることができる。
【0044】
[0048] 他の形態について説明する前に、信頼実行環境コマンドの処理に関連する一般的な処理フローについて、ここで説明する。具体的には、
図4は信頼実行環境コマンドを処理する方法400のフローチャートを示す。一例として、信頼実行環境コマンドは、任意のTPMコマンドでよく、任意の既存のプロトコル(TPMバージョン1.2およびTPMバージョン2.0)に準拠するのでもよく、あるいは今後のTPMプロトコルまたはローカル信頼実行環境レイヤとの通信を容易にする任意のプロトコルに準拠するのでもよい。方法400のアクトの内一部は、「クライアント」という見出しの下において
図4の右側の列に示されるように、クライアント(例えば、クライアント201A)によって実行される。これらのアクトの他のものは、「システム」という見出しの下において
図4の中央の列に示されるように、システム210によって実行される。他のアクトは、「セキュリティ動作」という見出しの下において、
図4の左側の列に示されるように、セキュリティ・プロセッサー213によって実行される。
【0045】
[0049] このプロセスは、クライアントが信頼実行環境コマンドを出すときに開始する(アクト401)。クライアントにおけるローカルTPMにディスパッチされることの代わりに、またはそれに加えて、信頼実行環境コマンドは、解釈され(アクト402)、システムにディスパッチされる(アクト403)。
【0046】
[0050] 次いで、本システムは信頼実行環境コマンドを受信し(アクト411)、この信頼実行環境コマンドを出したクライアントに関連するアカウントを識別し(アクト412)、クライアントに関連するデーター集合を識別し(アクト413)、実行すべき動作を識別する(アクト414)。次いで、動作を実行するようにセキュリティ・プロセッサーに命令し(アクト415)、次いでセキュリティ・プロセッサーが、識別されたアカウントの識別されたデーター集合に対して動作を実行する(アクト421)。
【0047】
[0051] 未だ述べていないTPMの機能の内の1つは、対応するクライアントのパワー・サイクル(power cycle)を検出する能力を拠り所とする。これは、TPMが停電および給電の復旧を検出することができるように、TPMが対応するクライアント内部で結合され、クライアントの電源にハードワイヤ接続される理由の1つである。パワー・サイクルを検出する理由の1つは、TPMが、停電および給電の復旧を体験したときに、被保護データー内部にあるデーターの一部をリセットすることができるようにすることである。場合によっては、TPM内部におけるマシン特定データーの一部の信頼性が、パワー・サイクルについて知ることを拠り所とする。
【0048】
[0052] パワー・サイクルによってリセットすべきデーターの一例に、プラットフォーム・イベント・ログがある。典型的なTPMでは、イベント・ログは1つのエントリーとして表される。新たな対象イベント(例えば、ソフトウェアのロード、ソフトウェアの実行開始)が発生したときにはいつでも、このイベントは直前のエントリーと結び付けられ、ハッシュされ、次いでエントリーの新たな値として格納される。古いエントリーからの情報(即ち、以前のイベント)が保存されるようにこれが行われる場合、プラットフォームにおいて発生した一連のイベントを再生するために、エントリーを数学的に評価することができる。これから、プラットフォームの完全性を証明することができる。
【0049】
[0053] しかしながら、システム210は物理的にクライアント201のいずれとも結合されていないが、代わりにネットワークを介して通信するので、それぞれのクライアント201の内いずれかがパワー・サイクルを体験したか否か判断するのは、システム210には難しい。それにもかかわらず、クライアントがTPMを有する場合、このTPMは、パワー・サイクルが起こったことを推論できるのに丁度十分な情報を追跡することができる。これは、信頼実行環境コマンドがローカルTPMに与えられず、代わりに傍受されてシステム210にディスパッチされるのであれば、ローカル・クライアントTPMが完全に機能していなくても可能である。例えば、
図2において、クライアント201Aは、TPM202Aを含むように示され、クライアント201BはTPM202Bを含むように示され、クライアント201EはTPM202Eを含むように示されている。
【0050】
[0054] この場合、アカウント管理モジュール212および/またはシステム210は、全体として、所与のクライアントにインストールされたローカル・クライアントTPMと通信することによって、そのクライアントがリブートされたことを検出することができる(例えば、クライアント201Aの場合、TPM202Aと通信する)。例えば、システム210は、パワー・サイクルが起こったことを示す暗号文(cryptographic statement)をクライアント201Aから受信することができる。これを行うことができる方法は複数ある。
【0051】
[0055] 第1の例では、システム210およびローカル・クライアントTPMは、パワー・サイクル時にリセットされるレジスタに関連するPCR値をシステム210が受信するように、通信することができる。次いで、システム210は、システムにおける被保護データー内にあるPCRの現在値を、ローカル・クライアントTPMにおけるPCRの値と比較し、パワー・サイクルが生じたか否か推論することができる。
【0052】
[0056] 第2の例では、ローカル・クライアントTPMが、クライアントの電力投入毎に、短期鍵 (ephemeral key)を作り、次いで通信するためにこの短期鍵の使用をクライアント・プロセッサーとネゴシエートすることができる。システム210は、通信を追跡しているので、この短期鍵を把握している。システム210がもはや通信を理解できないことを検出した場合、短期鍵が変化したに違いなく、クライアントにパワー・サイクルが生じたことを暗示する。
【0053】
[0057] 代替実施形態では、システム210におけるTPMがなくても、システム210のパワー・サイクルを検出することができる。例えば、これは、クライアント・システムのパワー・サイクル(cycling)を監視することができるシステム・モニターを有することによって遂行することができる。このようなシステム・モニターの非限定的な例に、MICROSOFT(登録商標)のSystem Center Virtual Machine Monitor(または SCVMM)がある。
【0054】
[0058] システム210は、新たなクライアントがアカウントに追加されたときはいつでも、被保護データー集合を所与のアカウントに追加することができる。例えば、特定のアカウントに関連して通信が検出され、この通信が認識されていないクライアントからであることをこの通信が何らかの方法で示すとき、新たなデーター集合をそのアカウントに追加することができる。つまり、例えば、クライアントが暗号鍵を使用してシステムと通信すると仮定すると、認識されていない暗号鍵を使用する通信が到達した場合、恐らく新たなクライアントが追加されている(has been added)。同様に、あるアカウントの被保護データー集合は、対応するクライアントがもはやそのアカウントにおいて動作しなくなった後には削除してもよい。例えば、ある時間期間(恐らく年単位)使用されていない被保護データー集合がアカウントから削除されるガベージ・コレクション・アクションがあってもよい。
【0055】
[0059] ポリシー・モジュール214は、クライアントに対応する被保護データー集合の1つ以上のデーター・フィールドに関して判断基準が満たされたか否かに依存して、クライアントによるアクションを許可する役割を担うことができる。あるいはまたは加えて、ポリシー・モジュール214は、アカウント・レベルのデーター集合の1つ以上のデーター・フィールドに関して判断基準が満たされたか否かに依存して、アカウントに関連する任意のクライアントによるアクションを許可する役割を担うこともできる。被保護データー集合に関連するメモリーは、ローカルTPMと比較すると著しく増大させることができるという事実と組み合わせて、これはかなりの発展性(significant possibilities)を実現可能にする(enable)。
【0056】
[0060] 例えば、所与のクライアントの被保護データー集合が、当該クライアントの復元状態のイメージ全体を含むと仮定する(例えば、オペレーティング・システム、任意の標準的アプリケーション、標準的構成設定等)。このクライアントが失われたまたは損傷を受けた場合、そのアカウントにおける他のクライアントがこのイメージにアクセスし、一定のポリシーが満たされることを条件に、新たなクライアントにこのイメージをインストールすることができる。このようなポリシーは、不正にクライアントの復元状態を得ることに対して保護されることを意図している。
【0057】
[0061] また、システム210は、移動不可鍵(例えば、アカウント外部では使用することができない鍵)を使用して、そのアカウントに特定的であり、したがってそのアカウントに関連するクライアントの内任意のものによって使用することができる証明書を生成する証明書管理モジュール215も含むことができる。つまり、各クライアントは証明書に基づく認証に関与するためにそれ自体の証明書を作る必要がない。
【0058】
[0062] 本発明は、その主旨や本質的な特性から逸脱することなく、他の具体的な形態で具体化することもできる。以上で説明した実施形態は、いかなる観点においても、限定ではなく例示として見なされてしかるべきである。したがって、本発明の範囲は、以上の説明ではなく、添付する特許請求の範囲によって示されるものとする。特許請求の範囲の意味および均等の範囲に該当する全ての変更は、その範囲内に含まれるものとする。