(58)【調査した分野】(Int.Cl.,DB名)
請求項1記載の方法において、前記第1鍵が、前記トラステッド・プラットフォーム・モジュールが配置された装置においてデーターに署名するプロセスの一部として使用される、方法。
請求項9記載の方法において、前記第2証明書の使用が、前記トラステッド・プラットフォーム・モジュールの秘密裏書き鍵の使用後にのみ前記証明書を使用可能にすることによって、前記トラステッド・プラットフォーム・モジュールの存在という条件が付いたものとする、方法。
請求項9記載の方法において、前記第2証明書が、前記認証機関の署名を含み、当該署名が、前記トラステッド・プラットフォーム・モジュールの秘密裏書き鍵の使用によってのみ解読可能な形態となっている、方法。
請求項9記載の方法において、前記識別結合が、前記証明書要求の第1ダイジェストを含ませることによって、前記証明識別鍵を前記証明書要求に結び付け、前記方法が、更に、
前記コンピューターが、前記証明書要求の第2ダイジェストを計算するステップと、
前記コンピューターが、前記第2ダイジェストが前記第1ダイジェストと一致することを検証するステップと、
を含む、方法。
【発明を実施するための形態】
【0010】
[0015] 暗号鍵は、暗号化およびディジタル署名というような、コンピューター・セキュリティーにおいて種々の用途に用いられている。暗号化とは、解読鍵(暗号鍵と同一であってもよく、なくてもよい)を所有する当事者だけがメッセージを解読できるように、暗号鍵でメッセージを暗号化するプロセスである。ディジタル署名は、エンティティ(署名者)がデーター片について断定(assertion)を行うプロセスであり、署名は、この断定が鍵を所有するエンティティによって実際に行われたことの、暗号強度の保証(cryptographic-strength assurance)を与える。
【0011】
[0016] 暗号化プロセスおよびディジタル署名プロセスは双方共、これらのプロセスに関与する当事者間において暗黙の信頼関係を必要とする。例えば、AがBの鍵でデーターを暗号化するとき、Aは、(a)AがBのものであると信ずる鍵が実際にBの鍵であること、および(b)Bの鍵でデーターを暗号化し暗号化されたデーターを安全でないチャネルで送信しても、暗号化されたデーターが、Aに容認できないような何らかのやり方で使用されることはないことを暗黙の内に信頼している。例えば、点(a)に関して、AはBの鍵を信頼性のないソースから受け取っているかもしれないので、Bに属するとAが信じている鍵が、実際には侵入者の鍵であるかもしれない。また、点(b)に関して、鍵は本当にBの鍵であるかもしれないが、Bは鍵のセキュリティーを危険に晒すような緩いセキュリティー手段を使用するかもしれず、これによって、Bの鍵で暗号化されているメッセージを解読することを、侵入者に許してしまう。同様に、Bによって署名されたと言われているメッセージをAが受信したとき(例えば、「事実Fは真であり、Bが署名した」)、Aがこのメッセージを信頼する場合、Aは、メッセージが本当にBによって署名されたことを暗黙に信頼している(即ち、どの鍵がBのものであるかAは本当に知っていること、そしてBの鍵が危険に晒されていないこと)。加えて、Aは、Bがあるレベルの確信度まで事実Fが本当に真であることを検証していなければ、Bがメッセージ「事実Fは真である」に署名しないことも信頼している。
【0012】
[0017] 鍵が使用されるとき、鍵の信頼は、一般に、機関に鍵の信頼度(trustworthiness)を明らかにさせる(attest)ことによって確立される。この証明(attestation)は、証明書の形態で表され、これによって機関がこの鍵を信頼できることが分かった指示として、機関が鍵に署名する。勿論、機関の署名に対する信頼性(reliance)は、前述したのと同じ形態の信頼が必要となるが、認証機関は、一般に、信頼が確立されるべき関連共同体には周知であるか、または周知の機関に戻る短い信頼連鎖を伴う。このように、エンティティが署名または暗号化のために鍵を用いることを望む場合、このエンティティは、通例、この鍵をしかるべき認証機関に提示し、この機関に鍵に署名するように要求する。機関は、鍵が十分に信頼できると判断するためには、しかるべきとみなす手段であれば何でも採用する。例えば、機関は、どんな種類のセキュリティー手段を、要求元エンティティが鍵を保護するために使用するか判定することができる(例えば、エンティティがハードウェア保護またはソフトウェア保護のどちらを使用するのか)。機関は、要求側エンティティがどのポリシーを使用して、鍵で何に署名できるのか判断するのか問い合わせることができる。また、機関は、あるタイプのエンティティに対して鍵を証明しようとするだけであってもよい(例えば、機関は、会社または他の企業に対する認証機関であることもでき、その企業において装置によって用いられる鍵を証明しようとするだけでもよい)。機関が、鍵を証明できると判断したとき、その鍵および機関の署名を含む証明書を発行する。X.509証明書は、このような証明書の一例である。
【0013】
[0018] 装置がその鍵の信頼度を保証するのに役立つことができる1つの方法は、その装置に結び付けられている信頼プラットフォーム・モジュール(TPM)を採用することである。TPMは、そのホスト装置に対してある種の暗号機能を実行するチップである。ホスト装置はこれらの暗号機能を利用して、豊富なセキュリティー・サービスを一揃え提供することができる。例えば、TPMはデーターを特定の装置実行状態に隠蔽することができるので、その装置が既知の安全状態にあるときにのみ、データーをその装置に提供する。この技法は、多くの場合、ホストにおいて暗号鍵を保護するために用いられる。このような技法では、ホストはTPMを用いて鍵を隠蔽し、隠蔽された鍵だけが装置のディスク・ドライブに格納される。ホストがこの鍵を使用したいとき、ホストはTPMに鍵の隠蔽を解除するように要求する。これは、鍵が隠蔽された実行状態に装置があるときでなければ、TPMは実行できない。この実行状態(通例、プラットフォーム構成レジスター、即ち、「PCR」の特定値によって表される)は、鍵の誤用に対して十分な保証を与える安全なものであることが既に検証されている。TPMが鍵に対してセキュリティーを提供する他の方法は、鍵対を生成し、この鍵対のうち公開部分のみをホストに供給して、この鍵対を必要とする全ての秘密鍵動作がTPMの内部で行われるようにすることである。TPMは、このような鍵に関して種々の保証を与えることができる。例えば、TPMは、TPMを離れていない鍵は移行不可鍵であることを保証することができる(即ち、この鍵は、鍵を隠蔽した特定のTPMを採用するもの以外では、いずれのプラットフォームにおいても用いることができない)。
【0014】
[0019] 移行不可鍵はTPMによって安全が確保されているので、この鍵は、侵入者によって悪用されそうにないこと、そしてホスト・プラットフォームにおいてマルウェアによって誤用されそうにないという意味で、非常に信頼できる。この信頼度を関連共同体の会員に確立するために、ホスト・プラットフォームはこの移行不可鍵を機関に提示し、機関がこの鍵を、信頼度の指示として、証明することを要求することができる。しかしながら、この証明を得るときに問題が発生する。具体的には、このような鍵に対して証明書を発行する前に、認証機関は、署名を求めて提示された鍵が実際にTPMによって安全確保されていることを確認しなければならない。例えば、ホスト機関は、移行不可鍵を有することを請求することもできる。しかしながら、鍵が移行不可であることを証明する前では、認証機関は、単にホストがそう言うのではなく、鍵が移行不可であるとTPMが言うことを主張する。
【0015】
[0020] 「この鍵は移行不可です」というようなステートメントは、一般に、信頼されているエンティティの署名状態によって作られる。TPMは、「裏書き鍵」(「EK」と呼ばれ、その公開部分および秘密部分は、それぞれ、「EK−公開」および「EK−秘密」と呼ぶことができる)と呼ばれる鍵対を有する。所与のTPMの裏書き鍵は、そのTPMを他のTPMから区別する。TPMの公開EKは、その特定のTPMを信頼する認証機関に知られている。例えば、ある会社が、認証機関として機能するようにサーバーを動作させることができ、そのサーバーは、この会社が所有する全てのラップトップに対するEKを知ることができる。このように、ホスト・プラットフォームが鍵を作り、この鍵がTPMによって隠蔽された場合、理論的には、TPMはEKを使用して、TPMがこの鍵が安全であることを信じる指示として、この鍵に署名することができる。認証機関は、それが知っており信頼しているTPMの公開EKを知っているので、認証機関は、署名を使用して、鍵が移行不可であることを信頼されているTPMが既に明らかにしたことを検証することができ、認証機関は、それに基づいて鍵に証明書を発行することができる。しかしながら、実際には、TPMは、それが任意のデーターにEKで署名することを防止するポリシーを有する。このため、TPMは、通例、他の鍵を作るためにEKを使用し、TPMはこれらの鍵を使用してデーターに署名する。このような「他の鍵」の一例に、証明識別鍵(AIK)があり、TPMはこれを使用して他の鍵に署名する。
【0016】
[0021] 通例、AIKは、以下のようにして、鍵の証明書を得るために使用される。ホスト・プラットフォームにおけるソフトウェアが、TPMに新たな鍵対を作ることを要求し、このソフトウェアは公開部分を受け取る。次いで、このソフトウェアは、新たな鍵の公開部分に結び付けられているAIKを作ることをTPMに要求し、次いで、認証機関(「CA」)がAIKの公開部分(即ち、「AIK−公開」)に署名することを要求する。このプロセスの間、CAは、この要求が実際にそれを信頼するTPMから来たことを検証する。例えば、CAは、ノンスを使用することによって、それ自体とTPMとの間における通信チャネルのセキュリティーを検証することができる。一旦AIKに署名する要求が、CAが信頼するTPMから来たことをCAが納得したなら、CAはAIK−公開に署名し、証明書をホスト・プラットフォームに戻す。次いで、ホスト・プラとフォームは新たな鍵を生成し、TPMがAIKの秘密部分(「AIK−秘密」)を使用して新たな鍵に署名することを要求する。AIKを使用して新たな鍵に署名することは、TPMが新たな鍵について作った何らかのステートメントを表すことができる。例えば、AIKで新たな鍵に署名することは、TPMが、新たな鍵が移行不可であることを断言したことを示すことができる。次いで、ホストはCAに新たな鍵、署名、およびAIKのCAの証明書、およびCAが新たな鍵に署名することの要求を提示する。CAはAIK−公開を使用して、新たな鍵における署名を検証し、AIK−公開の証明書を使用して、AIKにおける信頼が既に確立されていることを検証する。次いで、CAは新たな証明書を発行し、それをホストに戻す。
【0017】
[0022] 以上の手順に発生する問題は、CAに対して複数の往復を使用することである。即ち、AIKを証明するために1回、そしてTPMがAIKで署名した鍵を証明するためにもう1回である。
【0018】
[0023] 本明細書において記載する主題は、TPMのホスト・プラットフォームが、1回の往復でCAがTPM保護鍵を証明することを要求することを可能にする。本明細書において記載する技法は、AIKを証明するために別の往復を1回使用することを回避する。代わりに、ホスト・プラットフォームにおけるクライアントが、新たな移行不可鍵を作るようにTPMに要求し、CAがAIKを信頼することを最初に確立することなく、新たな鍵を証明することをCAに要求する。CAは、鍵を証明することによって応答するが、CAが信頼するTPMを有するホスト次第の証明書を以後使用するようにする。この手順を実行するために、クライアントは、このクライアントが証明させたい新たな鍵を作るように、TPMに要求する。次いで、クライアントは、証明書要求、即ち、CAに新たな鍵に証明させる要求を作る。実際にこの要求をCAに送る前に、クライアントは、証明書要求に結び付けられているAIKを作ることを、TPMに要求する。TPMは、識別結合を作ることによって応答する。この識別結合は、AIKの公開部分、証明書要求のダイジェスト、および署名を含む。次いで、クライアントは、新たな鍵に署名することをTPMに要求する。TPMは、鍵証明構造を作ることによって応答する。この鍵証明構造は、証明すべき鍵、鍵についてのステートメント(例えば、「この鍵は移行不可です」)、およびAIK−秘密で作られた署名を含む。次に、クライアントは、証明書要求、識別結合、鍵証明構造、およびTPMのEK−公開の証明書をCAに伝える。
【0019】
[0024] 次に、CAはEK−公開の証明書を調べて、CAが信頼するTPMにそれが属することを確認する。次いで、CAは証明書要求を簡約し、そのダイジェストを、識別結合に含まれているダイジェストと比較し、識別結合における署名を検証する。これらのダイジェストが一致し、署名が検証されたと仮定すると、これらの事実から、CAが受け取った証明書要求に対してAIKが作られたことが証明される。次に、CAは、証明書要求から、証明すべき鍵を復元し、それを、鍵証明構造において特定された鍵と比較して、鍵証明書構造が、証明書要求において指定された鍵に関係することを確認する。次いで、CAは鍵証明構造において行われたステートメントを調べて、鍵についてのステートメントが、CAの証明書発行ポリシーと一致することを確認する(例えば、CAのポリシーが移行不可鍵のみを証明することを要求する場合、CAはステートメントが鍵の移行不可であることを明らかにする(attest)ことを検証する。次いで、CAは、鍵証明構造における署名を検証して、その構造に含まれているステートメントが、AIK−秘密の保持者によって行われたことを確認する。以上の検証の全てが適正であると仮定すると、CAは、この時点で、AIKの保持者が新たな鍵が移行不可であることを断言しており、その鍵に対して証明書を要求していることが分かる。
【0020】
[0025] CAが知らないことは、AIKが、EK−公開と関連があり信頼されているTPMと関連があるか否かということである。つまり、CAは、クライアントに、条件付証明書を発行する。証明書は、EK−秘密(CAから信頼されている)を保持するTPMが、AIKがそのTPMによって発行されたことを検証した場合のみに用いることができるという意味で、条件付きである。証明書を条件付きにするためには、証明書に明確に署名する代わりに、CAが対称鍵を作り、この対称鍵で証明書のその署名を暗号化する。したがって、CAは、暗号化された署名を含む証明書をクライアントに提供し、更にEK−公開によって暗号化された対称鍵を提供する。証明書要求に使用されたAIKが、EKを保持し信頼されているTPMによって実際に作られた場合、そのクライアントは、EK−秘密を使用して対称鍵を解読することをTPMに要求することができる。次いで、この対称鍵は、証明書における署名を解読するために使用することができる。逆に、EK−公開によって特定された信頼されているTPMを有していない装置においてCAがクライアントに証明書を提供する場合、クライアントは署名を解読することができず、証明書を使用することができない。このように、CAは、信頼されているTPMに、特定のAIKの信頼度を検証するジョブを委任することによって、認証機関と、AIKを証明させるクライアントとの間における別の1回の往復を回避する。
【0021】
[0026] これより図面に移ると、
図1は、認証機関が新たな鍵を証明することをクライアントが要求するときに使用することができる種々のコンポーネント、およびこれらのコンポーネント間における相互作用例を示す。図面において、そして以下に続く説明において、クライアントが証明することを要求する鍵を「新たな鍵」と呼ぶ。一例では、この鍵は、クライアントがデーターに署名するプロセスの一部として使用するRivest-Shamir-Adelman(RSA)鍵の公開部分である。つまり、典型的なシナリオでは、クライアントは新たなRSA署名鍵を作り、署名鍵を他のエンティティが信頼できるように、この鍵をCAによって証明させることを求めている。しかしながら、本明細書において記載する技法は、署名鍵、またはRSA鍵の証明に限定されるのではない。一般に、本明細書における技法は、クライアントが鍵を作り、それをCAによって証明させることを求めているときであればいつでも適用できる。つまり、クライアントが証明させようとしている鍵を、ここでは、「新たな鍵」と呼ぶ。本明細書において記載する技法は、種々の鍵の使用を伴い、これらの鍵は、しかるべき呼称および/または修飾によって、本文および図面において区別することにする。
【0022】
[0027] 装置102は、パーソナル・コンピューター、ハンドヘルド・コンピューター、セット・トップ・ボックス等のように、何らかの計算能力を提供する装置である。装置102には、TPM104が装備されている。TPM104は、TPM104が配置されている装置102に、種々のセキュリティー・サービスを提供するコンポーネントである。TPM104は、裏書き鍵(EK)106を有する。裏書き鍵106は、非対称鍵対であり、それぞれ、公開部分108および秘密部分110を有する(ここでは、「EK−公開」および「EK−秘密」と呼ぶ)。各TPM104は、他のTPMによって共有されない、それ自体のEKを有する。EK106の一態様では、EK−秘密はTPM104の外部には露出されない。TPM104はインターフェースを露出し、装置102がこのインターフェースを使用して、TPM104がEK−秘密によってデーター片を解読することを要求することができ、TPM104は、EK−秘密の実際の値を露出することなく、装置102のためにデーターを解読できるようになっている。また、TPM104は、種々の他のセキュリティー機能も提供する。例えば、TPM104は、装置の現在の実行状態の測定値を記録する1組のレジスター(プラットフォーム構成レジスター、またはPCRと呼ぶ)を維持し、TPM104は、装置102がデーター片を特定の装置状態に隠蔽することを可能にする。このように、装置102は、TPM104のみが隠蔽解除することができる隠蔽データー片を保持することができ、TPM104は、装置102が現在既知の「安全」状態になければ、データーの隠蔽解除を拒否することによって、このデーターを保護することができる。TPM104によって提供される他の特徴は、TPM104内部にある少量のメモリーであり、鍵を格納するために使用することができる。このように、TPM104は、鍵対を生成することができ、そして秘密部分は装置102の安全でない部分には露出されないように、その鍵の秘密部分をそれ自体のメモリーに保持することができる(即ち、TPM104の外部にある装置102の部分)。この意味において、鍵対の中の秘密鍵がTPM104内部に保持されている場合、移行不可鍵となる。特定の装置のTPMの外部には露出されないので、他の装置に移行させることはできない。
【0023】
[0028] クライアント112は、ある目的(例えば、署名または暗号化)のために新たな鍵を作ることを望むソフトウェア・コンポーネントである。クライアント112は、アプリケーション、オペレーティング・システムのコンポーネント、または装置102において実行する任意の他のタイプのソフトウェア・コンポーネントとすることができる。クライアント112が新たな鍵を作ることを決定したとき、クライアント112は、TPM104が鍵を作ることの要求114を発行する。TPM104は、要求された鍵を作り、鍵ハンドル116を戻す。この鍵ハンドル116によって、鍵を特定することができる。通例、要求114はRSA鍵対のような、非対称鍵対を作ることの要求であり、この場合、鍵ハンドル116は、新たな鍵の公開部分を含む(秘密部分はTPM104の内部だけに保持されている)。この例では、RSA鍵対の公開部分が、クライアントが証明させようとしている「新たな鍵」となる。(通例、データーに署名するために使用されるのは秘密鍵であり、公開鍵は、署名を検証するために、他の当事者によって使用される。データーは、ある者が後に署名を検証することを予期して署名されるので、本明細書に限って言えば、公開鍵は署名データーの「プロセスの一部」であると見なすことができる。)
[0029] 新たな鍵を証明させるために、クライアント112は証明書要求118を作る。証明書要求118は、認証機関が鍵を証明することを要求する、正式なデーター構造である。クライアント112は、この時点では、証明書要求118を認証機関には送らない。そうする前に、クライアント112は、TPMによって作られた種々のデーター片を、証明書要求と共に送るための手配をする。これらの種々のデーター片について、以下に説明する。
【0024】
[0030] 最初に、クライアント112は、TPM104に、証明識別鍵(AIK)を求める要求119を発行する。TPM104は、任意のデーター片に結び付けられたAIKを作る関数を露出する。例えば、TPM104は、「CreateAIK (blob)」のような関数を露出することができる。これは、暗号的に「blob」に結び付けられるようにAIKを戻す(「blob」は任意のデーター片である)。具体的には、クライアント112が要求「CreateAIK (blob)」を発行したとき、TPM104は以下の形態のデーター片を戻す。
【0026】
(表記について、垂直線の記号「|」は、連結を指す。加えて、この説明にわたって、「sig<鍵対>−秘密(<データー>)」という表記は、<鍵対>の秘密部分を使用することによって、<データー>に対して作られる署名を指す。)クライアント112がAIKをTPM104に要求するとき、AIKを結び付けることをクライアントが要求する「blob」は証明書要求118のダイジェストとなる。AIK−作成機能によって戻されたデーターを、識別結合120と呼び、識別結合120の一例を
図6に示す。具体的には、識別結合120は、AIK−公開602、証明書要求のダイジェスト604、ならびにAIK−公開602およびダイジェスト604に受け渡される署名606を含み、署名606は、AIK−秘密を使用して作られる。つまり、クライアント112がTPM104から受け取る識別結合120は、以下のようになる。
【0028】
識別結合が行うことは、AIKを特定の証明書要求に結び付けることである(その要求のダイジェストを介して)。実際、署名は、AIK−秘密の保持者(TPM104)が、「ダイジェスト」はAIKを作った目的であるデーターであることを断言したことを意味する。識別結合120を有する当事者は誰でも、署名を検証するためにAIK−公開を使用することができる。
【0029】
[0031]
図1に戻って、クライアント112は次にTPM104に、新たな鍵にAIKで署名させる要求122を発行する。TPM104がAIKで鍵に署名すると、TPM104は、鍵に適用するセキュリティー
特徴(security feature)を示す構造を戻す。例えば、前述のように、クライアント112がCAによって証明させようとしている新たな鍵は、TPMによって作られた。この新たな鍵が鍵対である例では、TPM104は秘密部分をTPM104の内部に保持し、秘密部分をTPM104の外部には暴露しない。この意味では、新たな鍵は移行不可である。何故なら、その秘密部分は、TPM104を含む特定の装置(即ち、装置102)以外ではいずれの装置でも使用できないからである。したがって、TPM104がAIKで鍵に署名すると、実際に以下の情報を含む構造を戻す。
【0031】
ここで、「ステートメント」は、新たな鍵についてのステートメントである。例えば、ステートメントは、実際には、「署名されようとしている鍵は移行不可鍵です」と言うことができる。(英語の文章で表現されるステートメントの例は、単に例示のために過ぎない。通例、ステートメントは、コードを使用して作ることができる。または、TPMが、鍵が特定のセキュリティー標準に一致しなければ鍵に署名することを拒否するという既知のポリシーを有する場合、ステートメントは、TPMが鍵に署名したという事実に内在することもできる。加えて、「移行不可であること」は、鍵の特徴の一例であり、この例は、本明細書における記載全体において使用されることを注記しておく。つまり、本説明では、頻繁に、移行不可という特徴を有するものとして鍵に言及し、または鍵が移行不可であるというステートメントに署名するために使用されるAIKに言及し、または鍵が移行不可であるというポリシーを満たすことをチェックするCAに言及する。しかしながら、移行不可であることは、このような特徴の一例に過ぎない。一般に、鍵は任意の特徴を有することができ、鍵証明構造に含まれるステートメントは、任意のこのような特徴を明らかにすることができ、CAは任意の1組の0個以上の特徴を有することを鍵に要求するポリシーを強制することができる。このように、本明細書における記載は、移行不可鍵に言及するが、鍵証明構造は単に鍵の一部の特徴を明らかにするに過ぎず、その特徴が何であるかには関係なく、そして、以下で論ずるように、CAは鍵証明構造を使用して、AIK−秘密が、CAのポリシーが要求する任意の特徴を明らかにするために用いられていたか否か判断することができる。)
[0032] したがって、TPM104が鍵に署名すると、鍵証明構造124を生成する。鍵証明構造124の一例を
図7に示す。鍵証明構造例124は、ステートメント702(図示のように明示的に表現することができ、または暗示的に表現することもできる)を含む。また、鍵証明構造124は、証明すべき新たな鍵704、および署名706も含む。署名706は、AIK−秘密を使用して作られ、ステートメントおよび新たな鍵について計算されている。鍵証明構造124は、いかなるエンティティが制御しても、AIK−秘密は、新たな鍵704が移行不可鍵であると言うこと(または、AIK−秘密の保持者が明らかにしている任意の特徴を有する)を証明する(prove)。AIK−公開を所有する任意のエンティティ(即ち、前述した識別結合を受け取った任意のエンティティ)は、署名を使用して、新たな鍵704およびステートメント702が、AIK−秘密を所有するエンティティによって署名されたことを証明することができる。
【0032】
[0033]
図1に戻って、認証機関(CA)126は、クライアント112が新たな鍵を証明することを要求することを望むエンティティである。クライアント112は、既に証明書をCA126に要求する用意ができている。CA126が新たな鍵を証明することを要求するために、クライアント112は、CA126に、証明書要求118、識別結合129、鍵証明構造124、およびEK106の証明書128(即ち、EK−公開を含む、TPM104の裏書き鍵の公開鍵証明書)を送る。これらの品目は、CA126によって受け取られる。
【0033】
[0034] 一例では、CA126は、要求に応えて証明書を発行するサーバーである。例えば、CA126は会社(または他の企業)内部にあるサーバーとすることができ、企業内の新たな装置の鍵を証明することによって、これらを登録する。CA126は、発行コンポーネント130を含む。発行コンポーネント130は、どの鍵を証明するかについて判断を下す。CA126は、信頼されているTPMのリスト132(例えば、CA126が信頼するTPMのEK−公開のリスト)を含むことができる。また、CA126は、証明書要求が付与されるまたは拒否されるべき規則を含むポリシー134を有することもできる。例えば、CA126は、移行不可鍵のみを証明するポリシーを有することができ、または他の何らかのポリシーを有することもできる。加えて、CA126は署名検証部136を有することもできる。署名検証部136は、CAが受け取った種々のデーター片における暗号署名を検証することをCAに可能にする。これらのコンポーネントは、発行コンポーネント130によって使用することができる。例えば、発行コンポーネントは、署名検証部136を使用して、識別結合および鍵証明構造における署名を検証することができる。また、発行コンポーネント130は、信頼されているTPMのリスト132を使用して、どのTPMの鍵であれば証明しても構わないか判断することができる。加えて、発行コンポーネント130は、ポリシー134を使用して、証明書要求が信頼されているTPMから来ている場合であっても、特定の鍵を証明するか否か判断することができる。(例えば、発行コンポーネントはTPM104を信頼することができるが、鍵が移行不可であるとTPM104が言わない場合、TPM104の鍵を証明しようとしない場合もある。)
[0035] CA126が前述の品目をクライアント112から受け取ると、以下のことを行う。最初に、CA126は証明書128(TPM104の裏書き鍵の公開部分を含む)を調べて、CA126が、クライアント112が実行している装置におけるTPMを知っておりそれを信頼するか否か判断する。例えば、TPM104がCA126に知られていない場合(証明書128をリスト132と比較することによって判断することができる)、CA126は、TPM104がインストールされている装置において鍵を証明しなくない場合もある。つまり、証明書128が、証明が求められている鍵が知らないTPMに結び付けられていることを示す場合、CA126は証明書要求を拒否することができる。
【0034】
[0036] CA126が、公開裏書き鍵が証明書128に現れているTPMを知っており、信頼していると仮定すると、CA126は次に証明書要求118を調べて、クライアント112が証明することを要求している新たな鍵を復元する(その鍵は証明書要求に含まれているからである)。
【0035】
[0037] 次に、CA126は識別結合120を調べて、証明書要求のダイジェストを発見する。次いで、CA126は、証明書要求のダイジェストを計算し(識別結合120においてダイジェストを作るのに用いたのと同じダイジェスト・アルゴリズムを使用して)、識別結合に含まれているダイジェストが、CA126が計算したダイジェストと一致することを検証する。これらのダイジェストが一致した場合、CA126はAIK−公開を識別結合120から読み出し、AIK−公開を用いて、識別結合120における署名を検証する。AIKは、その作成時に、特定のデーター片に結び付けられることが思い出されよう。署名の検証によって、この特定のAIKが作られたデーター片が、証明書要求118のダイジェストであることが証明される。ダイジェスト・プロセスが安全である範囲で、AIKがそのダイジェストに対して作られたという事実は、AIKが証明書要求118に対して作られたことを証明する。尚、検証プロセスが失敗した場合(即ち、AIKが、現在作られているもの以外の何らかの証明書要求に対して作られた場合)、この事実は、証明書要求が何らかのタイプの反射攻撃の一部として作られていたことを示唆し、CA126はこの要求を拒否できることを注記しておく。
【0036】
[0038] 次に、CA126は、鍵証明構造を調べて、AIK−秘密の保持者が、セキュリティー要求に含まれる新たな鍵についてどんなステートメントを作っているのか判定する。CA126は、AIK−公開を使用して、鍵証明構造における署名を検証する。署名が検証できない場合、CA126は、AIK−秘密の保持者がCA126について任意の特定のステートメントを作ったと結論付けることができず、したがってCA126は証明書要求を拒否する。署名が検証できたと仮定すると、CA126は、新たな鍵の特性がCA126のポリシー134と矛盾しないか否か判断する。例えば、CA126が移行不可鍵のみを証明するポリシーを有する場合、鍵証明構造は、AIK−秘密の保持者が鍵は移行不可であると言うことを示すことを主張することができる。
【0037】
[0039] この時点まで、プロセスの説明は、どのエンティティがその鍵を保持するか特定することなく、「AIK−秘密の保持者」に言及した。実際には、AIK−秘密はTPM104によって保持される。何故なら、AIKを作ったのはTPM104であるからである。しかしながら、この事実はCA126には知られていない。CA126は、TPM104の裏書き鍵の公開部分を知っているが、CA126は、特定のTPMと特定のAIKとの間の関係を、単に裏書き鍵から推論することはできない。言い換えると、本プロセスのこの時点において、CA126は、何らかのエンティティが、CA126が受け取った特定の証明書要求に対してAIKを作成したことを知っており、そしてそのエンティティが何であれ、証明すべき鍵について、CA126の発行ポリシーを満足するというステートメントを作ったことを知っている。しかし、CA126は、そのエンティティが誰なのかは知らない。前述のように、CA126はTPM104の公開裏書き鍵を調べており、そしてTPM104が信頼できると判断しているので、AIK−秘密を制御するエンティティがTPM104である場合、CA126は証明書要求を付与しても構わない。しかし、CA126は、AIK−秘密がTPM104によって制御されているのか、または何らかの他のエンティティによって制御されているのか知らない。以下で説明するが、CA126は、AIK−秘密を制御するエンティティが実際にTPM104である場合にのみ用いることができる形態で、条件付き証明書を発行することができる。具体的には、この証明書の形態は、TPM104が何らかの動作を実行した後でなければ、証明書を使用できないようになっている。特に、証明書における署名は、TPMによって実行されるプロセスの結果としてのみ解読できるように暗号化することができる(例えば、TPMによる署名の解読、後に署名を解読するために使用される鍵のTPMによる解読)。
【0038】
[0040] 特定のTPMの存在について条件付きの証明書を発行するために、CA126は、要求に応じて、新たな鍵に対して証明書(例えば、X.509証明書)を作る。証明書は、証明すべき鍵と、鍵を証明する認証機関の署名とを含む。通常、署名は証明書においてクリアである(即ち、暗号化されていない)。しかしながら、CA126が証明書を作るとき、対称鍵を作り、この対称鍵を使用して署名を暗号化する。暗号化された署名は、クリア署名に代わって、証明書の中に置かれる。次いで、CA126は、TPM104の公開裏書き鍵で(即ち、CA126が証明書128において受け取ったEK−公開)、対称鍵を暗号化する。EK−秘密の保持者(即ち、TPM104)のみが、EK−公開で暗号化された情報を解読することができるので、TPM104のみが対称鍵を復元することができる。したがって、CA126は、クライアント112に、(a)暗号化された署名がある証明書138、および(b)暗号化された対称鍵140(EK−公開によって暗号化された)を送る。クライアント112が暗号化された対称鍵を受け取ると、それをEK−公開で解読することをTPM104に要求することができ、これによってクライアント112が対称鍵で署名を解読することが可能になる。次いで、クライアント112は、証明書138における暗号化された署名を、クリア署名と置き換えることができる。証明書138を
図8に示す。証明書138は、新たな鍵704を、暗号化された署名802と共に含む。この署名802は、対称鍵によって暗号化されたsig−CA−秘密(新たな鍵)である。(「CA−秘密」はCA126の秘密鍵である。)
[0041] 尚、CA126が証明している鍵が、CA126によって強制される、該当する標準(例えば、移行不可であること)を満たすことを、TPM104が明らかにした場合、CA126は使用可能な証明書を発行することのみを望むことを注記しておく。CA126がこれを真であると認めるのは、TPM104が実際にAIKを生成したエンティティである場合だけである。理論的には、AIKは、TPM104以外の何らかのエンティティによって生成された可能性もある。その場合でも、CA126は、TPM104が解読することができる、暗号化された署名のある証明書138を発行する(何故なら、TPM104の秘密裏書き鍵で復元できる対称鍵で、署名が暗号化されているからである)。しかしながら、CA126が、暗号化された署名がある証明書を、TPM104に送るとき、CA126はTPM104を拠り所として、証明書138によって証明された新たな鍵が実際にTPM104がAIKで署名したものでない場合には、クリア署名の証明書を作らない。実際に、CA126はこの判定をTPM104に委任する。CA126がこれをすることができるのは、TPM104が、CA126が信頼するTPMであることを既に確定しているからである。つまり、TPM104が暗号化された署名がある証明書138を受け取った後、TPM104は、証明書138によって証明された新たな鍵が、TPM104がAIKで署名した鍵であるか否か判断する。そうである場合、TPM104は署名を解読し、暗号化された署名をクリア署名と置き換える。そうでない場合、TPM104は署名を解読せず、これによって証明書を使用不可能にする。当事者が信頼するしかるべき機関によって証明書が署名されたことをその当事者が検証できないかぎり、当事者は鍵証明書を信頼しない。証明書における署名を解読することができない場合、この証明書は事実上使用不可のままとなる。何故なら、いずれの当事者とも信頼を確立するために使用することができないからである。
【0039】
[0042]
図2から
図5は、フロー・チャートの形式で、鍵を証明する要求を行い、それに作用することができるプロセス例を示す。
図2から
図5の説明に移る前に、これらの図に含まれる流れ図について、一例として、
図1に示したコンポーネントを参照して説明するが、このプロセスは、任意のシステムにおいて実行することができ、
図1に示すシナリオに限定されるのではないことを注記しておく。加えて、
図2から
図5における各流れ図は、ブロックを繋ぐ線によって示されるように、プロセスの段階が特定の順序で行われる例を示すが、これらの図において示す種々の段階は、任意の順序で、あるいは任意のコンビネーションまたはサブコンビネーションで行うことができる。
【0040】
[0043] 202において、クライアントが、TPMが新たな鍵を生成することを要求する。先に注記したように、新たな鍵は、例えば、RSA鍵対であり、暗号化または署名のような任意の暗号機能に使用することができる。RSA鍵対を生成する例では、流れ図において言及される「新たな鍵」(即ち、証明すべき鍵)は、鍵対の公開部分である。
【0041】
[0044] 204において、新たな鍵に対する証明書要求が作られる。この要求のダイジェストが作られ(206において)、次いで、クライアントは、TPMが、ダイジェストに結び付けられたAIKを作ることを要求する(208において)。次いで、TPMはAIKを作り(210において)、識別結合を戻す。先に注記したように、識別証明は、AIK−公開、ダイジェスト、ならびにAIK−公開およびダイジェストに引き渡される署名(署名はAIK−秘密によって作られる)を含む。
【0042】
[0045] 212において、クライアントは、TPMが新たな鍵にAIKで署名することを要求する。次いで、TPMは鍵証明構造を戻す(214において)。鍵証明構造は、新たな鍵についての(明示的または暗示的な)ステートメント(例えば、「この鍵は移行不可です」)、新たな鍵自体、ならびにステートメントおよび新たな鍵(AIK−秘密によって作られた署名を有する)に引き継がれる署名を含む。216において、クライアントはCAに、(a)証明書要求、(b)識別結合、(c)鍵証明構造、および(d)TPMの裏書き鍵の公開鍵証明書(EK−公開)を送る。218において、これらの品目はCAによって受け取られる。
【0043】
[0046] 220において、CAはEK−公開を既知のTPMのリストと突き合わせてチェックし、EK−公開に基づいて、EK−公開と関連のあるTPMがCAには知られていない、または信頼できないTPMからであることが分かったと CAが判断した場合(222において判断する)、CAはこのプロセスを中断し(224において)、証明書を発行しない。EK−公開が既知の信頼できるTPMからである場合、本プロセスは226に進み、CAは証明書要求を読んで、証明することを要求されている新たな鍵を得る。
【0044】
[0047] 次に、CAは、識別結合における署名を検証し、結合からダイジェストを復元し、更に証明書要求からダイジェスト自体を計算する。識別結合が証明書要求と一致しない場合(即ち、証明書要求に含まれるダイジェストが、CAが証明書要求から計算したダイジェストと同じでないと228において判断された場合)、本プロセスは中断し、CAは証明書を発行しない(230において)。それ以外の場合、本プロセスは232に進む。
【0045】
[0048] 232において、CAは、鍵証明構造が、新たな鍵が該当するポリシーを満たす(例えば、移行不可であることのポリシー)ことを明らかにするか否か判断する。CAは、例えば、鍵構造証明における署名を検証し、次いでこの構造が鍵について作ったステートメントを調べることによって、この判断を下すことができる。署名が検証できない場合、またはステートメントが、鍵を証明するCAのポリシーを鍵が満たしていないことを示す場合、本プロセスは中断し、CAは証明書を発行しない(234において)。そうでない場合、本プロセスは236に進み、CAは証明書の発行に進む。
【0046】
[0049] 236において、CAは、証明書における署名を暗号化するために使用される対称鍵を作る。238において、CAは新たな鍵に対して証明書を作る。240において、CAは証明書に対して署名を作る。242において、CAは署名を対称鍵で暗号化し、暗号化された署名を(クリア署名の代わりに)証明書に含ませる。244において、CAは対称鍵をEK−公開(証明書を発行しようとしている装置におけるTPMの裏書き鍵の公開部分)で暗号化する。246において、CAは、証明書を要求したクライアントに、鍵の証明書(暗号化された署名を有する)、およびEK−公開によって暗号化された対称鍵を送る。248において、これらの品目はクライアントによって受け取られる。
【0047】
[0050] 250において、クライアントは、対称鍵をEK−秘密で解読することをTPMに要求する。証明書に含まれている鍵が、TPMが証明書要求に用いられたAIKで署名されたものと同じであると仮定すると、TPMは対称鍵を解読し(252において)、それをクライアントに戻す。すると、クライアントはこの対称鍵を使用して、署名を解読し、証明書における暗号化された署名をクリア署名と置き換える(256において)。この時点で、クライアントは新たな鍵に対して使用可能な証明書を所有することになる(258において)。
【0048】
[0051]
図9は、本明細書において記載した主題の態様を配備することができる環境の一例を示す。
[0052] コンピューター900は、1つ以上のプロセッサー902と、1つ以上のデーター記憶コンポーネント904とを含む。プロセッサー(1つまたは複数)902は、通例、パーソナル・デスクトップまたはラップトップ・コンピューター、サーバー、ハンドヘルド・コンピューター、または他のタイプの計算機において見られるようなマイクロプロセッサである。データー記憶コンポーネント(1つまたは複数)904は、短期間または長期間データーを格納することができるコンポーネントである。データー記憶コンポーネント(1つまたは複数)904の例には、ハード・ディスク、リムーバブル・ディスク(光ディスクおよび磁気ディスクを含む)、揮発性および不揮発性ランダム・アクセス・メモリー(RAM)、リード・オンリー・メモリー(ROM)、フラッシュ・メモリー、磁気テープなどが含まれる。データー記憶コンポーネント(1つまたは複数)は、コンピューター読み取り可能記憶媒体の例である。コンピューター900は、ディスプレイ912を含むこと、またはこれと関連付けられることができる。ディスプレイ912は、陰極線管(CRT)モニター、液晶表示(LCD)モニター、または任意の他のタイプのモニターとすることができる。
【0049】
[0053] ソフトウェアは、データー記憶コンポーネント(1つまたは複数)904に格納することができ、1つ以上のプロセッサー(1つまたは複数)902において実行することができる。このようなソフトウェアの例に、鍵証明ソフトウェア906がある。このソフトウェア906は、
図1から
図8に関して先に説明した機能の一部または全部を実現することができるが、他のタイプのソフトウェアも使用することができる。ソフトウェア906は、例えば、1つ以上のコンポーネントを介して実装することができる。これらのコンポーネントは、分散型システムにおけるコンポーネント、別々のファイル、別々の機能、別々のオブジェクト、別々のコード・ライン等とすることができる。ハード・ディスクにプログラムが格納されており、RAMにロードしてコンピューターのプロセッサー(1つまたは複数)においてこのプログラムを実行するパーソナル・コンピューターが、
図9に示すシナリオを代表するが、本明細書において記載した主題は、この例に限定されるのではない。
【0050】
[0054] 本明細書において記載した主題は、データー記憶コンポーネント(1つ以上)904の1つ以上に格納されプロセッサー(1つ以上)902の1つ以上において実行するソフトウェアとして実現することができる。他の例として、本主題は、1つ以上のコンピューター読み取り可能記憶媒体に格納されている命令として実現することができる。(光ディスクまたは磁気ディスクのような有形媒体が、記憶媒体の例である)。このような命令は、コンピューターまたは他の装置によって実行されると、このコンピューターまたは他の装置に、方法の1つ以上の動作を実行させることができる。これらの動作を実行する命令は、1つの媒体に格納することができ、複数の媒体に跨がって拡散させることができるので、これらの命令の全てが偶然同じ媒体上にあるか否かには関係なく、命令は集合的に1つ以上のコンピューター読み取り可能記憶媒体に存在してもよい。
【0051】
[0055] 加えて、本明細書に記載した任意の動作(図に示されているかまたはいないかには関係なく)は、方法の一部としてプロセッサー(例えば、プロセッサー902の1つ以上)によって実行することができる。本明細書において動作A、B、およびCが記載されている場合、動作A、B、およびCの動作を含む方法を実行することができる。更に、本明細書においてA、B、Cの動作が記載されている場合、プロセッサーを使用してA、B、およびCの動作を実行するステップを含む方法を実行することができる。
【0052】
[0056] 環境の一例では、コンピューター900は、ネットワーク908を介して1つ以上の他のデバイスに通信可能に接続することができる。コンピューター910は、コンピューター900と構造が同様でもよく、コンピューター900に接続することができるデバイスの一例であるが、他のタイプのデバイスもそのように接続することができる。
【0053】
[0057] 以上、構造的特徴および/または方法論的動作に特定の文言で本主題について説明したが、添付されている特許請求の範囲において定められる主題は、前述した特定の特徴や動作には必ずしも限定されないことは言うまでもない。逆に、先に説明した特定の特徴および動作は、特許請求の範囲を実施する形態例として開示したまでである。