説明

ユーザ認証に基づいて完全性測定値を修正するための方法及びシステム

【課題】ユーザ認証に基づいて完全性測定値を修正するための方法及びシステムを提供する。
【解決手段】本発明に係るシステムは、プロセッサ(134)と、このプロセッサ(134)にアクセス可能な基本入出力システム(BIOS)(110)とを備えるコンピュータシステム(100)が提供される。ブートプロセス中に、BIOS(110)は、コンピュータシステム(100)の完全性測定値を求め、ユーザ認証に基づいてこの完全性測定値を修正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、ユーザ認証に基づいて完全性測定値を修正するための方法及びシステムに関する。
【背景技術】
【0002】
多くの認証ストラテジーは、認証を受けることができる別個のユーザ識別情報又はシークレット(secret:秘密)の数を制限している。
たとえば、いくつかのドライブロックメカニズムは、単一のパスワードの認証しかサポートしていない。ドライブロックパスワードを認証するために、基本入出力システム(BIOS)は、ユーザがプリブート環境の期間中にパスワードを入力するように要求し、ユーザによって入力された値をハードドライブに提供する。
パスワードが正しい場合、ハードドライブは、回転を開始する(すなわち、ドライブは「ロック解除」される)。
パスワードが誤っている場合、ドライブは回転しない(すなわち、ドライブは「ロック」される)。
このプリブート認証特徴は、マルチユーザ環境(たとえば、職場)では、多少適合しないところがある。複数のユーザによって共通のパスワードを共有することができる(複数のユーザのいずれもが同じパスワードを使用して認証を受けることを可能にする)が、セキュリティ及びユーザの使いやすさは、個別化されたパスワードを使用した方がより良く提供される。
さらに、他の認証プロセス(たとえば、スマートカード又はバイオメトリックプロセス)を、グループではなく個別のユーザに関連付けることもできる。
したがって、単一のシークレット又は限られた数のシークレットの認証を伴う認証ストラテジーは、多くのユーザ識別情報又はシークレットを認証することが望ましいマルチユーザ環境では、適合しないもの、又は、少なくとも不便なものとなってきている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、ユーザ認証に基づいて完全性測定値を修正するための方法及びシステムを提供する。
【課題を解決するための手段】
【0004】
本発明の一形態は、コンピュータシステム(100)であって、プロセッサ(134)と、前記プロセッサ(134)にアクセス可能な基本入出力システム(BIOS)(110)とを備え、ブートプロセス中に、前記BIOS(110)は、前記コンピュータシステム(100)の完全性測定値を求め、ユーザ認証に基づいて前記完全性測定値を修正する。
【図面の簡単な説明】
【0005】
次に、本発明の例示の実施形態を詳細に説明するために、添付図面を参照することにする。
【0006】
【図1】本発明の実施形態によるコンピュータを示す図である。
【図2】本発明の実施形態によるシステムを示す図である。
【図3】本発明の実施形態による方法を示す図である。
【図4】本発明の実施形態による別の方法を示す図である。
【発明を実施するための形態】
【0007】
表記法及び用語体系
以下の説明及び特許請求の範囲の全体にわたって、特定のシステムコンポーネントを指すために、一定の用語が使用される。
当業者には認識されるように、コンピュータ会社によって、1つのコンポーネントを異なる名前で指す場合がある。
本明細書は、名前は異なるが、機能は異ならないコンポーネントを区別することは意図していない。
以下の論述及び特許請求の範囲において、「含む」及び「備える」という用語は、オープンエンド形式で使用され、したがって、「〜を含むが、これらに限定されるものではない」ことを意味するように解釈されるべきである。
また、「結合する」という用語は、間接的な電気接続、直接的な電気接続、光電気接続、又は無線電気接続のいずれかを意味するように意図されている。
したがって、第1のデバイスが第2のデバイスに結合する場合、その接続は、直接的な電気的接続を通じてのものである場合もあるし、他のデバイス及び接続を介した間接的な電気的接続を通じてのものである場合もあるし、光電気接続を通じてのものである場合もあるし、又は無線電気接続を通じてのものである場合もある。
【0008】
以下の論述は、本発明のさまざまな実施形態を対象としている。
これらの実施形態の1つ又は複数は好ましいものとすることができるが、開示される実施形態は、特許請求の範囲を含む本開示の範囲を限定するものとして解釈されるべきでもないし、別の方法で使用されるべきでもない。
加えて、当業者は、以下の説明が広い用途を有することを理解し、また、どの実施形態の論述も、その実施形態の例示にすぎないように意図されており、特許請求の範囲を含む本開示の範囲がその実施形態に限定されることを暗示するように意図されていないことを理解するであろう。
【0009】
多くの認証ストラテジーは、認証を受けることができる別個のユーザ識別情報及びシークレットの数を制限している。
本発明の実施形態は、本発明の一実施形態がなければ単一のシークレット又は限られた一組のシークレットの認証しかサポートしない(すなわち、このセキュアデバイスにアクセスする可能性のあるユーザの数が、このセキュアデバイスについて又はこのデバイスによって認証を受けることができるシークレットの個数よりも多い)セキュアデバイス(又は特権)にアクセスする必要条件として、複数のユーザ識別情報又はシークレットのいずれの認証もサポートする。
【0010】
少なくともいくつかの実施形態では、コンピューティングプラットフォームの基本入出力システム(BIOS)が、複数のユーザとセキュアデバイスとの間でトラステッドエージェントとして動作する。
換言すれば、BIOSは、セキュアデバイス又は特権をロック解除するシークレットを制御する。
ブートプロセス中、BIOSは、個別のパスワード、スマートカード、バイオメトリクス、又は他の或る認証プロセスに基づいて複数のユーザのいずれをも認証することができる。
ユーザ認証が成功した場合、BIOSは、セキュアデバイスに関連付けられたシークレットにセキュアにアクセスする。
いくつかの実施形態では、BIOSは、シークレットのシール及びシール解除を行うことができるトラステッドプラットフォームモジュール(TPM)からシークレットを取り出す。
取り出されると、BIOSは、このシークレットを使用して、セキュアデバイスのロック解除又は特権へのアクセスを行う。
一例として、セキュアデバイスは、ドライブロックメカニズムによって保護されたディスクドライブとすることができる。
付加的に又は代替的に、BIOSは、シークレットを使用して、暗号化データを解読したもののような、セキュアな特権にアクセスすることができる。
【0011】
図1は、本発明の実施形態によるコンピュータ100を示している。
コンピュータ100は、たとえば、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドデバイスとすることができる。
いくつかの実施形態では、コンピュータ100は、トラステッドプラットフォームモジュール(TPM)120とドライブロック機能142を有するディスクドライブ140とに結合されるプロセッサ134を備える。
図示するように、プロセッサ134は、基本入出力システム(BIOS)110にアクセスすることができる。
BIOS110は、たとえば、チップセット(たとえば、「サウスブリッジ」)又は他のモジュールの一部として実施することができる。
プロセッサ134は、認証インターフェース150にも結合している。
認証インターフェース150は、ユーザが、ユーザ認証用のデータをコンピュータ100に入力することを可能にする。
認証インターフェース150は、たとえば、キーボード、マウス、仮想トークン(たとえば、ユニバーサルシリアルバス(USB)トークン)ソース、スマートカードリーダ、バイオメトリクスキャナ、又はユーザ認証用のデータを受け取る他の或るインターフェースとすることができる。
【0012】
TPM120は、デジタル署名及び暗号化用のRSA非対称アルゴリズム、SHA−1ハッシング、ハッシュベースメッセージ認証コード(HMAC)機能、セキュアストレージ、乱数生成、又は他の機能のような暗号機能を提供するように構成されている。
TPM120は、ソフトウェア、ファームウェア、及び/又はハードウェアを使用して実施される。
図1及び図2に示すTPMコンポーネントは、一般化されており、すべてを含んでいるわけではない。
また、TPMのアーキテクチャ及び機能は、場合によっては、時間の経過と共に、トラステッドコンピューティンググループ(TCG)によって認可されたように変化し得る。
【0013】
図1に示すように、TPM120は、プロセッサ134と通信する入出力(I/O)インターフェース122を備える。
I/Oインターフェース122は、暗号サービス124、乱数ソース126、非対称アルゴリズム128、ストレージ130、及びプラットフォーム構成レジスタ(PCR)132のような他のTPMコンポーネントに結合している。
暗号サービス124は、ハッシング、デジタル署名、暗号化、及び解読のような機能をサポートする。乱数ソース126は、暗号サービス124用の乱数を生成する。
たとえば、いくつかの実施形態では、暗号サービス124は、乱数を使用して、暗号鍵を生成する。
非対称アルゴリズム128は、TPM120が非対称鍵演算を行うことを可能にする。
ストレージ130は、TPM120によって保護されるシークレット(たとえば、暗号鍵又は他のデータ)をセキュアに記憶する。
PCR132は、コンピュータ100の現在の状態についての情報を記憶する。
たとえば、いくつかの実施形態では、PCR132は、コンピュータ100に関連する個別の完全性測定値及び完全性測定値のシーケンスを記憶する。
後に説明するように、PCR132の少なくとも1つに記憶された完全性測定値を、ドライブロック機能142に関連付けられたシークレットをBIOS110に提供する必要条件として検証することができる。
【0014】
図1に示すように、BIOS110は、ドライブロックインターフェース114及びトラステッドエージェント機能116を備える。
本発明の実施形態の説明では、便宜上、「初期化ステージ」及び「検証ステージ」という用語が使用される。
初期化ステージでは、一定の条件が満たされる場合にしかシークレットにアクセスできないように、このシークレットはセキュアに記憶される。
検証ステージでは、それらの条件が満たされているか否かに関する判断が行われる。
条件が満たされている場合、シークレットは、BIOS110にとってアクセス可能になる。
そうでない場合、シークレットは、引き続きセキュアに記憶され、アクセス不能である。
本明細書で説明するように、ドライブロックインターフェース114及びトラステッドエージェント機能116の双方が、初期化ステージ及び検証ステージで一定の機能を遂行する。
【0015】
初期化ステージの期間中、ドライブロックインターフェース114は、アドミニストレータ又は他の認可されたエンティティが、ディスクドライブ140のドライブロック機能142と共に使用されるシークレットを入力することを可能にする(すなわち、シークレットを使用して、ディスクドライブ140のロック及び/又はロック解除を行うことができる)。
或いは、ドライブロックインターフェース114は、BIOS110に、ユーザ入力なしでシークレットを生成させる。
いずれの場合も、トラステッドエージェント機能116は、一定の条件が満たされる場合にしかシークレットにアクセスできないようにシークレットをセキュアに記憶させる。
少なくともいくつかの実施形態では、トラステッドエージェント機能116は、TPM120のみがシークレットをシール解除できるように、TPM120によってシークレットをシールさせる。
【0016】
シークレットをシールするために、TPM120は、シークレットをデータ構造体(時に、「ブロブ」と呼称されることがある)内に挿入する。
少なくともいくつかの実施形態では、ブロブのフォーマットは、TCGによって規定されている。
(シークレットを収容するエリアのような)ブロブの複数の部分が、TPM120によって暗号化される。
ブロブは、BIOS110によって行われるブートオペレーション又は完全性測定に基づいて「拡張」されたPCR値も含むことができる。
BIOS110が所与のPCR132に拡張することができる値のいくつかの例には、パワーオンセルフテスト(POST)開始値、プラットフォーム固有値、成功したユーザ認証値、失敗したユーザ認証値、POST終了値(すなわち、プラットフォームのハードウェア、ファームウェア、若しくはソフトウェアの完全性測定値)、又は他の値が含まれるが、これらに限定されるものではない。
少なくともいくつかの実施形態では、シークレットでシールされたPCR値は、POST開始値、プラットフォーム固有値、及び成功したユーザ認証値に基づいて拡張されている。
TPM120のみがブロブをシール解除できるように、TPM120が、暗号サービス124を使用して、シークレット及びPCR値を収容したブロブをシールする。
少なくともいくつかの実施形態では、TPM120は、シークレットをBIOS110に公表する前に、現在のPCR値が、ブロブで指定されたPCR値と一致することを検証する。
いくつかの実施形態の場合にあり得るように、TPM120がユーザ認証に関与している場合、ユーザパスワード(又は他の識別子)も、ブロブに挿入することができ、TPM120によってシールすることができる。
このような場合、TPM120は、シークレットをBIOS110に公表する前に、このパスワードを検証することができる。
【0017】
検証ステージの期間中(たとえば、その後のブートの期間中)、BIOS110は、コンピュータ100のブートオペレーション又は完全性測定を再び行う。
これらの完全性測定値は、たとえば、PCR132の少なくとも1つに記憶することができる。
検証ステージの期間中の或る時点において、トラステッドエージェント機能116は、コンピュータ100にアクセスする複数のユーザのいずれの認証も行う。
このユーザ認証は、認証インターフェース150及びBIOS110によってサポートされたパスワード、スマートカード、バイオメトリクス、又は他の任意の認証プロセスに基づくことができる。
TPM120は、成功したユーザ認証に部分的に基づいてシークレットを選択的にシール解除するが、TPM120は、ユーザ認証に関与する場合もあるし関与しない場合もある。
TPM120がユーザ認証に関与する場合、ユーザは、前述したようにシークレットでシールされたパスワードを入力することによって認証を受けることができる。
【0018】
ユーザの認証が成功した場合(TPM120が関与しているか否かにかかわらず)、トラステッドエージェント機能116は、BIOS110に、コンピュータ100の完全性測定値を修正させる。
たとえば、BIOS110は、成功したユーザ認証値を所与のPCR132に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のPCR132は、当該PCR132に拡張されたコンピュータ100のPOST開始値及びプラットフォーム固有値をすでに有していることになる。
或いは、これらの値(測定値)は、異なる順序で所与のPCR132に拡張することができる(たとえば、コンピュータ100のプラットフォーム固有値が所与のPCR132に拡張される前に、成功したユーザ認証値を所与のPCR132に拡張することができる)。
所与のPCR132に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中使用される限り、変化する可能性がある。
換言すれば、検証ステージの1つの目的は、初期化ステージで生成されてシールされたのと同じPCR値を選択的に生成することである。
少なくともいくつかの実施形態では、ユーザ認証が成功し、且つ、コンピュータ100の一定のプラットフォーム固有測定値が変化していない場合にのみ、初期化ステージで生成されたPCR値は、検証ステージで生成される。
【0019】
所望の場合に、初期化ステージ及び検証ステージの期間中に所与のPCR132に拡張される値の順序及び数を更新することができる。
このような更新は、初期化ステージ及び検証ステージのセキュリティを増大させるために定期的に行うことができ、且つ/又は、コンピュータ100のハードウェア、ファームウェア、又はソフトウェアの更新の必要性が生じた場合に行うことができる。
【0020】
ユーザの認証が成功しなかった場合、トラステッドエージェント機能116は、BIOS110に、コンピュータ100の完全性測定値を修正させ、失敗したユーザ認証に基づいて修正された完全性測定値が、成功したユーザ認証に基づいて修正された完全性測定値と異なるようにする。
たとえば、BIOS110は、失敗したユーザ認証値を所与のPCR132に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のPCR132は、当該所与のPCR132に拡張されたPOST開始値及びプラットフォーム固有値をすでに有していることになる。
前述したように、所与のPCR132に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中に使用される限り、変化する可能性がある。
【0021】
完全性測定値が、成功したユーザ認証又は失敗したユーザ認証に基づいて修正された後、トラステッドエージェント機能116は、セキュアに記憶されているシークレットへのアクセスを要求する。
修正された完全性測定値が、成功したユーザ認証に部分的に対応する所定の値と等しい場合、シークレットは、トラステッドエージェント機能116に公表される。
いくつかの実施形態では、検証ステージの期間中に生成されたPCR値が、初期化ステージの期間中に生成されてそのシークレットでシールされたPCR値と一致する場合に、TPM120は、トラステッドエージェント機能116にそのシークレットを公表する。
【0022】
ユーザ認証が失敗した場合、初期化ステージで生成されたPCR値は、検証ステージでは生成されない。
付加的に又は代替的に、コンピュータ100の一定のプラットフォーム固有測定値が変化した場合、初期化ステージで生成されたPCR値は、検証ステージでは生成されない。
少なくとも初期化ステージで生成されたPCR値は、PCR値が検証ステージで比較される時に生成されないことになる。他方、ユーザ認証が成功し、且つ、コンピュータ100の一定のプラットフォーム固有測定値が変化していない場合、初期化ステージで生成されたPCR値は、PCR値の比較が成功するように、検証ステージで生成される。
【0023】
修正された完全性測定値と所定の完全性測定値との比較に成功すると、BIOS110は、シークレットを受け取る。
たとえば、いくつかの実施形態では、検証ステージの期間中に生成されたPCR値と、初期化ステージの期間中に生成されてシークレットでシールされたPCR値との比較に成功すると、BIOS110は、TPM120からシークレットを受け取る。
ドライブロックインターフェース114は、次に、そのシークレットを使用して、ディスクドライブ140のドライブロック機能142をロック解除することができる。
比較が失敗した場合、シークレットは、BIOS110に提供されず、ディスクドライブ140は引き続きロックされる。
【0024】
図2は、本発明の実施形態によるシステム200を示している。
図2に示すように、システム200は、トラステッドプラットフォームモジュール(TPM)120に結合されるプロセッサ234を有するコンピュータ202を備える。
TPM120の機能は、図1について前述されており、便宜上、図2について繰り返さないことにする。
しかしながら、前述したTPMの機能は変化していないが、TPM120が図2で使用される方法は、TPM120が図1で使用される方法と異なる可能性があることは理解されるべきである。
また、図1のコンピュータ100及び図2のコンピュータ202が、別個のコンピュータである場合、それぞれが、別個のTPM120を実施することになる。
【0025】
図2に示すように、プロセッサ234は、たとえば、チップセット(たとえば、「サウスブリッジ」)又は他のモジュールの一部として実施することができるBIOS210にアクセスすることができる。
BIOS210は、図1におけるようなドライブロックインターフェース114ではなく暗号化インターフェース214を備える点を除いて、図1のBIOS110と同様である。
代替的な実施形態では、BIOS210は、図1におけるようなドライブロックインターフェース114及び図2におけるような暗号化インターフェース214の双方を備えることができる。
【0026】
図2に示すように、プロセッサ234は、2次ストレージ240、ランダムアクセスメモリ(RAM)238、ネットワークインターフェース244、認証インターフェース250、入出力(I/O)デバイス246等の他のコンポーネントにも結合している。
一例として、I/Oデバイス246は、プリンタ、スキャナ、ビデオモニタ、液晶ディスプレイ(LCD)、タッチスクリーンディスプレイ、キーボード、キーパッド、スイッチ、ダイヤル、マウス、トラックボール、音声認識器、カードリーダ、紙テープリーダ、又は他のI/Oデバイスとすることができる。
【0027】
少なくともいくつかの実施形態では、2次ストレージ240は、暗号化データ242を記憶する少なくとも1つのディスクドライブ又はテープドライブを備える。
暗号化データ242は、2次ストレージ240によって記憶されたデータの一部の場合もあるし、すべての場合もあり、適切な暗号鍵のみが、暗号化データ242を解読するのに使用することができる。
2次ストレージ240は、データの不揮発性ストレージに使用され、RAM238がすべての作業データを保持できるほど十分大きくない場合にはオーバーフローデータストレージデバイスとして使用される。
また、2次ストレージ240は、RAM238にロードされるプログラムが実行のために選択された時に、このようなプログラムを記憶するのにも使用することができる。
RAM238は、揮発性のデータ及び/又は命令を記憶することができる。
【0028】
図2では、プロセッサ234は、ハードディスク、フロッピー(登録商標)ディスク、光ディスク(これらのさまざまなディスクベースのシステムはすべて2次ストレージ240とみなすことができる)、RAM238、又はネットワークインターフェース244からアクセスされる命令、コード、コンピュータプログラム、又はスクリプトを実行する。
プロセッサ234が、2次ストレージ240に記憶された暗号化データ242にアクセスするか又は暗号化データ242を実行するには、暗号化データ242の解読が必要である。
この解読は、BIOS210が、後に説明するようにセキュアに記憶された暗号鍵にアクセスすることを伴う。
【0029】
ネットワークインターフェース244は、モデム、集合モデム、イーサネット(登録商標)カード、ユニバーサルシリアルバス(USB)インターフェースカード、シリアルインターフェース、トークンリングカード、ファイバ分散データインターフェース(FDDI)カード、無線ローカルエリアネットワーク(WLAN)カード、符号分割多元接続(CDMA)無線トランシーバカード及び/若しくは移動体通信用グローバルシステム(GSM)無線トランシーバカードのような無線トランシーバカード、又は他のネットワークインターフェースの形態を取ることができる。
ネットワークインターフェース244を介して、プロセッサ234は、インターネット又はイントラネット(複数可)に接続して、それらと通信することができる。
このようなネットワーク接続では、プロセッサ234は、ユーザ認証を行う過程又はコンピュータ202によってセキュアに記憶された暗号鍵にアクセスする過程で、ネットワークから情報を受信する場合もあるし、ネットワークへ情報を出力する場合もあることが予測される。
たとえば、いくつかの実施形態の場合にあり得るように、コンピュータ202が、リモートロケーションからブートされる場合、暗号化インターフェース214及びトラステッドエージェント機能216によって遂行される少なくともいくつかの機能は、ローカルにではなくリモートで制御することができる。
TPMが、暗号鍵をセキュアに記憶するのに使用される場合、暗号鍵をシールしたのと同じTPMが、その暗号鍵をシール解除することになる。
【0030】
本発明の実施形態の説明では、便宜上、「初期化ステージ」及び「検証ステージ」という用語が再び使用される。
初期化ステージでは、一定の条件が満たされる場合にしか暗号鍵にアクセスできないように、この暗号鍵はセキュアに記憶される。
検証ステージでは、それらの条件が満たされているか否かに関する判断が行われる。
条件が満たされている場合、暗号鍵は、BIOS210にとってアクセス可能になる。
そうでない場合、暗号鍵は、引き続きセキュアに記憶され、アクセス不能である。
本明細書で説明するように、暗号化インターフェース214及びトラステッドエージェント機能216の双方が、初期化ステージ及び検証ステージで一定の機能を遂行する。
【0031】
初期化ステージの期間中、暗号化インターフェース214は、アドミニストレータ又は他の認可されたエンティティが、データ(たとえば、2次ストレージ240のデータ)を暗号化するのに使用される暗号鍵を入力することを可能にする。
或いは、暗号化インターフェース214は、BIOS210に、ユーザ入力なしで暗号鍵を生成させることもできる。
いずれの場合も、トラステッドエージェント機能216は、一定の条件が満たされる場合にしか暗号鍵にアクセスできないように暗号鍵をセキュアに記憶させる。
少なくともいくつかの実施形態では、トラステッドエージェント機能216は、TPM120のみが暗号鍵をシール解除できるように、TPM120によって暗号鍵をシールさせる。
【0032】
暗号鍵をシールするために、TPM120は、データの「ブロブ」と呼称されるデータ構造体内に暗号鍵を挿入する。
前述したように、いくつかの実施形態では、ブロブのフォーマットは、TCGによって規定されている。
(暗号鍵を収容するエリアのような)ブロブの複数の部分が、TPM120によって暗号化される。
ブロブは、コンピュータ202のBIOS210によって行われるブートオペレーション又は完全性測定に基づいて「拡張」されたPCR値も含むことができる。
BIOS210が所与のPCR132に拡張することができる値のいくつかの例には、パワーオンセルフテスト(POST)開始値、プラットフォーム固有値(すなわち、プラットフォームのハードウェア、ファームウェア、又はソフトウェアの完全性測定値)、成功したユーザ認証値、失敗したユーザ認証値、POST終了値、又は他の値が含まれるが、これらに限定されるものではない。
少なくともいくつかの実施形態では、暗号鍵でシールされたPCR値は、POST開始値、プラットフォーム固有値、及び成功したユーザ認証値に基づいて拡張されている。
TPM120のみがブロブをシール解除できるように、TPM120が、暗号サービス124を使用して、暗号鍵及びPCR値を収容したブロブをシールする。
少なくともいくつかの実施形態では、TPM120は、暗号鍵をBIOS210に公表する前に、現在のPCR値が、ブロブで指定されたPCR値と一致することを検証する。
いくつかの実施形態の場合にあり得るように、TPM120がユーザ認証に関与している場合、ユーザパスワード(又は他の識別子)も、ブロブに挿入することができ、TPM120によってシールすることができる。
このような場合、TPM120は、暗号鍵をBIOS210に公表する前に、このユーザパスワードを検証することができる。
【0033】
検証ステージの期間中(たとえば、その後のブートの期間中)、BIOS210は、コンピュータ202のブートオペレーション又は完全性測定を再び行う。
これらの完全性測定値は、たとえば、PCR132の少なくとも1つに記憶することができる。
検証ステージの期間中の或る時点において、トラステッドエージェント機能216は、コンピュータ202にアクセスする複数のユーザのいずれの認証も行う。
このユーザ認証は、認証インターフェース250及びBIOS210によってサポートされたパスワード、スマートカード、バイオメトリクス、又は他の任意の認証プロセスに基づくことができる。
TPM120は、成功したユーザ認証に部分的に基づいて暗号鍵を後にシール解除するが、TPM120は、ユーザ認証に関与する場合もあるし関与しない場合もある。
TPM120がユーザ認証に関与する場合、ユーザは、前述したように暗号鍵でシールされたパスワードを入力することによって認証を受けることができる。
【0034】
ユーザの認証が成功した場合(TPM120が関与しているか否かにかかわらず)、トラステッドエージェント機能216は、BIOS210に、コンピュータ202の完全性測定値を修正させる。
たとえば、BIOS210は、成功したユーザ認証値を所与のPCR132に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のPCR132は、当該PCR132に拡張されたコンピュータ202のPOST開始値及びプラットフォーム固有値をすでに有していることになる。
或いは、これらの値(測定値)は、異なる順序で所与のPCR132に拡張することもできる(たとえば、コンピュータ202のプラットフォーム固有値が所与のPCR132に拡張される前に、成功したユーザ認証値を所与のPCR132に拡張することができる)。
所与のPCR132に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中使用される限り、変化する可能性がある。
換言すれば、検証ステージの1つの目的は、初期化ステージで生成されてシールされたのと同じPCR値を選択的に生成することである。
少なくともいくつかの実施形態では、ユーザ認証が成功し、且つ、コンピュータ202の一定のプラットフォーム固有測定値が変化していない場合に、初期化ステージで生成されたPCR値は、検証ステージで生成される。
プラットフォーム固有測定値の例には、BIOSバージョン、実際のBIOSコード、デバイス構成値、及びハードドライブ識別子が含まれるが、これらに限定されるものではない。
【0035】
所望の場合に、初期化ステージ及び検証ステージの期間中に所与のPCR132に拡張される値の順序及び数を更新することができる。
このような更新は、初期化ステージ及び検証ステージのセキュリティを増大させるために定期的に行うことができ、且つ/又は、コンピュータ202のハードウェア、ファームウェア、又はソフトウェアの更新の必要性が生じた場合に行うことができる。
【0036】
ユーザの認証が成功しなかった場合、トラステッドエージェント機能216は、BIOS210に、コンピュータ202の完全性測定値を修正させ、失敗したユーザ認証に基づいて修正された完全性測定値が、成功したユーザ認証に基づいて修正された完全性測定値と異なるようにする。
たとえば、BIOS210は、失敗したユーザ認証値を所与のPCR132に拡張することによって完全性測定値を修正することができる。
少なくともいくつかの実施形態では、所与のPCR132は、当該所与のPCR132に拡張されたPOST開始値及びプラットフォーム固有値をすでに有していることになる。
前述したように、所与のPCR132に拡張される値の順序及び数は、同じプロセスが初期化ステージ及び検証ステージの期間中に使用される限り、変化する可能性がある。
【0037】
完全性測定値が、成功したユーザ認証又は失敗したユーザ認証に基づいて修正された後、トラステッドエージェント機能216は、セキュアに記憶された暗号鍵へのアクセスを要求する。
修正された完全性測定値が、成功したユーザ認証に部分的に対応する所定の値と等しい場合、暗号鍵は、トラステッドエージェント機能216に公表される。
いくつかの実施形態では、検証ステージの期間中に生成されたPCR値が、初期化ステージの期間中に生成されてその暗号鍵でシールされたPCR値と一致する場合に、TPM120は、トラステッドエージェント機能216にその暗号鍵を公表する。
【0038】
ユーザ認証が失敗した場合、初期化ステージで生成されたPCR値は、検証ステージでは生成されない。
付加的に又は代替的に、コンピュータ202の一定のプラットフォーム固有測定値が変化した場合、初期化ステージで生成されたPCR値は、検証ステージでは生成されない。
少なくとも初期化ステージで生成されたPCR値は、PCR値が検証ステージで比較される時に生成されないことになる。
他方、ユーザ認証が成功し、且つ、コンピュータ202の一定のプラットフォーム固有測定値が変化していない場合、初期化ステージで生成されたPCR値は、PCR値の比較が成功するように、検証ステージで生成される。
【0039】
修正された完全性測定値と所定の完全性測定値との比較に成功すると、BIOS210は、暗号鍵を受け取る。
たとえば、いくつかの実施形態では、検証ステージの期間中に生成されたPCR値と、初期化ステージの期間中に生成されて暗号鍵でシールされたPCR値との比較に成功すると、BIOS210は、TPM120から暗号鍵を受け取る。
暗号化インターフェース214は、次に、その暗号鍵を使用して、暗号化データ242を解読することができる。
或いは、BIOS210は、データの解読を行う他の或るセキュアインターフェース(たとえば、別の暗号化インターフェース)に暗号鍵を渡すこともできる。
PCR値の比較が失敗した場合、暗号鍵は、BIOS210に提供されない。
このような場合、暗号化データ242を解読することができない。
【0040】
図3は、本発明の実施形態による方法300を示している。
少なくともいくつかの実施形態では、方法300は、前述した初期化ステージに対応する。
図3に示すように、方法300は、POST開始値をPCRに拡張すること(ブロック302)を含む。
ブロック304において、プラットフォーム特性が測定され、対応する値がPCRに拡張される。
ブロック306において、成功したユーザ認証値がPCRに拡張される。次に、シークレット及びPCR値がシールされる(ブロック308)。
このシークレットは、たとえば、ドライブロック機能のロック解除又は暗号化データの解読に使用することができる。
最後に、POST終了値がPCRに拡張される(ブロック310)。
POST終了値をPCRに拡張することによって、シークレットでシールされた前のPCR値を確認することはできない(すなわち、各拡張オペレーションは、前のPCR値のいずれもが確認されることを防止するようにPCR値を変更する)。
方法300は、たとえば、ブートプロセス中に、TPMと通信するBIOSを使用して遂行することができる。
【0041】
図4は、本発明の実施形態による別の方法400を示している。
少なくともいくつかの実施形態では、方法400は、前述した検証ステージに対応する。
図4に示すように、方法400は、POST開始値をPCRに拡張すること(ブロック402)を含む。
ブロック404において、プラットフォーム特性が測定され、対応する値がPCRに拡張される。
ブロック406において、複数のユーザのいずれもが認証される。
ユーザ認証は、コンピューティングプラットフォームのブートプロセス中に行われ、パスワード、スマートカード、バイオメトリクス、若しくは別の認証プロセス、又は複数の認証プロセスを組み合わせたものに基づくことができる。
【0042】
ユーザが認証されない場合(判断ブロック408)、失敗したユーザ認証値がPCRに拡張される(ブロック410)。
或いは、ユーザが認証された場合(判断ブロック408)、成功したユーザ認証値がPCRに拡張される(ブロック412)。
次に、PCR値の有効性が検証される(ブロック414)。
PCR値が誤っている場合(判断ブロック416)(すなわち、現在のPCR値が、シークレットでシールされたPCR値と一致しない)、シークレットは、シールされた状態を維持する(ブロック418)。
或いは、PCR値が正しい場合(判断ブロック416)(すなわち、現在のPCR値が、シークレットでシールされたPCR値と一致する)、シークレットは、コンピューティングプラットフォームのBIOSに公表される(ブロック420)。
最後に、シークレットは、セキュアデバイス又は特権にアクセスするのに使用される(ブロック422)。
たとえば、シークレットは、BIOSが、ディスクドライブをロック解除すること又はデータを解読することを可能にすることができる。
【符号の説明】
【0043】
100・・・コンピュータ
110・・・BIOS
114・・・ドライブロックインターフェース
116・・・トラステッドエージェント機能
120・・・TPM
122・・・I/O
124・・・暗号サービス
126・・・乱数ソース
128・・・非対称アルゴリズム
130・・・ストレージ
132・・・PCRs
134・・・プロセッサ
140・・・ディスクドライブ
142・・・ドライブロック
150・・・認証インターフェース
200・・・システム
202・・・コンピュータ
210・・・BIOS
214・・・暗号化インターフェース
216・・・トラステッドエージェント機能
234・・・プロセッサ
238・・・RAM
240・・・2次ストレージ
242・・・暗号化データ
244・・・ネットワークインターフェース
246・・・I/Oデバイス
250・・・認証インターフェース

