第1のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する段階を備える方法であって、前記制御する段階は、前記第1のプラットフォームにアクセスするユーザを認証する段階を有し、前記第1のプラットフォームは、前記複数のストレージデバイスのうちの1つであり、前記第1のプラットフォームに結び付けられたコンテナ暗号鍵により暗号化された第1の暗号鍵を格納する第1のストレージデバイスと、前記複数のストレージデバイスのうちの1つである第2のストレージデバイスと、チップセット暗号化ハードウェアと、前記コンテナ暗号鍵、および前記コンテナ暗号鍵により暗号化され、第2の暗号鍵を格納する間接管理デバイス情報コンテナを格納するメモリとを有し、前記第1のストレージデバイスに格納されている第1のデータは、前記第1の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、前記第2のストレージデバイスに格納されている第2のデータは、前記チップセット暗号化ハードウェアによって暗号化されているのではなく、別の暗号化メカニズムによって暗号化されており、前記第2のデータは、前記第2の暗号鍵を用いて暗号化されており、前記制御する段階はさらに、前記メモリに格納されている前記コンテナ暗号鍵を取得する段階と、前記メモリから取得された前記コンテナ暗号鍵を用いて前記第1の暗号鍵を復号化する段階と、復号された前記第1の暗号鍵を用いて前記第1のストレージデバイスに格納された前記第1のデータを復号する復号化する段階と、前記コンテナ暗号鍵を用いて、前記メモリに格納された前記間接管理デバイス情報コンテナを復号化し、前記第2の暗号鍵を取得する段階と、前記第2の暗号鍵を用いて、前記第2のストレージデバイスに格納されている前記第2のデータを復号化する段階と、前記第1のデータおよび前記第2のデータに対するアクセスを前記ユーザに許可する段階と、プラットフォーム非依存性トークンで前記第1の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、前記マイグレーション鍵を前記第1のプラットフォームに格納する段階と、前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する段階と、前記第1のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションする段階と、前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第1のデータを復号化する段階とを有する方法。プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、前記マイグレーション鍵を前記第1のプラットフォームに格納する段階と、前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する段階と、前記第2のストレージデバイスを前記第2のプラットフォームにマイグレーションする段階と、前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する段階とをさらに備える請求項1に記載の方法。第1のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する段階を備える方法であって、前記制御する段階は、前記第1のプラットフォームにアクセスするユーザを認証する段階を有し、前記第1のプラットフォームは、前記複数のストレージデバイスのうちの1つであり、前記第1のプラットフォームに結び付けられたコンテナ暗号鍵により暗号化された第1の暗号鍵を格納する第1のストレージデバイスと、前記複数のストレージデバイスのうちの1つである第2のストレージデバイスと、チップセット暗号化ハードウェアと、前記コンテナ暗号鍵、および前記コンテナ暗号鍵により暗号化され、第2の暗号鍵を格納する間接管理デバイス情報コンテナを格納するメモリとを有し、前記第1のストレージデバイスに格納されている第1のデータは、前記第1の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、前記第2のストレージデバイスに格納されている第2のデータは、前記チップセット暗号化ハードウェアによって暗号化されているのではなく、別の暗号化メカニズムによって暗号化されており、前記第2のデータは、前記第2の暗号鍵を用いて暗号化されており、前記制御する段階はさらに、前記メモリに格納されている前記コンテナ暗号鍵を取得する段階と、前記メモリから取得された前記コンテナ暗号鍵を用いて前記第1の暗号鍵を復号化する段階と、復号された前記第1の暗号鍵を用いて前記第1のストレージデバイスに格納された前記第1のデータを復号する復号化する段階と、前記コンテナ暗号鍵を用いて、前記メモリに格納された前記間接管理デバイス情報コンテナを復号化し、前記第2の暗号鍵を取得する段階と、前記第2の暗号鍵を用いて、前記第2のストレージデバイスに格納されている前記第2のデータを復号化する段階と、前記第1のデータおよび前記第2のデータに対するアクセスを前記ユーザに許可する段階と、プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、前記マイグレーション鍵を前記第1のプラットフォームに格納する段階と、前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する段階と、前記第2のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションする段階と、前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する段階とを有する方法。盗難通知イベントに応じて前記第1のプラットフォームに対するアクセスを拒絶する段階、または、前記第1のプラットフォームから前記第1の暗号鍵および前記第2の暗号鍵を削除することによって、前記第1のプラットフォームに対する前記アクセスを拒絶する段階をさらに備える請求項1から請求項3のいずれか1つに記載の方法。前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記第1のプラットフォームの、前記第1の暗号鍵および前記第2の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階、または、前記第1のプラットフォームの、前記第1のストレージデバイスの第1のマイグレーション鍵および前記第2のストレージデバイスの第2のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階を有する請求項4に記載の方法。前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記第1のプラットフォームのマイグレーションパッケージから、前記第1の暗号鍵および前記第2の暗号鍵のうち少なくとも1つを削除する段階を有する請求項4に記載の方法。前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記第1のプラットフォームのハードウェアをディセーブルする段階を有する請求項4に記載の方法。前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記間接管理デバイス情報コンテナに対するアクセスを拒絶する段階を有する請求項4に記載の方法。請求項1から請求項8のいずれか1つに記載の方法に含まれる各段階をコンピュータに実行させるためのプログラム。第1のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する制御モジュールと、前記第1のプラットフォームにアクセスするユーザを認証する認証モジュールとを備えるシステムであって、前記第1のプラットフォームは、前記複数のストレージデバイスのうちの1つである第1のストレージデバイス、前記複数のストレージデバイスのうち1つである第2のストレージデバイス、チップセット暗号化ハードウェア、およびメモリを有し、前記第1のストレージデバイスは、前記第1のプラットフォームに結び付けられたコンテナ暗号鍵により暗号化された第1の暗号鍵を格納し、前記メモリは、前記コンテナ暗号鍵、および前記コンテナ暗号鍵により暗号化され、第2の暗号鍵を格納する間接管理デバイス情報コンテナを格納し、前記第1のストレージデバイスで格納されている第1のデータは、前記第1の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、前記第2のストレージデバイスに格納されている第2のデータは、前記チップセット暗号化ハードウェアによって暗号化されているではなく、別の暗号化メカニズムによって暗号化されており、前記第2のデータは、前記第2の暗号鍵を用いて暗号化されており、前記システムはさらに、前記メモリに格納されている前記コンテナ暗号鍵を取得する取得モジュールと、前記メモリから取得された前記コンテナ暗号鍵を用いて前記第1の暗号鍵を復号化し、復号化された前記第1の暗号鍵を用いて前記第1のストレージデバイスに格納されている前記第1のデータを複合化する第1の復号化モジュールと、前記コンテナ暗号鍵を用いて、前記メモリに格納されている前記間接管理デバイス情報コンテナを復号化し、前記第2の暗号鍵を取得する第2の復号化モジュールと、前記第2の暗号鍵を用いて前記第2のストレージデバイスに格納されている前記第2のデータを復号化する利用モジュールと、前記第1のデータおよび前記第2のデータに対するアクセスを前記ユーザに許可する許可モジュールと、プラットフォーム非依存性トークンで前記第1の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、前記マイグレーション鍵を前記第1のプラットフォームに格納する格納モジュールと、前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する第2の格納モジュールと、前記第1のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションするマイグレーションモジュールと、前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第1のデータを復号化する第3の復号化モジュールとを備えるシステム。プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、前記マイグレーション鍵を前記第1のプラットフォームに格納する格納モジュールと、前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する第2の格納モジュールと、前記第2のストレージデバイスを前記第2のプラットフォームにマイグレーションするマイグレーションモジュールと、前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する第3の復号化モジュールとをさらに備える請求項10に記載のシステム。第1のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する制御モジュールと、前記第1のプラットフォームにアクセスするユーザを認証する認証モジュールとを備えるシステムであって、前記第1のプラットフォームは、前記複数のストレージデバイスのうちの1つである第1のストレージデバイス、前記複数のストレージデバイスのうち1つである第2のストレージデバイス、チップセット暗号化ハードウェア、およびメモリを有し、前記第1のストレージデバイスは、前記第1のプラットフォームに結び付けられたコンテナ暗号鍵により暗号化された第1の暗号鍵を格納し、前記メモリは、前記コンテナ暗号鍵、および前記コンテナ暗号鍵により暗号化され、第2の暗号鍵を格納する間接管理デバイス情報コンテナを格納し、前記第1のストレージデバイスで格納されている第1のデータは、前記第1の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、前記第2のストレージデバイスに格納されている第2のデータは、前記チップセット暗号化ハードウェアによって暗号化されているではなく、別の暗号化メカニズムによって暗号化されており、前記第2のデータは、前記第2の暗号鍵を用いて暗号化されており、前記システムはさらに、前記メモリに格納されている前記コンテナ暗号鍵を取得する取得モジュールと、前記メモリから取得された前記コンテナ暗号鍵を用いて前記第1の暗号鍵を復号化し、復号化された前記第1の暗号鍵を用いて前記第1のストレージデバイスに格納されている前記第1のデータを複合化する第1の復号化モジュールと、前記コンテナ暗号鍵を用いて、前記メモリに格納されている前記間接管理デバイス情報コンテナを復号化し、前記第2の暗号鍵を取得する第2の復号化モジュールと、前記第2の暗号鍵を用いて前記第2のストレージデバイスに格納されている前記第2のデータを復号化する利用モジュールと、前記第1のデータおよび前記第2のデータに対するアクセスを前記ユーザに許可する許可モジュールと、プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、前記マイグレーション鍵を前記第1のプラットフォームに格納する格納モジュールと、前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する第2の格納モジュールと、前記第2のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションするマイグレーションモジュールと、前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する第3の復号化モジュールとを備えるシステム。盗難通知イベントに応じて前記第1のプラットフォームに対するアクセスを拒絶する拒絶モジュール、または、前記第1のプラットフォームから前記第1の暗号鍵および前記第2の暗号鍵を削除する削除モジュールをさらに備える請求項10から請求項12のいずれか1つに記載のシステム。前記第1のプラットフォームの、前記第1の暗号鍵および前記第2の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第2の拒絶モジュール、または、前記第1のプラットフォームの、前記第1のストレージデバイスの第1のマイグレーション鍵および前記第2のストレージデバイスの第2のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第2の拒絶モジュールをさらに備える請求項13に記載のシステム。前記第1のプラットフォームのハードウェアをディセーブルするディセーブルモジュール、または前記間接管理デバイス情報コンテナに対するアクセスを拒絶する第2の拒絶モジュールをさらに備える請求項13に記載のシステム。本発明の実施形態は、コンピュータプラットフォームが備えるストレージデバイスに格納されているデータを包括的に保護するための方法、装置、システム、およびコンピュータプログラム製品を提供し得る。データの保護は、プラットフォームのユーザを、ストレージデバイスに格納されているデータへのアクセスを許可する前に、認証することによって実現される。さらに、プラットフォームに対応付けられているストレージデバイスに格納されているデータを暗号化するのに用いられる鍵は、ストレージデバイスを暗号化するためにチップセットのハードウェアによって用いられる鍵、ならびに、暗号化ソフトウェアおよび/またはストレージデバイスのハードウェアによって利用される鍵も含め、全てセキュアに管理することによってデータを保護する。また、プラットフォームおよび/またはストレージデバイスの盗難が検知された場合には格納データへのアクセスを防ぐべく盗難抑止メカニズムを設けることによっても、データを保護する。図1は、本発明の実施形態に係る、コンピュータプラットフォーム内のストレージデバイスに格納されているデータについて包括的な保護を提供するシステムを示す図である。プラットフォーム100は、デスクトップ管理インターフェースDMI111を介してチップセット120に接続されているプロセッサ110を備える。チップセット120は、プラットフォーム100の設定および動作を管理する管理エンジンManageabilityEngine:ME130を有する。管理エンジンME130は、マイクロプロセッサとして実装され得る。一実施形態によると、管理エンジンME130は、監査イベントの収集、ユーザの認証、周辺機器へのアクセスの制御、プラットフォーム100のストレージデバイスに格納されているデータを保護するための暗号鍵の管理、およびネットワークコントローラ160を介したエンタープライズサービス162との間のインターフェースとしての機能を実行する。管理エンジンME130は、エンタープライズサービス162を利用することによって、プラットフォーム100等のプラットフォームの設定及び管理に関するエンタープライズ全体でのポリシーとの一貫性を保つ。デスクトップ管理インターフェースDMI111は、プロセッサ110を、チップセット120のI/Oコマンドデコードモジュール140に接続する。一実施形態によると、I/Oコマンドデコードモジュール140は、専用シリコンチップを用いることによって格納コマンドのデコードおよびその他の加速処理を実行する汎用コントローラである。I/Oコマンドデコードモジュール140の機能は、特定用途向けハードウェアで全て実装されるとしてもよい。管理エンジンME130は、ポリシーおよび暗号鍵を設定することによって、I/Oコマンドデコードモジュール140および暗号化エンジン150の挙動を制御する。管理エンジンME130、I/Oコマンドデコードモジュール140、および暗号化エンジン150の動作については、より詳細に後述する。プラットフォーム100はさらに、ダイナミックランダムアクセスメモリDRAM112、チップセット120内のスタティックランダムアクセスメモリSRAM122、およびフラッシュメモリ190等のメモリデバイスを備える。プラットフォーム100に最大電力が供給されている場合、DRAM112のうち上部メモリ領域UMAと呼ばれる一部分、ME-UMA114が、管理エンジンME130によって利用可能な状態となっている。プラットフォーム100のホストオペレーティングシステム図1には不図示は通常、BIOSBasicInputOutputSystemによって設定されているメモリ分離メカニズムのために、ME-UMA114にはアクセスすることができない。このメモリ分離メカニズムは、ホストオペレーティングシステムが実行される前に、ME-UMAメモリ114へのアクセスに鍵を掛ける。DRAM112のこの部分を、管理エンジン130に利用させるべく、ホストオペレーティングシステムから分離することによって、オペレーティングシステムに感染し得るウィルス等のマルウェアから管理エンジン130の完全性を保護する。フラッシュメモリ190は、プラットフォーム100を初期化する場合に用いられるファームウェアを有する。この初期化ファームウェアには、BIOSファームウェア192、ネットワークコントローラ160を設定するためのネットワークコントローラファームウェア194、およびチップセット120を設定するためのチップセットファームウェア196が含まれる。管理エンジンME130およびI/Oコマンドデコードモジュール140のために、チップセットファームウェア196の完全性は、フラッシュメモリ190に格納される前にデジタル署名を確認することによって保証される。管理エンジンME130によって利用されるデータ、例えばユーザ認証情報は、管理エンジンME130内の暗号化ファームウェアによって暗号化されて、フラッシュメモリ190のデータ領域198に格納されるとしてよい。図1に示す実施形態のプラットフォーム100はさらに、I/Oコントローラ170を介してアクセス可能なさまざまな種類のストレージデバイスを備えている。例えば、ストレージインターフェース171を介してアクセス可能な非チップセット暗号化ストレージデバイス172、および、ストレージインターフェース181を介してアクセス可能なチップセット暗号化ストレージデバイス180がある。ストレージインターフェース171および181は、ストレージデバイス172および180として設けられるストレージの種類に応じて、不揮発性メモリNVM用の不揮発性メモリホストコントローラインターフェースHCI、または、SATASerialAdvancedTechnologyAttachmentストレージ用のAHCIAdvancedHCIインターフェースとして実装されるとしてよい。ストレージデバイス172および180に格納されているデータは、暗号化されているとしてよい。チップセット暗号化ストレージデバイス180に格納されているデータは、チップセット120の暗号化エンジン150によって暗号化される。チップセット暗号化ストレージデバイス180はさらに、メタデータ182を格納するために確保された領域を含む。メタデータ182は、ストレージデバイス180のための少なくとも1つのデバイス暗号鍵DEK184、および、管理エンジンME130が利用するその他のメタデータを含む。メタデータ182は、I/Oコマンドデコードモジュール140およびI/Oコントローラ170がI/Oコマンドを処理している間にプロセッサ110で実行されるアプリケーションによって上書きされないように保護される。一実施形態によると、チップセット120の暗号化エンジン150によってデータの暗号化または復号化が実行される前に、管理エンジンME130が、暗号化エンジン150と対応付けられているメモリレジスタに対して、入出力動作に関わるストレージデバイスに対応付けられているデバイス暗号鍵DEK、例えばDEK184を挿入する。1つの物理ストレージデバイスが論理的に複数の異なる論理デバイスまたはパーティションに分割されている場合、各論理デバイスまたはパーティションそれぞれが、対応するデバイス暗号鍵DEKを持っており、各DEKが暗号化エンジン150の対応するメモリレジスタに挿入される。非チップセット暗号化ストレージデバイス172に格納されているデータは、暗号化ソフトウェアまたはストレージのハードウェア自体によって暗号化されており、暗号化エンジン150によっては暗号化されてはいない。非チップセット暗号化ストレージデバイス172は、チップセット暗号化ストレージデバイス180が格納するメタデータ182と同様のチップセットが生成するメタデータは含まない。プロセッサ110で実行されているソフトウェアが発行する書込みコマンドに応じたプラットフォーム100のコンポーネントの動作の一例として、特定のストレージデバイスを対象とするデータ書込みコマンドが、DMIインターフェース111を介して、I/Oコマンドデコードモジュール140に対して発行される。I/Oコマンドデコードモジュール140は、このコマンドをデコードして、I/Oコントローラ170にデータ部分を特定する。チップセット暗号化ストレージデバイス180を対象とする書込みコマンドの場合、I/Oコントローラ170はオンザフライで暗号化エンジン150を介してデータをルーティングする。この時、暗号化エンジン150は、管理エンジンME130から提供されたチップセット暗号化ストレージデバイス180用のデバイス暗号鍵DEK、例えばDEK184を用いてこのデータを暗号化する。暗号化エンジン150は、ストレージインターフェース181を介してチップセット暗号化ストレージデバイス180に送信されるように、暗号化されたデータをI/Oコントローラ170に戻す。I/Oコマンドデコードモジュール140およびI/Oコントローラ170は、ストレージインターフェース181を抽象化して、メタデータ182を格納している領域をプロセッサ110で実行されているアプリケーションによるアクセスから保護して、メタデータ182が上書きされないようにする。非チップセット暗号化ストレージデバイス172とは、チップセット120の暗号化エンジン150によって暗号化されていないデータを格納しているUSBデバイス、NAND型フラッシュメモリデバイス、ファイヤーワイヤデバイス、またはその他の種類のストレージデバイスを表すとしてよい。非チップセット暗号化ストレージデバイス172を対象とする書込みコマンドの場合、I/Oコントローラ170は、暗号化のために暗号化エンジン150を介してデータをルーティングすることはない。これに代えて、非チップセット暗号化ストレージデバイス172は、ホストプロセッサ110で実行されているソフトウェアを用いて、または、ストレージデバイス172に組み込まれている暗号化ハードウェアによって暗号化され得る。非チップセット暗号化ストレージデバイス172が表すストレージデバイスは、チップセット120の暗号化エンジン150を用いて暗号化されるようには設定されていないが、管理エンジンME130によって保護および管理されている、プラットフォーム100内のストレージデバイスである。非チップセット暗号化ストレージデバイス172にも、1以上の暗号鍵が対応付けられており、これらの暗号鍵は一時デバイス暗号鍵TDEK不図示と呼ばれる。例えば、ソフトウェアに基づく暗号化は通常、デバイスまたはパーティションの概念を用いるのではなく、ストレージのボリュームの概念を用いて行われ、対応付けられる暗号鍵はボリューム暗号鍵VEKと呼ばれる。ボリューム暗号鍵は、管理エンジンME130に格納されて管理される、あるタイプの一時デバイス暗号鍵TDEKの一例である。管理エンジンME130は、プラットフォームに結び付けられた暗号鍵を管理すると共に、プラットフォームに結び付けられていない暗号鍵をも管理する。例えば、非チップセット生成暗号鍵、例えば、暗号化ソフトウェアによって生成される一時デバイス暗号鍵は通常、プラットフォームに結び付けられない。ストレージのハードウェアによって生成され、デバイス自体で物理的に格納されているDEKは、当該デバイスには結び付けられているが、必ずしも当該デバイスを備えるプラットフォームに結び付けられることはない。一時DEKは、それを用いて暗号化したデータを格納している物理ストレージデバイスには格納されておらず、プラットフォームにもデバイスにも結び付けられていない。暗号鍵がプラットフォーム/デバイスに結び付けられていようといまいと、管理エンジンME130は暗号鍵を同様に管理する。管理エンジンME130は、プラットフォーム100と対応付けられる全てのデータの暗号化を管理する。これには、チップセット120内の暗号化エンジン150によって実行される暗号化、および、チップセットで実行されるのではなく、プロセッサ110で実行されるソフトウェアまたはストレージハードウェア自体で実行されるデータの暗号化も含まれる。管理エンジンME130が提供するサービスの1つに、プラットフォーム100のどのコンポーネントがデータの暗号化を実行するかに関わらず、共通のフレームワークおよびユーザインターフェースにおいて暗号鍵を管理することが挙げられる。データの暗号化を管理するためのチップセット120および管理エンジンME130のフレームワークおよび動作に関する詳細はさらに、図2を参照しつつ後述する。図2は、本発明の一実施形態に係る、図1のチップセット120、管理エンジンME130、および管理エンジンME130が管理するデータをさらに詳細に示す図である。チップセット120は、BIOS/ホストソフトウェア210とやり取りを行う。BIOS/ホストソフトウェア210は、ブート前認証プロセスで図1のBIOSファームウェア192にロードされるとしてよい。BIOS/ホストソフトウェア210は、ブート前認証プロセスでプラットフォーム100のユーザを認証するユーザ認証モジュール212と、非チップセット暗号化ストレージデバイス172等のデバイスに格納されているデータを暗号化するべく用いられるホスト暗号化ソフトウェア214とを有する。ユーザ認証モジュール212が実行するユーザ認証プロセスは、ユーザのパスワードを確認すること、バイオメトリクスデータ、スマートカードの利用、またはその他の認証プロセスを含むとしてよい。ユーザ認証モジュール212は、ブート前認証プロセスにおいて、認証結果を、チップセット120の管理エンジンME130内の身元情報ID管理ファームウェア239に与えるとしてよい。チップセット120において、管理エンジンME130は、MEカーネル231と、ME共通サービス233と、盗難抑止ファームウェア235と、セキュリティ/鍵管理ファームウェア237と、身元情報管理ファームウェア239とを持つ。これらのコンポーネントはそれぞれ、さらに詳細に後述する。MEカーネル231は、SRAM122およびDRAM112の一部分例えば、ME-UMA114のメモリ利用、フラッシュメモリ190におけるデータの持続的な格納、およびアクセス制御等の基本的な機能を提供する。MEカーネル231は、I/Oコマンドデコードモジュール140および暗号化エンジン150の動作を制御する。ME共通サービス233は、複数の異なるファームウェアモジュールが共通に必要とするサービスを含み、セキュリティサービス、ネットワークサービス、およびプロビジョニングサービスを含む。ME共通サービス233が提供するセキュリティサービスは一般的に、HTTPダイジェスト認証およびケルベロス認証の両方を含むユーザ認証、MicrosoftActiveDirectoryおよび/またはその他のサービスを用いるドメイン認証、クライアントとサーバのクロックを同期させるクロック同期サービス、およびセキュリティ監査サービスを含む。ME共通サービス233が提供するネットワークサービスは、トランスミッショントランスポートプロトコル/インターネットプロトコルTCP/IPスタック、トランスポート層セキュリティTLS、ハイパーテキストトランスポートプロトコルHTTP、シンプルオブジェクトアクセスプロトコルSOAP、ウェブサービスフォーマネジアビリティWS-MAN、および、ホストベースのTLSインターフェースが呼び出したIntelローカルマネジアビリティサービスLMSを含む。ME共通サービス233が提供するプロビジョニングサービスは、プラットフォーム100に対してエンタープライズソフトウェアをプロビジョニングするべく、図1のエンタープライズサービス162と共に用いられる。これらのプロビジョニングサービスは、2つのデプロイメントモード、つまり、ゼロタッチおよびワンタッチをサポートしている。ゼロタッチモードの場合、デプロイメント証明アンカーキーは、図1のフラッシュメモリ190のデータ領域198等のデータストレージ領域に格納され、公知の認証局鍵に基づいて、プラットフォームの所有権を取るべく用いられるIT信任状を認証する。ワンタッチモードでは、セットアップおよびデプロイメントのタスクをリモートで完了させるべく用いられる組織証明書、対称鍵、および信頼しているホストを設定する。管理エンジンME130はさらに、BIOS/ホストソフトウェア210のユーザ認証モジュール212との間でやり取りを行う身元情報管理ファームウェア239を持つ。身元情報管理ファームウェア239は、ユーザの認証情報をユーザアカウントメタデータ223と比較するとしてよい。ユーザアカウントメタデータ223は、フラッシュメモリ190のデータ領域198のユーザ/コンテナメタデータ230部分に格納されると図示されている。身元情報管理ファームウェア239はさらに、管理エンジンME130のセキュリティ/鍵管理ファームウェア237との間でやり取りを行って、チップセット暗号化ストレージデバイス180内のブート前認証PBAデバイス情報コンテナ280にもユーザ情報が格納されていることを確認するとしてよい。このようにチップセット暗号化ストレージデバイス180に対するユーザのアクセスを確認することによって、チップセット暗号化ストレージデバイス180に格納されているデータに対する保護がさらに強化される。セキュリティ/鍵管理ファームウェア237は、上述したようにユーザ認証モジュール212との間でやり取りを行なって、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータへのアクセスが許可される前にユーザを認証する。セキュリティ/鍵管理ファームウェア237は、鍵管理情報を管理して、プラットフォームに対応付けられているメモリまたはストレージデバイス、例えば、フラッシュメモリ190またはチップセット暗号化ストレージデバイス180にこの鍵管理情報を格納する。鍵管理情報が格納される場所は、利用可能なストレージ空間および格納されるべきデータの量に応じて決まり、本発明は鍵管理情報を格納する構成について特定の構成に限定されるものではない。一実施形態によると、セキュリティ/鍵管理ファームウェア237は、プラットフォーム100に結び付けられているプラットフォームコンテナ鍵PCKを用いて鍵管理情報を暗号化する。セキュリティ/鍵管理ファームウェア237が管理する鍵管理情報は、チップセットつまり、チップセット120内の暗号化エンジン150によって生成され、メタデータ182に格納されている、デバイス暗号鍵DEK184と呼ばれる暗号鍵を含む。セキュリティ/鍵管理ファームウェア237が管理するその他の種類の鍵には、例えばホスト暗号化ソフトウェア214によって生成される一時デバイス暗号鍵TDEK282および292として図示されている暗号鍵が含まれる。TDEK282は、チップセット暗号化ストレージデバイス180内の直接管理デバイス情報コンテナ280に格納されており、TDEK292はフラッシュメモリ190の間接管理デバイス情報コンテナ290に格納されていることが図示されている。直接管理という表現を用いているのは、チップセット120によって直接暗号化されていると共に管理エンジンME130によって管理されているデバイスを意味している。一方で、間接管理という表現を用いているのは、当該デバイスはチップセット120によって暗号化されていないが当該デバイスに格納されているデータの暗号鍵は管理エンジンME130によって管理されていることを意味している。セキュリティ/鍵管理ファームウェア237の動作については、さらに詳細に後述する。管理エンジンME130はさらに、盗難抑止ファームウェア235を持つと図示されている。盗難抑止ファームウェア235は、図1のエンタープライズサービス162等の中央サーバによって、盗難通知イベント等のイベントに応答するように構成され得る。このような盗難通知イベントは、例えば、失敗に終わったログインの回数が最大値に達したことを管理エンジンME130が検知した場合、または、ユーザから盗難が報告された場合に、トリガされるとしてよい。一実施形態によると、プラットフォーム100は、認証された位置からプラットフォームが移動させられると、盗難通知サーバに信号を送信するように構成されている感知ハードウェア不図示を備えるとしてよい。盗難通知イベントに応答して、盗難抑止ファームウェア235は、盗難の影響を抑制する処理を実行するとしてよい。例えば、プロセッサ110またはチップセット120の一部をディセーブルしたり、フラッシュメモリ190へのアクセスを禁止したり、フラッシュメモリ190からデバイス情報コンテナ290を削除したり、チップセット暗号化ストレージデバイス180のメタデータ182の内容を削除したり、または、デバイス情報コンテナ290、フラッシュメモリ190、メタデータ182、および/あるいは、チップセット暗号化ストレージデバイス180のデバイス情報コンテナ280の中身へのアクセスをプログラムを用いて禁止するとしてよい。盗難抑止ファームウェア235は、デバイス情報コンテナ280および290が有するデータを管理する。一例を挙げると、デバイス情報コンテナ280および290は、一時デバイス暗号鍵TDEK282および292、例えば、非チップセット暗号化ストレージデバイス172を暗号化および復号化するべくホスト暗号化ソフトウェア214が用いる鍵を持つ。非チップセット暗号化ボリューム暗号鍵はさらに、ストレージのハードウェア自体によって生成されて、管理エンジンME130のセキュリティ/鍵管理ファームウェア237によってデバイス情報コンテナ280および290に格納されている暗号鍵を含むとしてよい。盗難抑止ファームウェア235の動作については、さらに詳細に後述する。デバイス情報コンテナ280および290はそれぞれ、対応するマイグレーションパッケージ280Mおよび290Mを含むものと図示されている。マイグレーションパッケージ280Mおよび290Mは、プラットフォーム100に対応付けられている全てのストレージデバイスについての暗号鍵の共通レポジトリを提供するべく、管理エンジン130およびセキュリティ/鍵管理ファームウェア237によって用いられる。一実施形態によると、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172の鍵情報はそれぞれ、マイグレーションパッケージ280Mおよび290Mに格納されている。マイグレーションパッケージ280Mおよび290Mに格納されている鍵の種類については、図3を参照しつつさらに詳細に説明する。図3は、ストレージデバイスに格納されているデータを暗号化するための暗号鍵同士の関係を示す図である。一実施形態によると、図2のセキュリティ/鍵管理ファームウェア237は、任意のデバイス暗号鍵DEK310-310nまたは一時デバイス暗号鍵TDEK320a-320nを、デバイスラッピング鍵DWK330と呼ばれる別の鍵を用いて、さらにラッピング暗号化することによって、対応付けられたストレージデバイスが盗難されないように保護する。DWKは、例えば、動的に取得される2つの値から導き出されるとしてよい。第1の値は、ユーザから取得されるパスフレーズである。第2の値は、製造時にハードウェアに埋め込まれた、ヒューズ鍵とも呼ばれる、チップセット鍵である。各チップセット鍵は、特定のプラットフォームに固有であるが、外部からは読み出せない。パスフレーズおよびチップセット鍵は、デバイスラッピング鍵DWKを出力する公共鍵暗号化基準PKCS5鍵導出関数に与えられる。デバイスラッピング鍵DWKはシステムに電源が入れられる度に導き出されるので、DWK内部にラッピングされているDEKまたはTDEKを取得するためには、盗難者はユーザのパスフレーズを知っていなければならないと共にデバイスラッピング鍵DWKのラッピングを解除するチップセット鍵へのアクセスを有していなければならない。このため、上述したようなデバイスラッピング鍵DWKを用いて暗号化されたストレージデバイスは、DEKまたはTDEKをラッピングするためにチップセット鍵/ヒューズ鍵を利用しているので、データを暗号化したプラットフォームに結び付けられる。このようにデバイスをプラットフォームに結びつけることによって、チップセット暗号化ストレージデバイス180または非チップセット暗号化ストレージデバイス172のようなストレージデバイスを、攻撃者が、ストレージデバイスに格納されているデータの暗号化の回避を試みるための攻撃ツールキットが利用可能な別のプラットフォームに入れないようにする。一実施形態によると、デバイスラッピング鍵DWK330は、別の鍵を用いてさらにラッピングされて、チップセット120内にある間を除いてDWKがクリア状態になることがないようにする。このような別の鍵には、ユーザ鍵340aおよび340bが含まれる。デバイスラッピング鍵DWK330、ならびに、DWKがラッピングするDEKおよびTDEKといった暗号鍵のラッピングを解除するためには、プラットフォームのユーザは上述したように認証されなければならない。セキュリティ/鍵管理ファームウェア237によって生成されたデバイスラッピング鍵DWKはプラットフォームに結び付けられているので、ストレージデバイスを別のプラットフォームにマイグレーションさせるには別の方法が必要となる。例えば、元々のプラットフォームが動作不可能に陥った場合、別のプラットフォームにハードドライブをマイグレーションさせる必要がある。このようなマイグレーションは、例えば管理エンジンME130と共に図1に示したエンタープライズサービス162を用いることで実行されるとしてよい。エンタープライズサービス162は、回復サーバおよび/またはマイグレーションサーバを提供するとしてよい。一実施形態によると、データ回復を容易にするべく、セキュリティ/鍵管理ファームウェア237はさらに、別のプラットフォームで利用され得るプラットフォーム非依存性の鍵図3には不図示を生成する。このようなプラットフォーム非依存性の鍵は通常、少なくとも256ビットの乱数であるトークンによってラッピングされて、マイグレーション鍵350を生成する。セキュリティ/鍵管理ファームウェア237は、このマイグレーション鍵350を用いてデバイスラッピング鍵DWK330をラッピングして、プラットフォーム間での暗号化ストレージデバイスのマイグレーションを容易にするとしてよい。マイグレーション鍵350もまた、プラットフォームの特定のユーザには依存していないので、ユーザアカウント情報が破損して、デバイスラッピング鍵DWK330のラッピングを解除するためにユーザ鍵340aおよび340bを利用できない場合、デバイスラッピング鍵DWK330の回復を容易にするとしてよい。一実施形態によると、プラットフォーム非依存性のマイグレーション鍵350は、マイグレーションパッケージ280Mおよび290Mに格納されており、マイグレーション鍵350を生成するべく用いられたトークンは、リモートセキュアサーバに格納されるとしてよい。一実施形態によると、データのマイグレーションおよび回復をさらに容易にするべく、プラットフォームに結び付けられているデバイスラッピング鍵DWK330の複製をリモートセキュアサーバに格納する。このようにすることでデバイスラッピング鍵DWK330を、ラッピングした一時デバイス暗号鍵TDEK320a-320nおよびデバイス暗号鍵DEK310a-310nを復号化するべく用いることができる。図3に示すようにすべてのDEK310a-310nおよびTDEK320a-320nを同一のデバイスラッピング鍵でラッピングすることによって、管理エンジンME130および/またはセキュリティ/鍵管理ファームウェア237は、プラットフォームに対応付けられている全てのストレージデバイスを一度にアンロックすることができる。このような共通のラッピング鍵DWK330によれば、個々のストレージデバイスは独自の暗号鍵DEK310a-310nおよびTDEK320a-320nを持っているとしても、ストレージデバイスのロック粒度はプラットフォーム単位で実行し得るものとすることができる。ストレージデバイスのアンロックについては、図7を参照しつつさらに詳細に後述し、ストレージデバイスの初期化については、図6を参照しつつさらに詳細に後述する。図4は、プラットフォーム100のストレージデバイスへのアクセスを制御する場合の、図2のコンポーネント同士のやり取りを示すデータフロー図である。動作4.1において、ユーザ認証モジュール212および身元情報管理ファームウェア239は、上述したようなやり取りを行なって、ユーザデータ410を認証する。動作4.2において、ユーザ認証モジュール212は、ユーザデータ410をセキュリティ/鍵管理ファームウェア237に与える。動作4.3において、セキュリティ/鍵管理ファームウェア237は、ユーザデータ410を、フラッシュメモリ190のデータ領域198のユーザ/コンテナメタデータ230にあるユーザアカウントメタデータ223にあるユーザデータと比較して、ユーザデータが一致していることが分かれば、コンテナ鍵220を取得する。コンテナ鍵220は、セキュリティ/鍵管理ファームウェア237によって格納されている鍵管理情報を復号化するべく用いられる。例えば、コンテナ鍵220は、プラットフォーム100に結び付けられているプラットフォームコンテナ鍵PCKとして実装されるとしてよい。動作4.4において、セキュリティ/鍵管理ファームウェア237は、コンテナ鍵220を用いて、チップセット暗号化ストレージデバイス180内のメタデータ182を、デバイス暗号鍵DEK184を含めて復号化する。セキュリティ/鍵管理ファームウェア237は、DEK184を用いて、チップセット暗号化ストレージデバイス180内に格納されているデータを復号化する。コンテナ鍵220はさらに、デバイス情報コンテナ280に含まれているデータを、TDEK282を含めて、復号化するべく用いられる。動作4.5において、セキュリティ/鍵管理ファームウェア237は、盗難抑止ファームウェア235との間でやり取りを行なって、プラットフォーム100に対応付けられているストレージデバイスが盗難通知に基づいてアクセス不能になっていないことを確かめる。動作4.6において、盗難抑止ファームウェア235は、デバイス情報コンテナ290にアクセスして、プラットフォーム100に対応付けられているストレージデバイスの状態に関する情報を取得する。盗難が検出あるいは報告されている場合、または、盗難通知を受け取っている場合、セキュリティ/鍵管理ファームウェア237は、プラットフォーム100へのアクセスを拒絶する等の救済措置をとるべく、盗難抑止ファームウェア235に制御を移行する。プラットフォーム100へのアクセスを拒絶するべく実行し得る動作には、ハードウェアをディセーブルすること、鍵および/あるいは鍵コンテナを削除すること、マイグレーションパッケージへのアクセスを拒絶すること、ならびに/または、鍵および/あるいは鍵コンテナへのアクセスを拒絶することが含まれるとしてよい。鍵および/あるいは鍵コンテナを削除すること、または、鍵および/あるいは鍵コンテナへのアクセスをディセーブルすることによって、鍵コンテナを復号化しようとする不正な試みを阻止することができる。さらに図4を参照しつつ説明を続けると、動作4.7において、盗難通知を受け取っていない場合、セキュリティ/鍵管理ファームウェア237は、コンテナ鍵220を用いて、一時デバイス暗号鍵TDEK292を含むデバイス情報コンテナ290内に格納されているデータを復号化する。ここで、一時デバイス暗号鍵TDEK292は、非チップセット暗号化ストレージデバイス172に格納されているデータを暗号化するためにホスト暗号化ソフトウェア214または元々のストレージのハードウェアによって用いられる暗号鍵を含む得ることに留意されたい。動作4.8において、セキュリティ/鍵管理ファームウェア237は、一時デバイス暗号鍵TDEK292をホスト暗号化ソフトウェア214に与えて、動作4.9において、ホスト暗号化ソフトウェア214は非チップセット暗号化ストレージデバイス172を復号化する。一時デバイス暗号鍵TDEK292が元々のストレージのハードウェアによって生成されている場合、TDEK292は非チップセット暗号化ストレージデバイス172のデータを復号化するべく用いられ得る。このため、ユーザは、システムに1回ログインすると、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172に格納されている暗号化データにアクセスできる。管理エンジン130のセキュリティ/鍵管理ファームウェア237は、チップセットによって暗号化されたデバイスおよびプラットフォームのチップセットによっては暗号化されていないデバイス両方の復号化のための鍵を制御することによって、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータを包括的に保護する。デバイスへのユーザアクセスを制御するべく身元情報管理ファームウェア239と協働し、且つ、盗難通知に応答するべく盗難抑止ファームウェア235と協働することによって、保護されているプラットフォームに対応付けられているデータの安全性が保証される。図5は、本発明の一実施形態に係る、デバイスアクセスイベントの処理に関連する、図1の管理エンジンMEの動作を示すフローチャートである。図5に示すステップは、管理エンジンME130および/または管理エンジンME130の構成要素であるセキュリティ/鍵管理ファームウェア237によって実行されるものとして説明される。デバイスアクセスイベントステップ510において、管理エンジンME130は、プラットフォームのリセット、または、非チップセット暗号化ストレージデバイス172等のデバイスのプラットフォームへのホットプラグなどを表すデバイスアクセスイベントを受け取る。そして、デバイスはチップセットによって暗号化されているかの判断ポイント512に進み、挿入されたデバイスがチップセットによって暗号化されているか否かを判断する。このような判断を行なうには、メタデータ182等のメタデータがストレージデバイスにあるか否かを確認するとしてよい。デバイスがチップセットによって暗号化されていれば、デバイスメタデータ内でデバイス暗号鍵DEKを検索ステップ520に進む。ストレージデバイスのメタデータ182内でDEK184を検索して、DEK発見判断ポイント522へ進む。DEKが発見されていれば、DEKを用いてデバイスをアンロックステップ524へと進む。デバイスをアンロックして、デバイスはアンロック済み状態550へと進む。デバイスのアンロックは、図7を参照しつつさらに詳細に説明する。DEK発見判断ポイント522においてDEKが発見されていなければ、アンロック失敗状態560に進む。アンロック失敗状態560では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。デバイスはチップセットによって暗号化されているかの判断ポイント512において、挿入されたデバイスがチップセットによって暗号化されていない場合、デバイスはソフトウェアによって暗号化されているかの判断ポイント514に進む。デバイスがソフトウェアによって暗号化されているか否かの判断は、例えば、デバイスの識別子と、直接管理デバイス情報コンテナ280および間接管理デバイス情報コンテナ290等のデバイス情報コンテナ内のデバイス識別子との比較に基づいて行なうとしてよい。デバイス識別子がデバイス情報コンテナのうち1つで見つかった場合、デバイス情報コンテナ内で一時デバイス暗号鍵TDEKを検索ステップ530に進む。デバイス情報コンテナ内を検索して、TDEK発見判断ポイント532に進む。TDEKが発見されていれば、TDEKを用いてデバイスをアンロックステップ534に進む。デバイスをアンロックして、デバイスはアンロック済み状態550へと進む。デバイスのアンロックは、図7を参照しつつさらに詳細に説明する。TDEK発見判断ポイント532においてソフトウェアで暗号化されたデバイスのTDEKが見つからない場合、他のデバイス情報コンテナのメタデータ内でTDEKを検索ステップ536に進む。他のデバイス情報コンテナのメタデータが存在すれば、そのメタデータ内を検索して、TDEK発見判断ポイント538へと進む。他のデバイス情報コンテナのメタデータが存在しなければ、TDEK発見判断ポイント538へと進む。ソフトウェアで暗号化されたデバイスのTDEKが見つからなかった場合、TDEK発見判断ポイント538から、アンロック失敗状態560に進む。アンロック失敗状態560では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。ソフトウェアで暗号化されたデバイスのTDEKが見つかった場合、TDEK発見判断ポイント538から、TDEKを用いてデバイスをアンロックステップ534に進み、その後は上述したように進む。デバイスはソフトウェアによって暗号化されているかの判断ポイント514において、デバイスがソフトウェアによって暗号化されていないと判断されれば、デバイスは自身で暗号化されているかの判断ポイント516に進む。デバイスが自身で暗号化されているか否かの判断は、例えば、ATAセキュリティコマンドを発行することによって、実行するとしてよい。デバイスが自身で暗号化されていれば、アンロックコマンド送信ステップ540に進み、アンロックコマンドがデバイスに送信される。デバイスはアンロックされて、デバイスはアンロック済み状態550へと進む。デバイスは自身で暗号化されているかの判断ポイント516において、デバイスが自身で暗号化されていないとなった場合、アンロック失敗状態560に進む。デバイスはアンロックされない。デバイスアクセスイベントステップ510から開始されたデバイスアクセスイベントの処理は、デバイスをアンロックすることなく、完了する。図6は、本発明の一実施形態に係る、デバイス初期化イベントの処理に関連する、図1の管理エンジンMEの動作を示すフローチャートである。図6に示すステップは、管理エンジンME130および/または管理エンジンME130の構成要素であるセキュリティ/鍵管理ファームウェア237によって実行されるものとして説明される。デバイス初期化イベントステップ610において、管理エンジンME130は、デバイス初期化イベントを受け取る。デバイス暗号鍵を生成の判断ポイント620に進む。初期化すべきデバイスについて暗号鍵を生成すべき場合、暗号鍵DEKまたはTDEK生成ステップ622に進む。暗号鍵は、例えば、乱数生成器を用いて生成するとしてよい。そして、デバイスラッピング鍵DWKを用いて暗号鍵をラッピングステップ624に進む。例えば、図3のDEK310a-310nのうち1つ等のデバイス暗号鍵DEK、または、図3のTDEK320a-320nのうち1つ等の一時デバイス暗号鍵TDEKを、図3のDWK330等のデバイスラッピング鍵DWKを用いてラッピングする。デバイスラッピング鍵DWKを用いて暗号鍵をラッピングステップ624から、チップセットで生成されたDEK判断ポイント0へ進み、チップセット暗号化ストレージデバイス180のDEK184等の暗号鍵が、チップセットによって生成されたか否かを判断する。暗号鍵がチップセットによって生成されていれば、ラッピングされたDEKをデバイスのメタデータに格納ステップ628に進み、デバイスに直接DEKを格納する。例えば、DEK184をチップセット暗号化ストレージデバイス180のメタデータ182に格納する。そして、マイグレーショントークンを用いてDWKをラッピングステップ630に進み、DWKをさらに、プラットフォーム非依存性のマイグレーショントークンを用いてラッピングして、図3のマイグレーション鍵350のようなマイグレーション鍵を生成する。そして、マイグレーションパッケージをデバイスメタデータに格納ステップ632に進み、マイグレーション鍵およびその他のマイグレーションデータを、マイグレーションパッケージとして、デバイスメタデータに格納する。例えば、マイグレーションパッケージ280Mは、チップセット暗号化ストレージデバイス180のメタデータ182内に格納される。デバイスの初期化はこうして、デバイスは初期化済みステップ640への遷移で図示するように、完了する。チップセットによって生成された鍵判断ポイント626において、暗号鍵がチップセットによって生成されていない場合、メタデータ格納領域はデバイス外で利用可能判断ポイント650に進む。デバイスメタデータを格納するための格納領域がデバイス外で、例えば、デバイス情報コンテナ等で利用可能な場合、メタデータ格納領域にラッピングされた暗号鍵を格納ステップ652に進む。ラッピングされた暗号鍵は、例えば、デバイス情報コンテナ、例えばデバイス情報コンテナ280または290に格納されるとしてよい。そして、マイグレーショントークンを用いてDWKをラッピングステップ654に進み、マイグレーショントークンを用いてDWKをラッピングして、図3のマイグレーション鍵350のようなマイグレーション鍵を生成する。そして、メタデータ格納領域にマイグレーションパッケージを格納ステップ656に進み、マイグレーション鍵およびその他のマイグレーションデータを、例えば、マイグレーションパッケージ290Mのようなマイグレーションパッケージの一部として、フラッシュメモリ190のデータ領域198に格納する。そして、デバイスは初期化済みステップ640に進み、デバイスの初期化が完了する。メタデータ格納領域はデバイス外で利用可能判断ポイント650において、デバイス外でメタデータ格納領域が利用可能でない場合、ラッピングされた暗号鍵をデバイス上のメタデータに格納ステップ628に移行する。ラッピングされたTDEKは、例えば、直接管理デバイス情報コンテナ280に格納されるTDEK282のように、デバイス上に直接格納される。そして、ラッピングされた暗号鍵をデバイス上のメタデータに格納ステップ628から、上述したように、デバイスは初期化済みステップ640に進む。デバイス暗号鍵を生成の判断ポイント620において、暗号鍵を生成しないと判断されると、デバイス暗号鍵を受け取ったかステップ660に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っている場合、デバイスラッピング鍵DWKを用いて暗号鍵をラッピングステップ624に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っていない場合、デバイス初期化は失敗ステップ670に進み、デバイスは初期化されない。図7は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジンMEの動作を示すフローチャートである。プラットフォームに対してユーザを認証ステップ710から開始され、プラットフォームに対するユーザのアクセスが、上述したように、認証される。ユーザラッピング鍵を生成ステップ720に進み、340aまたは340bのようなユーザラッピング鍵を生成する。そして、ユーザアカウントメタデータのラッピングを解除ステップ730に進み、図4を参照しつつ上述したように、ユーザアカウントメタデータのラッピングを解除する。そして、デバイスラッピング鍵DWKのラッピングを解除ステップ740に進み、デバイスラッピング鍵のラッピングを解除する。そして、DEK/TDEKメタデータを取得ステップ750に進み、図5を参照しつつ上述したようにDEK/TDEKのメタデータを取得する。そして、DEK/TDEKのラッピングを解除ステップ760に進み、デバイス暗号鍵DEK/TDEKのラッピングを解除する。そして、デバイスをアンロックステップ770に進み、デバイスをアンロックする。図8は、本発明の一実施形態に係る、プラットフォーム間でのデバイスのマイグレーションに関連する、図1の管理エンジンMEの動作を示すフローチャートである。管理者を認証ステップ810から開始され、マイグレーションを実行したい管理者を、本明細書に記載するユーザ認証プロセスと同様の方法で、認証する。そして、マイグレーショントークンを取得ステップ820に進み、デバイスのマイグレーショントークンを取得する。一実施形態によると、マイグレーショントークンをリモートサーバから取得する。そして、メタデータからマイグレーションパッケージを取得ステップ830に進み、マイグレーションパッケージをメタデータから取得する。例えば、フラッシュメモリ190のデータ領域198からマイグレーションパッケージ290Mを取得するか、または、チップセット暗号化ストレージデバイス180のメタデータ182からマイグレーションパッケージ280Mを取得する。そして、デバイスラッピング鍵DWKのラッピングを解除ステップ840に進み、デバイスラッピング鍵のラッピングを解除する。そして、DEK/TDEKメタデータを取得ステップ850に進み、DEK/TDEKのメタデータを、図5を参照しつつ上述したように、取得する。そして、DEK/TDEKのラッピングを解除ステップ860に進み、デバイス暗号鍵DEK/TDEKのラッピングを解除する。そして、デバイスをアンロックステップ870に進み、デバイスをアンロックする。図9は、本発明の一実施形態に係る、盗難にあったプラットフォームの処理に関連する、図1の管理エンジンMEの動作を示すフローチャートである。プラットフォームの盗難をアサートステップ910から開始され、管理エンジンME130が、プラットフォームが盗難に遭った旨のアサーションを発行する。このアサーションは、例えば、図1のエンタープライズサービス162内の盗難検出サーバによって、ブロードキャストされるとしてよい。そして、盗難プラットフォームイベントを配信ステップ920に進み、盗難プラットフォームイベントが、盗難に遭ったプラットフォームに配信される。このイベントは、図1のエンタープライズサービス162内の盗難検出サーバによって生成および配信されるとしてよい。盗難プラットフォームイベントを配信ステップ920から、ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要判断ポイント930に進み、エンタープライズポリシーでは盗難に遭ったプラットフォームの鍵を全て削除する必要があるか否か判断する。エンタープライズポリシーで鍵の削除が求められている場合には、DEKを含むデバイスメタデータ、および、TDEKを含むその他のメタデータまたはデバイス情報コンテナを削除ステップ940に進み、チップセット暗号化ストレージデバイス180のメタデータ182およびデバイス情報コンテナ280および290のようなデバイスメタデータも含め、全てのメタデータレポジトリから全ての鍵を削除する。鍵の削除は、鍵を含むコンテナ全体の削除を含むとしてよい。ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要判断ポイント930において、ポリシーでは鍵の削除が必要ない場合、他の盗難管理対策を講じるステップ950に進み、エンタープライズポリシーに従って盗難に遭ったプラットフォームに対して他の対策を講じるとしてよい。図10は、本発明の一実施形態に係る、盗難にあったプラットフォームの回復に関連する、図1の管理エンジンMEの動作を示すフローチャートである。盗難に遭ったプラットフォームが所有者に戻るステップ1010から開始され、盗難に遭ったプラットフォームが所有者の元に戻ってくる。プラットフォームに対して所有者を認証ステップ1020に進み、プラットフォームに対して所有者の認証を行う。そして、デバイスラッピング鍵DWKを含むマイグレーションパッケージのラッピングを解除ステップ1030に進み、マイグレーションパッケージのラッピングを解除して、図3のDWK330のようなDWKを生成する。そして、DEK/TDEKメタデータを取得ステップ1040に進み、DEK/TDEKメタデータを、図5を参照しつつ上述したように、取得する。そして、DEK/TDEKのラッピングを解除ステップ1050に進み、デバイス暗号鍵DEK/TDEKのラッピングが解除される。そして、デバイスをアンロックステップ1060に進み、デバイスがアンロックされる。図11は、本発明の一実施形態に係る、プラットフォーム100のアクセス制御コンポーネントの動作を示すフローチャートである。プラットフォームへのユーザアクセスを認証ステップ1110において、プラットフォームに対してアクセスを要求しているユーザに関するユーザデータ、例えば、パスワード、バイオメトリクスデータ、またはスマートカード情報等の認証を、ユーザ認証モジュール212と身元情報管理ファームウェア239との組み合わせを参照しつつ上述したように実行する。この認証は、MicrosoftActiveDirectoryまたはLDAPサーバ等の身元情報管理サーバでユーザの身元情報を確認して、プラットフォーム100に対応付けられているストレージデバイスに格納されている企業データに対するアクセス権限をユーザが持つことを確かめることを含むとしてよい。ユーザの認証はさらに、プラットフォームに対応付けられているプラットフォームおよび/またはストレージデバイスが紛失または盗難に遭っていないことを盗難抑止ファームウェア235で確認することを含むとしてよい。ユーザのデータが認証されてプラットフォームへのアクセスが確認されると、プラットフォームに対応付けられたストレージデバイスへのユーザアクセスを認証ステップ1120に進む。認証は、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172の両方に対するユーザアクセスについて、行われる。この確認は、ユーザのデータが上述したようにフラッシュメモリ190にあることを確かめることだけでなく、ユーザのデータがさらにチップセット暗号化ストレージデバイス180に格納されているデバイス情報コンテナ280にもあることを確かめることも含むとしてよい。プラットフォームに対応付けられているストレージデバイスにアクセスする権限をユーザが持つことを確認すると、対応付けられているストレージデバイスに格納されているデータにユーザをアクセスさせるためのプロセスが継続して実行される。プラットフォームに対応付けられているストレージデバイスに対してユーザがアクセスできることが確認されると、チップセット暗号化ストレージデバイスを復号化ステップ1130に進む。チップセット暗号化ストレージデバイス180に格納されているデータの復号化は、チップセット暗号化ストレージデバイスのメタデータに格納されているデバイス暗号鍵DEKを用いて実行される。暗号化コンテナ用の鍵を取得ステップ1140に進み、鍵管理情報を含む暗号化コンテナの暗号鍵を格納する。上述したように、一実施形態によると、これらのコンテナ鍵は、図2および図3のフラッシュメモリ190のデータ領域198内のユーザ/コンテナメタデータ230のユーザアカウントメタデータ223から取得される。そして、コンテナを復号化ステップ1150に進み、図3を参照しつつ上述したように、コンテナ鍵220をさらに、セキュリティファームウェアメタデータを含むデバイス情報コンテナ280、および、非チップセット暗号化ストレージデバイス172用の一時デバイス暗号鍵TDEK292を含むデバイス情報コンテナ290の両方を復号化するべく用いる。ステップ1130-1150においてチップセット暗号化ストレージデバイスおよびコンテナを復号した後、他のデバイスの一時デバイス暗号鍵をコンテナから取得ステップ1160に進む。上述したように、デバイス情報コンテナ290はさらに、プラットフォームのチップセットでは暗号化されていないデバイスの暗号鍵を含む。そして、他のデバイスの一時デバイス暗号鍵を用いて他のストレージデバイスを復号化ステップ1170に進む。ホスト暗号化ソフトウェア214のようなホスト暗号化ソフトウェアによって暗号化されたデータの場合は、元々の復号鍵はホスト暗号化ソフトウェアに転送されて、他のストレージデバイスに格納されているデータが復号化される。図11を参照しつつ説明したステップは、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータへのアクセスを制御する。本明細書に記載されているデータへのアクセスを制御するためのフレームワークおよびインフラストラクチャはさらに、プラットフォーム間でのデータおよびストレージデバイスのマイグレーションをサポートすると共に、鍵回復処理および盗難通知処理をサポートする。チップセット暗号化デバイスおよび非チップセット暗号化デバイスの両方の暗号鍵を管理する共通フレームワークを提供することによって、どちらのタイプのデバイスも、1回のマイグレーションイベント、回復イベント、または盗難効果抑止イベントで、マイグレーションさせることが可能となる。さらに、ストレージデバイスに対応付けられているユーザ毎に暗号鍵を格納することによって、データおよび/またはストレージデバイスは、ユーザ単位の粒度で、マイグレーションおよび/または回復を行うことができる。対象となるプラットフォームのデータへのアクセスは、当該プラットフォームのユーザアカウント情報に選択されたユーザのみを含むことによって、これらの選択されたユーザに限定することができる。中央集権的な身元情報管理サービスは、対象となるプラットフォームへのアクセスが適切であるかを各ユーザについて確認するべく照合され得る。中央集権的な盗難管理サービスもまた、ストレージデバイスが盗難に遭っていないことを確認するべく利用され得る。フレームワークはUSBストレージデバイス等のスタンドアローンなストレージデバイスの暗号鍵も含むので、これらのスタンドアローンな暗号化デバイスに対するアクセスを、当該ストレージデバイスがプラットフォームに取り付けられていようといまいと、ディセーブルすることができる。このため、盗難に遭ったUSBデバイスは、正当なユーザがログインするまで、または、管理者が盗難通知を破棄するまで、ディセーブルされ得る。図5は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジンMEの動作を示すフローチャートである。図6は、本発明の一実施形態に係る、デバイスの初期化に関連する、図1の管理エンジンMEの動作を示すフローチャートである。図7は、本発明の一実施形態に係る、デバイスに格納されているデータの暗号鍵を取得した後のデバイスのアンロックに関連する、図1の管理エンジンMEの動作を示すフローチャートである。図8は、本発明の一実施形態に係る、デバイスのマイグレーションに関連する、図1の管理エンジンMEの動作を示すフローチャートである。図9は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの処理に関連する、図1の管理エンジンMEの動作を示すフローチャートである。図10は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの回復に関連する、図1の管理エンジンMEの動作を示すフローチャートである。本明細書に記載するメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、または、これらの実装方法の組み合わせによって実装されるとしてよい。本発明の実施形態は、少なくとも1つのプロセッサと、データストレージシステム揮発性および不揮発性メモリおよび/またはストレージ素子を含むと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを備えるプログラム可能システムにおいて実行されるコンピュータプログラムとして実装され得る。プログラムコードを入力データに適用して、本明細書に記載した機能を実行すると共に出力情報を生成するとしてよい。本発明の実施形態はさらに、本発明の動作を実行するための命令、または、本明細書に記載した構造、回路、装置、プロセッサ、および/または、システムの構成要素を定義するHDL等のデザインデータを含む機械アクセス可能媒体を含む。このような実施形態は、プログラム製品とも呼ばれる。上述した機械アクセス可能格納媒体は、これらに限定されないが、機械またはデバイスによって製造または形成される有形の粒子の配置、例えば、ハードディスク等の格納媒体、フロッピー登録商標ディスクを含むその他の任意の種類のディスク、光ディスク、コンパクトディスクリードオンリーメモリCD-ROM、書き換え可能コンパクトディスクCD-RW、および光磁気ディスク、リードオンリーメモリROM等の半導体デバイス、ダイナミックランダムアクセスメモリDRAM等のランダムアクセスメモリRAM、スタティックランダムアクセスメモリSRAM、消去可能プログラム可能リードオンリーメモリEPROM:登録商標、フラッシュプログラム可能メモリFLASH、電気的消去可能プログラム可能リードオンリーメモリEEPROM登録商標、磁気カードまたは光カード、または電子命令を格納するのに適したその他の任意の種類の媒体を含むとしてよい。出力情報は、公知の方法で、1以上の出力デバイスに適用されるとしてよい。本願の目的に鑑みれば、処理システムは、例えば、デジタルシグナルプロセッサDSP、マイクロコントローラ、特定用途向け集積回路ASICまたはマイクロプロセッサ等のプロセッサを備えるシステムであればどのようなシステムをも含む。プログラムは、処理システムとの通信を実現するべく、高級プロシージャ言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムはさらに、所望されれば、アセンブリ言語または機械言語で実装されるとしてもよい。尚、本明細書に記載するメカニズムの範囲は、特定のプログラミング言語に限定されるものではない。どの場合であっても、コンパイラ方式またはインタプリタ方式の言語であってよい。本明細書では、プラットフォームに対応付けられるストレージデバイスに格納されているデータを包括的に保護するための方法およびシステムの実施形態を記載している。本発明の実施形態を具体的に図示および説明してきたが、本願の特許請求の範囲から逸脱することなく、多くの点で変更、変形および修正を加えることができるのは当業者には明らかである。従って、当業者であれば、本発明を幅広く解釈した場合にその範囲から逸脱することなく、変更および変形が可能であると想到するであろう。本願の特許請求の範囲は、本発明の真の範囲および精神に含まれる上述したような変更、変形および修正を全て網羅する。