(57)【要約】  一実施の形態による、コンピュータシステムが開示される。当該コンピュータシステムは、トラステッド環境を動作させる中央処理装置（ＣＰＵ）と、ＣＰＵのトラステッドマイクロコードによって開始されるコマンドにより書き込むことができる保護されるレジスタを有するチップセットと、チップセットに結合されて、トラステッド動作環境の作成及び維持に関係するデータを保護する固定トークンと、チップセットに結合されて、トラステッド動作環境の完全性を検証するポータブルトークンとを備える。【選択図】  図４
2008546122.tif 000002
【特許請求の範囲】
【請求項１】
トラステッド環境を動作させる中央処理装置（ＣＰＵ）と、
前記ＣＰＵのトラステッドマイクロコードによって開始されるコマンドにより書き込むことができる保護されるレジスタを有するチップセットと、
前記チップセットに結合されて、前記トラステッド動作環境の作成及び維持に関係するデータを保護する固定トークンと、
前記チップセットに結合されて、前記トラステッド動作環境の完全性を検証するポータブルトークンと
を備える、コンピュータシステム。
【請求項２】
前記ポータブルトークンは、前記固定トークンの真正性を検証する、請求項１に記載のコンピュータシステム。
【請求項３】
前記ポータブルトークンは、前記トラステッド環境のユーザの真正性を検証する、請求項２に記載のコンピュータシステム。
【請求項４】
前記ポータブルトークンは、前記トラステッド動作環境から完全性の測定値を取り出すことによって、前記トラステッド動作環境の完全性を検証する、請求項３に記載のコンピュータシステム。
【請求項５】
前記ポータブルトークンは、スマートカードである、請求項１に記載のコンピュータシステム。
【請求項６】
前記チップセットに結合されて前記スマートカードを読み出すインターフェースをさらに備える、請求項５に記載のコンピュータシステム。
【請求項７】
前記ポータブルトークンは、前記完全性の検証の結果を示すディスプレイを備える、請求項５に記載のコンピュータシステム。
【請求項８】
ポータブルトークンがトラステッド動作環境内で固定トークンを特定すること、
前記トラステッド動作環境のユーザの真正性を検証すること、及び
前記トラステッド動作環境の完全性を検証すること
を含む、方法。
【請求項９】
前記固定トークンを特定することは、該固定トークンの真正性を検証することを含む、請求項８に記載の方法。
【請求項１０】
前記トラステッド動作環境の完全性を検証することは、前記ポータブルトークンに記憶されている第１の組の値を前記固定トークンから受け取る第２の組の値と比較することを含む、請求項８に記載の方法。
【請求項１１】
前記トラステッド動作環境が検証されているか否かを示す表示を表示することをさらに含む、請求項１０に記載の方法。
【請求項１２】
トラステッドコンピュータシステムプラットフォームの完全性を検証するポータブルトークンを備える、スマートカード。
【請求項１３】
前記ポータブルトークンは、前記固定トークンの真正性を検証する、請求項１２に記載のスマートカード。
【請求項１４】
前記ポータブルトークンは、前記トラステッド動作環境のユーザの真正性を検証する、請求項１３に記載のスマートカード。
【請求項１５】
前記ポータブルトークンは、前記トラステッド動作環境から完全性の測定値を取り出すことによって、前記トラステッド動作環境の完全性を検証する、請求項１４に記載のスマートカード。
【請求項１６】
前記完全性の検証の結果を示すディスプレイをさらに備える、請求項１２に記載のスマートカード。
【請求項１７】
命令から成るプログラムを具現化する１つ又は２つ以上のコンピュータ可読媒体を含む製品であって、前記命令から成るプログラムは、処理ユニットによって実行されると、
トラステッド動作環境内の固定トークンをポータブルトークンに特定させ、
前記トラステッド動作環境のユーザの真正性を前記ポータブルトークンに検証させ、且つ
前記トラステッド動作環境の完全性を前記ポータブルトークンに検証させる
製品。
【請求項１８】
前記固定トークンを特定することは、該固定トークンの真正性を検証することを含む、請求項１７に記載の製品。
【請求項１９】
前記トラステッド動作環境の完全性を検証することは、前記ポータブルトークンに記憶されている第１の組の値を前記固定トークンから受け取る第２の組の値と比較することを含む、請求項１７に記載の製品。
【請求項２０】
前記命令から成るプログラムは、処理ユニットによって実行されると、さらに、前記トラステッド動作環境が検証されているか否かを示す表示を前記ポータブルトークンに表示させる、請求項１７に記載の製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関する。より詳細には、本発明は、トラステッド環境又はセキュアド環境で動作できるコンピュータシステムに関する。
【背景技術】
【０００２】
ローカルマイクロコンピュータ又はリモートマイクロコンピュータ上で行われている金融取引及び個人取引の数の増加によって、「トラステッド」マイクロプロセッサ環境又は「セキュアド」マイクロプロセッサ環境の確立にはずみがついている。これらの環境が解決しようとする問題は、プライバシーの喪失の問題又はデータが破損若しくは悪用される問題である。ユーザは、自身のプライベートなデータが公にされることを望まない。また、ユーザは、自身のデータが不適切な取引で変更されたり使用されたりすることも望まない。これらの例には、医療カルテの意図的でない公開、又は、オンライン銀行若しくは他の保管場所からの資金の電子窃盗が含まれる。同様に、コンテンツプロバイダは、デジタルコンテンツ（たとえば、音楽、他のオーディオ、ビデオ、又は他のタイプの一般のデータ）を、認可なしにコピーされることから保護しようと努めている。
【０００３】
トラステッド環境は、トラステッド実行パーティションで実行されるオペレーティングシステム及びアプリケーションに対する信頼性の基盤（root-of-trust）並びにハードウェアベースの暗号サービスのための固定物理トークン（たとえば、トラステッドプラットフォームモジュール、すなわちＴＰＭ）を含む。しかしながら、このようなトラステッドプラットフォームの予想されたユビキタス性により、プラットフォームが実際にトラステッドであることの検証をユーザ／所有者に可能にするメカニズムは、現在のところ存在しない。
【０００４】
本発明は、添付図面の図に、限定ではなく例として示されている。添付図面において、同じ参照符号は、同様の要素を示す。
【発明を実施するための最良の形態】
【０００５】
トラステッドコンピュータシステムで物理（すなわち、固定）トークンを評価するメカニズムが説明される。一実施形態によれば、固定トークンが特定される。その後、ユーザが認証され、コンピュータシステムの信頼性が検証される。最後に、コンピュータシステムが評価に成功したのか、それとも失敗したのかに関する表示が提供される。
【０００６】
本発明の以下の詳細な説明では、本発明の十分な理解を提供するために、多数の特定の詳細が述べられる。しかしながら、本発明は、これらの特定の詳細がなくても実施することもできることが当業者には明らかであろう。それ以外の場合には、本発明を分かりにくくすることを回避するために、既知の構造及びデバイスは、詳細にではなく、ブロック図の形で示される。
【０００７】
この明細書では「一実施形態」に言及しているが、これは、その実施形態について説明した特定の特徴、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、この明細書のさまざまな箇所に「一実施形態では」という語句が登場するが、これは、必ずしもすべてが同じ実施形態に言及しているわけでない。
【０００８】
図１は、コンピュータシステム１００の一実施形態のブロック図である。コンピュータシステム１００は、バス１０５に結合された中央処理装置（ＣＰＵ）１０２を含む。一実施形態では、ＣＰＵ１０２は、カリフォルニア州サンタクララのIntel Corporationから入手可能なＰｅｎｔｉｕｍ（登録商標）ＩＩプロセッサファミリー、Ｐｅｎｔｉｕｍ（登録商標）ＩＩＩプロセッサ、及びＰｅｎｔｉｕｍ（登録商標）ＩＶプロセッサを含むＰｅｎｔｉｕｍ（登録商標）プロセッサファミリーのプロセッサである。代替的に、他のＣＰＵを使用することもできる。
【０００９】
一実施形態によれば、ＣＰＵ１０２は、セキュアオペレーション及びトラステッドオペレーションをサポートする回路又は論理素子を含む。たとえば、ＣＰＵ１０２は、図示しないセキュア入力（ＳＥＮＴＥＲ）ロジックを含むことができる。ＳＥＮＴＥＲロジックは、トラステッドオペレーションを開始できる特別なＳＥＮＴＥＲ命令の実行をサポートするものである。この特別なＳＥＮＴＥＲ命令は、敵意のある可能性のある非トラステッドコードがコンピュータシステム１００内のセキュア資源にアクセスする能力を削減することができる。
【００１０】
加えて、ＣＰＵ１０２は、セキュアオペレーションをサポートするセキュアメモリも含むことができる。図２は、ＣＰＵ１０２の一実施形態を示すブロック図である。ＣＰＵ１０２は、キャッシュメモリ（キャッシュ）２２０、埋め込み鍵２３０、及びページテーブル（ＰＴ）レジスタ２４０を含む。キャッシュ２２０の全部又は一部は、プライベートメモリ（ＰＭ）２２５を含むこともできるし、プライベートメモリ２２５に変換可能とすることもできる。一実施形態によれば、プライベートメモリ２２５は、プライベートメモリとしてアクティブ化されている間、認可されていないあらゆるデバイス（たとえば、関連したＣＰＵ１０２以外のあらゆるデバイス）による当該プライベートメモリ２２５へのアクセスを防止するのに十分な保護を有するメモリである。
【００１１】
図示した実施形態では、キャッシュ２２０は、プライベートメモリとしてのその選択的隔離を許可するさまざまな機能を有することができる。図示しない別の実施形態では、プライベートメモリ２２５は、キャッシュメモリ２２０の外部にあり、キャッシュメモリ２２０から分離することができるが、依然としてＣＰＵ１０２に関連付けられている。鍵２３０は、さまざまなデータブロック及び／若しくはコードの暗号化、解読、並びに／又は有効性確認に使用される埋め込み鍵とすることができる。ＰＴレジスタ２４０は、保護されたコードによってのみアクセス可能となるべきメモリページ及びどのメモリページが保護されるべきでないかを特定するレジスタの形のテーブルとすることができる。
【００１２】
図１を再び参照すると、チップセット１０７も、バス１０５に結合されている。チップセット１０７は、メモリ制御ハブ（ＭＣＨ）１１０を含む。ＭＣＨ１１０は、メインシステムメモリ１１５に結合されたメモリコントローラ１１２を含むことができる。メインシステムメモリ１１５は、データ、及び、ＣＰＵ１０２又はシステム１００に含まれる他のいずれかのデバイスによって実行される命令シーケンスを記憶する。一実施形態では、メインシステムメモリ１１５は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。しかしながら、メインシステムメモリ１１５は、他のメモリタイプを使用して実施することができる。複数のＣＰＵ及び／又は複数のシステムメモリ等、追加されるデバイスも、バス１０５に結合することができる。
【００１３】
メモリ１１５は、そのメモリ１１５のどのメモリブロック（ここで、メモリブロックは、連続的にアクセス可能なメモリロケーションの範囲である）が、ダイレクトメモリアクセス（ＤＭＡ）転送にアクセス不能にされるべきかを規定する保護されたメモリテーブルを含むことができる。メモリ１１５へのすべてのアクセスはＭＣＨ１１０を通過するので、ＭＣＨ１１０は、あらゆるＤＭＡ転送についてその発生を許可する前に、保護されたメモリテーブルをチェックすることができる。特定の一実施形態では、ＭＣＨ１１０は、キャッシュ技法を使用して、保護されたメモリテーブル３２０への必要なアクセスの回数を削減することができる。
【００１４】
一実施形態によれば、ＭＣＨ１１０は、さまざまな暗号化プロセス、解読プロセス、及び／又は有効性確認プロセスで使用される鍵１１６、保護されたレジスタ１２０、並びに保護されたメモリテーブル１２５を含む。一実施形態では、保護されたメモリテーブル１２５は、ＭＣＨ１１０において、保護されたメモリテーブル１２５として実施され、メモリ１１５における保護されたメモリテーブルを削除することができる。
【００１５】
別の実施形態では、保護されたメモリテーブル１２５は、前述したように、メモリ１１５において、保護されたメモリテーブルとして実施され、保護されたメモリテーブル１２５を削除することができる。また、保護されたメモリテーブルは、図示しない他の方法で実施することもできる。保護されたメモリテーブルの目的及び基本オペレーションは、物理ロケーションに関係なく、ほぼ説明した通りとすることができる。
【００１６】
一実施形態では、保護されたレジスタ１２０は、ＣＰＵ１０２のトラステッドマイクロコードによってのみ開始できるコマンドにより書き込むことができるレジスタである。保護されたマイクロコードは、その実行が、認可された命令（複数可）及び／又は認可されていないデバイスが制御できないハードウェアによって開始できるマイクロコードである。
【００１７】
一実施形態では、保護されたレジスタ１２０には、保護されたメモリテーブルの使用を有効又は無効にするレジスタが含まれる。また、保護されたレジスタ１２０には、保護されたメモリテーブルのロケーションをＭＣＨ１１０内にハードワイヤ化する必要がないように、それらロケーションを特定する書き込み可能レジスタも含まれ得る。
【００１８】
ＭＣＨ１１０は、ハブインターフェースを介して入出力制御ハブ（ＩＣＨ）１４０に結合される。ＩＣＨ１４０は、コンピュータシステム１００内の入出力（Ｉ／Ｏ）デバイスにインターフェースを提供する。ＩＣＨ１４０は、Ｉ／Ｏバス上で標準Ｉ／Ｏオペレーションをサポートすることができる。このＩ／Ｏバスは、周辺機器相互接続（ＰＣＩ）、アクセラレーティッドグラフィックスポート（ＡＧＰ）、ユニバーサルシリアルバス（ＵＳＢ）、ローピンカウント（ＬＰＣ）バス、他のあらゆる種類のＩ／Ｏバス（図示せず）等である。一実施形態によれば、ＩＣＨは、リーダ１５０に結合される。一実施形態では、リーダ１５０は、ポータブルトークンが記憶されているスマートカードとインターフェースする（又はスマートカードを読み出す）ように実施されるスマートカードリーダである。ポータブルトークンの実施態様は、以下で詳細に説明される。
【００１９】
インターフェースは、チップセット１０７を物理トークン１３０と接続するのに使用することができる。物理トークン１３０は、保護された動作環境の作成及び維持に関係するデータを保護する回路とすることができる。特定の実施形態では、物理トークン１３０は、鍵（図示せず）を含む。この鍵は、特定の暗号化プロセス、解読プロセス、及び／又は有効性確認プロセスに使用される埋め込み鍵とすることができる。
【００２０】
また、物理トークン１３０は、保護された動作環境で使用されるダイジェスト値及び他の情報を保持するのに使用されるストレージ空間も含むことができる。一実施形態では、物理トークン１３０のストレージ空間は、物理トークンの停電の場合にそのコンテンツを維持する不揮発性メモリ（たとえば、フラッシュメモリ）を含むことができる。
【００２１】
セキュア仮想マシンモニタ１３０モジュールを、システムディスク又は他の大容量記憶装置に記憶することができ、必要に応じて他のロケーションへ移動又はコピーすることができる。一実施形態では、セキュア起動プロセスを開始する前に、モニタ１６０を、メモリ１１５の１つ又は２つ以上のメモリページに移動又はコピーすることができる。セキュア入力プロセスに続いて、モニタ１６０がシステム内で最高特権コードとして動作できる仮想マシン環境を作成することができ、この仮想マシン環境は、当該作成された仮想マシン内で、オペレーティングシステム又はアプリケーションによる一定のシステム資源への直接アクセスを許可又は拒否するのに使用することができる。
【００２２】
実行制御がモニタ１６０へ移されると、コンピュータシステム１００は、トラステッドソフトウェア環境（若しくはプラットフォーム）又はセキュアドソフトウェア環境（若しくはプラットフォーム）に入る。図３は、トラステッドプラットフォーム３００又はセキュアドプラットフォーム３００の一実施形態を示している。図３の実施形態では、トラステッドソフトウェア及び非トラステッドソフトウェアを同時にロードすることができ、単一のコンピュータシステム上で同時に実行することができる。モニタ１６０は、１つ又は２つ以上の非トラステッドオペレーティングシステム３４０及び非トラステッドアプリケーション３１０からのハードウェア資源３９０への直接アクセスを選択的に許可又は防止する。
【００２３】
この状況において、「非トラステッド」は、必ずしも、オペレーティングシステム又はアプリケーションが故意に不正な振る舞いを行っていること意味するものではないが、相互作用するコードのサイズ及び多様性によって、ソフトウェアが所望の通り振る舞っていることを確実に断言することが実際的でなくなること、並びに、ウィルス及び他の異質のコードがその実行と干渉していないことを確実に断言することが実際的でなくなることを意味する。通常の一実施形態では、非トラステッドコードには、今日のパーソナルコンピュータで見られる標準的なオペレーティングシステム及びアプリケーションが含まれ得る。
【００２４】
また、モニタ１６０は、１つ又は２つ以上のトラステッドカーネル３６０又はセキュアカーネル３６０及び１つ又は２つ以上のトラステッドアプリケーション３７０からのハードウェア資源３８０への直接アクセスも選択的に許可又は防止する。このようなトラステッドカーネル３６０又はセキュアカーネル３６０及びトラステッドアプリケーション３７０は、モニタ１６０上で信頼性解析を行う能力を援助するようにサイズ及び機能において制限することができる。トラステッドアプリケーション３７０は、セキュア環境で実行可能な任意のソフトウェアコード、プログラム、ルーチン、又は一組のルーチンとすることができる。このように、トラステッドアプリケーション３７０は、さまざまなアプリケーション、すなわちコードシーケンスとすることもできるし、Ｊａｖａアプレット等の比較的小さなアプリケーションとすることもできる。
【００２５】
システム資源の保護又は特権を変更できるオペレーティングシステム３４０又はカーネル３６０によって標準的に遂行される命令又はオペレーションは、モニタ１６０によってタップ可能であり、選択的な許可若しくは拒否又は部分的な許可若しくは拒否を行うことができる。一例として、通常の一実施形態では、オペレーティングシステム３４０又はカーネル３６０によって標準的に遂行される、ＣＰＵ１０２のページテーブルを変更する命令は、モニタ１６０によって代わりにタップされ、モニタ１６０は、その要求が、モニタ１６０の仮想マシンのドメイン外でページ特権の変更を試みていなかったことを確実にする。
【００２６】
図３には、ポータブルトークン３９０も示されている。一実施形態では、ポータブルトークン３９０は、スマートカード内に組み込まれたクレデンシャルトークンである。スマートカードは、コンピュータシステム１００がトラステッドシステムであるか否かをユーザが検証することを可能にするためにスマートカードリーダ１５０内に挿入することができる。さらに別の実施形態では、ポータブルトークン３９０は、コンピュータシステム１００をユーザに供給したエンティティの系列である情報技術（ＩＴ）部門によって提供される。
【００２７】
図４は、固定トークン１３０の評価を行うようにポータブルトークン３９０を実施するための一実施形態のフロー図である。処理ブロック４１０において、固定トークン識別プロセスが行われる。このプロセスは、ポータブルトークン３９０が、固定トークン１３０を特定することによって固定トークン１３０の真正性をチェックすることを伴う。
【００２８】
一実施形態では、この特定は、ポータブルトークン３９０及び固定トークン１３０の双方において、ＩＴアドミニストレータが供給する共有秘密に基づくことができる。別の実施形態では、特定は、固定トークン１３０の公開鍵を有するポータブルトークン３９０が達成することもできる。図５は、固定トークンの評価を行うためのより詳細なシーケンスを示すイベント図である。
【００２９】
図５を参照すると、固定トークン特定プロセスは、時刻ｔ１〜ｔ４で実行される。まず、ユーザは、ｔ１において、スマートカードリーダ１５０を介してポータブルトークン３９０をコンピュータシステム１００に挿入する。ｔ２において、固定トークン１３０が真正であるか否かが判断される。ｔ３において、固定トークン１３０の真正性が検証される。ｔ４において、固定トークン１３０が真正であると判断される。
【００３０】
再び図４を参照すると、認証セッションが、処理ブロック４２０において開始される。固定トークン１３０が有効なトークンであるとしての特定が成功すると、ポータブルトークン３９０は、固定トークン１３０との認証セッションを開始する。パスフレーズをこの認証に使用することができる。一実施形態によれば、このようなパスフレーズは、ポータブルトークン３９０に事前に記憶される。
【００３１】
再び図５を参照すると、認証セッションが、時刻ｔ５〜ｔ７において行われる。ここで、このセッションはｔ５において開始され、ユーザ認証がｔ６においてチェックされ、ユーザがｔ７において認証される。認証が成功した場合、ポータブルトークン３９０は、処理ブロック４３０（図４）において、コンピュータシステム１００の状態の定義された完全性の尺度（integrity measures）を使用して、コンピュータシステム１００の信頼性をチェックする。
【００３２】
ポータブルトークン３９０が含むコンピュータシステム１００の完全性の測定値（integrity measurements）に基づいて、トークン３９０は、プラットフォームの信頼性を判定する。一実施形態では、ポータブルトークン３９０は、特定のＰＣＲ値を、自身の不正に改ざんされないようになっている完全性コンテナに記憶された値と比較する。
【００３３】
再び図５を参照すると、完全性／信頼性プロセスが、時刻ｔ８〜ｔ１０において実行される。時刻ｔ８において、トークン３９０が、システム１００の信頼性をチェックする。ｔ２において、完全性の測定値がｔ９において受け取られ、ｔ１０においてトークン３９０へ転送される。再び図４を参照すると、ポータブルトークン３９０は、処理ブロック４４０においてコンピュータシステム１００のチャレンジセッションの成功又は失敗を表示することができる。このプロセスは、図５の時刻ｔ１１及びｔ１２に示されている。このプロセスにおいて、ポータブルトークン３９０は、完全性の測定値を検証し、検証が完了したか否か及び検証が成功したか否かを示す。一実施形態では、ポータブルトークン３９０は、検証の結果を示すディスプレイを含む。このディスプレイは、ＬＥＤスクリーン又は小さなＬＣＤスクリーンとすることができる。
【００３４】
上述したメカニズムによって、スマートカード（たとえば、ポータブルトークン）及び固定トークン（ＴＰＭ等）は、トラステッドシステムの信頼性を高めるために互いに補完し合うことが可能になる。ポータブルトークンと固定トークンとの間の協調によって、プラットフォームのユーザ／所有者は、そのプラットフォームを使用する前にそのプラットフォームの完全性及び信頼性をチェックすることが可能になる。
【００３５】
本発明の多くの変更及び修正が、上記説明を読んだ後、当業者にはおそらく明らかになるが、例示として図示して説明したどの特定の実施形態も、限定するものとみなされることを全く意図していないことが理解されるべきである。したがって、さまざまな実施形態の詳細への言及は、特許請求の範囲を限定することを意図していない。特許請求の範囲は、それ自体で、本発明にとって不可欠とみなされる特徴のみを列挙している。
【図面の簡単な説明】
【００３６】
【図１】コンピュータシステムの一実施形態のブロック図である。
【図２】中央処理装置の一実施形態を示す図である。
【図３】トラステッドソフトウェア環境又はセキュアドソフトウェア環境の一実施形態の図である。
【図４】固定トークンの評価を行うための一実施形態のフロー図である。
【図５】固定トークンの評価を行うための一実施形態のイベント図である。
【図１】
2008546122.tif 000003
【図２】
2008546122.tif 000004
【図３】
2008546122.tif 000005
【図４】
2008546122.tif 000006
【図５】
2008546122.tif 000007
【国際調査報告】
2008546122.tif 000008
2008546122.tif 000009
2008546122.tif 000010