(57)【特許請求の範囲】
【請求項１】
コンピューティング・システムのセキュリティ・コプロセッサ・モジュール内の局所性を向上させる方法であって、
動作を実行する旨の、前記セキュリティ・コプロセッサ・モジュールによる要求を受け取る工程と、
前記セキュリティ・コプロセッサ・モジュールのセキュリティ・モードを判定する工程と、
前記セキュリティ・モードが通常である場合、前記コンピューティング・システムのマシン・モードを検査し、前記マシン・モードが許容可能である場合に前記要求された動作を実行する工程と、
前記セキュリティ・モードが拡張である場合、セキュリティ・ポリシーを取得し、現在のトラステッド時間及び前記コンピューティング・システムの現在の地理的場所を取得し、前記現在のトラステッド時間、前記現在の地理的場所、並びに、前記セキュリティ・ポリシーに規定された地理的場所及びトラステッド時間属性エントリに応じて、前記要求された動作が許容可能であるかを判定し、前記要求された動作が許容可能である場合に前記コンピューティング・システムの前記マシン・モードを検査し、前記マシン・モードが許容可能である場合に前記要求された動作を実行する工程と
を含む方法。
【請求項２】
請求項１記載の方法であって、地理的場所のエントリを前記セキュリティ・ポリシーに追加し、前記現在の地理的場所を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定する工程を更に含む方法。
【請求項３】
請求項１記載の方法であって、トラステッド時間のエントリを前記セキュリティ・ポリシーに追加し、前記トラステッド時間を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定する工程を更に含む方法。
【請求項４】
請求項１記載の方法であって、ハードウェア・ベンダ列のエントリを前記セキュリティ・ポリシーに追加し、前記ハードウェア・ベンダ列を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定する工程を更に含む方法。
【請求項５】
請求項４記載の方法であって、前記ハードウェア・ベンダ列を取得し、前記ハードウェア・ベンダ列及び前記セキュリティ・ポリシーに規定された前記ハードウェア・ベンダ列のエントリに応じて前記要求された動作が許容可能であるかを判定する工程を更に含む方法。
【請求項６】
請求項５記載の方法であって、前記ハードウェア・ベンダ列は、前記コンピューティング・システムのプロセッサのベンダを識別する方法。
【請求項７】
請求項１記載の方法であって、環境要因のエントリを前記セキュリティ・ポリシーに追加し、１つ又は複数の環境要因を検出するための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定する工程を更に含む方法。
【請求項８】
請求項７記載の方法であって、１つ又は複数の現在の環境要因を取得し、前記セキュリティ・ポリシーに規定された環境要因エントリ、及び前記現在の１つ又は複数の環境要因に応じて前記要求された動作が許容可能であるかを判定する工程を更に含む方法。
【請求項９】
請求項８記載の方法であって、前記１つ又は複数の環境要因は、前記コンピューティング・システムの温度、加速度、キャパシタンス、高度、及び向きのうちの１つ又は複数を含む方法。
【請求項１０】
請求項１記載の方法であって、前記セキュリティ・コプロセッサ・モジュールはトラステッド・プラットフォーム・モジュール（ＴＰＭ）を備える方法。
【請求項１１】
複数のマシン命令を有するマシン読み取り可能な媒体であって、前記命令が、コンピューティング・システム内のセキュリティ・コプロセッサ・モジュールによって実行されると、前記命令は、
動作を実行する旨の、前記セキュリティ・コプロセッサ・モジュールによる要求を受け取る機能と、
前記セキュリティ・コプロセッサ・モジュールのセキュリティ・モードを判定する機能と、
前記セキュリティ・モードが通常である場合、前記コンピューティング・システムのマシン・モードを検査し、前記マシン・モードが許容可能である場合に前記要求された動作を実行する機能と、
前記セキュリティ・モードが拡張である場合、セキュリティ・ポリシーを取得し、現在のトラステッド時間及び前記コンピューティング・システムの現在の地理的場所を取得し、前記現在のトラステッド時間、前記現在の地理的場所、並びに、前記セキュリティ・ポリシーに規定された地理的場所及びトラステッド時間属性エントリに応じて、前記要求された動作が許容可能であるかを判定し、前記要求された動作が許容可能である場合に前記コンピューティング・システムの前記マシン・モードを検査し、前記マシン・モードが許容可能である場合に前記要求された動作を実行する機能と
により、前記コンピューティング・システムの前記セキュリティ・コプロセッサ・モジュールにおける局所性を拡充することができるマシン読み取り可能な媒体。
【請求項１２】
請求項１１記載のマシン読み取り可能な媒体であって、地理的場所のエントリを前記セキュリティ・ポリシーに追加し、前記現在の地理的場所を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定するための命令を更に含むマシン読み取り可能な媒体。
【請求項１３】
請求項１１記載のマシン読み取り可能な媒体であって、トラステッド時間のエントリを前記セキュリティ・ポリシーに追加し、前記トラステッド時間を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定するための命令を更に含むマシン読み取り可能な媒体。
【請求項１４】
請求項１１記載のマシン読み取り可能な媒体であって、ハードウェア・ベンダ列のエントリを前記セキュリティ・ポリシーに追加し、前記ハードウェア・ベンダ列を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定するための命令を更に含むマシン読み取り可能な媒体。
【請求項１５】
請求項１４記載のマシン読み取り可能な媒体であって、前記ハードウェア・ベンダ列を取得し、前記ハードウェア・ベンダ列及び前記セキュリティ・ポリシーに規定された前記ハードウェア・ベンダ列のエントリに応じて前記要求された動作が許容可能であるかを判定するための命令を更に含むマシン読み取り可能な媒体。
【請求項１６】
セキュリティ・モード、及び
セキュリティ・ポリシーを備えたコンピューティング・システムのセキュリティ・コプロセッサ・モジュールであって、
前記セキュリティ・コプロセッサ・モジュールは、
動作を実行する旨の、前記セキュリティ・コプロセッサ・モジュールによる要求を受け取る機能と、
前記セキュリティ・コプロセッサ・モジュールのセキュリティ・モードを判定する機能と、
前記セキュリティ・モードが通常である場合、前記コンピューティング・システムのマシン・モードを検査し、前記マシン・モードが許容可能である場合に前記要求された動作を実行する機能と、
前記セキュリティ・モードが拡張である場合、セキュリティ・ポリシーを取得し、現在のトラステッド時間及び前記コンピューティング・システムの現在の地理的場所を取得し、前記現在のトラステッド時間、前記現在の地理的場所、並びに、前記セキュリティ・ポリシーに規定された地理的場所及びトラステッド時間属性エントリに応じて、前記要求された動作が許容可能であるかを判定し、前記要求された動作が許容可能である場合に前記コンピューティング・システムの前記マシン・モードを検査し、前記マシン・モードが許容可能である場合に前記要求された動作を実行する機能と
を行うよう構成されたセキュリティ・コプロセッサ・モジュール。
【請求項１７】
請求項１６記載のセキュリティ・コプロセッサ・モジュールであって、前記セキュリティ・コプロセッサ・モジュールは、地理的場所のエントリを前記セキュリティ・ポリシーに追加し、前記現在の地理的場所を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定する機能を行うよう更に構成されたセキュリティ・コプロセッサ・モジュール。
【請求項１８】
請求項１６記載のセキュリティ・コプロセッサ・モジュールであって、前記セキュリティ・コプロセッサ・モジュールは、トラステッド時間のエントリを前記セキュリティ・ポリシーに追加し、前記トラステッド時間を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定する機能を行うよう更に構成されたセキュリティ・コプロセッサ・モジュール。
【請求項１９】
請求項１６記載のセキュリティ・コプロセッサ・モジュールであって、前記セキュリティ・コプロセッサ・モジュールは、ハードウェア・ベンダ列のエントリを前記セキュリティ・ポリシーに追加し、前記ハードウェア・ベンダ列を得るための機能を前記コンピューティング・システムが提供する場合に前記セキュリティ・コプロセッサ・モジュールの前記セキュリティ・モードを拡張に設定する機能を行うよう更に構成されたセキュリティ・コプロセッサ・モジュール。
【請求項２０】
請求項１７記載のセキュリティ・コプロセッサ・モジュールであって、前記セキュリティ・コプロセッサ・モジュールは、前記ハードウェア・ベンダ列を取得し、前記ハードウェア・ベンダ列及び前記セキュリティ・ポリシーに規定された前記ハードウェア・ベンダ列のエントリに応じて前記要求された動作が許容可能であるかを判定する機能を行うよう更に構成されたセキュリティ・コプロセッサ・モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ・セキュリティ及びトラステッド・コンピューティングに関し、特に、コンピューティング・システム環境における局所性の拡張に関する。
【背景技術】
【０００２】
現在のセキュリティ・コプロセッサ・モジュール（例えば、トラステッド・プラットフォーム・モジュール（ＴＰＭ）など）は、局所性の概念に対するサポートを提供する。局所性は通常、システムの「マシン・モード」に対応するコンピューティング・システムに存在しているソフトウェア環境の識別情報が存在しているということを示す。マシン・モードは、システム上で実行されるマイクロコードのバージョン、通常のマクロコード（例えば、基本入出力システム（ＢＩＯＳ）や静的オペレーティング・システム（ＯＳ））、トラステッド動作環境（例えば、トラステッド実行手法をサポートするための第三者からのハイパバイザ）、及び他のハードウェア起動インディシアのうちの１つ又は複数を含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
セキュリティ・コプロセッサ・モジュールは通常、コンピューティング・システム上で実行されるソフトウェアのセキュリティ動作を提供するために使用される。マシン・モードとソフトウェア環境とのバインディングは、更なるセキュリティを提供するために使用することが可能である。しかし、マシン・モード・バインディングのみを使用した、システム動作の制限は、一部の場合には、十分でないことがあり得る。
【課題を解決するための手段】
【０００４】
本発明の構成及び利点は、本発明の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００５】
【図１】本発明の実施例による、拡張された局所性のための、セキュリティ・コプロセッサへのデータ入力の図である。
【図２】本発明の実施例による、セキュリティ・コプロセッサ・モジュールを有するプロセッサ・システムを示す図である。
【図３】本発明の実施例による、セキュリティ・コプロセッサの初期化を示すフロー図である。
【図４】本発明の実施例による、セキュリティ・コプロセッサ・モジュールのセキュリティ・ポリシー処理を示すフロー図である。
【発明を実施するための形態】
【実施例】
【０００６】
トラステッド・コンピューティング・システムにおいて提供される構成の１つは、コンピューティング・システムの現在の環境の測定を得ることである。この測定は、ファームウェア及びオペレーティング・システム（ＯＳ）の暗号ハッシュを少なくとも部分的に含む。測定は、他のソフトウェア構成部分のハッシュも含み得る。測定は、密閉型記憶装置に使用することができ、環境に関して外部の関係者に報告するために使用することも可能である。現在の環境は、マシン・モードとしても知られていることがあり得る。
【０００７】
本発明の実施例は、コンピューティング・システムの現在の環境の測定に更なる属性を含めることにより、マシン・モードに基づいて局所性の概念及びセキュリティ・コプロセッサ・モジュールを拡充する。更なる属性を使用した結果は、コンピューティング・システムの全体のセキュリティ及び制御を向上し得るということである。本発明の実施例では、セキュリティ・コプロセッサ・モジュールは、測定を判定する場合に更なる属性を処理する。このコンテキストにおける測定の目的のための更なる属性は、コンピューティング・システム上で実行する他のソフトウェア（例えば、アプリケーション・プログラム、ＯＳ、又はＢＩＯＳ）によって処理されない。これにより、脆弱性が高い高位のソフトウェアに、更なる属性を使用して測定に参加させ、ハッカーに対して、考えられる攻撃点を露出させることが避けられる。セキュリティ・コプロセッサ・モジュールが、トラステッド・プラットフォーム・モジュール（ＴＰＭ）を備える少なくとも１つの実施例では、これは、測定の生成及び使用に関する動作が、ＴＰＭの明確に規定され、ハードウェアに制約されたトラステッド・コンピューティング・ベース（ＴＣＢ）内にあるということを意味する。ＴＰＭは、保護された記憶、実行、及び明確に定義された加入／登録機構を提供する。
【０００８】
本明細書において、本発明の「一実施例」又は「実施例」に言及していることは、実施例に関して説明した特定の構成、構造又は特性が本発明の少なくとも１つの実施例に含まれているということを意味している。よって、本明細書の随所に「一実施例において」の句が存在していることは、必ずしも、全て、同じ実施例を参照している訳でない。
【０００９】
本発明の一実施例は、ブロード・アクセス制御空間Ｓを定義しており、Ｓは１つ又は複数の集合Ｓ＿ｉを有し、局所性属性は、＜マシン・モードＭ，トラステッド時間Ｔ，場所Ｌ＞、又は、ｉの値全てについての、＜Ｍ＿ｉ，Ｔ＿ｉ，Ｌ＿ｉ＞のＮ組を含む。すなわち、コンピューティング・システムの現在の地理的場所及び現在のトラステッド時間は測定におけるマシン・モードに含め得る。値ｉは、アクセス制御空間Ｓにおける測定の組のうちの選択された１つを示し得る。Ｓにおける各Ｓ＿ｉは、マシン・モード、トラステッド時間、及び場所の許容可能な組合せを示し得、それにより、（ＯＳやアプリケーション・プログラムなどの）より高いレベルのソフトウェアによる、コンピューティング・システムの更なる動作を行い得る。
【００１０】
本発明の実施例では、アクセス制御空間Ｓは、ハードウェア・ベンダ列と呼ばれる別の情報項目を含めるよう更に拡張し得る。ハードウェア・ベンダ列は、任意の長さ及び構成のビット列を含み得、コンピューティング・システムのハードウェア・ベンダ、セキュリティ・コプロセッサ・モジュール、コンピューティング・システムのプロセッサ、及び／又は、他のハードウェア・システム構成部分のうちの１つ又は複数を一意に識別し得る。一実施例では、ハードウェア・ベンダ列は、証明の目的でセキュリティ・コプロセッサによって使用し得る。この実施例におけるアクセス制御空間Ｓは、＜マシン・モードＭ，トラステッド時間Ｔ，場所Ｌ，ハードウェア・ベンダ列ＨＶＳ＞、又は、ｉの値全てについての＜Ｍ＿ｉ，Ｔ＿ｉ，Ｌ＿ｉ，ＨＳＶ＿ｉ＞であり得る。
【００１１】
本発明の別の実施例では、アクセス制御空間Ｓは、環境要因などの更なる属性を含めるよう更に拡張し得る。環境要因は、コンピューティング・システムの温度、加速度、キャパシタンス、高度、及び向きなどのデータ項目を含み得る。他の環境要因も含み得る。一実施例では、環境要因は、コンピュータ・システムの使用の制御を支援するためにセキュリティ・コプロセッサ・モジュールによって使用し得る。この実施例におけるこのアクセス制御空間Ｓは、＜マシン・モードＭ，トラステッド時間Ｔ，場所Ｌ，ハードウェア・ベンダ列ＨＶＳ，環境要因ＥＦ＞、又は、ｉの値全てについての、＜Ｍ＿ｉ，Ｔ＿ｉ，Ｌ＿ｉ，ＨＳＶ＿ｉ，ＥＦ＿ｉ＞であり得る。環境要因は、コンピューティング・システムの温度、加速度、キャパシタンス、高度、及び向きなどのデータ項目を含み得る。
【００１２】
実現形態により、アクセス制御空間Ｓが、上記識別された属性の何れかの組合せを含み得るということを当業者は認識するであろう。
【００１３】
図１は、本発明の実施例による、拡張された局所性のための、セキュリティ・コプロセッサ・モジュールへのデータ入力の図である。セキュリティ・コプロセッサ・モジュール１００は、トラステッド・コンピューティング・サービス及び動作をコンピューティング・システムに提供する。一実施例では、セキュリティ・コプロセッサ・モジュール１００は、トラステッド・プラットフォーム・モジュール（ＴＰＭ）を含む。他の実施例では、他のタイプのセキュリティ・コプロセッサ・モジュールを使用し得る。例えば、他のセキュリティ・コプロセッサは、インターナショナル・ビジネス・マシーンズ（ＩＢＭ）社から市場で入手可能なＩＢＭ４７５８ＰＣＩ暗号コプロセサ、及びＴＩから市場で入手可能なテキサス・インストゥルメンツ（ＴＩ）社のＭシールドを含む。ＴＩＴＰＭは、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ  （ＴＣＧ）から入手可能なＴｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ  Ａｓｓｏｃｉａｔｉｏｎ  （ＴＣＰＡ）  Ｍａｉｎ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  １．２（西暦２００２年２月）、及び後続バージョンにおいてＴＣＧによって規定されている。ＴＰＭは、システムに種々のセキュリティ機能を提供するために、（デスクトップ又はラップトップ・パソコン（ＰＣ）、モバイル・コンピューティング装置、携帯電話機、又は他のコンピューティング装置などの）コンピューティング・システムのマザーボード上の「スマートカード」に多少似たように動作する。通常、システム毎に１つのＴＰＭのみが存在している。ＴＰＭは、暗号動作において使用するために少なくとも１つの公開鍵／秘密鍵対を含み、システム内の他のエンティティによって使用するために匿名鍵対を生成することが可能であり、暗号化及び復号動作を行うことが可能であり、データに署名し、データを検証することが可能であり、システムのルート・オブ・トラストを確立することが可能である。ＴＰＭは、侵入し、その動作に影響を及ぼすことが困難であると考えられる。コンピューティング・プラットフォームのルート・オブ・トラストとして使用されるＴＰＭは、少なくとも１つの公開／秘密鍵、及びプラットフォーム構成レジスタ（ＰＣＲ）を有する。トラステッド・コンピューティング環境のブート中に、ルート・オブ・トラスト構成部分は、ソフトウェア・モジュールをロードし、ソフトウェア・モジュールのハッシュを計算し、ハッシュをＰＣＲに送出し、次いで、制御をそのソフトウェア・モジュールに移す。ソフトウェア・モジュールは次いで、この処理を新たなソフトウェア・モジュールで反復し得、新たなソフトウェア・モジュールのハッシュを新たなＰＣＲに送出し得るか、又は、先行して使用されたＰＣＲのハッシュを拡張し得る。この処理は複数回、反復し得る。最終的には、トラステッド・コンピューティング環境をコントロールするソフトウェア全ての測定を有するＰＣＲが１つ又は複数、存在している。
【００１４】
密閉型記憶は、トラステッド・コンピューティング・プラットフォームの特徴の１つである。ＴＰＭは、秘密及びＰＣＲ値の組を含む、ｂｌｏｂと呼ばれるデータの一部分を暗号化し得る。その後、ｂｌｏｂが復号のためにＴＰＭに提示されると、ＴＰＭは、これを復号し、ｂｌｏｂ内で規定されたＰＣＲ値が、ＴＰＭ内のＰＣＲに現在記憶されているＰＣＲ値と同じであるか否かを検査する。この検査に合格した場合にのみ、ＴＰＭは、復号された秘密をプラットフォームに出す。よって、密閉された秘密は、ｂｌｏｂによって規定されたコンピューティング環境にのみ、利用可能である。特定の他の環境がコンピューティング・プラットフォーム上で起動された場合、ＴＰＭは秘密を出さない。
【００１５】
一実施例では、処理システムが起動されると、ブート・シーケンス中に、（ＢＩＯＳ、オプションＲＯＭ等などの）種々のソフトウェア構成部分の測定を１つ又は複数のＰＣＲに登録し得る。これは、マシン・モードとして知られている。一実施例では、測定は、ソフトウェア構成部分の１つ又は複数のコードの暗号ハッシュを含む。
【００１６】
データを現在のマシン・モードに結合するために、セキュリティ・コプロセッサ・モジュール１００は、マシン・モード１０６及びデータ１０２を入力データとして受け入れる。既知の暗号化動作を使用して、セキュリティ・コプロセッサ・モジュールは、マシン・モードをデータに結合して結合データ１０４を生成する。他のソフトウェア構成部分はその場合、セキュリティ・コプロセッサ・モジュールの動作により、結合データにおけるトラストを推測し得る。
【００１７】
コンピューティング・システムのセキュリティ及びコントロールを向上させるために、更なる属性を、本発明の実施例におけるセキュリティ・コプロセッサ・モジュールに対するデータ入力として含み得る。地理的場所１０８は、アクセス制御空間における属性として含み得る。コンピューティング・システムの現在の地理的場所は、周知の手法により、コンピューティング・システムの地球測位システム（ＧＰＳ）構成部分から取得し得る。コンピューティング・システムの現在の地理的場所は、システムがどこにあるか、及び、場所及びシステム使用に関してシステム管理者により、何の規則が設定されているかに応じてコンピューティング・システムの動作を制御するために使用し得る。
【００１８】
更に、トラステッド時間１１０を、アクセス制御空間における属性として含み得る。コンピューティング・システムにおいて信頼することが可能な、時間に対する値を得ることが望ましい。例えば、トラステッド時間は、コンテンツ保護機構のロバスト性を向上させて、プレミアム・コンテンツがディジタル・ホームに利用可能であることを確実にするために他の処理とともに使用し得る。コンピューティング・プラットフォームの所有者が、周期的に、危殆化された鍵の取消リストをダウンロードすることを確実にするためにコンテンツ保護環境において使用し得る。更に、一時時間ウィンドウ中のアクセスのためにコンテンツを購入することを可能にするためのセキュアなやり方を提供するために使用し得る。しかし、時間値を、コンピューティング・システムによる検出なしで、不謹慎なユーザによって修正することが可能な場合、コンピュータ・セキュリティ及びコンテンツ保護システムが危殆化され得る。トラステッド時間を提供するための一解決策は、ユーザによって容易に取り出すことが可能でないバッテリがＴＰＭに含まれていることを必要とする（Ｔｈｅ  Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐから入手可能なＴｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ  （ＴＰＭ）  Ｍａｉｎ  ｐａｒｔ  １  Ｄｅｓｉｇｎ  Ｐｒｉｎｃｉｐｌｅｓ，  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．２，  Ｒｅｖｉｓｉｏｎ  ８１，Ｎｏｖｅｍｂｅｒ  ２３，２００４，  ｐｐ．９３−９８などに記載されている）。一実施例では、トラステッド時間は、本明細書及び特許請求の範囲に参照によって組み入れる、「Ｍｅｔｈｏｄ  ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  Ｔｒｕｓｔｅｄ  Ｔｉｍｅ  ｉｎ  ａ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ」と題する、西暦２００５年９月２３日付に米国特許出願第１１／２３３５４３号としてＥｒｎｉｅ  Ｆ．  Ｂｒｉｃｋｅｌｌ及びＣｌｉｆｆｏｒｄ  Ｄ．  Ｈａｌｌによって出願された米国特許出願に開示されたものとして与えられ得る。
【００１９】
更に、ハードウェア・ベンダ列１１２を、アクセス制御空間における属性として含み得る。上述の通り、ハードウェア・ベンダ列は、任意の長さ及び構成のビット列を含み得、コンピューティング・システムのハードウェア・ベンダ、セキュリティ・コプロセッサ・モジュール、コンピューティング・システムのプロセッサ、及び／又は、他のハードウェア・システム構成部分のうちの１つ又は複数を一意に識別し得る。
【００２０】
１つ又は複数の環境要因１１４は、アクセス制御空間における属性としても含まれ得る。コンピューティング・システムの温度、加速度、キャパシタンス、高度、及び向きなどの環境条件は、適切な既知の装置及びセンサによって求め、かつ／又は検知し、セキュリティ・コプロセッサ・モジュールに入力し得る。
【００２１】
本発明の実施例の例示的なコンピューティング・システムを図２に示す。しかし、他のシステムも使用することができ、本発明には、図示しているコンピューティング・システムの構成部分全てが必要な訳でない。例えば、本発明の実施例のために処理を実行するために、サンプル・コンピューティング・システム２００を使用し得る。サンプル・システム２００は、インテル社から入手可能なＰＥＮＴＩＵＭ（登録商標）、ＣＯＲＥ、ＣＯＲＥ  ＤＵＯ、ＣＯＲＥ  ＱＵＡＤ、又はＣｅｌｅｒｏｎ（登録商標）ファミリーのプロセッサに基づいた処理システムを代表するが、他のシステム（他のプロセッサを有するパソコン（ＰＣ）又はサーバ、エンジニアリング・ワークステーション、他のセット・トップ・ボックス、モバイル・コンピューティング装置、ハンドヘルド・コンピューティング装置、携帯電話機等を含む）及びアーキテクチャも使用し得る。
【００２２】
図２は、本発明の一実施例のシステム２００のブロック図である。システム２００は、データ信号を処理するプロセッサ２０２を含む。プロセッサ２０２は、システム２００内の他の構成部分とプロセッサ２０２との間でデータを伝送するプロセッサ・バス２０４に結合され得る。システム２００はメモリ２０６を含む。メモリ２０６は、プロセッサ２０２によって実行され得るデータ信号によって表されるデータ及び／又は命令を記憶し得る。命令及び／又はデータは、本発明の手法の何れか及び／又は全てを行うためのコードを含み得る。メモリ２０６は、ハードウェア・ベンダ列２３２などの更なるソフトウェア及び／又はデータも含み得る。
【００２３】
ブリッジ／メモリ・コントローラ２１０はプロセッサ・バス２０４及びメモリ２０６に結合し得る。ブリッジ／メモリ・コントローラ２１０は、プロセッサ２０２、メモリ２０６、及びシステム２００内の他の構成部分間でデータ信号を導き、プロセッサ・バス２０４、メモリ２０６、及び第１の入出力（Ｉ／Ｏ）バス２０８間でデータ信号を橋絡する。この実施例では、グラフィクス装置２１４は、ユーザに向けて、グラフィクス装置２１４により、レンダリングされたか、又は他のやり方で処理された画像を表示するために表示装置（図示せず）とインタフェースする。第１のＩ／Ｏバス２０８は、単一のバス、又は複数のバスの組合せを含み得る。第１のＩ／Ｏバス２０８は、システム２００中の構成部分間の通信リンクを提供する。
【００２４】
少なくとも１つの実施例では、（例えば、ＴＰＭなどの）セキュリティ・コプロセッサ・モジュール２１６はバス・ブリッジ２１２に結合し得る。セキュリティ・コプロセッサ・モジュールは、ＰＣＲ２１７、少なくとも１つのセキュリティ・ポリシー２２８、及びセキュリティ・モード２３０を含み得る。一実施例では、セキュリティ・モードは、通常モード又は拡張モードでセキュリティ・コプロセッサ・モジュールの動作を規定し得る。セキュリティ・ポリシーは、コンピューティング・システムのセキュリティ及びコントロールの向上をもたらすためにアクセス制御空間属性をどのようにして使用し得るかを規定し得る。一実施例では、セキュリティ・コプロセッサ・モジュールは、記憶させたハードウェア・ベンダ列２３２を含み得る。
【００２５】
第２のＩ／Ｏバス２２０は、単一のバス、又は複数のバスの組合せを含み得る。第２のＩ／Ｏバス２２０は、システム２００内の構成部分間の通信リンクを提供する。本発明の実施例では、セキュリティ・コプロセッサ・モジュールに更なる属性を提供するために更なる装置を第２のＩ／Ｏバスに結合し得る。ＧＰＳ装置２２２は、現在の地理的場所のデータを提供するために含まれ得る。トラステッド時間装置２２４は、現在のトラステッド時間を提供するために含まれ得る。１つ又は複数の環境要因２２６は、環境要因データを提供するために含まれ得る。例えば、温度、加速度、キャパシタンス、高度、向き、又は他の要因の検知装置が含まれ得る。
【００２６】
本発明の実施例は、処理システム内の構成部分としてのシステム２００の使用に関する。一実施例によれば、前述の処理は、メモリ２０６において命令シーケンスを実行するプロセッサ２０２に応じてシステム２００によって行い得る。前述の命令は、別のコンピュータ読み取り可能な媒体からメモリ２０６に読み出し得る。命令のシーケンスの実行は、本発明の実施例によるアプリケーションの処理をプロセッサ２０２に実行させる。別の実施例では、本発明の実施例の一部分を実現するために、ハードウェア回路をソフトウェア命令の代わりに、又は、ソフトウェア命令と組合せて使用し得る。よって、本発明は、ハードウェア回路及びソフトウェアの何れの特定の組合せにも限定されない。
【００２７】
図３は、本発明の実施例による、セキュリティ・コプロセッサ・モジュールの初期化を示すフロー図である。開始ブロック３００後、コンピューティング・システム初期化処理中に、ブロック３０２で、コンピューティング・システムの機能として地理的場所の取得及び使用がイネーブルされるかをセキュリティ・コプロセッサ・モジュールは求める。肯定の場合、ブロック３０４で、セキュリティ・コプロセッサ・モジュールは、セキュリティ・ポリシー２２８におけるエントリとして地理的場所を加える。否定の場合、セキュリティ・コプロセッサ・モジュールはブロック３０６で、コンピューティング・システムの機能としてトラステッド時間の取得及び使用がイネーブルされているかを判定する。肯定の場合、ブロック３０８で、セキュリティ・コプロセッサ・モジュールは、セキュリティ・ポリシー内のエントリとしてトラステッド時間を加える。否定の場合、セキュリティ・コプロセッサは、ブロック３１０で、コンピューティング・システムの機能としてハードウェア・ベンダの取得及び使用がイネーブルされているかを判定する。肯定の場合、ブロック３１２で、セキュリティ・コプロセッサ・モジュールは、セキュリティ・ポリシー内のエントリとしてハードウェア・ベンダ列を加える。否定の場合、セキュリティ・コプロセッサ・モジュールは、ブロック３１４で、コンピューティング・システムの機能として１つ又は複数の環境要因の取得及び使用がイネーブルされているかを判定する。肯定の場合、ブロック３１６で、セキュリティ・コプロセッサ・モジュールは、セキュリティ・ポリシー内のエントリとして、関連する環境要因を加える。地理的場所、トラステッド時間、ハードウェア・ベンダ列、及び環境要因の何れかがイネーブルされた場合、セキュリティ・モード２３０は、ブロック３２０で、拡張に設定し得る。さもなければ、セキュリティ・モードは通常に設定し得る。選択されたセキュリティ・モードによるセキュリティ・コプロセサ・モジュールの更なる初期化処理はブロック３２２で行い得る。３２２における処理は、限定列挙でないが、１）乱数の生成、２）暗号署名、３）暗号検証、４）シール（環境要因に対する暗号化）、５）アンシール（環境要因に対する復号）、６）クォート（遠隔証明からのオブジェクトの署名）などのセキュリティ感応性動作の実行を含み得る。他の実施例では、種々の属性の検査の順序を変え得る。
【００２８】
更なる属性がイネーブルされると、セキュリティ・コプロセッサ・モジュールは、その属性の許容可能な値及び使用の先行して記憶された特定の条件を参照し得るか、又は、前述の条件をセキュアに設定するための機能を提供し得る。例えば、コンピューティング・システムを動作し得る地理的場所の許容可能な範囲を設定し得る。一実施例では、許容可能な値及び使用の条件の設定は、セキュアなファームウェア機構を介してシステム管理者により、セキュリティ・コプロセッサ・モジュール初期化が完了した後、行い得る。
【００２９】
図４は、本発明の実施例による、セキュリティ・コプロセッサ・モジュールのセキュリティ・ポリシー処理を示すフロー図である。セキュリティ・コプロセッサ・モジュール初期化処理が完了した後はいつでも、セキュリティ・コプロセッサ・モジュールは、開始ブロック４００後に、ブロック４０２で、動作を行う旨の要求を受け取り得る。ブロック４０４で、セキュリティ・コプロセッサ・モジュールはセキュリティ・モードを得る。セキュリティ・モードが通常の場合、ブロック４１６で、セキュリティ・コプロセッサ・モジュールにより、マシン・モードを検査し得る。マシン・モードが許容可能な場合、要求された動作を、ブロック４１８で、セキュリティ・コプロセッサ・モジュールによって実行することができ、処理は、ブロック４１４で、呼出し元に戻る。しかし、マシン・モードが許容可能でない場合、ブロック４１２で、エラーが報告され得、ブロック４１４で、処理は戻る。
【００３０】
セキュリティ・モードが拡張の場合、セキュリティ・コプロセッサ・モジュールは、ブロック４０６で、セキュリティ・ポリシーを取得し、セキュリティ・ポリシーを解析し、動作を実行する前に、マシン・モードに加えて考慮する必要がある属性を求める。ブロック４０８では、セキュリティ・コプロセッサ・モジュールは、セキュリティ・ポリシー内のエントリに応じて、現在の地理的場所、トラステッド時間、ハードウェア・ベンダ列、及び／又は、環境要因のうちの１つ又は複数を得る。セキュリティ・コプロセッサ・モジュールは次いで、セキュリティ・ポリシーに応じてコンピューティング・システムの種々の装置から得られた属性データに基づいて、要求された動作が許容可能であるかを判定する。すなわち、セキュリティ・コプロセッサ・モジュールは、属性の関連付けられたセキュリティ・ポリシー・エントリにおいて設定された値及び／又は範囲と、属性の現在の値を比較し得る。動作が許容可能であると判定された場合、処理はブロック４１６に続く。否定の場合、エラーはブロック４１２で報告し得る。
【００３１】
考えられる多くのセキュリティ検査は、本発明の実施例によって行い得る。例えば、現在の地理的場所が得られると、セキュリティ・コプロセッサ・モジュールは、現在の地理的場所が所定の範囲内又は境界内にあるかを判定し得る。否定の場合、セキュリティ・コプロセッサは、コンピューティング・システム上の特定の動作又はサービスの実現を拒否し得る（例えば、システムの強制終了）。別の実施例では、トラステッド時間が、コンピュータ・システム上の他の時間インディケータに一致しない場合、セキュリティ・コプロセッサ・モジュールは、他の時間インディケータがタンパリングされており、適切な措置を講じる旨を判定し得る。更なる例では、環境要因の何れかが、特定された範囲外である場合、適切な措置を講じ得る。例えば、温度が高すぎる場合、コンピューティング・システムを終了し得る。
【００３２】
図４に示す実施例では、マシン・モードの検査は、セキュリティ・モ―ドが拡張である場合に、その他の属性を検査した後に行われる。他の実施例では、マシン・モードを検査した後にその他の属性が検査されるように前述の処理順序を変更し得る。
【００３３】
よって、コンピューティング・システムの測定の局所性をマシン・モードから拡張するために更なる属性を追加することにより、セキュリティ・コプロセッサ・モジュールは、コンピューティング・システムのより好適なセキュリティ及び更なるコントロールを提供し得る。この機能は、ＯＳやアプリケーション・プログラムよりもタンパリングが難しいセキュリティ・コプロセッサ・モジュールの一体の部分であるので、コンピューティング・システムのセキュリティ全体を向上させ得る。
【００３４】
本明細書及び特許請求の範囲記載の動作は、シーケンシャル処理として説明し得るが、動作の一部は実際には、並列に、又は同時に行い得る。更に、一部の実施例では、動作の順序は、本発明の趣旨から逸脱しない限り、再編成し得る。
【００３５】
本明細書及び特許請求の範囲記載の手法は、何れの特定のハードウェア又はソフトウェア構成にも限定されず、何れのコンピューティング又は処理環境においても適用性が見出され得る。上記手法は、ハードウェア、ソフトウェア、又はその２つの組合せで実現し得る。上記手法は、１つ又は複数の出力装置、少なくとも１つの入力装置、（揮発性メモリ及び不揮発性メモリ、並びに／又は記憶エレメントを含む）プロセッサによって読み出し可能な記憶媒体、プロセッサをそれぞれが含む、モバイル型又は固定型コンピュータ、ハンドヘルド・コンピューティング装置、携帯情報端末、セット・トップ・ボックス、携帯電話機及びページャ、及び他の電子装置などのプログラム可能なマシン上で実行されるプログラムで実現し得る。プログラム・コードは、上述の機能を行い、出力情報を生成するために入力装置を使用して入力されるデータに対して適用される。出力情報は、１つ又は複数の出力装置に対して適用し得る。マルチプロセッサ・システム、ミニコンピュータ、汎用コンピュータ等を含む種々のコンピュータ・システム構成で本発明を実施することが可能であるということを当業者は理解し得る。本発明は、通信ネットワークを介してリンクされた遠隔処理装置によってタスクを行い得る分散コンピューティング環境で実施することも可能である。
【００３６】
各プログラムは、処理システムと通信するために、高位手続型又はオブジェクト指向型のプログラミング言語で実現し得る。しかし、プログラムは、必要な場合、アセンブラ言語又は機械語で実現し得る。いずれにせよ、言語はコンパイル又は解釈し得る。
【００３７】
プログラム命令は、上記命令でプログラミングされた汎用処理システム又は専用処理システムに、本明細書及び特許請求の範囲記載の動作を行わせるために使用し得る。あるいは、動作は、上記動作を行うための配線ロジックを含む特定のハードウェア構成部分により、又は、プログラムされたコンピュータ構成部分及びカスタム・ハードウェア構成部分の何れかの組合せによって行い得る。本明細書及び特許請求の範囲記載の方法は、処理システム又は他の電子装置をプログラムして上記方法を行うために使用し得る命令を記憶させたマシン読み取り可能な媒体を含み得るコンピュータ・プログラム・プロダクトとして提供し得る。本明細書及び特許請求の範囲記載の「マシン読み取り可能な媒体」の語は、マシンによる実行のために命令のシーケンスを記憶するか、又はコード化することができ、本明細書及び特許請求の範囲記載の方法の何れか１つをマシンに行わせる何れかの媒体を含む。よって、「マシン読み取り可能な媒体」の語は、限定列挙でないが、ソリッドステート・メモリ、光ディスク、及び磁気ディスクを含む。更に、措置を講じるか、又は結果をもたらすものとして、一形態又は別の形態のソフトウェア（例えば、プログラム、手続、処理、アプリケーション、モジュール、ロジック等）を表すことが当該技術分野において一般的である。前述の表現は、処理システムによる、ソフトウェアの実行が、プロセッサに、動作を行わせるか、又は結果をもたらすと記載することの短縮したやり方に過ぎない。
【符号の説明】
【００３８】
１００  セキュリティ・コプロセッサ・モジュール
２１６  セキュリティ・コプロセッサ・モジュール
２２８  セキュリティ・ポリシー
２３０  セキュリティ・モード
【図１】
0005394441.tif 000002
【図２】
0005394441.tif 000003
【図３】
0005394441.tif 000004
【図４】
0005394441.tif 000005