【特許請求の範囲】
【請求項1】
コンピュータシステム(100)であって、
プロセッサ(134)と、
前記プロセッサ(134)にアクセス可能な基本入出力システム(BIOS)(110)と
を備え、
ブートプロセス中に、前記BIOS(110)は、
前記コンピュータシステム(100)の完全性測定値を求め、
ユーザ認証に基づいて前記完全性測定値を修正する
コンピュータシステム。
【請求項2】
前記ユーザ認証が成功した場合、前記BIOS(110)は、第1の値によって前記完全性測定値を修正し、
前記ユーザ認証が成功しなかった場合、前記BIOS(110)は、前記第1の値とは異なる第2の値によって前記完全性測定値を修正する
請求項1に記載のコンピュータシステム。
【請求項3】
前記修正された完全性測定値は、所定の完全性測定値と比較され、
前記修正された完全性測定値が前記所定の完全性測定値と一致する場合、前記BIOS(110)は、シークレットへのアクセスを受け取る
請求項1に記載のコンピュータシステム。
【請求項4】
前記プロセッサ(134)に結合されるロッキングストレージデバイス(140)をさらに備え、
前記BIOS(110)は、前記シークレットを使用して、前記ロッキングストレージデバイス(140)をロック解除する
請求項3に記載のコンピュータシステム。
【請求項5】
前記プロセッサ(234)に結合されるストレージデバイス(240)をさらに備え、
前記ストレージデバイス(240)は、暗号化データ(242)を記憶し、
前記BIOSは、前記シークレットに基づいて前記暗号化データ(242)を解読する
請求項3に記載のコンピュータシステム。
【請求項6】
前記プロセッサ(134)に結合されるトラステッドプラットフォームモジュール(TPM)(120)をさらに備え、
前記TPM(120)は、
シークレット及び所定の完全性測定値をシールし、
前記修正された完全性測定値が前記所定の完全性測定値と一致しない限り、前記シークレットをシール解除しない
請求項1に記載のコンピュータシステム。
【請求項7】
ブートプロセス中に、コンピュータシステム(100)の第1の完全性測定値をセキュアに記憶することと、
その後のブートプロセス中に、前記コンピュータシステム(100)の第2の完全性測定値を生成することと、
ユーザ認証に基づいて前記第2の完全性測定値を修正することと、
前記第1の完全性測定値が、前記修正された第2の完全性測定値と一致する場合に、シークレットにアクセスすることと
を含む方法。
【請求項8】
前記シークレットに基づいてストレージデバイス(140)をロック解除することをさらに含む
請求項7に記載の方法。
【請求項9】
前記シークレットに基づいてデータ(242)を解読することをさらに含む
請求項7に記載の方法。
【請求項10】
前記第1の完全性測定値をセキュアに記憶することは、
パワーオンセルフテスト(POST)開始値をプラットフォーム構成レジスタ(PCR)(132)に拡張することと、
前記コンピュータシステム(100)に固有のパラメータを測定すると共に、対応する値を前記PCR(132)に拡張することと、
成功したユーザ認証値を前記PCR(132)に拡張することと
を含む請求項7に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2010−511209(P2010−511209A)
【公表日】平成22年4月8日(2010.4.8)
【国際特許分類】
【出願番号】特願2009−521773(P2009−521773)
【出願日】平成19年7月19日(2007.7.19)
【国際出願番号】PCT/US2007/016411
【国際公開番号】WO2008/016489
【国際公開日】平成20年2月7日(2008.2.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】