【誤訳訂正書】
【提出日】平成23年3月9日(2011.3.9)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【書類名】  明細書
【発明の名称】  記憶されたデータの使用に対する強制的な制限
【特許請求の範囲】
【請求項１】データに対する操作を制限するように適合されたコンピュータシステムであって、
コンピュータプラットホームであって、前記プラットホームのユーザが、データに対してリクエストされた操作を行なうために許諾されているかどうかをチェックし、データの使用を可能にするためのセキュアオペレータを有するコンピュータプラットホームと、
ユーザのアイデンティティを含み、無許可の外部の修正に抵抗するように適合されたコンポーネントである携帯型の信頼できるモジュールと、
データに関してユーザのライセンス許諾を指定するアクセスプロファイルと、
データのインストールをチェックし、データの要約、又はデータに関連するアクセスプロファイル及びデータの要約を記憶するように適合され、データに操作するリクエストに応じて、記憶された前記要約を参照することによりデータの完全性、又はデータ及びアクセスプロファイルの完全性をチェックするように適合されたデータプロテクタとを含み、
ライセンスが必要である場合に、前記セキュアオペレータが、前記携帯型の信頼できるモジュールに含まれたユーザのアイデンティティに対してリクエストされた操作が許諾されているかどうかを判定するために、前記アクセスプロファイルをチェックし、前記ライセンスが存在しない場合、リクエストされた操作を止めるように適合されている、コンピュータシステム。
【請求項２】前記コンピュータプラットホームが、プラットホームの信頼できるモジュールをさらに含み、そのプラットホームの信頼できるモジュール及び前記携帯型の信頼できるモジュールが、相互に認証するように適合され、前記セキュアオペレータのいくつか又はすべての機能性が、前記プラットホームの信頼できるモジュール内にある、請求項１に記載のコンピュータシステム。
【請求項３】前記アクセスプロファイルが、前記コンピュータプラットホーム内にある、請求項１又は２に記載のコンピュータシステム。
【請求項４】いくつか又はすべてのデータが、前記コンピュータプラットホーム内にあり、前記データプロテクタが前記コンピュータプラットホーム内にある、請求項１〜３のいずれかに記載のコンピュータシステム。
【請求項５】いくつか又はすべてのデータが、前記携帯型の信頼できるモジュール内、又は前記携帯型の信頼できるモジュールを含む装置内にあり、前記データプロテクタが前記携帯型の信頼できるモジュール又は前記携帯型の信頼できるモジュールを含む装置内にある、請求項１〜３のいずれかに記載のコンピュータシステム。
【請求項６】前記データプロテクタが、前記プラットホームの信頼できるモジュール内にある、請求項４に記載のコンピュータシステム。
【請求項７】前記データプロテクタが、前記要約を、前記携帯型の信頼できるモジュール又は前記プラットホームの信頼できるモジュールへ記憶する、請求項２、及び請求項２に直接的または間接的に従属する場合の請求項３〜６のいずれかに記載のコンピュータシステム。
【請求項８】前記セキュアオペレータ及び前記データプロテクタが完全性のチェックによって保護されている、請求項１〜７のいずれかに記載のコンピュータシステム。
【請求項９】前記携帯型の信頼できるモジュールが、取り外し可能な信頼できるモジュールに関連するデータにアクセスする権利を指定するユーザアクセスライセンスを含み、前記アクセスプロファイルによって止められない限り、前記セキュアオペレータが、携帯型の信頼できるモジュールに含まれるユーザのアイデンティティに対してリクエストされた操作が許諾されているかどうかを判定するために、ユーザアクセスライセンスをチェックするように適合されている、請求項１〜８のいずれかに記載のコンピュータシステム。
【請求項１０】前記コンピュータプラットホームが、前記プラットホームの信頼できるモジュールとコンピュータプラットホームのオペレーティングシステムとの間に独立した専用の通信経路を含む、請求項２、及び請求項２に直接的または間接的に従属する場合の請求項３〜９のいずれかに記載のコンピュータシステム。
【請求項１１】コンピュータプラットホームは、
前記オペレーティングシステムが、ターゲットデータの名称および意図した操作を送信することによって、データに作用する前にセキュアオペレータにポリシーチェックをリクエストし、
前記セキュアオペレータが、データを操作させてもよいかどうかを判定するために前記アクセスプロファイルにおけるターゲットデータに関連する制限をチェックし、及び
前記セキュアオペレータが、申し込まれた使用を前記制限でチェックし、オペレーティングシステムに応答するように適合されている、請求項１〜１０のいずれかに記載のコンピュータシステム。
【請求項１２】データに対する操作の許可のために前記オペレーティングシステムがリクエストする際、前記セキュアオペレータが、前記プラットホームの信頼できるモジュールの秘密鍵によってサインされたメッセージをアクセスプロファイルに送信し、前記アクセスプロファイルが、前記プラットホームの信頼できるモジュールの公開鍵にアクセスし、サインされたメッセージをその公開鍵を用いて確認して認証することができ、それにより認証された場合、前記アクセスプロファイルが、認証されたメッセージを前記セキュアオペレータに戻し、前記セキュアオペレータが、前記オペレーティングシステムにリクエストされた操作を実行することをリクエストする、請求項２に直接的または間接的に従属する場合の請求項１１に記載のコンピュータシステム。
【請求項１３】前記セキュアオペレータから前記オペレーティングシステムまでのリクエストが、独立した専用の通信経路で提供される、請求項１２に記載のコンピュータシステム。
【請求項１４】前記プラットホームの信頼できるモジュール又は前記携帯型の信頼できるモジュールが、データ及び関連するアクセスプロファイル上で一方向関数のセキュア結果を含み、その一方向関数の計算がセキュア結果と異なった結果を提供した場合、前記データプロテクタが、操作の実行を止める、請求項２及び請求項２に直接的または間接的に従属する場合の請求項３〜１３のいずれかに記載のコンピュータシステム。
【請求項１５】前記プラットホームの信頼できるモジュールが、データを使用するための、前記オペレーティングシステムに対するリクエストをログ記録するように適合されている、請求項２及び請求項２に直接的または間接的に従属する場合の請求項３〜１４のいずれかに記載のコンピュータシステム。
【請求項１６】前記携帯型の信頼できるモジュールが、データを使用するための、前記オペレーティングシステムに対するリクエストをログ記録するように適合されている、請求項１〜１４のいずれかに記載のコンピュータシステム。
【請求項１７】データの実行の前に、前記データプロテクタが、前記コンピュータプラットホーム内に記憶されたデータの複数のコピーがないことをチェックし、複数のコピーがあった場合、データの実行を止める、請求項４に記載のコンピュータシステム。
【請求項１８】コンピュータプラットホームであって、
前記プラットホームのユーザがデータに対してリクエストされた操作を行なうために許諾されているかどうかをチェックし、データの使用を可能にするためのセキュアオペレータと、データに関するユーザのライセンス許諾を指定するアクセスプロファイルと、データのインストールをチェックし、データの要約、又はデータに関連するアクセスプロファイル及びデータの要約を記憶するように適合され、データに操作するリクエストに応じて、記憶された前記要約を参照することによりデータの完全性、又はデータ及びアクセスプロファイルの完全性をチェックするように適合されたデータプロテクタとを有し、前記コンピュータプラットホームとの通信において携帯型の信頼できるモジュールに含まれるユーザのアイデンティティに対してリクエストされた操作が許諾されているかどうかを判定するために、セキュアオペレータが、アクセスプロファイルをチェックするように適合されており、信頼できるモジュールが、無許可の外部の修正に抵抗するように適合されたコンポーネントであり、ライセンスが必要とされて存在しない場合、リクエストされた操作を止めるように適合されている、コンピュータプラットホーム。
【請求項１９】プラットホームの信頼できるモジュールをさらに含み、そのプラットホームの信頼できるモジュール及び前記携帯型の信頼できるモジュールが、相互に認証するように適合され、前記セキュアオペレータのいくつか又はすべての機能性が、前記プラットホームの信頼できるモジュール内にある、請求項１８に記載のコンピュータプラットホーム。
【請求項２０】前記アクセスプロファイルが、前記プラットホームの信頼できるモジュール内にある、請求項１８又は１９に記載のコンピュータプラットホーム。
【請求項２１】いくつか又はすべてのデータが、前記コンピュータプラットホーム内にある、請求項１８〜２０のいずれかに記載のコンピュータプラットホーム。
【請求項２２】前記データプロテクタが、前記プラットホームの信頼できるモジュール内にある、請求項２１に記載のコンピュータプラットホーム。
【請求項２３】前記データプロテクタが、前記要約を、前記プラットホームの信頼できるモジュール又は前記携帯型の信頼できるモジュールへ記憶する、請求項１９及び請求項１９に直接的または間接的に従属する場合の請求項２０〜２２のいずれかに記載のコンピュータプラットホーム。
【請求項２４】前記セキュアオペレータ及び前記データプロテクタが、完全性のチェックによって保護されている、請求項１８〜２３のいずれかに記載のコンピュータプラットホーム。
【請求項２５】前記プラットホームの信頼できるモジュールと前記コンピュータプラットホームのオペレーティングシステムとの間に独立した専用の通信経路をさらに含む、請求項１９及び請求項１９に直接的または間接的に従属する場合の請求項２０〜２４のいずれかに記載のコンピュータプラットホーム。
【請求項２６】前記オペレーティングシステムが、データの名称および意図した操作を送信することによって、データに作用する前に前記セキュアオペレータにポリシーチェックをリクエストし、
前記セキュアオペレータが、データを操作してもよいかどうかを判定するために前記アクセスプロファイルにおけるターゲットデータに関連する制限をチェックし、及び
前記セキュアオペレータが、申し込まれた使用を前記制限でチェックし、前記オペレーティングシステムに応答するように適合された、請求項１８〜２５のいずれかに記載のコンピュータプラットホーム。
【請求項２７】データに対する操作の許可のために前記オペレーティングシステムがリクエストする際、前記セキュアオペレータが、前記プラットホームの信頼できるモジュールの秘密鍵によってサインされたメッセージをアクセスプロファイルに送信し、前記アクセスプロファイルが、前記プラットホームの信頼できるモジュールの公開鍵にアクセスし、サインされたメッセージを、その公開鍵を用いて確認して認証することができ、それにより認証された場合、前記アクセスプロファイルが、認証されたメッセージを前記セキュアオペレータに戻し、前記セキュアオペレータが、前記オペレーティングシステムにリクエストされた操作を実行することをリクエストする、請求項１９に直接的または間接的に従属する場合の請求項２６に記載のコンピュータプラットホーム。
【請求項２８】前記セキュアオペレータから前記オペレーティングシステムまでのリクエストが、独立した専用の通信経路で提供される、請求項２５に間接的に従属する場合の請求項２７に記載のコンピュータシステム。
【請求項２９】前記プラットホームの信頼できるモジュールが、データ及び関連するアクセスプロファイル上で一方向関数のセキュア結果を含み、その一方向関数の計算がセキュア結果と異なった結果を提供した場合、前記データプロテクタが、操作の実行を止める、請求項２１及び請求項２１に直接的または間接的に従属する場合の請求項２２〜２８のいずれかに記載のコンピュータプラットホーム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、コンピュータプラットホーム、及びその動作方法に関し、より具体的には、コンピュータプラットホームにおける、特に多数のモバイルユーザに使用可能なコンピュータプラットホームにおけるデータの使用の制御及び／又は計測（metering）に関する。
【０００２】
本明細書において、「データ」とは、画像、ソフトウエア及びストリーミング媒体のように、ディジタル的にフォーマット化することができるあらゆるものを意味する。
【０００３】
【従来の技術】
将来、コンピュータシステムは、オペレーティングシステム及び搭載されたソフトウエアにウィルス又は他の無許可の修正が行なわれないことを保証するために、別のコードにおける完全性のチェックと共に、それ以上のセキュアブーティングを達成することができるであろう。さらに、新しい世代の改竄防止装置は、すでに現われており又はすぐに市場に現われようとしており、かつ外部又は携帯型のコンポーネント（スマートカードのような）及び内部のコンポーネント（組み込み型プロセッサ、半組み込み型プロセッサ又はセキュリティー機能性を有するコプロセッサ、すなわちマザーボード、ＵＳＢ及びＩＳＡによる実施を含む）両方を含んでいる。これらの改竄防止コンポーネントは、システムのハードウエアが不正変更を受けたことをチェックし、現在使用できるもの（例えば、マシンのイーサネット（Ｒ）名称）よりも信頼できるマシンのアイデンティティ（identity ：識別性）の形式を提供するために使用されるであろう。２０００年２月１５日に出願され、「Trusted Computing Platform」と題する本出願人の継続中の国際特許出願第ＰＣＴ／ＧＢ００／００５２８号は、信頼できる測定及び信頼できる完全性のメトリックスの報告によって、コンピュータプラットホームの完全性の証明を可能にするように適合されているシステムを記載し、その全内容はこれをもって参照により本明細書に組み込まれる。これは、ローカルユーザ又はリモートエンティティによって、プラットホームの完全性の証明を可能にする。
【０００４】
このような改竄防止コンポーネント及びセキュアブーティングの可能性の存在は、それ自体によってコンピューティングプラットホームの使用に関するすべてのセキュリティーの問題を取り除くわけではない。特に著作権侵害の阻止、及びソフトウエア開発者及びエンドユーザに受け入れることができるようなソフトウエア使用の使用許諾（licencing）及び計測は、いぜんとして主要な問題を提供している。
【０００５】
ソフトウエア使用許諾は、ハッキングと著作権侵害を受けやすく、現在の使用されるすべてのソフトウエア使用許諾方法は、これらの関連する問題を有する。使用許諾のソフトウエアによる実施（「ライセンスマネージメントシステム」のような）は、融通性を有するが、とりわけ安全又は敏速ではない。特に、これらは、セキュリティーの不足（例えば一般的な「ハッキング」を受ける）、及びソフトウエアの真の置き換えの困難に悩まされている。逆に、ハードウエアによる実施（「ドングル」）は、ソフトウエアによる実施に比べて高速であり、一般に安全であるが、融通性がない。これらは、ソフトウエアの特定の部分に対してだけ適応されており、エンドユーザに対しては不便である。
【０００６】
ライセンス保護の分野における一般的な技術は、使用許諾及び他の保護処置に関する情報をコード化するためにソフトウエアラッパを使用することである。データラッパ又は暗号コンテナは、一般にソフトウエアだけに使用され、データ保護のハイブリッド法は、完全性チェックがラッパ内に含まれている場合でさえ、変更及び除去に対して傷付きやすいので、現在、保護のきわめて安全な方法というわけではない。特に、データラッパは、ハッカに対する第１のターゲットである。なぜならこれは、データを実行することができる方法を管理するデータの開発者によって定義されるプロファイル、又は変更してはいけない他のデリケートな情報を含むことができるからである。認証、暗号化及び完全性のチェックを用いて、クライアントのプラットホームにダウンロードされ、記憶されている途中で修正されることに対してラッパを保護することができる。しかしながら、データ及び関連するラッパが、クライアントのプラットホーム内に一度記憶されると（例えば、ハードディスク上に）、悪意の実在によって又は事故によって修正され又は消去される可能性があるという重大な危険性が存在する。一度修正されると、データは、ある意味で当初の修正されていないラッパにおいて定義されたプロファイルの範囲の外側にあるクライアントのプラットホームで使用されることができる。
【０００７】
このような困難に対処する１つのシステムは、「Persistent Access Control to Prevent Piracy of Digital Information」、Paul B.Schneck著、Proceeding of the IEEE、第８７巻、第７号、１９９９年７月、第１２３９−１２５０頁に提案されており、これは、データにアクセスする前に、使用許諾情報をチェックするためにアクセス制御ソフトウエアを使用する。しかしながら、そのシステムは、一般的なライセンス（許可）がすべてのユーザに対して使用可能である場合だけを考慮している。アクセス制御機構は、この問題に対する完全な解決策を提供することができない。なぜなら、これらは、バイパスされることができ、さらにこれらは、データの開発者ではなくユーザの管理者によって指定される制御に的を絞っているからである。種々のソフトウエア許諾を有するユーザによってプラットホームが共有される多くの状況が存在する。既存のシステムは、おそらくますます重要になるこの問題に満足に対処していない。
【０００８】
【本発明の概要】
したがって、本発明は、データに対する操作を制限するように適合されたコンピュータシステムを提供し、このコンピュータシステムは、プラットホームのユーザがデータに対してリクエストされた操作を行なうために許諾されているかどうかをチェックし、データの使用を可能にするためのセキュアオペレータを有するコンピュータプラットホームと、ユーザのアイデンティティを含む携帯型の信頼できるモジュールと、その信頼できるモジュールが、予想された態様で動作し、無許可の外部の修正に抵抗するように適合されたコンポーネントであることと、及びデータに関してユーザのライセンス許諾を指定するアクセスプロファイルとを含み、ライセンスが必要である場合、セキュアオペレータが、携帯型の信頼できるモジュールに含まれたユーザアイデンティティに対してリクエストされた操作が許諾されているかどうかを判定するために、アクセスプロファイルをチェックし、ライセンスが存在しない場合、リクエストされた操作を止めるように適合されている。好適には、コンピュータプラットホームは、プラットホームの信頼できるモジュールをさらに含み、そのプラットホームの信頼できるモジュール及び携帯型の信頼できるモジュールが、相互に認証するように適合されている。
【０００９】
本発明は、コピー、変更又は実行のように、データにおいて行なうことができる操作を防止し、制限するために使用されるソフトウエアラッパ又は他のタイプのデータ許可に適用可能である。本発明の特に好適な形態は、２つの信頼できるモジュール（ＴＣ）を使用し、これらのモジュールの第１のものは、典型的にスマートカードに保持される携帯型のＴＣであり、第２のものは、コンピュータプラットホームの一部である。これらは、データが開発者によって指定された方法において携帯型のＴＣの所有者によってのみ使用できることを確実にするために、ソフトウエアに関連して使用され、好適にはＴＣ内において動作する。
【００１０】
システムの好適な実施形態において、いくつか又はすべてのデータは、携帯型の信頼できるモジュール内、又は携帯型の信頼できるモジュールを含む装置内にあり、携帯型の信頼できるモジュール又は携帯型の信頼できるモジュールを含む装置は、コンピュータプラットホームのプロセッサがデータに対する操作を実施する前に、データの完全性をチェックするためのデータプロテクタをさらに含む。この構成は、データが（アクセスプロファイル又はラッパと共に）、信頼できるクライアントのプラットホームに記憶された後に、関連するアクセスプロファイル又は他のタイプのラッパが変化されておらず又は消去されていないことのチェックを提供する利点を有する。
【００１１】
本発明は、ユーザのアイデンティティ（スマートカードのように移動可能なＴＣから導出される）にしたがってアクセスチェックが行なわれるクライアントのシステムを使用する点において、シュネッケのシステムと相違するが、チェックそれ自体は、クライアントのＰＣ又は他のクライアントのプラットホームに搭載されたアクセス制御ソフトウエアを使用して行なわれる。さらに次のことが可能である。すなわち、（ａ）ライセンスは、所定のタイプのアクセス制御のために必要なＰＣ  ＴＣの代わりに又はそれと同様に、それぞれのエンドユーザに関連することができ、（ｂ）データが暗号化されていることは必須のことではなく（好適ではあるが）、（ｃ）ライセンスの修正を防ぐために（アクセスプロファイル参照）、要約は、ロードの際にＴＣに記憶され、データアクセスの前に調べられ、（ｄ）アクセス制御コードは、ＢＩＳ（BOOT Integrity Service）において保護され、好適にはＴＣ内において動作し、さもなければコードとコンピュータプラットホームの他の部分にアクセス不可能なＴＣとの間に専用の通信経路があり、（ｅ）ログ記録がＴＣ内において行なわれ、及び（ｆ）ライセンスがさらに事前対応の役割を有することができる。
【００１２】
この特定の発明の動機付けは、データ使用法のさらに複雑なモデルがさらに大きな融通性を要求することであり、この融通性は、クライアントのプラットホームにおいて複数のＴＣを使用することによってのみ実質的にもたらされ得る。特に事務所の環境におけるホットデスキング（hot-desking）又は空港のような公共の場所における共有端末からのアクセス情報又はサービスは、共有のクライアントマシンにおいてＴＣを有することによって、及びこのユーザを識別する少なくとも１つの携帯型ＴＣによって発行されたそれぞれのユーザによってモデル化されることができる。本発明の適切な実施形態の使用によって、データに対して行なわれる操作の妥当性をチェックするソフトウエアと共にデータに関連したユーザのライセンスを介して、記憶されたデータの使用に対する強制的な制限によって、モバイルユーザが信頼できるコンピュータプラットホームにおいて汎用のデータアクセスを行なうことを可能にする。ユーザのライセンスは、スマートカードのような携帯型の信頼できる装置に記憶することができ、又はそれにより発行されることができ、データと共にダウンロードされることができ、又はデータから独立して送信することができる。インストール以後、データが修正されていないことを保証するために、データにおける完全性のチェックを行なうためのオプションが存在する。従って、コピーのようなデータにおける無許可の操作は、データの修正又は同じプラットホームにおけるその関連するライセンスと共に防止することができる一方で、ユーザは、データアクセスのホットデスキングモデルから利益を得ることができる。
【００１３】
本発明の実施形態は、個々のユーザに、そのユーザだけが利益を得ることになるデータアクセスに対して支払いを行なうことを可能にする。ユーザは、持ち歩くことができる改竄防止の携帯型装置にこのようなライセンスを獲得することができ、例えその場所がどこであっても、任意の信頼できるプラットホームにおいて使用することができる。代案として、信頼できるプラットホームに保持された個々のライセンスは、携帯型のモジュールのセキュアＩＤを参照するためにカスタマイズすることができる。データそれ自体が携帯型の装置において獲得された場合、データをクライアントマシンにインストールする必要はない。必要に応じて、データは、リクエストされた際に、すでにインストールされていないならば、ダウンロードすることができる。
【００１４】
１つの態様において、本発明は、プラットホームのユーザがデータに対してリクエストされた操作を行なうために許諾されているかどうかをチェックし、データの使用を可能にするためのセキュアオペレータ、及びデータに関するユーザのライセンス許諾を指定するアクセスプロファイルを有するコンピュータプラットフォームを提供し、コンピュータプラットホームとの通信において携帯型の信頼できるモジュールに含まれるユーザのアイデンティティに対してリクエストされた操作が許諾されているかどうかを判定するために、セキュアオペレータが、アクセスプロファイルをチェックするように適合されており、信頼できるモジュールが、予想された態様で動作し、無許可の外部の修正に抵抗するように適合されたコンポーネントであり、ライセンスが必要とされていて存在しない場合、リクエストされた操作を止めるように適合されている。
【００１５】
別の態様において、本発明は、ユーザのアイデンティティを含む携帯型の信頼できるモジュールを提供し、信頼できるモジュールが、予想された態様で動作し、無許可の外部の修正に抵抗するように適合されたコンポーネントであり、携帯型の信頼できるモジュールが、移動可能な信頼できるモジュールに関するデータに対するアクセス権利を指定するユーザアクセス許可を含む。
【００１６】
本発明の特に好適な実施形態は、開発者によって指定された記憶済みデータの、それぞれの個々のエンドユーザによる使用に関する制限が遵守されなければならないこと、種々のエンドユーザが異なったアクセスプロファイルを有することができること、さらにデータ又は関連するラッパ又はライセンスがプラットホームへの初期のダウンロードから修正されていた場合、データがプラットホームにおいて使用できないことを保証する、コンピュータプラットホーム（これはおそらく幾つかのユーザによって共有される）の信頼できるモジュール（ＴＣ）を、好適にはＴＣ内において動作するソフトウエアに関連して使用する。ホストＣＰＵは、ＴＣにターゲットデータの名称および意図した操作を送信することによって、データに作用する前にポリシーチェックをリクエストする。ＴＣは、ログインされた（携帯型のＴＣのＩＤを介して）ユーザのＩＤ、及びターゲットデータに関連するこの現在のエンドユーザに対応する制限をチェックする。これらの制限は、だれがデータにアクセスしてもよいか、データを使用できる回数、行なってはいけない操作等に関するものであり、または制限は、意図的に「NULL（ヌル）」としてロードされていてもよい。ＴＣは、制限と共に提案された使用をチェックする。適切な許諾が見つからなかった場合、ＴＣは、携帯型のＴＣ（有利にはスマートカード）におけるライセンスについて、及びこの範囲内のデータ使用に対する有効な許諾についてチェックする。次いで、ＴＣは、適宜、アクセス許諾を備えて、又は備えることなしにＣＰＵに応答する。このようにＣＰＵは、ＴＣから適切な許諾を取得することなく、コピー、編集、セクションの追加、セクションの置き換え、実行、消去、プリント、オープン、スキャン、名称変更、位置の移動、送信又は読出しのようなターゲットデータに対する所定の操作を行なうことができない。好適には、ターゲットデータ及び制限の完全性は、これらがプラットホームにおいて非合法的に又は偶発的に修正されていないことを保証するために、操作を実施する前にチェックされる。その代わりにチェックは、携帯型のＴＣ自体で実行してもよい。
【００１７】
システムの重要なコンポーネントは、アプリケーションソフトウエア又はデータのそれぞれの部分に関連したアクセスプロファイルであり、これは、保護すべきデータを指定し、その特定のソフトウエア又はデータにおいて実行されることを開発者が望んだ操作のタイプを指定する。必要に応じて、アクセスプロファイルは、特定のＴＣ  ＩＤ、又はＴＣ又は現在サインオンされているスマートカードについてチェックすべき秘密（secret）のような所定の操作を実施することについてチェックすべき他の任意の特定の情報を指定する。別の可能性は、ＴＣ又はスマートカード（適切にセグメント化されている）内において、好適にはデータと共に動作するアクセスプロファイルに関するものである。アクセスプロファイルは、データに関連するライセンスの形態、又は暗号のコンテナと考えることができる。
【００１８】
別の態様において、本発明は、データに対する操作を制限するように適合されたコンピュータシステムを提供し、このコンピュータシステムは、データに関してユーザのライセンス許諾を指定し、データの使用を可能にするためのアクセスプロファイルを有するコンピュータプラットホームと、ユーザのアイデンティティを含む携帯型の信頼できるモジュールと、その信頼できるモジュールが、予想された態様で動作し、無許可の外部の修正に抵抗するように適合されたコンポーネントであることとを含み、ライセンスが必要である場合に、アクセスプロファイルが、携帯型の信頼できるモジュールに含まれたユーザアイデンティティに対してリクエストされた操作が許諾されているかどうかを判定し、ライセンスが存在しない場合、リクエストされた操作を止めるように適合されている。
【００１９】
さらに別の態様において、本発明は、システムにおけるデータに対する操作を制限する方法を提供し、このシステムが、データに関するユーザのライセンス許諾を指定し、データの使用を可能にするためのアクセスプロファイルを有するコンピュータプラットホームと、ユーザのアイデンティティを含む携帯型の信頼できるモジュールと、その信頼できるモジュールが、予想された態様で動作し、無許可の外部の修正に抵抗するように適合されたコンポーネントであることとを含み、方法が、アクセスプロファイルにターゲットデータの名称および意図した操作を送信することによって、データに作用する前にアクセスプロファイルに対するコンピュータプラットホームのオペレーティングシステムによるポリシーチェックのためのリクエストを含み、アクセスプロファイルが、データを操作してもよいかどうかを判定するためにターゲットデータに関連する制限をチェックし、オペレーティングシステムに応答する。
【００２０】
本発明のこれらの態様において、アクセスプロファイルは、さらに事前対応な役割を引き受ける。アクセスプロファイルは、セキュアオペレータというよりはむしろ制限されたデータを実行するオペレーティングシステムの能力を制御する役割を引き受ける。
【００２１】
さらに別の態様において、本発明は、システムにおけるデータに対する操作を制限する方法を提供し、このシステムが、プラットホームのユーザが、データに対するリクエストされた操作を行なうために許諾されているかどうかをチェックし、データの使用を可能にするためのセキュアオペレータを有するコンピュータプラットホームと、ユーザのアイデンティティを含む携帯型の信頼できるモジュールと、その信頼できるモジュールが、予想された態様で動作し、無許可の外部の修正に抵抗するように適合されたコンポーネントであることと、及びデータに関してユーザのライセンス許諾を指定するアクセスプロファイルとを含み、方法が、セキュアオペレータにターゲットデータの名称および意図した操作を送信することによって、データに作用する前にセキュアオペレータにコンピュータプラットホームのオペレーティングシステムによるポリシーチェックのためのリクエストを含み、セキュアオペレータが、データを操作してもよいかどうかを判定するためにアクセスプロファイルにおけるターゲットデータに関連する制限をチェックし、セキュアオペレータが、制限を有する申し込まれた使用をチェックし、オペレーティングシステムに応答する。
【００２２】
本発明による操作の好適な方法において、サインオンの際、移動可能なモジュール及びＰＣ  ＴＣは、相互に認証し、ＴＣは、移動可能なモジュールの識別子を記憶する。保護されたデータが使用できる前に、セキュアオペレータ又はデータに関連するアクセスプロファイル（使用される特定のモジュールに応じて）は、ＯＳに特定の操作を実行するための許諾を与える必要がある。データに関する制限のチェックの際、セキュアオペレータ又はアクセスプロファイルは、ユーザのアイデンティティに関する制限チェックを実行するように動作することができる。ライセンスがスマートカード内に記憶されている場合、セキュアオペレータは、今後、調べることができ、さもなければライセンスの詳細を見出すごとにスマートカードを調べることができるＴＣ  ＰＣに保持されたライセンスを記憶装置内に取り込む必要がある。このユーザライセンスは、データアクセスの結果として更新することができ、例えば、操作許諾がユーザの固定番号に対するものであることによって識別される場合、更新することができる。
【００２３】
開発者は、スマートカードに（ユーザ）ライセンスを発行することができ、これらのライセンスは、記録の後にエンドユーザに送信され、あるいはライセンスは、スマートカードに又はＴＣ  ＰＣのいずれかに電子的にダウンロードされることができる。データは、同時にダウンロードされることができ、又はおそらくCD-ROMのような非電子的な手段によって、独立して転送することができる。
【００２４】
【発明の特定の実施形態】
さて、本発明の好適な実施形態を一例として説明する。
【００２５】
本発明の実施形態を説明する前に、信頼できる装置を組み込み（国際特許出願第ＰＣＴ／ＧＢ００／００５２８号に記載されたように）、本発明の実施形態に使用するために適したコンピューティングプラットホームを、図１〜図７に関連して説明する。また、コンピュータプラットホームのユーザに対して個人的な信頼できるトークン装置も、本発明の実施形態において使用するために適しているとして説明されており、好適な例において、このトークン装置は、スマートカードである。
【００２６】
説明されることは、物理的に信頼できる装置、又はモジュールのコンピューティングプラットホームへの組み込みであり、その物理的に信頼できる装置又はモジュールの機能は、プラットホームの完全性のメトリックスを提供し、それにより「信頼できるプラットホーム」を形成する確実に測定されたデータに対してプラットホームのアイデンティティを結合することである。アイデンティティ及び完全性のメトリックスは、プラットホームの信頼性を保証するために準備される信頼できる当事者（Trusted Party:ＴＰ）によって提供される予想される値と比較される。一致する場合、プラットホームの少なくとも一部が完全性のメトリックスの範囲に応じて正確に動作していると推測される。
【００２７】
本明細書において、用語、「信頼できる（trusted）」は、物理的又は論理的なコンポーネントに関連して使用されたとき、物理的又は論理的なコンポーネントが常に予想されたように動作することを意味するために使用される。コンポーネントの動作は、予測可能であり、既知である。信頼できるコンポーネントは、無許可の修正に対して高度の抵抗力を有する。
【００２８】
本明細書において、用語、「コンピューティングプラットホーム」（又は「コンピュータプラットホーム」）は、少なくとも１つのデータプロセッサ、及び少なくとも１つのデータ記憶手段であるが、通常基本的に関連する通信設備を持たないもの、例えば複数のドライブ、関連するアプリケーション及びデータファイルを参照するために使用され、また、これは、例えばインターネットへの接続、外部ネットワークへの接続により、又はデータ記憶媒体、例えばCD-ROM、フロッピー（Ｒ）ディスク、リボンテープ等に記憶されたデータを受信することができる入力ポートを有することによって、外部のエンティティ、例えばユーザ又は別のコンピュータプラットホームと相互作用可能であってもよい。
【００２９】
ユーザは、プラットホームと他のデータを交換する前に、プラットホームの正確な動作を確認する。ユーザは、信頼できる装置にそのアイデンティティ及び完全性のメトリックスを提供することをリクエストすることによって、これを行なう。（必要に応じて、信頼できる装置は、それ自体がプラットホームの正確な動作を確認することができない場合、アイデンティティの証明を提供することを拒絶する。）ユーザは、アイデンティティ及び完全性のメトリックスの証明を受け取り、これらを真であると信じられる値と比較する。これらの適切な値は、ＴＰ、又はユーザによって信頼できるその他のエンティティによって提供される。信頼できる装置によって報告されるデータが、ＴＰによって提供されるものと同じである場合、ユーザは、プラットホームを信頼する。このことは、ユーザがエンティティを信頼するからである。エンティティは、あらかじめアイデンティティを確認し、プラットホームの適切な完全性のメトリックスを判定しているので、プラットホームを信頼する。
【００３０】
コンピューティングエンティティのユーザは、例えば、このような信頼できるトークン装置の使用によって、コンピュータエンティティとの信頼のレベルを確立することができる。信頼できるトークン装置は、データ処理能力を有する個人の、及び携帯型の装置であり、この場合、ユーザは、高レベルの信頼を有する。これは、ユーザを識別するために、信頼できるプラットホームによって使用されてもよい。信頼できるトークン装置は、次の機能を実行することができる。すなわち、
・例えば、音声又はビジュアルディスプレイによってユーザに容易に分かる態様で、コンピューティングプラットホームの正確な動作を確認すること、
・モニタリングコンポーネントが関連するコンピュータプラットホームの正確な動作の証明を提供するためにモニタリングコンポーネントにチャレンジすること、及び、
・モニタリングコンポーネントがコンピューティングエンティティの正確な動作の満足な証明を提供したかどうかに応じて、コンピューティングプラットホームとトークン装置の相互作用のレベルを確立し、正確な動作のこのような証明がトークン装置によって受信されない場合、コンピュータエンティティとの特定の相互作用を制止すること。
【００３１】
一度ユーザが、プラットホームの信頼できる動作を確立した場合、ユーザは、プラットホームと他のデータを交換する。ローカルユーザに対して、交換は、プラットホーム上で動作するある種のソフトウエアアプリケーションとの相互作用によるものであってもよい。リモートユーザに対して、交換は、セキュアトランザクションを含んでいてもよい。どちらにしても、交換されるデータは、信頼できる装置によって「サイン」されている。そして、ユーザは、動作を信頼することができるプラットホームとデータが交換されていることの一層大きな信頼を有することができる。
【００３２】
信頼できる装置は、暗号プロセスを使用するが、これらの暗号プロセスのために外部インターフェースを必然的に設けるわけではない。また、もっとも望ましい具体化は、これらを他のプラットホーム機能にアクセス不能にすることにより秘密を保護するために、及び無許可の修正に実質的に影響されない環境を提供するために、信頼できる装置に改竄防止策を施すことである。改竄防止は不可能なので、改竄に対する抵抗力を有する、又は改竄を検出する信頼できる装置が、最善の近似である。従って、信頼できる装置は、好適には改竄に対する抵抗力を有する１つの物理的なコンポーネントからなる。
【００３３】
改竄に対する抵抗力に関連する技術は、セキュリティーの技術における当業者によく知られている。これらの技術は、改竄に抵抗するための方法（信頼できる装置の適切なカプセル封入のような）、改竄を検出するための方法（仕様電圧、Ｘ線からの検出、又は信頼できる装置のケーシングにおける物理的完全性の損失の検出のような）、及び改竄が検出されたときにデータを除去するための方法を含む。適切な技術のそれ以上の議論は、http://www.cl.cam.ac.uk/~mgk25/tamper.htmlにおいて見出すことができる。理解されるように、改竄防止が本発明のもっとも望ましい特徴であるとはいえ、本発明の通常の動作には入らず、かつ本発明の範囲を越えているようであり、すべての詳細において本明細書に記載しない。
【００３４】
信頼できる装置は、偽造することが困難でなければならないので、好適には物理的なものである。偽造が困難でなければならないので、もっとも好適には改竄に対する抵抗力を有する。信頼できる装置は、典型的にはローカル及び少し離れてアイデンティティを証明するために必要なので、暗号プロセスを使用することができるエンジンを有し、関連するプラットホームのある種の完全性メトリックスを測定する少なくとも１つの方法を含む。
【００３５】
信頼できるプラットホーム１０は、図１の線図において示される。プラットホーム１０は、キーボード１４（これはユーザの確認鍵を提供する）、マウス１６及びモニタ１８の標準的な機能を含み、これらは、プラットホームの物理的な「ユーザインターフェース」を提供する。信頼できるプラットホームのこの実施形態は、スマートカードリーダ１２も含む。さらに後述するように、信頼できるプラットホームとの信頼できるユーザの相互作用を可能にするためのスマートカード１９が、スマートカードリーダ１２の側面に沿って示される。プラットホーム１０において、複数のモジュール１５が存在し、これらは、本質的にそのプラットホームに適切な任意の種類の信頼できるプラットホームの他の機能要素である。このような要素の機能的な重要性は、本発明に関連せず、本明細書においてさらに議論しない。信頼できるコンピュータエンティティの追加のコンポーネントは、典型的に１つ又は複数のローカルエリアネットワーク（ＬＡＮ）ポート、１つ又は複数のモデムポート、及び１つ又は複数の電源、冷却ファン等を含む。
【００３６】
図２に示すように、信頼できるコンピューティングプラットホーム１０のマザーボード２０は、（その他の標準的なコンポーネントのなかで）主プロセッサ２１、主メモリ２２、信頼できる装置２４、データバス２６、及びそれぞれの制御ライン２７及びライン２８、プラットホーム１０のためのＢＩＯＳプログラムを含むＢＩＯＳメモリ２９、及び入力／出力（ＩＯ）装置２３を含み、この入力／出力装置は、マザーボードのコンポーネントと、スマートカードリーダ１２、キーボード１４、マウス１６及びモニタ１８（及びモデム、プリンタ、スキャナ等のような任意の追加の周辺装置）との間の相互作用を制御する。主メモリ２２は、典型的にはランダムアクセスメモリ（ＲＡＭ）である。動作中、プラットホーム１０は、オペレーティングシステム、例えばウインドウズＮＴ（Ｒ）をハードディスク（図示せず）からＲＡＭへロードする。さらに、動作中、プラットホーム１０は、プラットホーム１０によって実行することができるプロセス又はアプリケーションをハードディスク（図示せず）からＲＡＭへロードする。
【００３７】
コンピュータエンティティは、論理的及び物理的なアーキテクチャを有するものと考えることができる。論理的なアーキテクチャは、本明細書の図１〜図４に記載された物理的なアーキテクチャと共に存在するものと同じ基本的な部分を、コンピュータプラットホームと信頼できるコンポーネントとの間に有する。すなわち、信頼できるコンポーネントは、物理的に関連するコンピュータプラットホームとは論理的に異なっている。コンピュータのエンティティは、コンピュータプラットホームに物理的に常駐する論理空間であるユーザ空間（第１のプロセッサ及び第１のデータ記憶手段）、及び信頼できるコンポーネントに物理的に常駐する論理空間である信頼できるコンポーネントの空間からなる。ユーザ空間には、１つ又は複数のドライバ、１つ又は複数のアプリケーションプログラム、ファイル記憶領域、スマートカードリーダ、スマートカードインターフェース、及びユーザ空間における動作を実行でき、信頼できるコンポーネントに報告を返すことができるソフトウエアエージェントがある。信頼できるコンポーネントの空間は、信頼できるコンポーネントに基づき、かつそこに物理的に常駐する論理領域であり、信頼できるコンポーネントの第２のデータプロセッサ及び第２のメモリ領域によって支援される。モニタ１８は、信頼できるコンポーネントの空間から画像を直接受信する。コンピュータエンティティの外部に、外部通信ネットワーク、例えばインターネット、及び種々のローカルエリアネットワーク、ドライバ（これは１つ又は複数のモデムポートを含むことができる）を介してユーザ空間に接続される広範囲ネットワークがある。外部のユーザのスマートカードは、ユーザ空間におけるスマートカードリーダ内に入力される。
【００３８】
一般に、パーソナルコンピュータにおいて、ＢＩＯＳプログラムは、特別に予約されたメモリ領域内に配置されており、第１のメガバイトの上側の６４Ｋは、システムメモリをなし（アドレスＦ０００ｈ〜ＦＦＦＦｈ）、主プロセッサは、業界全体の標準にしたがって、初めにこのメモリ位置を見るように構成される。
【００３９】
本プラットホームと従来のプラットホームとの間の重要な相違は、リセットの後に、主プロセッサが初めに信頼できる装置によって制御され、次いで、この装置が制御をプラットホームに特有のＢＩＯＳプログラムに引き渡し、次いで、このプログラムが、通常のようにすべての入力／出力装置を初期設定することである。ＢＩＯＳプログラムが実行された後に、制御は、通常のようにＢＩＯＳプログラムによってウインドウズＮＴ（Ｒ）のようなオペレーティングシステムプログラムに引き渡され、このＯＳは、一般にハードディスクドライブ（図示せず）から主メモリ２２へロードされる。
【００４０】
明らかに通常の手順からのこの変更は、業界基準の具体化に対する修正を必要とし、それにより主プロセッサ２１は、その第１の命令を受信するために信頼できる装置２４をアドレス指定するように命令される。この変更は、主プロセッサ２１への異なったアドレスをハードコーディング（hard-coding）することによって簡単に行なうことができる。代案として、信頼できる装置２４に、標準ＢＩＯＳプログラムアドレスを割り当てることができ、この場合、主プロセッサの構成を修正する必要はない。
【００４１】
ＢＩＯＳブートブロックが、信頼できる装置２４内に含まれることは、おおいに望ましい。このことは、完全性メトリックスの取得の破壊（このことは、不良なソフトウエアプロセスが存在する場合に、違った風に起こるかもしれない）を防止し、ＢＩＯＳが（正確な場合でさえ）オペレーティングシステムのために適切な環境を構築することに失敗する状況を作り出す不良なソフトウエアプロセスを防止する。
【００４２】
説明すべき好適な実施形態において、信頼できる装置２４が単一の別個のコンポーネントであるとはいえ、信頼できる装置２４の機能が、代わりにマザーボード上の複数の装置に分割されることができ、又はプラットホームの既存の標準的な１つ又は複数の装置内に統合さえできることが企図される。例えば、機能及びそれらの通信が破壊できないとすれば、信頼できる装置の１つ又は複数の機能を主プロセッサ自体内に統合することは実現可能である。しかしながら、このことは、おそらく信頼できる機能による単独の使用のためにプロセッサにおける分離したリード線を必要とするであろう。追加の、又は代案として、本実施形態において信頼できる装置は、マザーボード２０内に統合するように適合されたハードウエア装置であるとはいえ、信頼できる装置が、必要であればプラットホームに取り付けることができるドングルのような「移動可能な」装置として実施できることが予想される。信頼できる装置が統合されるか、又は移動可能であるかどうかは、設計上の選択事項である。しかし信頼できる装置が分離可能である場合、信頼できる装置とプラットホームとの間の論理結合を提供するための機構が存在しなくてはならない。
【００４３】
信頼できる装置２４は、図３に示すように、多数のブロックを含む。システムをリセットした後、信頼できる装置２４は、プラットホーム１０（システムクロック及びモニタ上のディスプレイを含む）のオペレーティングシステムが適正にセキュアの態様で走っていることを保証するために、セキュアブートプロセスを実行する。セキュアブートプロセスの間に、信頼できる装置２４は、コンピューティングプラットホーム１０の完全性のメトリックスを取得する。信頼できる装置２４は、セキュアデータ伝送、及び例えば暗号化／暗号解読及びサイン／証明を介してスマートカードと信頼できる装置２４との間の認証も行なうことができる。信頼できる装置２４は、ユーザインターフェースのロックのような種々のセキュリティー制御ポリシーを安全に強制することもできる。
【００４４】
特に、信頼できる装置２４は、信頼できる装置２４の全体的な動作を制御し、信頼できる装置２４の他の機能及びマザーボード２０上の他の装置と相互作用するようにプログラミングされたコントローラ３０、プラットホーム１０から完全性のメトリックスを取得するための測定機能３１、特定のデータにサインし、暗号化し又は暗号解読するための暗号機能３２、スマートカードを認証するための認証機能３３、及びマザーボード２０のデータバス２６、制御ライン２７及びアドレスライン２８に信頼できる装置２４をそれぞれ接続するための適切なポート（３６、３７＆３８）を有するインターフェース回路３４を含む。信頼できる装置２４におけるそれぞれのブロックは、（一般に、コントローラ３０を介して）信頼できる装置２４の適切な揮発性メモリ領域４及び／又は不揮発性メモリ領域３にアクセスする。さらに、信頼できる装置２４は、既知の態様で改竄に対する抵抗力を有するように設計される。
【００４５】
性能の理由で、信頼できる装置２４は、特定用途向け集積回路（ＡＳＩＣ）として実現することができる。しかしながら、融通性のため、信頼できる装置２４は、好適には適切にプログラミングされたマイクロコントローラである。ＡＳＩＣ及びマイクロコントローラは、両方ともマイクロエレクトロニクスの分野においてよく知られており、本明細書においてさらに詳細に考察しない。
【００４６】
信頼できる装置２４の不揮発性メモリ３に記憶されるデータの１つの項目は、証明３５０である。証明３５０は、信頼できる装置２４の少なくとも公開鍵３５１、及び信頼できる当事者（ＴＰ）によって測定されたプラットホーム完全性のメトリックスの認証された値３５２を含む。証明３５０は、信頼できる装置２４内に記憶される前に、ＴＰの秘密鍵を使用してＴＰによってサインされる。後の通信のセッション中に、プラットホーム１０のユーザは、認証された完全性のメトリックス３５２と取得された完全性のメトリックスを比較することによって、プラットホーム１０の完全性を確認することができる。一致する場合、ユーザは、プラットホーム１０が破壊されていないことを確信することができる。ＴＰの一般に使用できる公開鍵の情報は、証明３５０の簡単な検証を可能にする。不揮発性メモリ３も、アイデンティティ（ＩＤ）ラベル３５３を含む。ＩＤラベル３５３は、従来のＩＤラベル、例えば連続番号であり、このＩＤラベルは、ある種の状況内において一意である。ＩＤラベル３５３は、信頼できる装置２４に関連するデータに索引付け及びラベル付けのために一般に使用されるが、信頼できる状態下においてプラットホーム１０のアイデンティティを証明するためには、それ自体不十分である。
【００４７】
信頼できる装置２４は、関連するコンピューティングプラットホーム１０の完全性のメトリックスを確実に測定し又は取得する少なくとも１つの方法を備える。本実施形態において、完全性のメトリックスは、ＢＩＯＳメモリにおけるＢＩＯＳ命令の要約を発生することによって、測定機能３１によって取得される。このような取得された完全性のメトリックスは、前記のように確認された場合、プラットホーム１０の潜在的なユーザに、プラットホーム１０がハードウエアレベル又はＢＩＯＳプログラムレベルにおいて破壊されていないという高レベルの信頼を与える。他の既知のプロセス、例えばウイルスチェッカは、一般にオペレーティングシステム及びアプリケーションプログラムコードが破壊されていないことをチェックする立場にある。
【００４８】
測定機能３１は、信頼できる装置２４のハッシュプログラム３５４及び秘密鍵３５５を記憶するための不揮発性メモリ３、及び要約３６１の形態で取得された完全性のメトリックスを記憶するための揮発性メモリ４にアクセスする。適切な実施形態において、揮発性メモリ４は、プラットホーム１０にアクセスするために使用されることができる１つ又は複数の認証されたスマートカード１９の公開鍵及び関連するＩＤラベル３６０ａ−３６０ｎを記憶するために使用されてもよい。
【００４９】
１つの好適な実施形態において、要約（digest）、並びに完全性のメトリックスは、ブール値を含み、このブール値は、明らかになるであろう理由のために、測定機能３１によって揮発性メモリ４に記憶されている。
【００５０】
図４に関連して、今度は完全性のメトリックスを取得するための好適なプロセスを説明する。
【００５１】
ステップ４００において、スイッチオンで、測定機能３１は、信頼できる装置２４がアクセスされた第１のメモリであるかどうかを判定するために、データに対する主プロセッサ２１の活動、制御及びアドレスライン（２６、２７＆２８）をモニタする。従来の動作において、主プロセッサは、第１にＢＩＯＳプログラムを実行するために第１にＢＩＯＳメモリに命令される。しかしながら、本実施形態によれば、主プロセッサ２１は、メモリとして働く信頼できる装置２４に命令される。ステップ４０５において、信頼できる装置２４がアクセスされる第１のメモリである場合、ステップ４１０において、測定機能３１は、不揮発性メモリ３にブール値を書き込み、このブール値は、信頼できる装置２４がアクセスされる第１のメモリであったことを示す。そうでなければ、ステップ４１５において、測定機能は、ブール値を書き込み、このブール値は、信頼できる装置２４がアクセスされる第１のメモリではなかったことを示す。
【００５２】
信頼できる装置２４が第１にアクセスされるものでない場合、もちろん信頼できる装置２４が全くアクセスされない可能性が存在する。このことは、例えば主プロセッサ２１が第１にＢＩＯＳプログラムを走らせるように操作された場合である。これらの状況下で、プラットホームは、動作するが、完全性のメトリックスが利用できないので、要求に応じてその完全性を確認することはできない。さらに、ＢＩＯＳプログラムがアクセスされた後、信頼できる装置２４がアクセスされる場合、ブール値は、プラットホームの完全性の不足を明確に示す。
【００５３】
ステップ４２０において、主プロセッサ２１によってメモリとしてアクセスされたとき（又は場合）、主プロセッサ２１は、ステップ４２５において、測定機能３１から記憶された固有のハッシュ命令３５４を読取る。ハッシュ命令３５４は、主プロセッサ２１による処理のためにデータバス２６を介して渡される。ステップ４３０において、主プロセッサ２１は、ハッシュ命令３５４を実行してこれらを使用し、ステップ４３５において、ＢＩＯＳメモリ２９の内容を読取り、ハッシュプログラムにしたがってこれらの内容を処理することによって、ＢＩＯＳメモリ２９の要約を計算する。ステップ４４０において、主プロセッサ２１は、信頼できる装置２４における適切な不揮発性メモリ記憶位置４に計算された要約３６１を書き込む。次いで、ステップ４４５において、測定機能３１は、ＢＩＯＳメモリ２９におけるＢＩＯＳプログラムを呼び出し、従来の態様で実行を継続する。
【００５４】
明らかに、必要な信頼の範囲に応じて、完全性のメトリックスを計算することができる多数の異なった態様が存在する。ＢＩＯＳプログラムの完全性の測定は、プラットホームの基礎をなすプロセス環境の完全性に対する基本的なチェックを提供する。完全性のメトリックスは、ブートプロセスの妥当性に関して推論を可能にするこのような形態からなり、完全性のメトリックスの値は、プラットホームが正確なＢＩＯＳを使用してブートされるかどうかを確認するために使用することができる。必要に応じて、ＢＩＯＳ内の個々の機能ブロックは、これらのブロック自体の要約値を有することができ、全体的なＢＩＯＳの要約は、これらの個々の要約からなる要約である。このことは、ＢＩＯＳ動作のどの部分が意図した目的に対して重要であるか、及びどれが不適切であるか（この場合、個々の要約は、ポリシーのもとに動作の妥当性が確立できるように記憶されなければならない）を示すためにポリシーをイネーブルにする。
【００５５】
他の完全性のチェックは、プラットホームに取り付けられた種々の他のデバイス、コンポーネント又は装置が存在し、正確な動作順序にあることを確立することを含むことができる。１つの例において、ＳＣＳＩコントローラに関連するＢＩＯＳプログラムは、周辺装置との通信が信頼できることを保証するために確認することができる。別の例において、プラットホーム上の他の装置、例えばメモリ装置又はコプロセッサの完全性は、一貫した結果を保証するために固定のチャレンジ／レスポンスの相互作用を規定することによって、確認されることができる。信頼できる装置２４が分離できるコンポーネントである場合、相互作用のある種のこのような形態は、信頼できる装置２４とプラットホームとの間の適切な論理結合を提供するために望ましい。また、本実施形態において、信頼できる装置２４は、プラットホームの他の部分と通信するその主な手段としてデータバスも使用し、実現可能であるとはいえ、それほど便利ではないが、配線による経路又は光学経路のような代わりの通信経路を設けることは可能である。さらに、本実施形態において、信頼できる装置２４は、完全性のメトリックスを計算するように主プロセッサ２１に命令するとはいえ、他の実施形態において、信頼できる装置自体が１つ又は複数の完全性のメトリックスを測定するように構成されることは予想される。
【００５６】
好適には、ＢＩＯＳブートプロセスは、ブートプロセス自体の完全性を確認するための機構を含む。このような機構は、例えばIntelの草案「Wirerd For Management baseline specification v2.0-BOOT Integrity Service」からすでに知られており、ソフトウエア又はファームウエアをローディングする前に、そのソフトウエア又はファームウエアの要約を計算することを含む。このような計算された要約は、信頼できるエンティティによって提供される証明に記憶された値と比較され、その公開鍵は、ＢＩＯＳにとって既知である。次いで、ソフトウエア／ファームウエアは、計算された値が証明から予想された値と一致した場合にだけロードされ、証明は、信頼できるエンティティの公開鍵の使用によって有効と証明されている。そうでなければ、適切な例外取り扱いルーチンが呼び出される。
【００５７】
必要に応じて、計算されたＢＩＯＳの要約を受信した後、信頼できる装置２４は、証明におけるＢＩＯＳ要約の適切な値を検査することができ、計算された要約が適切な値と一致しない場合、ＢＩＯＳに制御を渡さない。追加の、又は代案として、信頼できる装置２４は、ブール値を検査することができ、信頼できる装置２４がアクセスされる第１のメモリではない場合、ＢＩＯＳに制御を戻さない。これらのいずれの場合にも、適切な例外取り扱いルーチンを呼び出すことができる。
【００５８】
図５は、ＴＰ、プラットホームに組み込まれた信頼できる装置２４、及び信頼できるプラットホームの完全性を確認したいユーザ（リモートプラットホームの）による動作のフローを示す。ユーザがローカルユーザである場合、図５に示されたものと実質的に同じステップが含まれていることが認められる。どちらにしても、ユーザは、一般に検証を実行するためにソフトウエアアプリケーションのある種の形態を信頼する。リモートプラットホーム又は信頼できるプラットホーム上でソフトウエアアプリケーションを走らせることは可能である。しかしながら、リモートプラットホーム上でさえ、ソフトウエアアプリケーションが何らかの方法で破壊され得る可能性が存在する。従って、高レベルの完全性に対して、ソフトウエアアプリケーションがユーザのスマートカード上に常駐し、このユーザが、検証のために適切なリーダにスマートカードを挿入することは好適である。特定の実施形態は、このような構成に関係する。
【００５９】
第１の例において、信頼できるプラットホームを保証するＴＰは、これを保証するか又はしないかどうかを決めるために、プラットホームのタイプを検査する。これはポリシーの問題であろう。すべてが良好ならば、ステップ５００において、ＴＰは、プラットホームの完全性メトリックスの値を測定する。次いで、ＴＰは、ステップ５０５において、プラットホームに対して証明を生成する。証明は、測定された完全性のメトリックスに信頼できる装置の公開鍵及び必要に応じてそのＩＤラベルを添付することによって、及びＴＰの秘密鍵を有するストリングにサインすることによって、ＴＰによって生成される。
【００６０】
信頼できる装置２４は、ユーザから受信されるいくらかの入力データを処理するためにその秘密鍵を使用することによってそのアイデンティティを結果として証明することができ、入力／出力対が秘密鍵の情報なしでは統計的に生成することができないように、出力データを生成することができる。従って、秘密鍵の情報は、この場合に、アイデンティティの基礎を形成する。明らかに、アイデンティティの基礎を形成するために、対称の暗号化を使用することが適している。しかしながら、対称の暗号化の使用の欠点は、ユーザがユーザの秘密を信頼できる装置と共有する必要があるという点にある。さらに、ユーザと秘密を共有する必要の結果として、対称の暗号化は、原則的にユーザにアイデンティティを証明するのに十分であるが、信頼できる装置又はユーザから発する証明を完全に確信することができない第三者にアイデンティティを証明することは不十分である。
【００６１】
ステップ５１０において、信頼できる装置２４は、信頼できる装置２４の適切な不揮発性メモリ記憶位置３へ証明３５０を書き込むことによって、初期化される。このことは、好適にはマザーボード２０にインストールされた後に、信頼できる装置２４とのセキュア通信によって行なわれる。信頼できる装置２４に証明を書き込む方法は、秘密鍵を書き込むことによってスマートカードを初期設定するために使用される方法と類似している。セキュア通信は、ＴＰだけに知られた「マスター鍵」によって支援され、これは、製造の間に信頼できる装置（又はスマートカード）に書き込まれ、信頼できる装置２４にデータを書き込むことを可能にするために使用され、マスター鍵の情報なしでの信頼できる装置２４へのデータの書き込みは不可能である。
【００６２】
プラットホームの動作中のいくらかの後の点において、例えばスイッチオンされ又はリセットされたとき、ステップ５１５において、信頼できる装置２４は、プラットホームの完全性のメトリックス３６１を取得して記憶する。
【００６３】
ユーザがプラットホームと通信することを望むとき、ステップ５２０において、ユーザは、乱数のようなナンス（nonce：その時限りの数）を作成し、ステップ５２５において、信頼できる装置２４にチャレンジする（プラットホームのオペレーティングシステム又は適切なソフトウエアアプリケーションは、チャレンジを認識し、これを一般にＢＩＯＳタイプの呼び出しを介して適切な様式で信頼できる装置２４に渡すように構成されている）。ナンスを用いて、信頼できないプラットホームによって古いが本物のサインの再生（「再生攻撃」と称する）によって欺かれることからユーザを保護する。ナンスを提供し、レスポンスを確認するプロセスは、よく知られた「チャレンジ／レスポンス」プロセスの例である。
【００６４】
ステップ５３０において、信頼できる装置２４は、チャレンジを受信し、適切なレスポンス（応答）を生成する。これは、測定された完全性のメトリックス及びナンスの要約、及び必要に応じてそのＩＤラベルであってもよい。次いで、ステップ５３５において、信頼できる装置２４は、その秘密鍵を使用して、要約にサインし、証明３５０が添付されたサイン済みの要約をユーザに返送する。
【００６５】
ステップ５４０において、ユーザは、チャレンジ・レスポンスを受信し、かつＴＰの周知の公開鍵を使用して証明を確認する。次いで、ユーザは、ステップ５５０において、証明から信頼できる装置２４の公開鍵を抽出し、これをチャレンジ・レスポンスからサインされた要約を暗号解読するために使用する。次いで、ステップ５６０において、ユーザは、チャレンジ・レスポンス内のナンスを確認する。次にステップ５７０において、ユーザは、チャレンジ・レスポンスから抽出した計算された完全性のメトリックスを、証明から抽出した適切なプラットホームの完全性のメトリックスと比較する。前述の検証ステップのいずれかが、ステップ５４５、５５５、５６５又は５７５において失敗した場合、すべてのプロセスは、それ以上の通信を行なうことなく、ステップ５８０において終了する。
【００６６】
すべてが良好であると仮定すれば、ステップ５８５及び５９０において、ユーザと信頼できるプラットホームは、他のデータのためのセキュア通信をセットアップするために他のプロトコルを使用し、この場合、プラットホームからのデータは、好適には信頼できる装置２４によってサインされる。
【００６７】
この検証プロセスのさらなる洗練が可能である。チャレンジャ（チャレンジの送信側）は、チャレンジを介して、プラットホームの完全性メトリックスの値及びこれを得る方法の両方に気付くことが望ましい。情報のこれらの部分の両方は、チャレンジャがプラットホームの完全性に関する適切な判断を行なうことができるようにするために望ましい。チャレンジャは、使用可能な多数の異なったオプションも有し、完全性のメトリックスが信頼できる装置２４において有効と認められることを受け入れることができ、又は代案として完全性のメトリックスの値がチャレンジャによって保持された値に等しい場合、プラットホームが完全性の関連するレベルを有することだけを受け入れることができる（又はこれら２つの場合に信頼の異なったレベルであることをそこに保持することができる）。
【００６８】
証明及びチャレンジ／レスポンスを使用して、及びこれらをアイデンティティを証明するために使用して、サインする技術は、セキュリティーの分野の当業者によく知られており、従って、本明細書においてさらに詳細に説明する必要がない。
【００６９】
ユーザのスマートカード１９は、コンピューティングエンティティから分離したトークン装置であり、この装置は、スマートカードリーダポート１９を介してコンピューティングエンティティと相互作用する。ユーザは、いくつかの異なった販売者又はサービスプロバイダによって発行されたいくつかの異なったスマートカードを有することができ、信頼できるコンポーネント及びスマートカードリーダを備えた、本明細書で説明したような複数のコンピューティングエンティティのうちのいずれか１つからインターネット又は複数のネットワークコンピュータにアクセスすることができる。ユーザが使用している個々のコンピューティングエンティティにおけるユーザの信頼は、ユーザの信頼できるスマートカードトークンとコンピューティングエンティティの信頼できるコンポーネントとの間の相互作用から発する。ユーザは、信頼できるコンポーネントの信頼性を確認するためにそれらの信頼できるスマートカードトークンを信頼する。
【００７０】
ユーザのスマートカード１９の処理部分６０は、図６に示される。図示されたように、ユーザのスマートカード１９の処理部分６０は、プロセッサ６１、メモリ６２及びインターフェース接触部６３の標準的な特徴を有する。プロセッサ６１は、後に説明するように、ユーザスマートカード１９の認証及びプラットホーム１０の検証を伴う簡単なチャレンジ／レスポンス動作のためにプログラミングされている。メモリ６２は、その秘密鍵６２０、その公開鍵６２８、（必要に応じて）ユーザプロファイル６２１、ＴＰの公開鍵６２２及びアイデンティティ６２７を含む。ユーザプロファイル６２１は、ユーザによって使用可能な許容できる補助のスマートカード２０  ＡＣ１−ＡＣｎ、及びユーザのための個々のセキュリティーポリシー６２４を記述する。それぞれの補助スマートカード２０に対して、ユーザプロファイルは、それぞれの識別情報６２３、スマートカード（１つが存在する場合）間の信頼構造６２５、及び必要に応じてスマートカードのタイプ又は形式６２６を含む。
【００７１】
ユーザプロファイル６２１において、それぞれの補助スマートカード２０のエントリーＡＣ１−ＡＣｎは、関連する識別情報６２３を含み、この情報は、カードのタイプに応じて変化する。例えば、キャッシュカードに対する識別情報は、一般に簡単な一連番号を含むが、それに対して、暗号カードについては、識別情報は、一般に暗号カードの公開鍵（又は証明）を含む（秘密鍵は、暗号カード自体に秘密に記憶されている）。
【００７２】
「セキュリティーポリシー」６２４は、補助スマートカード２０を使用する間に、プラットホーム１０上でユーザが有する許諾を命令する。例えば、ユーザインターフェースは、補助スマートカード２０の機能に依存して、補助スマートカード２０が使用中である間に、ロック可能又はロック解除可能である。追加の、又は代案として、プラットホーム１０上の所定のファイル又は実行可能なプログラムは、特定の補助スマートカード２０がどのように信頼されたかに依存して、アクセス可能又は不可能にすることができる。さらにセキュリティーポリシー６２４は、後に説明するように、「クレジット受領」又は「一時的な委任」のような補助スマートカード２０に対する特定の動作のモードを指定することができる。
【００７３】
「信頼構造」６２５は、補助スマートカード２０が、それ自体ユーザスマートカード１９を第１に再使用することなく、システム内にさらなる補助スマートカード２０を「導入」することができるかどうかを定義する。ここに詳細に説明した実施形態において、定義されただけの信頼構造は、ユーザスマートカード１９とユーザスマートカード１９によってプラットホーム１０に導入できる補助スマートカード２０との間にある。導入は、後に説明するように、「単一セッション」又は「複数のセッション」とすることができる。しかしながら、所定の補助スマートカード２０が、さらなる補助スマートカード２０を実際に導入することができない理由は存在しない。このことは、補助スマートカード２０が、導入することができるその又はそれぞれの補助スマートカードを記述するユーザプロファイルの均等物を有することを必要とする。
【００７４】
補助スマートカード２０の使用は、本発明の必須の特徴ではなく、本出願においてさらに説明されていない。補助スマートカードの使用は、２０００年３月５日に出願され、「Computing Apparatus and Method of Operating Computing Apparatus」と題する本出願人の同時係属国際特許出願第ＰＣＴ／ＧＢ００／００７５１号明細書の主題であり、これは、参照により本明細書に組み込まれる。
【００７５】
今度は、図７におけるフロー線図に関連してユーザスマートカード１９とプラットホーム１０との間の認証のための好適なプロセスを説明する。説明するように、プロセスは、便宜的にチャレンジ／レスポンスのルーチンを実行する。多数の使用可能なチャレンジ／レスポンスの機構が存在する。本実施形態において使用される認証プロトコルの具体化は、ＩＳＯ／ＩＥＣ９７９８−３に記載されたような相互（又は３ステップの）認証である。もちろん、他の認証手続き、例えばＩＳＯ／ＩＥＣ９７９８−３にも記載されたような２ステップ、又は４ステップを使用することができない理由は存在しない。
【００７６】
初めにユーザは、ステップ７００において、ユーザのユーザスマートカード１９をプラットホーム１０のスマートカードリーダ１２へ挿入する。あらかじめプラットホーム１０は、一般にその標準オペレーティングシステムの制御のもとで動作して、認証プロセスを実行し、この認証プロセスは、ユーザのユーザスマートカード１９をユーザが挿入することを待っている。このように、アクティヴとなるスマートカードリーダ１２から離れて、プラットホーム１０は、一般にユーザインターフェース（すなわちスクリーン、キーボード及びマウス）を「ロックすること」によってユーザをアクセス不能にする。
【００７７】
ユーザスマートカード１９をスマートカードリーダ１２へ挿入する場合、信頼できる装置２４は、ステップ７０５において、ユーザスマートカード１９にナンスＡを生成して送信することによって、ステップにおいて相互認証を試みることをトリガする。乱数のようなナンスは、信頼できない第三者によって古いが本物のレスポンスの再生（「再生攻撃」と称する）によって引き起こされる欺きから発信者（originator）を保護するために使用される。
【００７８】
レスポンスに関して、ステップ７１０において、ユーザスマートカード１９は、以下の連鎖を含むレスポンスを生成して返送する。すなわち、ナンスＡの平易なテキスト、ユーザスマートカード１９により生成される新しいナンスＢ、信頼できる装置２４のＩＤ３５３及びある種の冗長性；ユーザスマートカード１９の秘密鍵で平易なテキストにサインすることによって生成された平易なテキストのサイン；及びユーザスマートカード１９のＩＤ及び公開鍵を含む証明。
【００７９】
信頼できる装置２４は、ステップ７１５において、平易なテキストのサインを確認するために証明内の公開鍵を使用することによって、レスポンスを認証する。レスポンスが認証されない場合、ステップ７２０において、プロセスは終了する。レスポンスが認証される場合、ステップ７２５において、信頼できる装置２４は、以下の連鎖を含む別のレスポンスを生成して送信する。すなわち、ナンスＡの平易なテキスト、ナンスＢ、ユーザスマートカード１９のＩＤ６２７及び取得された完全性のメトリックス；信頼できる装置２４の秘密鍵を使用して平易なテキストにサインすることによって生成された平易なテキストのサイン；及び信頼できる装置２４の公開鍵及び認証された完全性のメトリックス（どちらもＴＰの秘密鍵によってサインされた）を含む証明。
【００８０】
ユーザスマートカード１９は、ＴＰの公開鍵を使用することにより、及び取得された完全性のメトリックスを認証された完全性のメトリックスと比較することにより、このレスポンスを認証し、この場合、ステップ７３０において、一致は、成功した検証を示す。さらなるレスポンスが認証されない場合、ステップ７３５において、プロセスは終了する。
【００８１】
手続きが成功した場合、信頼できる装置２４はユーザスマートカード１９を認証しており、かつユーザスマートカード１９は信頼できるプラットホーム１０の完全性を確認しており、ステップ７４０において、認証プロセスは、ユーザのためのセキュアプロセスを実行する。次いで、ステップ７４５において、認証プロセスは、インタバルタイマをセットする。その後、ステップ７５０において、適切なオペレーティング割り込みルーチンを使用して、認証プロセスは、タイマがいつ所定のタイムアウト期間を満たすか、又は超えるかを検出するために、周期的にインタバルタイマを処理する。
【００８２】
明らかに認証プロセス及びインタバルタイマは、セキュアプロセスと共に並行して走る。タイムアウト期間を満たし、又は超えた場合、ステップ７６０において、ユーザスマートカード１９自体を識別するためにユーザスマートカード１９のチャレンジを送信することによって、認証プロセスは、ユーザスマートカード１９を再認証するために信頼できる装置２４をトリガする。ステップ７６５において、ユーザスマートカード１９は、そのＩＤ６２７及びその公開鍵６２８を含む証明を返送する。ステップ７７０において、レスポンスがなかった場合（例えば、ユーザスマートカード１９が取り外されている結果として）、又は証明がもはや何らかの理由のために有効でなかった場合（例えば、ユーザスマートカードが異なったスマートカードに置き換えられている）、ステップ７７５において、セッションは、信頼できる装置２４によって終了される。そうでなければ、ステップ７７０において、ステップ７４５からのプロセスが、インタバルタイマのリセットにより繰り返される。
【００８３】
証明及びチャレンジ／レスポンスを使用して、及びアイデンティティを証明するためにこれらを使用するサインの技術は、セキュリティーの分野の当業者によく知られており、従って、本明細書おいてさらに詳細に説明しない。
【００８４】
今度は、図１５及び図８〜図１３を参照して、２０００年２月１５日に出願された国際特許出願第ＰＣＴ／ＧＢ００／００５０４号の主題であるシステムの特定の実施形態を説明する。このシステムは、本発明の用途に特に適している。図１５において、ホストコンピュータ１００は、主ＣＰＵ１０２、ハードディスクドライブ１０４、ＰＣＩネットワークインターフェースカード１０６及びＤＲＡＭメモリ１０８を有し、従来の（「通常の」）通信経路１１０（ＩＳＡ、ＥＩＳＡ、ＰＣＩ、ＵＳＢのような）をそれらの間に備える。ネットワークインターフェースカード１０６は、ホストコンピュータ１００の外側の世界との外部通信経路１１２も有する。
【００８５】
ネットワークインターフェースカード１０６は、「赤」及び「黒」データゾーン１１４、１１６に論理的に分割され、それらの間にインターフェース１１８を備える。赤ゾーン１１４において、データは、通常平易なテキストであり、検出不可能な変更及び望ましくない盗聴（eavesdropping）に弱くて無防備である。黒データゾーン１１６において、データは検出不可能な変更及び望ましくない盗聴から保護されている（好適には標準的な暗号機構によって暗号化される）。インターフェース１１８は、赤情報が黒ゾーン１１６に漏れないことを確実にする。インターフェース１１８は、好適には赤及び黒ゾーン１１４、１１６を分離するために、標準的な暗号方法及び電子分離技術を使用する。このような赤及び黒ゾーン１１４、１１６及びインターフェース１１８の設計及び構成は、セキュリティー及び電子の、特に軍事分野における当業者によく知られている。通常の通信経路１１０及び外部通信経路１１２は、ネットワークインターフェースカード１０６の黒ゾーン１１６に接続される。
【００８６】
ホストコンピュータ１００は、信頼できるモジュール１２０も含み、このモジュール１２０は、通常の通信経路１１０のみならず、相互に分離した追加の通信経路１２２（補助参照符号１２２ａ、１２２ｂ、１２２ｃ）にもより、ＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６の赤ゾーン１１４に接続される。一例として、信頼できるモジュール１２０は、メモリ１０８とのこのような分離した追加の通信経路１２２を持たない。
【００８７】
信頼できるモジュール１２０は、それぞれ追加の通信経路１２２ａ、１２２ｂ、１２２ｃを介して、ＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６の赤ゾーン１１４と通信できる。信頼できるモジュール１２０は、通常の通信経路１１０を介して、ＣＰＵ１０２、ハードディスクドライブ１０４、ネットワークインターフェースカード１０６の黒ゾーン１１６及びメモリ１０８とも通信できる。信頼できるモジュール１２０は、信頼できるモジュールに記憶されたポリシーの制御のもとで、信頼できるモジュール１２０及び追加の通信経路１２２を介して、ＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６の赤ゾーン１１４の間の所定情報を経路指定するために、１００ＶＧスイッチングセンタとして働くこともできる。信頼できるモジュール１２０は、暗号鍵を生成することもでき、それぞれ追加の通信経路１２２ａ、１２２ｂ、１２２ｃを介して、これらの鍵をＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６の赤ゾーン１１４に分配することもできる。
【００８８】
図８は、信頼できるモジュール１２０の物理的なアーキテクチャを示す。第１のスイッチングエンジン１２４は、追加の通信経路１２２ａ、１２２ｂ、１２２ｃに独立して接続され、信頼できるモジュール１２０の内部通信経路１２６にも接続される。このスイッチングエンジン１２４は、ポリシーの制御のもとで、信頼できるモジュール１２０へロードされる。信頼できるモジュール１２０の他のコンポーネントは次のとおりである：
・信頼できるモジュール１２０を管理し、信頼できるモジュール１２０のための汎用コンピューティングを実行するコンピューティングエンジン１２８、
・一時的なデータを記憶する揮発性メモリ１３０、
・長期にデータを記憶する不揮発性メモリ１３２、
・暗号化及び鍵生成のようなスペシャリスト暗号機能を実行する暗号エンジン１３４、
・暗号動作に主として使用される乱数源１３６、
・通常の通信経路１１０に信頼できるモジュール１２０を接続する第２のスイッチングエンジン１３８、及び
・改竄検出機構１４０、
これらすべては、信頼できるモジュール１２０の内部通信経路１２６に接続される。
【００８９】
信頼できるモジュール１２０は、図１〜図７に関連してさらに詳細に前述したように、信頼できる装置又はモジュール２４に基づいている。
【００９０】
暗号鍵生成及び分配に関して、信頼できるモジュール１２０は、乱数発生器１３６、ハッシュアルゴリズム及び他のアルゴリズムを使用して、暗号鍵を生成し、これらすべては、セキュリティーの分野の当業者に、それ自体周知である。信頼できるモジュール１２０は、通常の通信経路１１０というよりむしろそれぞれ追加の通信経路１２２ａ、１２２ｂ，１２２ｃを使用して、ＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６の赤ゾーン１１４に選択された鍵を分配する。鍵は、通常の通信経路１１０を介してプラットホームの内部モジュール１０２、１０４、１０６、１２０間の通信用に使用してもよい。他の一時的な鍵は、信頼できるモジュール１２０の外側に漏らしてはいけない長期のアイデンティティの秘密を使用するＳＳＬ初期接続手順段階を信頼できるモジュール１２０が完了した後に、ＳＳＬプロトコルを使用して外部データのバルク暗号化又は暗号解読のために使用することができる（ネットワークインターフェースカード１０６又はＣＰＵ１０２により）。他の一時的な鍵は、信頼できるモジュール１２０の外側に漏らしてはいけない長期の秘密を使用して信頼できるモジュール１２０の内部でこれらの一時的な鍵が作成され又は露呈された後、ハードディスクドライブ１０４に記憶されたデータのバルク暗号化又は暗号解読のために使用することができる（ハードディスクドライブ１０４又はＣＰＵ１０２により）。
【００９１】
信頼できるモジュール１２０は、暗号鍵の選択的な分配によってモジュール間の通信に関するポリシー制御を実施する。信頼できるモジュール１２０は、任意のモジュール対の間で共有のインフラストラクチャ１１０を介したセキュア通信を可能にする鍵の発行を拒絶することによって、これらのモジュール対の間の通信にポリシーの禁止を実施する。
【００９２】
図９は、信頼できるモジュール１２０が、ウオッチドッグ機能、及び追加の通信経路１２２に接続されたモジュール１０２、１０４、１０６の「ピング（ping）」を行なうことができるプロセスを示す。信頼できるモジュールは、チャレンジ１４２を生成し、それぞれ追加の通信経路１２２ａ、１２２ｂ、１２２ｃを使用して、チャレンジ１４２をＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６の赤ゾーン１１４に送信する。ＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６のそれぞれは、それぞれのモジュールがアクティヴであるかどうか、及び好適にはモジュールが適正に動作していることを伝えるために、それぞれの追加の通信経路１２２ａ、１２２ｂ、１２２ｃ上の、それぞれのレスポンス１４４ａ、１４４ｂ、１４４ｃによって応答する。信頼できるモジュール１２０は、レスポンス１４４ａ、１４４ｂ、１４４ｃを記録し、これらを、図１〜図７に関連して前述した完全性のチャレンジに対するそのレスポンスにおけるメトリクスとして使用する。
【００９３】
図１０は、信頼できるモジュール１２０が暗号能力を有するプラットホーム内の唯一のモジュールである場合、到来する外部セキュアメッセージを処理するプロセスを示す。外部メッセージ１４６は、外部通信経路１１２を使用して、ネットワークインターフェースカード１０６の黒ゾーン１１６によって受信される。ネットワークインターフェースカード１０６は、通常の通信経路１１０を使用して、信頼できるモジュール１２０に、何らかのデータ及び認証及び完全性チェックのリクエストを含むプロトコルデータ単位（unit）１４８（後にさらに詳細に説明する）を送信する。信頼できるモジュール１２０は、信頼できるモジュール１２０の外側に漏らしてはいけない信頼できるモジュール１２０の内部の長期的な鍵を使用して、認証及び完全性チェックを行ない、追加の通信経路１２２ｃを使用して、ネットワークインターフェースカード１０６の赤ゾーン１１４に、「ＯＫ」のしるしを含むプロトコルデータ単位１５０を送信する。次いで、ネットワークインターフェースカード１０６は、通常の通信経路１１０を使用して、信頼できるモジュール１２０に、何らかのデータ及び暗号解読のためのリクエストを含むプロトコルデータ単位１５２を送信する。信頼できるモジュール１２０は、信頼できるモジュール１２０内の一時的又は長期的な鍵のいずれかを使用して、データを暗号解読し、追加の通信経路１２２ａを使用して、暗号解読されたデータを含むプロトコルデータ単位１５４をＣＰＵ１０２に送信する。そして、ＣＰＵは、適切な動作を行なう。
【００９４】
図１１は、ＣＰＵ１０２が信頼できるモジュール１２０からポリシー判断をリクエストするプロセスを示す。このことは、例えば、ポリシーが所定のデータを操作できるか又はアプリケーションを実行できるかどうかを、ＣＰＵ１０２が判定しなければならないときに使用することができる。このことは、図１４〜図２０に関連してさらに後に説明する。ＣＰＵ１０２は、通常の通信経路１１０を使用して、信頼できるモジュール１２０にリクエストを含むプロトコルデータ単位１５６を送信する。信頼できるモジュール１２０は、信頼できるモジュール１２０内に記憶されたポリシーにしたがって、リクエスト１５６を処理する。信頼できるモジュール１２０は、信頼できるモジュール１２０から認証が到来したことをＣＰＵ１０２が確信できるために、追加の通信経路１２２ａを使用して、ＣＰＵ１０２にレスポンスを含むプロトコルデータ単位１５８を送信する。動作が認証された場合、ＣＰＵ１０２は、必要な動作を行なう。そうでなければ、プロセスを放棄する。
【００９５】
図１２は、モジュール１０２、１０４、１０６の間の保護された通信を介したポリシーの制御の例を示す。この例におけるすべての通信は、追加の通信経路１２２を使用する。ネットワークインターフェースカード１０６の赤ゾーン１１４は、ハードディスクドライブ１０４行きであるプロトコルデータ単位１６０を、追加のデータ経路１２２ｃで信頼できるモジュール１２０に送信する。ポリシーがこのことを許さない場合、信頼できるモジュール１２０は、追加のデータ経路１２２ｃでネットワークインターフェースカード１０６に、否定を含むプロトコルデータ単位１６２を送信することによって、リクエストを拒絶する。後に、ＣＰＵ１０２は、ハードディスクドライブにアドレス指定されるが追加のデータ経路１２２ｃで信頼できるモジュール１２０に送られたプロトコルデータ単位１６４を送信することによって、ハードディスクドライブ１０４からの影響されやすいデータをリクエストする。信頼できるモジュール１２０は、ポリシーがこのことを許すことをチェックする。これが行なわれた場合、信頼できるモジュール１２０は、追加のデータ経路１２２ｂでハードディスクドライブ１０４にプロトコルデータ単位１６４をリレーする。ハードディスクドライブ１０４は、データを提供し、これをプロトコルデータ単位１６６内において、追加のデータ経路１２２ｂで、ＣＰＵ１０２にアドレス指定された信頼できるモジュール１２０に返送する。信頼できるモジュール１２０は、ポリシーがこのことを許すことをチェックし、これが行なわれた場合、追加のデータ経路１２２ａでＣＰＵ１０２にプロトコルデータ単位１６６をリレーする。
【００９６】
図１３は、データが追加の通信経路１２２を介して渡されるデータプロトコル単位１７８のフォーマットを示す。データプロトコル単位１７８は、次のものを有する：
・プロトコルデータ単位のタイプを示す識別子フィールド１６８
・プロトコルデータ単位の長さを示す長さフィールド１７０
・プロトコルデータ単位の供給源を示すソースフィールド１７２
・プロトコルデータ単位の行き先を示すデスティネーションフィールド１７４
・その他、多くの場合にデータフィールド１７６を含む。
【００９７】
すべてのフィールドが常に必要というわけではない。例えば、信頼できるモジュール１２０のポリシーが、信頼できるモジュール１２０内に源を発しない鍵プロトコルデータ単位のリレーを禁止するものと仮定した場合、それ故にＣＰＵ１０２、ハードディスクドライブ１０４及びネットワークインターフェースカード１０６は、鍵が常に信頼できるモジュール１２０からのものであることを仮定することができる。従って、ソース及びデスティネーションフィールドは、鍵プロトコルデータ単位内に不要であり、このようなプロトコルデータ単位は、暗黙的に認証される。プロトコルデータ単位の設計及び構成及びそれ自体の使用は、通信の分野の当事者によく知られている。
【００９８】
今度は、前述のような信頼できるコンピューティングプラットホーム及び携帯型の信頼できるモジュール（一般にスマートカード）を採用するシステムに使用するために、本発明の特定の実施形態を説明する。図１４は、その目的のために信頼できるコンピューティングプラットホームの特に適切な形態を示しており、プラットホームは、図１５及び図７〜図１３に関連して前述したシステムの発展である。図１４において、ディスプレイ１２１は、前述のような追加の通信経路のうちの１つ１２２ｄにより、信頼できるモジュール１２０に接続される。これにより、オペレーティングシステムを含む通常のソフトウエアからの破壊の恐れなく、信頼できるモジュール１２０がディスプレイに確実に書き込むことを可能にする。また、ホストコンピュータ１００は、ビルトインスマートカードリーダ１０３を有するキーボード１０１にも接続されており、これらは、両方とも通常の通信経路１１０に接続される。スマートカードリーダ１０３へ挿入されたスマートカードは、追加の信頼できるモジュールであると考えることができ、従って信頼できるモジュール１２０と安全に通信することができる。
【００９９】
本発明によれば、データに対するアクセス制限のためのシステムが構成され得るいくつかの段階が存在し、これらの段階は、一方から他方への進行と考えることができる。第１の段階は、データに加えられる操作についてのチェック及び無許可の変更に対するチェックを行ない、かつ完全性チェックによるバイパスに対して保護された、一般的な操作保護ソフトウエアを使用することである。このような操作保護ソフトウエアは、信頼できるモジュール自体内で走る必要はない。好適な段階は、操作保護ソフトウエアが信頼できるモジュール内で走るこのようなシステムの論理的な拡張である。何らかのデータに操作を実行するためのリクエストは、好適にはアクセスプロファイルから信頼できるモジュールに送信される。信頼できるモジュールにおける操作保護ソフトウエアは、このようなリクエストを評価し、アクセスプロファイル内に定義された制限に基づいて、このことを許すかどうかを決定する。好適には、信頼できるモジュール及びプラットホームのオペレーティングシステムは、これらの間の専用通信経路を有し、この通信経路は、コンピュータプラットホームの他の部分（図１４の構造におけるように）にアクセス不可能である。好適なモデルにおいて、データにアクセスするためにセキュアオペレータからオペレーティングシステムへのリクエストは、好適には専用通信経路を介して供給される。
【０１００】
本発明による動作に適したアーキテクチャを今説明した。次に、このようなアーキテクチャにおける本発明の実施形態を実施するための方法を以下に説明する。特定のこれらの方法は、「Computer Platforms and Their Method of Operation」と題する、本出願と同一日付の本出願人の同時係属国際特許出願に記載されたライセンスチェックのための方法と類似であるか、又はこれと共通の特徴を有し、この同時係属国際特許出願は、１９９９年８月１３日に提出された欧州特許出願第９９３０６４１５．３の優先権を主張している。
【０１０１】
システムが動作する手続きは、開発者、クライアントのコンピューティングプラットホーム（信頼できるコンポーネント又はＴＣを保持する）及びスマートカードのような信頼できる携帯型のモジュール（これ以降、ＴＰＭと称する）の間において有効な特定の信頼できる関係におおいに依存する。もっとも一般的な場合、ＴＣは、データがＴＣに（又は同様にデータがＴＰＭに送信されるべきである場合、ＴＰＭに）送信することができるようにするために、データプロバイダで記録されなければならない。ＴＰＭも、ＴＰＭのユーザＩＤが、ＴＣに発行される前に、ライセンス内に組み込むことができるようにするために、ライセンスプロバイダ（おそらくデータプロバイダと同じエンティティ）で記録されなければならない。このことは、例えば事務所の環境においてＰＣを任意のユーザが共有する場合のような環境に適したモデルである。しかしながら、空港のような公共の場所においてマシンが使用可能である場合のように、クライアントマシンのユーザがあらかじめ知られていない状況において、このアプローチは不可能である。その代わりに、新しいＴＰＭをライセンスプロバイダが発行することによって、又はこの情報がエンドユーザによってすでに保持されたものにダウンロードされるかのいずれかによって、ライセンスは、ＴＰＭのユーザＩＤにカスタマイズされ、エンドユーザに与えられる必要がある。ライセンスは、適宜、ソフトウエアの名称及びバージョンに対する参照、及びエンドユーザによってソフトウエアが使用され得る方法を含む。データがこのような公衆の共有の信頼できる端末へインストールされる場合、必要に応じて異なったアクセスプロファイルがインストールでき、このアクセスプロファイルは、ここにインストールされたデータに対してデフォルト制限、又はオーバライディング制限、又は両方の組合せを指定することができる。例えば、文書のコピーは、特にエンドユーザがその個人のライセンス（そのＴＰＭ上に保持される）にこの許諾を持たないかぎり、禁止することができる。アクセスプロファイルが転送された（好適には暗号化されて）後、好適には完全性のチェックが行なわれ、プロファイルの要約が、ローカルＴＣ内に記憶される。
【０１０２】
図１６は、ＴＣ１１０３のコンポーネントの論理線図を示す。これらは、信頼できるコンポーネント１１０３内に、操作保護ソフトウエアコンポーネント１２１１及び他の操作保護データコンポーネント１２１０を含む。本発明の以下のコンポーネントは、前述のように保護された環境内において、及び好適にはＴＣ１１０３自体内において（当業者は、適切な保護された環境がＴＣ１１０３の外側に設けられ得ることを認識するとはいえ）走るべき操作保護コード１２１１、すなわちセキュアオペレータ１２０６及びデータプロテクタ１２０７である。ＴＣに記憶された操作保護データコンポーネントは、ＴＣの秘密鍵１２０１、信頼できるエンティティの公開鍵証明１２０２、開発者の公開鍵証明１２０３、ログ１２０４、及び信頼できるエンティティによってサインされたセキュアオペレータ１２０６及びデータプロテクタ１２０７のハッシュバージョン１２０５である。これらの論理コンポーネントの動作は、さらに後述する。
【０１０３】
信頼できるプラットホーム上にデータをインストールするべきときはいつでも、完全性及び他のチェックが、第三者からデータを安全にダウンロードし又はアップグレードするために実施される。データのインストールは、このような予想された完全性の値が一致した場合に、オペレーティングシステム（「ＯＳ」）を介してのみ進行する。このようなチェックが成功した場合（データ又はラッパが変更されていないという意味において）、データプロテクタは、ＴＣ（例えばスマートカード）内に、記憶されたデータに対する参照と共にデータ自体に添付されたデータ（及び任意のアクセスプロファイル）の要約を記憶する。必要に応じて、データの完全性のチェックサムのような完全性のチェックに使用される代替のデータ形態は、代わりとしてＴＣ（例えばスマートカード）に記憶される。
【０１０４】
図１７は、クライアントのコンピュータ内における保護されるソフトウエア又はデータ１３０６の構造を示す。クライアントのコンピュータ上のディジタルデータ１３０４は、アクセスプロファイル１３０３に関連しており、このアクセスプロファイル１３０３内にＴＣの公開鍵１３０２が記憶されている。このデータ構造１３０１は、データ構造１３０１のハッシュバージョン１３０５と共に記憶されている。このハッシュバージョン１３０５は、クリアリングハウス又は開発者の秘密鍵でサインされる。好適には、ハッシュバージョン１３０５は、ＴＣ自体内に記憶される（これはインストールプロセスの間にデータプロテクタ１２０７によって行なわれる）。
【０１０５】
図１８は、クライアントのプラットホーム上へソフトウエア又は他のデータをロードし又はアップグレードするためのフローチャートを示す。図１８に示されたステップは、データプロテクタ１２０７がＴＣ１１０３内で走らなくてもよい一般的な場合に適用されるが、データプロテクタがＴＣ１１０３内で走っている（さらに簡単な）場合に容易に適応することができる。
【０１０６】
インストールすべきデータは、ハッシュ値を計算されて送信側の秘密鍵によってサインされ、これは、送信側によってデータ自体に添付される。データを送信する前に、送信側が信頼できるコンピューティングプラットホームの完全性のチェックを要求することは（前述のように）、普通である。
【０１０７】
信頼できるコンピューティングプラットホームのオペレーティングシステム１４００が、ステップ１４０１において、データをインストールすることをリクエストする場合、データプロテクタ１２０７は、ステップ１４０２において、リクエストを受信し、ステップ１４０３において、送信側に対応する公開鍵証明を使用して、このメッセージのサインをチェックし、それにより送信側の認証をチェックする。
【０１０８】
認証が失敗した場合（ステップ１４０４）、データプロテクタ１２０７は、オペレーティングシステムにエラーメッセージを送り（ステップ１４０５）、オペレーティングシステム１４００は、適切なメッセージを表示させる。
【０１０９】
認証が成功した場合（ステップ１４０７）、データプロテクタ１２０７は、ＴＣ１１０３内において使用可能な暗号法能力を使用することによって、メッセージのハッシュを計算し、かつこれをデータに関連するメッセージハッシュと比較する（ステップ１４０８）。これは、メッセージの完全性のためにチェックする。
【０１１０】
ハッシュが同じである場合（ステップ１４０９）、データプロテクタ１２０７は、ＴＣ内にメッセージ１３０４及び対応するアクセス制御データ１３０３のハッシュ１３０５をセーブし（ステップ１４１１）、オペレーティングシステム１４００が通常のようにデータをインストールできることを示す（ステップ１４１０）。ＴＣは、インストールのログを作成し、これを関連するログファイル１２０４に加える（ステップ１４１２）。
【０１１１】
ハッシュが同じでない場合（ステップ１４１３）、このことは、データが変更されており、これをインストールすべきでないことを示す。データプロテクタ１２０７は、オペレーティングシステム１４００にエラーメッセージを送り（ステップ１４１４）、このオペレーティングシステムは、適切なメッセージをユーザに表示する（ステップ１４１５）。
【０１１２】
代替の可能性は、データが信頼できるコンピューティングシステムにおける後続の実行のために、ユーザのスマートカード又は他のＰＴＭに送られる場合である。これは、データプロテクタ１２０７と同様なその信頼できる部分コード内に含むために、図６にも示したようなスマートカードである。再びＰＴＭの完全性チェックは、一般にデータのインストールの前に必要であり、スマートカードは、データを記憶するためだけでなく、好適にはその信頼できる部分内にデータの要約及びアクセス制御データも記憶するための容量を必要とする。データのインストールは、そうでなければ本質的に図１８に示したようなものでよい。このような装置において、動作ログ１２０４に対する均等物がＰＴＭ上に、好適には信頼できる部分内に保持されることが望ましい。
【０１１３】
図１９は、制限されるコードの実行のために本発明の実施形態に関連するＰＴＭ１１０６とＴＣ１１０３との間の関係を示す。サインオンにおける相互の認証が存在し、ＴＣは、ＰＴＭのＩＤをチェックする（好適にはＳＣの公開鍵の証明を介して）、これは、図７に示したようなものであってもよい。そして、ユーザは、制限されるデータにアクセスすることを求める。ＴＣ上のセキュアオペレータ１２０６が、このデータにアクセスするために信頼できるコンピューティングプラットホームのオペレーティングシステム１４００に対して許諾を拒絶する前に、ＴＣは、ＰＴＭ上の関連するユーザライセンスに対するチェックを行なう。従って、オペレーティングシステム１４００は、データに対して信頼できる入力／出力プロセスを有しており、すなわち、当業者は、このことがいくつかの方法で達成できることを認識するであろうが、これらの方法のうちの特に有利な１つは、セキュアオペレータソフトウエア１２０６と別のソフトウエアにアクセスできないオペレーティングシステム１４００との間のセキュアハードウエア通信経路であり、これは、図１４のシステム内に存在する通信経路によって達成することができる。オペレーティングシステムの関連する部分は、ＢＩＳ上でチェックされ、すなわち、必要に応じてシステム完全性のチェックは、オペレーティングシステムのこの部分における完全性のチェックが失敗した場合、失敗に至る。制限されたデータのユーザアクセスに対する典型的なアプローチは、以下のようになっていてもよい。ユーザが多分別のプログラムを介して特定のデータへのアクセスを望む場合、セキュアオペレータ１２０６は、データに関連するアクセスプロファイルを使用する（アクセスプロファイルを使用するための代替物は、最後のサインオンの間に取得されるユーザＩＤによって、要求された許諾を実行することを許諾が可能にするかどうか、又はさもなければこのようにするための一般的な許諾が存在するかどうか（無関係又は同一）を確認するために、任意のライセンスに関するローカルに記憶された情報の使用を採用することができる）。好適には、データプロテクタ１２０７も、プロファイルの及びデータの完全性をチェックする。ＰＴＭユーザＩＤに対して有効な許諾が見つけられた（又は一般的な許諾が存在する）場合、許諾は、データにアクセスするためにオペレーティングシステム１４００に与えられる。そうでない場合、セキュアオペレータは、質問のデータに関するライセンスがＰＴＭ１１０６に記憶されているかどうかを見出すために、ＰＴＭ１１０６に質問する。そうでない場合、許諾は、操作を実施するためのオペレーティングシステムに対して否定される。しかしながら、ライセンスがＰＴＭ１１０６自体上に記憶されている場合、使用許諾情報は、共有セッション鍵及びチェックされた（及びおそらく記憶された）完全性を介して暗号化されていることによって検索される。ＰＴＭ１１０６上にライセンスが存在する場合でさえ、チェックは、現在の操作が有効であるかどうかを確認するために行なわれる必要があることがある。そうである場合、許諾は、データにアクセスするためにオペレーティングシステムに与えられ、そうでない場合、許諾は否定される。好適には、操作が行なわれる前に、ＴＣも、そのユーザＩＤに対応するＰＴＭが依然としてスマートカードリーダ内に挿入されていることをチェックする。
【０１１４】
アクセスプロファイル及びデータが変更された場合、何が対応するエントリーであるかがはっきりしないかもしれないので、ＴＣ内に記憶された要約に対してデータが一致することができないかもしれない。従って、やはり好適には、データプロテクタは、その中に記憶された対応する適切な要約が存在しない場合、どのデータも実行することを可能にしない。
【０１１５】
今度は、これらの原理にしたがった操作制限に対する特定のアプローチを説明する。
【０１１６】
図２０は、チェックのモデルを使用した操作制限に対するフローチャートを示しており、この場合、オペレーティングシステム１４００は、ＴＣ１１０３内にあるセキュアオペレータ１２０６と、及びそのデータに関して開発者によって許された操作を指定するデータの一部に関連するアクセスプロファイル（ＴＣの外側）と通信する。このことは、好適であるように、すべての操作保護ソフトウエアがＴＣ１１０３内に搭載されている場合に適切である。オペレーティングシステム１４００、操作保護ソフトウエア１２１１及びＴＣ１１０３の間の通信は、修正又はスプーフィングに対して保護されている必要がある。前述のように、１つのオプションは、信頼できるオペレーティングシステムの一部（データ入力及び出力を取り扱う部分）を作成することにあり、ＯＳのこの部分は、ＢＩＳ手続きの一部としてチェックされる完全性とすることができる。この部分が修正されている場合、プラットホームの完全性は失われる。別のオプションは、オペレーティングシステムと通信するときに、ＴＣからＣＰＵに信頼できる通信経路（図１４に示されたような）を使用することである。
【０１１７】
このアプローチは、個々のユーザがそれぞれユーザ自身の独自のＰＴＭを有する場合に有効である。しかしながら、これは、スマートカード又は他の適切なＰＴＭがグループのメンバの間で複製され又は共有される場合に使用されることもできる。
【０１１８】
オペレーティングシステム１４００、信頼できるコンポーネント１１０３、携帯型の信頼できるモジュール１１０６（ここにおいてスマートカードとして示され、ＳＣと省略される）及びアクセスプロファイル１３０３の間の適切な相互作用を有する図２０に示されたステップは、以下のとおりである。
【０１１９】
スマートカードを使用したサインオンの際、ＴＣとスマートカードとの間の相互認証が存在する（ステップ１６０１）。ＴＣは、（現在の）スマートカードＩＤを記憶し、これは、好適にはスマートカード公開鍵の証明である。
【０１２０】
ユーザが何らかのディジタルデータ上で操作の実施を望むとき、一般にオペレーティングシステム１４００は、データプロテクタ１２０７にメッセージを送信し（ステップ１６０２）、そして、このデータプロテクタは、ＴＣ内に記憶されたデータに、又はデータ及びアクセスプロファイルの発行に対応するハッシュ又はチェックサムが存在するかどうかをチェックする（ステップ１６０３）。
【０１２１】
このようなハッシュ又はチェックサムが存在しない場合、データプロテクタ１２０７は、メッセージをオペレーティングシステム１４００にリレーし、データは実行されない。
【０１２２】
このようなハッシュ又はチェックサムが存在する場合、セキュアオペレータ１２０６は、ＴＣ１１０３の秘密鍵を使用してサインされるデータ（例えば、そのタイトル）に対する参照と共に、乱数（ナンス）を送信することによってデータのその部分に対応するアクセスプロファイル１３０３に、チャレンジ／レスポンスを発行する（ステップ１６０４）。このようなチャレンジ／レスポンスのプロトコルは、この技術内においてよく理解されている（及び例えば、図５と図７に関連して前述した）。
【０１２３】
アクセスプロファイル１３０３は、ＴＣ１１０３の公開鍵を使用して、セキュアオペレータのチャレンジを確認して認証し、メッセージを戻す（ステップ１６０４）。認証が成功した場合、レスポンスは、ナンス及びデータに対する参照を組み込む。ナンスは、再生攻撃に対する保護を与えるために含まれる。認証が成功しなかった場合、又はこの特定のマシン上でデータ操作を行なうことを望むユーザが一人もいないので、アクセスプロファイルがエラーを通知した場合、セキュアオペレータは、メッセージをオペレーティングシステムにリレーし、データは、操作されない（ステップ１６０６）。
【０１２４】
セキュアオペレータは、スマートカードＩＤ及びＴＣＩＤに関して、アクセスプロファイル内に含まれた情報に依存した適切な動作チェックを行なう。さらなる情報が要求されていない場合、セキュアオペレータは、オペレーティングシステムがデータアクセスを実行することを可能にする（ステップ１６０７）。
【０１２５】
データに関連するアクセスプロファイルが存在しない場合、セキュアオペレータは、どのようにして続けるかのモデルを要求する。これは、スマートカード上でライセンスチェックを可能にすることができる。管理者によってその中にあらかじめセットされたデフォルトモデルは、動作に取り込んでもよい（スマートカードに対するライセンスチェックの後又はその代わりのいずれか）。これは、データアクセスを簡単に否定することができ、又はさらに精巧にすることができ、例えば管理者は、デフォルトによって削除が起こることがあるが、所定の回数より多くのコピーが起こることはないことを規定することを望んでもよい。
【０１２６】
明示的なアクセス許諾が与えられていない場合、又はおそらくライセンスがこのタイプのデータアクセスについてチェックされることができるというフラッグをアクセスプロファイルが含む場合、セキュアオペレータは、ＴＣの秘密鍵を使用してサインされたデータに対する参照と共に、ナンスを送信することによってスマートカードにチャレンジ／レスポンスを発行する（ステップ１６０８）。そして、スマートカードは、ＴＣの公開鍵を使用して、セキュアオペレータのチャレンジを確認して認証し（ステップ１６０９）、メッセージを返送する（ステップ１６１０）。スマートカードが関連するライセンスを含む場合、このメッセージは、ナンス、データに対する参照及びユーザアクセスライセンス情報を組み込む。そして、セキュアオペレータは、データアクセス動作を実施するためにこのライセンス内の適切な許諾についてチェックする。
【０１２７】
アクセスプロファイル内に有効な許諾が存在しない場合、セキュアオペレータは、オペレーティングシステム１４００に適切にエンドユーザに通知することを要求し、データは操作されない（ステップ１６１１）。
【０１２８】
スマートカードに対するライセンスチェックの結果として生じた、有効な許諾が存在する場合、セキュアオペレータは、オペレーティングシステムにデータ操作の実行を要求する（ステップ１６１２）。
【０１２９】
データ操作が許された場合、ＴＣ１１０３は、トランザクションの計測記録を取り、これを操作ログ１２０４に記憶するように適合され得る。
【０１３０】
ソフトウエアの著作権侵害に対向するため、信頼できるプラットホームの外側においてデータのコピーされたバージョンの使用に対する保護を与えることによって、今日のドングル技術において使用される技術に対応するいくつかのアプローチがある。第１に、データそれ自体が、暗号化されて送信でき、かつ記憶されることができ、暗号解読鍵は、アクセスプロファイル内に、又はスマートカード上に記憶されたライセンス内に記憶される。第２に、データアクセス許諾が与えられる前に及び／又はデータアクセス操作の間に、ＴＣＩＤ又はスマートカードＩＤ、あるいはＴＣ又はＳＣ内に記憶された鍵についてチェックするためにソースコードが使用可能な場合、ＡＰＣ呼び出しが、データ内へ挿入されることができる。開発者とのライセンス契約の外側にあるように、信頼できるプラットホーム上でデータがアクセスされ得ないことを確実にすることが唯一の目的である場合、このような測定は必要ない。
【０１３１】
ディジタルデータを実行するための許諾についてチェックを強制するための好適な機構において、信頼できるモジュール１２０（今度は図１４を考慮して）は、チェック許諾のために使用されるハードウエアを含み、及び／又はソフトウエアを記憶している。特に信頼できるモジュール１２０は、アプリケーションとコンピュータプラットホームのオペレーティングシステム（ＯＳ）との間のブリッジとして作用する。ＯＳは、信頼できるモジュール１２０と好適には通常のアプリケーション及び非ＯＳソフトウエアにアクセス不能なコンピュータプラットホームのＣＰＵ１０２との間の通信経路１２２を介して与えられる信頼できるモジュール１２０からのものを除いて、好適にはアプリケーションのロード又は実行のあらゆるリクエストを無視する。ホストコンピュータ上で動作するプロセスは、以下のとおりである。第１に、通常エンドユーザによる何らかの動作に応答して、アプリケーション又は他のデータを実行するために、信頼できるモジュール１２０における関連する動作保護コードに対する初期リクエストが存在する。信頼できるモジュール１２０内のセキュアオペレータは、前に詳述したように、適切なライセンスチェックを実行する。このチェックの結果が、データを実行するために適している場合、セキュアオペレータは、好適には通常のアプリケーション及び非ＯＳソフトウエアにアクセス不能なＣＰＵ１０２への通信経路１２２を介してこの情報をＯＳに伝達する。次に、ＯＳは、アプリケーション又はデータを実行するためにホスト上でプロセスを開始する。類似のプロセスは、データインストールが適切であることを示すために、データプロテクタがＯＳと通信するときに実施される。
【０１３２】
好適には信頼できるモジュールは、データを使用するためのオペレーティングシステムに対するリクエストをログ記録するように動作することができる。データ使用の計測のセキュリティーと信頼性は、信頼できるモジュール内にデータ使用を確実にログ記録することによって増強される。データ操作活動のログ記録は、ＴＣにおいて安全に行なわれて記録される。多数の異なる段階において、このことを実行するオプションが存在する。もっとも一般的なものは、セキュアオペレータによってデータが開かれ、コピーされ、プリントされ又は実行許可される段階にある。別の共通点は、データプロテクタが、インストールされるべきデータに対するその完全性のチェックを成功して完了し、及びこのデータをクライアントマシンへ成功してインストールした段階にある。アクセスプロファイル、セキュアオペレータ及びデータプロテクタは、完全性のチェックによって保護されているので、ログ記録プロセスをバイパスし又は編集するハッカーの試みに対して、何らかの保護が与えられる。このようなログは、セキュア検査情報、及び融通性のある使用許諾及び支払いモデルの可能性の両方を提供する。このような検査ログは、使用報告、及びマシンのユーザのＩＴ部門または会社の検査者のような第三者にアクセス可能な情報のための基礎をなしている。
【０１３３】
有利な点は、ＡＰＩ呼び出しは、信頼できるモジュール内における秘密の存在、信頼できるモジュールのアイデンティティ及び存在、又は携帯型の信頼できるモジュールに関連するユーザＩＤのようなデータ制限に関連する情報に対するチェックのために、信頼できるモジュールに対して又は操作保護コードに対して使用することができる。さらに、信頼できるモジュールは、コードの一部を実行するようにすることができる。信頼できるモジュールの強力な認証は、信頼できるモジュールの秘密暗号鍵および標準的な認証プロトコルを使用することによって可能である。
【０１３４】
このようにして（繰り返して言えば、通常のドングルのためにＡＰＩ呼び出しを使用する）、ＡＰＩ呼び出しの使用において開発者のための利益がある。ソフトウエアにＡＰＩ呼び出しを加える通常の利益は、ソフトウエアが特定のユーザにカスタマイズされることであり、従って実行可能な又はソースのコードが明確に得られる場合でさえ、別の認証されたユーザに対して、ただちに役に立つものではない。しかしながら、従来の構成において、このことは、開発者の一部に対して多大な努力を必要とすることがある。唯一の相違が異なった信頼できるモジュールＩＤである場合、コードの完全性チェックを介した保護によって、実質的な保護は、信頼できるモジュール自体内におけるコードの実行部分が個々のコードのカスタマイズを必要としないとき、開発者によるきわめてわずかな努力によって取得できる。
【０１３５】
この場合、開発者は、プラットホームの信頼できるモジュールにおける秘密（例えば、携帯型の信頼できるモジュールにおけるユーザＩＤ）の存在に関してチェックするためのソフトウエア内にＡＰＩ呼び出しを挿入することができる。一般に、セキュアオペレータは、概して実行時にチェックをさせるだけであり、コード内におけるさらなるＡＰＩ呼び出しは、所望の場合、コードの実行の間に種々の段階において行なうことができる。このことは、ソフトウエアに対する一般的な方法で（すなわちそれぞれのクライアントが同じバージョンを受信する）行なうことができ、正確な信頼できるモジュールＩＤのようなカスタマイズされた詳細は、後に追加されることができる。
【０１３６】
データプロテクタの役割は、データが安全にインストールされることを（図１８に関連して説明したように）確実にし、データに対する関連した操作の前にデータ及び任意の関連するアクセスプロファイルの両方の完全性をチェックすることでもある。この役割に対する論理的な拡張が存在し、これは、さらなる利益を提供する。データの完全性のチェックは、ラッパが取り除かれた場合にデータが実行されることに対してさらなる保護を与えるために、データプロテクタによってラッパなしのデータが実行されることを防止できるようなものであってもよい。必要に応じて、チェックは、データの複数のコピーが存在しないことを確実にするために、データプロテクタによっても行なわれ、このことは、例えばユーザのセット数を含む又は所定の時間にわたって実行する使用許諾モデルによって保護されるデータの使用の認証されていない拡張を防止する。複数のコピーが見つかった場合、ユーザは、このコピーの実行を可能にするために、１つを除いたすべてのコピーを消去するオプションを与えられる。
【０１３７】
システムの主要なコンポーネントは、データに関連するアクセスプロファイルである。これは、保護されるべきデータを指定し、ユーザがその特定のソフトウエア又はデータ上で実行することを許された操作も指定する。本発明の態様の操作において、アクセスプロファイルは、携帯型の信頼できるモジュール内に保持されるユーザＩＤが、データ上の所定の（又は任意の）操作を可能にするためにチェックされることを指定する。アクセスプロファイルは、携帯型の信頼できるモジュールがユーザライセンスについてチェックされることも可能にする（又はこれは、特定のデータに対して許されないかもしれない）。アクセスプロファイルの完全性がプラットホームの信頼できるコンポーネントによってチェックすることができる場合、アクセスプロファイルは、プラットホームの信頼できるモジュール内に、又は信頼できるプラットホームのどこか他に配置されることができる。アクセスプロファイルは、データに関連するライセンス又は暗号コンテナと同様である。
【０１３８】
この手続きに関する変形が存在し、この場合、プロファイルがさらに事前対応型であり、オペレーティングシステム１４００がデータに対する操作をリクエストするためにアクセスプロファイルに直接接触し、操作がプロファイル仕様に逆らうことがない場合にだけ、アクセスプロファイルが許諾によって応答する。同様に、スマートカードのユーザライセンスは、適切なチェックを開始することができる。
【０１３９】
このような構成において、これは、データに対する操作に関してオペレーティングシステムを制御するセキュアオペレータというよりはむしろアクセスプロファイルである。この場合、アクセスプロファイルにとって、プラットホームの信頼できるモジュール内に完全に又は部分的に（好適にはオペレーティングシステムへのセキュア通信経路と共に）配置されることは有利である。今度は、図２１に関連して、コンピュータプラットホーム上へのデータのインストール、及び携帯型の信頼できるモジュールを有するユーザによるデータの後続の実行を説明する。
【０１４０】
データに関する登録及び／又は支払いの際、ステップ２２０１において、クリアリングハウス又は開発者（正確な支払いモデルにしたがって）は、スマートカードＩＤ（やがて携帯型の信頼できるモジュールに記憶されるべき）及び購入されたデータにしたがって更新されるべきデータに対応するライセンスを認証する。（これに先立って、相互認証（おそらくオフライン）があり、これらの本体間の公開鍵証明は交換されており、さもなければ開発者は、携帯型の信頼できるモジュールを含むスマートカードを実際に発行する）。クリアリングハウス又は開発者は、（カスタマイズされた）アクセスプロファイルに関連してデータをクライアントに送信する（ステップ２２０２）。携帯型の信頼できるモジュールの公開鍵が、アクセスプロファイルへ挿入される（代案として、共有の鍵が、セキュアオペレータとスマートカード携帯型の信頼できるモジュールとの間にセットアップされる）ように、アクセスプロファイルは、カスタマイズされる。データ及びアクセスプロファイルの両方は、ハッシュ値を計算されてクリアリングハウス／開発者の秘密鍵によってサインされ、これに対応する公開鍵は、スマートカード上の携帯型の信頼できるモジュール内に記憶される。保護されるべきあらゆるメッセージの内容は、ランダムに発生される秘密鍵（ＤＥＳ鍵のような）を使用して暗号化され、標準的なプロトコルにしたがって意図した受取側の公開鍵を使用して暗号化された公開鍵（例えば、ＲＳＡ）である対称鍵と共に転送される。データがコンピュータプラットホームに転送されると、同様なプロセスは、データの転送に対して行なわれ、開発者の公開鍵は、コンピュータプラットホームの信頼できるモジュールに送信される。
【０１４１】
データプロテクタは、データがコンピュータプラットホームに転送されるときにはいつでも、データの完全性をチェックし、インストールの際（ステップ２２０３）、パッケージは、ハッシュ及び（プラットホームの信頼できるコンポーネントにおける公開鍵を使用して）暗号解読されたサインとの比較によって確認され、ハッシュは、プラットホームの信頼できるコンポーネント内に記憶される。予想されたものでないディジタルサインが、生まれた場合、データもアクセスプロファイルもロードされない。
【０１４２】
前述のステップは、データのインストールに関しており、以下のステップは、データへのアクセスを制限するためのシステムの使用に関する。スマートカードを使用してサインオンする際、プラットホームの信頼できるコンポーネントとスマートカードの携帯型の信頼できるモジュールとの間に相互認証が存在する（ステップ２２０４）。
【０１４３】
プラットホームの信頼できるコンポーネントは、（現在の）スマートカードユーザＩＤを受信して記憶する（ステップ２２０５）。
【０１４４】
ユーザがデータの使用を望むとき、コンピュータプラットホームのオペレーティングシステムは、そのデータに対応するアクセスプロファイルに動作を要求する。アクセスプロファイルは、データに対する参照と共に、乱数（ナンス）を送信することによりセキュアオペレータにチャレンジ／レスポンスを発行する（ステップ２２０６）。
【０１４５】
セキュアオペレータは、スマートカードＩＤを使用して、さもなければスマートカード上に記憶された何らかの情報を取得することによって、データに対する適切なチェックを行なう（ステップ２２０７）。例えば、セキュアオペレータは、プラットホームの信頼できるコンポーネント内に記憶されたプロファイルにおいて、挿入されたスマートカードのユーザＩＤにしたがってデータが使用されることを許諾されているかどうかをチェックすることができ、又はプラットホームの信頼できるコンポーネント内に記憶されたプロファイルにしたがって信頼できるプラットホーム自体において（ユーザに関係なく）データが使用されることを許諾されているかどうかをチェックすることができ、又はアクセスされるべきデータに関連して内部に記憶された何らかのライセンスのさらなる詳細を取得するためにスマートカードを調べることができる。この場合、セキュアオペレータは、プラットホームの信頼できるコンポーネントの秘密鍵を使用してサインされたデータに対する参照と共に、ナンスを送信することによってスマートカードにチャレンジ／レスポンスを発行する。次に、スマートカードは、プラットホームの信頼できるコンポーネントの公開鍵を使用してセキュアオペレータのチャレンジを確認して認証し、ナンス、データに対する参照及びユーザアクセスライセンス情報を組み込んだメッセージを返送する。そして、セキュアオペレータは、データアクセス動作を実行するために、このライセンス内の適当な許諾についてチェックする。
【０１４６】
有効なライセンスが存在しない場合、セキュアオペレータは、エラーメッセージを返送し（ステップ２２０８）、このエラーメッセージからアクセスプロファイルは、適切にオペレーティングシステムを使用許諾して通知することによって、問題の正確なタイプを判定することができる。有効なライセンスが存在する場合、セキュアオペレータは、コンピュータプラットホームの信頼できるコンポーネントの秘密鍵を使用してサインされて暗号化されたナンス及びデータ参照を組み込んだメッセージを返送する。
【０１４７】
アクセスプロファイルは、コンピュータプラットホームの信頼できるコンポーネントの公開鍵を使用して、セキュアオペレータのレスポンスが適正であるかどうかを確認し（ステップ２２０９）、データを実行するためにオペレーティングシステムに呼び出しを渡すか、又は適宜にオペレーティングシステムにエラーメッセージを送信する。
【０１４８】
データへのアクセスは、ログ記録される（ステップ２２１０）。ログは、有利にはコンピュータプラットホームの信頼できるコンポーネント内に保持されるが、追加的に又はその代わりにスマートカード内に保持されてもよく、適切に更新される。
【０１４９】
当業者は、特許請求の範囲に記載したような本発明の範囲から逸脱することなく、前述の実施形態に多くの変形を行なうことができることを容易に認識するであろう。
【図面の簡単な説明】
【図１】
本発明の実施形態を実施することができるシステムを示す線図である。
【図２】
スマートカードリーダを介してスマートカードと、及びモジュールのグループと通信するために構成された信頼できる装置を含むマザーボードを示す線図である。
【図３】
信頼できる装置をさらに詳細に示す線図である。
【図４】
コンピューティング装置の完全性メトリックスの取得に含まれるステップを示すフロー線図である。
【図５】
信頼できるコンピューティングプラットホームとその完全性を確認する信頼できるプラットホームを含むリモートプラットホームとの間の通信の確立に含まれるステップを示すフロー線図である。
【図６】
本発明の実施形態にしたがって使用するためのユーザスマートカードの使用できる部分を示す線図である。
【図７】
スマートカードとホストプラットホームを相互に認証するプロセスを示すフロー線図である。
【図８】
図１５のシステムにおける信頼できるモジュールの略ブロック図である。
【図９】
内部に使用された種々の通信方法を示すために図１５のシステムの一部を示す図である。
【図１０】
内部に使用された種々の通信方法を示すために図１５のシステムの一部を示す図である。
【図１１】
内部に使用された種々の通信方法を示すために図１５のシステムの一部を示す図である。
【図１２】
内部に使用された種々の通信方法を示すために図１５のシステムの一部を示す図である。
【図１３】
図１５のシステムに使用されるプロトコルデータユニットのフォーマットを示す図である。
【図１４】
本発明の特定の実施形態を説明するために使用される図１５のシステムに対する修正案を示す図である。
【図１５】
別の特許出願（国際特許出願第ＰＣＴ／ＧＢ００／００５０４号、２０００年２月１５日出願）の主題であるホストコンピュータシステムの略ブロック図である。
【図１６】
図１４のシステムにおける信頼できるモジュールの論理コンポーネントの線図である。
【図１７】
図１４のシステムにおいて保護されるソフトウエア又はデータの構造を示す図である。
【図１８】
図１４のシステムにおけるソフトウエア又は別のデータのインストール又はアップグレードを示すフローチャートである。
【図１９】
本発明の実施形態によるシステムにおける携帯型の信頼できる装置と信頼できるプラットホームとの間の関係を示す線図である。
【図２０】
使用許諾の制限を強制するように図１４のシステムにおける保護されるデータ又はソフトウエアの使用を示すフローチャートである。
【図２１】
本発明の別の実施形態において、図１４のシステム上のソフトウエア又は別のデータのインストール及び使用を示すフローチャートである。
【誤訳訂正２】
【訂正対象書類名】図面
【訂正対象項目名】図５
【訂正方法】変更
【訂正の内容】
【図５】
2003507784.tif 000001
【誤訳訂正３】
【訂正対象書類名】図面
【訂正対象項目名】図７
【訂正方法】変更
【訂正の内容】
【図７】
2003507784.tif 000002
【誤訳訂正４】
【訂正対象書類名】図面
【訂正対象項目名】図８
【訂正方法】変更
【訂正の内容】
【図８】
2003507784.tif 000003
【誤訳訂正５】
【訂正対象書類名】図面
【訂正対象項目名】図９
【訂正方法】変更
【訂正の内容】
【図９】
2003507784.tif 000004
【誤訳訂正６】
【訂正対象書類名】図面
【訂正対象項目名】図１０
【訂正方法】変更
【訂正の内容】
【図１０】
2003507784.tif 000005
【誤訳訂正７】
【訂正対象書類名】図面
【訂正対象項目名】図１１
【訂正方法】変更
【訂正の内容】
【図１１】
2003507784.tif 000006
【誤訳訂正８】
【訂正対象書類名】図面
【訂正対象項目名】図１２
【訂正方法】変更
【訂正の内容】
【図１２】
2003507784.tif 000007
【誤訳訂正９】
【訂正対象書類名】図面
【訂正対象項目名】図１４
【訂正方法】変更
【訂正の内容】
【図１４】
2003507784.tif 000008
【誤訳訂正１０】
【訂正対象書類名】図面
【訂正対象項目名】図１５
【訂正方法】変更
【訂正の内容】
【図１５】
2003507784.tif 000009
【誤訳訂正１１】
【訂正対象書類名】図面
【訂正対象項目名】図１６
【訂正方法】変更
【訂正の内容】
【図１６】
2003507784.tif 000010
【誤訳訂正１２】
【訂正対象書類名】図面
【訂正対象項目名】図１７
【訂正方法】変更
【訂正の内容】
【図１７】
2003507784.tif 000011
【誤訳訂正１３】
【訂正対象書類名】図面
【訂正対象項目名】図１８
【訂正方法】変更
【訂正の内容】
【図１８】
2003507784.tif 000012
【誤訳訂正１４】
【訂正対象書類名】図面
【訂正対象項目名】図１９
【訂正方法】変更
【訂正の内容】
【図１９】
2003507784.tif 000013
【誤訳訂正１５】
【訂正対象書類名】図面
【訂正対象項目名】図２０のその１
【訂正方法】変更
【訂正の内容】
【図２０のその１】
2003507784.tif 000014