説明

トークン使用可能コンピュータシステムを評価するメカニズム

一実施の形態による、コンピュータシステムが開示される。当該コンピュータシステムは、トラステッド環境を動作させる中央処理装置(CPU)と、CPUのトラステッドマイクロコードによって開始されるコマンドにより書き込むことができる保護されるレジスタを有するチップセットと、チップセットに結合されて、トラステッド動作環境の作成及び維持に関係するデータを保護する固定トークンと、チップセットに結合されて、トラステッド動作環境の完全性を検証するポータブルトークンとを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステムに関する。より詳細には、本発明は、トラステッド環境又はセキュアド環境で動作できるコンピュータシステムに関する。
【背景技術】
【0002】
ローカルマイクロコンピュータ又はリモートマイクロコンピュータ上で行われている金融取引及び個人取引の数の増加によって、「トラステッド」マイクロプロセッサ環境又は「セキュアド」マイクロプロセッサ環境の確立にはずみがついている。これらの環境が解決しようとする問題は、プライバシーの喪失の問題又はデータが破損若しくは悪用される問題である。ユーザは、自身のプライベートなデータが公にされることを望まない。また、ユーザは、自身のデータが不適切な取引で変更されたり使用されたりすることも望まない。これらの例には、医療カルテの意図的でない公開、又は、オンライン銀行若しくは他の保管場所からの資金の電子窃盗が含まれる。同様に、コンテンツプロバイダは、デジタルコンテンツ(たとえば、音楽、他のオーディオ、ビデオ、又は他のタイプの一般のデータ)を、認可なしにコピーされることから保護しようと努めている。
【0003】
トラステッド環境は、トラステッド実行パーティションで実行されるオペレーティングシステム及びアプリケーションに対する信頼性の基盤(root-of-trust)並びにハードウェアベースの暗号サービスのための固定物理トークン(たとえば、トラステッドプラットフォームモジュール、すなわちTPM)を含む。しかしながら、このようなトラステッドプラットフォームの予想されたユビキタス性により、プラットフォームが実際にトラステッドであることの検証をユーザ/所有者に可能にするメカニズムは、現在のところ存在しない。
【0004】
本発明は、添付図面の図に、限定ではなく例として示されている。添付図面において、同じ参照符号は、同様の要素を示す。
【発明を実施するための最良の形態】
【0005】
トラステッドコンピュータシステムで物理(すなわち、固定)トークンを評価するメカニズムが説明される。一実施形態によれば、固定トークンが特定される。その後、ユーザが認証され、コンピュータシステムの信頼性が検証される。最後に、コンピュータシステムが評価に成功したのか、それとも失敗したのかに関する表示が提供される。
【0006】
本発明の以下の詳細な説明では、本発明の十分な理解を提供するために、多数の特定の詳細が述べられる。しかしながら、本発明は、これらの特定の詳細がなくても実施することもできることが当業者には明らかであろう。それ以外の場合には、本発明を分かりにくくすることを回避するために、既知の構造及びデバイスは、詳細にではなく、ブロック図の形で示される。
【0007】
この明細書では「一実施形態」に言及しているが、これは、その実施形態について説明した特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、この明細書のさまざまな箇所に「一実施形態では」という語句が登場するが、これは、必ずしもすべてが同じ実施形態に言及しているわけでない。
【0008】
図1は、コンピュータシステム100の一実施形態のブロック図である。コンピュータシステム100は、バス105に結合された中央処理装置(CPU)102を含む。一実施形態では、CPU102は、カリフォルニア州サンタクララのIntel Corporationから入手可能なPentium(登録商標)IIプロセッサファミリー、Pentium(登録商標)IIIプロセッサ、及びPentium(登録商標)IVプロセッサを含むPentium(登録商標)プロセッサファミリーのプロセッサである。代替的に、他のCPUを使用することもできる。
【0009】
一実施形態によれば、CPU102は、セキュアオペレーション及びトラステッドオペレーションをサポートする回路又は論理素子を含む。たとえば、CPU102は、図示しないセキュア入力(SENTER)ロジックを含むことができる。SENTERロジックは、トラステッドオペレーションを開始できる特別なSENTER命令の実行をサポートするものである。この特別なSENTER命令は、敵意のある可能性のある非トラステッドコードがコンピュータシステム100内のセキュア資源にアクセスする能力を削減することができる。
【0010】
加えて、CPU102は、セキュアオペレーションをサポートするセキュアメモリも含むことができる。図2は、CPU102の一実施形態を示すブロック図である。CPU102は、キャッシュメモリ(キャッシュ)220、埋め込み鍵230、及びページテーブル(PT)レジスタ240を含む。キャッシュ220の全部又は一部は、プライベートメモリ(PM)225を含むこともできるし、プライベートメモリ225に変換可能とすることもできる。一実施形態によれば、プライベートメモリ225は、プライベートメモリとしてアクティブ化されている間、認可されていないあらゆるデバイス(たとえば、関連したCPU102以外のあらゆるデバイス)による当該プライベートメモリ225へのアクセスを防止するのに十分な保護を有するメモリである。
【0011】
図示した実施形態では、キャッシュ220は、プライベートメモリとしてのその選択的隔離を許可するさまざまな機能を有することができる。図示しない別の実施形態では、プライベートメモリ225は、キャッシュメモリ220の外部にあり、キャッシュメモリ220から分離することができるが、依然としてCPU102に関連付けられている。鍵230は、さまざまなデータブロック及び/若しくはコードの暗号化、解読、並びに/又は有効性確認に使用される埋め込み鍵とすることができる。PTレジスタ240は、保護されたコードによってのみアクセス可能となるべきメモリページ及びどのメモリページが保護されるべきでないかを特定するレジスタの形のテーブルとすることができる。
【0012】
図1を再び参照すると、チップセット107も、バス105に結合されている。チップセット107は、メモリ制御ハブ(MCH)110を含む。MCH110は、メインシステムメモリ115に結合されたメモリコントローラ112を含むことができる。メインシステムメモリ115は、データ、及び、CPU102又はシステム100に含まれる他のいずれかのデバイスによって実行される命令シーケンスを記憶する。一実施形態では、メインシステムメモリ115は、ダイナミックランダムアクセスメモリ(DRAM)を含む。しかしながら、メインシステムメモリ115は、他のメモリタイプを使用して実施することができる。複数のCPU及び/又は複数のシステムメモリ等、追加されるデバイスも、バス105に結合することができる。
【0013】
メモリ115は、そのメモリ115のどのメモリブロック(ここで、メモリブロックは、連続的にアクセス可能なメモリロケーションの範囲である)が、ダイレクトメモリアクセス(DMA)転送にアクセス不能にされるべきかを規定する保護されたメモリテーブルを含むことができる。メモリ115へのすべてのアクセスはMCH110を通過するので、MCH110は、あらゆるDMA転送についてその発生を許可する前に、保護されたメモリテーブルをチェックすることができる。特定の一実施形態では、MCH110は、キャッシュ技法を使用して、保護されたメモリテーブル320への必要なアクセスの回数を削減することができる。
【0014】
一実施形態によれば、MCH110は、さまざまな暗号化プロセス、解読プロセス、及び/又は有効性確認プロセスで使用される鍵116、保護されたレジスタ120、並びに保護されたメモリテーブル125を含む。一実施形態では、保護されたメモリテーブル125は、MCH110において、保護されたメモリテーブル125として実施され、メモリ115における保護されたメモリテーブルを削除することができる。
【0015】
別の実施形態では、保護されたメモリテーブル125は、前述したように、メモリ115において、保護されたメモリテーブルとして実施され、保護されたメモリテーブル125を削除することができる。また、保護されたメモリテーブルは、図示しない他の方法で実施することもできる。保護されたメモリテーブルの目的及び基本オペレーションは、物理ロケーションに関係なく、ほぼ説明した通りとすることができる。
【0016】
一実施形態では、保護されたレジスタ120は、CPU102のトラステッドマイクロコードによってのみ開始できるコマンドにより書き込むことができるレジスタである。保護されたマイクロコードは、その実行が、認可された命令(複数可)及び/又は認可されていないデバイスが制御できないハードウェアによって開始できるマイクロコードである。
【0017】
一実施形態では、保護されたレジスタ120には、保護されたメモリテーブルの使用を有効又は無効にするレジスタが含まれる。また、保護されたレジスタ120には、保護されたメモリテーブルのロケーションをMCH110内にハードワイヤ化する必要がないように、それらロケーションを特定する書き込み可能レジスタも含まれ得る。
【0018】
MCH110は、ハブインターフェースを介して入出力制御ハブ(ICH)140に結合される。ICH140は、コンピュータシステム100内の入出力(I/O)デバイスにインターフェースを提供する。ICH140は、I/Oバス上で標準I/Oオペレーションをサポートすることができる。このI/Oバスは、周辺機器相互接続(PCI)、アクセラレーティッドグラフィックスポート(AGP)、ユニバーサルシリアルバス(USB)、ローピンカウント(LPC)バス、他のあらゆる種類のI/Oバス(図示せず)等である。一実施形態によれば、ICHは、リーダ150に結合される。一実施形態では、リーダ150は、ポータブルトークンが記憶されているスマートカードとインターフェースする(又はスマートカードを読み出す)ように実施されるスマートカードリーダである。ポータブルトークンの実施態様は、以下で詳細に説明される。
【0019】
インターフェースは、チップセット107を物理トークン130と接続するのに使用することができる。物理トークン130は、保護された動作環境の作成及び維持に関係するデータを保護する回路とすることができる。特定の実施形態では、物理トークン130は、鍵(図示せず)を含む。この鍵は、特定の暗号化プロセス、解読プロセス、及び/又は有効性確認プロセスに使用される埋め込み鍵とすることができる。
【0020】
また、物理トークン130は、保護された動作環境で使用されるダイジェスト値及び他の情報を保持するのに使用されるストレージ空間も含むことができる。一実施形態では、物理トークン130のストレージ空間は、物理トークンの停電の場合にそのコンテンツを維持する不揮発性メモリ(たとえば、フラッシュメモリ)を含むことができる。
【0021】
セキュア仮想マシンモニタ130モジュールを、システムディスク又は他の大容量記憶装置に記憶することができ、必要に応じて他のロケーションへ移動又はコピーすることができる。一実施形態では、セキュア起動プロセスを開始する前に、モニタ160を、メモリ115の1つ又は2つ以上のメモリページに移動又はコピーすることができる。セキュア入力プロセスに続いて、モニタ160がシステム内で最高特権コードとして動作できる仮想マシン環境を作成することができ、この仮想マシン環境は、当該作成された仮想マシン内で、オペレーティングシステム又はアプリケーションによる一定のシステム資源への直接アクセスを許可又は拒否するのに使用することができる。
【0022】
実行制御がモニタ160へ移されると、コンピュータシステム100は、トラステッドソフトウェア環境(若しくはプラットフォーム)又はセキュアドソフトウェア環境(若しくはプラットフォーム)に入る。図3は、トラステッドプラットフォーム300又はセキュアドプラットフォーム300の一実施形態を示している。図3の実施形態では、トラステッドソフトウェア及び非トラステッドソフトウェアを同時にロードすることができ、単一のコンピュータシステム上で同時に実行することができる。モニタ160は、1つ又は2つ以上の非トラステッドオペレーティングシステム340及び非トラステッドアプリケーション310からのハードウェア資源390への直接アクセスを選択的に許可又は防止する。
【0023】
この状況において、「非トラステッド」は、必ずしも、オペレーティングシステム又はアプリケーションが故意に不正な振る舞いを行っていること意味するものではないが、相互作用するコードのサイズ及び多様性によって、ソフトウェアが所望の通り振る舞っていることを確実に断言することが実際的でなくなること、並びに、ウィルス及び他の異質のコードがその実行と干渉していないことを確実に断言することが実際的でなくなることを意味する。通常の一実施形態では、非トラステッドコードには、今日のパーソナルコンピュータで見られる標準的なオペレーティングシステム及びアプリケーションが含まれ得る。
【0024】
また、モニタ160は、1つ又は2つ以上のトラステッドカーネル360又はセキュアカーネル360及び1つ又は2つ以上のトラステッドアプリケーション370からのハードウェア資源380への直接アクセスも選択的に許可又は防止する。このようなトラステッドカーネル360又はセキュアカーネル360及びトラステッドアプリケーション370は、モニタ160上で信頼性解析を行う能力を援助するようにサイズ及び機能において制限することができる。トラステッドアプリケーション370は、セキュア環境で実行可能な任意のソフトウェアコード、プログラム、ルーチン、又は一組のルーチンとすることができる。このように、トラステッドアプリケーション370は、さまざまなアプリケーション、すなわちコードシーケンスとすることもできるし、Javaアプレット等の比較的小さなアプリケーションとすることもできる。
【0025】
システム資源の保護又は特権を変更できるオペレーティングシステム340又はカーネル360によって標準的に遂行される命令又はオペレーションは、モニタ160によってタップ可能であり、選択的な許可若しくは拒否又は部分的な許可若しくは拒否を行うことができる。一例として、通常の一実施形態では、オペレーティングシステム340又はカーネル360によって標準的に遂行される、CPU102のページテーブルを変更する命令は、モニタ160によって代わりにタップされ、モニタ160は、その要求が、モニタ160の仮想マシンのドメイン外でページ特権の変更を試みていなかったことを確実にする。
【0026】
図3には、ポータブルトークン390も示されている。一実施形態では、ポータブルトークン390は、スマートカード内に組み込まれたクレデンシャルトークンである。スマートカードは、コンピュータシステム100がトラステッドシステムであるか否かをユーザが検証することを可能にするためにスマートカードリーダ150内に挿入することができる。さらに別の実施形態では、ポータブルトークン390は、コンピュータシステム100をユーザに供給したエンティティの系列である情報技術(IT)部門によって提供される。
【0027】
図4は、固定トークン130の評価を行うようにポータブルトークン390を実施するための一実施形態のフロー図である。処理ブロック410において、固定トークン識別プロセスが行われる。このプロセスは、ポータブルトークン390が、固定トークン130を特定することによって固定トークン130の真正性をチェックすることを伴う。
【0028】
一実施形態では、この特定は、ポータブルトークン390及び固定トークン130の双方において、ITアドミニストレータが供給する共有秘密に基づくことができる。別の実施形態では、特定は、固定トークン130の公開鍵を有するポータブルトークン390が達成することもできる。図5は、固定トークンの評価を行うためのより詳細なシーケンスを示すイベント図である。
【0029】
図5を参照すると、固定トークン特定プロセスは、時刻t1〜t4で実行される。まず、ユーザは、t1において、スマートカードリーダ150を介してポータブルトークン390をコンピュータシステム100に挿入する。t2において、固定トークン130が真正であるか否かが判断される。t3において、固定トークン130の真正性が検証される。t4において、固定トークン130が真正であると判断される。
【0030】
再び図4を参照すると、認証セッションが、処理ブロック420において開始される。固定トークン130が有効なトークンであるとしての特定が成功すると、ポータブルトークン390は、固定トークン130との認証セッションを開始する。パスフレーズをこの認証に使用することができる。一実施形態によれば、このようなパスフレーズは、ポータブルトークン390に事前に記憶される。
【0031】
再び図5を参照すると、認証セッションが、時刻t5〜t7において行われる。ここで、このセッションはt5において開始され、ユーザ認証がt6においてチェックされ、ユーザがt7において認証される。認証が成功した場合、ポータブルトークン390は、処理ブロック430(図4)において、コンピュータシステム100の状態の定義された完全性の尺度(integrity measures)を使用して、コンピュータシステム100の信頼性をチェックする。
【0032】
ポータブルトークン390が含むコンピュータシステム100の完全性の測定値(integrity measurements)に基づいて、トークン390は、プラットフォームの信頼性を判定する。一実施形態では、ポータブルトークン390は、特定のPCR値を、自身の不正に改ざんされないようになっている完全性コンテナに記憶された値と比較する。
【0033】
再び図5を参照すると、完全性/信頼性プロセスが、時刻t8〜t10において実行される。時刻t8において、トークン390が、システム100の信頼性をチェックする。t2において、完全性の測定値がt9において受け取られ、t10においてトークン390へ転送される。再び図4を参照すると、ポータブルトークン390は、処理ブロック440においてコンピュータシステム100のチャレンジセッションの成功又は失敗を表示することができる。このプロセスは、図5の時刻t11及びt12に示されている。このプロセスにおいて、ポータブルトークン390は、完全性の測定値を検証し、検証が完了したか否か及び検証が成功したか否かを示す。一実施形態では、ポータブルトークン390は、検証の結果を示すディスプレイを含む。このディスプレイは、LEDスクリーン又は小さなLCDスクリーンとすることができる。
【0034】
上述したメカニズムによって、スマートカード(たとえば、ポータブルトークン)及び固定トークン(TPM等)は、トラステッドシステムの信頼性を高めるために互いに補完し合うことが可能になる。ポータブルトークンと固定トークンとの間の協調によって、プラットフォームのユーザ/所有者は、そのプラットフォームを使用する前にそのプラットフォームの完全性及び信頼性をチェックすることが可能になる。
【0035】
本発明の多くの変更及び修正が、上記説明を読んだ後、当業者にはおそらく明らかになるが、例示として図示して説明したどの特定の実施形態も、限定するものとみなされることを全く意図していないことが理解されるべきである。したがって、さまざまな実施形態の詳細への言及は、特許請求の範囲を限定することを意図していない。特許請求の範囲は、それ自体で、本発明にとって不可欠とみなされる特徴のみを列挙している。
【図面の簡単な説明】
【0036】
【図1】コンピュータシステムの一実施形態のブロック図である。
【図2】中央処理装置の一実施形態を示す図である。
【図3】トラステッドソフトウェア環境又はセキュアドソフトウェア環境の一実施形態の図である。
【図4】固定トークンの評価を行うための一実施形態のフロー図である。
【図5】固定トークンの評価を行うための一実施形態のイベント図である。

