第1のコンピュータの保護されたボリュームに記憶された暗号化データにアクセスするための一度限り使用可能な認証方法であって、前記保護されたボリュームに記憶された前記暗号化データを復号するために必要とされるボリューム固有の暗号鍵を、ランダムに生成される非対称の公開鍵と秘密鍵の対の公開鍵で暗号化することにより、キープロテクタを生成するステップと、前記キープロテクタを前記第1のコンピュータのローカルメモリに記憶するステップと、前記保護されたボリュームにアクセスする試みを検出するのに応答して、前記第1のコンピュータにより、前記秘密鍵を取得するステップ、前記秘密鍵を使用して前記キープロテクタを復号して前記ボリューム固有の暗号鍵を取得するステップ、および前記キープロテクタを一度使用した後に、前記キープロテクタを前記第1のコンピュータの前記ローカルメモリから削除するステップを行うステップとを含むことを特徴とする方法。前記ボリューム固有の暗号鍵を使用して、前記保護されたボリュームに記憶された前記暗号化データを復号するステップをさらに含むことを特徴とする請求項1に記載の方法。前記ボリューム固有の暗号鍵を使用して、前記保護されたボリュームに記憶された前記暗号化データを復号するステップが、前記ボリューム固有の暗号鍵を使用して第2のボリューム固有の暗号鍵を復号するステップと、前記第2のボリューム固有の暗号鍵を使用して、前記保護されたボリュームに記憶された前記暗号化データを復号するステップとを含むことを特徴とする請求項2に記載の方法。前記保護されたボリュームは、論理ボリュームまたは物理ボリュームの1つからなることを特徴とする請求項1に記載の方法。前記秘密鍵を取得するステップは、前記秘密鍵を前記第1のコンピュータの前記ローカルメモリから取得するステップを含むことを特徴とする請求項1に記載の方法。前記秘密鍵を取得するステップは、ネットワークを通じて第2のコンピュータから前記秘密鍵を取得するステップを含むことを特徴とする請求項1に記載の方法。前記ネットワークを通じて前記第2のコンピュータから前記秘密鍵を取得するステップは、チャレンジ-レスポンス対話の実行が成功した後に前記ネットワークを通じて前記第2のコンピュータから前記秘密鍵を取得するステップを含むことを特徴とする請求項6に記載の方法。保護されたボリュームを有する第1のコンピュータであって、ローカルメモリにキープロテクタを記憶するように構成され、前記キープロテクタはトラステッドプラットフォームモジュールTPMのシール動作を行うことにより生成され、前記TPMのシール動作は、前記保護されたボリュームに記憶された暗号化データを復号するために必要とされるボリューム固有の暗号鍵を暗号化すること、および前記暗号化されたボリューム固有の暗号鍵を、ランダムデータをハッシュ化することによって生成される値にバインドすることである、第1のコンピュータと、第2のコンピュータと、前記第2のコンピュータからはアクセスできるが前記第1のコンピュータからはアクセスできない、前記ランダムデータが記憶されるメモリとを備えるシステムであって、前記第1のコンピュータはさらに、前記保護されたボリュームにアクセスする試みを検出するのに応答して、前記第2のコンピュータから前記ランダムデータを取得し、前記ランダムデータを利用するTPMのアンシール動作を行うことにより前記ボリューム固有の暗号鍵を取得するように構成され、前記第2のコンピュータは、前記第2のコンピュータからアクセス可能な前記メモリから前記ランダムデータを削除するように構成されることを特徴とするシステム。前記第1のコンピュータはさらに、前記ボリューム固有の暗号鍵を使用して、前記保護されたボリュームに記憶された前記暗号化データを復号するように構成されることを特徴とする請求項8に記載のシステム。前記第1のコンピュータは、前記ボリューム固有の暗号鍵を使用して第2のボリューム固有の暗号鍵を復号し、前記第2のボリューム固有の暗号鍵を使用して、前記保護されたボリュームに記憶された前記暗号化データを復号するように構成されることを特徴とする請求項9に記載のシステム。前記第1のコンピュータは、TPMを使用して前記TPMのシール動作を行うことにより前記キープロテクタを生成することを特徴とする請求項8に記載のシステム。前記第2のコンピュータは、TPMを使用しない方式で前記TPMのシール動作を行うことにより前記キープロテクタを生成することを特徴とする請求項8に記載のシステム。前記第1のコンピュータは、前記第2のコンピュータにチャレンジを提供するように構成され、前記第2のコンピュータは、前記チャレンジを前記ランダムデータと組み合わせてレスポンスを生成し、前記レスポンスを前記第1のコンピュータに提供するように構成され、前記第1のコンピュータはさらに、前記レスポンスから前記ランダムデータを抽出するように構成されることを特徴とする請求項8に記載のシステム。前記第1のコンピュータは、前記第1のコンピュータのユーザに前記チャレンジを発行して、前記チャレンジをアウトオブバンドで前記第2のコンピュータのユーザに提供させ、前記第2のコンピュータに入力させるように構成されることを特徴とする請求項13に記載のシステム。前記第2のコンピュータは、前記第2のコンピュータのユーザに前記レスポンスを発行して、前記レスポンスをアウトオブバンドで前記第1のコンピュータのユーザに提供させ、前記第1のコンピュータに入力させるように構成されることを特徴とする請求項13に記載のシステム。本発明の特徴および利点は、図面と併せて以下の詳細な説明を読むことにより明らかになろう。すべての図面で、対応する要素は同様の参照符号で識別する。図面では、概して、同様の参照符号で、同一の要素、機能的に類似する要素、および/または構造的に類似する要素を示す。要素が最初に登場する図面は、対応する参照符号の一番左の桁で示す。I.概要以下の詳細な説明では、本発明の例示的実施形態を示す添付図面を参照する。しかし、本発明の範囲はそれらの実施形態に制限されず、特許請求の範囲により定義される。したがって、図の実施形態を改変したものなど、添付図面に図示する以外の実施形態も本発明に包含されうる。本明細書中の一実施形態実施形態例示的実施形態等は、記載されるその実施形態が特定の機能、構造、または特徴を含むことができるが、すべての実施形態が必ずしもその特定の機能、構造、または特徴を含むとは限らないことを意味する。さらに、そのような文言は必ずしも同じ実施形態を指さない。さらに、特定の機能、構造、または特徴をある実施形態との関連で記載する場合、明示的に記載されるか否かに関わらず他の実施形態との関連でその機能、構造、または特徴を実施することは当業者の知識の範囲内であると考える。A.例示的動作環境コンピュータの保護されたボリュームに記憶された暗号化データにアクセスするための一度限り使用可能な認証方法を本明細書に記載する。そのような方法の理解を助けるために、以下でそのような方法を実施することが可能な例示的システム100について図1のブロック図を参照して説明する。ただし、当業者は、本明細書に記載の方法はシステム100以外の幅広いシステムによって行うことが可能であることを理解されよう。図1に示すように、システム100は、複数のクライアントコンピュータ1041~104Nと、サーバ106と、管理者用管理者コンピュータ108とを通信可能に接続するネットワーク102を含む。システム100は、例えば、企業または会社のコンピューティング環境に相当する。ただし、この例は制限的なものではなく、システム100は他のコンピューティング環境も表すことができる。次にシステム100の各要素について説明する。ネットワーク102は、各種の通信チャネルで接続されたコンピュータおよび装置例えばルータ、スイッチ、ブリッジ、ハブ、および中継器の集合を表す。ネットワーク102は、システム100のユーザ間の通信を容易にし、ユーザが他のユーザと情報およびリソースを共有することを可能にする。ネットワーク102は、任意種類の有線技術、無線技術、またはそれらの組み合わせを使用して実施することができる。ネットワーク102は、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、グローバルエリアネットワーク、企業の私設網、仮想私設網などを表すことができる。各クライアントコンピュータ1041~104Nは、ユーザが各種のコンピューティング動作を行うことができるように構成される。そのようなコンピューティング動作を容易に行えるように、各クライアントコンピュータ1041~104Nは、ローカルにデータを記憶するために使用可能なファイルシステムを備え、ファイルシステムは、ボリュームと呼ばれる、1つまたは複数の論理的に定義された記憶領域を備える。各クライアントコンピュータ1041~104Nはさらに、いわゆるフルボリューム暗号化を行うことにより、少なくとも1つのファイルシステムボリュームに記憶されたプログラム命令またはデータの機密性を保護するコンポーネントを含む。例示的なクライアントコンピュータ200については図2を参照してより詳細に説明する。サーバ106は、クライアントコンピュータ1041~104Nのために、またはその代理として1つまたは複数のサービスを行うように構成され、またシステム100に関してシステムレベルのタスクを行うように構成することも可能なコンピュータである。サーバ106は、システム100内でネットワーク102に接続された任意数のサーバの1つを含みうる。一実施形態では、サーバ106は、MICROSOFT登録商標ACTIVEDIRECTORY登録商標で提供されるようなネットワークサービスをシステム100内のエンティティに提供するように構成されるが、この例は制限的なものではない。これも本明細書で後述するように、各種実施形態で、サーバ106は、クライアントコンピュータ1041~104Nのうち1つの保護されたボリュームに記憶されたデータへのアクセスを管理するために一度限りの認証方法を実行する際に必要な動作を行うように構成される。サーバ106はさらに、特定の実施の要件に応じて各種の他の機能を行うように構成することができる。指定された機能を行うために、サーバ106は、メモリ110に通信可能に接続され、メモリ110にデータを記憶し、メモリ110のデータにアクセスするように構成される。メモリ110は、サーバ106からアクセス可能な任意種の記憶装置またはシステムを含みうる。メモリ110は、ネットワーク102または何らかの他のインタフェースを介してサーバ106に接続されうる。サーバ106がMICROSOFT登録商標ACTIVEDIRECTORY登録商標のネットワークサービスを提供するように構成される実施形態では、メモリ110はACTIVEDIRECTORY登録商標データベースを記憶することができる。管理者コンピュータ108は、権限を与えられた情報技術IT管理者などの権限ユーザがシステム100に関する設定および管理作業を行うことを可能にするように構成される。それらの作業には、例えば、ユーザ特権および許可の作成および維持、クライアントコンピュータ1041~104N、サーバ106、ネットワークの動作およびリソースの監視、クライアントコンピュータ1041~104Nまたはサーバ106にインストールされたソフトウェアの更新および/またはパッチの適用、リポートの生成、セキュリティおよび監査ポリシーの設定等が含まれる。本明細書で後述するように、各種実施形態で、権限ユーザは管理者コンピュータ108を使用して、クライアントコンピュータ1041~104Nのいずれか1つの保護されたボリュームに記憶されたデータへのアクセスを制御するための一度限りの認証方法を設定および/または実行することができる。図2は、一実施形態による、フルボリューム暗号化機能を提供するように構成された例示的なクライアントコンピュータ200のブロック図である。クライアントコンピュータ200は、図1に示すクライアントコンピュータ1041~104Nのいずれにも相当しうる。実装に応じて、クライアントコンピュータ200は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末PDA、またはプロセッサを利用した他のシステムもしくは装置を含みうる。図2に示すように、クライアントコンピュータ200は、ハードウェア層202およびソフトウェア層204を備える。以下でこれらの各層を説明する。ハードウェア層202は、これらに限定されないが、処理装置212、システムメモリ214、1つまたは複数の大容量記憶装置216、およびトラステッドプラットフォームモジュールTPM218を含む、相互接続された複数のハードウェアコンポーネントを備える。処理装置212は、システムメモリ214に記憶されたプログラム命令を実行して、クライアントコンピュータ200に指定された機能を行わせるように設計された1つまたは複数のマイクロプロセッサまたはマイクロプロセッサコアを備える。システムメモリ214は、実行時に処理装置212に消費されるプログラム命令または生成されるデータを一時的に記憶する1つまたは複数の揮発性記憶装置を備える。大容量記憶装置216は、クライアントコンピュータ200のプログラム命令および/またはデータを恒久的に記憶するために使用される不揮発性の記憶装置を備える。大容量記憶装置216は、1つまたは複数の内蔵ハードディスクドライブなどクライアントコンピュータ200の一部を形成する装置、および/または、1つまたは複数の携帯型記憶装置やドライブなど、クライアントコンピュータのユーザによってクライアントコンピュータ200に接続できる装置を含むことができる。TPM218は、クライアントコンピュータ200が、TrustedComputingGroupから発行されるトラステッドプラットフォームモジュール仕様の少なくとも1つのバージョンの機能を実施することを可能にするセキュアな暗号処理装置を備える。ハードウェア層202に含めることができるが図2に示さない他のハードウェア装置には、これらに限定されないが、ビデオアダプタおよびそれに関連するディスプレイ、1つまたは複数の入力/出力I/O装置インタフェース、ネットワークインタフェース等がある。ソフトウェア層204は、処理装置212などのハードウェア層202内の要素によって実行される、特定機能を行う複数のソフトウェア要素を備える。図2に示すように、ソフトウェア層204は、システム起動コンポーネント222およびオペレーティングシステム224を含む。システム起動コンポーネント222は、オペレーティングシステム224がシステムメモリ214にロードされ、処理装置212に実行される前に実行されるコンポーネントからなる。システム起動コンポーネント222には、基本入出力システムBIOS232およびブートマネジャ234が含まれる。BIOS232は、クライアントコンピュータ200に電源が投入された時にクライアントコンピュータ200によって最初に実行されるコードである。諸機能の中でも、BIOS232は特に、ハードウェア層202に含まれる特定の装置を識別、検査、および初期化する働きをする。クライアントコンピュータ200が既知の状態に設定されると、BIOS232はブートマネジャ234を実行させ、ブートマネジャ234は処理装置212による実行のためにオペレーティングシステム224をシステムメモリ214にロードする。特定の実装では、ブートマネジャ234は、ユーザが複数のオペレーティングシステムの中からロードして実行するものを選択することを可能にする。オペレーティングシステム224は、クライアントコンピュータ200で実行されるソフトウェアアプリケーション図2には図示せずに対するホストとして機能する。例えば、オペレーティングシステム224は、クライアントコンピュータ200で実行される各種アプリケーションによるクライアントコンピュータ200のリソースの共有を管理し、調整する。オペレーティングシステム224は、そのようなソフトウェアアプリケーションに代わってハードウェア層202の各種要素とのインタフェースをもとり、それによりアプリケーションがハードウェア動作の詳細を管理せずに済むようにし、アプリケーションへの書き込みを容易にする。オペレーティングシステム224は、アプリケーションおよびユーザに複数のサービスを提供することができる。アプリケーションは、アプリケーションプログラミングインタフェースAPIまたはシステムコールを通じてそれらのサービスにアクセスすることができる。そのようなインタフェースを呼び出すことにより、アプリケーションは、オペレーティングシステム224にサービスを要求し、パラメータを渡し、結果を受け取ることができる。特定の実装では、ユーザは、コマンドラインインタフェースCLIやグラフィックユーザインタフェースGUIなどのソフトウェアユーザインタフェースSUIを介してオペレーティングシステム224と対話することができる。一実施形態では、オペレーティングシステム224は、ワシントン州レドモンドのMicrosoftCorporationから公開されるWINDOWS登録商標VISTA登録商標またはWINDOWS登録商標7オペレーティングシステムからなる。ただしこの例は制限的なものでなく、オペレーティングシステム224は、上述の機能の少なくとも1つまたは複数を行うように設計された、従来または今後開発されるオペレーティングシステムから構成されうる。図2に示すように、オペレーティングシステム224はファイルシステム244を備える。ファイルシステム244は、コンピュータプログラムファイルおよびデータファイルを大容量記憶装置216に記憶し、大容量記憶装置216から取り出し、編成し、その他の形で操作するための操作のセットを提供する。それらの操作は、オペレーティングシステム224および/またはオペレーティングシステムで実行されるアプリケーションによって使用されうる。ファイルシステム244により記憶されたファイルは、ボリュームと呼ばれる、論理的に定義された記憶領域に記憶される。論理ボリュームマネジャ248は、そのような論理ボリュームを、大容量記憶装置216にある実際の物理記憶領域に対応付ける役割を担う。したがって、論理ボリュームマネジャ248は、ファイルシステム244によって行われるファイル操作を処理して、大容量記憶装置216内の適切な領域がアクセスされることを保証しなければならない。図2にさらに示すように、オペレーティングシステム224はオペレーティングシステムOS暗号化モジュール242も含む。OS暗号化モジュール242は、処理装置212に実行されるとユーザがファイルシステム244のボリュームに選択的にフルボリューム暗号化を適用できるようにするロジックを備える。ボリュームにフルボリューム暗号化が適用されると、そのボリュームに記憶されたすべてのデータ例外がある場合もあるが暗号化される。そのような暗号化データはその後、権限のあるエンティティから要求があった時に透過に復号される。データの暗号化および復号は、ファイルシステム244と論理ボリュームマネジャ248との間にインストールされた暗号化フィルタドライバ246で処理される。暗号化フィルタドライバ246は、保護されたボリュームへの記憶動作の一部としてファイルシステム244から論理ボリュームマネジャ248に渡されるデータを暗号化し、保護されたボリュームへのアクセス動作の一部として論理ボリュームマネジャ248からファイルシステム244に渡されるデータを復号するように動作する。本明細書で使用される場合、用語保護されたボリュームとは、そのようなフルボリューム暗号化が適用されたボリュームを言う。保護されたボリュームは、オペレーティングシステム224の実行に必要なファイルを記憶するオペレーティングシステムOSボリュームや、実行時すなわちオペレーティングシステム224が立ち上がり、実行されている時にアクセスされるアプリケーションデータや他のデータを記憶する物理的または仮想的なデータボリュームを含むことができる。一実施形態では、クライアントコンピュータ200が提供するフルボリューム暗号化機能は、MICROSOFT登録商標WINDOWS登録商標オペレーティングシステムの1つまたは複数のバージョンに含まれるBITLOCKER商標ドライブ暗号化BITLOCKERの機能に対応するが、この例は制限的なものではない。一実施形態によると、保護されたボリュームのセクタは、そのボリュームに関連付けられたフルボリューム暗号化キーFVEKを使用して暗号化される。そして、FVEKは、ボリュームマスタキーVMKと呼ばれる鍵で暗号化される。VMKで暗号化されたFVEKは、いわゆるボリュームメタデータの一部として、保護されたボリューム自体に記憶される。FVEKはローカルに記憶されるが、暗号化されない状態でディスクに書き込まれることは決してない。VMKも暗号化、すなわち保護されるが、VMKは1つまたは複数の可能なキープロテクタで暗号化される。すなわち、VMKは、種々の認証方法に対応する各種の異なる方式で暗号化し、記憶することができる。暗号化されたバージョンのVMKすなわちキープロテクタも、保護されたボリューム自体に、ボリュームメタデータの一部として記憶される。クライアントコンピュータ200は、復号を通じて保護されたボリュームの暗号化データへのアクセスを得ることをエンティティに許す前に、そのエンティティを認証するために各種の異なる処理のいずれかを行うように構成することができる。エンティティが認証処理に合格すると、暗号化データへのアクセスが許可される。エンティティが認証処理に不合格の場合は、暗号化データへのアクセスが拒否される。上記のように、一実施形態では、暗号化データにアクセスするには、まずキープロテクタで保護されているすなわち暗号化されたVMKを入手し、次いで暗号化を解除したVMKを使用してFVEKを復号し、最後にFVEKを使用して保護されたボリュームの暗号化セクタを復号することが必要となる。保護されたボリュームはシステム起動時と実行時にアクセスされる可能性があるため、ソフトウェア層204は、そのような認証処理を行うことができる2つの異なるコンポーネントを含む。システム起動時には、ブートマネジャ234の一部であるpre-OS暗号化モジュール262によって認証が行われ、実行時には暗号化フィルタドライバ246内のロジックによって認証が行われる。例えば、保護されたボリュームが、コンピュータのブート時にアクセスされるOSボリュームの場合は、pre-OS暗号化モジュール262は、OSボリュームへのアクセスを許可する前に特定のシステム起動コンポーネントの完全性検査を行うように構成することができる。この認証機構は、TPM218を使用してOSボリュームのVMKをTPM218で計測された特定のシステム起動コンポーネントの状態にシールsealすることによって初期化される。そして、システムの起動中に同じコンポーネントをTPM218で計測して、コンポーネントの状態が、シール動作が行われた時と同じであるかどうかを判定する。状態が一致する場合は、VMKがアンシールunsealされ非暗号化形態で提供され、保護されたOSボリュームへのアクセスを実現することができる。対して、状態が一致しない場合は、VMKはシール状態のままにされ、保護されたOSボリュームへのアクセスが拒否される。これにより、クライアントコンピュータ200は、クライアントコンピュータ200の特定の起動コンポーネントが改ざんされた場合に、保護されたOSボリュームへのアクセスを拒否することができる。TPM218を使用してシールおよびアンシール動作を行う方式は当業者に知られていよう。pre-OS暗号化モジュール262が備える他の認証機構は、VMKを復号するために起動キーや個人識別番号PINなどのアクセス資格情報の提供を要求することができる。起動キーは、例えば、起動キーを記憶した何らかの形態の携帯型記憶装置例えばUSBサムthumbドライブをクライアントコンピュータ200のポートに挿入することによって提供することができる。PINは、クライアントコンピュータ200の1つまたは複数の入力装置を使用して、ユーザの手動入力を介して提供することができる。さらに他の認証機構は、VMKを復号するために、TPMを利用した完全性検査に合格し、かつ1つまたは複数のアクセス資格情報を提供することを求めることができる。暗号化フィルタドライバ246は、上記でpre-OS暗号化モジュール262を参照して説明したのと同様の認証処理を行って、実行時にファイルシステム244の暗号化されたデータボリュームへのアクセスを制御することができる。B.一度限り使用可能な認証方法の利点場合によっては、緊急のアクセスのためにクライアントコンピュータ200の保護されたボリュームのロックを解除するために使用できる認証方法があることが望ましい。例えば、保護されたボリュームに関連付けられたアクセス資格情報例えば起動キーやPINを喪失した場合に、そのような認証方法を使用して保護されたボリュームにアクセスして、障害が発生している保護されたボリュームからデータを抽出する、またはクライアントコンピュータ200を再起動してセキュリティアップデートをインストールするなどの緊急を要する管理機能を行うことができる。そのような認証方法では、TPMを利用した完全性検査などの一部のシステム防御手段を省略するようにしてよい。したがって、使用のたびにIT管理者または同様の権限者からの明示的な許可を得ないと認証方法を使用することができない場合に有用であると考えられる。これを実現するために、本明細書に記載される実施形態は、保護されたボリュームへのアクセスを管理するための一度限り使用可能な認証方法を提供する。下記で説明するように、そのような一度限り使用可能な認証方法は一般に、一度のみ使用することができ、かつ/または使用のたびに新しいアクセス資格情報を必要とするキープロテクタの提供に依拠する。特定の実施形態では、認証方法の一部としてチャレンジ-レスポンス処理も使用して、キープロテクタおよび/またはアクセス資格情報の発行を、ユーザを一意に識別することができる特定の情報に結びつける。セキュリティの観点から、一度限り使用可能な認証方法は、権限ユーザの不注意から生じる誤使用、また、いくらかの時間クライアントコンピュータ200を観察してクライアントコンピュータ200および可能性としては他の情報を捕捉する無許可ユーザによる誤使用を防止しなければならない。攻撃者がロックがかかっていないシステムを危険にさらす攻撃は対象とならない。何故ならば、そのような場合攻撃者は初めから保護されたボリュームの内容を入手することができ、システムのロックを解除する必要がないためである。特に次のような攻撃から防御すると有益であると考えられる。1認証方法が、ユーザにパスワードの入力を求める場合に、そのパスワードを例えばユーザがパスワードを書き留めた紙を見つけることにより知った攻撃者がパスワードの再使用を試みる。2認証方法が、クライアントコンピュータがネットワークを介してサーバと対話することを求める場合に、過去に行われたそのような対話を観察した攻撃者が単に以前のサーバからのレスポンスを再現することにより、クライアントコンピュータに、保護されたボリュームのロックを解除させることを試みる。3認証方法が、クライアントコンピュータがネットワークを通じてサーバと対話することを求める場合に、過去にそのような対話を観察した攻撃者が単に過去のクライアントコンピュータからのレスポンスを再生することにより、サーバに、保護されたボリュームのロックを解除させることを試みる。4認証方法が、クライアントコンピュータがネットワークを通じてサーバと対話することを求める場合に、攻撃者が、クライアントコンピュータで実行されるコードを改変する、または攻撃者の制御下にある悪意あるシステムに対して要求を行う。5過去に緊急アクセスのためにロック解除されたクライアントコンピュータを捕捉した攻撃者がクライアントコンピュータのディスク内容を以前の状態に戻すことにより、ロック解除動作を繰り返すことを試みる。6クライアントで緊急のキープロテクタを作成する際にサーバとの通信が必要とされる場合に、攻撃者がその通信を妨害することによりサービス否定攻撃を行うことを試みる。そのような妨害は、例えばタイミングの悪いネットワーク故障が原因となるなど、悪意ある攻撃者がいない場合にも起こりうることに留意されたい。以下の項で、上記の攻撃の一部もしくはすべて、またはそれらの組み合わせに対して安全な方法を説明する。II.一度限り使用可能な認証方法の例以下で、コンピュータの保護されたボリュームに記憶された暗号化データへの制御されたアクセスを提供するために使用できる例示的な認証方法を説明する。この認証方法は一度のみ使用することができる。上記のように、そのような一度限り使用可能な認証方法は、保護されたボリュームに関連付けられた通常使用される認証機構を一度だけ回避できるようにすることが望ましい、復旧のシナリオやシステム管理のシナリオなどの特定のシナリオで有利に使用されうる。単に説明の目的で、この項で提示する各種の方法ステップは、上記で図1を参照して説明した例示的システム100内のエンティティ、および/または、上記で図2を参照して説明した例示的クライアントコンピュータ200のハードウェアまたはソフトウェアコンポーネントによって行われる動作として説明する。ただし、本明細書に提供される教示に基づき、当業者は、そのような方法ステップは、図1および図2に示す以外のエンティティまたはコンポーネントによって行うことも可能であることを容易に理解されよう。下記の例示的一度限り使用可能な認証方法はすべて、基本的に同じ高レベル処理の流れに従う。それらの方法の理解を助けるために、この高レベル処理の流れについて図3のフローチャート300を参照して説明する。以下に説明する例示的な一度限り使用可能な認証方法では、フローチャート300に示す以外の追加的なステップを行うこともでき、またはフローチャート300の記載とわずかに異なる方式でステップを行うこともできることを理解されたい。したがって、フローチャート300は、下記の方法に関して制限的なものと見なすべきでない。図3に示すように、フローチャート300の方法はステップ302で開始し、クライアントコンピュータ200の保護されたボリュームなど、第1のコンピュータの保護されたボリュームを復号するために必要なボリューム固有の暗号鍵を暗号化することによりキープロテクタが生成される。一実施形態では、ボリューム固有の暗号鍵は、それ自体を使用してフルボリューム暗号化キーFVEKを復号することができるボリュームマスタキーVMKからなる。そして、FVEKを使用して、保護されたボリュームの暗号化セクタを復号することができる。ステップ304で、クライアントコンピュータ200のローカルメモリなど、第1のコンピュータのローカルメモリにキープロテクタを記憶して、後に第1のコンピュータが保護されたボリュームを復号する必要がある時に第1のコンピュータからアクセスできるようにする。一実施形態では、キープロテクタは、いわゆるボリュームメタデータの一部として、保護されたボリュームの一部分に記憶される。判定ステップ306で、第1のコンピュータが、保護されたボリュームにアクセスする試みが検出されたかどうかを判定する。保護されたボリュームにアクセスする試みが検出されていない場合は判定ステップ306を繰り返す。保護されたボリュームにアクセスする試みが検出されている場合は、制御はステップ308に進む。ステップ308で、第1のコンピュータが、ローカルメモリに記憶されたキープロテクタを復号するために必要な1つまたは複数のアクセス資格情報を取得する。下記で説明するように、使用する方法に応じて、ステップ308で取得されるアクセス資格情報は、キープロテクタを復号するために必要な暗号鍵、TPMを使用してキープロテクタをアンシールするために必要な計測値、または、TPMに関連付けられた移動不可能な暗号鍵を利用するために必要な認証コードを含むことができるが、これらの例は制限的なものではない。ステップ310で、第1のコンピュータは、ステップ308で取得したアクセス資格情報を使用してキープロテクタを復号し、それによりボリューム固有の暗号鍵を取得する。上記のように、特定の実施形態では、キープロテクタを復号することによりVMKを得ることができ、次いでそのVMKを使用して、保護されたボリュームのセクタを復号するのに必要なFVEKを復号する。ステップ312で、キープロテクタを削除することにより、および/またはキープロテクタを復号するために必要なアクセス資格情報を削除もしくは変更することにより、認証方法が一度のみ使用されることを保証する。この重要なステップを行う各種方式については、各例示的方法を参照して下記で説明する。下記の例示的方法の少なくとも1つによると、前述の方法は、新しいキープロテクタおよび/またはアクセス資格情報を自動的に供給することにより、暗号化ボリュームへのアクセスを得るために使用できる一度限り使用可能な認証方法を新たに設定する追加的ステップも含む。そのようなステップは、管理作業を行うために一度限り使用可能な認証方法が使用される場合は必要でない場合もある。管理作業の場合は、IT管理者などの人間の作業主導者が供給機能を行うことができる。一方、一度限り使用可能な認証方法が緊急作業を行うために使用される場合は、そのような供給を行うことができる時が他にない可能性があるため、そのようなステップが重要となる可能性がある。第1のコンピュータがクライアントコンピュータ200である実施形態では、第1のコンピュータによって行われる、保護されたボリュームへのアクセスの検出、および保護されたボリュームに関連付けられたキープロテクタの復号に関連する機能は、pre-OS暗号化モジュール262または暗号化フィルタドライバ246のどちらかによって行うことができる。例えば、保護されたOSボリュームへのアクセスがシステム起動時に試みられる場合はpre-OS暗号化モジュール262がそのような機能を行い、一方、保護されたデータボリュームへのアクセスが実行時に試みられる場合は暗号化フィルタドライバ246がそれらの機能を行うことができる。ただし、これらは例に過ぎず、クライアントコンピュータ200内の他のコンポーネントを使用してそれらの機能を行ってもよい。下記で提供する例示的方法の説明から明らかにするように、例示的方法とその特定の実施に応じて、ステップ302、308および312を行うために必要とされる動作は、第1のコンピュータ例えばクライアントコンピュータ200、第2のコンピュータ例えばサーバ106、または第1のコンピュータと第2のコンピュータの組み合わせによって行うことができる。それらのステップを行うために必要な動作は、自動的に、またはIT管理者などのその権限ユーザから提供される入力に応答して管理者用コンピュータ例えば管理者コンピュータ108によって行われるステップをさらに要する場合もある。また、ステップ302および308を行うために必要な動作は、チャレンジ-レスポンス機構の実行に関連する人間の介在など、人間の介在を要する場合がある。機密性のあるデータこれらに限定されないがランダムノンスnonceや権限付与データなどをコンピュータ間で送信することを要する下記の例示的方法の特定の実施では、そのような通信はセキュアな経路で行って、中間者maninthemiddle攻撃などを回避する助けとすることができる。A.使い捨てのキープロテクタに基づく一度限り使用可能な認証方法図4に、第1のコンピュータの保護されたボリュームに記憶された暗号化データへのアクセスを制御するための一度限り使用可能な認証方法の第1の例のフローチャート400を示す。下記の説明から明らかにするように、フローチャート400の方法は使い捨てのキープロテクタの発想に基づくものである。フローチャート400の方法は、上記の項I.Bで説明した攻撃タイプ1、3、および6を阻止する。この方法では、第1のコンピュータがTPMを備える必要はない。図4に示すように、フローチャート400の方法はステップ402で開始し、ランダムの非対称の公開鍵と秘密鍵の対が生成される。非対称の公開鍵と秘密鍵の対は、例えば、RSA公開鍵と秘密鍵の対からなることができるが、他の非対称公開鍵と秘密鍵の対を使用してもよい。フローチャート400の方法がシステム100で実施される実施形態では、ランダムの非対称公開鍵と秘密鍵の対は、自動的に、またはIT管理者などの権限ユーザの動作に基づいて、管理者コンピュータ108で生成することができる。あるいは、非対称の公開鍵と秘密鍵の対は、自動的に、または管理者コンピュータ108もしくはクライアントコンピュータ200から受信される通信に応答して、サーバコンピュータ106で生成してもよい。ステップ404で、保護されたボリュームを復号するために必要なボリューム固有の暗号鍵を公開鍵で暗号化することによりキープロテクタを生成する。このステップは、第1のコンピュータ、例えばクライアントコンピュータ200で行うことができる。フローチャート400の方法がシステム100で実施され、システム100がACTIVEDIRECTORY登録商標を利用するネットワークを備える実施形態では、ACTIVEDIRECTORY登録商標のグループポリシーを介して公開鍵をシステム100内の1つまたは複数のクライアントコンピュータに配布することができる。ただし、これは一例に過ぎず、多数の他の配布機構を使用することができる。例示的システム100をさらに参照すると、公開鍵は、管理者コンピュータ108、サーバ106、またはネットワーク102上の何らかの他のエンティティから配布することができる。公開鍵は、使い捨てのキープロテクタ識別子および特定のキープロテクタ属性と共に配布することができる。実装に応じて、ステップ404で生成されるキープロテクタを復号するために必要な秘密鍵は、いくつかの異なる場所の1つに記憶することができる。例えば、秘密鍵は、暗号化されていない状態で第1のコンピュータのローカルメモリに記憶することができる例えば保護されたボリュームに記憶されたボリュームメタデータの一部として。あるいは、秘密鍵は、ACTIVEDIRECTORY登録商標サーバからアクセス可能なACTIVEDIRECTORY登録商標データベースなど、企業の社内ネットワーク上にセキュアに記憶し、したがって社内ネットワークへのアクセスを必要としてもよい。さらに、秘密鍵は、アクセスするためにチャレンジ-レスポンス対話を要求する信頼されるサーバにセキュアに記憶することができる。フローチャート400の方法がシステム100で実施される実施形態では、サーバ106は、ACTIVEDIRECTORY登録商標サーバまたは秘密鍵を記憶するために使用される信頼されるサーバからなることができる。一実施形態では、秘密鍵が記憶される場所は、公開鍵と共に配布されるキープロテクタ属性に基づいて決定される。ステップ406で、キープロテクタを第1のコンピュータのローカルメモリに記憶する。例えば、このステップは、保護されたボリュームのボリュームメタデータの一部としてキープロテクタを記憶することからなることができる。一実施形態では、キープロテクタは、キープロテクタが使い捨てのキープロテクタであることを示すフラグまたは他の識別子、および上記で参照したキープロテクタ属性と共に記憶される。判定ステップ408で、第1のコンピュータは、保護されたボリュームにアクセスする試みが検出されたかどうかを判定する。保護されたボリュームにアクセスする試みが検出されていない場合は、判定ステップ408を繰り返す。保護されたボリュームにアクセスする試みが検出された場合は、制御はステップ410に進む。ステップ410で、保護された鍵にアクセスする試みが検出されたことに応答して、第1のコンピュータは、以前に記憶した秘密鍵を取得する。一実施形態では、このステップは、秘密鍵がどこに記憶されているかを判定し、次いでその場所にある秘密鍵にアクセスすることからなる。秘密鍵が記憶されている場所の判定は、ステップ406でキープロテクタと共に記憶された特定のキープロテクタ属性に基づいて行われる。秘密鍵の記憶場所に応じて、このステップは、第1のコンピュータのローカルメモリ例えば保護されたボリューム内のボリュームメタデータから復号されたバージョンの秘密鍵を取得するか、または、ACTIVEDIRECTORY登録商標サーバもしくは秘密鍵を提供することが可能な社内ネットワーク上の他の信頼されるサーバとのセキュアな通信を確立するか、または第1のコンピュータのユーザにチャレンジで働きかけ、適切なレスポンスを待って、信頼されるサーバから秘密鍵を提供することを伴うことができる。サーバへの接触が伴う場合は、第1のコンピュータのローカルメモリに記憶された属性情報で接触するサーバを一意に識別することができ、第1のコンピュータは、ボリューム識別子または該当する秘密鍵を識別するために使用できる他の一意の識別子をサーバに提供することができる。チャレンジ-レスポンス対話を使用する場合は、チャレンジで所定の情報を要求することができ、それらの情報には、これらに限定されないが、例えばドメインユーザ名およびパスワード、従業員ID等が含まれる。ステップ412で、秘密鍵を取得した後、第1のコンピュータは、秘密鍵を使用してキープロテクタを復号してボリューム固有の暗号鍵を取得する。そして、そのボリューム固有の暗号鍵を使用して、保護されたボリュームの暗号化データを復号することができる。一実施形態では、ボリューム固有の暗号鍵は第1のボリューム固有の暗号鍵例えばVMKからなり、その暗号鍵を使用して第2のボリューム固有の暗号鍵例えばFVEKを復号することができ、その第2のボリューム固有の暗号鍵を使用して保護されたボリュームの個々のセクタを復号することができる。ステップ414で、第1のコンピュータは、キープロテクタを1回使用した後に、第1のコンピュータのローカルメモリからキープロテクタを削除する。それにより、フローチャート400の認証方法が一度のみ使用されることが保証される。一実施形態では、第1のコンピュータは、使い捨てのキープロテクタインディケータとキープロテクタとの関連付けに基づいてこのステップを行うようにプログラムされる。例えば、一実施形態では、第1のコンピュータが、保護されたボリュームのボリュームメタデータにあるすべてのキープロテクタを内部で列挙する。使い捨てのキープロテクタとして指定されたキープロテクタが見つかると、第1のコンピュータは、直ちに自動的にユーザへの指示や対話を行わずにそのキープロテクタを削除する。特定の実装では、この動作は、電源異常が発生した場合には次回の電源切断再投入後にキープロテクタの削除を続けることができるように処理することができる。列挙は、同様の使い捨てのキープロテクタがボリュームメタデータになくなるまで、または完了を必要としている未終了の削除動作がなくなるまで継続する。第1のコンピュータがクライアントコンピュータ200である実施形態では、保護されたボリュームへのアクセスの検出、秘密鍵の取得、保護されたボリュームに関連付けられたキープロテクタの復号、およびキープロテクタの削除に関連して上記で述べた機能は、pre-OS暗号化モジュール262または暗号化フィルタドライバ246によって行うことができる。例えば、保護されたOSボリュームへのアクセスがシステム起動時に試みられる場合は、pre-OS暗号化モジュール262がそのような機能を行い、保護されたデータボリュームへのアクセスが実行時に試みられる場合は暗号化フィルタドライバ246がそれらの機能を行うことができる。ただし、これは例に過ぎず、クライアントコンピュータ200内の他のコンポーネントを使用してこれらの機能を行ってもよい。B.TPMおよび人間の介在を使用する一度限りのロック解除に基づく一度限り使用可能な認証方法図5に、第1のコンピュータの保護されたボリュームに記憶された暗号化データへのアクセスを制御する第2の一度限り使用可能な認証方法の例のフローチャート500を示す。下記の説明で明らかにするように、フローチャート500の方法は、TPMおよび人間の介在を使用する一度限りのロック解除の発想に基づく。フローチャート500の方法は、上記I.Bの項で説明した個々の攻撃タイプすべてとそれらの多数の組み合わせを阻止する。ただし、同項で述べた攻撃タイプ2と4の組み合わせには無効である可能性がある。フローチャート500の方法では、第1のコンピュータにTPMが存在することが必要となる。この方法は、TPMのエクステンドextendおよびシール動作がそれぞれハッシュ化と公開鍵による暗号化に相当し、したがってそれらの動作はTPMの支援を受けずに別のエンティティによって行えるのに対し、秘密鍵による復号に相当するTPMのアンシール動作はTPM自体でしか行うことができないことを利用する。TPMを使用してエクステンド、シールおよびアンシール動作を行う方式は当業者には知られていよう。図5に示すように、フローチャート500の方法はステップ502で開始し、TPMのシール動作を行って、保護されたボリュームをTPMの公開鍵で復号するために必要なボリューム固有の暗号鍵を暗号化し、暗号化したボリューム固有の暗号鍵を、ランダム文字列をハッシュ化するSと呼ぶ場合があることで生成される値にバインドすることにより、キープロテクタを生成する。実装に応じて、ステップ502を行うために必要とされる動作は、TPMを備える第1のコンピュータが行っても、TPMを備える第1のコンピュータとTPMを備えない第2のコンピュータとの組み合わせで行ってもよい。第1のコンピュータは例えばクライアントコンピュータ200であり、第2のコンピュータは例えば、サーバ106または管理者コンピュータ108である。以下にこのステップを行うための各種手法を説明するが、さらに他の手法を用いてもよい。例えば、一実施形態では、第1のコンピュータが第2のコンピュータに接触する。第1のコンピュータからの接触に応答して、第2のコンピュータは、ランダム文字列Sを生成し、次いでハッシュ関数をSに適用することにより、ランダム文字列Sのハッシュを生成する。そしてハッシュが第1のコンピュータに送られる。第1のコンピュータはハッシュをTPMプラットフォームコンフィギュレーションレジスタPCRの値として使用し、TPMのシール動作を行ってボリューム固有の暗号鍵をTPMの公開鍵に従って暗号化すると共に、暗号化されたボリューム固有の暗号鍵をPCR値にバインドする。このTPMシール動作の実行によりキープロテクタが生成される。代替実施形態では、第1のコンピュータがボリューム固有の暗号鍵および第1のコンピュータ内にあるTPMの公開鍵を第2のコンピュータに通信する。第2のコンピュータはランダム文字列Sを生成し、ハッシュ関数を適用してPCR値を生成し、TPMのシール動作を行ってボリューム固有の暗号鍵をTPMの公開鍵に従って暗号化し、また暗号化されたボリューム固有の暗号鍵をPCR値にバインドする。上記のように、第2のコンピュータは、第1のコンピュータのTPMにアクセスすることができなくてもTPMのシール動作を行うことができる。このTPMのシール動作の実行によりキープロテクタが生成され、第2のコンピュータはそのキープロテクタを第1のコンピュータに送り返す。さらに別の代替実施形態では、第1のコンピュータがランダム文字列Sを生成してからTPMのエクステンド動作を行ってTPMのPCRにランダム文字列Sのハッシュ化バージョンを書き込む。そして、第1のコンピュータは、TPMシール動作を行ってボリューム固有の暗号鍵をTPMの公開鍵に従って暗号化すると共に、暗号化されたボリューム固有の暗号鍵をPCR値にバインドすることにより、キープロテクタを生成する。第1のコンピュータはランダム文字列Sのコピーを第2のコンピュータに送信し、自身のランダム文字列Sのコピーをローカルメモリから削除する。さらに別の代替実施形態では、第1のコンピュータは人間による入力を要求する。要求に応答して、第1のコンピュータのユーザがIT管理者または他の権限者に接触し、接触に応じてIT管理者が第2のコンピュータを使用してランダム文字列Sを生成し、ハッシュ関数を適用することにより、ランダム文字列Sのハッシュを生成する。そして、IT管理者はアウトオブバンドout-of-band機構例えば電話、電子メールなどを介してユーザにハッシュを伝え、ユーザはハッシュを第1のコンピュータに入力する。第1のコンピュータはハッシュをPCR値として使用し、TPMのシール動作を行ってボリューム固有の暗号鍵をTPMの公開鍵に従って暗号化すると共に、暗号化されたボリューム固有の暗号鍵をPCR値にバインドする。このTPMシール動作の実施によりキープロテクタが生成される。ステップ504で、キープロテクタが第1のコンピュータのローカルメモリに記憶される。例えば、このステップは、保護されたボリュームのボリュームメタデータの一部としてキープロテクタを記憶することからなることができる。ステップ506で、ランダム文字列Sが、第2のコンピュータからはアクセスできるが第1のコンピュータからはアクセスできないメモリに記憶される。例えば、第2のコンピュータがランダム文字列Sを生成するステップ502を実施する上記各種方法にさらに従うと、第2のコンピュータは、ランダム文字列Sのコピーを、第2のコンピュータからはアクセスできるが第1のコンピュータからはアクセスできないメモリに記憶し、ランダム文字列Sを第1のコンピュータに通信することは決してしない。また、第1のコンピュータがランダム文字列Sを生成するステップ502を実施する上記方法にさらに従うと、第1のコンピュータは、ランダム文字列Sのコピーを第2のコンピュータに送信して、第2のコンピュータからはアクセスできるが第1のコンピュータからはアクセスできないメモリに記憶させ、その後自身のランダム文字列Sのコピーをローカルメモリから削除する。判定ステップ508で、第1のコンピュータは、保護されたボリュームにアクセスする試みが検出されたかどうかを判定する。保護されたボリュームにアクセスする試みが検出されていない場合は、判定ステップ508を繰り返す。保護されたボリュームにアクセスする試みが検出された場合は、制御がステップ510に進む。ステップ510で、保護された鍵にアクセスする試みが検出されたことに対応して、第1のコンピュータが第2のコンピュータからランダム文字列Sを取得する。ステップ512で、第1のコンピュータは、ランダム文字列Sを利用するTPMのアンシール動作を行うことにより、ボリューム固有の暗号鍵を取得する。詳細には、第1のコンピュータは、TPMのエクステンド動作を行って、TPMのPCRに、ハッシュ化されたバージョンのランダム文字列Sを書き込む。次いで第1のコンピュータはPCR値を使用するTPMのアンシール動作を行ってシールされているボリューム固有の暗号鍵を復号する。そして、そのボリューム固有の暗号鍵を使用して保護されたボリュームの暗号化データを復号することができる。一実施形態では、ボリューム固有の暗号鍵は、第1のボリューム固有の暗号鍵例えばVMKからなり、それを使用して第2のボリューム固有の暗号鍵例えばFVEKを復号することができ、そして第2のボリューム固有の暗号鍵を使用して保護されたボリュームの個々のセクタを復号することができる。ステップ514で、第2のコンピュータは、第2のコンピュータからアクセス可能なメモリからランダム文字列Sを削除する。このステップにより、以後第1のコンピュータがランダム文字列Sを取得することができず、したがってキープロテクタを再度アンシールできなくなることが保証される。上記のように、ステップ510で、第1のコンピュータは第2のコンピュータからランダム文字列Sを取得する。このステップでランダム文字列Sが通常のネットワーク通信を介して第2のコンピュータから直接第1のコンピュータに送信された場合は、その際にランダム文字列Sが、そのような通信を盗聴することが可能な攻撃者にさらされることになる。この問題に対処するために、一実施形態では、人間の介在に基づくチャレンジ-レスポンス機構を使用して必要な情報を転送する。この機構によると、保護されたボリュームへのアクセスが要求される時、第1のコンピュータはランダムなチャレンジを生成し、それを第1のコンピュータのユーザに表示する。そして、ユーザは、アウトオブバンド通信経路電話、電子メールなどによりIT管理者または第2のコンピュータの他の権限ユーザに接触し、チャレンジを伝える。IT管理者はチャレンジを第2のコンピュータに入力し、第2のコンピュータは、チャレンジを可逆に例えばXOR演算ランダム文字列Sと組み合わせてレスポンスRを生成し、ランダム文字列Sを自身のメモリから削除して再度使用することができないようにする。次いでレスポンスRが管理者からアウトオブバンド通信経路を通じて第1のコンピュータのユーザに通信され、第1のコンピュータのユーザはレスポンスを第1のコンピュータに入力する。第1のコンピュータはレスポンスRからランダム文字列Sを抽出し、ランダム文字列SをPRCの中に展開し、PCRを使用してボリューム固有の暗号鍵をアンシールする。第1のコンピュータがクライアントコンピュータ200である実施形態では、保護されたボリュームへのアクセスの検出、ランダム文字列Sの取得、およびTPMアンシール動作の実行に関して上記で説明した機能は、pre-OS暗号化モジュール262または暗号化フィルタドライバ246によって行うことができる。例えば、保護されたOSボリュームへのアクセスがシステム起動時に試みられる場合はpre-OS暗号化モジュール262がそのような機能を行い、一方、保護されたデータボリュームへのアクセスが実行時に試みられる場合は暗号化フィルタドライバ246がそれらの機能を行うことができる。ただし、これらは例に過ぎず、クライアントコンピュータ200内の他のコンポーネントを使用してそれらの機能を行ってもよい。C.TPMおよびサーバの介在を使用する一度限りのロック解除に基づく一度限り使用可能な認証方法図6Aおよび図6Bに、第1のコンピュータの保護されたボリュームに記憶された暗号化データへのアクセスを制御するための第3の例示的な一度限り使用可能な認証方法のフローチャート600をまとめて示す。下記の説明で明らかにするように、フローチャート600の方法は、TPMおよびサーバの介在を使用する一度限りのロック解除の発想に基づく。フローチャート600の方法は、項I.Bで説明した個々の攻撃タイプすべてとそれらの攻撃の組み合わせを阻止する。フローチャート600の方法では、第1のコンピュータにTPMが存在することが必要となる。先に説明したフローチャート500の方法と同様に、フローチャート600の方法は、TPMのエクステンドおよびシール動作がそれぞれハッシュ化と公開鍵による暗号化に相当し、したがって、それらの動作はTPMの支援を受けずに別のエンティティによって行えるのに対し、秘密鍵による復号に相当するTPMのアンシール動作はTPM自体でしか行うことができないことを利用する。TPMを使用してエクステンド、シールおよびアンシール動作を行う方式は当業者には知られていよう。図6Aに示すように、フローチャート600の方法はステップ602で開始し、ステップ602では、保護されたボリュームを復号するために必要なボリューム固有の暗号鍵を第2のコンピュータに関連付けられた公開鍵で暗号化することにより、第1のキープロテクタが生成される。実装に応じて、このステップは、適切な配布経路を介して第2のコンピュータから公開鍵を受け取った後に第1のコンピュータが行っても、または第2のコンピュータで行い、その後第2のコンピュータから第1のコンピュータにキープロテクタを送信してもよい。さらに他の方法を使用してこのステップを行うことも可能である。ステップ604で、第1のキープロテクタを第1のコンピュータのローカルメモリに記憶する。例えば、このステップは、保護されたボリュームのボリュームメタデータの一部としてキープロテクタを記憶することからなることができる。図6Bに示すように、ステップ604の後に判定ステップ606が行われる。判定ステップ606では、第1のコンピュータが、保護されたボリュームにアクセスする試みが検出されたかどうかを判定する。保護されたボリュームにアクセスする試みが検出されていない場合は、判定ステップ606を繰り返す。保護されたボリュームにアクセスする試みが検出された場合は、制御はステップ608に進む。ステップ608で、第1のコンピュータで生成された第1の乱数に基づいて第1のコンピュータが第1のPCR値を生成し、これをPCRxと表す。このステップは、例えばTPMのエクステンド動作を行って乱数を第1のコンピュータ上のTPMの特定のPCRに展開することによって行うことができ、特定のPCRは事前にゼロに初期化されている。第1の乱数は第1のコンピュータのローカルメモリに記憶される。ステップ610で、第1のコンピュータがキープロテクタ、第1のPCR値PCRxおよび第1のPCR値の認証子を第2のコンピュータに送信する。一実施形態では、第1のPCR値の認証子は、偽造不可能な署名されたPCR値のセットからなり、これはPCRxを含み、第1のコンピュータのTPMのクオートquote機能を使用して生成される。この認証子の提供により、第1のコンピュータがRCRxの生成に使用された乱数に確実にバインドされる。ステップ612で、第2のコンピュータは、第2のコンピュータの公開鍵に対応する秘密鍵を使用して第1のキープロテクタを復号することにより、ボリューム固有の暗号鍵を取得する。ステップ614で、第2のコンピュータは、第1のPCR値PCRxおよび第2のコンピュータで生成された第2の乱数の両方に基づいて第2のPCR値を生成する。一実施では、このステップは、TPMのエクステンド動作を行って、第2の乱数のハッシュ化バージョンをPCRxに付加することを伴う。上記のように、第2のコンピュータは、第1のコンピュータのTPMにアクセスすることができなくともTPMのエクステンド動作を行うことができる。第2の乱数は、第2のコンピュータからアクセス可能なメモリに記憶される。ステップ616で、第2のコンピュータは、TPMのシール動作を行ってボリューム固有の暗号鍵を暗号化し、暗号化されたボリューム固有の暗号鍵を第2のPCR値にバインドすることにより第2のキープロテクタを生成する。上記のように、第2のコンピュータは、第1のコンピュータのTPMにアクセスすることができなくともTPMのシール動作を行うことができる。ステップ618で、第2のコンピュータは第2のキープロテクタおよび第2の乱数を第1のコンピュータに送信する。ステップ620で、第1のコンピュータは第1のPCR値および第2の乱数の両方に基づいて第2のPCR値を生成する。一実施形態では、このステップは、TPMのエクステンド動作を行って第2の乱数のハッシュ化バージョンをPCRxに付加することからなる。ステップ622で、第1のコンピュータは、第2のPCR値を利用するTPMのアンシール動作を第2のキープロテクタに行うことにより、ボリューム固有の暗号鍵を取得する。このTPMアンシール動作は、第1のコンピュータのTPMを使用してしか行うことができない。そして、そのボリューム固有の暗号鍵を使用して、保護されたボリュームの暗号化データを復号することができる。一実施形態では、ボリューム固有の暗号鍵は、第1のボリューム固有の暗号鍵例えばVMKからなり、その暗号鍵を使用して第2のボリューム固有の暗号鍵例えばFVEKを復号することができ、その第2のボリューム固有の暗号鍵を使用して保護されたボリュームの個々のセクタを復号することができる。ステップ624で、第1のコンピュータは、第1のコンピュータのローカルメモリから第1の乱数および第2の乱数を削除し、第2のコンピュータは、第2のコンピュータからアクセス可能なメモリから第2の乱数を削除する。このようにして第1の乱数および第2の乱数を削除することにより、ボリューム固有の暗号鍵をアンシールするために必要なPCR値を再作成することができなくなる。前述のフローチャート600の方法は、それ単独では、第1のコンピュータにある認証コードが改ざんされていないという保証は提供しない。そのような保証が望まれる場合は、以下のようなこの方法の拡張を使用することができる。第1のコンピュータのシステム起動時に、第1のコンピュータにある認証コードを計測してTPMのPCRに書き込むmeasure。このPCR値をPCRyと呼ぶ。ステップ608で、第1のコンピュータで生成された乱数を計測してTPMの別のPCRに書き込むことにより、上記のように値PCRxが生成される。ステップ610で、第1のコンピュータはキープロテクタ、PCRx、PCRy、およびPCRxとPCRyの認証子を第2のコンピュータに送信する。一実施形態では、PCRxおよびPCRyの認証子は、偽造不可能な署名されたPCR値のセットからなり、これはPCRxおよびPCRyを含み、第1のコンピュータのTPMのクオート機能を使用して生成される。第2のコンピュータは、PCRyを既知の合格値のデータベースと比較するか、または事前に第1のコンピュータから取得した信頼される値と比較することにより、PCRyを検証する。この検証が不合格の場合、第2のコンピュータは認証要求を拒否する。一方、検証が合格の場合は、ステップ614で、第2のコンピュータが、第1のPCR値PCRxおよび上記の要領で第2のコンピュータで生成された第2の乱数の両方に基づいて第2のPCR値を生成する。そして、ステップ616で、第2のコンピュータが、TPMのシール動作を行ってボリューム固有の暗号鍵を暗号化し、暗号化されたボリューム固有の暗号鍵を第2のPCR値およびPCRyにバインドすることにより第2のキープロテクタを生成する。ステップ622で、第1のコンピュータが、第2のPCR値およびPCRyを利用するTPMアンシール動作を第2のキープロテクタに行うことによりボリューム固有の暗号鍵を取得する。前述の説明では、第1のコンピュータにある認証コードを計測して、PCRyと呼ばれる、TPMの1つのPCRに書き込むと述べた。しかし、この方法は、認証コードを計測してTPMの複数個のPCRに書き込むように一般化することができる。複数のPCRを第2のコンピュータに送信し、検証し、使用して、上記で1つのPCR値PCRyを参照して説明したのと同様にして第2のキープロテクタを生成することができる。第1のコンピュータがクライアントコンピュータ200である実施形態では、保護されたボリュームへのアクセスの検出、第1のキープロテクタの生成と第2のコンピュータへの送信、第2のキープロテクタの取得とアンシール、および第1のコンピュータのローカルメモリからの乱数の削除に関連して上記で述べた機能は、pre-OS暗号化モジュール262または暗号化フィルタドライバ246によって行うことができる。例えば、保護されたOSボリュームへのアクセスがシステム起動時に試みられる場合は、pre-OS暗号化モジュール262がそのような機能を行い、保護されたデータボリュームへのアクセスが実行時に試みられる場合は暗号化フィルタドライバ246がそれらの機能を行うことができる。ただし、これは例に過ぎず、クライアントコンピュータ200内の他のコンポーネントを使用してこれらの機能を行ってもよい。D.TPMの委任を使用する一度限りのロック解除に基づく一度限り使用可能な認証方法図7Aおよび図7Bに、第1のコンピュータの保護されたボリュームに記憶された暗号化データへのアクセスを制御するための第4の例示的な一度限り使用可能な認証方法のフローチャート700をまとめて示す。下記の説明で明らかにするように、フローチャート700の方法は、TPMの委任を使用する一度限りのロック解除の発想に基づく。TPMの委任、および本明細書でTPM委任に関連して記載する機能、動作および性質は当業者に知られていよう。フローチャート700の方法は、上記のI.Bの項で説明したリプレー攻撃のタイプに強い。図7Aに示すように、フローチャート700の方法はステップ702で開始し、ステップ702では、第1のコンピュータが、保護されたボリュームを復号するために必要とされるボリューム固有の暗号鍵を、第1のコンピュータのTPMから提供される移動不可能な暗号鍵で暗号化することによりキープロテクタを生成する。特定の実装では、移動不可能な暗号鍵は、秘密使用権限usageAuthを有し、これもボリューム固有の暗号鍵である。ステップ704で、第1のコンピュータは、TPMに移動不可能な暗号鍵の鍵委任エントリを生成し、鍵委任エントリは、単調増加のみが可能な、エントリに関連付けられた検証カウンタを有する。ステップ706で、第1のコンピュータは、第1のコンピュータで生成された乱数Xおよび検証カウンタの現在の値に基づいて使い捨ての認証文字列を生成する。使い捨ての認証文字列は、HMAC検証用カウント値Xと定義することができるHMAC演算を行うことによって生成することができる。当業者には理解されるように、HMAC演算は、TPMで行うことができる鍵付きハッシュを利用するメッセージ認証コードMAC演算である。ステップ708で、第1のコンピュータは、乱数Xをその識別子と共に第2のコンピュータにセキュアに送信し、第2のコンピュータからアクセス可能なメモリに記憶させる。ステップ710で、第1のコンピュータが、使用権限usageAuthが使い捨ての認証文字列に設定された鍵委任ブラブblobをTPM内に生成する。ステップ712で、第1のコンピュータは、キープロテクタ、乱数識別子、および鍵委任ブラブをローカルメモリに例えば保護されたボリュームのボリュームメタデータに記憶し、同時に第1のコンピュータのローカルメモリから使い捨ての認証文字列を削除する。第1のコンピュータは、乱数Xをボリューム固有の暗号鍵で暗号化し、暗号化した乱数をその一意の識別子と共にローカルメモリに記憶することもできる。図7Bに示すように、ステップ712の後に判定ステップ714が行われる。判定ステップ714で、第1のコンピュータが、保護されたボリュームにアクセスする試みが検出されたかどうかを判定する。保護されたボリュームにアクセスする試みが検出されていない場合は、判定ステップ714を繰り返す。保護されたボリュームにアクセスする試みが検出されている場合は、制御はステップ716に進む。ステップ716で、第1のコンピュータは、検証カウンタの現在の値と乱数識別子を第2のコンピュータに送信する。ステップ718で、第2のコンピュータは、乱数識別子を使用して、第2のコンピュータからアクセス可能なメモリから乱数を取得する。ステップ720で、第2のコンピュータは、取得した乱数と検証カウンタの現在の値に基づいて使い捨ての認証文字列を生成し、ステップ722で、第2のコンピュータは使い捨ての認証文字列を第1のコンピュータに送信する。ステップ724で、第1のコンピュータは、使い捨ての認証文字列を使用してキープロテクタを復号することによりボリューム固有の暗号鍵を取得する。詳細には、このステップは、まず使い捨ての認証文字列を使用して移動不可能な鍵をロック解除し、次いでその移動不可能な鍵を使用してキープロテクタを復号することを伴う。そして、ボリューム固有の暗号鍵を使用して、保護されたボリュームの暗号化データを復号することができる。一実施形態では、ボリューム固有の暗号鍵は第1のボリューム固有の暗号鍵例えばVMKからなり、その暗号鍵を使用して第2のボリューム固有の暗号鍵例えばFVEKを復号することができ、その第2のボリューム固有の暗号鍵を使用して保護されたボリュームの個々のセクタを復号することができる。ボリューム固有の暗号鍵が第1のコンピュータからアクセスできるようになるため、第1のコンピュータは、このステップで乱数Xの暗号化バージョンを復号することもできることに留意されたい。ステップ726で、第1のコンピュータは、第1のコンピュータによる検証カウンタを増分し、それにより委任ブラブを無効化する。これにより、その使い捨ての認証文字列を使用して、キープロテクタを復号するために必要な移動不可能な鍵をロック解除できなくなることが保証される。ステップ726は、保護されたボリュームが実際に復号される前に行わなければならないことに留意されたい。ステップ726の後、第1のコンピュータは、乱数Xステップ724で復号されていると新しい検証用カウント値を使用して、第2のコンピュータに送信する新しい使い捨ての認証文字列と新しい鍵委任ブラブを生成し、それにより認証機構を再整備することができる。この手法により、乱数Xは一度のみ第2のコンピュータに通信すればよいことが保証され、それにより、乱数が潜在的な攻撃者にさらされることを抑制する。代替実施形態では、認証機構が再整備されるたびに第1のコンピュータで新しい乱数を生成できることに留意されたい。第2のコンピュータは、複数の連続した検証カウント値のための使い捨ての認証文字列を事前に要求する、または、所与の識別子による要求の回数や順序外れの要求を制限する、または、すべての要求をログに記録、監視し、同じ識別子が2度使われた場合は警告を発する等により、追加的な保護を得ることができる。また、第2のコンピュータは、操作者不在の再起動が予想される計画された保全期間外は利用できないようにしてもよい。第1のコンピュータがクライアントコンピュータ200である実施形態では、保護されたボリュームへのアクセスの検出、第2のコンピュータへの検証カウンタの現在の値と乱数識別子の送信、ボリューム固有の暗号鍵の取得、および検証カウンタの増分に関連して上記で述べた機能は、pre-OS暗号化モジュール262または暗号化フィルタドライバ246によって行うことができる。例えば、保護されたOSボリュームへのアクセスがシステム起動時に試みられる場合は、pre-OS暗号化モジュール262がそのような機能を行い、保護されたデータボリュームへのアクセスが実行時に試みられる場合は暗号化フィルタドライバ246がそれらの機能を行うことができる。ただし、これは例に過ぎず、クライアントコンピュータ200内の他のコンポーネントを使用してこれらの機能を行ってもよい。III.例示的なコンピュータシステムの実施図8に、本明細書に記載される各種の実施形態を実施するために使用できる例示的なコンピュータシステム800を示す。例えば、コンピュータシステム800を使用して、図1のクライアントコンピュータ1041~104N、サーバ106、または管理者コンピュータ108、または図2のクライアントコンピュータ200を実施することができる。同様に、上記で図3、4、5、6A、6B、7A、および7Bを参照したフローチャート300、400、500、600、または700を参照して説明した第1のコンピュータまたは第2のコンピュータに備わるとした機能も、コンピュータシステム800を使用して行うことができる。コンピュータシステム800は、例えば従来のパーソナルコンピュータ、モバイルコンピュータ、またはワークステーションの形態の汎用コンピューティング装置であるか、またはコンピュータシステム800は特殊目的のコンピューティング装置であってもよい。本明細書に提供するコンピュータシステム800の記述は説明のために提供され、制限的なものではない。当業者に知られるように、実施形態はさらに別の種類のコンピュータシステムで実施することも可能である。図8に示すように、コンピュータシステム800は、処理装置802、システムメモリ804、およびシステムメモリ804を含む各種のシステムコンポーネントを処理装置802に結合するバス806を含む。処理装置802は、1つまたは複数のプロセッサまたは処理コアを備えることができる。プロセッサ806は、数種のプロセッサ構造の1つまたは複数に相当し、それらの種類には、メモリプロセッサまたはメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィクスポート、および各種のバスアーキテクチャを使用したプロセッサバスまたはローカルバスが含まれる。システムメモリ804は、ROM読出し専用メモリ808およびRAMランダムアクセスメモリ810を含む。基本入出力システム812BIOSがROM808に記憶される。コンピュータシステム800は、以下のドライブの1つまたは複数も有する。ハードディスクの読み書きを行うためのハードディスクドライブ814、取り外し可能磁気ディスク818の読み書きを行うための磁気ディスクドライブ816、および、CDROM、DVDROM、または他の光学媒体などの取り外し可能光学ディスク822の読み書きを行うための光学ディスクドライブ820。ハードディスクドライブ814、磁気ディスクドライブ816、および光学ディスクドライブ820は、それぞれハードディスクドライブインタフェース824、磁気ディスクドライブインタフェース826、光学ドライブインタフェース828によりバス806に接続される。これらのドライブとそれに関連するコンピュータ可読媒体は、コンピュータのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性の記憶を提供する。ハードディスク、取り外し可能磁気ディスクおよび取り外し可能光学ディスクを記載するが、データの記憶には他の種類のコンピュータ可読媒体も使用することができ、それらには、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリRAM、読出し専用メモリROM等がある。ハードディスク、磁気ディスク、光ディスク、ROM、またはRAMには、複数のプログラムモジュールを記憶することができる。それらのプログラムには、オペレーティングシステム830、1つまたは複数のアプリケーションプログラム832、他のプログラムモジュール834、およびプログラムデータ836が含まれる。これらのプログラムは、実行されると、コンピュータシステム800に、上記で図3、4、5、6A、6B、7A、および7Bを参照したフローチャート300、400、500、600、または700を参照して説明した、第1のコンピュータまたは第2のコンピュータに備わる機能を行わせる。ユーザは、キーボード838やポインティングデバイス840等の入力装置を通じてコンピュータシステム800にコマンドと情報を入力することができる。他の入力装置図示せずには、マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等がある。一実施形態では、ディスプレイ844と併せてマルチタッチ可能なタッチスクリーンを提供して、ユーザがタッチスクリーン上の1つまたは複数の点への接触例えば指やスタイラスでの適用を通じてユーザ入力を行えるようにする。上記および他の入力装置は、多くの場合、バス806に結合されたシリアルポートインタフェース842を通じて処理装置802に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバスUSB等の他のインタフェースで接続してもよい。ディスプレイ844も、ビデオアダプタ846などのインタフェースを介してバス806に接続される。ディスプレイの他に、コンピュータシステム800は、スピーカやプリンタなどの他の周辺出力装置図示せずも含むことができる。コンピュータシステム800は、ネットワークインタフェースもしくはアダプタ850、モデム852、またはネットワークを通じて通信を確立するための他の手段を通じて、ネットワーク848例えばローカルエリアネットワークや、インターネットなどのワイドエリアネットワークに接続される。モデム852は内蔵型の場合も外付けの場合もあり、シリアルポートインタフェース842を介してバス806に接続される。本明細書で使用する用語コンピュータプログラム媒体およびコンピュータ可読媒体は、一般に、ハードディスクドライブ814に関連するハードディスク、取り外し可能磁気ディスク818、取り外し可能光ディスク822等の非一時的媒体、ならびに、フラッシュメモリカード、デジタルビデオディスク、RAMランダムアクセスメモリ、ROM読出し専用メモリ等の他種の媒体を意味するものとして使用する。上記のように、コンピュータプログラムおよびモジュールアプリケーションプログラム832および他のプログラムモジュール834を含むは、ハードディスク、磁気ディスク、光ディスク、ROM、またはRAMに記憶することができる。それらのコンピュータプログラムは、ネットワークインタフェース850またはシリアルポートインタフェース842を介して受け取ることもできる。それらのコンピュータプログラムは、アプリケーションによって実行またはロードされると、コンピュータ800に本明細書に述べる実施形態の機能を実施させる。したがって、そのようなコンピュータプログラムは、コンピュータシステム800のコントローラに相当する。実施形態は、任意のコンピュータ可読媒体に記憶されたソフトウェアを含むコンピュータプログラム製品も対象とする。そのようなソフトウェアは、1つまたは複数のデータ処理装置で実行されると、データ処理装置を本明細書に記載されるように動作させる。実施形態は、現在または今後知られる、任意のコンピュータによる使用が可能な媒体またはコンピュータ可読媒体を用いることができる。コンピュータ可読媒体の例には、これらに限定されないが、RAM、ハードドライブ、フロッピー登録商標ディスク、CDROM、DVDROM、zipディスク、テープ、磁気記憶装置、光学記憶装置、MEMSを利用した記憶装置、ナノ技術を利用した記憶装置などの記憶装置が含まれる。IV.結び上記で各種実施形態を説明したが、それらは単なる例として提示したものであり、制限ではないことを理解されたい。当業者には、本発明の主旨から逸脱しない範囲内で形態および詳細への各種変更を行うことが可能であることが明らかであろう。したがって、本発明の範囲は上記の例示的実施形態によっては制限されず、特許請求の範囲およびその均等物に従ってのみ定義すべきである。