(57)【要約】【課題】ユーザ認証に基づいて完全性測定値を修正するための方法及びシステムを提供する。【解決手段】本発明に係るシステムは、プロセッサ（１３４）と、このプロセッサ（１３４）にアクセス可能な基本入出力システム（ＢＩＯＳ）（１１０）とを備えるコンピュータシステム（１００）が提供される。ブートプロセス中に、ＢＩＯＳ（１１０）は、コンピュータシステム（１００）の完全性測定値を求め、ユーザ認証に基づいてこの完全性測定値を修正する。【選択図】図４
2010511209.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム（１００）であって、
プロセッサ（１３４）と、
前記プロセッサ（１３４）にアクセス可能な基本入出力システム（ＢＩＯＳ）（１１０）と
を備え、
ブートプロセス中に、前記ＢＩＯＳ（１１０）は、
前記コンピュータシステム（１００）の完全性測定値を求め、
ユーザ認証に基づいて前記完全性測定値を修正する
コンピュータシステム。
【請求項２】
前記ユーザ認証が成功した場合、前記ＢＩＯＳ（１１０）は、第１の値によって前記完全性測定値を修正し、
前記ユーザ認証が成功しなかった場合、前記ＢＩＯＳ（１１０）は、前記第１の値とは異なる第２の値によって前記完全性測定値を修正する
請求項１に記載のコンピュータシステム。
【請求項３】
前記修正された完全性測定値は、所定の完全性測定値と比較され、
前記修正された完全性測定値が前記所定の完全性測定値と一致する場合、前記ＢＩＯＳ（１１０）は、シークレットへのアクセスを受け取る
請求項１に記載のコンピュータシステム。
【請求項４】
前記プロセッサ（１３４）に結合されるロッキングストレージデバイス（１４０）をさらに備え、
前記ＢＩＯＳ（１１０）は、前記シークレットを使用して、前記ロッキングストレージデバイス（１４０）をロック解除する
請求項３に記載のコンピュータシステム。
【請求項５】
前記プロセッサ（２３４）に結合されるストレージデバイス（２４０）をさらに備え、
前記ストレージデバイス（２４０）は、暗号化データ（２４２）を記憶し、
前記ＢＩＯＳは、前記シークレットに基づいて前記暗号化データ（２４２）を解読する
請求項３に記載のコンピュータシステム。
【請求項６】
前記プロセッサ（１３４）に結合されるトラステッドプラットフォームモジュール（ＴＰＭ）（１２０）をさらに備え、
前記ＴＰＭ（１２０）は、
シークレット及び所定の完全性測定値をシールし、
前記修正された完全性測定値が前記所定の完全性測定値と一致しない限り、前記シークレットをシール解除しない
請求項１に記載のコンピュータシステム。
【請求項７】
ブートプロセス中に、コンピュータシステム（１００）の第１の完全性測定値をセキュアに記憶することと、
その後のブートプロセス中に、前記コンピュータシステム（１００）の第２の完全性測定値を生成することと、
ユーザ認証に基づいて前記第２の完全性測定値を修正することと、
前記第１の完全性測定値が、前記修正された第２の完全性測定値と一致する場合に、シークレットにアクセスすることと
を含む方法。
【請求項８】
前記シークレットに基づいてストレージデバイス（１４０）をロック解除することをさらに含む
請求項７に記載の方法。
【請求項９】
前記シークレットに基づいてデータ（２４２）を解読することをさらに含む
請求項７に記載の方法。
【請求項１０】
前記第１の完全性測定値をセキュアに記憶することは、
パワーオンセルフテスト（ＰＯＳＴ）開始値をプラットフォーム構成レジスタ（ＰＣＲ）（１３２）に拡張することと、
前記コンピュータシステム（１００）に固有のパラメータを測定すると共に、対応する値を前記ＰＣＲ（１３２）に拡張することと、
成功したユーザ認証値を前記ＰＣＲ（１３２）に拡張することと
を含む請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、ユーザ認証に基づいて完全性測定値を修正するための方法及びシステムに関する。
【背景技術】
【０００２】
多くの認証ストラテジーは、認証を受けることができる別個のユーザ識別情報又はシークレット（secret：秘密）の数を制限している。
たとえば、いくつかのドライブロックメカニズムは、単一のパスワードの認証しかサポートしていない。ドライブロックパスワードを認証するために、基本入出力システム（ＢＩＯＳ）は、ユーザがプリブート環境の期間中にパスワードを入力するように要求し、ユーザによって入力された値をハードドライブに提供する。
パスワードが正しい場合、ハードドライブは、回転を開始する（すなわち、ドライブは「ロック解除」される）。
パスワードが誤っている場合、ドライブは回転しない（すなわち、ドライブは「ロック」される）。
このプリブート認証特徴は、マルチユーザ環境（たとえば、職場）では、多少適合しないところがある。複数のユーザによって共通のパスワードを共有することができる（複数のユーザのいずれもが同じパスワードを使用して認証を受けることを可能にする）が、セキュリティ及びユーザの使いやすさは、個別化されたパスワードを使用した方がより良く提供される。
さらに、他の認証プロセス（たとえば、スマートカード又はバイオメトリックプロセス）を、グループではなく個別のユーザに関連付けることもできる。
したがって、単一のシークレット又は限られた数のシークレットの認証を伴う認証ストラテジーは、多くのユーザ識別情報又はシークレットを認証することが望ましいマルチユーザ環境では、適合しないもの、又は、少なくとも不便なものとなってきている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、ユーザ認証に基づいて完全性測定値を修正するための方法及びシステムを提供する。
【課題を解決するための手段】
【０００４】
本発明の一形態は、コンピュータシステム（１００）であって、プロセッサ（１３４）と、前記プロセッサ（１３４）にアクセス可能な基本入出力システム（ＢＩＯＳ）（１１０）とを備え、ブートプロセス中に、前記ＢＩＯＳ（１１０）は、前記コンピュータシステム（１００）の完全性測定値を求め、ユーザ認証に基づいて前記完全性測定値を修正する。
【図面の簡単な説明】
【０００５】
次に、本発明の例示の実施形態を詳細に説明するために、添付図面を参照することにする。
【０００６】
【図１】本発明の実施形態によるコンピュータを示す図である。
【図２】本発明の実施形態によるシステムを示す図である。
【図３】本発明の実施形態による方法を示す図である。
【図４】本発明の実施形態による別の方法を示す図である。
【発明を実施するための形態】
【０００７】
表記法及び用語体系
以下の説明及び特許請求の範囲の全体にわたって、特定のシステムコンポーネントを指すために、一定の用語が使用される。
当業者には認識されるように、コンピュータ会社によって、１つのコンポーネントを異なる名前で指す場合がある。
本明細書は、名前は異なるが、機能は異ならないコンポーネントを区別することは意図していない。
以下の論述及び特許請求の範囲において、「含む」及び「備える」という用語は、オープンエンド形式で使用され、したがって、「〜を含むが、これらに限定されるものではない」ことを意味するように解釈されるべきである。
また、「結合する」という用語は、間接的な電気接続、直接的な電気接続、光電気接続、又は無線電気接続のいずれかを意味するように意図されている。
したがって、第１のデバイスが第２のデバイスに結合する場合、その接続は、直接的な電気的接続を通じてのものである場合もあるし、他のデバイス及び接続を介した間接的な電気的接続を通じてのものである場合もあるし、光電気接続を通じてのものである場合もあるし、又は無線電気接続を通じてのものである場合もある。
【０００８】
以下の論述は、本発明のさまざまな実施形態を対象としている。
これらの実施形態の１つ又は複数は好ましいものとすることができるが、開示される実施形態は、特許請求の範囲を含む本開示の範囲を限定するものとして解釈されるべきでもないし、別の方法で使用されるべきでもない。
加えて、当業者は、以下の説明が広い用途を有することを理解し、また、どの実施形態の論述も、その実施形態の例示にすぎないように意図されており、特許請求の範囲を含む本開示の範囲がその実施形態に限定されることを暗示するように意図されていないことを理解するであろう。
【０００９】
多くの認証ストラテジーは、認証を受けることができる別個のユーザ識別情報及びシークレットの数を制限している。
本発明の実施形態は、本発明の一実施形態がなければ単一のシークレット又は限られた一組のシークレットの認証しかサポートしない（すなわち、このセキュアデバイスにアクセスする可能性のあるユーザの数が、このセキュアデバイスについて又はこのデバイスによって認証を受けることができるシークレットの個数よりも多い）セキュアデバイス（又は特権）にアクセスする必要条件として、複数のユーザ識別情報又はシークレットのいずれの認証もサポートする。
【００１０】
少なくともいくつかの実施形態では、コンピューティングプラットフォームの基本入出力システム（ＢＩＯＳ）が、複数のユーザとセキュアデバイスとの間でトラステッドエージェントとして動作する。
換言すれば、ＢＩＯＳは、セキュアデバイス又は特権をロック解除するシークレットを制御する。
ブートプロセス中、ＢＩＯＳは、個別のパスワード、スマートカード、バイオメトリクス、又は他の或る認証プロセスに基づいて複数のユーザのいずれをも認証することができる。
ユーザ認証が成功した場合、ＢＩＯＳは、セキュアデバイスに関連付けられたシークレットにセキュアにアクセスする。
いくつかの実施形態では、ＢＩＯＳは、シークレットのシール及びシール解除を行うことができるトラステッドプラットフォームモジュール（ＴＰＭ）からシークレットを取り出す。
取り出されると、ＢＩＯＳは、このシークレットを使用して、セキュアデバイスのロック解除又は特権へのアクセスを行う。
一例として、セキュアデバイスは、ドライブロックメカニズムによって保護されたディスクドライブとすることができる。
付加的に又は代替的に、ＢＩＯＳは、シークレットを使用して、暗号化データを解読したもののような、セキュアな特権にアクセスすることができる。
【００１１】
図１は、本発明の実施形態によるコンピュータ１００を示している。
コンピュータ１００は、たとえば、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドデバイスとすることができる。
いくつかの実施形態では、コンピュータ１００は、トラステッドプラットフォームモジュール（ＴＰＭ）１２０とドライブロック機能１４２を有するディスクドライブ１４０とに結合されるプロセッサ１３４を備える。
図示するように、プロセッサ１３４は、基本入出力システム（ＢＩＯＳ）１１０にアクセスすることができる。
ＢＩＯＳ１１０は、たとえば、チップセット（たとえば、「サウスブリッジ」）又は他のモジュールの一部として実施することができる。
プロセッサ１３４は、認証インターフェース１５０にも結合している。
認証インターフェース１５０は、ユーザが、ユーザ認証用のデータをコンピュータ１００に入力することを可能にする。
認証インターフェース１５０は、たとえば、キーボード、マウス、仮想トークン（たとえば、ユニバーサルシリアルバス（ＵＳＢ）トークン）ソース、スマートカードリーダ、バイオメトリクスキャナ、又はユーザ認証用のデータを受け取る他の或るインターフェースとすることができる。
【００１２】
ＴＰＭ１２０は、デジタル署名及び暗号化用のＲＳＡ非対称アルゴリズム、ＳＨＡ−１ハッシング、ハッシュベースメッセージ認証コード（ＨＭＡＣ）機能、セキュアストレージ、乱数生成、又は他の機能のような暗号機能を提供するように構成されている。
ＴＰＭ１２０は、ソフトウェア、ファームウェア、及び／又はハードウェアを使用して実施される。
図１及び図２に示すＴＰＭコンポーネントは、一般化されており、すべてを含んでいるわけではない。
また、ＴＰＭのアーキテクチャ及び機能は、場合によっては、時間の経過と共に、トラステッドコンピューティンググループ（ＴＣＧ）によって認可されたように変化し得る。
【００１３】
図１に示すように、ＴＰＭ１２０は、プロセッサ１３４と通信する入出力（Ｉ／Ｏ）インターフェース１２２を備える。
Ｉ／Ｏインターフェース１２２は、暗号サービス１２４、乱数ソース１２６、非対称アルゴリズム１２８、ストレージ１３０、及びプラットフォーム構成レジスタ（ＰＣＲ）１３２のような他のＴＰＭコンポーネントに結合している。
暗号サービス１２４は、ハッシング、デジタル署名、暗号化、及び解読のような機能をサポートする。乱数ソース１２６は、暗号サービス１２４用の乱数を生成する。
たとえば、いくつかの実施形態では、暗号サービス１２４は、乱数を使用して、暗号鍵を生成する。
非対称アルゴリズム１２８は、ＴＰＭ１２０が非対称鍵演算を行うことを可能にする。
ストレージ１３０は、ＴＰＭ１２０によって保護されるシークレット（たとえば、暗号鍵又は他のデータ）をセキュアに記憶する。
ＰＣＲ１３２は、コンピュータ１００の現在の状態についての情報を記憶する。
たとえば、いくつかの実施形態では、ＰＣＲ１３２は、コンピュータ１００に関連する個別の完全性測定値及び完全性測定値のシーケンスを記憶する。
後に説明するように、ＰＣＲ１３２の少なくとも１つに記憶された完全性測定値を、ドライブロック機能１４２に関連付けられたシークレットをＢＩＯＳ１１０に提供する必要条件として検証することができる。
【００１４】
図１に示すように、ＢＩＯＳ１１０は、ドライブロックインターフェース１１４及びトラステッドエージェント機能１１６を備える。
本発明の実施形態の説明では、便宜上、「初期化ステージ」及び「検証ステージ」という用語が使用される。
初期化ステージでは、一定の条件が満たされる場合にしかシークレットにアクセスできないように、このシークレットはセキュアに記憶される。
検証ステージでは、それらの条件が満たされているか否かに関する判断が行われる。
条件が満たされている場合、シークレットは、ＢＩＯＳ１１０にとってアクセス可能になる。
そうでない場合、シークレットは、引き続きセキュアに記憶され、アクセス不能である。
本明細書で説明するように、ドライブロックインターフェース１１４及びトラステッドエージェント機能１１６の双方が、初期化ステージ及び検証ステージで一定の機能を遂行する。
【００１５】
初期化ステージの期間中、ドライブロックインターフェース１１４は、アドミニストレータ又は他の認可されたエンティティが、ディスクドライブ１４０のドライブロック機能１４２と共に使用されるシークレットを入力することを可能にする（すなわち、シークレットを使用して、ディスクドライブ１４０のロック及び／又はロック解除を行うことができる）。
或いは、ドライブロックインターフェース１１４は、ＢＩＯＳ１１０に、ユーザ入力なしでシークレットを生成させる。
いずれの場合も、トラステッドエージェント機能１１６は、一定の条件が満たされる場合にしかシークレットにアクセスできないようにシークレットをセキュアに記憶させる。
少なくともいくつかの実施形態では、トラステッドエージェント機能１１６は、ＴＰＭ１２０のみがシークレットをシール解除できるように、ＴＰＭ１２０によってシークレットをシールさせる。
【００１６】
シークレットをシールするために、ＴＰＭ１２０は、シークレットをデータ構造体（時に、「ブロブ」と呼称されることがある）内に挿入する。
少なくともいくつかの実施形態では、ブロブのフォーマットは、ＴＣＧによって規定されている。
（シークレットを収容するエリアのような）ブロブの複数の部分が、ＴＰＭ１２０によって暗号化される。
ブロブは、ＢＩＯＳ１１０によって行われるブートオペレーション又は完全性測定に基づいて「拡張」されたＰＣＲ値も含むことができる。
ＢＩＯＳ１１０が所与のＰＣＲ１３２に拡張することができる値のいくつかの例には、パワーオンセルフテスト（ＰＯＳＴ）開始値、プラットフォーム固有値、成功したユーザ認証値、失敗したユーザ認証値、ＰＯＳＴ終了値（すなわち、プラットフォームのハードウェア、ファームウェア、若しくはソフトウェアの完全性測定値）、又は他の値が含まれるが、これらに限定されるものではない。
少なくともいくつかの実施形態では、シークレットでシールされたＰＣＲ値は、ＰＯＳＴ開始値、プラットフォーム固有値、及び成功したユーザ認証値に基づいて拡張されている。
ＴＰＭ１２０のみがブロブをシール解除できるように、ＴＰＭ１２０が、暗号サービス１２４を使用して、シークレット及びＰＣＲ値を収容したブロブをシールする。
少なくともいくつかの実施形態では、ＴＰＭ１２０は、シークレットをＢＩＯＳ１１０に公表する前に、現在のＰＣＲ値が、ブロブで指定されたＰＣＲ値と一致することを検証する。
いくつかの実施形態の場合にあり得るように、ＴＰＭ１２０がユーザ認証に関与している場合、ユーザパスワード（又は他の識別子）も、ブロブに挿入することができ、ＴＰＭ１２０によってシールすることができる。
このような場合、ＴＰＭ１２０は、シークレットをＢＩＯＳ１１０に公表する前に、このパスワードを検証することができる。
【００１７】
検証ステージの期間中（たとえば、その後のブートの期間中）、ＢＩＯＳ１１０は、コンピュータ１００のブートオペレーション又は完全性測定を再び行う。
これらの完全性測定値は、たとえば、ＰＣＲ１３２の少なくとも１つに記憶することができる。
検証ステージの期間中の或る時点において、トラステッドエージェント機能１１６は、コンピュータ１００にアクセスする複数のユーザのいずれの認証も行う。
このユーザ認証は、認証インターフェース１５０及びＢＩＯＳ１１０によってサポートされたパスワード、スマートカード、バイオメトリクス、又は他の任意の認証プロセスに基づくことができる。
ＴＰＭ１２０は、成功したユーザ認証に部分的に基づいてシークレットを選択的にシール解除するが、ＴＰＭ１２０は、ユーザ認証に関与する場合もあるし関与しない場合もある。
ＴＰＭ１２０がユーザ認証に関与する場合、ユーザは、前述したようにシークレットでシールされたパスワードを入力することによって認証を受けることができる。
【００１８】
ユーザの認証が成功した場合（ＴＰＭ１２０が関与しているか否かにかかわらず）、トラステッドエージェント機能１１６は、ＢＩＯＳ１１０に、コンピュータ１００の完全性測定値を修正させる。
たとえば、ＢＩＯＳ１１０は、成功したユーザ認証値を所与のＰＣＲ１３２に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のＰＣＲ１３２は、当該ＰＣＲ１３２に拡張されたコンピュータ１００のＰＯＳＴ開始値及びプラットフォーム固有値をすでに有していることになる。
或いは、これらの値（測定値）は、異なる順序で所与のＰＣＲ１３２に拡張することができる（たとえば、コンピュータ１００のプラットフォーム固有値が所与のＰＣＲ１３２に拡張される前に、成功したユーザ認証値を所与のＰＣＲ１３２に拡張することができる）。
所与のＰＣＲ１３２に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中使用される限り、変化する可能性がある。
換言すれば、検証ステージの１つの目的は、初期化ステージで生成されてシールされたのと同じＰＣＲ値を選択的に生成することである。
少なくともいくつかの実施形態では、ユーザ認証が成功し、且つ、コンピュータ１００の一定のプラットフォーム固有測定値が変化していない場合にのみ、初期化ステージで生成されたＰＣＲ値は、検証ステージで生成される。
【００１９】
所望の場合に、初期化ステージ及び検証ステージの期間中に所与のＰＣＲ１３２に拡張される値の順序及び数を更新することができる。
このような更新は、初期化ステージ及び検証ステージのセキュリティを増大させるために定期的に行うことができ、且つ／又は、コンピュータ１００のハードウェア、ファームウェア、又はソフトウェアの更新の必要性が生じた場合に行うことができる。
【００２０】
ユーザの認証が成功しなかった場合、トラステッドエージェント機能１１６は、ＢＩＯＳ１１０に、コンピュータ１００の完全性測定値を修正させ、失敗したユーザ認証に基づいて修正された完全性測定値が、成功したユーザ認証に基づいて修正された完全性測定値と異なるようにする。
たとえば、ＢＩＯＳ１１０は、失敗したユーザ認証値を所与のＰＣＲ１３２に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のＰＣＲ１３２は、当該所与のＰＣＲ１３２に拡張されたＰＯＳＴ開始値及びプラットフォーム固有値をすでに有していることになる。
前述したように、所与のＰＣＲ１３２に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中に使用される限り、変化する可能性がある。
【００２１】
完全性測定値が、成功したユーザ認証又は失敗したユーザ認証に基づいて修正された後、トラステッドエージェント機能１１６は、セキュアに記憶されているシークレットへのアクセスを要求する。
修正された完全性測定値が、成功したユーザ認証に部分的に対応する所定の値と等しい場合、シークレットは、トラステッドエージェント機能１１６に公表される。
いくつかの実施形態では、検証ステージの期間中に生成されたＰＣＲ値が、初期化ステージの期間中に生成されてそのシークレットでシールされたＰＣＲ値と一致する場合に、ＴＰＭ１２０は、トラステッドエージェント機能１１６にそのシークレットを公表する。
【００２２】
ユーザ認証が失敗した場合、初期化ステージで生成されたＰＣＲ値は、検証ステージでは生成されない。
付加的に又は代替的に、コンピュータ１００の一定のプラットフォーム固有測定値が変化した場合、初期化ステージで生成されたＰＣＲ値は、検証ステージでは生成されない。  
少なくとも初期化ステージで生成されたＰＣＲ値は、ＰＣＲ値が検証ステージで比較される時に生成されないことになる。他方、ユーザ認証が成功し、且つ、コンピュータ１００の一定のプラットフォーム固有測定値が変化していない場合、初期化ステージで生成されたＰＣＲ値は、ＰＣＲ値の比較が成功するように、検証ステージで生成される。
【００２３】
修正された完全性測定値と所定の完全性測定値との比較に成功すると、ＢＩＯＳ１１０は、シークレットを受け取る。
たとえば、いくつかの実施形態では、検証ステージの期間中に生成されたＰＣＲ値と、初期化ステージの期間中に生成されてシークレットでシールされたＰＣＲ値との比較に成功すると、ＢＩＯＳ１１０は、ＴＰＭ１２０からシークレットを受け取る。
ドライブロックインターフェース１１４は、次に、そのシークレットを使用して、ディスクドライブ１４０のドライブロック機能１４２をロック解除することができる。
比較が失敗した場合、シークレットは、ＢＩＯＳ１１０に提供されず、ディスクドライブ１４０は引き続きロックされる。
【００２４】
図２は、本発明の実施形態によるシステム２００を示している。
図２に示すように、システム２００は、トラステッドプラットフォームモジュール（ＴＰＭ）１２０に結合されるプロセッサ２３４を有するコンピュータ２０２を備える。
ＴＰＭ１２０の機能は、図１について前述されており、便宜上、図２について繰り返さないことにする。
しかしながら、前述したＴＰＭの機能は変化していないが、ＴＰＭ１２０が図２で使用される方法は、ＴＰＭ１２０が図１で使用される方法と異なる可能性があることは理解されるべきである。
また、図１のコンピュータ１００及び図２のコンピュータ２０２が、別個のコンピュータである場合、それぞれが、別個のＴＰＭ１２０を実施することになる。
【００２５】
図２に示すように、プロセッサ２３４は、たとえば、チップセット（たとえば、「サウスブリッジ」）又は他のモジュールの一部として実施することができるＢＩＯＳ２１０にアクセスすることができる。
ＢＩＯＳ２１０は、図１におけるようなドライブロックインターフェース１１４ではなく暗号化インターフェース２１４を備える点を除いて、図１のＢＩＯＳ１１０と同様である。
代替的な実施形態では、ＢＩＯＳ２１０は、図１におけるようなドライブロックインターフェース１１４及び図２におけるような暗号化インターフェース２１４の双方を備えることができる。
【００２６】
図２に示すように、プロセッサ２３４は、２次ストレージ２４０、ランダムアクセスメモリ（ＲＡＭ）２３８、ネットワークインターフェース２４４、認証インターフェース２５０、入出力（Ｉ／Ｏ）デバイス２４６等の他のコンポーネントにも結合している。
一例として、Ｉ／Ｏデバイス２４６は、プリンタ、スキャナ、ビデオモニタ、液晶ディスプレイ（ＬＣＤ）、タッチスクリーンディスプレイ、キーボード、キーパッド、スイッチ、ダイヤル、マウス、トラックボール、音声認識器、カードリーダ、紙テープリーダ、又は他のＩ／Ｏデバイスとすることができる。
【００２７】
少なくともいくつかの実施形態では、２次ストレージ２４０は、暗号化データ２４２を記憶する少なくとも１つのディスクドライブ又はテープドライブを備える。
暗号化データ２４２は、２次ストレージ２４０によって記憶されたデータの一部の場合もあるし、すべての場合もあり、適切な暗号鍵のみが、暗号化データ２４２を解読するのに使用することができる。
２次ストレージ２４０は、データの不揮発性ストレージに使用され、ＲＡＭ２３８がすべての作業データを保持できるほど十分大きくない場合にはオーバーフローデータストレージデバイスとして使用される。
また、２次ストレージ２４０は、ＲＡＭ２３８にロードされるプログラムが実行のために選択された時に、このようなプログラムを記憶するのにも使用することができる。
ＲＡＭ２３８は、揮発性のデータ及び／又は命令を記憶することができる。
【００２８】
図２では、プロセッサ２３４は、ハードディスク、フロッピー（登録商標）ディスク、光ディスク（これらのさまざまなディスクベースのシステムはすべて２次ストレージ２４０とみなすことができる）、ＲＡＭ２３８、又はネットワークインターフェース２４４からアクセスされる命令、コード、コンピュータプログラム、又はスクリプトを実行する。
プロセッサ２３４が、２次ストレージ２４０に記憶された暗号化データ２４２にアクセスするか又は暗号化データ２４２を実行するには、暗号化データ２４２の解読が必要である。
この解読は、ＢＩＯＳ２１０が、後に説明するようにセキュアに記憶された暗号鍵にアクセスすることを伴う。
【００２９】
ネットワークインターフェース２４４は、モデム、集合モデム、イーサネット（登録商標）カード、ユニバーサルシリアルバス（ＵＳＢ）インターフェースカード、シリアルインターフェース、トークンリングカード、ファイバ分散データインターフェース（ＦＤＤＩ）カード、無線ローカルエリアネットワーク（ＷＬＡＮ）カード、符号分割多元接続（ＣＤＭＡ）無線トランシーバカード及び／若しくは移動体通信用グローバルシステム（ＧＳＭ）無線トランシーバカードのような無線トランシーバカード、又は他のネットワークインターフェースの形態を取ることができる。
ネットワークインターフェース２４４を介して、プロセッサ２３４は、インターネット又はイントラネット（複数可）に接続して、それらと通信することができる。
このようなネットワーク接続では、プロセッサ２３４は、ユーザ認証を行う過程又はコンピュータ２０２によってセキュアに記憶された暗号鍵にアクセスする過程で、ネットワークから情報を受信する場合もあるし、ネットワークへ情報を出力する場合もあることが予測される。
たとえば、いくつかの実施形態の場合にあり得るように、コンピュータ２０２が、リモートロケーションからブートされる場合、暗号化インターフェース２１４及びトラステッドエージェント機能２１６によって遂行される少なくともいくつかの機能は、ローカルにではなくリモートで制御することができる。
ＴＰＭが、暗号鍵をセキュアに記憶するのに使用される場合、暗号鍵をシールしたのと同じＴＰＭが、その暗号鍵をシール解除することになる。
【００３０】
本発明の実施形態の説明では、便宜上、「初期化ステージ」及び「検証ステージ」という用語が再び使用される。
初期化ステージでは、一定の条件が満たされる場合にしか暗号鍵にアクセスできないように、この暗号鍵はセキュアに記憶される。
検証ステージでは、それらの条件が満たされているか否かに関する判断が行われる。
条件が満たされている場合、暗号鍵は、ＢＩＯＳ２１０にとってアクセス可能になる。
そうでない場合、暗号鍵は、引き続きセキュアに記憶され、アクセス不能である。
本明細書で説明するように、暗号化インターフェース２１４及びトラステッドエージェント機能２１６の双方が、初期化ステージ及び検証ステージで一定の機能を遂行する。
【００３１】
初期化ステージの期間中、暗号化インターフェース２１４は、アドミニストレータ又は他の認可されたエンティティが、データ（たとえば、２次ストレージ２４０のデータ）を暗号化するのに使用される暗号鍵を入力することを可能にする。
或いは、暗号化インターフェース２１４は、ＢＩＯＳ２１０に、ユーザ入力なしで暗号鍵を生成させることもできる。
いずれの場合も、トラステッドエージェント機能２１６は、一定の条件が満たされる場合にしか暗号鍵にアクセスできないように暗号鍵をセキュアに記憶させる。
少なくともいくつかの実施形態では、トラステッドエージェント機能２１６は、ＴＰＭ１２０のみが暗号鍵をシール解除できるように、ＴＰＭ１２０によって暗号鍵をシールさせる。
【００３２】
暗号鍵をシールするために、ＴＰＭ１２０は、データの「ブロブ」と呼称されるデータ構造体内に暗号鍵を挿入する。
前述したように、いくつかの実施形態では、ブロブのフォーマットは、ＴＣＧによって規定されている。
（暗号鍵を収容するエリアのような）ブロブの複数の部分が、ＴＰＭ１２０によって暗号化される。
ブロブは、コンピュータ２０２のＢＩＯＳ２１０によって行われるブートオペレーション又は完全性測定に基づいて「拡張」されたＰＣＲ値も含むことができる。
ＢＩＯＳ２１０が所与のＰＣＲ１３２に拡張することができる値のいくつかの例には、パワーオンセルフテスト（ＰＯＳＴ）開始値、プラットフォーム固有値（すなわち、プラットフォームのハードウェア、ファームウェア、又はソフトウェアの完全性測定値）、成功したユーザ認証値、失敗したユーザ認証値、ＰＯＳＴ終了値、又は他の値が含まれるが、これらに限定されるものではない。
少なくともいくつかの実施形態では、暗号鍵でシールされたＰＣＲ値は、ＰＯＳＴ開始値、プラットフォーム固有値、及び成功したユーザ認証値に基づいて拡張されている。
ＴＰＭ１２０のみがブロブをシール解除できるように、ＴＰＭ１２０が、暗号サービス１２４を使用して、暗号鍵及びＰＣＲ値を収容したブロブをシールする。
少なくともいくつかの実施形態では、ＴＰＭ１２０は、暗号鍵をＢＩＯＳ２１０に公表する前に、現在のＰＣＲ値が、ブロブで指定されたＰＣＲ値と一致することを検証する。
いくつかの実施形態の場合にあり得るように、ＴＰＭ１２０がユーザ認証に関与している場合、ユーザパスワード（又は他の識別子）も、ブロブに挿入することができ、ＴＰＭ１２０によってシールすることができる。
このような場合、ＴＰＭ１２０は、暗号鍵をＢＩＯＳ２１０に公表する前に、このユーザパスワードを検証することができる。
【００３３】
検証ステージの期間中（たとえば、その後のブートの期間中）、ＢＩＯＳ２１０は、コンピュータ２０２のブートオペレーション又は完全性測定を再び行う。
これらの完全性測定値は、たとえば、ＰＣＲ１３２の少なくとも１つに記憶することができる。
検証ステージの期間中の或る時点において、トラステッドエージェント機能２１６は、コンピュータ２０２にアクセスする複数のユーザのいずれの認証も行う。
このユーザ認証は、認証インターフェース２５０及びＢＩＯＳ２１０によってサポートされたパスワード、スマートカード、バイオメトリクス、又は他の任意の認証プロセスに基づくことができる。
ＴＰＭ１２０は、成功したユーザ認証に部分的に基づいて暗号鍵を後にシール解除するが、ＴＰＭ１２０は、ユーザ認証に関与する場合もあるし関与しない場合もある。
ＴＰＭ１２０がユーザ認証に関与する場合、ユーザは、前述したように暗号鍵でシールされたパスワードを入力することによって認証を受けることができる。
【００３４】
ユーザの認証が成功した場合（ＴＰＭ１２０が関与しているか否かにかかわらず）、トラステッドエージェント機能２１６は、ＢＩＯＳ２１０に、コンピュータ２０２の完全性測定値を修正させる。
たとえば、ＢＩＯＳ２１０は、成功したユーザ認証値を所与のＰＣＲ１３２に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のＰＣＲ１３２は、当該ＰＣＲ１３２に拡張されたコンピュータ２０２のＰＯＳＴ開始値及びプラットフォーム固有値をすでに有していることになる。
或いは、これらの値（測定値）は、異なる順序で所与のＰＣＲ１３２に拡張することもできる（たとえば、コンピュータ２０２のプラットフォーム固有値が所与のＰＣＲ１３２に拡張される前に、成功したユーザ認証値を所与のＰＣＲ１３２に拡張することができる）。
所与のＰＣＲ１３２に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中使用される限り、変化する可能性がある。
換言すれば、検証ステージの１つの目的は、初期化ステージで生成されてシールされたのと同じＰＣＲ値を選択的に生成することである。
少なくともいくつかの実施形態では、ユーザ認証が成功し、且つ、コンピュータ２０２の一定のプラットフォーム固有測定値が変化していない場合に、初期化ステージで生成されたＰＣＲ値は、検証ステージで生成される。
プラットフォーム固有測定値の例には、ＢＩＯＳバージョン、実際のＢＩＯＳコード、デバイス構成値、及びハードドライブ識別子が含まれるが、これらに限定されるものではない。
【００３５】
所望の場合に、初期化ステージ及び検証ステージの期間中に所与のＰＣＲ１３２に拡張される値の順序及び数を更新することができる。
このような更新は、初期化ステージ及び検証ステージのセキュリティを増大させるために定期的に行うことができ、且つ／又は、コンピュータ２０２のハードウェア、ファームウェア、又はソフトウェアの更新の必要性が生じた場合に行うことができる。
【００３６】
ユーザの認証が成功しなかった場合、トラステッドエージェント機能２１６は、ＢＩＯＳ２１０に、コンピュータ２０２の完全性測定値を修正させ、失敗したユーザ認証に基づいて修正された完全性測定値が、成功したユーザ認証に基づいて修正された完全性測定値と異なるようにする。
たとえば、ＢＩＯＳ２１０は、失敗したユーザ認証値を所与のＰＣＲ１３２に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のＰＣＲ１３２は、当該所与のＰＣＲ１３２に拡張されたＰＯＳＴ開始値及びプラットフォーム固有値をすでに有していることになる。
前述したように、所与のＰＣＲ１３２に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中に使用される限り、変化する可能性がある。
【００３７】
完全性測定値が、成功したユーザ認証又は失敗したユーザ認証に基づいて修正された後、トラステッドエージェント機能２１６は、セキュアに記憶された暗号鍵へのアクセスを要求する。
修正された完全性測定値が、成功したユーザ認証に部分的に対応する所定の値と等しい場合、暗号鍵は、トラステッドエージェント機能２１６に公表される。
いくつかの実施形態では、検証ステージの期間中に生成されたＰＣＲ値が、初期化ステージの期間中に生成されてその暗号鍵でシールされたＰＣＲ値と一致する場合に、ＴＰＭ１２０は、トラステッドエージェント機能２１６にその暗号鍵を公表する。
【００３８】
ユーザ認証が失敗した場合、初期化ステージで生成されたＰＣＲ値は、検証ステージでは生成されない。
付加的に又は代替的に、コンピュータ２０２の一定のプラットフォーム固有測定値が変化した場合、初期化ステージで生成されたＰＣＲ値は、検証ステージでは生成されない。
少なくとも初期化ステージで生成されたＰＣＲ値は、ＰＣＲ値が検証ステージで比較される時に生成されないことになる。
他方、ユーザ認証が成功し、且つ、コンピュータ２０２の一定のプラットフォーム固有測定値が変化していない場合、初期化ステージで生成されたＰＣＲ値は、ＰＣＲ値の比較が成功するように、検証ステージで生成される。
【００３９】
修正された完全性測定値と所定の完全性測定値との比較に成功すると、ＢＩＯＳ２１０は、暗号鍵を受け取る。
たとえば、いくつかの実施形態では、検証ステージの期間中に生成されたＰＣＲ値と、初期化ステージの期間中に生成されて暗号鍵でシールされたＰＣＲ値との比較に成功すると、ＢＩＯＳ２１０は、ＴＰＭ１２０から暗号鍵を受け取る。
暗号化インターフェース２１４は、次に、その暗号鍵を使用して、暗号化データ２４２を解読することができる。
或いは、ＢＩＯＳ２１０は、データの解読を行う他の或るセキュアインターフェース（たとえば、別の暗号化インターフェース）に暗号鍵を渡すこともできる。
ＰＣＲ値の比較が失敗した場合、暗号鍵は、ＢＩＯＳ２１０に提供されない。
このような場合、暗号化データ２４２を解読することができない。
【００４０】
図３は、本発明の実施形態による方法３００を示している。
少なくともいくつかの実施形態では、方法３００は、前述した初期化ステージに対応する。
図３に示すように、方法３００は、ＰＯＳＴ開始値をＰＣＲに拡張すること（ブロック３０２）を含む。
ブロック３０４において、プラットフォーム特性が測定され、対応する値がＰＣＲに拡張される。
ブロック３０６において、成功したユーザ認証値がＰＣＲに拡張される。次に、シークレット及びＰＣＲ値がシールされる（ブロック３０８）。
このシークレットは、たとえば、ドライブロック機能のロック解除又は暗号化データの解読に使用することができる。
最後に、ＰＯＳＴ終了値がＰＣＲに拡張される（ブロック３１０）。
ＰＯＳＴ終了値をＰＣＲに拡張することによって、シークレットでシールされた前のＰＣＲ値を確認することはできない（すなわち、各拡張オペレーションは、前のＰＣＲ値のいずれもが確認されることを防止するようにＰＣＲ値を変更する）。
方法３００は、たとえば、ブートプロセス中に、ＴＰＭと通信するＢＩＯＳを使用して遂行することができる。
【００４１】
図４は、本発明の実施形態による別の方法４００を示している。
少なくともいくつかの実施形態では、方法４００は、前述した検証ステージに対応する。
図４に示すように、方法４００は、ＰＯＳＴ開始値をＰＣＲに拡張すること（ブロック４０２）を含む。
ブロック４０４において、プラットフォーム特性が測定され、対応する値がＰＣＲに拡張される。
ブロック４０６において、複数のユーザのいずれもが認証される。
ユーザ認証は、コンピューティングプラットフォームのブートプロセス中に行われ、パスワード、スマートカード、バイオメトリクス、若しくは別の認証プロセス、又は複数の認証プロセスを組み合わせたものに基づくことができる。
【００４２】
ユーザが認証されない場合（判断ブロック４０８）、失敗したユーザ認証値がＰＣＲに拡張される（ブロック４１０）。
或いは、ユーザが認証された場合（判断ブロック４０８）、成功したユーザ認証値がＰＣＲに拡張される（ブロック４１２）。
次に、ＰＣＲ値の有効性が検証される（ブロック４１４）。
ＰＣＲ値が誤っている場合（判断ブロック４１６）（すなわち、現在のＰＣＲ値が、シークレットでシールされたＰＣＲ値と一致しない）、シークレットは、シールされた状態を維持する（ブロック４１８）。
或いは、ＰＣＲ値が正しい場合（判断ブロック４１６）（すなわち、現在のＰＣＲ値が、シークレットでシールされたＰＣＲ値と一致する）、シークレットは、コンピューティングプラットフォームのＢＩＯＳに公表される（ブロック４２０）。
最後に、シークレットは、セキュアデバイス又は特権にアクセスするのに使用される（ブロック４２２）。
たとえば、シークレットは、ＢＩＯＳが、ディスクドライブをロック解除すること又はデータを解読することを可能にすることができる。
【符号の説明】
【００４３】
１００・・・コンピュータ
１１０・・・ＢＩＯＳ
１１４・・・ドライブロックインターフェース
１１６・・・トラステッドエージェント機能
１２０・・・ＴＰＭ
１２２・・・Ｉ／Ｏ
１２４・・・暗号サービス
１２６・・・乱数ソース
１２８・・・非対称アルゴリズム
１３０・・・ストレージ
１３２・・・ＰＣＲｓ
１３４・・・プロセッサ
１４０・・・ディスクドライブ
１４２・・・ドライブロック
１５０・・・認証インターフェース
２００・・・システム
２０２・・・コンピュータ
２１０・・・ＢＩＯＳ
２１４・・・暗号化インターフェース
２１６・・・トラステッドエージェント機能
２３４・・・プロセッサ
２３８・・・ＲＡＭ
２４０・・・２次ストレージ
２４２・・・暗号化データ
２４４・・・ネットワークインターフェース
２４６・・・Ｉ／Ｏデバイス
２５０・・・認証インターフェース
【図１】
2010511209.tif 000003
【図２】
2010511209.tif 000004
【図３】
2010511209.tif 000005
【図４】
2010511209.tif 000006
【国際調査報告】
2010511209.tif 000007
2010511209.tif 000008
2010511209.tif 000009