(57)【要約】      （修正有）【課題】第１のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御するための方法を提供する。【解決手段】第１のプラットフォームにアクセスするユーザを認証する段階を備え、第１のプラットフォームは、第１および第２のストレージデバイス１８０、１７２と、チップセット暗号化ハードウェア１５０と、メモリとを有する。ストレージデバイスに格納されているデータは暗号化されており、第１のストレージデバイス１８０に格納されている第１のデータは、チップセット暗号化ハードウェアによって暗号化されており、第２のストレージデバイス１７２に格納されている第２のデータは、別の暗号化メカニズムによって暗号化されている。データは、復号化されて、第１のデータおよび第２のデータに対するアクセスがユーザに許可される。【選択図】図１
2010191946.tif 000002
【特許請求の範囲】
【請求項１】
第１のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する段階を備える方法であって、
前記制御する段階は、前記第１のプラットフォームにアクセスするユーザを認証する段階を有し、
前記第１のプラットフォームは、前記複数のストレージデバイスのうちの１つである第１のストレージデバイスと、前記複数のストレージデバイスのうちの１つである第２のストレージデバイスと、チップセット暗号化ハードウェアと、メモリとを有し、
前記第１のストレージデバイスに格納されている第１のデータは、第１の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、
前記第２のストレージデバイスに格納されている第２のデータは、前記チップセット暗号化ハードウェアによって暗号化されているのではなく、別の暗号化メカニズムによって暗号化されており、
前記第２のデータは、第２の暗号鍵を用いて暗号化されており、
前記制御する段階はさらに、
前記第１のストレージデバイスに格納されている前記第１のデータを復号化する段階と、
前記メモリに格納されているコンテナ用のコンテナ暗号鍵を取得する段階と、
前記コンテナ暗号鍵を用いて、前記メモリに格納されており前記第２の暗号鍵を含む前記コンテナを復号化する段階と、
前記第２の暗号鍵を用いて、前記第２のストレージデバイスに格納されている前記第２のデータを復号化する段階と、
前記第１のデータおよび前記第２のデータに対するアクセスを前記ユーザに許可する段階と
を有する方法。
【請求項２】
プラットフォーム非依存性トークンで前記第１の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第１のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第１のストレージデバイスを第２のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第１のデータを復号化する段階と
をさらに備える請求項１に記載の方法。
【請求項３】
プラットフォーム非依存性トークンで前記第２の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第１のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第２のストレージデバイスを第２のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第２のデータを復号化する段階と
をさらに備える請求項１に記載の方法。
【請求項４】
盗難通知イベントに応じて前記第１のプラットフォームに対するアクセスを拒絶する段階、または、
前記第１のプラットフォームから前記第１の暗号鍵および前記第２の暗号鍵を削除することによって、前記第１のプラットフォームに対する前記アクセスを拒絶する段階
をさらに備える請求項１に記載の方法。
【請求項５】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、
前記第１のプラットフォームの、前記第１の暗号鍵および前記第２の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階、または、
前記第１のプラットフォームの、前記第１のストレージデバイスの第１のマイグレーション鍵および前記第２のストレージデバイスの第２のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階
を有する請求項４に記載の方法。
【請求項６】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、前記第１のプラットフォームのマイグレーションパッケージから、前記第１の暗号鍵および前記第２の暗号鍵のうち少なくとも１つを削除する段階を有する請求項４に記載の方法。
【請求項７】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、前記第１のプラットフォームのハードウェアをディセーブルする段階を有する請求項４に記載の方法。
【請求項８】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、前記コンテナに対するアクセスを拒絶する段階を有する請求項４に記載の方法。
【請求項９】
機械読み出し可能命令を格納する機械読み出し可能ストレージであって、前記機械読み出し可能命令が実行されると、請求項１から請求項８のいずれか一項に記載の方法が実行される機械読み出し可能ストレージ。
【請求項１０】
第１のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する制御モジュールと、
前記第１のプラットフォームにアクセスするユーザを認証する認証モジュールと
を備えるシステムであって、
前記第１のプラットフォームは、前記複数のストレージデバイスのうちの１つである第１のストレージデバイス、前記複数のストレージデバイスのうち１つである第２のストレージデバイス、チップセット暗号化ハードウェア、およびメモリを有し、
前記第１のストレージデバイスで格納されている第１のデータは、第１の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、
前記第２のストレージデバイスに格納されている第２のデータは、前記チップセット暗号化ハードウェアによって暗号化されているではなく、別の暗号化メカニズムによって暗号化されており、
前記第２のデータは、第２の暗号鍵を用いて暗号化されており、
前記システムはさらに、
前記第１のストレージデバイスに格納されている前記第１のデータを復号化する復号化モジュールと、
前記メモリに格納されているコンテナ用のコンテナ暗号鍵を取得する取得モジュールと、
前記コンテナ暗号鍵を用いて、前記メモリに格納されており前記第２の暗号鍵を含む前記コンテナを復号化する第２の復号化モジュールと、
前記第２の暗号鍵を用いて前記第２のストレージデバイスに格納されている前記第２のデータを復号化する利用モジュールと、
前記第１のデータおよび前記第２のデータに対するアクセスを前記ユーザに許可する許可モジュールと
を備えるシステム。
【請求項１１】
プラットフォーム非依存性トークンで前記第１の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第１のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する第２の格納モジュールと、
前記第１のストレージデバイスを第２のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第１のデータを復号化する第３の復号化モジュールと
をさらに備える請求項１０に記載のシステム。
【請求項１２】
プラットフォーム非依存性トークンで前記第２の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第１のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する第２の格納モジュールと、
前記第２のストレージデバイスを第２のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第２のデータを復号化する第３の復号化モジュールと
をさらに備える請求項１０に記載のシステム。
【請求項１３】
盗難通知イベントに応じて前記第１のプラットフォームに対するアクセスを拒絶する拒絶モジュール、または、
前記第１のプラットフォームから前記第１の暗号鍵および前記第２の暗号鍵を削除する削除モジュール
をさらに備える請求項１０に記載のシステム。
【請求項１４】
前記第１のプラットフォームの、前記第１の暗号鍵および前記第２の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第２の拒絶モジュール、または、
前記第１のプラットフォームの、前記第１のストレージデバイスの第１のマイグレーション鍵および前記第２のストレージデバイスの第２のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第２の拒絶モジュール
をさらに備える請求項１３に記載のシステム。
【請求項１５】
前記第１のプラットフォームのハードウェアをディセーブルするディセーブルモジュール、または
前記コンテナに対するアクセスを拒絶する第２の拒絶モジュール
をさらに備える請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権に関する情報
本明細書に含まれる内容は、著作権に基づいて保護されている。著作権所有者は、米国特許商標庁の特許ファイルまたは特許レコードに保存されている特許開示内容については何人が複製しようとこれに異を唱えることはないが、それ以外については著作権等に関する全ての権利を保有する。
【０００２】
本開示は概して、コンピュータシステムに格納されているデータの保護に関する。
【背景技術】
【０００３】
企業が有するデータはますます、移動する機会が増えると共に利用される箇所が多くなり、大量となってきている。社員の出張やさまざまな就業形態を可能とするべく、データを物理的に保護された設備から取り出すことは日常的に行われている。また、企業がビジネスの機会をほかの都市、州（都道府県）、および国で見出すと、データは地理的にさまざまな場所に分散する。そしてデータ量は、発生するスピードの点でも、提示され得るマルチメディア形式の点でも、大量である。上述した要因すべては、移動時および保存時の両方においてデータの保護が必要となるネットワーク接続ストレージ、帯域幅が増えたサブシステム、新しい格納媒体の開発を後押ししている。
【０００４】
保存データ（Ｄａｔａ  ａｔ  Ｒｅｓｔ：ＤＡＲ）暗号化技術は、紛失または盗難にあったストレージデバイスに格納されているデータが不正利用されないようにするための技術であり、インターネット等のネットワークでデータがばら撒かれることを防いでいる。ＤＡＲ暗号化技術は、ストレージデバイスの紛失および盗難が不可避である以上、発生してもストレージデバイスに格納されているデータの紛失および盗難につながらないように、自動的且つ即座に応答するメカニズムとして機能する技術である。
【０００５】
コンピュータプラットフォームに関連付けられているさまざまなストレージデバイスに格納されているデータを保護する上での課題の１つに、暗号化技術および鍵管理方法が暗号化を行う主体によって異なる点が挙げられる。ストレージのハードウェアには暗号化機能が元々組み込まれている場合があるが、この暗号化機能は、ストレージのハードウェアのベンダ毎に固有であるので、データにアクセスするには、ストレージのハードウェアのベンダのツールを利用しなければならない。ソフトウェアに基づく暗号化の場合は、ハードウェアに基づく暗号化の場合とは異なる鍵生成および管理サービスが必要となるので、ソフトウェアで暗号化されたデータにアクセスするにはソフトウェアのベンダのツールを利用しなければならない場合がある。このため、盗難または紛失が発生した際の鍵の回復およびデータのマイグレーションについて計画を立てる場合、任意のコンピュータプラットフォームに対応付けられたデータ全てを保護および／または回復するためには多くの異なるベンダのツールを利用しなければならない可能性がある。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態に係る、コンピュータプラットフォーム内のストレージデバイスに格納されているデータについて包括的な保護を提供するシステムを示す図である。
【０００７】
【図２】本発明の一実施形態に係る、図１のプラットフォームに格納されているデータの暗号化の管理に関連して、図１のチップセットおよび管理エンジン（Ｍａｎａｇｅａｂｉｌｉｔｙ  Ｅｎｇｉｎｅ：ＭＥ）をさらに詳細に示す図である。
【０００８】
【図３】本発明の一実施形態に応じた、ストレージデバイスに格納されているデータを暗号化するための暗号鍵同士の関係を示す図である。
【０００９】
【図４】コンピュータプラットフォームのストレージデバイスへのアクセスを制御する場合の、図２のコンポーネント同士のやり取りを示すデータフロー図である。
【００１０】
【図５】本発明の一実施形態に係る、デバイスアクセスイベントの処理に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００１１】
【図６】本発明の一実施形態に係る、デバイス初期化イベントの処理に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００１２】
【図７】本発明の一実施形態に係る、デバイスのアンロックに関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００１３】
【図８】本発明の一実施形態に係る、プラットフォーム間でのデバイスのマイグレーションに関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００１４】
【図９】本発明の一実施形態に係る、盗難にあったプラットフォームの処理に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００１５】
【図１０】本発明の一実施形態に係る、盗難にあったプラットフォームの回復に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００１６】
【図１１】本発明の一実施形態に係る、図１および図２のプラットフォームのアクセス制御コンポーネントの動作を示すフローチャートである。
【発明を実施するための形態】
【００１７】
本発明の実施形態は、コンピュータプラットフォームが備えるストレージデバイスに格納されているデータを包括的に保護するための方法、装置、システム、およびコンピュータプログラム製品を提供し得る。データの保護は、プラットフォームのユーザを、ストレージデバイスに格納されているデータへのアクセスを許可する前に、認証することによって実現される。さらに、プラットフォームに対応付けられているストレージデバイスに格納されているデータを暗号化するのに用いられる鍵は、ストレージデバイスを暗号化するためにチップセットのハードウェアによって用いられる鍵、ならびに、暗号化ソフトウェアおよび／またはストレージデバイスのハードウェアによって利用される鍵も含め、全てセキュアに管理することによってデータを保護する。また、プラットフォームおよび／またはストレージデバイスの盗難が検知された場合には格納データへのアクセスを防ぐべく盗難抑止メカニズムを設けることによっても、データを保護する。
【００１８】
図１は、本発明の実施形態に係る、コンピュータプラットフォーム内のストレージデバイスに格納されているデータについて包括的な保護を提供するシステムを示す図である。プラットフォーム１００は、デスクトップ管理インターフェース（ＤＭＩ）１１１を介してチップセット１２０に接続されているプロセッサ１１０を備える。チップセット１２０は、プラットフォーム１００の設定および動作を管理する管理エンジン（Ｍａｎａｇｅａｂｉｌｉｔｙ  Ｅｎｇｉｎｅ：ＭＥ）１３０を有する。管理エンジン（ＭＥ）１３０は、マイクロプロセッサとして実装され得る。一実施形態によると、管理エンジン（ＭＥ）１３０は、監査イベントの収集、ユーザの認証、周辺機器へのアクセスの制御、プラットフォーム１００のストレージデバイスに格納されているデータを保護するための暗号鍵の管理、およびネットワークコントローラ１６０を介したエンタープライズサービス１６２との間のインターフェースとしての機能を実行する。管理エンジン（ＭＥ）１３０は、エンタープライズサービス１６２を利用することによって、プラットフォーム１００等のプラットフォームの設定及び管理に関するエンタープライズ全体でのポリシーとの一貫性を保つ。
【００１９】
デスクトップ管理インターフェース（ＤＭＩ）１１１は、プロセッサ１１０を、チップセット１２０のＩ／Ｏコマンドデコードモジュール１４０に接続する。一実施形態によると、Ｉ／Ｏコマンドデコードモジュール１４０は、専用シリコンチップを用いることによって格納コマンドのデコードおよびその他の加速処理を実行する汎用コントローラである。Ｉ／Ｏコマンドデコードモジュール１４０の機能は、特定用途向けハードウェアで全て実装されるとしてもよい。管理エンジン（ＭＥ）１３０は、ポリシーおよび暗号鍵を設定することによって、Ｉ／Ｏコマンドデコードモジュール１４０および暗号化エンジン１５０の挙動を制御する。管理エンジン（ＭＥ）１３０、Ｉ／Ｏコマンドデコードモジュール１４０、および暗号化エンジン１５０の動作については、より詳細に後述する。
【００２０】
プラットフォーム１００はさらに、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）１１２、チップセット１２０内のスタティックランダムアクセスメモリ（ＳＲＡＭ）１２２、およびフラッシュメモリ１９０等のメモリデバイスを備える。プラットフォーム１００に最大電力が供給されている場合、ＤＲＡＭ１１２のうち上部メモリ領域（ＵＭＡ）と呼ばれる一部分、ＭＥ−ＵＭＡ１１４が、管理エンジン（ＭＥ）１３０によって利用可能な状態となっている。プラットフォーム１００のホストオペレーティングシステム（図１には不図示）は通常、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）によって設定されているメモリ分離メカニズムのために、ＭＥ−ＵＭＡ１１４にはアクセスすることができない。このメモリ分離メカニズムは、ホストオペレーティングシステムが実行される前に、ＭＥ−ＵＭＡメモリ１１４へのアクセスに鍵を掛ける。ＤＲＡＭ１１２のこの部分を、管理エンジン１３０に利用させるべく、ホストオペレーティングシステムから分離することによって、オペレーティングシステムに感染し得るウィルス等のマルウェアから管理エンジン１３０の完全性を保護する。
【００２１】
フラッシュメモリ１９０は、プラットフォーム１００を初期化する場合に用いられるファームウェアを有する。この初期化ファームウェアには、ＢＩＯＳファームウェア１９２、ネットワークコントローラ１６０を設定するためのネットワークコントローラファームウェア１９４、およびチップセット１２０を設定するためのチップセットファームウェア１９６が含まれる。管理エンジン（ＭＥ）１３０およびＩ／Ｏコマンドデコードモジュール１４０のために、チップセットファームウェア１９６の完全性は、フラッシュメモリ１９０に格納される前にデジタル署名を確認することによって保証される。管理エンジン（ＭＥ）１３０によって利用されるデータ、例えばユーザ認証情報は、管理エンジン（ＭＥ）１３０内の暗号化ファームウェアによって暗号化されて、フラッシュメモリ１９０のデータ領域１９８に格納されるとしてよい。
【００２２】
図1に示す実施形態のプラットフォーム１００はさらに、Ｉ／Ｏコントローラ１７０を介してアクセス可能なさまざまな種類のストレージデバイスを備えている。例えば、ストレージインターフェース１７１を介してアクセス可能な非チップセット暗号化ストレージデバイス１７２、および、ストレージインターフェース１８１を介してアクセス可能なチップセット暗号化ストレージデバイス１８０がある。ストレージインターフェース１７１および１８１は、ストレージデバイス１７２および１８０として設けられるストレージの種類に応じて、不揮発性メモリ（ＮＶＭ）用の不揮発性メモリホストコントローラインターフェース（ＨＣＩ）、または、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）ストレージ用のＡＨＣＩ（Ａｄｖａｎｃｅｄ  ＨＣＩ）インターフェースとして実装されるとしてよい。
【００２３】
ストレージデバイス１７２および１８０に格納されているデータは、暗号化されているとしてよい。チップセット暗号化ストレージデバイス１８０に格納されているデータは、チップセット１２０の暗号化エンジン１５０によって暗号化される。チップセット暗号化ストレージデバイス１８０はさらに、メタデータ１８２を格納するために確保された領域を含む。メタデータ１８２は、ストレージデバイス１８０のための少なくとも１つのデバイス暗号鍵（ＤＥＫ）１８４、および、管理エンジン（ＭＥ）１３０が利用するその他のメタデータを含む。メタデータ１８２は、Ｉ／Ｏコマンドデコードモジュール１４０およびＩ／Ｏコントローラ１７０がＩ／Ｏコマンドを処理している間にプロセッサ１１０で実行されるアプリケーションによって上書きされないように保護される。
【００２４】
一実施形態によると、チップセット１２０の暗号化エンジン１５０によってデータの暗号化または復号化が実行される前に、管理エンジン（ＭＥ）１３０が、暗号化エンジン１５０と対応付けられているメモリレジスタに対して、入出力動作に関わるストレージデバイスに対応付けられているデバイス暗号鍵（ＤＥＫ）、例えばＤＥＫ１８４を挿入する。１つの物理ストレージデバイスが論理的に複数の異なる論理デバイスまたはパーティションに分割されている場合、各論理デバイスまたはパーティションそれぞれが、対応するデバイス暗号鍵（ＤＥＫ）を持っており、各ＤＥＫが暗号化エンジン１５０の対応するメモリレジスタに挿入される。
【００２５】
非チップセット暗号化ストレージデバイス１７２に格納されているデータは、暗号化ソフトウェアまたはストレージのハードウェア自体によって暗号化されており、暗号化エンジン１５０によっては暗号化されてはいない。非チップセット暗号化ストレージデバイス１７２は、チップセット暗号化ストレージデバイス１８０が格納するメタデータ１８２と同様のチップセットが生成するメタデータは含まない。
【００２６】
プロセッサ１１０で実行されているソフトウェアが発行する書込みコマンドに応じたプラットフォーム１００のコンポーネントの動作の一例として、特定のストレージデバイスを対象とするデータ書込みコマンドが、ＤＭＩインターフェース１１１を介して、Ｉ／Ｏコマンドデコードモジュール１４０に対して発行される。Ｉ／Ｏコマンドデコードモジュール１４０は、このコマンドをデコードして、Ｉ／Ｏコントローラ１７０にデータ部分を特定する。チップセット暗号化ストレージデバイス１８０を対象とする書込みコマンドの場合、Ｉ／Ｏコントローラ１７０は「オンザフライ」で暗号化エンジン１５０を介してデータをルーティングする。この時、暗号化エンジン１５０は、管理エンジン（ＭＥ）１３０から提供されたチップセット暗号化ストレージデバイス１８０用のデバイス暗号鍵（ＤＥＫ）、例えばＤＥＫ１８４を用いてこのデータを暗号化する。暗号化エンジン１５０は、ストレージインターフェース１８１を介してチップセット暗号化ストレージデバイス１８０に送信されるように、暗号化されたデータをＩ／Ｏコントローラ１７０に戻す。Ｉ／Ｏコマンドデコードモジュール１４０およびＩ／Ｏコントローラ１７０は、ストレージインターフェース１８１を抽象化して、メタデータ１８２を格納している領域をプロセッサ１１０で実行されているアプリケーションによるアクセスから保護して、メタデータ１８２が上書きされないようにする。
【００２７】
非チップセット暗号化ストレージデバイス１７２とは、チップセット１２０の暗号化エンジン１５０によって暗号化されていないデータを格納しているＵＳＢデバイス、ＮＡＮＤ型フラッシュメモリデバイス、ファイヤーワイヤデバイス、またはその他の種類のストレージデバイスを表すとしてよい。非チップセット暗号化ストレージデバイス１７２を対象とする書込みコマンドの場合、Ｉ／Ｏコントローラ１７０は、暗号化のために暗号化エンジン１５０を介してデータをルーティングすることはない。これに代えて、非チップセット暗号化ストレージデバイス１７２は、ホストプロセッサ１１０で実行されているソフトウェアを用いて、または、ストレージデバイス１７２に組み込まれている暗号化ハードウェアによって暗号化され得る。非チップセット暗号化ストレージデバイス１７２が表すストレージデバイスは、チップセット１２０の暗号化エンジン１５０を用いて暗号化されるようには設定されていないが、管理エンジン（ＭＥ）１３０によって保護および管理されている、プラットフォーム１００内のストレージデバイスである。
【００２８】
非チップセット暗号化ストレージデバイス１７２にも、１以上の暗号鍵が対応付けられており、これらの暗号鍵は一時デバイス暗号鍵（ＴＤＥＫ）（不図示）と呼ばれる。例えば、ソフトウェアに基づく暗号化は通常、デバイスまたはパーティションの概念を用いるのではなく、ストレージのボリュームの概念を用いて行われ、対応付けられる暗号鍵はボリューム暗号鍵（ＶＥＫ）と呼ばれる。ボリューム暗号鍵は、管理エンジン（ＭＥ）１３０に格納されて管理される、あるタイプの一時デバイス暗号鍵（ＴＤＥＫ）の一例である。管理エンジン（ＭＥ）１３０は、プラットフォームに結び付けられた暗号鍵を管理すると共に、プラットフォームに結び付けられていない暗号鍵をも管理する。例えば、非チップセット生成暗号鍵、例えば、暗号化ソフトウェアによって生成される一時デバイス暗号鍵は通常、プラットフォームに結び付けられない。ストレージのハードウェアによって生成され、デバイス自体で物理的に格納されているＤＥＫは、当該デバイスには結び付けられているが、必ずしも当該デバイスを備えるプラットフォームに結び付けられることはない。一時ＤＥＫは、それを用いて暗号化したデータを格納している物理ストレージデバイスには格納されておらず、プラットフォームにもデバイスにも結び付けられていない。暗号鍵がプラットフォーム／デバイスに結び付けられていようといまいと、管理エンジン（ＭＥ）１３０は暗号鍵を同様に管理する。
【００２９】
管理エンジン（ＭＥ）１３０は、プラットフォーム１００と対応付けられる全てのデータの暗号化を管理する。これには、チップセット１２０内の暗号化エンジン１５０によって実行される暗号化、および、チップセットで実行されるのではなく、プロセッサ１１０で実行されるソフトウェアまたはストレージハードウェア自体で実行されるデータの暗号化も含まれる。管理エンジン（ＭＥ）１３０が提供するサービスの１つに、プラットフォーム１００のどのコンポーネントがデータの暗号化を実行するかに関わらず、共通のフレームワークおよびユーザインターフェースにおいて暗号鍵を管理することが挙げられる。データの暗号化を管理するためのチップセット１２０および管理エンジン（ＭＥ）１３０のフレームワークおよび動作に関する詳細はさらに、図２を参照しつつ後述する。
【００３０】
図２は、本発明の一実施形態に係る、図１のチップセット１２０、管理エンジン（ＭＥ）１３０、および管理エンジン（ＭＥ）１３０が管理するデータをさらに詳細に示す図である。チップセット１２０は、ＢＩＯＳ／ホストソフトウェア２１０とやり取りを行う。ＢＩＯＳ／ホストソフトウェア２１０は、ブート前認証プロセスで図１のＢＩＯＳファームウェア１９２にロードされるとしてよい。ＢＩＯＳ／ホストソフトウェア２１０は、ブート前認証プロセスでプラットフォーム１００のユーザを認証するユーザ認証モジュール２１２と、非チップセット暗号化ストレージデバイス１７２等のデバイスに格納されているデータを暗号化するべく用いられるホスト暗号化ソフトウェア２１４とを有する。
【００３１】
ユーザ認証モジュール２１２が実行するユーザ認証プロセスは、ユーザのパスワードを確認すること、バイオメトリクスデータ、スマートカードの利用、またはその他の認証プロセスを含むとしてよい。ユーザ認証モジュール２１２は、ブート前認証プロセスにおいて、認証結果を、チップセット１２０の管理エンジン（ＭＥ）１３０内の身元情報（ＩＤ）管理ファームウェア２３９に与えるとしてよい。
【００３２】
チップセット１２０において、管理エンジン（ＭＥ）１３０は、ＭＥカーネル２３１と、ＭＥ共通サービス２３３と、盗難抑止ファームウェア２３５と、セキュリティ／鍵管理ファームウェア２３７と、身元情報管理ファームウェア２３９とを持つ。これらのコンポーネントはそれぞれ、さらに詳細に後述する。
【００３３】
ＭＥカーネル２３１は、ＳＲＡＭ１２２およびＤＲＡＭ１１２の一部分（例えば、ＭＥ−ＵＭＡ１１４）のメモリ利用、フラッシュメモリ１９０におけるデータの持続的な格納、およびアクセス制御等の基本的な機能を提供する。ＭＥカーネル２３１は、Ｉ／Ｏコマンドデコードモジュール１４０および暗号化エンジン１５０の動作を制御する。
【００３４】
ＭＥ共通サービス２３３は、複数の異なるファームウェアモジュールが共通に必要とするサービスを含み、セキュリティサービス、ネットワークサービス、およびプロビジョニングサービスを含む。ＭＥ共通サービス２３３が提供するセキュリティサービスは一般的に、ＨＴＴＰダイジェスト認証およびケルベロス認証の両方を含むユーザ認証、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙおよび／またはその他のサービスを用いるドメイン認証、クライアントとサーバのクロックを同期させるクロック同期サービス、およびセキュリティ監査サービスを含む。
【００３５】
ＭＥ共通サービス２３３が提供するネットワークサービスは、トランスミッション・トランスポート・プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スタック、トランスポート層セキュリティ（ＴＬＳ）、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）、ウェブ・サービス・フォー・マネジアビリティ（ＷＳ−ＭＡＮ）、および、ホストベースのＴＬＳインターフェースが呼び出したＩｎｔｅｌローカル・マネジアビリティ・サービス（ＬＭＳ）を含む。
【００３６】
ＭＥ共通サービス２３３が提供するプロビジョニングサービスは、プラットフォーム１００に対してエンタープライズソフトウェアをプロビジョニングするべく、図１のエンタープライズサービス１６２と共に用いられる。これらのプロビジョニングサービスは、２つのデプロイメントモード、つまり、ゼロタッチおよびワンタッチをサポートしている。ゼロタッチモードの場合、デプロイメント証明アンカーキーは、図１のフラッシュメモリ１９０のデータ領域１９８等のデータストレージ領域に格納され、公知の認証局鍵に基づいて、プラットフォームの所有権を取るべく用いられるＩＴ信任状を認証する。ワンタッチモードでは、セットアップおよびデプロイメントのタスクをリモートで完了させるべく用いられる組織証明書、対称鍵、および信頼しているホストを設定する。
【００３７】
管理エンジン（ＭＥ）１３０はさらに、ＢＩＯＳ／ホストソフトウェア２１０のユーザ認証モジュール２１２との間でやり取りを行う身元情報管理ファームウェア２３９を持つ。身元情報管理ファームウェア２３９は、ユーザの認証情報をユーザアカウントメタデータ２２３と比較するとしてよい。ユーザアカウントメタデータ２２３は、フラッシュメモリ１９０のデータ領域１９８のユーザ／コンテナメタデータ２３０部分に格納されると図示されている。身元情報管理ファームウェア２３９はさらに、管理エンジン（ＭＥ）１３０のセキュリティ／鍵管理ファームウェア２３７との間でやり取りを行って、チップセット暗号化ストレージデバイス１８０内のブート前認証（ＰＢＡ）デバイス情報コンテナ２８０にもユーザ情報が格納されていることを確認するとしてよい。このようにチップセット暗号化ストレージデバイス１８０に対するユーザのアクセスを確認することによって、チップセット暗号化ストレージデバイス１８０に格納されているデータに対する保護がさらに強化される。
【００３８】
セキュリティ／鍵管理ファームウェア２３７は、上述したようにユーザ認証モジュール２１２との間でやり取りを行なって、プラットフォーム１００に対応付けられているストレージデバイスに格納されているデータへのアクセスが許可される前にユーザを認証する。セキュリティ／鍵管理ファームウェア２３７は、鍵管理情報を管理して、プラットフォームに対応付けられているメモリまたはストレージデバイス、例えば、フラッシュメモリ１９０またはチップセット暗号化ストレージデバイス１８０にこの鍵管理情報を格納する。鍵管理情報が格納される場所は、利用可能なストレージ空間および格納されるべきデータの量に応じて決まり、本発明は鍵管理情報を格納する構成について特定の構成に限定されるものではない。一実施形態によると、セキュリティ／鍵管理ファームウェア２３７は、プラットフォーム１００に結び付けられているプラットフォームコンテナ鍵（ＰＣＫ）を用いて鍵管理情報を暗号化する。
【００３９】
セキュリティ／鍵管理ファームウェア２３７が管理する鍵管理情報は、チップセット（つまり、チップセット１２０内の暗号化エンジン１５０）によって生成され、メタデータ１８２に格納されている、デバイス暗号鍵（ＤＥＫ）１８４と呼ばれる暗号鍵を含む。セキュリティ／鍵管理ファームウェア２３７が管理するその他の種類の鍵には、例えばホスト暗号化ソフトウェア２１４によって生成される一時デバイス暗号鍵（ＴＤＥＫ）２８２および２９２として図示されている暗号鍵が含まれる。ＴＤＥＫ２８２は、チップセット暗号化ストレージデバイス１８０内の直接管理デバイス情報コンテナ２８０に格納されており、ＴＤＥＫ２９２はフラッシュメモリ１９０の間接管理デバイス情報コンテナ２９０に格納されていることが図示されている。「直接管理」という表現を用いているのは、チップセット１２０によって直接暗号化されていると共に管理エンジン（ＭＥ）１３０によって管理されているデバイスを意味している。一方で、「間接管理」という表現を用いているのは、当該デバイスはチップセット１２０によって暗号化されていないが当該デバイスに格納されているデータの暗号鍵は管理エンジン（ＭＥ）１３０によって管理されていることを意味している。セキュリティ／鍵管理ファームウェア２３７の動作については、さらに詳細に後述する。
【００４０】
管理エンジン（ＭＥ）１３０はさらに、盗難抑止ファームウェア２３５を持つと図示されている。盗難抑止ファームウェア２３５は、図１のエンタープライズサービス１６２等の中央サーバによって、盗難通知イベント等のイベントに応答するように構成され得る。このような盗難通知イベントは、例えば、失敗に終わったログインの回数が最大値に達したことを管理エンジン（ＭＥ）１３０が検知した場合、または、ユーザから盗難が報告された場合に、トリガされるとしてよい。一実施形態によると、プラットフォーム１００は、認証された位置からプラットフォームが移動させられると、盗難通知サーバに信号を送信するように構成されている感知ハードウェア（不図示）を備えるとしてよい。盗難通知イベントに応答して、盗難抑止ファームウェア２３５は、盗難の影響を抑制する処理を実行するとしてよい。例えば、プロセッサ１１０またはチップセット１２０の一部をディセーブルしたり、フラッシュメモリ１９０へのアクセスを禁止したり、フラッシュメモリ１９０からデバイス情報コンテナ２９０を削除したり、チップセット暗号化ストレージデバイス１８０のメタデータ１８２の内容を削除したり、または、デバイス情報コンテナ２９０、フラッシュメモリ１９０、メタデータ１８２、および／あるいは、チップセット暗号化ストレージデバイス１８０のデバイス情報コンテナ２８０の中身へのアクセスをプログラムを用いて禁止するとしてよい。
【００４１】
盗難抑止ファームウェア２３５は、デバイス情報コンテナ２８０および２９０が有するデータを管理する。一例を挙げると、デバイス情報コンテナ２８０および２９０は、一時デバイス暗号鍵（ＴＤＥＫ）２８２および２９２、例えば、非チップセット暗号化ストレージデバイス１７２を暗号化および復号化するべくホスト暗号化ソフトウェア２１４が用いる鍵を持つ。非チップセット暗号化ボリューム暗号鍵はさらに、ストレージのハードウェア自体によって生成されて、管理エンジン（ＭＥ）１３０のセキュリティ／鍵管理ファームウェア２３７によってデバイス情報コンテナ２８０および２９０に格納されている暗号鍵を含むとしてよい。盗難抑止ファームウェア２３５の動作については、さらに詳細に後述する。
【００４２】
デバイス情報コンテナ２８０および２９０はそれぞれ、対応するマイグレーションパッケージ２８０Ｍおよび２９０Ｍを含むものと図示されている。マイグレーションパッケージ２８０Ｍおよび２９０Ｍは、プラットフォーム１００に対応付けられている全てのストレージデバイスについての暗号鍵の共通レポジトリを提供するべく、管理エンジン１３０およびセキュリティ／鍵管理ファームウェア２３７によって用いられる。一実施形態によると、チップセット暗号化ストレージデバイス１８０および非チップセット暗号化ストレージデバイス１７２の鍵情報はそれぞれ、マイグレーションパッケージ２８０Ｍおよび２９０Ｍに格納されている。マイグレーションパッケージ２８０Ｍおよび２９０Ｍに格納されている鍵の種類については、図３を参照しつつさらに詳細に説明する。
【００４３】
図３は、ストレージデバイスに格納されているデータを暗号化するための暗号鍵同士の関係を示す図である。一実施形態によると、図２のセキュリティ／鍵管理ファームウェア２３７は、任意のデバイス暗号鍵（ＤＥＫ）３１０−３１０ｎまたは一時デバイス暗号鍵（ＴＤＥＫ）３２０ａ−３２０ｎを、デバイスラッピング鍵（ＤＷＫ）３３０と呼ばれる別の鍵を用いて、さらにラッピング（暗号化）することによって、対応付けられたストレージデバイスが盗難されないように保護する。ＤＷＫは、例えば、動的に取得される２つの値から導き出されるとしてよい。第１の値は、ユーザから取得されるパスフレーズである。第２の値は、製造時にハードウェアに埋め込まれた、ヒューズ鍵とも呼ばれる、チップセット鍵である。各チップセット鍵は、特定のプラットフォームに固有であるが、外部からは読み出せない。パスフレーズおよびチップセット鍵は、デバイスラッピング鍵（ＤＷＫ）を出力する公共鍵暗号化基準（ＰＫＣＳ＃５）鍵導出関数に与えられる。デバイスラッピング鍵（ＤＷＫ）はシステムに電源が入れられる度に導き出されるので、ＤＷＫ内部にラッピングされているＤＥＫまたはＴＤＥＫを取得するためには、盗難者はユーザのパスフレーズを知っていなければならないと共にデバイスラッピング鍵（ＤＷＫ）のラッピングを解除するチップセット鍵へのアクセスを有していなければならない。
【００４４】
このため、上述したようなデバイスラッピング鍵（ＤＷＫ）を用いて暗号化されたストレージデバイスは、ＤＥＫまたはＴＤＥＫをラッピングするためにチップセット鍵／ヒューズ鍵を利用しているので、データを暗号化したプラットフォームに結び付けられる。このようにデバイスをプラットフォームに結びつけることによって、チップセット暗号化ストレージデバイス１８０または非チップセット暗号化ストレージデバイス１７２のようなストレージデバイスを、攻撃者が、ストレージデバイスに格納されているデータの暗号化の回避を試みるための攻撃ツールキットが利用可能な別のプラットフォームに入れないようにする。
【００４５】
一実施形態によると、デバイスラッピング鍵（ＤＷＫ）３３０は、別の鍵を用いてさらにラッピングされて、チップセット１２０内にある間を除いてＤＷＫがクリア状態になることがないようにする。このような別の鍵には、ユーザ鍵３４０ａおよび３４０ｂが含まれる。デバイスラッピング鍵（ＤＷＫ）３３０、ならびに、ＤＷＫがラッピングするＤＥＫおよびＴＤＥＫといった暗号鍵のラッピングを解除するためには、プラットフォームのユーザは上述したように認証されなければならない。
【００４６】
セキュリティ／鍵管理ファームウェア２３７によって生成されたデバイスラッピング鍵（ＤＷＫ）はプラットフォームに結び付けられているので、ストレージデバイスを別のプラットフォームにマイグレーションさせるには別の方法が必要となる。例えば、元々のプラットフォームが動作不可能に陥った場合、別のプラットフォームにハードドライブをマイグレーションさせる必要がある。このようなマイグレーションは、例えば管理エンジン（ＭＥ）１３０と共に図１に示したエンタープライズサービス１６２を用いることで実行されるとしてよい。エンタープライズサービス１６２は、回復サーバおよび／またはマイグレーションサーバを提供するとしてよい。
【００４７】
一実施形態によると、データ回復を容易にするべく、セキュリティ／鍵管理ファームウェア２３７はさらに、別のプラットフォームで利用され得るプラットフォーム非依存性の鍵（図３には不図示）を生成する。このようなプラットフォーム非依存性の鍵は通常、少なくとも２５６ビットの乱数であるトークンによってラッピングされて、マイグレーション鍵３５０を生成する。セキュリティ／鍵管理ファームウェア２３７は、このマイグレーション鍵３５０を用いてデバイスラッピング鍵（ＤＷＫ）３３０をラッピングして、プラットフォーム間での暗号化ストレージデバイスのマイグレーションを容易にするとしてよい。マイグレーション鍵３５０もまた、プラットフォームの特定のユーザには依存していないので、ユーザアカウント情報が破損して、デバイスラッピング鍵（ＤＷＫ）３３０のラッピングを解除するためにユーザ鍵３４０ａおよび３４０ｂを利用できない場合、デバイスラッピング鍵（ＤＷＫ）３３０の回復を容易にするとしてよい。
【００４８】
一実施形態によると、プラットフォーム非依存性のマイグレーション鍵３５０は、マイグレーションパッケージ２８０Ｍおよび２９０Ｍに格納されており、マイグレーション鍵３５０を生成するべく用いられたトークンは、リモートセキュアサーバに格納されるとしてよい。一実施形態によると、データのマイグレーションおよび回復をさらに容易にするべく、プラットフォームに結び付けられているデバイスラッピング鍵（ＤＷＫ）３３０の複製をリモートセキュアサーバに格納する。このようにすることでデバイスラッピング鍵（ＤＷＫ）３３０を、ラッピングした一時デバイス暗号鍵（ＴＤＥＫ）３２０ａ−３２０ｎおよびデバイス暗号鍵（ＤＥＫ）３１０ａ−３１０ｎを復号化するべく用いることができる。
【００４９】
図３に示すようにすべてのＤＥＫ３１０ａ−３１０ｎおよびＴＤＥＫ３２０ａ−３２０ｎを同一のデバイスラッピング鍵でラッピングすることによって、管理エンジン（ＭＥ）１３０および／またはセキュリティ／鍵管理ファームウェア２３７は、プラットフォームに対応付けられている全てのストレージデバイスを一度にアンロックすることができる。このような共通のラッピング鍵ＤＷＫ３３０によれば、個々のストレージデバイスは独自の暗号鍵ＤＥＫ３１０ａ−３１０ｎおよびＴＤＥＫ３２０ａ−３２０ｎを持っているとしても、ストレージデバイスのロック粒度はプラットフォーム単位で実行し得るものとすることができる。ストレージデバイスのアンロックについては、図７を参照しつつさらに詳細に後述し、ストレージデバイスの初期化については、図６を参照しつつさらに詳細に後述する。
【００５０】
図４は、プラットフォーム１００のストレージデバイスへのアクセスを制御する場合の、図２のコンポーネント同士のやり取りを示すデータフロー図である。動作４．１において、ユーザ認証モジュール２１２および身元情報管理ファームウェア２３９は、上述したようなやり取りを行なって、ユーザデータ４１０を認証する。動作４．２において、ユーザ認証モジュール２１２は、ユーザデータ４１０をセキュリティ／鍵管理ファームウェア２３７に与える。動作４．３において、セキュリティ／鍵管理ファームウェア２３７は、ユーザデータ４１０を、フラッシュメモリ１９０のデータ領域１９８のユーザ／コンテナメタデータ２３０にあるユーザアカウントメタデータ２２３にあるユーザデータと比較して、ユーザデータが一致していることが分かれば、コンテナ鍵２２０を取得する。コンテナ鍵２２０は、セキュリティ／鍵管理ファームウェア２３７によって格納されている鍵管理情報を復号化するべく用いられる。例えば、コンテナ鍵２２０は、プラットフォーム１００に結び付けられているプラットフォームコンテナ鍵（ＰＣＫ）として実装されるとしてよい。
【００５１】
動作４．４において、セキュリティ／鍵管理ファームウェア２３７は、コンテナ鍵２２０を用いて、チップセット暗号化ストレージデバイス１８０内のメタデータ１８２を、デバイス暗号鍵（ＤＥＫ）１８４を含めて復号化する。セキュリティ／鍵管理ファームウェア２３７は、ＤＥＫ１８４を用いて、チップセット暗号化ストレージデバイス１８０内に格納されているデータを復号化する。コンテナ鍵２２０はさらに、デバイス情報コンテナ２８０に含まれているデータを、ＴＤＥＫ２８２を含めて、復号化するべく用いられる。動作４．５において、セキュリティ／鍵管理ファームウェア２３７は、盗難抑止ファームウェア２３５との間でやり取りを行なって、プラットフォーム１００に対応付けられているストレージデバイスが盗難通知に基づいてアクセス不能になっていないことを確かめる。動作４．６において、盗難抑止ファームウェア２３５は、デバイス情報コンテナ２９０にアクセスして、プラットフォーム１００に対応付けられているストレージデバイスの状態に関する情報を取得する。盗難が検出あるいは報告されている場合、または、盗難通知を受け取っている場合、セキュリティ／鍵管理ファームウェア２３７は、プラットフォーム１００へのアクセスを拒絶する等の救済措置をとるべく、盗難抑止ファームウェア２３５に制御を移行する。プラットフォーム１００へのアクセスを拒絶するべく実行し得る動作には、ハードウェアをディセーブルすること、鍵および／あるいは鍵コンテナを削除すること、マイグレーションパッケージへのアクセスを拒絶すること、ならびに／または、鍵および／あるいは鍵コンテナへのアクセスを拒絶することが含まれるとしてよい。鍵および／あるいは鍵コンテナを削除すること、または、鍵および／あるいは鍵コンテナへのアクセスをディセーブルすることによって、鍵コンテナを復号化しようとする不正な試みを阻止することができる。
【００５２】
さらに図４を参照しつつ説明を続けると、動作４．７において、盗難通知を受け取っていない場合、セキュリティ／鍵管理ファームウェア２３７は、コンテナ鍵２２０を用いて、一時デバイス暗号鍵（ＴＤＥＫ）２９２を含むデバイス情報コンテナ２９０内に格納されているデータを復号化する。ここで、一時デバイス暗号鍵（ＴＤＥＫ）２９２は、非チップセット暗号化ストレージデバイス１７２に格納されているデータを暗号化するためにホスト暗号化ソフトウェア２１４または元々のストレージのハードウェアによって用いられる暗号鍵を含む得ることに留意されたい。動作４．８において、セキュリティ／鍵管理ファームウェア２３７は、一時デバイス暗号鍵（ＴＤＥＫ）２９２をホスト暗号化ソフトウェア２１４に与えて、動作４．９において、ホスト暗号化ソフトウェア２１４は非チップセット暗号化ストレージデバイス１７２を復号化する。一時デバイス暗号鍵（ＴＤＥＫ）２９２が元々のストレージのハードウェアによって生成されている場合、ＴＤＥＫ２９２は非チップセット暗号化ストレージデバイス１７２のデータを復号化するべく用いられ得る。
【００５３】
このため、ユーザは、システムに１回ログインすると、チップセット暗号化ストレージデバイス１８０および非チップセット暗号化ストレージデバイス１７２に格納されている暗号化データにアクセスできる。管理エンジン１３０のセキュリティ／鍵管理ファームウェア２３７は、チップセットによって暗号化されたデバイスおよびプラットフォームのチップセットによっては暗号化されていないデバイス両方の復号化のための鍵を制御することによって、プラットフォーム１００に対応付けられているストレージデバイスに格納されているデータを包括的に保護する。デバイスへのユーザアクセスを制御するべく身元情報管理ファームウェア２３９と協働し、且つ、盗難通知に応答するべく盗難抑止ファームウェア２３５と協働することによって、保護されているプラットフォームに対応付けられているデータの安全性が保証される。
【００５４】
図５は、本発明の一実施形態に係る、デバイスアクセスイベントの処理に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。図５に示すステップは、管理エンジン（ＭＥ）１３０および／または管理エンジン（ＭＥ）１３０の構成要素であるセキュリティ／鍵管理ファームウェア２３７によって実行されるものとして説明される。「デバイスアクセスイベント」ステップ５１０において、管理エンジン（ＭＥ）１３０は、プラットフォームのリセット、または、非チップセット暗号化ストレージデバイス１７２等のデバイスのプラットフォームへのホットプラグなどを表すデバイスアクセスイベントを受け取る。そして、「デバイスはチップセットによって暗号化されているか」の判断ポイント５１２に進み、挿入されたデバイスがチップセットによって暗号化されているか否かを判断する。このような判断を行なうには、メタデータ１８２等のメタデータがストレージデバイスにあるか否かを確認するとしてよい。デバイスがチップセットによって暗号化されていれば、「デバイスメタデータ内でデバイス暗号鍵（ＤＥＫ）を検索」ステップ５２０に進む。ストレージデバイスのメタデータ１８２内でＤＥＫ１８４を検索して、「ＤＥＫ発見？」判断ポイント５２２へ進む。ＤＥＫが発見されていれば、「ＤＥＫを用いてデバイスをアンロック」ステップ５２４へと進む。デバイスをアンロックして、「デバイスはアンロック済み」状態５５０へと進む。デバイスのアンロックは、図７を参照しつつさらに詳細に説明する。「ＤＥＫ発見？」判断ポイント５２２においてＤＥＫが発見されていなければ、「アンロック失敗」状態５６０に進む。「アンロック失敗」状態５６０では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。
【００５５】
「デバイスはチップセットによって暗号化されているか」の判断ポイント５１２において、挿入されたデバイスがチップセットによって暗号化されていない場合、「デバイスはソフトウェアによって暗号化されているか」の判断ポイント５１４に進む。デバイスがソフトウェアによって暗号化されているか否かの判断は、例えば、デバイスの識別子と、直接管理デバイス情報コンテナ２８０および間接管理デバイス情報コンテナ２９０等のデバイス情報コンテナ内のデバイス識別子との比較に基づいて行なうとしてよい。デバイス識別子がデバイス情報コンテナのうち１つで見つかった場合、「デバイス情報コンテナ内で一時デバイス暗号鍵（ＴＤＥＫ）を検索」ステップ５３０に進む。デバイス情報コンテナ内を検索して、「ＴＤＥＫ発見？」判断ポイント５３２に進む。ＴＤＥＫが発見されていれば、「ＴＤＥＫを用いてデバイスをアンロック」ステップ５３４に進む。デバイスをアンロックして、「デバイスはアンロック済み」状態５５０へと進む。デバイスのアンロックは、図７を参照しつつさらに詳細に説明する。
【００５６】
「ＴＤＥＫ発見？」判断ポイント５３２においてソフトウェアで暗号化されたデバイスのＴＤＥＫが見つからない場合、「他のデバイス情報コンテナのメタデータ内でＴＤＥＫを検索」ステップ５３６に進む。他のデバイス情報コンテナのメタデータが存在すれば、そのメタデータ内を検索して、「ＴＤＥＫ発見？」判断ポイント５３８へと進む。他のデバイス情報コンテナのメタデータが存在しなければ、「ＴＤＥＫ発見？」判断ポイント５３８へと進む。ソフトウェアで暗号化されたデバイスのＴＤＥＫが見つからなかった場合、「ＴＤＥＫ発見？」判断ポイント５３８から、「アンロック失敗」状態５６０に進む。「アンロック失敗」状態５６０では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。ソフトウェアで暗号化されたデバイスのＴＤＥＫが見つかった場合、「ＴＤＥＫ発見？」判断ポイント５３８から、「ＴＤＥＫを用いてデバイスをアンロック」ステップ５３４に進み、その後は上述したように進む。
【００５７】
「デバイスはソフトウェアによって暗号化されているか」の判断ポイント５１４において、デバイスがソフトウェアによって暗号化されていないと判断されれば、「デバイスは自身で暗号化されているか？」の判断ポイント５１６に進む。デバイスが自身で暗号化されているか否かの判断は、例えば、ＡＴＡセキュリティコマンドを発行することによって、実行するとしてよい。デバイスが自身で暗号化されていれば、「アンロックコマンド送信」ステップ５４０に進み、アンロックコマンドがデバイスに送信される。デバイスはアンロックされて、「デバイスはアンロック済み」状態５５０へと進む。
【００５８】
「デバイスは自身で暗号化されているか？」の判断ポイント５１６において、デバイスが自身で暗号化されていないとなった場合、「アンロック失敗」状態５６０に進む。デバイスはアンロックされない。「デバイスアクセスイベント」ステップ５１０から開始されたデバイスアクセスイベントの処理は、デバイスをアンロックすることなく、完了する。
【００５９】
図６は、本発明の一実施形態に係る、デバイス初期化イベントの処理に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。図６に示すステップは、管理エンジン（ＭＥ）１３０および／または管理エンジン（ＭＥ）１３０の構成要素であるセキュリティ／鍵管理ファームウェア２３７によって実行されるものとして説明される。「デバイス初期化イベント」ステップ６１０において、管理エンジン（ＭＥ）１３０は、デバイス初期化イベントを受け取る。「デバイス暗号鍵を生成？」の判断ポイント６２０に進む。初期化すべきデバイスについて暗号鍵を生成すべき場合、「暗号鍵（ＤＥＫまたはＴＤＥＫ）生成」ステップ６２２に進む。暗号鍵は、例えば、乱数生成器を用いて生成するとしてよい。そして、「デバイスラッピング鍵（ＤＷＫ）を用いて暗号鍵をラッピング」ステップ６２４に進む。例えば、図３のＤＥＫ３１０ａ−３１０ｎのうち１つ等のデバイス暗号鍵（ＤＥＫ）、または、図３のＴＤＥＫ３２０ａ−３２０ｎのうち１つ等の一時デバイス暗号鍵（ＴＤＥＫ）を、図３のＤＷＫ３３０等のデバイスラッピング鍵（ＤＷＫ）を用いてラッピングする。
【００６０】
「デバイスラッピング鍵（ＤＷＫ）を用いて暗号鍵をラッピング」ステップ６２４から、「チップセットで生成されたＤＥＫ？」判断ポイント0へ進み、チップセット暗号化ストレージデバイス１８０のＤＥＫ１８４等の暗号鍵が、チップセットによって生成されたか否かを判断する。暗号鍵がチップセットによって生成されていれば、「ラッピングされたＤＥＫをデバイスのメタデータに格納」ステップ６２８に進み、デバイスに直接ＤＥＫを格納する。例えば、ＤＥＫ１８４をチップセット暗号化ストレージデバイス１８０のメタデータ１８２に格納する。そして、「マイグレーショントークンを用いてＤＷＫをラッピング」ステップ６３０に進み、ＤＷＫをさらに、プラットフォーム非依存性のマイグレーショントークンを用いてラッピングして、図３のマイグレーション鍵３５０のようなマイグレーション鍵を生成する。そして、「マイグレーションパッケージをデバイスメタデータに格納」ステップ６３２に進み、マイグレーション鍵およびその他のマイグレーションデータを、マイグレーションパッケージとして、デバイスメタデータに格納する。例えば、マイグレーションパッケージ２８０Ｍは、チップセット暗号化ストレージデバイス１８０のメタデータ１８２内に格納される。デバイスの初期化はこうして、「デバイスは初期化済み」ステップ６４０への遷移で図示するように、完了する。
【００６１】
「チップセットによって生成された鍵？」判断ポイント６２６において、暗号鍵がチップセットによって生成されていない場合、「メタデータ格納領域はデバイス外で利用可能？」判断ポイント６５０に進む。デバイスメタデータを格納するための格納領域がデバイス外で、例えば、デバイス情報コンテナ等で利用可能な場合、「メタデータ格納領域にラッピングされた暗号鍵を格納」ステップ６５２に進む。ラッピングされた暗号鍵は、例えば、デバイス情報コンテナ、例えばデバイス情報コンテナ２８０または２９０に格納されるとしてよい。そして、「マイグレーショントークンを用いてＤＷＫをラッピング」ステップ６５４に進み、マイグレーショントークンを用いてＤＷＫをラッピングして、図３のマイグレーション鍵３５０のようなマイグレーション鍵を生成する。そして、「メタデータ格納領域にマイグレーションパッケージを格納」ステップ６５６に進み、マイグレーション鍵およびその他のマイグレーションデータを、例えば、マイグレーションパッケージ２９０Ｍのようなマイグレーションパッケージの一部として、フラッシュメモリ１９０のデータ領域１９８に格納する。そして、「デバイスは初期化済み」ステップ６４０に進み、デバイスの初期化が完了する。
【００６２】
「メタデータ格納領域はデバイス外で利用可能？」判断ポイント６５０において、デバイス外でメタデータ格納領域が利用可能でない場合、「ラッピングされた暗号鍵をデバイス上のメタデータに格納」ステップ６２８に移行する。ラッピングされたＴＤＥＫは、例えば、直接管理デバイス情報コンテナ２８０に格納されるＴＤＥＫ２８２のように、デバイス上に直接格納される。そして、「ラッピングされた暗号鍵をデバイス上のメタデータに格納」ステップ６２８から、上述したように、「デバイスは初期化済み」ステップ６４０に進む。
【００６３】
「デバイス暗号鍵を生成？」の判断ポイント６２０において、暗号鍵を生成しないと判断されると、「デバイス暗号鍵を受け取ったか？」ステップ６６０に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っている場合、「デバイスラッピング鍵（ＤＷＫ）を用いて暗号鍵をラッピング」ステップ６２４に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っていない場合、「デバイス初期化は失敗」ステップ６７０に進み、デバイスは初期化されない。
【００６４】
図７は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。「プラットフォームに対してユーザを認証」ステップ７１０から開始され、プラットフォームに対するユーザのアクセスが、上述したように、認証される。「ユーザラッピング鍵を生成」ステップ７２０に進み、３４０ａまたは３４０ｂのようなユーザラッピング鍵を生成する。そして、「ユーザアカウントメタデータのラッピングを解除」ステップ７３０に進み、図４を参照しつつ上述したように、ユーザアカウントメタデータのラッピングを解除する。そして、「デバイスラッピング鍵（ＤＷＫ）のラッピングを解除」ステップ７４０に進み、デバイスラッピング鍵のラッピングを解除する。そして、「ＤＥＫ／ＴＤＥＫメタデータを取得」ステップ７５０に進み、図５を参照しつつ上述したようにＤＥＫ／ＴＤＥＫのメタデータを取得する。そして、「ＤＥＫ／ＴＤＥＫのラッピングを解除」ステップ７６０に進み、デバイス暗号鍵ＤＥＫ／ＴＤＥＫのラッピングを解除する。そして、「デバイスをアンロック」ステップ７７０に進み、デバイスをアンロックする。
【００６５】
図８は、本発明の一実施形態に係る、プラットフォーム間でのデバイスのマイグレーションに関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。「管理者を認証」ステップ８１０から開始され、マイグレーションを実行したい管理者を、本明細書に記載するユーザ認証プロセスと同様の方法で、認証する。そして、「マイグレーショントークンを取得」ステップ８２０に進み、デバイスのマイグレーショントークンを取得する。一実施形態によると、マイグレーショントークンをリモートサーバから取得する。そして、「メタデータからマイグレーションパッケージを取得」ステップ８３０に進み、マイグレーションパッケージをメタデータから取得する。例えば、フラッシュメモリ１９０のデータ領域１９８からマイグレーションパッケージ２９０Ｍを取得するか、または、チップセット暗号化ストレージデバイス１８０のメタデータ１８２からマイグレーションパッケージ２８０Ｍを取得する。
【００６６】
そして、「デバイスラッピング鍵（ＤＷＫ）のラッピングを解除」ステップ８４０に進み、デバイスラッピング鍵のラッピングを解除する。そして、「ＤＥＫ／ＴＤＥＫメタデータを取得」ステップ８５０に進み、ＤＥＫ／ＴＤＥＫのメタデータを、図５を参照しつつ上述したように、取得する。そして、「ＤＥＫ／ＴＤＥＫのラッピングを解除」ステップ８６０に進み、デバイス暗号鍵ＤＥＫ／ＴＤＥＫのラッピングを解除する。そして、「デバイスをアンロック」ステップ８７０に進み、デバイスをアンロックする。
【００６７】
図９は、本発明の一実施形態に係る、盗難にあったプラットフォームの処理に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。「プラットフォームの盗難をアサート」ステップ９１０から開始され、管理エンジン（ＭＥ）１３０が、プラットフォームが盗難に遭った旨のアサーションを発行する。このアサーションは、例えば、図１のエンタープライズサービス１６２内の盗難検出サーバによって、ブロードキャストされるとしてよい。そして、「盗難プラットフォームイベントを配信」ステップ９２０に進み、盗難プラットフォームイベントが、盗難に遭ったプラットフォームに配信される。このイベントは、図１のエンタープライズサービス１６２内の盗難検出サーバによって生成および配信されるとしてよい。
【００６８】
「盗難プラットフォームイベントを配信」ステップ９２０から、「ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要？」判断ポイント９３０に進み、エンタープライズポリシーでは盗難に遭ったプラットフォームの鍵を全て削除する必要があるか否か判断する。エンタープライズポリシーで鍵の削除が求められている場合には、「ＤＥＫを含むデバイスメタデータ、および、ＴＤＥＫを含むその他のメタデータまたはデバイス情報コンテナを削除」ステップ９４０に進み、チップセット暗号化ストレージデバイス１８０のメタデータ１８２およびデバイス情報コンテナ２８０および２９０のようなデバイスメタデータも含め、全てのメタデータレポジトリから全ての鍵を削除する。鍵の削除は、鍵を含むコンテナ全体の削除を含むとしてよい。
【００６９】
「ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要？」判断ポイント９３０において、ポリシーでは鍵の削除が必要ない場合、「他の盗難管理対策を講じる」ステップ９５０に進み、エンタープライズポリシーに従って盗難に遭ったプラットフォームに対して他の対策を講じるとしてよい。
【００７０】
図１０は、本発明の一実施形態に係る、盗難にあったプラットフォームの回復に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。「盗難に遭ったプラットフォームが所有者に戻る」ステップ１０１０から開始され、盗難に遭ったプラットフォームが所有者の元に戻ってくる。「プラットフォームに対して所有者を認証」ステップ１０２０に進み、プラットフォームに対して所有者の認証を行う。そして、「デバイスラッピング鍵（ＤＷＫ）を含むマイグレーションパッケージのラッピングを解除」ステップ１０３０に進み、マイグレーションパッケージのラッピングを解除して、図３のＤＷＫ３３０のようなＤＷＫを生成する。そして、「ＤＥＫ／ＴＤＥＫメタデータを取得」ステップ１０４０に進み、ＤＥＫ／ＴＤＥＫメタデータを、図５を参照しつつ上述したように、取得する。そして、「ＤＥＫ／ＴＤＥＫのラッピングを解除」ステップ１０５０に進み、デバイス暗号鍵ＤＥＫ／ＴＤＥＫのラッピングが解除される。そして、「デバイスをアンロック」ステップ１０６０に進み、デバイスがアンロックされる。
【００７１】
図１１は、本発明の一実施形態に係る、プラットフォーム１００のアクセス制御コンポーネントの動作を示すフローチャートである。「プラットフォームへのユーザアクセスを認証」ステップ１１１０において、プラットフォームに対してアクセスを要求しているユーザに関するユーザデータ、例えば、パスワード、バイオメトリクスデータ、またはスマートカード情報等の認証を、ユーザ認証モジュール２１２と身元情報管理ファームウェア２３９との組み合わせを参照しつつ上述したように実行する。この認証は、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  ＤｉｒｅｃｔｏｒｙまたはＬＤＡＰサーバ等の身元情報管理サーバでユーザの身元情報を確認して、プラットフォーム１００に対応付けられているストレージデバイスに格納されている企業データに対するアクセス権限をユーザが持つことを確かめることを含むとしてよい。ユーザの認証はさらに、プラットフォームに対応付けられているプラットフォームおよび／またはストレージデバイスが紛失または盗難に遭っていないことを盗難抑止ファームウェア２３５で確認することを含むとしてよい。
【００７２】
ユーザのデータが認証されてプラットフォームへのアクセスが確認されると、「プラットフォームに対応付けられたストレージデバイスへのユーザアクセスを認証」ステップ１１２０に進む。認証は、チップセット暗号化ストレージデバイス１８０および非チップセット暗号化ストレージデバイス１７２の両方に対するユーザアクセスについて、行われる。この確認は、ユーザのデータが上述したようにフラッシュメモリ１９０にあることを確かめることだけでなく、ユーザのデータがさらにチップセット暗号化ストレージデバイス１８０に格納されているデバイス情報コンテナ２８０にもあることを確かめることも含むとしてよい。プラットフォームに対応付けられているストレージデバイスにアクセスする権限をユーザが持つことを確認すると、対応付けられているストレージデバイスに格納されているデータにユーザをアクセスさせるためのプロセスが継続して実行される。
【００７３】
プラットフォームに対応付けられているストレージデバイスに対してユーザがアクセスできることが確認されると、「チップセット暗号化ストレージデバイスを復号化」ステップ１１３０に進む。チップセット暗号化ストレージデバイス１８０に格納されているデータの復号化は、チップセット暗号化ストレージデバイスのメタデータに格納されているデバイス暗号鍵（ＤＥＫ）を用いて実行される。「暗号化コンテナ用の鍵を取得」ステップ１１４０に進み、鍵管理情報を含む暗号化コンテナの暗号鍵を格納する。上述したように、一実施形態によると、これらのコンテナ鍵は、図２および図３のフラッシュメモリ１９０のデータ領域１９８内のユーザ／コンテナメタデータ２３０のユーザアカウントメタデータ２２３から取得される。そして、「コンテナを復号化」ステップ１１５０に進み、図３を参照しつつ上述したように、コンテナ鍵２２０をさらに、セキュリティファームウェアメタデータを含むデバイス情報コンテナ２８０、および、非チップセット暗号化ストレージデバイス１７２用の一時デバイス暗号鍵（ＴＤＥＫ）２９２を含むデバイス情報コンテナ２９０の両方を復号化するべく用いる。
【００７４】
ステップ１１３０−１１５０においてチップセット暗号化ストレージデバイスおよびコンテナを復号した後、「他のデバイスの一時デバイス暗号鍵をコンテナから取得」ステップ１１６０に進む。上述したように、デバイス情報コンテナ２９０はさらに、プラットフォームのチップセットでは暗号化されていないデバイスの暗号鍵を含む。そして、「他のデバイスの一時デバイス暗号鍵を用いて他のストレージデバイスを復号化」ステップ１１７０に進む。ホスト暗号化ソフトウェア２１４のようなホスト暗号化ソフトウェアによって暗号化されたデータの場合は、元々の復号鍵はホスト暗号化ソフトウェアに転送されて、他のストレージデバイスに格納されているデータが復号化される。
【００７５】
図１１を参照しつつ説明したステップは、プラットフォーム１００に対応付けられているストレージデバイスに格納されているデータへのアクセスを制御する。本明細書に記載されているデータへのアクセスを制御するためのフレームワークおよびインフラストラクチャはさらに、プラットフォーム間でのデータおよびストレージデバイスのマイグレーションをサポートすると共に、鍵回復処理および盗難通知処理をサポートする。チップセット暗号化デバイスおよび非チップセット暗号化デバイスの両方の暗号鍵を管理する共通フレームワークを提供することによって、どちらのタイプのデバイスも、１回のマイグレーションイベント、回復イベント、または盗難効果抑止イベントで、マイグレーションさせることが可能となる。
【００７６】
さらに、ストレージデバイスに対応付けられているユーザ毎に暗号鍵を格納することによって、データおよび／またはストレージデバイスは、ユーザ単位の粒度で、マイグレーションおよび／または回復を行うことができる。対象となるプラットフォームのデータへのアクセスは、当該プラットフォームのユーザアカウント情報に選択されたユーザのみを含むことによって、これらの選択されたユーザに限定することができる。中央集権的な身元情報管理サービスは、対象となるプラットフォームへのアクセスが適切であるかを各ユーザについて確認するべく照合され得る。中央集権的な盗難管理サービスもまた、ストレージデバイスが盗難に遭っていないことを確認するべく利用され得る。フレームワークはＵＳＢストレージデバイス等のスタンドアローンなストレージデバイスの暗号鍵も含むので、これらのスタンドアローンな暗号化デバイスに対するアクセスを、当該ストレージデバイスがプラットフォームに取り付けられていようといまいと、ディセーブルすることができる。このため、盗難に遭ったＵＳＢデバイスは、正当なユーザがログインするまで、または、管理者が盗難通知を破棄するまで、ディセーブルされ得る。
【００７７】
図５は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００７８】
図６は、本発明の一実施形態に係る、デバイスの初期化に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００７９】
図７は、本発明の一実施形態に係る、デバイスに格納されているデータの暗号鍵を取得した後のデバイスのアンロックに関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００８０】
図８は、本発明の一実施形態に係る、デバイスのマイグレーションに関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００８１】
図９は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの処理に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００８２】
図１０は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの回復に関連する、図１の管理エンジン（ＭＥ）の動作を示すフローチャートである。
【００８３】
本明細書に記載するメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、または、これらの実装方法の組み合わせによって実装されるとしてよい。本発明の実施形態は、少なくとも１つのプロセッサと、データストレージシステム（揮発性および不揮発性メモリおよび／またはストレージ素子を含む）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを備えるプログラム可能システムにおいて実行されるコンピュータプログラムとして実装され得る。
【００８４】
プログラムコードを入力データに適用して、本明細書に記載した機能を実行すると共に出力情報を生成するとしてよい。本発明の実施形態はさらに、本発明の動作を実行するための命令、または、本明細書に記載した構造、回路、装置、プロセッサ、および／または、システムの構成要素を定義するＨＤＬ等のデザインデータを含む機械アクセス可能媒体を含む。このような実施形態は、プログラム製品とも呼ばれる。
【００８５】
上述した機械アクセス可能格納媒体は、これらに限定されないが、機械またはデバイスによって製造または形成される有形の粒子の配置、例えば、ハードディスク等の格納媒体、フロッピー（登録商標）ディスクを含むその他の任意の種類のディスク、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）、および光磁気ディスク、リードオンリーメモリ（ＲＯＭ）等の半導体デバイス、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラム可能リードオンリーメモリ（ＥＰＲＯＭ：登録商標）、フラッシュプログラム可能メモリ（ＦＬＡＳＨ）、電気的消去可能プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ（登録商標））、磁気カードまたは光カード、または電子命令を格納するのに適したその他の任意の種類の媒体を含むとしてよい。
【００８６】
出力情報は、公知の方法で、１以上の出力デバイスに適用されるとしてよい。本願の目的に鑑みれば、処理システムは、例えば、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）またはマイクロプロセッサ等のプロセッサを備えるシステムであればどのようなシステムをも含む。
【００８７】
プログラムは、処理システムとの通信を実現するべく、高級プロシージャ言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムはさらに、所望されれば、アセンブリ言語または機械言語で実装されるとしてもよい。尚、本明細書に記載するメカニズムの範囲は、特定のプログラミング言語に限定されるものではない。どの場合であっても、コンパイラ方式またはインタプリタ方式の言語であってよい。
【００８８】
本明細書では、プラットフォームに対応付けられるストレージデバイスに格納されているデータを包括的に保護するための方法およびシステムの実施形態を記載している。本発明の実施形態を具体的に図示および説明してきたが、本願の特許請求の範囲から逸脱することなく、多くの点で変更、変形および修正を加えることができるのは当業者には明らかである。従って、当業者であれば、本発明を幅広く解釈した場合にその範囲から逸脱することなく、変更および変形が可能であると想到するであろう。本願の特許請求の範囲は、本発明の真の範囲および精神に含まれる上述したような変更、変形および修正を全て網羅する。
【図１】
2010191946.tif 000003
【図２】
2010191946.tif 000004
【図３】
2010191946.tif 000005
【図４】
2010191946.tif 000006
【図５】
2010191946.tif 000007
【図６】
2010191946.tif 000008
【図７】
2010191946.tif 000009
【図８】
2010191946.tif 000010
【図９】
2010191946.tif 000011
【図１０】
2010191946.tif 000012
【図１１】
2010191946.tif 000013
【手続補正書】
【提出日】平成22年2月17日(2010.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する段階を備える方法であって、
前記制御する段階は、前記第１のプラットフォームにアクセスするユーザを認証する段階を有し、
前記第１のプラットフォームは、前記複数のストレージデバイスのうちの１つである第１のストレージデバイスと、前記複数のストレージデバイスのうちの１つである第２のストレージデバイスと、チップセット暗号化ハードウェアと、メモリとを有し、
前記第１のストレージデバイスに格納されている第１のデータは、第１の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、
前記第２のストレージデバイスに格納されている第２のデータは、前記チップセット暗号化ハードウェアによって暗号化されているのではなく、別の暗号化メカニズムによって暗号化されており、
前記第２のデータは、第２の暗号鍵を用いて暗号化されており、
前記制御する段階はさらに、
前記第１のストレージデバイスに格納されている前記第１のデータを復号化する段階と、
前記メモリに格納されているコンテナ用のコンテナ暗号鍵を取得する段階と、
前記コンテナ暗号鍵を用いて、前記メモリに格納されており前記第２の暗号鍵を含む前記コンテナを復号化する段階と、
前記第２の暗号鍵を用いて、前記第２のストレージデバイスに格納されている前記第２のデータを復号化する段階と、
前記第１のデータおよび前記第２のデータに対するアクセスを前記ユーザに許可する段階と
を有する方法。
【請求項２】
プラットフォーム非依存性トークンで前記第１の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第１のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第１のストレージデバイスを第２のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第１のデータを復号化する段階と
をさらに備える請求項１に記載の方法。
【請求項３】
プラットフォーム非依存性トークンで前記第２の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第１のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第２のストレージデバイスを第２のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第２のデータを復号化する段階と
をさらに備える請求項１に記載の方法。
【請求項４】
盗難通知イベントに応じて前記第１のプラットフォームに対するアクセスを拒絶する段階、または、
前記第１のプラットフォームから前記第１の暗号鍵および前記第２の暗号鍵を削除することによって、前記第１のプラットフォームに対する前記アクセスを拒絶する段階
をさらに備える請求項１に記載の方法。
【請求項５】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、
前記第１のプラットフォームの、前記第１の暗号鍵および前記第２の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階、または、
前記第１のプラットフォームの、前記第１のストレージデバイスの第１のマイグレーション鍵および前記第２のストレージデバイスの第２のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階
を有する請求項４に記載の方法。
【請求項６】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、前記第１のプラットフォームのマイグレーションパッケージから、前記第１の暗号鍵および前記第２の暗号鍵のうち少なくとも１つを削除する段階を有する請求項４に記載の方法。
【請求項７】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、前記第１のプラットフォームのハードウェアをディセーブルする段階を有する請求項４に記載の方法。
【請求項８】
前記第１のプラットフォームに対する前記アクセスを拒絶する段階は、前記コンテナに対するアクセスを拒絶する段階を有する請求項４に記載の方法。
【請求項９】
請求項１から請求項８のいずれか１つに記載の方法に含まれる各段階をコンピュータに実行させるためのプログラム。
【請求項１０】
第１のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御する制御モジュールと、
前記第１のプラットフォームにアクセスするユーザを認証する認証モジュールと
を備えるシステムであって、
前記第１のプラットフォームは、前記複数のストレージデバイスのうちの１つである第１のストレージデバイス、前記複数のストレージデバイスのうち１つである第２のストレージデバイス、チップセット暗号化ハードウェア、およびメモリを有し、
前記第１のストレージデバイスで格納されている第１のデータは、第１の暗号鍵を用いて前記チップセット暗号化ハードウェアによって暗号化されており、
前記第２のストレージデバイスに格納されている第２のデータは、前記チップセット暗号化ハードウェアによって暗号化されているではなく、別の暗号化メカニズムによって暗号化されており、
前記第２のデータは、第２の暗号鍵を用いて暗号化されており、
前記システムはさらに、
前記第１のストレージデバイスに格納されている前記第１のデータを復号化する復号化モジュールと、
前記メモリに格納されているコンテナ用のコンテナ暗号鍵を取得する取得モジュールと、
前記コンテナ暗号鍵を用いて、前記メモリに格納されており前記第２の暗号鍵を含む前記コンテナを復号化する第２の復号化モジュールと、
前記第２の暗号鍵を用いて前記第２のストレージデバイスに格納されている前記第２のデータを復号化する利用モジュールと、
前記第１のデータおよび前記第２のデータに対するアクセスを前記ユーザに許可する許可モジュールと
を備えるシステム。
【請求項１１】
プラットフォーム非依存性トークンで前記第１の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第１のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する第２の格納モジュールと、
前記第１のストレージデバイスを第２のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第１のデータを復号化する第３の復号化モジュールと
をさらに備える請求項１０に記載のシステム。
【請求項１２】
プラットフォーム非依存性トークンで前記第２の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第１のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第１のプラットフォーム上ではないセキュアなロケーションに格納する第２の格納モジュールと、
前記第２のストレージデバイスを第２のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第２のプラットフォームで前記第２のデータを復号化する第３の復号化モジュールと
をさらに備える請求項１０に記載のシステム。
【請求項１３】
盗難通知イベントに応じて前記第１のプラットフォームに対するアクセスを拒絶する拒絶モジュール、または、
前記第１のプラットフォームから前記第１の暗号鍵および前記第２の暗号鍵を削除する削除モジュール
をさらに備える請求項１０に記載のシステム。
【請求項１４】
前記第１のプラットフォームの、前記第１の暗号鍵および前記第２の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第２の拒絶モジュール、または、
前記第１のプラットフォームの、前記第１のストレージデバイスの第１のマイグレーション鍵および前記第２のストレージデバイスの第２のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第２の拒絶モジュール
をさらに備える請求項１３に記載のシステム。
【請求項１５】
前記第１のプラットフォームのハードウェアをディセーブルするディセーブルモジュール、または
前記コンテナに対するアクセスを拒絶する第２の拒絶モジュール
をさらに備える請求項１３に記載のシステム。
【外国語明細書】
2010191946.tif 000014
2010191946.tif 000015
2010191946.tif 000016
2010191946.tif 000017
2010191946.tif 000018
2010191946.tif 000019
2010191946.tif 000020
2010191946.tif 000021
2010191946.tif 000022
2010191946.tif 000023
2010191946.tif 000024
2010191946.tif 000025
2010191946.tif 000026
2010191946.tif 000027
2010191946.tif 000028
2010191946.tif 000029
2010191946.tif 000030
2010191946.tif 000031
2010191946.tif 000032
2010191946.tif 000033
2010191946.tif 000034
2010191946.tif 000035
2010191946.tif 000036
2010191946.tif 000037
2010191946.tif 000038
2010191946.tif 000039
2010191946.tif 000040
2010191946.tif 000041
2010191946.tif 000042
2010191946.tif 000043
2010191946.tif 000044
2010191946.tif 000045
2010191946.tif 000046
2010191946.tif 000047
2010191946.tif 000048
2010191946.tif 000049
2010191946.tif 000050
2010191946.tif 000051