ディストリビューションCDを使用した、署名されたグループにおけるダイレクトプルーフの秘密鍵を装置に伝達する方法
署名された鍵のグループにダイレクトプルーフの秘密鍵をフィールドにおけるクライアントコンピュータシステムにインストールされた装置に伝達することは、装置における著しい不揮発性ストレージを必要とすることなしに、確実なやり方で達成される。固有の擬似ランダム値が生成され、製造時間で装置におけるグループナンバーと共に記憶される。擬似ランダム値は、装置に関連されるダイレクトプルーフの秘密鍵及び秘密鍵のダイジェストを保持するデータ構造を暗号化するための対称鍵を生成するために使用される。結果的に得られた暗号化データ構造は、取り外し可能な記憶媒体の署名された鍵のグループ(たとえば、署名されたグループレコード)に記憶され、クライアントコンピュータシステムのオーナに配信される。装置がクライアントコンピュータシステムで初期化されたとき、ローカライズされ、暗号化されたデータ構造がシステムに存在するかをチェックする。存在しない場合、システムは、取り外し可能な記憶媒体から暗号化されたデータ構造の関連される署名されたグループレコードを取得し、署名されたグループレコードを認証する。グループレコードが有効であるとき、ダイレクトプルーフの秘密鍵を取得するため、その記憶されている擬似ランダム値から再生された対称鍵を使用して暗号化されたデータ構造を復号する。秘密鍵が有効であるとき、クライアントコンピュータシステムにおける装置による後続の認証処理のために使用される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータセキュリティ全般に関し、より詳細には、処理システムにおける装置に暗号化鍵を確実に配信することに関する。
【背景技術】
【0002】
コンテンツプロテクション及び/又はコンピュータセキュリティ機能をサポートする処理システムアーキテクチャは、特別にプロテクトされた、すなわち「信頼される“trusted”」ソフトウェアモジュールが、(たとえば、グラフィックコントローラカードのような)処理システムにおける特別にプロテクトされた、すなわち「信頼される」ハードウェア装置との認証された暗号化通信セッションを形成することができることを必要とする。装置を識別し、同時に、暗号化された通信セッションを確立するための1つの一般に使用される方法は、片側認証DH(one-sided authenticated Diffie-Helman)鍵交換プロセスを使用することである。このプロセスでは、装置には、固有の公開/秘密のRSA(Rivest, Shamir and Adelman)アルゴリズムの鍵のペア又は固有のECC(Elliptic Curve Cryptography)鍵のペアが割り当てられる。しかし、この認証プロセスは、RSA又はECC鍵を使用するため、装置は、固有かつ立証できるアイデンティティを有し、これにより、プライバシーの関心が生じる。最悪のケースでは、これらの関心は、この種のセキュリティを提供する信頼できる装置を構築するOEM(Original Equipment Manufacture)からのサポートがないことに帰着する。
【発明の開示】
【課題を解決するための手段】
【0003】
プロテクトされた/信頼された装置がそれ自身を認証するのを可能にし、信頼されるソフトウェアモジュールと暗号化された通信セッションを確立するため、ダイレクトプルーフに基づいた(Direct Proof-based)Diffie-Helman鍵交換プロトコルを使用することで、処理システムでの固有のアイデンティティ情報を作成するのを回避し、これによりプライバシーの関心を導入するのを回避する。しかし、製造ラインの装置にダイレクトプルーフの秘密鍵を直接埋め込むことは、他のアプローチよりもプロテクトされた装置の不揮発性ストレージを必要とする。本発明の実施の形態は、(たとえば署名のために使用される)ダイレクトプルーフの秘密鍵がディストリビューション・コンパクトディスク・リードオンリメモリ(CD−ROM又はCD)に関する確実なやり方で署名されたグループに伝達し、装置それ自身により装置で続いてインストールされるのを可能とする方法である。1実施の形態では、この機能をサポートするために必要とされるデバイスストレージにおける低減は、近似的に300〜700バイト、さらに近似的に20〜25バイトまでに及ぶ。装置のためのダイレクトプルーフに基づいたDiffie-Helman鍵交換を実現するために必要とされる不揮発性ストレージの量におけるこの低減は、この技術が更に広く採用されることになる。
【0004】
本発明の「1実施の形態」又は「実施の形態」に対する明細書における引用は、実施の形態に関して記載される特定の機能、構造又は特徴が本発明の少なくとも1つの実施の形態に含まれることが意味される。したがって、明細書を通して様々な場所で現れるフレーズ「1実施の形態」の出現は、同じ実施の形態を全て引用する必要がない。
【0005】
以下の記載では、本発明の1以上の実施の形態の所定の機能を説明するために所定の技術が使用される。たとえば、「プラットフォーム」は、情報を送信及び受信するために適合される何れかのタイプの通信装置として定義される。様々なプラットフォームの例は、制限又は限定されるものではないが、コンピュータシステム、パーソナルデジタルアシスタント、セルラー電話、セットトップボックス、ファクシミリマシン、プリンタ、モデム、ルータ等を含む。「通信リンク」は、プラットフォームに適合された1以上の情報伝送媒体として広義に定義される。様々なタイプの通信リンクの例は、制限又は限定されるものではないが、電気配線、光ファイバ、ケーブル、バストレース、又はワイヤレスシグナリング技術を含む。
【0006】
「チャレンジャー“challenger”」は、別のエンティティからの真性又は権限の確認を必要とするエンティティ(たとえば、人物、プラットフォーム、システム、ソフトウェア、及び/又は装置)を示す。通常、これは、要求された情報を開示又は提供する前に実行される。「レスポンダ“responder”」は、その権限、有効性、及び/又はアイデンティティの幾つかのプルーフ(証明)を提供するために要求されているエンティティを示す。「装置メーカ“device manufacturer”」は、「認証メーカ“certifying manufacturer”」と交換可能に使用され、プラットフォーム又は装置を製造又はコンフィギュアするエンティティを示す。
【0007】
本明細書で使用されるように、レスポンダが所有又は(たとえばデジタル署名、鍵のようなシークレット等といった)暗号化情報の知識を有するチャレンジャーを「立証する」又は「確信する」ことは、「チャレンジャー」に開示される情報及びプルーフに基づいて、レスポンダが暗号化情報を有する高い確率が存在することを意味する。このことをチャレンジャーに対して、暗号化情報を「知らせる“reveal”」又は「開示する“disclosing”」ことなしに証明することは、チャレンジャーに開示される情報に基づいて、暗号化情報を判定することはチャレンジャーにとって計算上実行不可能であることを意味する。
【0008】
かかるプルーフは、以下ダイレクトプルーフと呼ばれる。用語「ダイレクトプルーフ“direct proof”」とは、これらのタイプのプルーフが当該技術分野で一般に知られているので、ゼロ知識証明“zero-knowledge proof”と呼ばれる。特に、本明細書で引用されるように、特定のダイレクトプルーフプロトコルは、本発明の所有者に譲渡され、“System and Method for Establishing Trust Without Revealing Identity”と題された、2002年11月27日に提出された、係属中の特許出願シリアル番号10/306,336号の内容である。ダイレクトプルーフは、発行者により定義されたように共通の特徴を共有する多くのメンバのファミリを発行者が定義するプロトコルを定義する。発行者は、全体としてファミリを表すファミリの公開及び秘密鍵のペア(Fpub及びFpri)を生成する。Fpriを使用して、発行者は、ファミリにおけるそれぞれ個々のメンバについて固有のダイレクトプルーフの公開署名鍵(DPpri)を生成する。個々のDPpriにより署名されたメッセージは、ファミリの公開鍵Fpubを使用して確認される。しかし、かかる確認は、署名者がファミリのメンバことを識別するのみであって、個々のメンバに関して固有に識別する情報が露出されていない。1実施の形態では、発行者は、装置メーカ又は代表者である。すなわち、発行者は、共有される特性に基づいて装置のファミリを定義し、ファミリ公開/秘密鍵のペアを生成し、DP秘密鍵を作成して装置に注入する能力をもつエンティティである場合がある。また、発行者は、鍵のソース及び装置ファミリの特徴を識別するファミリの公開鍵のための証明書を生成する。
【発明を実施するための最良の形態】
【0009】
本発明の特徴及び利点は、本発明の以下の詳細な説明から明らかとなる。
ここで図1を参照して、本発明の実施の形態に従って動作する信頼されるハードウェア装置で実現されるプラットフォーム(「信頼されるプラットフォームモジュール“Trusted Platform Module”」すなわち“TPM”と呼ばれる)を特徴付けるシステムの実施の形態が示される。第一のプラットフォーム102(チャレンジャー)は、第二のプラットフォーム104(レスポンダ)がそれ自身に関する情報を提供するリクエスト106を送出する。リクエスト106に応答して、第二のプラットフォーム104は、要求された情報108を提供する。
【0010】
さらに、高くされたセキュリティについて、第一のプラットフォーム102は、要求された情報108が選択された装置メーカ又は選択された装置メーカのグループ(以下、「装置メーカ110」と呼ばれる)の何れかにより製造された装置から到来したことを確認する必要がある。たとえば、本発明の1実施の形態について、第一のプラットフォーム102は、装置メーカ110により生成された暗号化情報(たとえば署名)を有することを示すように第二のプラットフォーム104にチャレンジ(要求)する。このチャレンジは、(図示されるように)リクエスト106に含まれるか、又は個別の送信である場合がある。第二のプラットフォーム104は、返答の形式で情報を提供することでチャレンジに応答し、暗号化情報を示すことなしに、第二のプラットフォーム104が装置メーカ110により生成された暗号化情報を有することを第一のプラットフォーム102に確信させる。返答は、(図示された)要求された情報108又は個別の送信の一部である場合がある。
【0011】
本発明の1実施の形態では、第二のプラットフォーム104は、信頼されるプラットフォームモジュール(TPM)115を有する。TPM115は、装置メーカ110により製造される暗号化装置である。本発明の1実施の形態では、TPM115は、パッケージにカプセル化された少量のオンチップメモリをもつプロセッサを有する。TPM115は、返答が有効なTPMから送信されたことを判定するのを可能にする第一のプラットフォーム102に情報を提供するために構成される。使用される情報は、TPM又は第二のプラットフォームのアイデンティティが判定される可能性を高くしないコンテンツである。
【0012】
図2は、TPM115による第二のプラットフォーム104の第一の実施の形態を例示する図である。本発明のこの実施の形態について、第二のプラットフォーム104は、TPM115に結合されたプロセッサ202を有する。一般に、プロセッサ202は、情報を処理する装置である。たとえば、本発明の1実施の形態では、プロセッサ202は、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ又は更にはステートマシンとして実現される。代替的に、本発明の別の実施の形態では、プロセッサ202は、フィールドプログラマブルゲートアレイ(FPGA)、トランジスタ−トランジスタロジック(TTL)ロジック、又は更に特定用途向け集積回路(ASIC)のようなプログラマブル又はハードコーデッドロジックとして実現される。
【0013】
本明細書では、第二のプラットフォーム104は、鍵、ハッシュ値、署名、証明書等のうちの1つ以上のような暗号化情報の記憶を可能にするストレージユニット206を更に有する。“X”のハッシュ値は、“Hash(x)”として表される。かかる情報は、図3に示されるようなストレージユニット206の代わりに、TPM115の内部メモリ220に記憶されることが考えられる。暗号化情報は、特にTPM115の外部に記憶される場合に暗号化される。
【0014】
図4は、図2のTPM115で実現されるコンピュータシステム300を含むプラットフォームの実施の形態を例示する図である。コンピュータシステム300は、バス302に結合されるバス302及びプロセッサ310を有する。コンピュータシステム300は、メインメモリユニット304及びスタティックメモリユニット306を更に有する。
【0015】
本明細書では、メインメモリユニット304は、プロセッサ310により実行される情報及び命令を記憶するための不揮発性半導体メモリである。また、メインメモリ304は、プロセッサ310による命令の実行の間に、一時的な変数又は他の中間情報を記憶するために使用される。スタティックメモリユニット306は、より永続的な性質でプロセッサ310のための情報及び命令を記憶するための不揮発性半導体メモリである。スタティックメモリ306の例は、限定又は制限されるものではないが、リードオンリメモリ(ROM)を含む。メインメモリユニット304及びスタティックメモリユニット306の両者は、バス302に結合される。
【0016】
本発明の1実施の形態では、コンピュータシステム300は、磁気ディスク又は光ディスクのようなデータ記憶装置308を更に有し、その対応する装置は、情報及び命令を記憶するためにコンピュータシステム300に結合される。
【0017】
また、コンピュータシステム300は、グラフィックスコントローラ装置314にバス302を介して結合され、この装置は、エンドユーザに情報を表示するため、陰極線管(CRT)、液晶ディスプレイ(LCD)又は何れかのフラットパネルディスプレイのようなディスプレイ(図示せず)を制御する。1実施の形態では、プロセッサにより実行されているソフトウェアモジュールとの認証された暗号化通信セッションを確立することがグラフィックスコントローラ又は他の周辺装置にとって望まれる。
【0018】
典型的に、英数字入力装置316(たとえば、キーボード、キーパッド等)は、情報及び/又はコマンドセレクションをプロセッサ310に伝達するためにバス302に結合される。別のタイプのユーザ入力装置は、方向情報及びコマンドセレクションをプロセッサ310に伝達し、ディスプレイ314でのカーソルの動きを制御するため、マウス、トラックボール、タッチパッド、スタイラス又はカーソル方向キーのようなカーソル制御ユニット318である。
【0019】
また、通信インタフェースユニット320は、バス302に結合される。インタフェースユニット320の例は、ローカル又はワイドエリアネットワークの一部を形成する通信リンクに結合するために使用される、モデム、ネットワークインタフェースカード、又は他の公知のインタフェースを含む。このようにして、コンピュータシステム300は、たとえば企業のイントラネット及び/又はインターネットのような、従来のネットワークインフラストラクチャを介して多数のクライアント及び/又はサーバに結合される。
【0020】
先に記載された多かれ少なかれ設けられたコンピュータシステムは、所定の実現について望まれることが理解される。したがって、コンピュータシステム300のコンフィギュレーションは、価格の制約、性能要件、技術的な改善、及び/又は他の状況のような様々な要素に依存した実現へと変化する。
【0021】
少なくとも1つの実施の形態では、コンピュータシステム300は、メインメモリ304及び/又は大容量記憶装置308に記憶され、システムにおいて他の敵対するソフトウェアが存在する場合であっても特定の動作を実行するためにプロセッサ310により実行されている、特別にプロテクトされた「信頼される」ソフトウェアモジュール(たとえば、耐タンパー性ソフトウェア、又はプロテクトされたプログラムを実行するための能力を有するシステム)の使用をサポートする。これら信頼されるソフトウェアモジュールのなかには、他のプラットフォームにではないが、たとえばグラフィックスコントローラ314のような同じプラットフォームをもつ1以上に装置に対する、等価的に「信頼できる“trustable”」プロテクトされたアクセスを必要とするものがある。一般に、かかるアクセスは、信頼されるソフトウェアモジュールは、装置の機能及び/又は特定のアイデンティティを識別することができ、システムにおける他のソフトウェアにより詮索又は成りすますことができないデータのやり取りを可能にするため、装置との暗号化セッションを確立することができることを必要とする。
【0022】
装置を識別し、同時に、暗号化されたセッションを確立する1つの従来技術の方法は、片側認証されたDiffie−Hellman(DH)鍵交換プロセスを使用することである。このプロセスでは、装置には、固有の公開/秘密のRSA又はECC鍵のペアが割り当てられる。装置は、秘密鍵を保持及びプロテクトし、認証証明書に沿って公開鍵は、ソフトウェアモジュールにリリースされる。DH鍵交換プロセスの間、装置は、その秘密鍵を使用してメッセージを署名し、これにより、ソフトウェアモジュールは、対応する公開鍵を使用して確認することができる。これにより、ソフトウェアモジュールは、メッセージが関心のある装置から実際に到来したことを認証するのを可能にする。
【0023】
しかし、この認証プロセスがRSA又はECC鍵を使用するため、装置は、固有かつ証明できるアイデンティティを有する。装置にその秘密鍵でメッセージを署名するソフトウェアモジュールは、この特定の固有の装置がコンピュータシステムに存在することを証明する。装置が処理システムの間でめったに移動しないとすると、これは、証明できる固有のコンピュータシステムのアイデンティティを表す。さらに、装置の公開鍵それ自身は、一定の固有値、効果的には永続性のある“cookie”である。あるケースでは、これらの特徴は、重要なプライバシーの問題として解釈される。
【0024】
1つの代替的なアプローチは、本出願の所有者に譲渡された、“An Apparatus and Method for Establishing an Authenticated Encrypted Session with a Device Without Exposing Privacy-Sensitive Information”と題された、2004年?月?日に提出された係属中の特許出願シリアル番号10/???,???に記載されている。そのアプローチでは、片側認証されたDiffie−HelmanプロセスにおけるRSA又はECC鍵の使用は、ダイレクトプルーフ鍵で置き換えられる。このアプローチを使用する装置は、特定の装置のファミリに属するとして認証され、これは、装置の挙動又は信用度に関する保証を含む場合がある、このアプローチは、処理システムを表す固有のアイデンティティを確立するために使用される固有に識別する情報を露出しない。
【0025】
このアプローチは良好に機能するが、ダイレクトプルーフの秘密鍵を保持するために装置において更なるストレージを必要とし、このストレージは、ECCキーよりも大きい。この更なるストレージの要件の負担を軽減するため、本発明の実施の形態は、装置における実質的な更なる鍵を必要とすることなしに、鍵を必要とするときに装置がダイレクトプルーフの秘密鍵を有することを保証するためのシステム及びプロセスを定義する。1実施の形態では、DP鍵は、署名されたグループにおいてクライアントのコンピュータシステムに伝達される。
【0026】
本発明の少なくとも1つの実施の形態では、装置が製造ラインで生産される間に、装置メーカは、128ビットの擬似ランダム数を装置に記憶するのみであり、非常に大きなダイレクトプルーフの秘密鍵(DPpri)がディストリビューションCDを使用して暗号化及び伝達される。他の実施の形態は、128ビットよりも長いか短い数を装置に記憶する。このプロセスは、指定された装置のみがその割り当てられたDPpri鍵を復号して使用することを保証する。
【0027】
本発明の少なくとも1つの実施の形態では、“keyblobs”と呼ばれるDPpri暗号化データ構造は、装置メーカにより署名されたグループレコードに伝達される。全体のグループレコードは、装置に伝達され、この装置は、それ自身の暗号化されたkeyblobを抽出する。装置が全体のレコードを分析することを必要とし、全体のレコードが分析されるまで抽出されたkeyblobを処理し始めるのを必要とすることなしに、アタッカーは、タイミングアタックに基づいてどのkeyblobが選択されたかを判断することができない。レコードを署名し、そのkeyblobを処理する前に装置が署名を確認するのを必要とすることで、アタッカーが装置の応答をテストするために1つのkeyblobの多数のコピーを供給することができないことを保証する。1実施の形態では、アタッカーが判定することができるのは、その装置がグループのメンバであることである。1実施の形態では、装置は、全体で近似的に40バイトのデータについて、予め決定されたサイズの擬似ランダム値、グループ識別子(たとえば4バイト)、及び、装置メーカのグループ公開鍵の20バイトのハッシュを記憶する。
【0028】
図5は、本発明の実施の形態に係る署名されたグループにおけるダイレクトプルーフの鍵を配信するためにシステム500の図である。このシステムには、装置製造プロテクト(device manufacturing protected)システム502、装置製造プロダクション(device manufacturing production)システム503、及びクライアントコンピュータシステム504といった3つのエンティティが存在する。装置製造プロテクトシステムは、装置506の製造前にセットアッププロセスで使用される処理システムを有する。プロテクトされたシステム502は、プロテクトされたシステムが装置製造サイト外のハッカーからのアタックから保護されるように(たとえばクローズドシステム)、装置メーカ又は他のエンティティにより動作される。製造プロダクションシステム503は、装置の製造において使用される。1実施の形態では、プロテクトされたシステム及びプロダクションシステムは、同じシステムである場合がある。装置506は、クライアントコンピュータシステム(たとえば、メモリコントローラ、グラフィックスコントローラのような周辺装置、I/O装置、他の装置等)において包含するためにハードウェア装置を有する。本発明の実施の形態では、装置は、装置の不揮発性ストレージに記憶される、擬似ランダム値RAND508及びグループ番号509を有する。
【0029】
製造プロテクトシステムは、プロテクトデータベース(protected database)510及びジェネレーション機能512を含む。プロテクトデータベースは、以下に記載される方式でジェネレーション機能512により生成される(製造されるべき装置当たり少なくとも1つの)多数の擬似ランダム値を記憶するためのデータ構造を有する。ジェネレーション機能は、本明細書でkeyblob514と呼ばれるデータ構造を生成するために(ソフトウェア又はハードウェアのいずれかで実現される)ロジックを有する。固有のダイレクトプルーフの秘密鍵(DPpri)は、署名のために装置により使用される場合がある暗号化鍵を含む。DPプライベートダイジェスト516(DPpri Digest)は、SHA−1のようなセキュアメッセージダイジェストを生成する公知の方法に従ってDPpriのメッセージダイジェストを有する。幾つかの実施の形態は、互換性の目的でkeyblobの一部としてビットストリームを有する擬似ランダム初期化ベクトル(IV)518を含む。暗号化のためにストリーム暗号が使用される場合、ストリーム暗号でIVを使用するために公知の方法でIVが使用される。ブロック暗号が暗号化のために使用される場合、IVは暗号化されるべきメッセージの一部として使用され、暗号化のそれぞれの例を異ならせる。
【0030】
本発明の実施の形態では、製造プロテクトシステムは、(以下に詳細に記載されるように)1以上のkeyblobを生成し、CD522のkeyblobデータベース520におけるグループレコード515にkeyblobを記憶する。1実施の形態では、それぞれのグループレコードにおいて多くのkeyblobが存在する場合があり、1つのCDで多くのグループレコードが存在する場合があり、何れかの組み合わせで、唯一の制限は、CDの物理的な記憶の制限である。したがって、それぞれのグループレコードは、複数のkeyblobを有する。次いで、CDは、典型的な物理チャネルを通してコンピュータシステムメーカ、コンピュータディストリビュータ、クライアントコンピュータシステムコンシューマ等に流通される。CDは記憶媒体として本明細書では記載されるが、適切な取り外し可能な記憶媒体が使用される(たとえばデジタルバーサティルディスク(DVD)又は他の媒体)。
【0031】
システム504に含まれる装置506との通信セッションの認証及び鍵公開のためにダイレクトプルーフプロトコルを使用することを望むクライアントコンピュータシステム504は、CDのkeyblobデータベース520外から選択されたグループレコード515を読み取る。Keyblobデータは、グループレコードから得られ、ダイレクトプルーフプロトコルを実現するのに使用するために(以下に記載されるような)ローカライズされたkeyblob524を発生するために装置により使用される。本発明の実施の形態では、複数のkeyblobを有する全体のグループレコードは、一度に装置により処理され、アタッカーは、暗号化されたローカライズされたkeyblobを生成するためにどの特定のkeyblobが実際に使用されているかを判定することができない。装置ドライバソフトウェア526は、装置506を初期化及び制御するためにクライアントコンピュータシステムにより実行される。
【0032】
本発明の実施の形態では、動作について4つの別個のステージが存在する。図6は、本発明の実施の形態に係るダイレクトプルーフキーを配信する方法のステージを例示するフローチャート600である。本発明の実施の形態によれば、所定のアクションは、それぞれのステージで実行される。装置メーカのサイトで、セットアップ(set-up)ステージ602及び製造プロダクション(manufacturing production)ステージ604といった少なくとも2つのステージが存在する。セットアップステージは、図7を参照して本実施の形態で記載される。製造プロダクションステージは、図8を参照して本明細書で記載される。クライアントコンピュータシステムを有するコンシューマサイトで、セットアップ(set-up)ステージ606及びユース(use)ステージ608といった少なくとも2つのステージが存在する。クライアントコンピュータシステムのセットアップステージは、図9を参照して本明細書で記載される。クライアントコンピュータシステムのユースステージは、図10を参照して本明細書で記載される。
【0033】
図7及び図8は、本発明の実施の形態に係る装置製造セットアップ処理を説明するフローチャート700及び800である。1実施の形態では、装置メーカは、製造プロテクトシステム502を使用してこれらのアクションを実行する。ブロック701では、装置メーカは、製造されるべき装置のそれぞれのクラスについて、ダイレクトプルーフファミリの鍵のペア(Fpub及びFpri)を生成する。それぞれ固有の装置は、DPpriを使用して形成された署名がFpubにより確認されるように、対応するDPpri鍵を有する。装置のクラスは、バージョン数に基づいた選択されたプロダクトライン(すなわち装置のタイプ)又はプロダクトラインのサブセット、若しくは装置の他の特性のような、装置のセット又はサブセットを有する。ファミリの鍵のペアは、それが生成された装置のクラスによる使用を目的とする。
【0034】
ブロック702で、装置メーカは、グループレコードを署名及び確認するために使用されるRSA鍵のペア(Gpri,Gpub)を生成する。他の実施の形態では、セキュアデジタル署名システムはRSAの代わりに使用される。この鍵のペアは、ブロック701で生成されたファミリの鍵のペアに独立であり、装置メーカにより生成された全ての装置のグルーピングについて使用される。ブロック703で、装置メーカは、所望のグループサイズを選択する。グループサイズは、互いにグループ化されたファミリにおける装置の数である。グループサイズは、個々の装置がグループ内で「隠す“hide”」のを可能にするために十分に大きく、装置によるkeyblob抽出処理の間のアンデュータイム(undue time)を消費するように大きくならないように選択される。1実施の形態では、グループサイズは、5000の装置となるように選択される。他の実施の形態では、他のサイズが使用される場合もある。
【0035】
次いで、装置メーカは、グループサイズにより指定される装置の鍵の数を生成する。グループサイズにより規定された装置の数を有するそれぞれのグループは、グループナンバーにより指定される。所与のグループについて製造されるべきそれぞれの装置について、ジェネレーション機能512又は製造プロテクトシステム502の他のモジュールは、図7のブロック704から図8のブロック802を実行する。はじめに、ブロック704で、ジェネレーション機能は、固有の擬似ランダム値(RAND)508を生成する。1実施の形態では、RANDの長さは、128ビットである。他の実施の形態では、他の値のサイズが使用される場合がある。1実施の形態では、多数の装置の擬似ランダム値は、前もって生成される場合がある。ブロック706では、装置によりサポートされる片側関数fを使用して、ジェネレーション関数は、固有のRAND値(SKEY=f(RAND))から対称な暗号化鍵SKEYを生成する。片側関数は、この目的のために適した公知のアルゴリズムである(たとえば、SHA−1,MGF1,データ暗号化規格(DES),Triple DES等)。ブロック708で、1実施の形態では、ジェネレーション関数は、SKEYを使用して(たとえば少数のゼロバイトといった) “null entry”を暗号化するためにSKEYを使用することで(Devive ID=Encrypt(0...0))、ディストリビューションCD522のこのデバイスのkeyblob514を参照するために使用される識別子(ID)ラベルを生成する。他の実施の形態では、DeviceIDを生成する他の方法が使用されるか、他の値がSKEYにより暗号化される。
【0036】
つぎに、ブロック710で、ジェネレーション関数は、装置のファミリの公開鍵(Fpub)に相関するDP秘密署名鍵DPpriを生成する。ブロック712で、ジェネレーション関数は、DPpriをハッシュ(hashe)し、(たとえばSHA−1又は別のハッシュアルゴリズムといった)公知の方法を使用してDPpriダイジェストを生成する。ブロック714で、ジェネレーション関数は、装置のためのkeyblobデータ構造を構築する。keyblobは、少なくともDPpri及びDPpriダイジェストを含む。1実施の形態では、keyblobは、複数の擬似ランダムに生成されたビットを有するランダム初期化ベクトルを含む。これらの値は、暗号化されたkeyblob514を生成するためにSKEYを使用して暗号化される。ブロック716で、ブロック708で生成されたデバイスID、及びブロック714で生成された暗号化されたkeyblob514は、ディストリビューションCD 522でリリースされるべきkeyblobデータベース520におけるレコードに記憶される。1実施の形態では、keyblobデータベースにおけるレコードは、デバイスIDにより示される。
【0037】
処理は、図8のブロック801に続く。ブロック801で、装置が属するグループについて現在のRAND値及び現在のグループナンバーは、プロテクトされたデータベース510に記憶される。ブロック802で、SKEY及びDPpriは、フィールドにおいて装置により再生されるので削除される。グループナンバーは、製造されている装置のそれぞれ連続するグループについてインクリメントされる。SKEYによるDPpriダイジェスト及び後続する暗号化の作成は、SKEYの所有を有さないエンティティによりDPpriのコンテンツを決定することができないように、及び、SKEYの所有を有するエンティティによる後続の検出なしに、SKEYの所有を有さないエンティティによりKeyBlobのコンテンツが変更されないように設計される。他の実施の形態では、このセキュリティ及びインテグリティプロテクションを提供する他の方法が使用される。幾つかの実施の形態では、インテグリティプロテクションは必要とされず、秘密でのみ提供される方法が使用される。このケースでは、DPpriダイジェストの値は必要ではない。
【0038】
Keyblobの全体のデータセットが装置のグループについて形成されたとき、少なくともそのグループのkeyblobデータベース520は、それぞれの装置でディストリビュートされるべき、共通のディストリビューションCDに対して署名され(signed)、焼付けされる(burned)(1実施の形態では、1つのkeyblobデータベースのエントリは、デバイスIDフィールドによりインデックス付けされるように、それぞれの装置について使用される)。したがって、ブロック804で、装置メーカは、グループレコード515を作製する。グループレコードは、グループナンバー、グループの公開鍵Gpub、グループサイズ、及び全体のグループのkeyblobレコードを有する(<GroupNumber,Gpub,GroupSize,<DeviceID1, Encrypted Keyblob1>, <DeviceID2, Encrypted Keyblob2>,...>)。ブロック806で、装置メーカは、グループの秘密鍵Gpriを使用してグループレコードを署名し、デジタル署名をグループレコードに添付する。ブロック808で、署名されたグループレコードは、ディストリビューションCDのkeyblobデータベースに追加される。1実施の形態では、ディストリビューションCDは、その使用が以下に更に詳述される、クライアントコンピュータシステムでの更なる処理のために鍵検索ユーティリティソフトウェアモジュールを有する。
【0039】
ブロック802の後の何れかの時間で、ブロック810で、RAND及びグループナンバー値のペアからなるプロテクトされたデータベースは、製造プロセスの間にRAND及びグループナンバーの値を装置に記憶する製造プロダクションシステム503に確実にアップロードされる。ひとたびこのアップロードが確かめられると、RAND値は、製造プロテクトシステム502から確実に削除される。
【0040】
図9は、本発明の実施の形態に係る装置製造プロダクション処理を説明するフローチャートである。装置がプロダクションラインで製造されているとき、ブロック902で、製造プロダクションシステムは、プロテクトされたデータベースから、不使用のRAND及びグループナンバーの値のペアを選択する。次いで、選択されたRAND及びグループナンバーの値は、装置における不揮発性ストレージに記憶される。1実施の形態では、不揮発性ストレージはTPMを有する。ブロック904では、グループ公開鍵Gpubのハッシュは、装置の不揮発性ストレージに記憶される。ブロック906で、ひとたび、RAND値の装置へのストレージが成功すると、製造プロダクションシステムは、プロテクトされたデータベースにおけるその装置のRAND値の何れかのレコードを破壊する。そのポイントで、RAND値の唯一のコピーは、装置に記憶される。
【0041】
代替的な実施の形態では、RAND値は、装置の製造の間に作成され、次いで、keyblobの計算のための製造プロテクトシステムに送出される。
【0042】
別の実施の形態では、RAND値は装置で作成され、装置及び製造プロテクトシステムは、装置外のDPpriを示さない方法を使用するDPpri鍵を生成するためにプロトコルにかみ合う。次いで、装置は、DeviceID、SKEY及びkeyblobを作成する。装置は、プロテクトされたデータベース510におけるストレージのため、DeviceID及びkeyblobを製造システムに通過させる。この方法では、製造システムは、プロテクトされたデータベースにおける同じ情報(DeviceID,keyblob)で終了するが、RANDの値又はDPpriの値を知らない。
【0043】
図10及び図11は、本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャート1000及び1100である。クライアントコンピュータシステムは、システムにブートアップする部分としてこれらのアクションを実行する。ブロック1002では、クライアントコンピュータシステムは、通常の方式でブートアップされ、装置のデバイスドライバ526は、メインメモリにロードされる。デバイスドライバが初期化され、実行を開始したとき、デバイスドライバは、ブロック1004で、装置506について大容量ストレージ装置308に記憶されている、暗号化され、ローカライズされたkeyblob524が既に存在するかを判定する。存在する場合、更なるセットアップ処理が実行される必要があり、ブロック1006でセットアップ処理が終了する。存在しない場合、処理はブロック1008で継続する。ブロック1008で、デバイスドライバは、ディストリビューションCD522の挿入を依頼する、クライアントコンピュータシステムへのメッセージの表示をさせる。ひとたびCDがコンピュータシステムにより読み取られると、次いで、装置ドライバは、CDに記憶されている(図5に示されていない)鍵検索ユーティリティソフトウェアモジュールを始動する。鍵検索ユーティリティは、グループの公開鍵Gpubのハッシュ、及びグループナンバー509である場合がある、そのグループIDについて装置に尋ねる。装置はこれらの値をリターンし、ユーティリティは、これらの値を使用して、CDのkeyblobデータベースからの適切に署名されたグループレコードを探す。また、このユーティリティは、鍵取得コマンドを装置506に発し、装置のDP秘密鍵の取得プロセスを始動する。
【0044】
これに応じて、ブロック1010で、装置は、その片側関数fを使用して、埋め込まれたRAND値508から対称鍵SKEY(ここでは復号において使用)を再生する(SKEY=f(RAND))。ブロック1012で、装置は、“null entry”(たとえば少数のゼロバイト)を暗号化するためにSKEYを使用することで、その固有のデバイスIDラベルを生成する(SKEYを使用して、DeviceID=Encrypt(0..0))。本発明の1実施の形態では、これら値の何れもが装置外に露出される。次いで、装置は、進行するその準備を合図する。
【0045】
ブロック1014で、鍵検索ユーティリティは、整合するグループナンバーを含むグループレコードについて、CDでkeyblobデータベース520をサーチし、グループレコードを抽出し、全体のグループレコードを装置に転送する。
【0046】
ブロック1016で、装置は、全体の供給されたグループレコードを分析するが、(ブロック1012で生成された)グループナンバー、グループレコードのハッシュ、グループの公開鍵Gpub、及び、装置のそれ自身のDeviceIDに整合する最初の<DeviceID,Encrypted Keyblob>フィールドのみを保持する。ブロック1018で、装置は、グループレコードを確認する。1実施の形態では、装置は、抽出されたグループナンバーフィールドを装置に埋め込まれたグループナンバーに比較する。これらが整合しない場合、鍵取得プロセスが終了される。そうでない場合、装置は抽出されたGpubフィールドをハッシュし、それを装置に埋め込まれたGpubハッシュと比較する。ハッシュが整合しない場合、鍵取得プロセスが終了される。そうでない場合、装置は有効にされたGpub鍵を使用して、グループレコードのハッシュに供給された署名を認証する。署名を認証した場合、グループレコードが認証され、プロセスは図11のブロック1120で継続する。
【0047】
1実施の形態では、装置がkeyblobを有した後に、悪事を働くソフトウェア(rogue software)が鍵取得コマンドを装置に送出しようとした場合、装置は、グループナンバーをもつ悪事を働くソフトウェアに応答しない。代わりに、装置は、エラーインジケータをリターンする。実際に、装置がローカライズされたkeyblobへのアクセスを有する場合、鍵取得コマンドの機能がディスエーブルにされる。このように、装置は、keyblobを有さないときを除いて、グループナンバーを示さない。
【0048】
ブロック1120で、装置は、対称鍵SKEYを使用して暗号化されたkeyblobを復号し、DPpri及びDPpriダイジェストを生じ、これらの値をその不揮発性のストレージに記憶する(Decrypted Keyblob=Decrypt (IV, DPpri, DPpri Digest))。初期化ベクトル(IV)が廃棄される場合がある。ブロック1122で、装置は、DPpriをハッシュし、DPpriダイジェストに対して結果を比較することで、DPpriのインテグリティをチェックする。比較が良好である場合、装置は、DPpriをその有効な鍵として受ける。また、装置は、DP秘密鍵が上手く取得されたことを示すために、鍵取得フラグを真(true)に設定する。ブロック1124で、装置は、新たなIV(SKEYを使用して、Localized Kblob = Encrypt (IV2, DPpri, DPpri Digest))を使用して、新たなIVを選択し、新たに暗号化されたローカライズされたkeyblobを作成する。新たに暗号化されたローカライズされたkeyblobは、鍵検索ユーティリティにリターンされる。ブロック1126で、鍵検索ユーティリティは、暗号化され、ローカライズされたkeyblobを(たとえば大容量記憶装置308のような)クライアントコンピュータシステム内のストレージに記憶する。装置のDPpriは、クライアントコンピュータシステムに確実に記憶される。
【0049】
ひとたび装置がセットアップ処理の間にDPpriを取得すると、装置はDPpriを使用する。図12は、本発明の実施の形態に係るクライアントコンピュータシステムのフローチャートである。クライアントコンピュータシステムは、セットアップが終了した後に任意にこれらのアクションを実行する。ブロック1202で、クライアントコンピュータシステムは、通常のやり方でブートアップされ、装置のデバイスドライバ526は、メインメモリにロードされる。デバイスドライバが初期化され、実行が開始されたとき、デバイスドライバは、装置506の大容量記憶装置308に記憶されている暗号化され、ローカライズされたkeyblob524が既に存在するかを判定する。存在しない場合、図10及び図11のセットアップ処理が実行される。この装置にとって利用可能な暗号化され、ローカライズされたkeyblobが存在する場合、処理はブロック1206で継続する。ブロック1206で、デバイスドライバは、暗号化され、ローカライズされたkeyblobを検索し、そのkeyblobを装置に転送する。1実施の形態では、keyblobの転送は、Load Keyblobコマンドを実行することで達成される。
【0050】
ブロック1208で、装置は、埋め込まれたRAND値508から対称鍵SKEY(ここでは復号における使用)を再生する(SKEY=f(RAND))。ブロック1210で、装置は、対象鍵SKEYを使用して、暗号化され、ローカライズされたkeyblobを復号し、DPpri及びDPpriダイジェストを得て、これらの値を不揮発性ストレージに記憶する(SKEYを使用して、Decrypted Keyblob = Decrypt (IV2, DPpri, DPpri Digest))。第二の初期化ベクトル(IV2)は廃棄される場合がある。ブロック1212で、装置は、DPpriをハッシュし、結果をDPpriダイジェストに対して比較することで、DPpriのインテグリティをチェックする。(たとえばダイジェストの整合といった)比較が良好である場合、装置は、先に取得された有効な鍵としてDPpriを受け、それを使用のためにイネーブルにする。また、装置は、DP秘密鍵が上手く取得されたことを示すため、鍵取得フラグを真に設定する。ブロック1214で、装置は、新たなIVを使用して、更に別のIVを選択し、新たな暗号化され、ローカライズされたkeyblobを作成する(Localized Keyblob = Encrypt (IV3, DPpri, DPpri Digest))。新たに暗号化され、ローカライズされたkeyblobは、鍵検索ユーティリティにリターンされる。ブロック1216で、鍵検索ユーティリティは、クライアントコンピュータシステム内の(たとえば、大容量ストレージ装置308のような)ストレージに暗号化され、ローカライズされたkeyblobを記憶する。装置のDPpriは、クライアントコンピュータシステムに再び確実に記憶される。
【0051】
本発明の1実施の形態では、一度に署名されたグループの全ての装置のDP秘密鍵を生成する必要はない。ディストリビューションCDが定期的にアップデートされるとすると、装置のDPプライベート鍵は、必要に応じてバッチで生成される。ディストリビューションCDが「焼付けされる“burned”」たびに、生成されたが装置に未だ割り当てられていない装置の鍵を含む、今まで生成されたように、keyblobデータベースについて署名されたグループを含む。
【0052】
1実施の形態では、図10のブロックにおけるように全体のグループレコードを処理するとき、装置がエラーを検出した場合、装置は、エラーが生じたことを示すフラグを設定するが、処理を継続する。システムセットアップについて全てのステップが完了したとき、装置は、デバイスドライバにエラーを合図する。これは、アタッカーがエラーのタイプ及びロケーションから情報を得させない。
【0053】
1実施の形態では、本明細書で記載される方法は、装置における不揮発性ストレージの近似的に40バイトを使用する。別の実施の形態では、これは、装置の不揮発性ストレージに記憶される代わりに、Gpub鍵のハッシュが装置の暗号化されたkeyblobに含まれる場合に、近似的に20バイトに低減される場合がある。このケースでは、装置が暗号化されたkeyblobを復号するとき、装置は、Gpubハッシュを検索し、ハッシュを使用してGpub鍵をチェックし、Gpub鍵を使用して全体のグループレコードの署名をチェックする。
【0054】
本明細書で説明された動作はシーケンシャルプロセスとして説明されているが、動作のなかには、実際に、パラレル又は同時に実行されるものがある。さらに、実施の形態の中には、動作順序は、本発明の精神から逸脱することなしに再構成される場合がある。
【0055】
本明細書で記載される技術は、特定のハードウェア又はソフトウェアコンフィギュレーションに限定されず、計算又は処理環境で用途を見出す場合がある。技術は、ハードウェア、ソフトウェア又は2つの組み合わせで実現される場合がある。技術は、モバイル又はステーショナリコンピュータ、パーソナルデジタルアシスタント、セットトップボックス、セルラーテレフォン及びページャ、並びに他の電子装置のようなプログラマブルマシンで実行するソフトウェアで実現される場合があり、それぞれの装置は、プロセッサ、プロセッサにより読み取り可能な記憶媒体(揮発性及び不揮発性メモリ及び/又はストレージエレメントを含む)、少なくとも1つの入力装置、及び1以上の出力装置を含んでいる。プログラムコードは、記載された機能を実行し、出力情報を生成するために入力装置を使用して入力されたデータに適用される。出力情報は、1以上の出力装置に適用される場合がある。当業者であれば、本発明は、マルチプロセッサシステム、マイクロコンピュータ、メインフレームコンピュータ等を含む、様々なコンピュータシステムコンフィギュレーションで実施することができることを理解されるであろう。また、本発明は、通信ネットワークを通してリンクされたリモート処理装置によりタスクが実行される、分散されたコンピュータ環境で実施することができる。
【0056】
それぞれのプログラムは、処理システムと通信するための高水準の手順又はオブジェクト指向のプログラム言語で実現される。しかし、プログラムは、望まれる場合、アセンブリ又はマシン言語で実現される。いずれのケースでも、言語はコンパイル又はインタープレットされる場合がある。
【0057】
プログラム命令は、命令でプログラムされる汎用又は特定用途処理システムに本明細書で記載された動作を実行させるために使用される。代替的に、動作は、動作を実行するためのハードワイヤロジックを含む特定のハードウェアコンポーネント、又はプログラムされたコンピュータコンポーネントとカスタムハードウェアコンポーネントの組み合わせにより実行される場合がある。本明細書で記載された方法は、処理システム又は本方法を実行する他の電子装置をプログラムするために使用されるそこに記憶された命令を有するコンピュータ読み取り可能な媒体を含む場合があるコンピュータプログラムプロダクトとして提供される。本明細書で使用される用語「コンピュータ読み取り可能な媒体“machine readable medium”」とは、コンピュータにより実行するための命令のシーケンスを記憶又はエンコード可能なメディアであって、コンピュータに本明細書で記載された方法のうちの1つを実行させるメディアを含む。用語「コンピュータ読み取り可能な媒体」は、したがって、限定されるものではないが、固体メモリ、光及び磁気ディスク、及びデータ信号をエンコードする搬送波を含む。さらに、当該技術分野において、動作を実行し、結果を生じさせるものとして、1形式又は別の形式において(たとえば、プログラム、手順、プロセス、アプリケーション、モジュール、ロジック等)ソフトウェアと言うことは一般的なことである。かかる表現は、プロセッサに結果を生じるアクションを実行させる処理システムによりソフトウェアの実行を説明する単なる速記のやり方である。
【0058】
本発明は、例示的な実施の形態を参照して記載されてきたが、この記載は、限定的な意味で解釈されるべきではない。本発明が属する、当業者にとって明らかな、例示的な実施の形態の様々な変更は、本発明の他の実施の形態と同様に、本発明の精神及び範囲に含まれると考えられる。
【図面の簡単な説明】
【0059】
【図1】本発明の1実施の形態に従って動作するTPM(Trusted Platform Module)で実現されるプラットフォームを特徴付けるシステムを例示する図である。
【図2】図1のTPMを含むプラットフォームの第一の実施の形態を例示する図である。
【図3】図1のTPMを含むプラットフォームの第二の実施の形態を例示する図である。
【図4】図2のTPMで実現されるコンピュータシステムの例示的な実施の形態を説明する図である。
【図5】本発明の実施の形態に係る署名されたグループでダイレクトプルーフキーを配信するシステムの図である。
【図6】本発明の実施の形態に係る署名されたグループでダイレクトプルーフキーを配信する方法のステージを例示するフローチャートである。
【図7】本発明の実施の形態に係るセットアップ処理を形成する装置を説明するフローチャートである。
【図8】本発明の実施の形態に係るセットアップ処理を形成する装置を説明するフローチャートである。
【図9】本発明の実施の形態に係るプロダクション処理を形成する装置を説明するフローチャートである。
【図10】本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャートである。
【図11】本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャートである。
【図12】本発明の実施の形態に係るクライアントコンピュータシステム処理のフローチャートである。
【技術分野】
【0001】
本発明は、コンピュータセキュリティ全般に関し、より詳細には、処理システムにおける装置に暗号化鍵を確実に配信することに関する。
【背景技術】
【0002】
コンテンツプロテクション及び/又はコンピュータセキュリティ機能をサポートする処理システムアーキテクチャは、特別にプロテクトされた、すなわち「信頼される“trusted”」ソフトウェアモジュールが、(たとえば、グラフィックコントローラカードのような)処理システムにおける特別にプロテクトされた、すなわち「信頼される」ハードウェア装置との認証された暗号化通信セッションを形成することができることを必要とする。装置を識別し、同時に、暗号化された通信セッションを確立するための1つの一般に使用される方法は、片側認証DH(one-sided authenticated Diffie-Helman)鍵交換プロセスを使用することである。このプロセスでは、装置には、固有の公開/秘密のRSA(Rivest, Shamir and Adelman)アルゴリズムの鍵のペア又は固有のECC(Elliptic Curve Cryptography)鍵のペアが割り当てられる。しかし、この認証プロセスは、RSA又はECC鍵を使用するため、装置は、固有かつ立証できるアイデンティティを有し、これにより、プライバシーの関心が生じる。最悪のケースでは、これらの関心は、この種のセキュリティを提供する信頼できる装置を構築するOEM(Original Equipment Manufacture)からのサポートがないことに帰着する。
【発明の開示】
【課題を解決するための手段】
【0003】
プロテクトされた/信頼された装置がそれ自身を認証するのを可能にし、信頼されるソフトウェアモジュールと暗号化された通信セッションを確立するため、ダイレクトプルーフに基づいた(Direct Proof-based)Diffie-Helman鍵交換プロトコルを使用することで、処理システムでの固有のアイデンティティ情報を作成するのを回避し、これによりプライバシーの関心を導入するのを回避する。しかし、製造ラインの装置にダイレクトプルーフの秘密鍵を直接埋め込むことは、他のアプローチよりもプロテクトされた装置の不揮発性ストレージを必要とする。本発明の実施の形態は、(たとえば署名のために使用される)ダイレクトプルーフの秘密鍵がディストリビューション・コンパクトディスク・リードオンリメモリ(CD−ROM又はCD)に関する確実なやり方で署名されたグループに伝達し、装置それ自身により装置で続いてインストールされるのを可能とする方法である。1実施の形態では、この機能をサポートするために必要とされるデバイスストレージにおける低減は、近似的に300〜700バイト、さらに近似的に20〜25バイトまでに及ぶ。装置のためのダイレクトプルーフに基づいたDiffie-Helman鍵交換を実現するために必要とされる不揮発性ストレージの量におけるこの低減は、この技術が更に広く採用されることになる。
【0004】
本発明の「1実施の形態」又は「実施の形態」に対する明細書における引用は、実施の形態に関して記載される特定の機能、構造又は特徴が本発明の少なくとも1つの実施の形態に含まれることが意味される。したがって、明細書を通して様々な場所で現れるフレーズ「1実施の形態」の出現は、同じ実施の形態を全て引用する必要がない。
【0005】
以下の記載では、本発明の1以上の実施の形態の所定の機能を説明するために所定の技術が使用される。たとえば、「プラットフォーム」は、情報を送信及び受信するために適合される何れかのタイプの通信装置として定義される。様々なプラットフォームの例は、制限又は限定されるものではないが、コンピュータシステム、パーソナルデジタルアシスタント、セルラー電話、セットトップボックス、ファクシミリマシン、プリンタ、モデム、ルータ等を含む。「通信リンク」は、プラットフォームに適合された1以上の情報伝送媒体として広義に定義される。様々なタイプの通信リンクの例は、制限又は限定されるものではないが、電気配線、光ファイバ、ケーブル、バストレース、又はワイヤレスシグナリング技術を含む。
【0006】
「チャレンジャー“challenger”」は、別のエンティティからの真性又は権限の確認を必要とするエンティティ(たとえば、人物、プラットフォーム、システム、ソフトウェア、及び/又は装置)を示す。通常、これは、要求された情報を開示又は提供する前に実行される。「レスポンダ“responder”」は、その権限、有効性、及び/又はアイデンティティの幾つかのプルーフ(証明)を提供するために要求されているエンティティを示す。「装置メーカ“device manufacturer”」は、「認証メーカ“certifying manufacturer”」と交換可能に使用され、プラットフォーム又は装置を製造又はコンフィギュアするエンティティを示す。
【0007】
本明細書で使用されるように、レスポンダが所有又は(たとえばデジタル署名、鍵のようなシークレット等といった)暗号化情報の知識を有するチャレンジャーを「立証する」又は「確信する」ことは、「チャレンジャー」に開示される情報及びプルーフに基づいて、レスポンダが暗号化情報を有する高い確率が存在することを意味する。このことをチャレンジャーに対して、暗号化情報を「知らせる“reveal”」又は「開示する“disclosing”」ことなしに証明することは、チャレンジャーに開示される情報に基づいて、暗号化情報を判定することはチャレンジャーにとって計算上実行不可能であることを意味する。
【0008】
かかるプルーフは、以下ダイレクトプルーフと呼ばれる。用語「ダイレクトプルーフ“direct proof”」とは、これらのタイプのプルーフが当該技術分野で一般に知られているので、ゼロ知識証明“zero-knowledge proof”と呼ばれる。特に、本明細書で引用されるように、特定のダイレクトプルーフプロトコルは、本発明の所有者に譲渡され、“System and Method for Establishing Trust Without Revealing Identity”と題された、2002年11月27日に提出された、係属中の特許出願シリアル番号10/306,336号の内容である。ダイレクトプルーフは、発行者により定義されたように共通の特徴を共有する多くのメンバのファミリを発行者が定義するプロトコルを定義する。発行者は、全体としてファミリを表すファミリの公開及び秘密鍵のペア(Fpub及びFpri)を生成する。Fpriを使用して、発行者は、ファミリにおけるそれぞれ個々のメンバについて固有のダイレクトプルーフの公開署名鍵(DPpri)を生成する。個々のDPpriにより署名されたメッセージは、ファミリの公開鍵Fpubを使用して確認される。しかし、かかる確認は、署名者がファミリのメンバことを識別するのみであって、個々のメンバに関して固有に識別する情報が露出されていない。1実施の形態では、発行者は、装置メーカ又は代表者である。すなわち、発行者は、共有される特性に基づいて装置のファミリを定義し、ファミリ公開/秘密鍵のペアを生成し、DP秘密鍵を作成して装置に注入する能力をもつエンティティである場合がある。また、発行者は、鍵のソース及び装置ファミリの特徴を識別するファミリの公開鍵のための証明書を生成する。
【発明を実施するための最良の形態】
【0009】
本発明の特徴及び利点は、本発明の以下の詳細な説明から明らかとなる。
ここで図1を参照して、本発明の実施の形態に従って動作する信頼されるハードウェア装置で実現されるプラットフォーム(「信頼されるプラットフォームモジュール“Trusted Platform Module”」すなわち“TPM”と呼ばれる)を特徴付けるシステムの実施の形態が示される。第一のプラットフォーム102(チャレンジャー)は、第二のプラットフォーム104(レスポンダ)がそれ自身に関する情報を提供するリクエスト106を送出する。リクエスト106に応答して、第二のプラットフォーム104は、要求された情報108を提供する。
【0010】
さらに、高くされたセキュリティについて、第一のプラットフォーム102は、要求された情報108が選択された装置メーカ又は選択された装置メーカのグループ(以下、「装置メーカ110」と呼ばれる)の何れかにより製造された装置から到来したことを確認する必要がある。たとえば、本発明の1実施の形態について、第一のプラットフォーム102は、装置メーカ110により生成された暗号化情報(たとえば署名)を有することを示すように第二のプラットフォーム104にチャレンジ(要求)する。このチャレンジは、(図示されるように)リクエスト106に含まれるか、又は個別の送信である場合がある。第二のプラットフォーム104は、返答の形式で情報を提供することでチャレンジに応答し、暗号化情報を示すことなしに、第二のプラットフォーム104が装置メーカ110により生成された暗号化情報を有することを第一のプラットフォーム102に確信させる。返答は、(図示された)要求された情報108又は個別の送信の一部である場合がある。
【0011】
本発明の1実施の形態では、第二のプラットフォーム104は、信頼されるプラットフォームモジュール(TPM)115を有する。TPM115は、装置メーカ110により製造される暗号化装置である。本発明の1実施の形態では、TPM115は、パッケージにカプセル化された少量のオンチップメモリをもつプロセッサを有する。TPM115は、返答が有効なTPMから送信されたことを判定するのを可能にする第一のプラットフォーム102に情報を提供するために構成される。使用される情報は、TPM又は第二のプラットフォームのアイデンティティが判定される可能性を高くしないコンテンツである。
【0012】
図2は、TPM115による第二のプラットフォーム104の第一の実施の形態を例示する図である。本発明のこの実施の形態について、第二のプラットフォーム104は、TPM115に結合されたプロセッサ202を有する。一般に、プロセッサ202は、情報を処理する装置である。たとえば、本発明の1実施の形態では、プロセッサ202は、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ又は更にはステートマシンとして実現される。代替的に、本発明の別の実施の形態では、プロセッサ202は、フィールドプログラマブルゲートアレイ(FPGA)、トランジスタ−トランジスタロジック(TTL)ロジック、又は更に特定用途向け集積回路(ASIC)のようなプログラマブル又はハードコーデッドロジックとして実現される。
【0013】
本明細書では、第二のプラットフォーム104は、鍵、ハッシュ値、署名、証明書等のうちの1つ以上のような暗号化情報の記憶を可能にするストレージユニット206を更に有する。“X”のハッシュ値は、“Hash(x)”として表される。かかる情報は、図3に示されるようなストレージユニット206の代わりに、TPM115の内部メモリ220に記憶されることが考えられる。暗号化情報は、特にTPM115の外部に記憶される場合に暗号化される。
【0014】
図4は、図2のTPM115で実現されるコンピュータシステム300を含むプラットフォームの実施の形態を例示する図である。コンピュータシステム300は、バス302に結合されるバス302及びプロセッサ310を有する。コンピュータシステム300は、メインメモリユニット304及びスタティックメモリユニット306を更に有する。
【0015】
本明細書では、メインメモリユニット304は、プロセッサ310により実行される情報及び命令を記憶するための不揮発性半導体メモリである。また、メインメモリ304は、プロセッサ310による命令の実行の間に、一時的な変数又は他の中間情報を記憶するために使用される。スタティックメモリユニット306は、より永続的な性質でプロセッサ310のための情報及び命令を記憶するための不揮発性半導体メモリである。スタティックメモリ306の例は、限定又は制限されるものではないが、リードオンリメモリ(ROM)を含む。メインメモリユニット304及びスタティックメモリユニット306の両者は、バス302に結合される。
【0016】
本発明の1実施の形態では、コンピュータシステム300は、磁気ディスク又は光ディスクのようなデータ記憶装置308を更に有し、その対応する装置は、情報及び命令を記憶するためにコンピュータシステム300に結合される。
【0017】
また、コンピュータシステム300は、グラフィックスコントローラ装置314にバス302を介して結合され、この装置は、エンドユーザに情報を表示するため、陰極線管(CRT)、液晶ディスプレイ(LCD)又は何れかのフラットパネルディスプレイのようなディスプレイ(図示せず)を制御する。1実施の形態では、プロセッサにより実行されているソフトウェアモジュールとの認証された暗号化通信セッションを確立することがグラフィックスコントローラ又は他の周辺装置にとって望まれる。
【0018】
典型的に、英数字入力装置316(たとえば、キーボード、キーパッド等)は、情報及び/又はコマンドセレクションをプロセッサ310に伝達するためにバス302に結合される。別のタイプのユーザ入力装置は、方向情報及びコマンドセレクションをプロセッサ310に伝達し、ディスプレイ314でのカーソルの動きを制御するため、マウス、トラックボール、タッチパッド、スタイラス又はカーソル方向キーのようなカーソル制御ユニット318である。
【0019】
また、通信インタフェースユニット320は、バス302に結合される。インタフェースユニット320の例は、ローカル又はワイドエリアネットワークの一部を形成する通信リンクに結合するために使用される、モデム、ネットワークインタフェースカード、又は他の公知のインタフェースを含む。このようにして、コンピュータシステム300は、たとえば企業のイントラネット及び/又はインターネットのような、従来のネットワークインフラストラクチャを介して多数のクライアント及び/又はサーバに結合される。
【0020】
先に記載された多かれ少なかれ設けられたコンピュータシステムは、所定の実現について望まれることが理解される。したがって、コンピュータシステム300のコンフィギュレーションは、価格の制約、性能要件、技術的な改善、及び/又は他の状況のような様々な要素に依存した実現へと変化する。
【0021】
少なくとも1つの実施の形態では、コンピュータシステム300は、メインメモリ304及び/又は大容量記憶装置308に記憶され、システムにおいて他の敵対するソフトウェアが存在する場合であっても特定の動作を実行するためにプロセッサ310により実行されている、特別にプロテクトされた「信頼される」ソフトウェアモジュール(たとえば、耐タンパー性ソフトウェア、又はプロテクトされたプログラムを実行するための能力を有するシステム)の使用をサポートする。これら信頼されるソフトウェアモジュールのなかには、他のプラットフォームにではないが、たとえばグラフィックスコントローラ314のような同じプラットフォームをもつ1以上に装置に対する、等価的に「信頼できる“trustable”」プロテクトされたアクセスを必要とするものがある。一般に、かかるアクセスは、信頼されるソフトウェアモジュールは、装置の機能及び/又は特定のアイデンティティを識別することができ、システムにおける他のソフトウェアにより詮索又は成りすますことができないデータのやり取りを可能にするため、装置との暗号化セッションを確立することができることを必要とする。
【0022】
装置を識別し、同時に、暗号化されたセッションを確立する1つの従来技術の方法は、片側認証されたDiffie−Hellman(DH)鍵交換プロセスを使用することである。このプロセスでは、装置には、固有の公開/秘密のRSA又はECC鍵のペアが割り当てられる。装置は、秘密鍵を保持及びプロテクトし、認証証明書に沿って公開鍵は、ソフトウェアモジュールにリリースされる。DH鍵交換プロセスの間、装置は、その秘密鍵を使用してメッセージを署名し、これにより、ソフトウェアモジュールは、対応する公開鍵を使用して確認することができる。これにより、ソフトウェアモジュールは、メッセージが関心のある装置から実際に到来したことを認証するのを可能にする。
【0023】
しかし、この認証プロセスがRSA又はECC鍵を使用するため、装置は、固有かつ証明できるアイデンティティを有する。装置にその秘密鍵でメッセージを署名するソフトウェアモジュールは、この特定の固有の装置がコンピュータシステムに存在することを証明する。装置が処理システムの間でめったに移動しないとすると、これは、証明できる固有のコンピュータシステムのアイデンティティを表す。さらに、装置の公開鍵それ自身は、一定の固有値、効果的には永続性のある“cookie”である。あるケースでは、これらの特徴は、重要なプライバシーの問題として解釈される。
【0024】
1つの代替的なアプローチは、本出願の所有者に譲渡された、“An Apparatus and Method for Establishing an Authenticated Encrypted Session with a Device Without Exposing Privacy-Sensitive Information”と題された、2004年?月?日に提出された係属中の特許出願シリアル番号10/???,???に記載されている。そのアプローチでは、片側認証されたDiffie−HelmanプロセスにおけるRSA又はECC鍵の使用は、ダイレクトプルーフ鍵で置き換えられる。このアプローチを使用する装置は、特定の装置のファミリに属するとして認証され、これは、装置の挙動又は信用度に関する保証を含む場合がある、このアプローチは、処理システムを表す固有のアイデンティティを確立するために使用される固有に識別する情報を露出しない。
【0025】
このアプローチは良好に機能するが、ダイレクトプルーフの秘密鍵を保持するために装置において更なるストレージを必要とし、このストレージは、ECCキーよりも大きい。この更なるストレージの要件の負担を軽減するため、本発明の実施の形態は、装置における実質的な更なる鍵を必要とすることなしに、鍵を必要とするときに装置がダイレクトプルーフの秘密鍵を有することを保証するためのシステム及びプロセスを定義する。1実施の形態では、DP鍵は、署名されたグループにおいてクライアントのコンピュータシステムに伝達される。
【0026】
本発明の少なくとも1つの実施の形態では、装置が製造ラインで生産される間に、装置メーカは、128ビットの擬似ランダム数を装置に記憶するのみであり、非常に大きなダイレクトプルーフの秘密鍵(DPpri)がディストリビューションCDを使用して暗号化及び伝達される。他の実施の形態は、128ビットよりも長いか短い数を装置に記憶する。このプロセスは、指定された装置のみがその割り当てられたDPpri鍵を復号して使用することを保証する。
【0027】
本発明の少なくとも1つの実施の形態では、“keyblobs”と呼ばれるDPpri暗号化データ構造は、装置メーカにより署名されたグループレコードに伝達される。全体のグループレコードは、装置に伝達され、この装置は、それ自身の暗号化されたkeyblobを抽出する。装置が全体のレコードを分析することを必要とし、全体のレコードが分析されるまで抽出されたkeyblobを処理し始めるのを必要とすることなしに、アタッカーは、タイミングアタックに基づいてどのkeyblobが選択されたかを判断することができない。レコードを署名し、そのkeyblobを処理する前に装置が署名を確認するのを必要とすることで、アタッカーが装置の応答をテストするために1つのkeyblobの多数のコピーを供給することができないことを保証する。1実施の形態では、アタッカーが判定することができるのは、その装置がグループのメンバであることである。1実施の形態では、装置は、全体で近似的に40バイトのデータについて、予め決定されたサイズの擬似ランダム値、グループ識別子(たとえば4バイト)、及び、装置メーカのグループ公開鍵の20バイトのハッシュを記憶する。
【0028】
図5は、本発明の実施の形態に係る署名されたグループにおけるダイレクトプルーフの鍵を配信するためにシステム500の図である。このシステムには、装置製造プロテクト(device manufacturing protected)システム502、装置製造プロダクション(device manufacturing production)システム503、及びクライアントコンピュータシステム504といった3つのエンティティが存在する。装置製造プロテクトシステムは、装置506の製造前にセットアッププロセスで使用される処理システムを有する。プロテクトされたシステム502は、プロテクトされたシステムが装置製造サイト外のハッカーからのアタックから保護されるように(たとえばクローズドシステム)、装置メーカ又は他のエンティティにより動作される。製造プロダクションシステム503は、装置の製造において使用される。1実施の形態では、プロテクトされたシステム及びプロダクションシステムは、同じシステムである場合がある。装置506は、クライアントコンピュータシステム(たとえば、メモリコントローラ、グラフィックスコントローラのような周辺装置、I/O装置、他の装置等)において包含するためにハードウェア装置を有する。本発明の実施の形態では、装置は、装置の不揮発性ストレージに記憶される、擬似ランダム値RAND508及びグループ番号509を有する。
【0029】
製造プロテクトシステムは、プロテクトデータベース(protected database)510及びジェネレーション機能512を含む。プロテクトデータベースは、以下に記載される方式でジェネレーション機能512により生成される(製造されるべき装置当たり少なくとも1つの)多数の擬似ランダム値を記憶するためのデータ構造を有する。ジェネレーション機能は、本明細書でkeyblob514と呼ばれるデータ構造を生成するために(ソフトウェア又はハードウェアのいずれかで実現される)ロジックを有する。固有のダイレクトプルーフの秘密鍵(DPpri)は、署名のために装置により使用される場合がある暗号化鍵を含む。DPプライベートダイジェスト516(DPpri Digest)は、SHA−1のようなセキュアメッセージダイジェストを生成する公知の方法に従ってDPpriのメッセージダイジェストを有する。幾つかの実施の形態は、互換性の目的でkeyblobの一部としてビットストリームを有する擬似ランダム初期化ベクトル(IV)518を含む。暗号化のためにストリーム暗号が使用される場合、ストリーム暗号でIVを使用するために公知の方法でIVが使用される。ブロック暗号が暗号化のために使用される場合、IVは暗号化されるべきメッセージの一部として使用され、暗号化のそれぞれの例を異ならせる。
【0030】
本発明の実施の形態では、製造プロテクトシステムは、(以下に詳細に記載されるように)1以上のkeyblobを生成し、CD522のkeyblobデータベース520におけるグループレコード515にkeyblobを記憶する。1実施の形態では、それぞれのグループレコードにおいて多くのkeyblobが存在する場合があり、1つのCDで多くのグループレコードが存在する場合があり、何れかの組み合わせで、唯一の制限は、CDの物理的な記憶の制限である。したがって、それぞれのグループレコードは、複数のkeyblobを有する。次いで、CDは、典型的な物理チャネルを通してコンピュータシステムメーカ、コンピュータディストリビュータ、クライアントコンピュータシステムコンシューマ等に流通される。CDは記憶媒体として本明細書では記載されるが、適切な取り外し可能な記憶媒体が使用される(たとえばデジタルバーサティルディスク(DVD)又は他の媒体)。
【0031】
システム504に含まれる装置506との通信セッションの認証及び鍵公開のためにダイレクトプルーフプロトコルを使用することを望むクライアントコンピュータシステム504は、CDのkeyblobデータベース520外から選択されたグループレコード515を読み取る。Keyblobデータは、グループレコードから得られ、ダイレクトプルーフプロトコルを実現するのに使用するために(以下に記載されるような)ローカライズされたkeyblob524を発生するために装置により使用される。本発明の実施の形態では、複数のkeyblobを有する全体のグループレコードは、一度に装置により処理され、アタッカーは、暗号化されたローカライズされたkeyblobを生成するためにどの特定のkeyblobが実際に使用されているかを判定することができない。装置ドライバソフトウェア526は、装置506を初期化及び制御するためにクライアントコンピュータシステムにより実行される。
【0032】
本発明の実施の形態では、動作について4つの別個のステージが存在する。図6は、本発明の実施の形態に係るダイレクトプルーフキーを配信する方法のステージを例示するフローチャート600である。本発明の実施の形態によれば、所定のアクションは、それぞれのステージで実行される。装置メーカのサイトで、セットアップ(set-up)ステージ602及び製造プロダクション(manufacturing production)ステージ604といった少なくとも2つのステージが存在する。セットアップステージは、図7を参照して本実施の形態で記載される。製造プロダクションステージは、図8を参照して本明細書で記載される。クライアントコンピュータシステムを有するコンシューマサイトで、セットアップ(set-up)ステージ606及びユース(use)ステージ608といった少なくとも2つのステージが存在する。クライアントコンピュータシステムのセットアップステージは、図9を参照して本明細書で記載される。クライアントコンピュータシステムのユースステージは、図10を参照して本明細書で記載される。
【0033】
図7及び図8は、本発明の実施の形態に係る装置製造セットアップ処理を説明するフローチャート700及び800である。1実施の形態では、装置メーカは、製造プロテクトシステム502を使用してこれらのアクションを実行する。ブロック701では、装置メーカは、製造されるべき装置のそれぞれのクラスについて、ダイレクトプルーフファミリの鍵のペア(Fpub及びFpri)を生成する。それぞれ固有の装置は、DPpriを使用して形成された署名がFpubにより確認されるように、対応するDPpri鍵を有する。装置のクラスは、バージョン数に基づいた選択されたプロダクトライン(すなわち装置のタイプ)又はプロダクトラインのサブセット、若しくは装置の他の特性のような、装置のセット又はサブセットを有する。ファミリの鍵のペアは、それが生成された装置のクラスによる使用を目的とする。
【0034】
ブロック702で、装置メーカは、グループレコードを署名及び確認するために使用されるRSA鍵のペア(Gpri,Gpub)を生成する。他の実施の形態では、セキュアデジタル署名システムはRSAの代わりに使用される。この鍵のペアは、ブロック701で生成されたファミリの鍵のペアに独立であり、装置メーカにより生成された全ての装置のグルーピングについて使用される。ブロック703で、装置メーカは、所望のグループサイズを選択する。グループサイズは、互いにグループ化されたファミリにおける装置の数である。グループサイズは、個々の装置がグループ内で「隠す“hide”」のを可能にするために十分に大きく、装置によるkeyblob抽出処理の間のアンデュータイム(undue time)を消費するように大きくならないように選択される。1実施の形態では、グループサイズは、5000の装置となるように選択される。他の実施の形態では、他のサイズが使用される場合もある。
【0035】
次いで、装置メーカは、グループサイズにより指定される装置の鍵の数を生成する。グループサイズにより規定された装置の数を有するそれぞれのグループは、グループナンバーにより指定される。所与のグループについて製造されるべきそれぞれの装置について、ジェネレーション機能512又は製造プロテクトシステム502の他のモジュールは、図7のブロック704から図8のブロック802を実行する。はじめに、ブロック704で、ジェネレーション機能は、固有の擬似ランダム値(RAND)508を生成する。1実施の形態では、RANDの長さは、128ビットである。他の実施の形態では、他の値のサイズが使用される場合がある。1実施の形態では、多数の装置の擬似ランダム値は、前もって生成される場合がある。ブロック706では、装置によりサポートされる片側関数fを使用して、ジェネレーション関数は、固有のRAND値(SKEY=f(RAND))から対称な暗号化鍵SKEYを生成する。片側関数は、この目的のために適した公知のアルゴリズムである(たとえば、SHA−1,MGF1,データ暗号化規格(DES),Triple DES等)。ブロック708で、1実施の形態では、ジェネレーション関数は、SKEYを使用して(たとえば少数のゼロバイトといった) “null entry”を暗号化するためにSKEYを使用することで(Devive ID=Encrypt(0...0))、ディストリビューションCD522のこのデバイスのkeyblob514を参照するために使用される識別子(ID)ラベルを生成する。他の実施の形態では、DeviceIDを生成する他の方法が使用されるか、他の値がSKEYにより暗号化される。
【0036】
つぎに、ブロック710で、ジェネレーション関数は、装置のファミリの公開鍵(Fpub)に相関するDP秘密署名鍵DPpriを生成する。ブロック712で、ジェネレーション関数は、DPpriをハッシュ(hashe)し、(たとえばSHA−1又は別のハッシュアルゴリズムといった)公知の方法を使用してDPpriダイジェストを生成する。ブロック714で、ジェネレーション関数は、装置のためのkeyblobデータ構造を構築する。keyblobは、少なくともDPpri及びDPpriダイジェストを含む。1実施の形態では、keyblobは、複数の擬似ランダムに生成されたビットを有するランダム初期化ベクトルを含む。これらの値は、暗号化されたkeyblob514を生成するためにSKEYを使用して暗号化される。ブロック716で、ブロック708で生成されたデバイスID、及びブロック714で生成された暗号化されたkeyblob514は、ディストリビューションCD 522でリリースされるべきkeyblobデータベース520におけるレコードに記憶される。1実施の形態では、keyblobデータベースにおけるレコードは、デバイスIDにより示される。
【0037】
処理は、図8のブロック801に続く。ブロック801で、装置が属するグループについて現在のRAND値及び現在のグループナンバーは、プロテクトされたデータベース510に記憶される。ブロック802で、SKEY及びDPpriは、フィールドにおいて装置により再生されるので削除される。グループナンバーは、製造されている装置のそれぞれ連続するグループについてインクリメントされる。SKEYによるDPpriダイジェスト及び後続する暗号化の作成は、SKEYの所有を有さないエンティティによりDPpriのコンテンツを決定することができないように、及び、SKEYの所有を有するエンティティによる後続の検出なしに、SKEYの所有を有さないエンティティによりKeyBlobのコンテンツが変更されないように設計される。他の実施の形態では、このセキュリティ及びインテグリティプロテクションを提供する他の方法が使用される。幾つかの実施の形態では、インテグリティプロテクションは必要とされず、秘密でのみ提供される方法が使用される。このケースでは、DPpriダイジェストの値は必要ではない。
【0038】
Keyblobの全体のデータセットが装置のグループについて形成されたとき、少なくともそのグループのkeyblobデータベース520は、それぞれの装置でディストリビュートされるべき、共通のディストリビューションCDに対して署名され(signed)、焼付けされる(burned)(1実施の形態では、1つのkeyblobデータベースのエントリは、デバイスIDフィールドによりインデックス付けされるように、それぞれの装置について使用される)。したがって、ブロック804で、装置メーカは、グループレコード515を作製する。グループレコードは、グループナンバー、グループの公開鍵Gpub、グループサイズ、及び全体のグループのkeyblobレコードを有する(<GroupNumber,Gpub,GroupSize,<DeviceID1, Encrypted Keyblob1>, <DeviceID2, Encrypted Keyblob2>,...>)。ブロック806で、装置メーカは、グループの秘密鍵Gpriを使用してグループレコードを署名し、デジタル署名をグループレコードに添付する。ブロック808で、署名されたグループレコードは、ディストリビューションCDのkeyblobデータベースに追加される。1実施の形態では、ディストリビューションCDは、その使用が以下に更に詳述される、クライアントコンピュータシステムでの更なる処理のために鍵検索ユーティリティソフトウェアモジュールを有する。
【0039】
ブロック802の後の何れかの時間で、ブロック810で、RAND及びグループナンバー値のペアからなるプロテクトされたデータベースは、製造プロセスの間にRAND及びグループナンバーの値を装置に記憶する製造プロダクションシステム503に確実にアップロードされる。ひとたびこのアップロードが確かめられると、RAND値は、製造プロテクトシステム502から確実に削除される。
【0040】
図9は、本発明の実施の形態に係る装置製造プロダクション処理を説明するフローチャートである。装置がプロダクションラインで製造されているとき、ブロック902で、製造プロダクションシステムは、プロテクトされたデータベースから、不使用のRAND及びグループナンバーの値のペアを選択する。次いで、選択されたRAND及びグループナンバーの値は、装置における不揮発性ストレージに記憶される。1実施の形態では、不揮発性ストレージはTPMを有する。ブロック904では、グループ公開鍵Gpubのハッシュは、装置の不揮発性ストレージに記憶される。ブロック906で、ひとたび、RAND値の装置へのストレージが成功すると、製造プロダクションシステムは、プロテクトされたデータベースにおけるその装置のRAND値の何れかのレコードを破壊する。そのポイントで、RAND値の唯一のコピーは、装置に記憶される。
【0041】
代替的な実施の形態では、RAND値は、装置の製造の間に作成され、次いで、keyblobの計算のための製造プロテクトシステムに送出される。
【0042】
別の実施の形態では、RAND値は装置で作成され、装置及び製造プロテクトシステムは、装置外のDPpriを示さない方法を使用するDPpri鍵を生成するためにプロトコルにかみ合う。次いで、装置は、DeviceID、SKEY及びkeyblobを作成する。装置は、プロテクトされたデータベース510におけるストレージのため、DeviceID及びkeyblobを製造システムに通過させる。この方法では、製造システムは、プロテクトされたデータベースにおける同じ情報(DeviceID,keyblob)で終了するが、RANDの値又はDPpriの値を知らない。
【0043】
図10及び図11は、本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャート1000及び1100である。クライアントコンピュータシステムは、システムにブートアップする部分としてこれらのアクションを実行する。ブロック1002では、クライアントコンピュータシステムは、通常の方式でブートアップされ、装置のデバイスドライバ526は、メインメモリにロードされる。デバイスドライバが初期化され、実行を開始したとき、デバイスドライバは、ブロック1004で、装置506について大容量ストレージ装置308に記憶されている、暗号化され、ローカライズされたkeyblob524が既に存在するかを判定する。存在する場合、更なるセットアップ処理が実行される必要があり、ブロック1006でセットアップ処理が終了する。存在しない場合、処理はブロック1008で継続する。ブロック1008で、デバイスドライバは、ディストリビューションCD522の挿入を依頼する、クライアントコンピュータシステムへのメッセージの表示をさせる。ひとたびCDがコンピュータシステムにより読み取られると、次いで、装置ドライバは、CDに記憶されている(図5に示されていない)鍵検索ユーティリティソフトウェアモジュールを始動する。鍵検索ユーティリティは、グループの公開鍵Gpubのハッシュ、及びグループナンバー509である場合がある、そのグループIDについて装置に尋ねる。装置はこれらの値をリターンし、ユーティリティは、これらの値を使用して、CDのkeyblobデータベースからの適切に署名されたグループレコードを探す。また、このユーティリティは、鍵取得コマンドを装置506に発し、装置のDP秘密鍵の取得プロセスを始動する。
【0044】
これに応じて、ブロック1010で、装置は、その片側関数fを使用して、埋め込まれたRAND値508から対称鍵SKEY(ここでは復号において使用)を再生する(SKEY=f(RAND))。ブロック1012で、装置は、“null entry”(たとえば少数のゼロバイト)を暗号化するためにSKEYを使用することで、その固有のデバイスIDラベルを生成する(SKEYを使用して、DeviceID=Encrypt(0..0))。本発明の1実施の形態では、これら値の何れもが装置外に露出される。次いで、装置は、進行するその準備を合図する。
【0045】
ブロック1014で、鍵検索ユーティリティは、整合するグループナンバーを含むグループレコードについて、CDでkeyblobデータベース520をサーチし、グループレコードを抽出し、全体のグループレコードを装置に転送する。
【0046】
ブロック1016で、装置は、全体の供給されたグループレコードを分析するが、(ブロック1012で生成された)グループナンバー、グループレコードのハッシュ、グループの公開鍵Gpub、及び、装置のそれ自身のDeviceIDに整合する最初の<DeviceID,Encrypted Keyblob>フィールドのみを保持する。ブロック1018で、装置は、グループレコードを確認する。1実施の形態では、装置は、抽出されたグループナンバーフィールドを装置に埋め込まれたグループナンバーに比較する。これらが整合しない場合、鍵取得プロセスが終了される。そうでない場合、装置は抽出されたGpubフィールドをハッシュし、それを装置に埋め込まれたGpubハッシュと比較する。ハッシュが整合しない場合、鍵取得プロセスが終了される。そうでない場合、装置は有効にされたGpub鍵を使用して、グループレコードのハッシュに供給された署名を認証する。署名を認証した場合、グループレコードが認証され、プロセスは図11のブロック1120で継続する。
【0047】
1実施の形態では、装置がkeyblobを有した後に、悪事を働くソフトウェア(rogue software)が鍵取得コマンドを装置に送出しようとした場合、装置は、グループナンバーをもつ悪事を働くソフトウェアに応答しない。代わりに、装置は、エラーインジケータをリターンする。実際に、装置がローカライズされたkeyblobへのアクセスを有する場合、鍵取得コマンドの機能がディスエーブルにされる。このように、装置は、keyblobを有さないときを除いて、グループナンバーを示さない。
【0048】
ブロック1120で、装置は、対称鍵SKEYを使用して暗号化されたkeyblobを復号し、DPpri及びDPpriダイジェストを生じ、これらの値をその不揮発性のストレージに記憶する(Decrypted Keyblob=Decrypt (IV, DPpri, DPpri Digest))。初期化ベクトル(IV)が廃棄される場合がある。ブロック1122で、装置は、DPpriをハッシュし、DPpriダイジェストに対して結果を比較することで、DPpriのインテグリティをチェックする。比較が良好である場合、装置は、DPpriをその有効な鍵として受ける。また、装置は、DP秘密鍵が上手く取得されたことを示すために、鍵取得フラグを真(true)に設定する。ブロック1124で、装置は、新たなIV(SKEYを使用して、Localized Kblob = Encrypt (IV2, DPpri, DPpri Digest))を使用して、新たなIVを選択し、新たに暗号化されたローカライズされたkeyblobを作成する。新たに暗号化されたローカライズされたkeyblobは、鍵検索ユーティリティにリターンされる。ブロック1126で、鍵検索ユーティリティは、暗号化され、ローカライズされたkeyblobを(たとえば大容量記憶装置308のような)クライアントコンピュータシステム内のストレージに記憶する。装置のDPpriは、クライアントコンピュータシステムに確実に記憶される。
【0049】
ひとたび装置がセットアップ処理の間にDPpriを取得すると、装置はDPpriを使用する。図12は、本発明の実施の形態に係るクライアントコンピュータシステムのフローチャートである。クライアントコンピュータシステムは、セットアップが終了した後に任意にこれらのアクションを実行する。ブロック1202で、クライアントコンピュータシステムは、通常のやり方でブートアップされ、装置のデバイスドライバ526は、メインメモリにロードされる。デバイスドライバが初期化され、実行が開始されたとき、デバイスドライバは、装置506の大容量記憶装置308に記憶されている暗号化され、ローカライズされたkeyblob524が既に存在するかを判定する。存在しない場合、図10及び図11のセットアップ処理が実行される。この装置にとって利用可能な暗号化され、ローカライズされたkeyblobが存在する場合、処理はブロック1206で継続する。ブロック1206で、デバイスドライバは、暗号化され、ローカライズされたkeyblobを検索し、そのkeyblobを装置に転送する。1実施の形態では、keyblobの転送は、Load Keyblobコマンドを実行することで達成される。
【0050】
ブロック1208で、装置は、埋め込まれたRAND値508から対称鍵SKEY(ここでは復号における使用)を再生する(SKEY=f(RAND))。ブロック1210で、装置は、対象鍵SKEYを使用して、暗号化され、ローカライズされたkeyblobを復号し、DPpri及びDPpriダイジェストを得て、これらの値を不揮発性ストレージに記憶する(SKEYを使用して、Decrypted Keyblob = Decrypt (IV2, DPpri, DPpri Digest))。第二の初期化ベクトル(IV2)は廃棄される場合がある。ブロック1212で、装置は、DPpriをハッシュし、結果をDPpriダイジェストに対して比較することで、DPpriのインテグリティをチェックする。(たとえばダイジェストの整合といった)比較が良好である場合、装置は、先に取得された有効な鍵としてDPpriを受け、それを使用のためにイネーブルにする。また、装置は、DP秘密鍵が上手く取得されたことを示すため、鍵取得フラグを真に設定する。ブロック1214で、装置は、新たなIVを使用して、更に別のIVを選択し、新たな暗号化され、ローカライズされたkeyblobを作成する(Localized Keyblob = Encrypt (IV3, DPpri, DPpri Digest))。新たに暗号化され、ローカライズされたkeyblobは、鍵検索ユーティリティにリターンされる。ブロック1216で、鍵検索ユーティリティは、クライアントコンピュータシステム内の(たとえば、大容量ストレージ装置308のような)ストレージに暗号化され、ローカライズされたkeyblobを記憶する。装置のDPpriは、クライアントコンピュータシステムに再び確実に記憶される。
【0051】
本発明の1実施の形態では、一度に署名されたグループの全ての装置のDP秘密鍵を生成する必要はない。ディストリビューションCDが定期的にアップデートされるとすると、装置のDPプライベート鍵は、必要に応じてバッチで生成される。ディストリビューションCDが「焼付けされる“burned”」たびに、生成されたが装置に未だ割り当てられていない装置の鍵を含む、今まで生成されたように、keyblobデータベースについて署名されたグループを含む。
【0052】
1実施の形態では、図10のブロックにおけるように全体のグループレコードを処理するとき、装置がエラーを検出した場合、装置は、エラーが生じたことを示すフラグを設定するが、処理を継続する。システムセットアップについて全てのステップが完了したとき、装置は、デバイスドライバにエラーを合図する。これは、アタッカーがエラーのタイプ及びロケーションから情報を得させない。
【0053】
1実施の形態では、本明細書で記載される方法は、装置における不揮発性ストレージの近似的に40バイトを使用する。別の実施の形態では、これは、装置の不揮発性ストレージに記憶される代わりに、Gpub鍵のハッシュが装置の暗号化されたkeyblobに含まれる場合に、近似的に20バイトに低減される場合がある。このケースでは、装置が暗号化されたkeyblobを復号するとき、装置は、Gpubハッシュを検索し、ハッシュを使用してGpub鍵をチェックし、Gpub鍵を使用して全体のグループレコードの署名をチェックする。
【0054】
本明細書で説明された動作はシーケンシャルプロセスとして説明されているが、動作のなかには、実際に、パラレル又は同時に実行されるものがある。さらに、実施の形態の中には、動作順序は、本発明の精神から逸脱することなしに再構成される場合がある。
【0055】
本明細書で記載される技術は、特定のハードウェア又はソフトウェアコンフィギュレーションに限定されず、計算又は処理環境で用途を見出す場合がある。技術は、ハードウェア、ソフトウェア又は2つの組み合わせで実現される場合がある。技術は、モバイル又はステーショナリコンピュータ、パーソナルデジタルアシスタント、セットトップボックス、セルラーテレフォン及びページャ、並びに他の電子装置のようなプログラマブルマシンで実行するソフトウェアで実現される場合があり、それぞれの装置は、プロセッサ、プロセッサにより読み取り可能な記憶媒体(揮発性及び不揮発性メモリ及び/又はストレージエレメントを含む)、少なくとも1つの入力装置、及び1以上の出力装置を含んでいる。プログラムコードは、記載された機能を実行し、出力情報を生成するために入力装置を使用して入力されたデータに適用される。出力情報は、1以上の出力装置に適用される場合がある。当業者であれば、本発明は、マルチプロセッサシステム、マイクロコンピュータ、メインフレームコンピュータ等を含む、様々なコンピュータシステムコンフィギュレーションで実施することができることを理解されるであろう。また、本発明は、通信ネットワークを通してリンクされたリモート処理装置によりタスクが実行される、分散されたコンピュータ環境で実施することができる。
【0056】
それぞれのプログラムは、処理システムと通信するための高水準の手順又はオブジェクト指向のプログラム言語で実現される。しかし、プログラムは、望まれる場合、アセンブリ又はマシン言語で実現される。いずれのケースでも、言語はコンパイル又はインタープレットされる場合がある。
【0057】
プログラム命令は、命令でプログラムされる汎用又は特定用途処理システムに本明細書で記載された動作を実行させるために使用される。代替的に、動作は、動作を実行するためのハードワイヤロジックを含む特定のハードウェアコンポーネント、又はプログラムされたコンピュータコンポーネントとカスタムハードウェアコンポーネントの組み合わせにより実行される場合がある。本明細書で記載された方法は、処理システム又は本方法を実行する他の電子装置をプログラムするために使用されるそこに記憶された命令を有するコンピュータ読み取り可能な媒体を含む場合があるコンピュータプログラムプロダクトとして提供される。本明細書で使用される用語「コンピュータ読み取り可能な媒体“machine readable medium”」とは、コンピュータにより実行するための命令のシーケンスを記憶又はエンコード可能なメディアであって、コンピュータに本明細書で記載された方法のうちの1つを実行させるメディアを含む。用語「コンピュータ読み取り可能な媒体」は、したがって、限定されるものではないが、固体メモリ、光及び磁気ディスク、及びデータ信号をエンコードする搬送波を含む。さらに、当該技術分野において、動作を実行し、結果を生じさせるものとして、1形式又は別の形式において(たとえば、プログラム、手順、プロセス、アプリケーション、モジュール、ロジック等)ソフトウェアと言うことは一般的なことである。かかる表現は、プロセッサに結果を生じるアクションを実行させる処理システムによりソフトウェアの実行を説明する単なる速記のやり方である。
【0058】
本発明は、例示的な実施の形態を参照して記載されてきたが、この記載は、限定的な意味で解釈されるべきではない。本発明が属する、当業者にとって明らかな、例示的な実施の形態の様々な変更は、本発明の他の実施の形態と同様に、本発明の精神及び範囲に含まれると考えられる。
【図面の簡単な説明】
【0059】
【図1】本発明の1実施の形態に従って動作するTPM(Trusted Platform Module)で実現されるプラットフォームを特徴付けるシステムを例示する図である。
【図2】図1のTPMを含むプラットフォームの第一の実施の形態を例示する図である。
【図3】図1のTPMを含むプラットフォームの第二の実施の形態を例示する図である。
【図4】図2のTPMで実現されるコンピュータシステムの例示的な実施の形態を説明する図である。
【図5】本発明の実施の形態に係る署名されたグループでダイレクトプルーフキーを配信するシステムの図である。
【図6】本発明の実施の形態に係る署名されたグループでダイレクトプルーフキーを配信する方法のステージを例示するフローチャートである。
【図7】本発明の実施の形態に係るセットアップ処理を形成する装置を説明するフローチャートである。
【図8】本発明の実施の形態に係るセットアップ処理を形成する装置を説明するフローチャートである。
【図9】本発明の実施の形態に係るプロダクション処理を形成する装置を説明するフローチャートである。
【図10】本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャートである。
【図11】本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャートである。
【図12】本発明の実施の形態に係るクライアントコンピュータシステム処理のフローチャートである。
【特許請求の範囲】
【請求項1】
装置に関連される、秘密鍵及び秘密鍵のダイジェストを含む暗号化されたデータ構造を生成するステップと、
擬似ランダムに生成された値に基づいて、前記暗号化されたデータ構造について識別子を生成するステップと、
取り外し可能な記憶媒体の署名されたグループレコードに、前記識別子及び前記暗号化されたデータ構造を記憶するステップと、
前記装置の不揮発性ストレージに、前記擬似ランラム値と前記署名されたグループレコードに対応するグループナンバーを記憶するステップと、
を含む方法。
【請求項2】
前記取り外し可能な記憶媒体及び前記装置をディストリビュートするステップを更に含む、
請求項1記載の方法。
【請求項3】
装置のクラスについてダイレクトプルーフのファミリ鍵のペアを生成するステップを更に含む、
請求項1記載の方法。
【請求項4】
前記グループレコードを署名及び認証するための鍵のペアを生成するステップを更に含む、
請求項1記載の方法。
【請求項5】
前記グループレコードの鍵のペアの公開鍵のハッシュを前記装置の不揮発性メモリに記憶するステップを更に含む、
請求項4記載の方法。
【請求項6】
前記署名されたグループレコードのグループサイズを選択するステップを更に含む、
請求項1記載の方法。
【請求項7】
前記秘密鍵は、前記ダイレクトプルーフのファミリ鍵のペアの公開鍵と関連されるダイレクトプルーフの秘密鍵を有し、
前記ダイレクトプルーフの秘密鍵をハッシュして前記秘密鍵のダイジェストを生成するステップを更に含む、
請求項3記載の方法。
【請求項8】
前記装置の擬似ランダム値に基づいて対称鍵を生成するステップを更に含む、
請求項1記載の方法。
【請求項9】
前記識別子を生成するステップは、前記対称鍵を使用してデータ値を暗号化するステップを含む、
請求項8記載の方法。
【請求項10】
前記対称鍵を使用して前記データ構造を暗号化するステップを更に含む、
請求項8記載の方法。
【請求項11】
前記暗号化されたデータ構造は、ランダム初期化ベクトルを更に含む、
請求項1記載の方法。
【請求項12】
前記取り外し可能な記憶媒体は、コンパクトディスク及びデジタルバーサティルディスクの少なくとも1つを含む、
請求項1記載の方法。
【請求項13】
前記装置の擬似ランダム値は固有である、
請求項1記載の方法。
【請求項14】
複数のコンピュータ読み取り可能な命令を含む第一の記憶媒体を有する製品であって、
前記命令がプロセッサにより実行されたとき、前記命令は、
装置に関連される、秘密鍵及び秘密鍵のダイジェストを含む暗号化されたデータ構造を生成し、
擬似ランダムに生成された値に基づいて、前記暗号化されたデータ構造について識別子を生成し、
取り外し可能な記憶媒体の署名されたグループレコードに、前記識別子及び前記暗号化されたデータ構造を記憶し、
前記装置の不揮発性ストレージに、前記擬似ランラム値と前記署名されたグループレコードに対応するグループナンバーを記憶させる、
ことで、署名されたグループにおける秘密鍵を装置に伝送する製品。
【請求項15】
前記グループレコードを署名及び認証するために鍵のペアを生成するための命令を更に含む、
請求項14記載の製品。
【請求項16】
前記グループレコードの鍵のペアの前記公開鍵のハッシュを前記装置の不揮発性ストレージに記憶するための命令を更に含む、
請求項15記載の製品。
【請求項17】
前記署名されたグループレコードのグループサイズを選択するための命令を更に含む、
請求項14記載の製品。
【請求項18】
装置のクラスについてダイレクトプルーフのファミリの鍵のペアを生成するための命令を更に含む、
請求項14記載の製品。
【請求項19】
前記秘密鍵は、前記ダイレクトプルーフのファミリの鍵のペアの公開鍵に関連されるダイレクトプルーフに秘密鍵を含み、
前記秘密鍵のダイジェストを生成するために前記ダイレクトプルーフの秘密鍵をハッシュするための命令を更に含む、
請求項14記載の製品。
【請求項20】
前記装置の前記擬似ランダム値に基づいて対称鍵を生成するための命令を更に含む、
請求項14記載の製品。
【請求項21】
前記識別子を生成するための命令は、前記対称鍵を使用してデータ値を暗号化するための命令を含む、
請求項20記載の製品。
【請求項22】
前記対称鍵を使用して前記データ構造を暗号化するための命令を更に含む、
請求項20記載の製品。
【請求項23】
前記暗号化されたデータ構造は、ランダム初期化ベクトルを更に含む、
請求項14記載の製品。
【請求項24】
前記装置の擬似ランダム値は固有である、
請求項14記載の製品。
【請求項25】
コンピュータシステムでインストールされる装置に関連される、秘密鍵と秘密鍵のダイジェストを含む暗号化されたデータ構造が前記コンピュータシステムのメモリに記憶されているかを判定するステップと、
前記暗号化されたデータ構造が記憶されていない場合、署名されたグループレコードからなるデータベースを記憶する、前記コンピュータシステムによりアクセス可能な取り外し可能な記憶媒体から、署名されたグループレコードにおいて装置に関連される前記暗号化されたデータ構造を取得するステップと、
を含む方法。
【請求項26】
前記取り外し可能な記憶媒体は、前記装置の製造者により作成されたコンパクトディスク及びデジタルバーサティルディスクの少なくとも1つを含む、
請求項25記載の方法。
【請求項27】
前記暗号化されたデータ構造を取得するステップは、秘密鍵の取得プロセスを始動するために前記装置に鍵取得コマンドを発生するステップを含む、
請求項25記載の方法。
【請求項28】
前記秘密鍵は、装置のクラスのダイレクトプルーフのファミリ鍵のペアの公開鍵と関連されるダイレクトプルーフの秘密鍵を含む、
請求項25記載の方法。
【請求項29】
前記秘密鍵の取得プロセスは、前記装置に記憶される固有の擬似ランダム値に基づいて対称鍵を生成するステップを含む、
請求項27記載の方法。
【請求項30】
前記秘密鍵の取得プロセスは、前記擬似ランダム値に基づいて、前記暗号化されたデータ構造についてデバイス識別子を生成するステップを含む、
請求項29記載の方法。
【請求項31】
前記秘密鍵取得プロセスは、前記取り外し可能な記憶媒体から前記装置のグループ数に対応する署名されたグループレコードを取得するステップを含む、
請求項27記載の方法。
【請求項32】
グループナンバー、グループの公開鍵、及び前記装置の識別子に対応する暗号化されたデータ構造を取得するために前記署名されたグループレコードを分析するステップを更に含む、
請求項30記載の方法。
【請求項33】
前記署名されたグループレコードを確認するステップを更に含む、
請求項31記載の方法。
【請求項34】
前記秘密鍵の取得プロセスは、前記秘密鍵及び前記秘密鍵のダイジェストを取得するため、前記対称鍵を使用して前記取り外し可能な記憶媒体から受けた前記暗号化されたデータ構造を復号するステップを更に含む、
請求項32記載の方法。
【請求項35】
前記秘密鍵の取得プロセスは、前記秘密鍵をハッシュして新たな秘密鍵のダイジェストを生成するステップと、前記復号されたデータ構造からの前記秘密鍵のダイジェストを前記新たな秘密鍵のダイジェストと比較し、前記ダイジェストが一致したときに前記装置について有効であるとして前記秘密鍵を受けるステップとを更に含む、
請求項34記載の方法。
【請求項36】
複数のコンピュータ読み取り可能な命令を含む第一の記憶媒体を有する製品であって、
前記命令がプロセッサにより実行されたとき、前記命令は、
コンピュータシステムでインストールされる装置に関連される、秘密鍵と秘密鍵のダイジェストを含む暗号化されたデータ構造が前記コンピュータシステムのメモリに記憶されているかを判定し、
前記暗号化されたデータ構造が記憶されていない場合、署名されたグループレコードからなるデータベースを記憶する、前記コンピュータシステムによりアクセス可能な取り外し可能な記憶媒体から、署名されたグループレコードにおいて装置に関連される前記暗号化されたデータ構造を取得する、
ことで、コンピュータシステムでインストールされた装置の署名されたグループレコードから秘密鍵を取得する製品。
【請求項37】
前記暗号化されたデータ構造を取得するための命令は、秘密鍵の取得プロセスを始動するために鍵取得コマンドを前記装置に発するための命令を含む、
請求項36記載の製品。
【請求項38】
前記秘密鍵は、装置のクラスについてダイレクトプルーフファミリの鍵のペアの公開鍵に関連されるダイレクトプルーフの秘密鍵を有する、
請求項36記載の製品。
【請求項39】
前記秘密鍵の取得プロセスは、前記装置に記憶された固有の擬似ランダム値に基づいて対称鍵を生成するステップを含む、
請求項37記載の製品。
【請求項40】
前記秘密鍵の取得プロセスは、前記擬似ランダム値に基づいて、前記暗号化されたデータ構造について装置の識別子を生成するステップを含む、
請求項37記載の製品。
【請求項41】
前記秘密鍵の取得プロセスは、前記取り外し可能な記憶媒体から前記装置のグループ番号に対応する署名されたグループレコードを取得するステップを含む、
請求項37記載の製品。
【請求項42】
グループナンバー、グループの公開鍵、及び前記装置の識別子に対応する暗号化されたデータ構造を取得するために前記署名されたグループレコードを更に含む、
請求項40記載の製品。
【請求項43】
前記署名されたグループレコードを確認するステップを更に含む、
請求項41記載の製品。
【請求項44】
前記秘密鍵の取得プロセスは、前記秘密鍵及び前記秘密鍵のダイジェストを取得するために前記対称鍵を使用して前記取り外し可能な記憶媒体から受けた前記暗号化されたデータ構造を復号するステップを更に含む、
請求項42記載の製品。
【請求項45】
前記秘密鍵の取得プロセスは、前記秘密鍵をハッシュして新たな秘密鍵のダイジェストを生成するステップと、前記復号されたデータ構造からの前記秘密鍵のダイジェストを前記新たな秘密鍵のダイジェストと比較するステップと、前記ダイジェストが一致したとき、前記装置について有効であるとして前記秘密鍵を受けるステップと、
を更に含む請求項44記載の方法。
【請求項1】
装置に関連される、秘密鍵及び秘密鍵のダイジェストを含む暗号化されたデータ構造を生成するステップと、
擬似ランダムに生成された値に基づいて、前記暗号化されたデータ構造について識別子を生成するステップと、
取り外し可能な記憶媒体の署名されたグループレコードに、前記識別子及び前記暗号化されたデータ構造を記憶するステップと、
前記装置の不揮発性ストレージに、前記擬似ランラム値と前記署名されたグループレコードに対応するグループナンバーを記憶するステップと、
を含む方法。
【請求項2】
前記取り外し可能な記憶媒体及び前記装置をディストリビュートするステップを更に含む、
請求項1記載の方法。
【請求項3】
装置のクラスについてダイレクトプルーフのファミリ鍵のペアを生成するステップを更に含む、
請求項1記載の方法。
【請求項4】
前記グループレコードを署名及び認証するための鍵のペアを生成するステップを更に含む、
請求項1記載の方法。
【請求項5】
前記グループレコードの鍵のペアの公開鍵のハッシュを前記装置の不揮発性メモリに記憶するステップを更に含む、
請求項4記載の方法。
【請求項6】
前記署名されたグループレコードのグループサイズを選択するステップを更に含む、
請求項1記載の方法。
【請求項7】
前記秘密鍵は、前記ダイレクトプルーフのファミリ鍵のペアの公開鍵と関連されるダイレクトプルーフの秘密鍵を有し、
前記ダイレクトプルーフの秘密鍵をハッシュして前記秘密鍵のダイジェストを生成するステップを更に含む、
請求項3記載の方法。
【請求項8】
前記装置の擬似ランダム値に基づいて対称鍵を生成するステップを更に含む、
請求項1記載の方法。
【請求項9】
前記識別子を生成するステップは、前記対称鍵を使用してデータ値を暗号化するステップを含む、
請求項8記載の方法。
【請求項10】
前記対称鍵を使用して前記データ構造を暗号化するステップを更に含む、
請求項8記載の方法。
【請求項11】
前記暗号化されたデータ構造は、ランダム初期化ベクトルを更に含む、
請求項1記載の方法。
【請求項12】
前記取り外し可能な記憶媒体は、コンパクトディスク及びデジタルバーサティルディスクの少なくとも1つを含む、
請求項1記載の方法。
【請求項13】
前記装置の擬似ランダム値は固有である、
請求項1記載の方法。
【請求項14】
複数のコンピュータ読み取り可能な命令を含む第一の記憶媒体を有する製品であって、
前記命令がプロセッサにより実行されたとき、前記命令は、
装置に関連される、秘密鍵及び秘密鍵のダイジェストを含む暗号化されたデータ構造を生成し、
擬似ランダムに生成された値に基づいて、前記暗号化されたデータ構造について識別子を生成し、
取り外し可能な記憶媒体の署名されたグループレコードに、前記識別子及び前記暗号化されたデータ構造を記憶し、
前記装置の不揮発性ストレージに、前記擬似ランラム値と前記署名されたグループレコードに対応するグループナンバーを記憶させる、
ことで、署名されたグループにおける秘密鍵を装置に伝送する製品。
【請求項15】
前記グループレコードを署名及び認証するために鍵のペアを生成するための命令を更に含む、
請求項14記載の製品。
【請求項16】
前記グループレコードの鍵のペアの前記公開鍵のハッシュを前記装置の不揮発性ストレージに記憶するための命令を更に含む、
請求項15記載の製品。
【請求項17】
前記署名されたグループレコードのグループサイズを選択するための命令を更に含む、
請求項14記載の製品。
【請求項18】
装置のクラスについてダイレクトプルーフのファミリの鍵のペアを生成するための命令を更に含む、
請求項14記載の製品。
【請求項19】
前記秘密鍵は、前記ダイレクトプルーフのファミリの鍵のペアの公開鍵に関連されるダイレクトプルーフに秘密鍵を含み、
前記秘密鍵のダイジェストを生成するために前記ダイレクトプルーフの秘密鍵をハッシュするための命令を更に含む、
請求項14記載の製品。
【請求項20】
前記装置の前記擬似ランダム値に基づいて対称鍵を生成するための命令を更に含む、
請求項14記載の製品。
【請求項21】
前記識別子を生成するための命令は、前記対称鍵を使用してデータ値を暗号化するための命令を含む、
請求項20記載の製品。
【請求項22】
前記対称鍵を使用して前記データ構造を暗号化するための命令を更に含む、
請求項20記載の製品。
【請求項23】
前記暗号化されたデータ構造は、ランダム初期化ベクトルを更に含む、
請求項14記載の製品。
【請求項24】
前記装置の擬似ランダム値は固有である、
請求項14記載の製品。
【請求項25】
コンピュータシステムでインストールされる装置に関連される、秘密鍵と秘密鍵のダイジェストを含む暗号化されたデータ構造が前記コンピュータシステムのメモリに記憶されているかを判定するステップと、
前記暗号化されたデータ構造が記憶されていない場合、署名されたグループレコードからなるデータベースを記憶する、前記コンピュータシステムによりアクセス可能な取り外し可能な記憶媒体から、署名されたグループレコードにおいて装置に関連される前記暗号化されたデータ構造を取得するステップと、
を含む方法。
【請求項26】
前記取り外し可能な記憶媒体は、前記装置の製造者により作成されたコンパクトディスク及びデジタルバーサティルディスクの少なくとも1つを含む、
請求項25記載の方法。
【請求項27】
前記暗号化されたデータ構造を取得するステップは、秘密鍵の取得プロセスを始動するために前記装置に鍵取得コマンドを発生するステップを含む、
請求項25記載の方法。
【請求項28】
前記秘密鍵は、装置のクラスのダイレクトプルーフのファミリ鍵のペアの公開鍵と関連されるダイレクトプルーフの秘密鍵を含む、
請求項25記載の方法。
【請求項29】
前記秘密鍵の取得プロセスは、前記装置に記憶される固有の擬似ランダム値に基づいて対称鍵を生成するステップを含む、
請求項27記載の方法。
【請求項30】
前記秘密鍵の取得プロセスは、前記擬似ランダム値に基づいて、前記暗号化されたデータ構造についてデバイス識別子を生成するステップを含む、
請求項29記載の方法。
【請求項31】
前記秘密鍵取得プロセスは、前記取り外し可能な記憶媒体から前記装置のグループ数に対応する署名されたグループレコードを取得するステップを含む、
請求項27記載の方法。
【請求項32】
グループナンバー、グループの公開鍵、及び前記装置の識別子に対応する暗号化されたデータ構造を取得するために前記署名されたグループレコードを分析するステップを更に含む、
請求項30記載の方法。
【請求項33】
前記署名されたグループレコードを確認するステップを更に含む、
請求項31記載の方法。
【請求項34】
前記秘密鍵の取得プロセスは、前記秘密鍵及び前記秘密鍵のダイジェストを取得するため、前記対称鍵を使用して前記取り外し可能な記憶媒体から受けた前記暗号化されたデータ構造を復号するステップを更に含む、
請求項32記載の方法。
【請求項35】
前記秘密鍵の取得プロセスは、前記秘密鍵をハッシュして新たな秘密鍵のダイジェストを生成するステップと、前記復号されたデータ構造からの前記秘密鍵のダイジェストを前記新たな秘密鍵のダイジェストと比較し、前記ダイジェストが一致したときに前記装置について有効であるとして前記秘密鍵を受けるステップとを更に含む、
請求項34記載の方法。
【請求項36】
複数のコンピュータ読み取り可能な命令を含む第一の記憶媒体を有する製品であって、
前記命令がプロセッサにより実行されたとき、前記命令は、
コンピュータシステムでインストールされる装置に関連される、秘密鍵と秘密鍵のダイジェストを含む暗号化されたデータ構造が前記コンピュータシステムのメモリに記憶されているかを判定し、
前記暗号化されたデータ構造が記憶されていない場合、署名されたグループレコードからなるデータベースを記憶する、前記コンピュータシステムによりアクセス可能な取り外し可能な記憶媒体から、署名されたグループレコードにおいて装置に関連される前記暗号化されたデータ構造を取得する、
ことで、コンピュータシステムでインストールされた装置の署名されたグループレコードから秘密鍵を取得する製品。
【請求項37】
前記暗号化されたデータ構造を取得するための命令は、秘密鍵の取得プロセスを始動するために鍵取得コマンドを前記装置に発するための命令を含む、
請求項36記載の製品。
【請求項38】
前記秘密鍵は、装置のクラスについてダイレクトプルーフファミリの鍵のペアの公開鍵に関連されるダイレクトプルーフの秘密鍵を有する、
請求項36記載の製品。
【請求項39】
前記秘密鍵の取得プロセスは、前記装置に記憶された固有の擬似ランダム値に基づいて対称鍵を生成するステップを含む、
請求項37記載の製品。
【請求項40】
前記秘密鍵の取得プロセスは、前記擬似ランダム値に基づいて、前記暗号化されたデータ構造について装置の識別子を生成するステップを含む、
請求項37記載の製品。
【請求項41】
前記秘密鍵の取得プロセスは、前記取り外し可能な記憶媒体から前記装置のグループ番号に対応する署名されたグループレコードを取得するステップを含む、
請求項37記載の製品。
【請求項42】
グループナンバー、グループの公開鍵、及び前記装置の識別子に対応する暗号化されたデータ構造を取得するために前記署名されたグループレコードを更に含む、
請求項40記載の製品。
【請求項43】
前記署名されたグループレコードを確認するステップを更に含む、
請求項41記載の製品。
【請求項44】
前記秘密鍵の取得プロセスは、前記秘密鍵及び前記秘密鍵のダイジェストを取得するために前記対称鍵を使用して前記取り外し可能な記憶媒体から受けた前記暗号化されたデータ構造を復号するステップを更に含む、
請求項42記載の製品。
【請求項45】
前記秘密鍵の取得プロセスは、前記秘密鍵をハッシュして新たな秘密鍵のダイジェストを生成するステップと、前記復号されたデータ構造からの前記秘密鍵のダイジェストを前記新たな秘密鍵のダイジェストと比較するステップと、前記ダイジェストが一致したとき、前記装置について有効であるとして前記秘密鍵を受けるステップと、
を更に含む請求項44記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2008−507203(P2008−507203A)
【公表日】平成20年3月6日(2008.3.6)
【国際特許分類】
【出願番号】特願2007−521514(P2007−521514)
【出願日】平成17年7月8日(2005.7.8)
【国際出願番号】PCT/US2005/024253
【国際公開番号】WO2006/019614
【国際公開日】平成18年2月23日(2006.2.23)
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】
【公表日】平成20年3月6日(2008.3.6)
【国際特許分類】
【出願日】平成17年7月8日(2005.7.8)
【国際出願番号】PCT/US2005/024253
【国際公開番号】WO2006/019614
【国際公開日】平成18年2月23日(2006.2.23)
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】
[ Back to top ]