説明

コンピューティング・プラットフォームの証明

【課題】コンピューティング・プラットフォームの証明方法を提供すること。
【解決手段】コンピューティング・プラットフォーム(1)の構成を検証者(3)に対して証明する方法及び装置が提供される。署名鍵(SK)は、プラットフォーム(1)に結合され、且つ、プラットフォーム(1)の定義された構成に結合される。署名鍵(SK)のクレデンシャル(C(SK)、CDAA(SK))がエバリュエータ(2)から取得される。このクレデンシャル(C(SK)、CDAA(SK))は、署名鍵(SK)が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する。次に、プラットフォーム(1)は、署名鍵(SK)を用いて検証者(3)からのチャレンジに署名する機能を検証者(3)に対して立証し、且つ、クレデンシャル(C(SK)、CDAA(SK))の所有を検証者(3)に対して立証し、それによって、プラットフォーム(1)がトラステッド構成を有することを、プラットフォーム構成を検証者(3)に開示することなく証明することができる。チャレンジに署名する機能は、署名されたチャレンジを検証者(3)に戻すことによって立証することができ、また、クレデンシャルの所有は、クレデンシャルC(SK)を検証者(3)に送信することによって同様に立証することができる。代替的に、クレデンシャルは、署名鍵(SK)の公開鍵に結合された匿名クレデンシャルCDAA(SK)とすることができる。この場合、クレデンシャルCDAA(SK)の所有、及びチャレンジに署名する機能は、署名鍵(SK)のクレデンシャル又は公開鍵を検証者(3)に実際に開示することなく立証することができる。証明プロセスにおけるエバリュエータ(2)及び検証者(3)の動作に関連する対応する方法及び装置もまた提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、コンピューティング・プラットフォームの証明(attestation)に関する。より具体的には、本発明の態様は、コンピューティング・プラットフォームがトラステッド・プラットフォーム構成を有することの保証を検証者が要求するシステムにおいて、検証者に対してコンピューティング・プラットフォームの構成を証明するプロセスに含まれる方法、装置及びコンピュータ・プログラムに関する。
【背景技術】
【0002】
コンピュータは非常に多くの用途のためのツールに発展し、コンピュータ・システムの使用は、どのような形態にせよ、日常生活のますます重要な部分になっている。これらのシステムにおいてセキュリティは重大な課題を提示する。包括的なセキュリティ機能は、消費者、企業、政府及び金融機関のようなユーザがそれらの利益の保護のために信頼することができる信頼のおけるコンピュータ環境を提供するために不可欠である。1つのこのようなセキュリティ機能は、あるコンピュータが、トラステッド・コンピュータ環境内で動作する他のデバイスに対して、そのコンピュータ環境がその環境に対して指定された信頼基準に従って信頼できることを保証することを可能にする機構である。例えば、デバイスは、その構成に不正な変更をもたらす攻撃を受けていないことを立証できる必要がある。そのような構成の変更は、デバイスの乱用を可能にし、システム・セキュリティの侵害を許容する可能性がある。このデバイス構成に関する保証の提供が、証明プロセスの本質になる。
【0003】
トラステッド・コンピューティング・グループ(TCG)は、PC、PDA、携帯電話、サーバ、ゲートウェイ及び種々の他のネットワーク・デバイス及び周辺機器のような多様なコンピューティング・プラットフォームにわたるトラステッド・コンピューティングのためのオープン業界標準を開発し推奨するために作られた組織である。TCGの仕様は、仮想的及び物理的攻撃に対するセキュリティを高めるように設計されたハードウェア構成ブロック及びソフトウェア・インターフェースを推奨する。トラステッド・コンピューティング・システムの中心は、トラステッド・プラットフォーム・モジュール(TPM)として知られるコンポーネントである。TPMの構造及び動作は、非特許文献1により詳細に定められている。簡単に言えば、TPMは種々のプラットフォームに組み込まれる専用集積回路の形態のハードウェア・コンポーネントである。TPMは、不正変更防止機能を備え、デジタル鍵、証明書及びパスワードに対する安全なストレージを提供し、並びに、鍵生成、プラットフォーム証明、プライバシ保護機能、及び暗号アルゴリズム及びプロトコルの実施のような種々のセキュリティ関連動作の機能を提供する。
【0004】
TPMによって提供されるプラットフォーム証明機能は、プラットフォーム構成値の安全なストレージ及び報告に基づく。これらの値は、ハードウェア及びソフトウェア構成の測定値から導かれ、1組のプラットフォーム構成レジスタ(PCR)内のTPM内に安全にストアされる。より具体的には、ハッシュ・アルゴリズムを用いて、プラットフォームが初めに設定されるときに構成の測定値からハッシュ値を生成する。さらに、ハッシュ値は、プラットフォーム構成に変更が施されるときに生成されてストアされ、これらの変更を記録するログが維持される。ハッシュ値は、いわゆる「PCR値」としてプラットフォーム構成レジスタ内にストアされる。プラットフォーム構成の証明が所望されるときには、現在のプラットフォーム構成のPCR値をログと共に、プラットフォーム構成の保証を要求するパーティ(本明細書では一般に「検証者」と呼ぶ)に送信することができる。次に、検証者は、ハッシュ値が正確に計算されていること、及びPCR値によって表された構成がトラステッド構成に対応することを確認することができる。そうでない場合には、プラットフォームによるさらなるトランザクションを拒否することができる。
【0005】
前述のことは、証明プロセスの簡単な説明である。実際には、付加的なセキュリティ手続きがプロセスに含まれる。例えば、PCR値は、検証者により認証可能なデジタル署名の下で検証者に送信される。TPM仕様によると、証明識別鍵(AIK)をこの目的のために用いることができる。AIKはRSA(Rivest、Shamir、Adleman)鍵対であり、特にPCRデータに署名するための署名鍵として用いられる。即ち、AIK対の秘密鍵は、検証者に送信されるデータに署名するのに用いられ、次いで検証者は公開AIK鍵を用いてデータを検証することによって署名を認証する。公開AIK鍵の妥当性は、検証者が信頼する何らかの形態のクレデンシャル(credential)によって保証することができる。例えば、プラットフォームは、認証機関(CA)のようなトラステッド・サード・パーティ(TTP)からAIKに関する証明書を取得することができる。次に、この証明書は、公開AIK鍵と共に検証者に送信することができる。より高度なアプローチは、上述のTCG仕様に定められた直接匿名証明(DAA)プロトコルのような匿名クレデンシャル・システムの使用を含む。簡単に言えば、このシステムは、プラットフォームが匿名クレデンシャルを取得することを可能にし、この匿名クレデンシャルを用いて、検証者にクレデンシャル又は鍵を実際に示すことなく、検証者にたいしてAIKを証明することができる。これは、匿名性を維持しながら検証者に対して必要な証明を行うことを可能にする専用の暗号アルゴリズムを使用して達成される。
【0006】
上述の証明プロセスの核心は、プラットフォーム構成データ(特にPCR値及びログ)を検証者へ送信して、検証者がプラットフォーム構成を確認できるようにすることである。このプロセスにおいては、検証者がプラットフォーム構成の詳細を知ることが内在する。例えば、検証者は、どの特定のプログラムがプラットフォーム上で実行中であるかを判断することができる。さらに、同じプラットフォーム構成による多数のトランザクションをリンクすることができる。さらに、いくつかのアプリケーションにおいて、プラットフォーム構成を事実上独自のものとすることが可能であり、それによって、そのプラットフォームによるすべてのトランザクションを識別することができる。これらの要素は明らかにプライバシを損なうが、プライバシは、TCG及び実際に任意の信頼できるシステムの本来の目的の1つである。
【0007】
基本的な証明プロセスはTCGのトラステッド・プラットフォーム・モジュールの文脈内で説明されているが、種々の代替の又は修正されたプロセスが当技術分野で知られている。これらのプロセスの幾つかは、付加的なトラステッド・サード・パーティ(TTP)の使用に頼り、また他のプロセスはそうしないが、全てのプロセスは多かれ少なかれプライバシ問題を被り、また、プロセスの幾つかは付加的な実施上の及び/又は有効性の問題を提示する。上のTPMシステムに基づいた証明システムの実施例は、特許文献1及び特許文献2に与えられる。これらは、主として、基本的TPM証明プロセスを超えて拡大するシステム動作の局面に対処するものである。代替のシステムは、非特許文献2に説明されている。これはTTPを用いてプラットフォーム構成を確認するもので、検証者はプラットフォームのプロパティについての保証ステートメントを与えるTTPの証明書を受信する。これは、プライバシ問題を軽減する何らかの方法となるが、プラットフォームと検証者の間のトランザクション・プロトコルにTTPを含めることを必要とする。この「ボトルネック」から性能問題が生じるので、このシステムは既存のTPM v1.2仕様内での実施には適合しない。別の修正物は、特許文献3に記述されている。このシステムにおいて、PCR値は乱数によって拡大され、そしてTTPは保証ステートメントを、これらの「難読化された」PCR値に関するクレデンシャル保証の形で発行する。次に、難読化されたPCR値は、クレデンシャルと共に検証者に送信される。従って、検証者は、難読化されているにもかかわらず、なおPCRデータを受信するので、プラットフォームの多数のトランザクションがリンク可能となる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】国際公開第2005/038634A2号
【特許文献2】国際公開第2005/038635A2号
【特許文献3】米国特許出願公開第2005/0229011A1号明細書
【非特許文献】
【0009】
【非特許文献1】Trusted Computing Group, TPM v1.2Specification Changes (A Summary of Changes with respect to the v1.1b TPMSpecification), 2003年10月,https://www.trustedcomputinggroup.org/groups/tpm/TPM_1_2_Changes_final.pdf.
【非特許文献2】Sadeghi他、“Property-based Attestation for Computing Platforms: Caring aboutProperties, not Mechanisms”, NSPW ‘04: Proceedings of the 2004 workshop on New security paradigm, ACMPress, 67 - 77ページ
【非特許文献3】RSA Laboratories, RSA PKCS#1specification, PKCS #1 v2.1 RSACryptography Standard, RSA Security Inc., 2002年,ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf.
【発明の概要】
【発明が解決しようとする課題】
【0010】
前述のことに鑑みて、上述の既知のシステムに付随する種々の問題を緩和することができる証明システムを提供することが望ましい。
【課題を解決するための手段】
【0011】
本発明の一態様は、コンピューティング・プラットフォームの構成を、検証者に対して証明する方法を提供する。この方法は、
プラットフォームに結合され、且つ、プラットフォームの定義された構成に結合される署名鍵を準備するステップと、
署名鍵が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する、署名鍵のクレデンシャルをエバリュエータから取得するステップと、
署名鍵を用いて検証者からのチャレンジに署名する機能を検証者に対して立証し、且つ、クレデンシャルの所有を検証者に対して立証し、それによって、プラットフォームがトラステッド構成を有することを、プラットフォーム構成を検証者に開示することなく、検証者に対して証明するステップと
を含む。
【0012】
従って、本発明を具体化する証明方法は、プラットフォーム及び定義されたプラットフォーム構成の両方に結合される専用の署名鍵の使用に基づく。この結果は、署名鍵が、特定のコンピューティング・プラットフォームによってのみ、且つそれが定義された構成を有する場合にのみ、使用可能となることになる。TTPのようなエバリュエータは、この定義された構成がトラステッド・プラットフォーム構成に対応することを検証することができ、そして、署名鍵に関するこの結果に対するクレデンシャルを発行することができる。しかしながら、署名鍵は定義された構成に内在的に結合されるので、構成自体はクレデンシャル内に明記されないままであることができる。即ち、クレデンシャルの必要物は、プラットフォーム構成情報を含まない。次に、プラットフォームは、署名鍵を用いて検証者からのチャレンジに署名できることを立証することができ、そして、署名鍵に関するクレデンシャルを立証することによって、プラットフォームは、それがトラステッド構成を有することを、何らかの特定の構成情報を検証者に開示することなく、検証者に対して保証することができる。信頼とは、TCG技術用語集によれば、トラステッド・デバイス又はトラステッド・プラットフォーム構成が特定の目的のために特定の様式で機能することの予想として定義することができる。さらに、トラステッド・コンピューティング・プラットフォーム又はトラステッド・プラットフォーム構成は、TCG技術用語集によれば、そのプロパティを報告する信頼できるコンピューティング・プラットフォームとして定義することができる。
【0013】
本発明のこの態様は、プラットフォームの構成の詳細に対する完全なプライバシ保護をもたらすと同時に、必要な保証を検証者に与えることができる優雅に簡潔でなお高度に有効なプラットフォーム証明システムを提示する。さらに、このシステムは、現在のTCG仕様の文脈内での実施に著しく好適であり、証明機構をTCGベースのシステムに直ちに採用することを可能にし、そして、洗練された有効且つ広く受け入れられているトラステッド・コンピューティング環境でのこの証明プロセスの利点を提供する。
【0014】
プラットフォームは、単にチャレンジに署名し、そのチャレンジを署名鍵の公開鍵と共に検証者に戻すことによって、チャレンジに署名する機能を立証することができる。同様に、クレデンシャルの所有を、検証者にそれを実際に送信することによって、検証者に対して立証することができる。しかしながら、エバリュエータによって発行されるクレデンシャルがDAA類似のクレデンシャルのような匿名クレデンシャルである場合には、付加的なプライバシ保護を提供することができる。ここで、クレデンシャルの所有は、クレデンシャルを検証者に実際に開示することなく検証者に対して立証することができ、また、チャレンジに署名する機能は、署名されたチャレンジを送信することなく又は署名鍵の公開鍵を開示することなく、立証することができる。これは、以下により詳細に説明する。
【0015】
本発明のさらに別の態様は、前述の方法を用いる証明システムにおけるエバリュエータ及び検証者のそれぞれの動作に関する。従って、本発明の第2の態様は、コンピューティング・プラットフォームの構成を証明する方法を提供する。この方法は、以下のステップ、即ち、コンピューティング・プラットフォームから、プラットフォームに結合され且つプラットフォームの定義された構成に結合された署名鍵の公開鍵を受信するステップと、コンピューティング・プラットフォームから定義された構成を示すデータを受信するステップと、定義された構成がトラステッド・プラットフォーム構成に対応することを検証するステップと、署名鍵が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する、署名鍵のクレデンシャルをコンピューティング・プラットフォームに送信するステップとを含む。本発明の第3の態様は、コンピューティング・プラットフォームの構成の証明を検証する方法を提供する。この方法は、以下のステップ、即ち、コンピューティング・プラットフォームにチャレンジを送信するステップと、コンピューティング・プラットフォームに結合された署名鍵を用いてチャレンジに署名するコンピューティング・プラットフォームの機能の立証、及び署名鍵が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明するクレデンシャルのコンピューティング・プラットフォームによる所有の立証をコンピューティング・プラットフォームから受信するステップと、そのクレデンシャルを認証し、それによって、コンピューティング・プラットフォームがトラステッド・プラットフォーム構成を有することを、プラットフォーム構成の開示を受信することなく検証するステップとを含む。
【0016】
本明細書において、特徴を本発明の一態様の一実施形態に関連して説明するが、類似の特徴を本発明の別の態様の実施形態において提供することができる。
【0017】
本発明はまた、本発明の前述の態様の何れかによる方法をコンピュータに実行させるためのプログラム・コード手段を含むコンピュータ・プログラムを提供する。用語「コンピュータ」は最も包括的な意味で用いられ、コンピュータ・プログラムを実施するためのデータ処理能力を有する任意のデバイス、コンポーネント又はシステムを含むことを理解されたい。さらに、本発明を具体化するコンピュータ・プログラムは、独立したプログラムを構成することができ、又はより大きなプログラムの要素とすることができ、そして、例えば、コンピュータ内に装填するディスク又は電子伝送のようなコンピュータ可読媒体内に具体化して供給することができる。コンピュータ・プログラムのプログラム・コード手段は、コンピュータに問題の方法を、直接に実行させるか、又は(a)別の言語、コード又は表記への変換、及び(b)異なる材料形態での複製のうちの何れか若しくは両方の後に実行させるように意図した1組の命令の、任意の言語、コード又は表記における任意の表現を含むことができる。
【0018】
本発明のさらに別の態様は、検証者に対して、その装置を組み込んだコンピューティング・プラットフォームの構成を証明するための装置であって、本発明の第1の態様による方法を実行するように適合させた制御論理を備えた装置を提供する。
【0019】
本発明の別の態様は、コンピューティング・プラットフォームの構成を証明するための、制御論理を備えた装置を提供し、ここで制御論理は、コンピューティング・プラットフォームからの、プラットフォームに結合され且つプラットフォームの定義された構成に結合された署名鍵の公開鍵と、プラットフォームの定義された構成を示すデータとの受信に応答して、定義された構成がトラステッド・プラットフォーム構成に対応することを検証し、そして、署名鍵が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する署名鍵のクレデンシャルをコンピューティング・プラットフォームに送信するように適合させる。
【0020】
本発明の付加的な態様は、コンピューティング・プラットフォームの構成の証明を検証するための装置であって、本発明の第3の態様による方法を実行するように適合させた制御論理を含む装置を提供する。
【0021】
これから本発明の好ましい実施形態を、実施例として添付の図面を参照しながら説明する。
【図面の簡単な説明】
【0022】
【図1】本発明を具体化する証明方法の動作における基本ステップを示すコンピューティング・システムの表現である。
【図2】本発明を具体化する1つの証明方法の動作の詳細の略図である。
【図3】図2の実施形態に対する変形を示す。
【図4】本発明を具体化する別の証明方法の動作の詳細の略図である。
【発明を実施するための形態】
【0023】
図1は、本発明を具体化する証明方法を実施することができるコンピューティング・システムの一実施形態の略図を示す。このシステムは、コンピューティング・プラットフォーム1、構成エバリュエータ2及び検証者3を含む。コンピューティング・プラットフォーム1はまた、ユーザ・プラットフォーム1として表示される。構成エバリュエータ2はまたエバリュエータ2として表示される。これらのコンポーネントの各々は、説明される証明プロセスのステップを実施する制御論理を含む。一般に、制御論理は、ハードウェア又はソフトウェは又はそれらの組合せで実施することができ、またコンポーネント1乃至3の特性は、証明プロセスの基本的な動作にはあまり関係しない。しかしながら、本実施例の目的のために、システム・コンポーネント1、2及び3の各々は、汎用コンピュータによって実施されるものと想定する。特に、ここでプラットフォーム1は、ユーザPCによって実施され、そしてトラステッド・プラットフォーム・モジュール(TPM)4の形態のセキュリティ・モジュールを含む。TPM4の構造及び動作は、一般的には、前に言及したTCG仕様(その関連した内容は引用により本明細書に組み入れられる)により定められ、証明プロセスを実行するためのその付加的な機能性は以下に詳述する。この機能性の特定の実施は、本明細書の説明から当業者には明らかとなる。ユーザ・プラットフォーム1内のTPM4は、前述のPCR値をストアするための1組のレジスタ5を含む。一般にこのレジスタ5の組は、任意の数の個々のPCRレジスタを含むことができるが、典型的にはTPMチップは最少16個のレジスタを含む。この実施例においてエバリュエータ2及び検証者3は、コンピュータに証明プロセスのステップを実行させるためのそれぞれのコンピュータ・プログラムを有する汎用コンピュータによって、同様に実施される。このようなシステムを含むシナリオの一実施例は、ユーザPC1を操作する消費者が検証者コンピュータ3上で実行されるサーバによって提供されるウェブ・サービスにアクセスすることを望む場合である。このサービスにアクセスするために、ユーザ・プラットフォーム1の構成は、検証者3の満足に対して証明される必要がある。このシナリオにおいて、構成エバリュエータ2はTTP、即ち、ユーザと検証者の両方が信頼するエンティティを表す。
【0024】
本発明の実施形態において、専用の署名鍵SKがユーザ・プラットフォーム1において定義される。この署名鍵SKは、ユーザ・プラットフォーム1、特にそのTPM4と、ユーザ・プラットフォーム1の定義された構成との両方に結合される。この結合の結果は、署名鍵SKの秘密鍵がTPM4内に安全に保持されるので、署名鍵は特定のTPMによってのみ(即ち、SKは移動不可能)、且つユーザ・プラットフォーム1がPCRレジスタ5の定義された状態に対応する定義された構成を有する場合のみ用いることができることになる。PCRレジスタ5のこの定義された状態は、例えば、レジスタ5が指定された一組の(1つ又は複数の)PCR値を含むこと、或いは、一組のストアされたPCR値が定義された条件を満たすこと、例えば、所定のハッシュ関数のアプリケーションが指定されたハッシュ値を生じることである。何れの場合においても、本実施形態のTCG環境において、署名鍵は、命令TPM_CreateWrapKEYを用いてTPM4によって作成することができ、そして図1のTPM4内で、下付き文字がまさに記された結合を示すSK(TPM、PCR)によって表示される。
【0025】
本発明を具体化する証明プロセスは、エバリュエータ2から署名鍵SKのクレデンシャルを取得するコンピューティング・プラットフォーム1を含む。このクレデンシャルの目的は、鍵SKが結合されているプラットフォーム構成がトラステッド・プラットフォーム構成であることを証明することである。図1における標識付き矢印は、説明される証明プロセスの動作における基本ステップの簡単化した表示を与える。矢印Aは、署名鍵SK(特にその公開鍵)が、鍵SKが結合される特定のPCR状態を示すデータと共にエバリュエータ2に送信されることを示す。このデータは図中ではPCRSKで示される。次に、エバリュエータ2は、PCRSKで示されるPCRの状態が、例えば、ログを使用してPCRの状態をチェックすることによって、トラステッド・プラットフォーム構成に対応することを検証する。PCRの状態が信頼できると判断されたと仮定すれば、エバリュエータ2は、矢印Bで示すように、署名鍵のクレデンシャルC(SK)をプラットフォーム1に返信する。このクレデンシャルは、様々な形態を取ることができるが、典型的には、鍵SK上のエバリュエータによるある形態の署名を含む。ここでの要点は、クレデンシャルがPCRSKを含まないか又は別様にプラットフォーム構成に関する如何なる情報をも明記しないことである。次に、矢印Cで示すように検証者3がチャレンジ(例えば、メッセージ又はノンス)をプラットフォーム1に送信するとき、プラットフォームはクレデンシャルC(SK)を用いてその構成の妥当性を証明することができる。特に、矢印Dで示すように、プラットフォームは、検証者3に対して、署名鍵SKを用いてチャレンジに署名する機能を立証し且つクレデンシャルC(SK)の所有を立証する。検証者3は、既知の様式でクレデンシャルを認証することができ、エバリュエータ2を信頼して、クレデンシャルがトラステッドPCR状態に対応する鍵SKに対して発行されたことを知る。さらに、鍵SKがエバリュエータ2によって検証されたPCR状態に結合されているので、チャレンジに署名するのにSKを用いる機能は、ユーザ・プラットフォーム1の構成が信頼できることの確証となる。このようにして、ユーザ・プラットフォームの構成は、PCRSK、PCR値を如何なる形態においても又はプラットフォーム構成の実際の如何なる詳細をも検証者に開示することなく、検証者3の満足に対して証明される。
【0026】
図2は、本発明を具体化する証明方法の、含まれるプロセスをより詳細に示した略図である。この実施形態において、TPM4は、前述の証明識別鍵(AIK)を用いて署名鍵SKについての証明書を生成する。特に、図に示すように、TPM4のAIKの秘密鍵は、SKの公開鍵及びSKが結合されるPCR状態のPCRSKに署名するのに用いられる。この証明動作は、SKがAIKを含む同じTPM4の移動不可能な鍵であり且つその使用が変数PCRSKで定義されるPCR状態に限定される条件で、TCG命令TPM_CertifyKey(AIK、SK)を用いて実行することができる。結果として得られる証明書は,次にSKの公開鍵と共にエバリュエータ2に送信される。(ここで、AIKは公開SK鍵に署名するのに用いられるので、これは、本来的に証明書の一部としてエバリュエータに送信される。)この実施形態において、公開AIK鍵は、証明書と共にエバリュエータ2に送信される。次に、エバリュエータ2は、AIKを認証する(例えば、AIKがエバリュエータには既知のトラステッドAIKであることを検証することによって)。AIKの認証は署名鍵SKを検証し、次に、既述のように、エバリュエータ2がPCR状態のPCRSKを検証する。次に、クレデンシャルC(SK)が発行されるが、これは図に示すように、公開SK鍵に結合される。ここで、この結合は、クレデンシャルに公開SK鍵を組み入れることによって達成され、例えば、クレデンシャルは公開SK鍵上のエバリュエータ2による署名とすることができる。次に、プラットフォーム1は秘密鍵SKを用いて、図に示すように、検証者3のチャレンジに署名して、これを、検証者3に対するクレデンシャルと共に(公開SK鍵を組み入れる)検証者3に戻すことができる。これは、TCGのTPM_Sign動作を介して実行することができる。次に、検証者3は、チャレンジが、クレデンシャルC(SK)によって認証されたSKの秘密鍵で署名されていることを確認することができ、それによって証明プロセスが完了する。
【0027】
前述の実施形態におけるAIKは、他の方法でエバリュエータ2によって認証することができる。例えば、ユーザ・プラットフォーム1は、エバリュエータ2が信頼する認証機関(CA)によって発行されるAIKについての証明書を提供することができる。別の代替的方法は、前記のDAAプロトコルを用いる。これは図3に概略的に示され、この図3は概ね図2に対応するが、DAAプロトコルによって導入される修正を示すボックス6を有する。ここで、ユーザ・プラットフォーム1は、エバリュエータ2(又は別のTTP)からDAAのクレデンシャルC(DAA)を予め取得している。図に示すように、DAAのクレデンシャルC(DAA)は、クレデンシャルを取得するのに用いられ且つTPM4によって保護されるDAA鍵の公開鍵に結合される。C(DAA)は、DAAプロトコルに定められた専用アルゴリズムの使用によってエバリュエータ2にAIKの証明を供給するのに用いられる。これらのアルゴリズムは、本明細書において詳細に説明する必要はない。それらがゼロ知識証明を含むことを理解することで十分であり、そのゼロ知識証明は、プラットフォーム1が公開鍵AIK上の署名を保持することを、プラットフォーム1が、クレデンシャルC(DAA)を用いて、AIK鍵又はクレデンシャルC(DAA)をエバリュエータに実際に開示することなく、エバリュエータ2に立証することを可能にするものである。
【0028】
コンピューティング・システム内で要求される匿名性のレベルに応じて、署名鍵SKは、複数の検証者3との複数のトランザクション、特定の検証者3だけとの複数のトランザクション、又は所与の検証者との単一のトランザクションのみに対して用いることができる。従って、1つより多くの署名鍵をTPM4により準備してプラットフォームのトランザクションにおいて用いることができる。これらの署名鍵に対するそれぞれのクレデンシャルC(SK)は、それらが用いられることになるトランザクションに先立って取得することができ、定義されたPCR状態への署名鍵の結合は、プラットフォーム構成がその後に変造された場合にはクレデンシャルを用いることができないことを保証する。
【0029】
図4の略図は、図2のシステムをさらに強化した証明システムの別の実施形態を示す。基本のシステムは、概して図2のシステムに類似しており、相違点のみをここで説明する。主要な相違は、署名鍵SKに対してエバリュエータ2によって発行されるクレデンシャルの性質から起る。ここで、このクレデンシャルはSKの公開鍵に結合された匿名クレデンシャルである。この匿名クレデンシャルは、前述のDAA類似のクレデンシャルとすることができ、図中にCDAA(SK)で表示される。示したように、このクレデンシャルは、上述のDAAシステムにおけるように、エバリュエータ2からクレデンシャルを取得する際に用いられるDAA類似の鍵DKの公開鍵に結合される。しかしながら、通常のDAAクレデンシャルとは異なり、クレデンシャルCDAA(SK)はプラットフォーム1に結合される必要はない。クレデンシャルCDAA(SK)はSKの公開鍵に、この公開鍵をクレデンシャルの属性として符号化することによって結合される。(これは一般に知られている様式で行うことができ、属性の使用は、例えば、以前に引用した特許文献2に記載されているように、当技術分野において既知である。)
【0030】
この実施形態において、クレデンシャルCDAA(SK)は、プラットフォーム1が、検証者3に対してクレデンシャルの所有を、署名鍵SKのクレデンシャル又は公開鍵を検証者に実際に開示することなく、立証することを可能にする。プラットフォームはまた、SKを用いて検証者のチャレンジに署名するその機能を、署名されたチャレンジを検証者に実際に戻すことなく、立証することができる。特に、プラットフォーム1は、クレデンシャルCDAA(SK)の所有、及びチャレンジに署名する機能を、(1)クレデンシャルCDAA(SK)の知識を証明し、(2)クレデンシャルの属性とSKの公開鍵との同等性を証明し、そして(3)以下のアルゴリズムにおいて詳述するようにSKの公開鍵に対するチャレンジ上の署名の知識の正確さを証明することによって、立証することができる。クレデンシャルの知識の証明は、当業者には明らかとなるように、DAA類似のプロトコルを用いて行うことができる。検証者からのチャレンジに応答して、プラットフォーム1は、その秘密SK鍵を用いてチャレンジ上のRSA署名を算出する。RSA署名アルゴリズムは以下のアルゴリズム(詳細は、非特許文献3を参照されたい。この文献の関連する内容は引用によりここに組み入れられる)によって定められることに留意されたい。
(数1)
s = H(m) ^ (1/e)mod n
式中、Hはハッシュ関数であり、mはチャレンジであり、n及びeは公開署名鍵を定義する。実際には、eは通常は、固定値(2 ^ 16+1)である。ここで、プラットフォームは、公開署名鍵SKがクレデンシャルCDAA(SK)内に符号化されていること、及びSKの秘密鍵をチャレンジへの署名に用いたことを、公開鍵を開示することなく証明する。それゆえに、プラットフォーム1は以下のコミットメントを算出する。
(数2)
Cn =g^n * h^(rn)
Cs =g^s * h^(rs)
式中、r、r=ランダムであり、例えば、g=R、h=Sである(R及びSはDAAプロトコルによって定義される、構成エバリュエータのDAA公開鍵の要素である)。さらに、プラットフォームは、(1)CはクレデンシャルCDAA(SK)と同じnを含み、そして(2)Cはmの上のnに関する署名を含むことの証明を生成する。従って、このシステムの種々の態様は、図に示すように検証者3によって検証することができ、図中、ZKPはゼロ知識証明を示す。
【0031】
図4のシステムは、ユーザ・プラットフォーム1が検証者3に対して完全に匿名であるので、前の実施形態よりもさらに進んだ改善を表す。従って、同じ署名鍵を任意の検証者との複数のトランザクションに、匿名性を損なうことなく用いることができる。ユーザ・プラットフォーム1は、プライバシの観点からエバリュエータ2に信頼を置く必要はないが、何故なら、たとえエバリュエータ2がSK及びその結合されたPCR状態のPCRSKを開示したとしても、これは、検証者3に開示された情報を介してユーザ・プラットフォーム1にリンクすることができないからである。所与のシナリオにおいて適切である場合には、エバリュエータ2は検証者3と同じエンティティとすることができる。
【0032】
上述の実施形態に対して、勿論、種々の修正を施すことができる。例えば、図4のシステムにおけるクレデンシャルCDAA(SK)の最大属性サイズに応じて、符号化された鍵を複数の属性に分割することができる。また、AIKを検証するために図3の実施形態において用いられるDAAプロトコルは、図4のシステムに等しく用いることができる。本発明の実施形態は、勿論、図1の特定の実施例以外の多くのコンピューティング・システムに用いることができ、また、このようなシステム内のプラットフォーム、エバリュエータ及び検証者は、説明された特定の実施例以外の、任意の形態のコンピュータ・デバイスによって実施することができる。説明された特定の実施形態に対して種々の他の変更及び修正を、本発明の範囲から逸脱せずに施すことができる。
【符号の説明】
【0033】
1:コンピューティング・プラットフォーム
2:構成エバリュエータ
3:検証者
4:トラステッド・プラットフォーム・モジュール(TPM)
5:レジスタ
6:ボックス