【特許請求の範囲】
【請求項1】
トラステッド環境を動作させる中央処理装置(CPU)と、
前記CPUのトラステッドマイクロコードによって開始されるコマンドにより書き込むことができる保護されるレジスタを有するチップセットと、
前記チップセットに結合されて、前記トラステッド動作環境の作成及び維持に関係するデータを保護する固定トークンと、
前記チップセットに結合されて、前記トラステッド動作環境の完全性を検証するポータブルトークンと
を備える、コンピュータシステム。
【請求項2】
前記ポータブルトークンは、前記固定トークンの真正性を検証する、請求項1に記載のコンピュータシステム。
【請求項3】
前記ポータブルトークンは、前記トラステッド環境のユーザの真正性を検証する、請求項2に記載のコンピュータシステム。
【請求項4】
前記ポータブルトークンは、前記トラステッド動作環境から完全性の測定値を取り出すことによって、前記トラステッド動作環境の完全性を検証する、請求項3に記載のコンピュータシステム。
【請求項5】
前記ポータブルトークンは、スマートカードである、請求項1に記載のコンピュータシステム。
【請求項6】
前記チップセットに結合されて前記スマートカードを読み出すインターフェースをさらに備える、請求項5に記載のコンピュータシステム。
【請求項7】
前記ポータブルトークンは、前記完全性の検証の結果を示すディスプレイを備える、請求項5に記載のコンピュータシステム。
【請求項8】
ポータブルトークンがトラステッド動作環境内で固定トークンを特定すること、
前記トラステッド動作環境のユーザの真正性を検証すること、及び
前記トラステッド動作環境の完全性を検証すること
を含む、方法。
【請求項9】
前記固定トークンを特定することは、該固定トークンの真正性を検証することを含む、請求項8に記載の方法。
【請求項10】
前記トラステッド動作環境の完全性を検証することは、前記ポータブルトークンに記憶されている第1の組の値を前記固定トークンから受け取る第2の組の値と比較することを含む、請求項8に記載の方法。
【請求項11】
前記トラステッド動作環境が検証されているか否かを示す表示を表示することをさらに含む、請求項10に記載の方法。
【請求項12】
トラステッドコンピュータシステムプラットフォームの完全性を検証するポータブルトークンを備える、スマートカード。
【請求項13】
前記ポータブルトークンは、前記固定トークンの真正性を検証する、請求項12に記載のスマートカード。
【請求項14】
前記ポータブルトークンは、前記トラステッド動作環境のユーザの真正性を検証する、請求項13に記載のスマートカード。
【請求項15】
前記ポータブルトークンは、前記トラステッド動作環境から完全性の測定値を取り出すことによって、前記トラステッド動作環境の完全性を検証する、請求項14に記載のスマートカード。
【請求項16】
前記完全性の検証の結果を示すディスプレイをさらに備える、請求項12に記載のスマートカード。
【請求項17】
命令から成るプログラムを具現化する1つ又は2つ以上のコンピュータ可読媒体を含む製品であって、前記命令から成るプログラムは、処理ユニットによって実行されると、
トラステッド動作環境内の固定トークンをポータブルトークンに特定させ、
前記トラステッド動作環境のユーザの真正性を前記ポータブルトークンに検証させ、且つ
前記トラステッド動作環境の完全性を前記ポータブルトークンに検証させる
製品。
【請求項18】
前記固定トークンを特定することは、該固定トークンの真正性を検証することを含む、請求項17に記載の製品。
【請求項19】
前記トラステッド動作環境の完全性を検証することは、前記ポータブルトークンに記憶されている第1の組の値を前記固定トークンから受け取る第2の組の値と比較することを含む、請求項17に記載の製品。
【請求項20】
前記命令から成るプログラムは、処理ユニットによって実行されると、さらに、前記トラステッド動作環境が検証されているか否かを示す表示を前記ポータブルトークンに表示させる、請求項17に記載の製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2008−546122(P2008−546122A)
【公表日】平成20年12月18日(2008.12.18)
【国際特許分類】
【出願番号】特願2008−516048(P2008−516048)
【出願日】平成18年6月28日(2006.6.28)
【国際出願番号】PCT/US2006/026215
【国際公開番号】WO2007/002954
【国際公開日】平成19年1月4日(2007.1.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】