【特許請求の範囲】
【請求項1】
コンピューティング・プラットフォーム(1)の構成を検証者(3)に対して証明する方法であって、
前記コンピューティング・プラットフォーム(1)に結合され、且つ、前記コンピューティング・プラットフォーム(1)の定義された構成に結合された署名鍵(SK)を準備するステップと、
前記署名鍵(SK)が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する、前記署名鍵(SK)のクレデンシャル(C(SK)、CDAA(SK))をエバリュエータ(2)から取得するステップと、
前記検証者(3)に対して、前記署名鍵(SK)を用いて前記検証者(3)からのチャレンジに署名する機能を立証し、且つ、前記検証者(3)に対して、前記クレデンシャル(C(SK)、CDAA(SK))の所有を立証し、それによって、前記コンピューティング・プラットフォーム(1)がトラステッド構成を有することを、前記プラットフォーム構成を前記検証者(3)に開示することなく、証明するステップと
を含む方法。
【請求項2】
前記署名鍵(SK)を用いて前記チャレンジに署名し、該署名されたチャレンジを前記署名鍵(SK)の公開鍵と共に検証者(3)に戻すことによって、前記チャレンジに署名する前記機能を立証するステップと、
前記クレデンシャルを前記検証者に送信することによって、前記クレデンシャルC(SK)の所有を立証するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記クレデンシャルCDAA(SK)は、前記署名鍵(SK)の公開鍵に結合された匿名クレデンシャルであり、
前記方法は、
前記クレデンシャルCDAA(SK)の知識を前記検証者(3)に対して証明し、
前記クレデンシャルCDAA(SK)に結合された鍵と前記署名鍵(SK)の前記公開鍵との同等性を、前記検証者(3)に対して立証し、
前記署名鍵(SK)の前記公開鍵に関する前記チャレンジ上の署名の正確な知識を前記検証者(3)に対して証明する
ことによって前記チャレンジに署名する前記機能及び前記クレデンシャルCDAA(SK)の所有を立証するステップを含む、
請求項1に記載の方法。
【請求項4】
前記署名鍵(SK)の前記公開鍵は、前記クレデンシャルの少なくとも1つの属性として前記公開鍵を符号化することを通じて前記クレデンシャルCDAA(SK)に結合される、請求項3に記載の方法。
【請求項5】
プラットフォーム構成値をストアするための1組のレジスタ(5)を有するトラステッド・プラットフォーム・モジュール(4)を含み、
前記署名鍵(SK)は前記トラステッド・プラットフォーム・モジュール(4)に結合され、前記定義された構成は前記レジスタの定義された状態を含む、
コンピューティング・プラットフォーム(1)を用いて使用するための、前記請求項の何れか1項に記載の方法。
【請求項6】
前記クレデンシャル(C(SK)、CDAA(SK))を前記取得するステップは、
トラステッド・プラットフォーム・モジュール(4)の証明識別鍵(AIK)を用いて、前記レジスタ(5)の前記定義された状態を示す、前記署名鍵(SK)についての証明書を生成するステップと、
前記証明書を、前記署名鍵(SK)の前記公開鍵及び前記証明識別鍵(AIK)の公開鍵の検証と共に、エバリュエータ(2)に送信するステップと
含む
請求項5に記載の方法。
【請求項7】
前記証明識別鍵(AIK)の前記公開鍵を前記エバリュエータ(2)に送信して前記公開鍵の前記検証を供給するステップを含む、請求項6に記載の方法。
【請求項8】
前記公開鍵のクレデンシャル(C(DAA))の所有を立証することによって、前記証明識別鍵(AIK)の前記公開鍵の検証を送信するステップを含む、請求項6に記載の方法。
【請求項9】
コンピューティング・プラットフォーム(1)の構成を認証する方法であって、
前記コンピューティング・プラットフォーム(1)に結合され、且つ、前記コンピューティング・プラットフォーム(1)の定義された構成に結合された署名鍵(SK)の公開鍵を、前記コンピューティング・プラットフォーム(1)から受信するステップと、
前記定義された構成を示すデータ(PCRSK)を、前記コンピューティング・プラットフォーム(1)から受信するステップと、
前記定義された構成がトラステッド・プラットフォーム構成に対応することを検証するステップと、
前記署名鍵(SK)が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する、前記署名鍵(SK)のクレデンシャル(C(SK)、CDAA(SK))を前記コンピューティング・プラットフォーム(1)に送信するステップと
を含む方法。
【請求項10】
前記クレデンシャルCDAA(SK)は、前記署名鍵(SK)の公開鍵に結合された匿名クレデンシャルである、請求項9に記載の方法。
【請求項11】
前記公開鍵を前記クレデンシャルの少なくとも1つの属性として符号化することによって、前記クレデンシャルCDAA(SK)を前記公開鍵に結合するステップを含む、請求項10に記載の方法。
【請求項12】
プラットフォーム構成値をストアするための1組のレジスタ(5)を有するトラステッド・プラットフォーム・モジュール(4)を含むコンピューティング・プラットフォーム(1)の前記構成を証明する方法であって、
前記プラットフォーム(1)の前記定義された構成は、前記レジスタ(5)の定義された状態を含み、
前記トラステッド・プラットフォーム・モジュール(4)の証明識別鍵(AIK)を用いて生成され、前記レジスタ(5)の前記定義された状態を示す、前記署名鍵についての証明書を、前記コンピューティング・プラットフォーム(1)から受信するステップと、
前記証明識別鍵(AIK)を認証するステップと、
前記定義された状態がトラステッド・プラットフォーム構成に対応することを検証するステップと
含む、請求項9乃至請求項11の何れか1項に記載の方法。
【請求項13】
コンピューティング・プラットフォーム(1)の構成の証明を検証する方法であって、 前記コンピューティング・プラットフォーム(1)にチャレンジを送信するステップと、
前記コンピューティング・プラットフォーム(1)に結合された署名鍵(SK)を用いて前記チャレンジに署名する前記コンピューティング・プラットフォーム(1)の機能の立証と、前記署名鍵(SK)が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明するクレデンシャル(C(SK)、CDAA(SK))の前記コンピューティング・プラットフォーム(1)による所有の立証とを、前記コンピューティング・プラットフォーム(1)から受信するステップと、
前記クレデンシャル(C(SK)、CDAA(SK))を認証し、それによって、前記コンピューティング・プラットフォーム(1)がトラステッド・プラットフォーム構成を有することを、前記プラットフォーム構成の開示を受信することなく検証するステップと、
含む方法。
【請求項14】
前記署名鍵(SK)を用いて署名された前記チャレンジ、及び前記署名鍵(SK)の公開鍵を、前記チャレンジに署名する前記機能の立証として前記コンピューティング・プラットフォーム(1)から受信するステップと、
前記クレデンシャル(C(SK))を、該クレデンシャルの所有の立証として前記コンピューティング・プラットフォーム(1)から受信するステップと
を含む、請求項13に記載の方法。
【請求項15】
前記クレデンシャルCDAA(SK)は前記署名鍵(SK)の公開鍵に結合された匿名クレデンシャルであり、
前記方法は、前記チャレンジに前記署名する機能と前記クレデンシャルCDAA(SK)の所有との立証として、前記プラットフォーム(1)から、
前記コンピューティング・プラットフォーム(1)による前記クレデンシャルCDAA(SK)の知識の証明と、
前記クレデンシャルCDAA(SK)に結合された鍵と前記署名鍵(SK)の前記公開鍵との同等性の証明と、
前記署名鍵(SK)の前記公開鍵に関する前記チャレンジ上の署名の正確な知識の証明と
を受信するステップを含む、請求項13に記載の方法。
【請求項16】
コンピュータに、前記請求項の何れかに記載の方法を実行させるためのプログラム・コード手段を含む、コンピュータ・プログラム。
【請求項17】
検証者(3)に対して、装置を組み込んだコンピューティング・プラットフォーム(1)の構成を証明するための装置であって、
前記プラットフォーム(1)に結合され、且つ、前記プラットフォーム(1)の定義された構成に結合された署名鍵(SK)を供給し、
前記署名鍵(SK)が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する、前記署名鍵(SK)のクレデンシャル(C(SK)、CDAA(SK))をエバリュエータ(2)から取得し、
前記検証者(3)に対して、前記署名鍵(SK)を用いて前記検証者(3)からのチャレンジに署名する機能を立証し、且つ、前記検証者(3)に対して、前記クレデンシャル(C(SK)、CDAA(SK))の所有を立証し、それによって、前記プラットフォーム(1)がトラステッド構成を有することを、前記プラットフォーム構成を前記検証者(3)に開示することなく証明する、
ように適合された制御論理を含む装置。
【請求項18】
コンピューティング・プラットフォーム(1)の構成を認証するための制御論理を備え装置であって、
前記制御論理は、前記コンピューティング・プラットフォーム(1)に結合され且つ前記コンピューティング・プラットフォーム(1)の定義された構成に結合された署名鍵(SK)の公開鍵と、前記コンピューティング・プラットフォームの前記定義された構成を示すデータ(PCRSK)との、前記コンピューティング・プラットフォーム(1)からの受信に応答して、
前記定義された構成がトラステッド・プラットフォーム構成に対応することを検証し、
前記署名鍵(SK)が明記されていないトラステッド・プラットフォーム構成に結合されていることを証明する、前記署名鍵(SK)のクレデンシャル(C(SK)、CDAA(SK))を前記コンピューティング・プラットフォーム(1)に送信する
ように適合される、
装置。
【請求項19】
コンピューティング・プラットフォーム(1)の構成の証明を検証するための装置であって、
前記コンピューティング・プラットフォーム(1)にチャレンジを送信し、
前記コンピューティング・プラットフォーム(1)に結合された署名鍵(SK)を用いて前記チャレンジに署名する前記コンピューティング・プラットフォーム(1)の機能の立証と、前記署名鍵(SK)が明記されていないトラスッテド・プラットフォーム構成に結合されていることを証明するクレデンシャル(C(SK)、CDAA(SK))の前記コンピューティング・プラットフォーム(1)による所有の立証とを、前記コンピューティング・プラットフォーム(1)から受信し、
前記クレデンシャル(C(SK)、CDAA(SK))を認証し、それによって、前記コンピューティング・プラットフォーム(1)がトラステッド・プラットフォーム構成を有することを、前記プラットフォーム構成の開示を受信することなく検証する、
ように適合された制御論理を含む装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2010−503252(P2010−503252A)
【公表日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2009−526205(P2009−526205)
【出願日】平成19年7月3日(2007.7.3)
【国際出願番号】PCT/IB2007/052586
【国際公開番号】WO2008/026086
【国際公開日】平成20年3月6日(2008.3.6)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】