暗号化されたストレージデバイスについてのチップセット鍵管理サービスの利用の強制
【課題】第1のプラットフォームに対応付けられている複数のストレージデバイスに格納されているデータに対するアクセスを制御するための方法を提供する。
【解決手段】第1のプラットフォームにアクセスするユーザを認証する段階を備え、第1のプラットフォームは、第1および第2のストレージデバイス180、172と、チップセット暗号化ハードウェア150と、メモリとを有する。ストレージデバイスに格納されているデータは暗号化されており、第1のストレージデバイス180に格納されている第1のデータは、チップセット暗号化ハードウェアによって暗号化されており、第2のストレージデバイス172に格納されている第2のデータは、別の暗号化メカニズムによって暗号化されている。データは、復号化されて、第1のデータおよび第2のデータに対するアクセスがユーザに許可される。
【解決手段】第1のプラットフォームにアクセスするユーザを認証する段階を備え、第1のプラットフォームは、第1および第2のストレージデバイス180、172と、チップセット暗号化ハードウェア150と、メモリとを有する。ストレージデバイスに格納されているデータは暗号化されており、第1のストレージデバイス180に格納されている第1のデータは、チップセット暗号化ハードウェアによって暗号化されており、第2のストレージデバイス172に格納されている第2のデータは、別の暗号化メカニズムによって暗号化されている。データは、復号化されて、第1のデータおよび第2のデータに対するアクセスがユーザに許可される。
【発明の詳細な説明】
【技術分野】
【0001】
著作権に関する情報
本明細書に含まれる内容は、著作権に基づいて保護されている。著作権所有者は、米国特許商標庁の特許ファイルまたは特許レコードに保存されている特許開示内容については何人が複製しようとこれに異を唱えることはないが、それ以外については著作権等に関する全ての権利を保有する。
【0002】
本開示は概して、コンピュータシステムに格納されているデータの保護に関する。
【背景技術】
【0003】
企業が有するデータはますます、移動する機会が増えると共に利用される箇所が多くなり、大量となってきている。社員の出張やさまざまな就業形態を可能とするべく、データを物理的に保護された設備から取り出すことは日常的に行われている。また、企業がビジネスの機会をほかの都市、州(都道府県)、および国で見出すと、データは地理的にさまざまな場所に分散する。そしてデータ量は、発生するスピードの点でも、提示され得るマルチメディア形式の点でも、大量である。上述した要因すべては、移動時および保存時の両方においてデータの保護が必要となるネットワーク接続ストレージ、帯域幅が増えたサブシステム、新しい格納媒体の開発を後押ししている。
【0004】
保存データ(Data at Rest:DAR)暗号化技術は、紛失または盗難にあったストレージデバイスに格納されているデータが不正利用されないようにするための技術であり、インターネット等のネットワークでデータがばら撒かれることを防いでいる。DAR暗号化技術は、ストレージデバイスの紛失および盗難が不可避である以上、発生してもストレージデバイスに格納されているデータの紛失および盗難につながらないように、自動的且つ即座に応答するメカニズムとして機能する技術である。
【0005】
コンピュータプラットフォームに関連付けられているさまざまなストレージデバイスに格納されているデータを保護する上での課題の1つに、暗号化技術および鍵管理方法が暗号化を行う主体によって異なる点が挙げられる。ストレージのハードウェアには暗号化機能が元々組み込まれている場合があるが、この暗号化機能は、ストレージのハードウェアのベンダ毎に固有であるので、データにアクセスするには、ストレージのハードウェアのベンダのツールを利用しなければならない。ソフトウェアに基づく暗号化の場合は、ハードウェアに基づく暗号化の場合とは異なる鍵生成および管理サービスが必要となるので、ソフトウェアで暗号化されたデータにアクセスするにはソフトウェアのベンダのツールを利用しなければならない場合がある。このため、盗難または紛失が発生した際の鍵の回復およびデータのマイグレーションについて計画を立てる場合、任意のコンピュータプラットフォームに対応付けられたデータ全てを保護および/または回復するためには多くの異なるベンダのツールを利用しなければならない可能性がある。
【図面の簡単な説明】
【0006】
【図1】本発明の実施形態に係る、コンピュータプラットフォーム内のストレージデバイスに格納されているデータについて包括的な保護を提供するシステムを示す図である。
【0007】
【図2】本発明の一実施形態に係る、図1のプラットフォームに格納されているデータの暗号化の管理に関連して、図1のチップセットおよび管理エンジン(Manageability Engine:ME)をさらに詳細に示す図である。
【0008】
【図3】本発明の一実施形態に応じた、ストレージデバイスに格納されているデータを暗号化するための暗号鍵同士の関係を示す図である。
【0009】
【図4】コンピュータプラットフォームのストレージデバイスへのアクセスを制御する場合の、図2のコンポーネント同士のやり取りを示すデータフロー図である。
【0010】
【図5】本発明の一実施形態に係る、デバイスアクセスイベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0011】
【図6】本発明の一実施形態に係る、デバイス初期化イベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0012】
【図7】本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0013】
【図8】本発明の一実施形態に係る、プラットフォーム間でのデバイスのマイグレーションに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0014】
【図9】本発明の一実施形態に係る、盗難にあったプラットフォームの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0015】
【図10】本発明の一実施形態に係る、盗難にあったプラットフォームの回復に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0016】
【図11】本発明の一実施形態に係る、図1および図2のプラットフォームのアクセス制御コンポーネントの動作を示すフローチャートである。
【発明を実施するための形態】
【0017】
本発明の実施形態は、コンピュータプラットフォームが備えるストレージデバイスに格納されているデータを包括的に保護するための方法、装置、システム、およびコンピュータプログラム製品を提供し得る。データの保護は、プラットフォームのユーザを、ストレージデバイスに格納されているデータへのアクセスを許可する前に、認証することによって実現される。さらに、プラットフォームに対応付けられているストレージデバイスに格納されているデータを暗号化するのに用いられる鍵は、ストレージデバイスを暗号化するためにチップセットのハードウェアによって用いられる鍵、ならびに、暗号化ソフトウェアおよび/またはストレージデバイスのハードウェアによって利用される鍵も含め、全てセキュアに管理することによってデータを保護する。また、プラットフォームおよび/またはストレージデバイスの盗難が検知された場合には格納データへのアクセスを防ぐべく盗難抑止メカニズムを設けることによっても、データを保護する。
【0018】
図1は、本発明の実施形態に係る、コンピュータプラットフォーム内のストレージデバイスに格納されているデータについて包括的な保護を提供するシステムを示す図である。プラットフォーム100は、デスクトップ管理インターフェース(DMI)111を介してチップセット120に接続されているプロセッサ110を備える。チップセット120は、プラットフォーム100の設定および動作を管理する管理エンジン(Manageability Engine:ME)130を有する。管理エンジン(ME)130は、マイクロプロセッサとして実装され得る。一実施形態によると、管理エンジン(ME)130は、監査イベントの収集、ユーザの認証、周辺機器へのアクセスの制御、プラットフォーム100のストレージデバイスに格納されているデータを保護するための暗号鍵の管理、およびネットワークコントローラ160を介したエンタープライズサービス162との間のインターフェースとしての機能を実行する。管理エンジン(ME)130は、エンタープライズサービス162を利用することによって、プラットフォーム100等のプラットフォームの設定及び管理に関するエンタープライズ全体でのポリシーとの一貫性を保つ。
【0019】
デスクトップ管理インターフェース(DMI)111は、プロセッサ110を、チップセット120のI/Oコマンドデコードモジュール140に接続する。一実施形態によると、I/Oコマンドデコードモジュール140は、専用シリコンチップを用いることによって格納コマンドのデコードおよびその他の加速処理を実行する汎用コントローラである。I/Oコマンドデコードモジュール140の機能は、特定用途向けハードウェアで全て実装されるとしてもよい。管理エンジン(ME)130は、ポリシーおよび暗号鍵を設定することによって、I/Oコマンドデコードモジュール140および暗号化エンジン150の挙動を制御する。管理エンジン(ME)130、I/Oコマンドデコードモジュール140、および暗号化エンジン150の動作については、より詳細に後述する。
【0020】
プラットフォーム100はさらに、ダイナミックランダムアクセスメモリ(DRAM)112、チップセット120内のスタティックランダムアクセスメモリ(SRAM)122、およびフラッシュメモリ190等のメモリデバイスを備える。プラットフォーム100に最大電力が供給されている場合、DRAM112のうち上部メモリ領域(UMA)と呼ばれる一部分、ME−UMA114が、管理エンジン(ME)130によって利用可能な状態となっている。プラットフォーム100のホストオペレーティングシステム(図1には不図示)は通常、BIOS(Basic Input Output System)によって設定されているメモリ分離メカニズムのために、ME−UMA114にはアクセスすることができない。このメモリ分離メカニズムは、ホストオペレーティングシステムが実行される前に、ME−UMAメモリ114へのアクセスに鍵を掛ける。DRAM112のこの部分を、管理エンジン130に利用させるべく、ホストオペレーティングシステムから分離することによって、オペレーティングシステムに感染し得るウィルス等のマルウェアから管理エンジン130の完全性を保護する。
【0021】
フラッシュメモリ190は、プラットフォーム100を初期化する場合に用いられるファームウェアを有する。この初期化ファームウェアには、BIOSファームウェア192、ネットワークコントローラ160を設定するためのネットワークコントローラファームウェア194、およびチップセット120を設定するためのチップセットファームウェア196が含まれる。管理エンジン(ME)130およびI/Oコマンドデコードモジュール140のために、チップセットファームウェア196の完全性は、フラッシュメモリ190に格納される前にデジタル署名を確認することによって保証される。管理エンジン(ME)130によって利用されるデータ、例えばユーザ認証情報は、管理エンジン(ME)130内の暗号化ファームウェアによって暗号化されて、フラッシュメモリ190のデータ領域198に格納されるとしてよい。
【0022】
図1に示す実施形態のプラットフォーム100はさらに、I/Oコントローラ170を介してアクセス可能なさまざまな種類のストレージデバイスを備えている。例えば、ストレージインターフェース171を介してアクセス可能な非チップセット暗号化ストレージデバイス172、および、ストレージインターフェース181を介してアクセス可能なチップセット暗号化ストレージデバイス180がある。ストレージインターフェース171および181は、ストレージデバイス172および180として設けられるストレージの種類に応じて、不揮発性メモリ(NVM)用の不揮発性メモリホストコントローラインターフェース(HCI)、または、SATA(Serial Advanced Technology Attachment)ストレージ用のAHCI(Advanced HCI)インターフェースとして実装されるとしてよい。
【0023】
ストレージデバイス172および180に格納されているデータは、暗号化されているとしてよい。チップセット暗号化ストレージデバイス180に格納されているデータは、チップセット120の暗号化エンジン150によって暗号化される。チップセット暗号化ストレージデバイス180はさらに、メタデータ182を格納するために確保された領域を含む。メタデータ182は、ストレージデバイス180のための少なくとも1つのデバイス暗号鍵(DEK)184、および、管理エンジン(ME)130が利用するその他のメタデータを含む。メタデータ182は、I/Oコマンドデコードモジュール140およびI/Oコントローラ170がI/Oコマンドを処理している間にプロセッサ110で実行されるアプリケーションによって上書きされないように保護される。
【0024】
一実施形態によると、チップセット120の暗号化エンジン150によってデータの暗号化または復号化が実行される前に、管理エンジン(ME)130が、暗号化エンジン150と対応付けられているメモリレジスタに対して、入出力動作に関わるストレージデバイスに対応付けられているデバイス暗号鍵(DEK)、例えばDEK184を挿入する。1つの物理ストレージデバイスが論理的に複数の異なる論理デバイスまたはパーティションに分割されている場合、各論理デバイスまたはパーティションそれぞれが、対応するデバイス暗号鍵(DEK)を持っており、各DEKが暗号化エンジン150の対応するメモリレジスタに挿入される。
【0025】
非チップセット暗号化ストレージデバイス172に格納されているデータは、暗号化ソフトウェアまたはストレージのハードウェア自体によって暗号化されており、暗号化エンジン150によっては暗号化されてはいない。非チップセット暗号化ストレージデバイス172は、チップセット暗号化ストレージデバイス180が格納するメタデータ182と同様のチップセットが生成するメタデータは含まない。
【0026】
プロセッサ110で実行されているソフトウェアが発行する書込みコマンドに応じたプラットフォーム100のコンポーネントの動作の一例として、特定のストレージデバイスを対象とするデータ書込みコマンドが、DMIインターフェース111を介して、I/Oコマンドデコードモジュール140に対して発行される。I/Oコマンドデコードモジュール140は、このコマンドをデコードして、I/Oコントローラ170にデータ部分を特定する。チップセット暗号化ストレージデバイス180を対象とする書込みコマンドの場合、I/Oコントローラ170は「オンザフライ」で暗号化エンジン150を介してデータをルーティングする。この時、暗号化エンジン150は、管理エンジン(ME)130から提供されたチップセット暗号化ストレージデバイス180用のデバイス暗号鍵(DEK)、例えばDEK184を用いてこのデータを暗号化する。暗号化エンジン150は、ストレージインターフェース181を介してチップセット暗号化ストレージデバイス180に送信されるように、暗号化されたデータをI/Oコントローラ170に戻す。I/Oコマンドデコードモジュール140およびI/Oコントローラ170は、ストレージインターフェース181を抽象化して、メタデータ182を格納している領域をプロセッサ110で実行されているアプリケーションによるアクセスから保護して、メタデータ182が上書きされないようにする。
【0027】
非チップセット暗号化ストレージデバイス172とは、チップセット120の暗号化エンジン150によって暗号化されていないデータを格納しているUSBデバイス、NAND型フラッシュメモリデバイス、ファイヤーワイヤデバイス、またはその他の種類のストレージデバイスを表すとしてよい。非チップセット暗号化ストレージデバイス172を対象とする書込みコマンドの場合、I/Oコントローラ170は、暗号化のために暗号化エンジン150を介してデータをルーティングすることはない。これに代えて、非チップセット暗号化ストレージデバイス172は、ホストプロセッサ110で実行されているソフトウェアを用いて、または、ストレージデバイス172に組み込まれている暗号化ハードウェアによって暗号化され得る。非チップセット暗号化ストレージデバイス172が表すストレージデバイスは、チップセット120の暗号化エンジン150を用いて暗号化されるようには設定されていないが、管理エンジン(ME)130によって保護および管理されている、プラットフォーム100内のストレージデバイスである。
【0028】
非チップセット暗号化ストレージデバイス172にも、1以上の暗号鍵が対応付けられており、これらの暗号鍵は一時デバイス暗号鍵(TDEK)(不図示)と呼ばれる。例えば、ソフトウェアに基づく暗号化は通常、デバイスまたはパーティションの概念を用いるのではなく、ストレージのボリュームの概念を用いて行われ、対応付けられる暗号鍵はボリューム暗号鍵(VEK)と呼ばれる。ボリューム暗号鍵は、管理エンジン(ME)130に格納されて管理される、あるタイプの一時デバイス暗号鍵(TDEK)の一例である。管理エンジン(ME)130は、プラットフォームに結び付けられた暗号鍵を管理すると共に、プラットフォームに結び付けられていない暗号鍵をも管理する。例えば、非チップセット生成暗号鍵、例えば、暗号化ソフトウェアによって生成される一時デバイス暗号鍵は通常、プラットフォームに結び付けられない。ストレージのハードウェアによって生成され、デバイス自体で物理的に格納されているDEKは、当該デバイスには結び付けられているが、必ずしも当該デバイスを備えるプラットフォームに結び付けられることはない。一時DEKは、それを用いて暗号化したデータを格納している物理ストレージデバイスには格納されておらず、プラットフォームにもデバイスにも結び付けられていない。暗号鍵がプラットフォーム/デバイスに結び付けられていようといまいと、管理エンジン(ME)130は暗号鍵を同様に管理する。
【0029】
管理エンジン(ME)130は、プラットフォーム100と対応付けられる全てのデータの暗号化を管理する。これには、チップセット120内の暗号化エンジン150によって実行される暗号化、および、チップセットで実行されるのではなく、プロセッサ110で実行されるソフトウェアまたはストレージハードウェア自体で実行されるデータの暗号化も含まれる。管理エンジン(ME)130が提供するサービスの1つに、プラットフォーム100のどのコンポーネントがデータの暗号化を実行するかに関わらず、共通のフレームワークおよびユーザインターフェースにおいて暗号鍵を管理することが挙げられる。データの暗号化を管理するためのチップセット120および管理エンジン(ME)130のフレームワークおよび動作に関する詳細はさらに、図2を参照しつつ後述する。
【0030】
図2は、本発明の一実施形態に係る、図1のチップセット120、管理エンジン(ME)130、および管理エンジン(ME)130が管理するデータをさらに詳細に示す図である。チップセット120は、BIOS/ホストソフトウェア210とやり取りを行う。BIOS/ホストソフトウェア210は、ブート前認証プロセスで図1のBIOSファームウェア192にロードされるとしてよい。BIOS/ホストソフトウェア210は、ブート前認証プロセスでプラットフォーム100のユーザを認証するユーザ認証モジュール212と、非チップセット暗号化ストレージデバイス172等のデバイスに格納されているデータを暗号化するべく用いられるホスト暗号化ソフトウェア214とを有する。
【0031】
ユーザ認証モジュール212が実行するユーザ認証プロセスは、ユーザのパスワードを確認すること、バイオメトリクスデータ、スマートカードの利用、またはその他の認証プロセスを含むとしてよい。ユーザ認証モジュール212は、ブート前認証プロセスにおいて、認証結果を、チップセット120の管理エンジン(ME)130内の身元情報(ID)管理ファームウェア239に与えるとしてよい。
【0032】
チップセット120において、管理エンジン(ME)130は、MEカーネル231と、ME共通サービス233と、盗難抑止ファームウェア235と、セキュリティ/鍵管理ファームウェア237と、身元情報管理ファームウェア239とを持つ。これらのコンポーネントはそれぞれ、さらに詳細に後述する。
【0033】
MEカーネル231は、SRAM122およびDRAM112の一部分(例えば、ME−UMA114)のメモリ利用、フラッシュメモリ190におけるデータの持続的な格納、およびアクセス制御等の基本的な機能を提供する。MEカーネル231は、I/Oコマンドデコードモジュール140および暗号化エンジン150の動作を制御する。
【0034】
ME共通サービス233は、複数の異なるファームウェアモジュールが共通に必要とするサービスを含み、セキュリティサービス、ネットワークサービス、およびプロビジョニングサービスを含む。ME共通サービス233が提供するセキュリティサービスは一般的に、HTTPダイジェスト認証およびケルベロス認証の両方を含むユーザ認証、Microsoft Active Directoryおよび/またはその他のサービスを用いるドメイン認証、クライアントとサーバのクロックを同期させるクロック同期サービス、およびセキュリティ監査サービスを含む。
【0035】
ME共通サービス233が提供するネットワークサービスは、トランスミッション・トランスポート・プロトコル/インターネット・プロトコル(TCP/IP)スタック、トランスポート層セキュリティ(TLS)、ハイパーテキスト・トランスポート・プロトコル(HTTP)、シンプル・オブジェクト・アクセス・プロトコル(SOAP)、ウェブ・サービス・フォー・マネジアビリティ(WS−MAN)、および、ホストベースのTLSインターフェースが呼び出したIntelローカル・マネジアビリティ・サービス(LMS)を含む。
【0036】
ME共通サービス233が提供するプロビジョニングサービスは、プラットフォーム100に対してエンタープライズソフトウェアをプロビジョニングするべく、図1のエンタープライズサービス162と共に用いられる。これらのプロビジョニングサービスは、2つのデプロイメントモード、つまり、ゼロタッチおよびワンタッチをサポートしている。ゼロタッチモードの場合、デプロイメント証明アンカーキーは、図1のフラッシュメモリ190のデータ領域198等のデータストレージ領域に格納され、公知の認証局鍵に基づいて、プラットフォームの所有権を取るべく用いられるIT信任状を認証する。ワンタッチモードでは、セットアップおよびデプロイメントのタスクをリモートで完了させるべく用いられる組織証明書、対称鍵、および信頼しているホストを設定する。
【0037】
管理エンジン(ME)130はさらに、BIOS/ホストソフトウェア210のユーザ認証モジュール212との間でやり取りを行う身元情報管理ファームウェア239を持つ。身元情報管理ファームウェア239は、ユーザの認証情報をユーザアカウントメタデータ223と比較するとしてよい。ユーザアカウントメタデータ223は、フラッシュメモリ190のデータ領域198のユーザ/コンテナメタデータ230部分に格納されると図示されている。身元情報管理ファームウェア239はさらに、管理エンジン(ME)130のセキュリティ/鍵管理ファームウェア237との間でやり取りを行って、チップセット暗号化ストレージデバイス180内のブート前認証(PBA)デバイス情報コンテナ280にもユーザ情報が格納されていることを確認するとしてよい。このようにチップセット暗号化ストレージデバイス180に対するユーザのアクセスを確認することによって、チップセット暗号化ストレージデバイス180に格納されているデータに対する保護がさらに強化される。
【0038】
セキュリティ/鍵管理ファームウェア237は、上述したようにユーザ認証モジュール212との間でやり取りを行なって、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータへのアクセスが許可される前にユーザを認証する。セキュリティ/鍵管理ファームウェア237は、鍵管理情報を管理して、プラットフォームに対応付けられているメモリまたはストレージデバイス、例えば、フラッシュメモリ190またはチップセット暗号化ストレージデバイス180にこの鍵管理情報を格納する。鍵管理情報が格納される場所は、利用可能なストレージ空間および格納されるべきデータの量に応じて決まり、本発明は鍵管理情報を格納する構成について特定の構成に限定されるものではない。一実施形態によると、セキュリティ/鍵管理ファームウェア237は、プラットフォーム100に結び付けられているプラットフォームコンテナ鍵(PCK)を用いて鍵管理情報を暗号化する。
【0039】
セキュリティ/鍵管理ファームウェア237が管理する鍵管理情報は、チップセット(つまり、チップセット120内の暗号化エンジン150)によって生成され、メタデータ182に格納されている、デバイス暗号鍵(DEK)184と呼ばれる暗号鍵を含む。セキュリティ/鍵管理ファームウェア237が管理するその他の種類の鍵には、例えばホスト暗号化ソフトウェア214によって生成される一時デバイス暗号鍵(TDEK)282および292として図示されている暗号鍵が含まれる。TDEK282は、チップセット暗号化ストレージデバイス180内の直接管理デバイス情報コンテナ280に格納されており、TDEK292はフラッシュメモリ190の間接管理デバイス情報コンテナ290に格納されていることが図示されている。「直接管理」という表現を用いているのは、チップセット120によって直接暗号化されていると共に管理エンジン(ME)130によって管理されているデバイスを意味している。一方で、「間接管理」という表現を用いているのは、当該デバイスはチップセット120によって暗号化されていないが当該デバイスに格納されているデータの暗号鍵は管理エンジン(ME)130によって管理されていることを意味している。セキュリティ/鍵管理ファームウェア237の動作については、さらに詳細に後述する。
【0040】
管理エンジン(ME)130はさらに、盗難抑止ファームウェア235を持つと図示されている。盗難抑止ファームウェア235は、図1のエンタープライズサービス162等の中央サーバによって、盗難通知イベント等のイベントに応答するように構成され得る。このような盗難通知イベントは、例えば、失敗に終わったログインの回数が最大値に達したことを管理エンジン(ME)130が検知した場合、または、ユーザから盗難が報告された場合に、トリガされるとしてよい。一実施形態によると、プラットフォーム100は、認証された位置からプラットフォームが移動させられると、盗難通知サーバに信号を送信するように構成されている感知ハードウェア(不図示)を備えるとしてよい。盗難通知イベントに応答して、盗難抑止ファームウェア235は、盗難の影響を抑制する処理を実行するとしてよい。例えば、プロセッサ110またはチップセット120の一部をディセーブルしたり、フラッシュメモリ190へのアクセスを禁止したり、フラッシュメモリ190からデバイス情報コンテナ290を削除したり、チップセット暗号化ストレージデバイス180のメタデータ182の内容を削除したり、または、デバイス情報コンテナ290、フラッシュメモリ190、メタデータ182、および/あるいは、チップセット暗号化ストレージデバイス180のデバイス情報コンテナ280の中身へのアクセスをプログラムを用いて禁止するとしてよい。
【0041】
盗難抑止ファームウェア235は、デバイス情報コンテナ280および290が有するデータを管理する。一例を挙げると、デバイス情報コンテナ280および290は、一時デバイス暗号鍵(TDEK)282および292、例えば、非チップセット暗号化ストレージデバイス172を暗号化および復号化するべくホスト暗号化ソフトウェア214が用いる鍵を持つ。非チップセット暗号化ボリューム暗号鍵はさらに、ストレージのハードウェア自体によって生成されて、管理エンジン(ME)130のセキュリティ/鍵管理ファームウェア237によってデバイス情報コンテナ280および290に格納されている暗号鍵を含むとしてよい。盗難抑止ファームウェア235の動作については、さらに詳細に後述する。
【0042】
デバイス情報コンテナ280および290はそれぞれ、対応するマイグレーションパッケージ280Mおよび290Mを含むものと図示されている。マイグレーションパッケージ280Mおよび290Mは、プラットフォーム100に対応付けられている全てのストレージデバイスについての暗号鍵の共通レポジトリを提供するべく、管理エンジン130およびセキュリティ/鍵管理ファームウェア237によって用いられる。一実施形態によると、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172の鍵情報はそれぞれ、マイグレーションパッケージ280Mおよび290Mに格納されている。マイグレーションパッケージ280Mおよび290Mに格納されている鍵の種類については、図3を参照しつつさらに詳細に説明する。
【0043】
図3は、ストレージデバイスに格納されているデータを暗号化するための暗号鍵同士の関係を示す図である。一実施形態によると、図2のセキュリティ/鍵管理ファームウェア237は、任意のデバイス暗号鍵(DEK)310−310nまたは一時デバイス暗号鍵(TDEK)320a−320nを、デバイスラッピング鍵(DWK)330と呼ばれる別の鍵を用いて、さらにラッピング(暗号化)することによって、対応付けられたストレージデバイスが盗難されないように保護する。DWKは、例えば、動的に取得される2つの値から導き出されるとしてよい。第1の値は、ユーザから取得されるパスフレーズである。第2の値は、製造時にハードウェアに埋め込まれた、ヒューズ鍵とも呼ばれる、チップセット鍵である。各チップセット鍵は、特定のプラットフォームに固有であるが、外部からは読み出せない。パスフレーズおよびチップセット鍵は、デバイスラッピング鍵(DWK)を出力する公共鍵暗号化基準(PKCS#5)鍵導出関数に与えられる。デバイスラッピング鍵(DWK)はシステムに電源が入れられる度に導き出されるので、DWK内部にラッピングされているDEKまたはTDEKを取得するためには、盗難者はユーザのパスフレーズを知っていなければならないと共にデバイスラッピング鍵(DWK)のラッピングを解除するチップセット鍵へのアクセスを有していなければならない。
【0044】
このため、上述したようなデバイスラッピング鍵(DWK)を用いて暗号化されたストレージデバイスは、DEKまたはTDEKをラッピングするためにチップセット鍵/ヒューズ鍵を利用しているので、データを暗号化したプラットフォームに結び付けられる。このようにデバイスをプラットフォームに結びつけることによって、チップセット暗号化ストレージデバイス180または非チップセット暗号化ストレージデバイス172のようなストレージデバイスを、攻撃者が、ストレージデバイスに格納されているデータの暗号化の回避を試みるための攻撃ツールキットが利用可能な別のプラットフォームに入れないようにする。
【0045】
一実施形態によると、デバイスラッピング鍵(DWK)330は、別の鍵を用いてさらにラッピングされて、チップセット120内にある間を除いてDWKがクリア状態になることがないようにする。このような別の鍵には、ユーザ鍵340aおよび340bが含まれる。デバイスラッピング鍵(DWK)330、ならびに、DWKがラッピングするDEKおよびTDEKといった暗号鍵のラッピングを解除するためには、プラットフォームのユーザは上述したように認証されなければならない。
【0046】
セキュリティ/鍵管理ファームウェア237によって生成されたデバイスラッピング鍵(DWK)はプラットフォームに結び付けられているので、ストレージデバイスを別のプラットフォームにマイグレーションさせるには別の方法が必要となる。例えば、元々のプラットフォームが動作不可能に陥った場合、別のプラットフォームにハードドライブをマイグレーションさせる必要がある。このようなマイグレーションは、例えば管理エンジン(ME)130と共に図1に示したエンタープライズサービス162を用いることで実行されるとしてよい。エンタープライズサービス162は、回復サーバおよび/またはマイグレーションサーバを提供するとしてよい。
【0047】
一実施形態によると、データ回復を容易にするべく、セキュリティ/鍵管理ファームウェア237はさらに、別のプラットフォームで利用され得るプラットフォーム非依存性の鍵(図3には不図示)を生成する。このようなプラットフォーム非依存性の鍵は通常、少なくとも256ビットの乱数であるトークンによってラッピングされて、マイグレーション鍵350を生成する。セキュリティ/鍵管理ファームウェア237は、このマイグレーション鍵350を用いてデバイスラッピング鍵(DWK)330をラッピングして、プラットフォーム間での暗号化ストレージデバイスのマイグレーションを容易にするとしてよい。マイグレーション鍵350もまた、プラットフォームの特定のユーザには依存していないので、ユーザアカウント情報が破損して、デバイスラッピング鍵(DWK)330のラッピングを解除するためにユーザ鍵340aおよび340bを利用できない場合、デバイスラッピング鍵(DWK)330の回復を容易にするとしてよい。
【0048】
一実施形態によると、プラットフォーム非依存性のマイグレーション鍵350は、マイグレーションパッケージ280Mおよび290Mに格納されており、マイグレーション鍵350を生成するべく用いられたトークンは、リモートセキュアサーバに格納されるとしてよい。一実施形態によると、データのマイグレーションおよび回復をさらに容易にするべく、プラットフォームに結び付けられているデバイスラッピング鍵(DWK)330の複製をリモートセキュアサーバに格納する。このようにすることでデバイスラッピング鍵(DWK)330を、ラッピングした一時デバイス暗号鍵(TDEK)320a−320nおよびデバイス暗号鍵(DEK)310a−310nを復号化するべく用いることができる。
【0049】
図3に示すようにすべてのDEK310a−310nおよびTDEK320a−320nを同一のデバイスラッピング鍵でラッピングすることによって、管理エンジン(ME)130および/またはセキュリティ/鍵管理ファームウェア237は、プラットフォームに対応付けられている全てのストレージデバイスを一度にアンロックすることができる。このような共通のラッピング鍵DWK330によれば、個々のストレージデバイスは独自の暗号鍵DEK310a−310nおよびTDEK320a−320nを持っているとしても、ストレージデバイスのロック粒度はプラットフォーム単位で実行し得るものとすることができる。ストレージデバイスのアンロックについては、図7を参照しつつさらに詳細に後述し、ストレージデバイスの初期化については、図6を参照しつつさらに詳細に後述する。
【0050】
図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)として実装されるとしてよい。
【0051】
動作4.4において、セキュリティ/鍵管理ファームウェア237は、コンテナ鍵220を用いて、チップセット暗号化ストレージデバイス180内のメタデータ182を、デバイス暗号鍵(DEK)184を含めて復号化する。セキュリティ/鍵管理ファームウェア237は、DEK184を用いて、チップセット暗号化ストレージデバイス180内に格納されているデータを復号化する。コンテナ鍵220はさらに、デバイス情報コンテナ280に含まれているデータを、TDEK282を含めて、復号化するべく用いられる。動作4.5において、セキュリティ/鍵管理ファームウェア237は、盗難抑止ファームウェア235との間でやり取りを行なって、プラットフォーム100に対応付けられているストレージデバイスが盗難通知に基づいてアクセス不能になっていないことを確かめる。動作4.6において、盗難抑止ファームウェア235は、デバイス情報コンテナ290にアクセスして、プラットフォーム100に対応付けられているストレージデバイスの状態に関する情報を取得する。盗難が検出あるいは報告されている場合、または、盗難通知を受け取っている場合、セキュリティ/鍵管理ファームウェア237は、プラットフォーム100へのアクセスを拒絶する等の救済措置をとるべく、盗難抑止ファームウェア235に制御を移行する。プラットフォーム100へのアクセスを拒絶するべく実行し得る動作には、ハードウェアをディセーブルすること、鍵および/あるいは鍵コンテナを削除すること、マイグレーションパッケージへのアクセスを拒絶すること、ならびに/または、鍵および/あるいは鍵コンテナへのアクセスを拒絶することが含まれるとしてよい。鍵および/あるいは鍵コンテナを削除すること、または、鍵および/あるいは鍵コンテナへのアクセスをディセーブルすることによって、鍵コンテナを復号化しようとする不正な試みを阻止することができる。
【0052】
さらに図4を参照しつつ説明を続けると、動作4.7において、盗難通知を受け取っていない場合、セキュリティ/鍵管理ファームウェア237は、コンテナ鍵220を用いて、一時デバイス暗号鍵(TDEK)292を含むデバイス情報コンテナ290内に格納されているデータを復号化する。ここで、一時デバイス暗号鍵(TDEK)292は、非チップセット暗号化ストレージデバイス172に格納されているデータを暗号化するためにホスト暗号化ソフトウェア214または元々のストレージのハードウェアによって用いられる暗号鍵を含む得ることに留意されたい。動作4.8において、セキュリティ/鍵管理ファームウェア237は、一時デバイス暗号鍵(TDEK)292をホスト暗号化ソフトウェア214に与えて、動作4.9において、ホスト暗号化ソフトウェア214は非チップセット暗号化ストレージデバイス172を復号化する。一時デバイス暗号鍵(TDEK)292が元々のストレージのハードウェアによって生成されている場合、TDEK292は非チップセット暗号化ストレージデバイス172のデータを復号化するべく用いられ得る。
【0053】
このため、ユーザは、システムに1回ログインすると、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172に格納されている暗号化データにアクセスできる。管理エンジン130のセキュリティ/鍵管理ファームウェア237は、チップセットによって暗号化されたデバイスおよびプラットフォームのチップセットによっては暗号化されていないデバイス両方の復号化のための鍵を制御することによって、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータを包括的に保護する。デバイスへのユーザアクセスを制御するべく身元情報管理ファームウェア239と協働し、且つ、盗難通知に応答するべく盗難抑止ファームウェア235と協働することによって、保護されているプラットフォームに対応付けられているデータの安全性が保証される。
【0054】
図5は、本発明の一実施形態に係る、デバイスアクセスイベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。図5に示すステップは、管理エンジン(ME)130および/または管理エンジン(ME)130の構成要素であるセキュリティ/鍵管理ファームウェア237によって実行されるものとして説明される。「デバイスアクセスイベント」ステップ510において、管理エンジン(ME)130は、プラットフォームのリセット、または、非チップセット暗号化ストレージデバイス172等のデバイスのプラットフォームへのホットプラグなどを表すデバイスアクセスイベントを受け取る。そして、「デバイスはチップセットによって暗号化されているか」の判断ポイント512に進み、挿入されたデバイスがチップセットによって暗号化されているか否かを判断する。このような判断を行なうには、メタデータ182等のメタデータがストレージデバイスにあるか否かを確認するとしてよい。デバイスがチップセットによって暗号化されていれば、「デバイスメタデータ内でデバイス暗号鍵(DEK)を検索」ステップ520に進む。ストレージデバイスのメタデータ182内でDEK184を検索して、「DEK発見?」判断ポイント522へ進む。DEKが発見されていれば、「DEKを用いてデバイスをアンロック」ステップ524へと進む。デバイスをアンロックして、「デバイスはアンロック済み」状態550へと進む。デバイスのアンロックは、図7を参照しつつさらに詳細に説明する。「DEK発見?」判断ポイント522においてDEKが発見されていなければ、「アンロック失敗」状態560に進む。「アンロック失敗」状態560では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。
【0055】
「デバイスはチップセットによって暗号化されているか」の判断ポイント512において、挿入されたデバイスがチップセットによって暗号化されていない場合、「デバイスはソフトウェアによって暗号化されているか」の判断ポイント514に進む。デバイスがソフトウェアによって暗号化されているか否かの判断は、例えば、デバイスの識別子と、直接管理デバイス情報コンテナ280および間接管理デバイス情報コンテナ290等のデバイス情報コンテナ内のデバイス識別子との比較に基づいて行なうとしてよい。デバイス識別子がデバイス情報コンテナのうち1つで見つかった場合、「デバイス情報コンテナ内で一時デバイス暗号鍵(TDEK)を検索」ステップ530に進む。デバイス情報コンテナ内を検索して、「TDEK発見?」判断ポイント532に進む。TDEKが発見されていれば、「TDEKを用いてデバイスをアンロック」ステップ534に進む。デバイスをアンロックして、「デバイスはアンロック済み」状態550へと進む。デバイスのアンロックは、図7を参照しつつさらに詳細に説明する。
【0056】
「TDEK発見?」判断ポイント532においてソフトウェアで暗号化されたデバイスのTDEKが見つからない場合、「他のデバイス情報コンテナのメタデータ内でTDEKを検索」ステップ536に進む。他のデバイス情報コンテナのメタデータが存在すれば、そのメタデータ内を検索して、「TDEK発見?」判断ポイント538へと進む。他のデバイス情報コンテナのメタデータが存在しなければ、「TDEK発見?」判断ポイント538へと進む。ソフトウェアで暗号化されたデバイスのTDEKが見つからなかった場合、「TDEK発見?」判断ポイント538から、「アンロック失敗」状態560に進む。「アンロック失敗」状態560では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。ソフトウェアで暗号化されたデバイスのTDEKが見つかった場合、「TDEK発見?」判断ポイント538から、「TDEKを用いてデバイスをアンロック」ステップ534に進み、その後は上述したように進む。
【0057】
「デバイスはソフトウェアによって暗号化されているか」の判断ポイント514において、デバイスがソフトウェアによって暗号化されていないと判断されれば、「デバイスは自身で暗号化されているか?」の判断ポイント516に進む。デバイスが自身で暗号化されているか否かの判断は、例えば、ATAセキュリティコマンドを発行することによって、実行するとしてよい。デバイスが自身で暗号化されていれば、「アンロックコマンド送信」ステップ540に進み、アンロックコマンドがデバイスに送信される。デバイスはアンロックされて、「デバイスはアンロック済み」状態550へと進む。
【0058】
「デバイスは自身で暗号化されているか?」の判断ポイント516において、デバイスが自身で暗号化されていないとなった場合、「アンロック失敗」状態560に進む。デバイスはアンロックされない。「デバイスアクセスイベント」ステップ510から開始されたデバイスアクセスイベントの処理は、デバイスをアンロックすることなく、完了する。
【0059】
図6は、本発明の一実施形態に係る、デバイス初期化イベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。図6に示すステップは、管理エンジン(ME)130および/または管理エンジン(ME)130の構成要素であるセキュリティ/鍵管理ファームウェア237によって実行されるものとして説明される。「デバイス初期化イベント」ステップ610において、管理エンジン(ME)130は、デバイス初期化イベントを受け取る。「デバイス暗号鍵を生成?」の判断ポイント620に進む。初期化すべきデバイスについて暗号鍵を生成すべき場合、「暗号鍵(DEKまたはTDEK)生成」ステップ622に進む。暗号鍵は、例えば、乱数生成器を用いて生成するとしてよい。そして、「デバイスラッピング鍵(DWK)を用いて暗号鍵をラッピング」ステップ624に進む。例えば、図3のDEK310a−310nのうち1つ等のデバイス暗号鍵(DEK)、または、図3のTDEK320a−320nのうち1つ等の一時デバイス暗号鍵(TDEK)を、図3のDWK330等のデバイスラッピング鍵(DWK)を用いてラッピングする。
【0060】
「デバイスラッピング鍵(DWK)を用いて暗号鍵をラッピング」ステップ624から、「チップセットで生成されたDEK?」判断ポイント0へ進み、チップセット暗号化ストレージデバイス180のDEK184等の暗号鍵が、チップセットによって生成されたか否かを判断する。暗号鍵がチップセットによって生成されていれば、「ラッピングされたDEKをデバイスのメタデータに格納」ステップ628に進み、デバイスに直接DEKを格納する。例えば、DEK184をチップセット暗号化ストレージデバイス180のメタデータ182に格納する。そして、「マイグレーショントークンを用いてDWKをラッピング」ステップ630に進み、DWKをさらに、プラットフォーム非依存性のマイグレーショントークンを用いてラッピングして、図3のマイグレーション鍵350のようなマイグレーション鍵を生成する。そして、「マイグレーションパッケージをデバイスメタデータに格納」ステップ632に進み、マイグレーション鍵およびその他のマイグレーションデータを、マイグレーションパッケージとして、デバイスメタデータに格納する。例えば、マイグレーションパッケージ280Mは、チップセット暗号化ストレージデバイス180のメタデータ182内に格納される。デバイスの初期化はこうして、「デバイスは初期化済み」ステップ640への遷移で図示するように、完了する。
【0061】
「チップセットによって生成された鍵?」判断ポイント626において、暗号鍵がチップセットによって生成されていない場合、「メタデータ格納領域はデバイス外で利用可能?」判断ポイント650に進む。デバイスメタデータを格納するための格納領域がデバイス外で、例えば、デバイス情報コンテナ等で利用可能な場合、「メタデータ格納領域にラッピングされた暗号鍵を格納」ステップ652に進む。ラッピングされた暗号鍵は、例えば、デバイス情報コンテナ、例えばデバイス情報コンテナ280または290に格納されるとしてよい。そして、「マイグレーショントークンを用いてDWKをラッピング」ステップ654に進み、マイグレーショントークンを用いてDWKをラッピングして、図3のマイグレーション鍵350のようなマイグレーション鍵を生成する。そして、「メタデータ格納領域にマイグレーションパッケージを格納」ステップ656に進み、マイグレーション鍵およびその他のマイグレーションデータを、例えば、マイグレーションパッケージ290Mのようなマイグレーションパッケージの一部として、フラッシュメモリ190のデータ領域198に格納する。そして、「デバイスは初期化済み」ステップ640に進み、デバイスの初期化が完了する。
【0062】
「メタデータ格納領域はデバイス外で利用可能?」判断ポイント650において、デバイス外でメタデータ格納領域が利用可能でない場合、「ラッピングされた暗号鍵をデバイス上のメタデータに格納」ステップ628に移行する。ラッピングされたTDEKは、例えば、直接管理デバイス情報コンテナ280に格納されるTDEK282のように、デバイス上に直接格納される。そして、「ラッピングされた暗号鍵をデバイス上のメタデータに格納」ステップ628から、上述したように、「デバイスは初期化済み」ステップ640に進む。
【0063】
「デバイス暗号鍵を生成?」の判断ポイント620において、暗号鍵を生成しないと判断されると、「デバイス暗号鍵を受け取ったか?」ステップ660に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っている場合、「デバイスラッピング鍵(DWK)を用いて暗号鍵をラッピング」ステップ624に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っていない場合、「デバイス初期化は失敗」ステップ670に進み、デバイスは初期化されない。
【0064】
図7は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「プラットフォームに対してユーザを認証」ステップ710から開始され、プラットフォームに対するユーザのアクセスが、上述したように、認証される。「ユーザラッピング鍵を生成」ステップ720に進み、340aまたは340bのようなユーザラッピング鍵を生成する。そして、「ユーザアカウントメタデータのラッピングを解除」ステップ730に進み、図4を参照しつつ上述したように、ユーザアカウントメタデータのラッピングを解除する。そして、「デバイスラッピング鍵(DWK)のラッピングを解除」ステップ740に進み、デバイスラッピング鍵のラッピングを解除する。そして、「DEK/TDEKメタデータを取得」ステップ750に進み、図5を参照しつつ上述したようにDEK/TDEKのメタデータを取得する。そして、「DEK/TDEKのラッピングを解除」ステップ760に進み、デバイス暗号鍵DEK/TDEKのラッピングを解除する。そして、「デバイスをアンロック」ステップ770に進み、デバイスをアンロックする。
【0065】
図8は、本発明の一実施形態に係る、プラットフォーム間でのデバイスのマイグレーションに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「管理者を認証」ステップ810から開始され、マイグレーションを実行したい管理者を、本明細書に記載するユーザ認証プロセスと同様の方法で、認証する。そして、「マイグレーショントークンを取得」ステップ820に進み、デバイスのマイグレーショントークンを取得する。一実施形態によると、マイグレーショントークンをリモートサーバから取得する。そして、「メタデータからマイグレーションパッケージを取得」ステップ830に進み、マイグレーションパッケージをメタデータから取得する。例えば、フラッシュメモリ190のデータ領域198からマイグレーションパッケージ290Mを取得するか、または、チップセット暗号化ストレージデバイス180のメタデータ182からマイグレーションパッケージ280Mを取得する。
【0066】
そして、「デバイスラッピング鍵(DWK)のラッピングを解除」ステップ840に進み、デバイスラッピング鍵のラッピングを解除する。そして、「DEK/TDEKメタデータを取得」ステップ850に進み、DEK/TDEKのメタデータを、図5を参照しつつ上述したように、取得する。そして、「DEK/TDEKのラッピングを解除」ステップ860に進み、デバイス暗号鍵DEK/TDEKのラッピングを解除する。そして、「デバイスをアンロック」ステップ870に進み、デバイスをアンロックする。
【0067】
図9は、本発明の一実施形態に係る、盗難にあったプラットフォームの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「プラットフォームの盗難をアサート」ステップ910から開始され、管理エンジン(ME)130が、プラットフォームが盗難に遭った旨のアサーションを発行する。このアサーションは、例えば、図1のエンタープライズサービス162内の盗難検出サーバによって、ブロードキャストされるとしてよい。そして、「盗難プラットフォームイベントを配信」ステップ920に進み、盗難プラットフォームイベントが、盗難に遭ったプラットフォームに配信される。このイベントは、図1のエンタープライズサービス162内の盗難検出サーバによって生成および配信されるとしてよい。
【0068】
「盗難プラットフォームイベントを配信」ステップ920から、「ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要?」判断ポイント930に進み、エンタープライズポリシーでは盗難に遭ったプラットフォームの鍵を全て削除する必要があるか否か判断する。エンタープライズポリシーで鍵の削除が求められている場合には、「DEKを含むデバイスメタデータ、および、TDEKを含むその他のメタデータまたはデバイス情報コンテナを削除」ステップ940に進み、チップセット暗号化ストレージデバイス180のメタデータ182およびデバイス情報コンテナ280および290のようなデバイスメタデータも含め、全てのメタデータレポジトリから全ての鍵を削除する。鍵の削除は、鍵を含むコンテナ全体の削除を含むとしてよい。
【0069】
「ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要?」判断ポイント930において、ポリシーでは鍵の削除が必要ない場合、「他の盗難管理対策を講じる」ステップ950に進み、エンタープライズポリシーに従って盗難に遭ったプラットフォームに対して他の対策を講じるとしてよい。
【0070】
図10は、本発明の一実施形態に係る、盗難にあったプラットフォームの回復に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「盗難に遭ったプラットフォームが所有者に戻る」ステップ1010から開始され、盗難に遭ったプラットフォームが所有者の元に戻ってくる。「プラットフォームに対して所有者を認証」ステップ1020に進み、プラットフォームに対して所有者の認証を行う。そして、「デバイスラッピング鍵(DWK)を含むマイグレーションパッケージのラッピングを解除」ステップ1030に進み、マイグレーションパッケージのラッピングを解除して、図3のDWK330のようなDWKを生成する。そして、「DEK/TDEKメタデータを取得」ステップ1040に進み、DEK/TDEKメタデータを、図5を参照しつつ上述したように、取得する。そして、「DEK/TDEKのラッピングを解除」ステップ1050に進み、デバイス暗号鍵DEK/TDEKのラッピングが解除される。そして、「デバイスをアンロック」ステップ1060に進み、デバイスがアンロックされる。
【0071】
図11は、本発明の一実施形態に係る、プラットフォーム100のアクセス制御コンポーネントの動作を示すフローチャートである。「プラットフォームへのユーザアクセスを認証」ステップ1110において、プラットフォームに対してアクセスを要求しているユーザに関するユーザデータ、例えば、パスワード、バイオメトリクスデータ、またはスマートカード情報等の認証を、ユーザ認証モジュール212と身元情報管理ファームウェア239との組み合わせを参照しつつ上述したように実行する。この認証は、Microsoft Active DirectoryまたはLDAPサーバ等の身元情報管理サーバでユーザの身元情報を確認して、プラットフォーム100に対応付けられているストレージデバイスに格納されている企業データに対するアクセス権限をユーザが持つことを確かめることを含むとしてよい。ユーザの認証はさらに、プラットフォームに対応付けられているプラットフォームおよび/またはストレージデバイスが紛失または盗難に遭っていないことを盗難抑止ファームウェア235で確認することを含むとしてよい。
【0072】
ユーザのデータが認証されてプラットフォームへのアクセスが確認されると、「プラットフォームに対応付けられたストレージデバイスへのユーザアクセスを認証」ステップ1120に進む。認証は、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172の両方に対するユーザアクセスについて、行われる。この確認は、ユーザのデータが上述したようにフラッシュメモリ190にあることを確かめることだけでなく、ユーザのデータがさらにチップセット暗号化ストレージデバイス180に格納されているデバイス情報コンテナ280にもあることを確かめることも含むとしてよい。プラットフォームに対応付けられているストレージデバイスにアクセスする権限をユーザが持つことを確認すると、対応付けられているストレージデバイスに格納されているデータにユーザをアクセスさせるためのプロセスが継続して実行される。
【0073】
プラットフォームに対応付けられているストレージデバイスに対してユーザがアクセスできることが確認されると、「チップセット暗号化ストレージデバイスを復号化」ステップ1130に進む。チップセット暗号化ストレージデバイス180に格納されているデータの復号化は、チップセット暗号化ストレージデバイスのメタデータに格納されているデバイス暗号鍵(DEK)を用いて実行される。「暗号化コンテナ用の鍵を取得」ステップ1140に進み、鍵管理情報を含む暗号化コンテナの暗号鍵を格納する。上述したように、一実施形態によると、これらのコンテナ鍵は、図2および図3のフラッシュメモリ190のデータ領域198内のユーザ/コンテナメタデータ230のユーザアカウントメタデータ223から取得される。そして、「コンテナを復号化」ステップ1150に進み、図3を参照しつつ上述したように、コンテナ鍵220をさらに、セキュリティファームウェアメタデータを含むデバイス情報コンテナ280、および、非チップセット暗号化ストレージデバイス172用の一時デバイス暗号鍵(TDEK)292を含むデバイス情報コンテナ290の両方を復号化するべく用いる。
【0074】
ステップ1130−1150においてチップセット暗号化ストレージデバイスおよびコンテナを復号した後、「他のデバイスの一時デバイス暗号鍵をコンテナから取得」ステップ1160に進む。上述したように、デバイス情報コンテナ290はさらに、プラットフォームのチップセットでは暗号化されていないデバイスの暗号鍵を含む。そして、「他のデバイスの一時デバイス暗号鍵を用いて他のストレージデバイスを復号化」ステップ1170に進む。ホスト暗号化ソフトウェア214のようなホスト暗号化ソフトウェアによって暗号化されたデータの場合は、元々の復号鍵はホスト暗号化ソフトウェアに転送されて、他のストレージデバイスに格納されているデータが復号化される。
【0075】
図11を参照しつつ説明したステップは、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータへのアクセスを制御する。本明細書に記載されているデータへのアクセスを制御するためのフレームワークおよびインフラストラクチャはさらに、プラットフォーム間でのデータおよびストレージデバイスのマイグレーションをサポートすると共に、鍵回復処理および盗難通知処理をサポートする。チップセット暗号化デバイスおよび非チップセット暗号化デバイスの両方の暗号鍵を管理する共通フレームワークを提供することによって、どちらのタイプのデバイスも、1回のマイグレーションイベント、回復イベント、または盗難効果抑止イベントで、マイグレーションさせることが可能となる。
【0076】
さらに、ストレージデバイスに対応付けられているユーザ毎に暗号鍵を格納することによって、データおよび/またはストレージデバイスは、ユーザ単位の粒度で、マイグレーションおよび/または回復を行うことができる。対象となるプラットフォームのデータへのアクセスは、当該プラットフォームのユーザアカウント情報に選択されたユーザのみを含むことによって、これらの選択されたユーザに限定することができる。中央集権的な身元情報管理サービスは、対象となるプラットフォームへのアクセスが適切であるかを各ユーザについて確認するべく照合され得る。中央集権的な盗難管理サービスもまた、ストレージデバイスが盗難に遭っていないことを確認するべく利用され得る。フレームワークはUSBストレージデバイス等のスタンドアローンなストレージデバイスの暗号鍵も含むので、これらのスタンドアローンな暗号化デバイスに対するアクセスを、当該ストレージデバイスがプラットフォームに取り付けられていようといまいと、ディセーブルすることができる。このため、盗難に遭ったUSBデバイスは、正当なユーザがログインするまで、または、管理者が盗難通知を破棄するまで、ディセーブルされ得る。
【0077】
図5は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0078】
図6は、本発明の一実施形態に係る、デバイスの初期化に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0079】
図7は、本発明の一実施形態に係る、デバイスに格納されているデータの暗号鍵を取得した後のデバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0080】
図8は、本発明の一実施形態に係る、デバイスのマイグレーションに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0081】
図9は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0082】
図10は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの回復に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0083】
本明細書に記載するメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、または、これらの実装方法の組み合わせによって実装されるとしてよい。本発明の実施形態は、少なくとも1つのプロセッサと、データストレージシステム(揮発性および不揮発性メモリおよび/またはストレージ素子を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを備えるプログラム可能システムにおいて実行されるコンピュータプログラムとして実装され得る。
【0084】
プログラムコードを入力データに適用して、本明細書に記載した機能を実行すると共に出力情報を生成するとしてよい。本発明の実施形態はさらに、本発明の動作を実行するための命令、または、本明細書に記載した構造、回路、装置、プロセッサ、および/または、システムの構成要素を定義するHDL等のデザインデータを含む機械アクセス可能媒体を含む。このような実施形態は、プログラム製品とも呼ばれる。
【0085】
上述した機械アクセス可能格納媒体は、これらに限定されないが、機械またはデバイスによって製造または形成される有形の粒子の配置、例えば、ハードディスク等の格納媒体、フロッピー(登録商標)ディスクを含むその他の任意の種類のディスク、光ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)、書き換え可能コンパクトディスク(CD−RW)、および光磁気ディスク、リードオンリーメモリ(ROM)等の半導体デバイス、ダイナミックランダムアクセスメモリ(DRAM)等のランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、消去可能プログラム可能リードオンリーメモリ(EPROM:登録商標)、フラッシュプログラム可能メモリ(FLASH)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM(登録商標))、磁気カードまたは光カード、または電子命令を格納するのに適したその他の任意の種類の媒体を含むとしてよい。
【0086】
出力情報は、公知の方法で、1以上の出力デバイスに適用されるとしてよい。本願の目的に鑑みれば、処理システムは、例えば、デジタルシグナルプロセッサ(DSP)、マイクロコントローラ、特定用途向け集積回路(ASIC)またはマイクロプロセッサ等のプロセッサを備えるシステムであればどのようなシステムをも含む。
【0087】
プログラムは、処理システムとの通信を実現するべく、高級プロシージャ言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムはさらに、所望されれば、アセンブリ言語または機械言語で実装されるとしてもよい。尚、本明細書に記載するメカニズムの範囲は、特定のプログラミング言語に限定されるものではない。どの場合であっても、コンパイラ方式またはインタプリタ方式の言語であってよい。
【0088】
本明細書では、プラットフォームに対応付けられるストレージデバイスに格納されているデータを包括的に保護するための方法およびシステムの実施形態を記載している。本発明の実施形態を具体的に図示および説明してきたが、本願の特許請求の範囲から逸脱することなく、多くの点で変更、変形および修正を加えることができるのは当業者には明らかである。従って、当業者であれば、本発明を幅広く解釈した場合にその範囲から逸脱することなく、変更および変形が可能であると想到するであろう。本願の特許請求の範囲は、本発明の真の範囲および精神に含まれる上述したような変更、変形および修正を全て網羅する。
【技術分野】
【0001】
著作権に関する情報
本明細書に含まれる内容は、著作権に基づいて保護されている。著作権所有者は、米国特許商標庁の特許ファイルまたは特許レコードに保存されている特許開示内容については何人が複製しようとこれに異を唱えることはないが、それ以外については著作権等に関する全ての権利を保有する。
【0002】
本開示は概して、コンピュータシステムに格納されているデータの保護に関する。
【背景技術】
【0003】
企業が有するデータはますます、移動する機会が増えると共に利用される箇所が多くなり、大量となってきている。社員の出張やさまざまな就業形態を可能とするべく、データを物理的に保護された設備から取り出すことは日常的に行われている。また、企業がビジネスの機会をほかの都市、州(都道府県)、および国で見出すと、データは地理的にさまざまな場所に分散する。そしてデータ量は、発生するスピードの点でも、提示され得るマルチメディア形式の点でも、大量である。上述した要因すべては、移動時および保存時の両方においてデータの保護が必要となるネットワーク接続ストレージ、帯域幅が増えたサブシステム、新しい格納媒体の開発を後押ししている。
【0004】
保存データ(Data at Rest:DAR)暗号化技術は、紛失または盗難にあったストレージデバイスに格納されているデータが不正利用されないようにするための技術であり、インターネット等のネットワークでデータがばら撒かれることを防いでいる。DAR暗号化技術は、ストレージデバイスの紛失および盗難が不可避である以上、発生してもストレージデバイスに格納されているデータの紛失および盗難につながらないように、自動的且つ即座に応答するメカニズムとして機能する技術である。
【0005】
コンピュータプラットフォームに関連付けられているさまざまなストレージデバイスに格納されているデータを保護する上での課題の1つに、暗号化技術および鍵管理方法が暗号化を行う主体によって異なる点が挙げられる。ストレージのハードウェアには暗号化機能が元々組み込まれている場合があるが、この暗号化機能は、ストレージのハードウェアのベンダ毎に固有であるので、データにアクセスするには、ストレージのハードウェアのベンダのツールを利用しなければならない。ソフトウェアに基づく暗号化の場合は、ハードウェアに基づく暗号化の場合とは異なる鍵生成および管理サービスが必要となるので、ソフトウェアで暗号化されたデータにアクセスするにはソフトウェアのベンダのツールを利用しなければならない場合がある。このため、盗難または紛失が発生した際の鍵の回復およびデータのマイグレーションについて計画を立てる場合、任意のコンピュータプラットフォームに対応付けられたデータ全てを保護および/または回復するためには多くの異なるベンダのツールを利用しなければならない可能性がある。
【図面の簡単な説明】
【0006】
【図1】本発明の実施形態に係る、コンピュータプラットフォーム内のストレージデバイスに格納されているデータについて包括的な保護を提供するシステムを示す図である。
【0007】
【図2】本発明の一実施形態に係る、図1のプラットフォームに格納されているデータの暗号化の管理に関連して、図1のチップセットおよび管理エンジン(Manageability Engine:ME)をさらに詳細に示す図である。
【0008】
【図3】本発明の一実施形態に応じた、ストレージデバイスに格納されているデータを暗号化するための暗号鍵同士の関係を示す図である。
【0009】
【図4】コンピュータプラットフォームのストレージデバイスへのアクセスを制御する場合の、図2のコンポーネント同士のやり取りを示すデータフロー図である。
【0010】
【図5】本発明の一実施形態に係る、デバイスアクセスイベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0011】
【図6】本発明の一実施形態に係る、デバイス初期化イベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0012】
【図7】本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0013】
【図8】本発明の一実施形態に係る、プラットフォーム間でのデバイスのマイグレーションに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0014】
【図9】本発明の一実施形態に係る、盗難にあったプラットフォームの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0015】
【図10】本発明の一実施形態に係る、盗難にあったプラットフォームの回復に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0016】
【図11】本発明の一実施形態に係る、図1および図2のプラットフォームのアクセス制御コンポーネントの動作を示すフローチャートである。
【発明を実施するための形態】
【0017】
本発明の実施形態は、コンピュータプラットフォームが備えるストレージデバイスに格納されているデータを包括的に保護するための方法、装置、システム、およびコンピュータプログラム製品を提供し得る。データの保護は、プラットフォームのユーザを、ストレージデバイスに格納されているデータへのアクセスを許可する前に、認証することによって実現される。さらに、プラットフォームに対応付けられているストレージデバイスに格納されているデータを暗号化するのに用いられる鍵は、ストレージデバイスを暗号化するためにチップセットのハードウェアによって用いられる鍵、ならびに、暗号化ソフトウェアおよび/またはストレージデバイスのハードウェアによって利用される鍵も含め、全てセキュアに管理することによってデータを保護する。また、プラットフォームおよび/またはストレージデバイスの盗難が検知された場合には格納データへのアクセスを防ぐべく盗難抑止メカニズムを設けることによっても、データを保護する。
【0018】
図1は、本発明の実施形態に係る、コンピュータプラットフォーム内のストレージデバイスに格納されているデータについて包括的な保護を提供するシステムを示す図である。プラットフォーム100は、デスクトップ管理インターフェース(DMI)111を介してチップセット120に接続されているプロセッサ110を備える。チップセット120は、プラットフォーム100の設定および動作を管理する管理エンジン(Manageability Engine:ME)130を有する。管理エンジン(ME)130は、マイクロプロセッサとして実装され得る。一実施形態によると、管理エンジン(ME)130は、監査イベントの収集、ユーザの認証、周辺機器へのアクセスの制御、プラットフォーム100のストレージデバイスに格納されているデータを保護するための暗号鍵の管理、およびネットワークコントローラ160を介したエンタープライズサービス162との間のインターフェースとしての機能を実行する。管理エンジン(ME)130は、エンタープライズサービス162を利用することによって、プラットフォーム100等のプラットフォームの設定及び管理に関するエンタープライズ全体でのポリシーとの一貫性を保つ。
【0019】
デスクトップ管理インターフェース(DMI)111は、プロセッサ110を、チップセット120のI/Oコマンドデコードモジュール140に接続する。一実施形態によると、I/Oコマンドデコードモジュール140は、専用シリコンチップを用いることによって格納コマンドのデコードおよびその他の加速処理を実行する汎用コントローラである。I/Oコマンドデコードモジュール140の機能は、特定用途向けハードウェアで全て実装されるとしてもよい。管理エンジン(ME)130は、ポリシーおよび暗号鍵を設定することによって、I/Oコマンドデコードモジュール140および暗号化エンジン150の挙動を制御する。管理エンジン(ME)130、I/Oコマンドデコードモジュール140、および暗号化エンジン150の動作については、より詳細に後述する。
【0020】
プラットフォーム100はさらに、ダイナミックランダムアクセスメモリ(DRAM)112、チップセット120内のスタティックランダムアクセスメモリ(SRAM)122、およびフラッシュメモリ190等のメモリデバイスを備える。プラットフォーム100に最大電力が供給されている場合、DRAM112のうち上部メモリ領域(UMA)と呼ばれる一部分、ME−UMA114が、管理エンジン(ME)130によって利用可能な状態となっている。プラットフォーム100のホストオペレーティングシステム(図1には不図示)は通常、BIOS(Basic Input Output System)によって設定されているメモリ分離メカニズムのために、ME−UMA114にはアクセスすることができない。このメモリ分離メカニズムは、ホストオペレーティングシステムが実行される前に、ME−UMAメモリ114へのアクセスに鍵を掛ける。DRAM112のこの部分を、管理エンジン130に利用させるべく、ホストオペレーティングシステムから分離することによって、オペレーティングシステムに感染し得るウィルス等のマルウェアから管理エンジン130の完全性を保護する。
【0021】
フラッシュメモリ190は、プラットフォーム100を初期化する場合に用いられるファームウェアを有する。この初期化ファームウェアには、BIOSファームウェア192、ネットワークコントローラ160を設定するためのネットワークコントローラファームウェア194、およびチップセット120を設定するためのチップセットファームウェア196が含まれる。管理エンジン(ME)130およびI/Oコマンドデコードモジュール140のために、チップセットファームウェア196の完全性は、フラッシュメモリ190に格納される前にデジタル署名を確認することによって保証される。管理エンジン(ME)130によって利用されるデータ、例えばユーザ認証情報は、管理エンジン(ME)130内の暗号化ファームウェアによって暗号化されて、フラッシュメモリ190のデータ領域198に格納されるとしてよい。
【0022】
図1に示す実施形態のプラットフォーム100はさらに、I/Oコントローラ170を介してアクセス可能なさまざまな種類のストレージデバイスを備えている。例えば、ストレージインターフェース171を介してアクセス可能な非チップセット暗号化ストレージデバイス172、および、ストレージインターフェース181を介してアクセス可能なチップセット暗号化ストレージデバイス180がある。ストレージインターフェース171および181は、ストレージデバイス172および180として設けられるストレージの種類に応じて、不揮発性メモリ(NVM)用の不揮発性メモリホストコントローラインターフェース(HCI)、または、SATA(Serial Advanced Technology Attachment)ストレージ用のAHCI(Advanced HCI)インターフェースとして実装されるとしてよい。
【0023】
ストレージデバイス172および180に格納されているデータは、暗号化されているとしてよい。チップセット暗号化ストレージデバイス180に格納されているデータは、チップセット120の暗号化エンジン150によって暗号化される。チップセット暗号化ストレージデバイス180はさらに、メタデータ182を格納するために確保された領域を含む。メタデータ182は、ストレージデバイス180のための少なくとも1つのデバイス暗号鍵(DEK)184、および、管理エンジン(ME)130が利用するその他のメタデータを含む。メタデータ182は、I/Oコマンドデコードモジュール140およびI/Oコントローラ170がI/Oコマンドを処理している間にプロセッサ110で実行されるアプリケーションによって上書きされないように保護される。
【0024】
一実施形態によると、チップセット120の暗号化エンジン150によってデータの暗号化または復号化が実行される前に、管理エンジン(ME)130が、暗号化エンジン150と対応付けられているメモリレジスタに対して、入出力動作に関わるストレージデバイスに対応付けられているデバイス暗号鍵(DEK)、例えばDEK184を挿入する。1つの物理ストレージデバイスが論理的に複数の異なる論理デバイスまたはパーティションに分割されている場合、各論理デバイスまたはパーティションそれぞれが、対応するデバイス暗号鍵(DEK)を持っており、各DEKが暗号化エンジン150の対応するメモリレジスタに挿入される。
【0025】
非チップセット暗号化ストレージデバイス172に格納されているデータは、暗号化ソフトウェアまたはストレージのハードウェア自体によって暗号化されており、暗号化エンジン150によっては暗号化されてはいない。非チップセット暗号化ストレージデバイス172は、チップセット暗号化ストレージデバイス180が格納するメタデータ182と同様のチップセットが生成するメタデータは含まない。
【0026】
プロセッサ110で実行されているソフトウェアが発行する書込みコマンドに応じたプラットフォーム100のコンポーネントの動作の一例として、特定のストレージデバイスを対象とするデータ書込みコマンドが、DMIインターフェース111を介して、I/Oコマンドデコードモジュール140に対して発行される。I/Oコマンドデコードモジュール140は、このコマンドをデコードして、I/Oコントローラ170にデータ部分を特定する。チップセット暗号化ストレージデバイス180を対象とする書込みコマンドの場合、I/Oコントローラ170は「オンザフライ」で暗号化エンジン150を介してデータをルーティングする。この時、暗号化エンジン150は、管理エンジン(ME)130から提供されたチップセット暗号化ストレージデバイス180用のデバイス暗号鍵(DEK)、例えばDEK184を用いてこのデータを暗号化する。暗号化エンジン150は、ストレージインターフェース181を介してチップセット暗号化ストレージデバイス180に送信されるように、暗号化されたデータをI/Oコントローラ170に戻す。I/Oコマンドデコードモジュール140およびI/Oコントローラ170は、ストレージインターフェース181を抽象化して、メタデータ182を格納している領域をプロセッサ110で実行されているアプリケーションによるアクセスから保護して、メタデータ182が上書きされないようにする。
【0027】
非チップセット暗号化ストレージデバイス172とは、チップセット120の暗号化エンジン150によって暗号化されていないデータを格納しているUSBデバイス、NAND型フラッシュメモリデバイス、ファイヤーワイヤデバイス、またはその他の種類のストレージデバイスを表すとしてよい。非チップセット暗号化ストレージデバイス172を対象とする書込みコマンドの場合、I/Oコントローラ170は、暗号化のために暗号化エンジン150を介してデータをルーティングすることはない。これに代えて、非チップセット暗号化ストレージデバイス172は、ホストプロセッサ110で実行されているソフトウェアを用いて、または、ストレージデバイス172に組み込まれている暗号化ハードウェアによって暗号化され得る。非チップセット暗号化ストレージデバイス172が表すストレージデバイスは、チップセット120の暗号化エンジン150を用いて暗号化されるようには設定されていないが、管理エンジン(ME)130によって保護および管理されている、プラットフォーム100内のストレージデバイスである。
【0028】
非チップセット暗号化ストレージデバイス172にも、1以上の暗号鍵が対応付けられており、これらの暗号鍵は一時デバイス暗号鍵(TDEK)(不図示)と呼ばれる。例えば、ソフトウェアに基づく暗号化は通常、デバイスまたはパーティションの概念を用いるのではなく、ストレージのボリュームの概念を用いて行われ、対応付けられる暗号鍵はボリューム暗号鍵(VEK)と呼ばれる。ボリューム暗号鍵は、管理エンジン(ME)130に格納されて管理される、あるタイプの一時デバイス暗号鍵(TDEK)の一例である。管理エンジン(ME)130は、プラットフォームに結び付けられた暗号鍵を管理すると共に、プラットフォームに結び付けられていない暗号鍵をも管理する。例えば、非チップセット生成暗号鍵、例えば、暗号化ソフトウェアによって生成される一時デバイス暗号鍵は通常、プラットフォームに結び付けられない。ストレージのハードウェアによって生成され、デバイス自体で物理的に格納されているDEKは、当該デバイスには結び付けられているが、必ずしも当該デバイスを備えるプラットフォームに結び付けられることはない。一時DEKは、それを用いて暗号化したデータを格納している物理ストレージデバイスには格納されておらず、プラットフォームにもデバイスにも結び付けられていない。暗号鍵がプラットフォーム/デバイスに結び付けられていようといまいと、管理エンジン(ME)130は暗号鍵を同様に管理する。
【0029】
管理エンジン(ME)130は、プラットフォーム100と対応付けられる全てのデータの暗号化を管理する。これには、チップセット120内の暗号化エンジン150によって実行される暗号化、および、チップセットで実行されるのではなく、プロセッサ110で実行されるソフトウェアまたはストレージハードウェア自体で実行されるデータの暗号化も含まれる。管理エンジン(ME)130が提供するサービスの1つに、プラットフォーム100のどのコンポーネントがデータの暗号化を実行するかに関わらず、共通のフレームワークおよびユーザインターフェースにおいて暗号鍵を管理することが挙げられる。データの暗号化を管理するためのチップセット120および管理エンジン(ME)130のフレームワークおよび動作に関する詳細はさらに、図2を参照しつつ後述する。
【0030】
図2は、本発明の一実施形態に係る、図1のチップセット120、管理エンジン(ME)130、および管理エンジン(ME)130が管理するデータをさらに詳細に示す図である。チップセット120は、BIOS/ホストソフトウェア210とやり取りを行う。BIOS/ホストソフトウェア210は、ブート前認証プロセスで図1のBIOSファームウェア192にロードされるとしてよい。BIOS/ホストソフトウェア210は、ブート前認証プロセスでプラットフォーム100のユーザを認証するユーザ認証モジュール212と、非チップセット暗号化ストレージデバイス172等のデバイスに格納されているデータを暗号化するべく用いられるホスト暗号化ソフトウェア214とを有する。
【0031】
ユーザ認証モジュール212が実行するユーザ認証プロセスは、ユーザのパスワードを確認すること、バイオメトリクスデータ、スマートカードの利用、またはその他の認証プロセスを含むとしてよい。ユーザ認証モジュール212は、ブート前認証プロセスにおいて、認証結果を、チップセット120の管理エンジン(ME)130内の身元情報(ID)管理ファームウェア239に与えるとしてよい。
【0032】
チップセット120において、管理エンジン(ME)130は、MEカーネル231と、ME共通サービス233と、盗難抑止ファームウェア235と、セキュリティ/鍵管理ファームウェア237と、身元情報管理ファームウェア239とを持つ。これらのコンポーネントはそれぞれ、さらに詳細に後述する。
【0033】
MEカーネル231は、SRAM122およびDRAM112の一部分(例えば、ME−UMA114)のメモリ利用、フラッシュメモリ190におけるデータの持続的な格納、およびアクセス制御等の基本的な機能を提供する。MEカーネル231は、I/Oコマンドデコードモジュール140および暗号化エンジン150の動作を制御する。
【0034】
ME共通サービス233は、複数の異なるファームウェアモジュールが共通に必要とするサービスを含み、セキュリティサービス、ネットワークサービス、およびプロビジョニングサービスを含む。ME共通サービス233が提供するセキュリティサービスは一般的に、HTTPダイジェスト認証およびケルベロス認証の両方を含むユーザ認証、Microsoft Active Directoryおよび/またはその他のサービスを用いるドメイン認証、クライアントとサーバのクロックを同期させるクロック同期サービス、およびセキュリティ監査サービスを含む。
【0035】
ME共通サービス233が提供するネットワークサービスは、トランスミッション・トランスポート・プロトコル/インターネット・プロトコル(TCP/IP)スタック、トランスポート層セキュリティ(TLS)、ハイパーテキスト・トランスポート・プロトコル(HTTP)、シンプル・オブジェクト・アクセス・プロトコル(SOAP)、ウェブ・サービス・フォー・マネジアビリティ(WS−MAN)、および、ホストベースのTLSインターフェースが呼び出したIntelローカル・マネジアビリティ・サービス(LMS)を含む。
【0036】
ME共通サービス233が提供するプロビジョニングサービスは、プラットフォーム100に対してエンタープライズソフトウェアをプロビジョニングするべく、図1のエンタープライズサービス162と共に用いられる。これらのプロビジョニングサービスは、2つのデプロイメントモード、つまり、ゼロタッチおよびワンタッチをサポートしている。ゼロタッチモードの場合、デプロイメント証明アンカーキーは、図1のフラッシュメモリ190のデータ領域198等のデータストレージ領域に格納され、公知の認証局鍵に基づいて、プラットフォームの所有権を取るべく用いられるIT信任状を認証する。ワンタッチモードでは、セットアップおよびデプロイメントのタスクをリモートで完了させるべく用いられる組織証明書、対称鍵、および信頼しているホストを設定する。
【0037】
管理エンジン(ME)130はさらに、BIOS/ホストソフトウェア210のユーザ認証モジュール212との間でやり取りを行う身元情報管理ファームウェア239を持つ。身元情報管理ファームウェア239は、ユーザの認証情報をユーザアカウントメタデータ223と比較するとしてよい。ユーザアカウントメタデータ223は、フラッシュメモリ190のデータ領域198のユーザ/コンテナメタデータ230部分に格納されると図示されている。身元情報管理ファームウェア239はさらに、管理エンジン(ME)130のセキュリティ/鍵管理ファームウェア237との間でやり取りを行って、チップセット暗号化ストレージデバイス180内のブート前認証(PBA)デバイス情報コンテナ280にもユーザ情報が格納されていることを確認するとしてよい。このようにチップセット暗号化ストレージデバイス180に対するユーザのアクセスを確認することによって、チップセット暗号化ストレージデバイス180に格納されているデータに対する保護がさらに強化される。
【0038】
セキュリティ/鍵管理ファームウェア237は、上述したようにユーザ認証モジュール212との間でやり取りを行なって、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータへのアクセスが許可される前にユーザを認証する。セキュリティ/鍵管理ファームウェア237は、鍵管理情報を管理して、プラットフォームに対応付けられているメモリまたはストレージデバイス、例えば、フラッシュメモリ190またはチップセット暗号化ストレージデバイス180にこの鍵管理情報を格納する。鍵管理情報が格納される場所は、利用可能なストレージ空間および格納されるべきデータの量に応じて決まり、本発明は鍵管理情報を格納する構成について特定の構成に限定されるものではない。一実施形態によると、セキュリティ/鍵管理ファームウェア237は、プラットフォーム100に結び付けられているプラットフォームコンテナ鍵(PCK)を用いて鍵管理情報を暗号化する。
【0039】
セキュリティ/鍵管理ファームウェア237が管理する鍵管理情報は、チップセット(つまり、チップセット120内の暗号化エンジン150)によって生成され、メタデータ182に格納されている、デバイス暗号鍵(DEK)184と呼ばれる暗号鍵を含む。セキュリティ/鍵管理ファームウェア237が管理するその他の種類の鍵には、例えばホスト暗号化ソフトウェア214によって生成される一時デバイス暗号鍵(TDEK)282および292として図示されている暗号鍵が含まれる。TDEK282は、チップセット暗号化ストレージデバイス180内の直接管理デバイス情報コンテナ280に格納されており、TDEK292はフラッシュメモリ190の間接管理デバイス情報コンテナ290に格納されていることが図示されている。「直接管理」という表現を用いているのは、チップセット120によって直接暗号化されていると共に管理エンジン(ME)130によって管理されているデバイスを意味している。一方で、「間接管理」という表現を用いているのは、当該デバイスはチップセット120によって暗号化されていないが当該デバイスに格納されているデータの暗号鍵は管理エンジン(ME)130によって管理されていることを意味している。セキュリティ/鍵管理ファームウェア237の動作については、さらに詳細に後述する。
【0040】
管理エンジン(ME)130はさらに、盗難抑止ファームウェア235を持つと図示されている。盗難抑止ファームウェア235は、図1のエンタープライズサービス162等の中央サーバによって、盗難通知イベント等のイベントに応答するように構成され得る。このような盗難通知イベントは、例えば、失敗に終わったログインの回数が最大値に達したことを管理エンジン(ME)130が検知した場合、または、ユーザから盗難が報告された場合に、トリガされるとしてよい。一実施形態によると、プラットフォーム100は、認証された位置からプラットフォームが移動させられると、盗難通知サーバに信号を送信するように構成されている感知ハードウェア(不図示)を備えるとしてよい。盗難通知イベントに応答して、盗難抑止ファームウェア235は、盗難の影響を抑制する処理を実行するとしてよい。例えば、プロセッサ110またはチップセット120の一部をディセーブルしたり、フラッシュメモリ190へのアクセスを禁止したり、フラッシュメモリ190からデバイス情報コンテナ290を削除したり、チップセット暗号化ストレージデバイス180のメタデータ182の内容を削除したり、または、デバイス情報コンテナ290、フラッシュメモリ190、メタデータ182、および/あるいは、チップセット暗号化ストレージデバイス180のデバイス情報コンテナ280の中身へのアクセスをプログラムを用いて禁止するとしてよい。
【0041】
盗難抑止ファームウェア235は、デバイス情報コンテナ280および290が有するデータを管理する。一例を挙げると、デバイス情報コンテナ280および290は、一時デバイス暗号鍵(TDEK)282および292、例えば、非チップセット暗号化ストレージデバイス172を暗号化および復号化するべくホスト暗号化ソフトウェア214が用いる鍵を持つ。非チップセット暗号化ボリューム暗号鍵はさらに、ストレージのハードウェア自体によって生成されて、管理エンジン(ME)130のセキュリティ/鍵管理ファームウェア237によってデバイス情報コンテナ280および290に格納されている暗号鍵を含むとしてよい。盗難抑止ファームウェア235の動作については、さらに詳細に後述する。
【0042】
デバイス情報コンテナ280および290はそれぞれ、対応するマイグレーションパッケージ280Mおよび290Mを含むものと図示されている。マイグレーションパッケージ280Mおよび290Mは、プラットフォーム100に対応付けられている全てのストレージデバイスについての暗号鍵の共通レポジトリを提供するべく、管理エンジン130およびセキュリティ/鍵管理ファームウェア237によって用いられる。一実施形態によると、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172の鍵情報はそれぞれ、マイグレーションパッケージ280Mおよび290Mに格納されている。マイグレーションパッケージ280Mおよび290Mに格納されている鍵の種類については、図3を参照しつつさらに詳細に説明する。
【0043】
図3は、ストレージデバイスに格納されているデータを暗号化するための暗号鍵同士の関係を示す図である。一実施形態によると、図2のセキュリティ/鍵管理ファームウェア237は、任意のデバイス暗号鍵(DEK)310−310nまたは一時デバイス暗号鍵(TDEK)320a−320nを、デバイスラッピング鍵(DWK)330と呼ばれる別の鍵を用いて、さらにラッピング(暗号化)することによって、対応付けられたストレージデバイスが盗難されないように保護する。DWKは、例えば、動的に取得される2つの値から導き出されるとしてよい。第1の値は、ユーザから取得されるパスフレーズである。第2の値は、製造時にハードウェアに埋め込まれた、ヒューズ鍵とも呼ばれる、チップセット鍵である。各チップセット鍵は、特定のプラットフォームに固有であるが、外部からは読み出せない。パスフレーズおよびチップセット鍵は、デバイスラッピング鍵(DWK)を出力する公共鍵暗号化基準(PKCS#5)鍵導出関数に与えられる。デバイスラッピング鍵(DWK)はシステムに電源が入れられる度に導き出されるので、DWK内部にラッピングされているDEKまたはTDEKを取得するためには、盗難者はユーザのパスフレーズを知っていなければならないと共にデバイスラッピング鍵(DWK)のラッピングを解除するチップセット鍵へのアクセスを有していなければならない。
【0044】
このため、上述したようなデバイスラッピング鍵(DWK)を用いて暗号化されたストレージデバイスは、DEKまたはTDEKをラッピングするためにチップセット鍵/ヒューズ鍵を利用しているので、データを暗号化したプラットフォームに結び付けられる。このようにデバイスをプラットフォームに結びつけることによって、チップセット暗号化ストレージデバイス180または非チップセット暗号化ストレージデバイス172のようなストレージデバイスを、攻撃者が、ストレージデバイスに格納されているデータの暗号化の回避を試みるための攻撃ツールキットが利用可能な別のプラットフォームに入れないようにする。
【0045】
一実施形態によると、デバイスラッピング鍵(DWK)330は、別の鍵を用いてさらにラッピングされて、チップセット120内にある間を除いてDWKがクリア状態になることがないようにする。このような別の鍵には、ユーザ鍵340aおよび340bが含まれる。デバイスラッピング鍵(DWK)330、ならびに、DWKがラッピングするDEKおよびTDEKといった暗号鍵のラッピングを解除するためには、プラットフォームのユーザは上述したように認証されなければならない。
【0046】
セキュリティ/鍵管理ファームウェア237によって生成されたデバイスラッピング鍵(DWK)はプラットフォームに結び付けられているので、ストレージデバイスを別のプラットフォームにマイグレーションさせるには別の方法が必要となる。例えば、元々のプラットフォームが動作不可能に陥った場合、別のプラットフォームにハードドライブをマイグレーションさせる必要がある。このようなマイグレーションは、例えば管理エンジン(ME)130と共に図1に示したエンタープライズサービス162を用いることで実行されるとしてよい。エンタープライズサービス162は、回復サーバおよび/またはマイグレーションサーバを提供するとしてよい。
【0047】
一実施形態によると、データ回復を容易にするべく、セキュリティ/鍵管理ファームウェア237はさらに、別のプラットフォームで利用され得るプラットフォーム非依存性の鍵(図3には不図示)を生成する。このようなプラットフォーム非依存性の鍵は通常、少なくとも256ビットの乱数であるトークンによってラッピングされて、マイグレーション鍵350を生成する。セキュリティ/鍵管理ファームウェア237は、このマイグレーション鍵350を用いてデバイスラッピング鍵(DWK)330をラッピングして、プラットフォーム間での暗号化ストレージデバイスのマイグレーションを容易にするとしてよい。マイグレーション鍵350もまた、プラットフォームの特定のユーザには依存していないので、ユーザアカウント情報が破損して、デバイスラッピング鍵(DWK)330のラッピングを解除するためにユーザ鍵340aおよび340bを利用できない場合、デバイスラッピング鍵(DWK)330の回復を容易にするとしてよい。
【0048】
一実施形態によると、プラットフォーム非依存性のマイグレーション鍵350は、マイグレーションパッケージ280Mおよび290Mに格納されており、マイグレーション鍵350を生成するべく用いられたトークンは、リモートセキュアサーバに格納されるとしてよい。一実施形態によると、データのマイグレーションおよび回復をさらに容易にするべく、プラットフォームに結び付けられているデバイスラッピング鍵(DWK)330の複製をリモートセキュアサーバに格納する。このようにすることでデバイスラッピング鍵(DWK)330を、ラッピングした一時デバイス暗号鍵(TDEK)320a−320nおよびデバイス暗号鍵(DEK)310a−310nを復号化するべく用いることができる。
【0049】
図3に示すようにすべてのDEK310a−310nおよびTDEK320a−320nを同一のデバイスラッピング鍵でラッピングすることによって、管理エンジン(ME)130および/またはセキュリティ/鍵管理ファームウェア237は、プラットフォームに対応付けられている全てのストレージデバイスを一度にアンロックすることができる。このような共通のラッピング鍵DWK330によれば、個々のストレージデバイスは独自の暗号鍵DEK310a−310nおよびTDEK320a−320nを持っているとしても、ストレージデバイスのロック粒度はプラットフォーム単位で実行し得るものとすることができる。ストレージデバイスのアンロックについては、図7を参照しつつさらに詳細に後述し、ストレージデバイスの初期化については、図6を参照しつつさらに詳細に後述する。
【0050】
図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)として実装されるとしてよい。
【0051】
動作4.4において、セキュリティ/鍵管理ファームウェア237は、コンテナ鍵220を用いて、チップセット暗号化ストレージデバイス180内のメタデータ182を、デバイス暗号鍵(DEK)184を含めて復号化する。セキュリティ/鍵管理ファームウェア237は、DEK184を用いて、チップセット暗号化ストレージデバイス180内に格納されているデータを復号化する。コンテナ鍵220はさらに、デバイス情報コンテナ280に含まれているデータを、TDEK282を含めて、復号化するべく用いられる。動作4.5において、セキュリティ/鍵管理ファームウェア237は、盗難抑止ファームウェア235との間でやり取りを行なって、プラットフォーム100に対応付けられているストレージデバイスが盗難通知に基づいてアクセス不能になっていないことを確かめる。動作4.6において、盗難抑止ファームウェア235は、デバイス情報コンテナ290にアクセスして、プラットフォーム100に対応付けられているストレージデバイスの状態に関する情報を取得する。盗難が検出あるいは報告されている場合、または、盗難通知を受け取っている場合、セキュリティ/鍵管理ファームウェア237は、プラットフォーム100へのアクセスを拒絶する等の救済措置をとるべく、盗難抑止ファームウェア235に制御を移行する。プラットフォーム100へのアクセスを拒絶するべく実行し得る動作には、ハードウェアをディセーブルすること、鍵および/あるいは鍵コンテナを削除すること、マイグレーションパッケージへのアクセスを拒絶すること、ならびに/または、鍵および/あるいは鍵コンテナへのアクセスを拒絶することが含まれるとしてよい。鍵および/あるいは鍵コンテナを削除すること、または、鍵および/あるいは鍵コンテナへのアクセスをディセーブルすることによって、鍵コンテナを復号化しようとする不正な試みを阻止することができる。
【0052】
さらに図4を参照しつつ説明を続けると、動作4.7において、盗難通知を受け取っていない場合、セキュリティ/鍵管理ファームウェア237は、コンテナ鍵220を用いて、一時デバイス暗号鍵(TDEK)292を含むデバイス情報コンテナ290内に格納されているデータを復号化する。ここで、一時デバイス暗号鍵(TDEK)292は、非チップセット暗号化ストレージデバイス172に格納されているデータを暗号化するためにホスト暗号化ソフトウェア214または元々のストレージのハードウェアによって用いられる暗号鍵を含む得ることに留意されたい。動作4.8において、セキュリティ/鍵管理ファームウェア237は、一時デバイス暗号鍵(TDEK)292をホスト暗号化ソフトウェア214に与えて、動作4.9において、ホスト暗号化ソフトウェア214は非チップセット暗号化ストレージデバイス172を復号化する。一時デバイス暗号鍵(TDEK)292が元々のストレージのハードウェアによって生成されている場合、TDEK292は非チップセット暗号化ストレージデバイス172のデータを復号化するべく用いられ得る。
【0053】
このため、ユーザは、システムに1回ログインすると、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172に格納されている暗号化データにアクセスできる。管理エンジン130のセキュリティ/鍵管理ファームウェア237は、チップセットによって暗号化されたデバイスおよびプラットフォームのチップセットによっては暗号化されていないデバイス両方の復号化のための鍵を制御することによって、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータを包括的に保護する。デバイスへのユーザアクセスを制御するべく身元情報管理ファームウェア239と協働し、且つ、盗難通知に応答するべく盗難抑止ファームウェア235と協働することによって、保護されているプラットフォームに対応付けられているデータの安全性が保証される。
【0054】
図5は、本発明の一実施形態に係る、デバイスアクセスイベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。図5に示すステップは、管理エンジン(ME)130および/または管理エンジン(ME)130の構成要素であるセキュリティ/鍵管理ファームウェア237によって実行されるものとして説明される。「デバイスアクセスイベント」ステップ510において、管理エンジン(ME)130は、プラットフォームのリセット、または、非チップセット暗号化ストレージデバイス172等のデバイスのプラットフォームへのホットプラグなどを表すデバイスアクセスイベントを受け取る。そして、「デバイスはチップセットによって暗号化されているか」の判断ポイント512に進み、挿入されたデバイスがチップセットによって暗号化されているか否かを判断する。このような判断を行なうには、メタデータ182等のメタデータがストレージデバイスにあるか否かを確認するとしてよい。デバイスがチップセットによって暗号化されていれば、「デバイスメタデータ内でデバイス暗号鍵(DEK)を検索」ステップ520に進む。ストレージデバイスのメタデータ182内でDEK184を検索して、「DEK発見?」判断ポイント522へ進む。DEKが発見されていれば、「DEKを用いてデバイスをアンロック」ステップ524へと進む。デバイスをアンロックして、「デバイスはアンロック済み」状態550へと進む。デバイスのアンロックは、図7を参照しつつさらに詳細に説明する。「DEK発見?」判断ポイント522においてDEKが発見されていなければ、「アンロック失敗」状態560に進む。「アンロック失敗」状態560では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。
【0055】
「デバイスはチップセットによって暗号化されているか」の判断ポイント512において、挿入されたデバイスがチップセットによって暗号化されていない場合、「デバイスはソフトウェアによって暗号化されているか」の判断ポイント514に進む。デバイスがソフトウェアによって暗号化されているか否かの判断は、例えば、デバイスの識別子と、直接管理デバイス情報コンテナ280および間接管理デバイス情報コンテナ290等のデバイス情報コンテナ内のデバイス識別子との比較に基づいて行なうとしてよい。デバイス識別子がデバイス情報コンテナのうち1つで見つかった場合、「デバイス情報コンテナ内で一時デバイス暗号鍵(TDEK)を検索」ステップ530に進む。デバイス情報コンテナ内を検索して、「TDEK発見?」判断ポイント532に進む。TDEKが発見されていれば、「TDEKを用いてデバイスをアンロック」ステップ534に進む。デバイスをアンロックして、「デバイスはアンロック済み」状態550へと進む。デバイスのアンロックは、図7を参照しつつさらに詳細に説明する。
【0056】
「TDEK発見?」判断ポイント532においてソフトウェアで暗号化されたデバイスのTDEKが見つからない場合、「他のデバイス情報コンテナのメタデータ内でTDEKを検索」ステップ536に進む。他のデバイス情報コンテナのメタデータが存在すれば、そのメタデータ内を検索して、「TDEK発見?」判断ポイント538へと進む。他のデバイス情報コンテナのメタデータが存在しなければ、「TDEK発見?」判断ポイント538へと進む。ソフトウェアで暗号化されたデバイスのTDEKが見つからなかった場合、「TDEK発見?」判断ポイント538から、「アンロック失敗」状態560に進む。「アンロック失敗」状態560では、デバイス暗号鍵を見つけることが出来なかったので、デバイスはロックされた状態のままである。ソフトウェアで暗号化されたデバイスのTDEKが見つかった場合、「TDEK発見?」判断ポイント538から、「TDEKを用いてデバイスをアンロック」ステップ534に進み、その後は上述したように進む。
【0057】
「デバイスはソフトウェアによって暗号化されているか」の判断ポイント514において、デバイスがソフトウェアによって暗号化されていないと判断されれば、「デバイスは自身で暗号化されているか?」の判断ポイント516に進む。デバイスが自身で暗号化されているか否かの判断は、例えば、ATAセキュリティコマンドを発行することによって、実行するとしてよい。デバイスが自身で暗号化されていれば、「アンロックコマンド送信」ステップ540に進み、アンロックコマンドがデバイスに送信される。デバイスはアンロックされて、「デバイスはアンロック済み」状態550へと進む。
【0058】
「デバイスは自身で暗号化されているか?」の判断ポイント516において、デバイスが自身で暗号化されていないとなった場合、「アンロック失敗」状態560に進む。デバイスはアンロックされない。「デバイスアクセスイベント」ステップ510から開始されたデバイスアクセスイベントの処理は、デバイスをアンロックすることなく、完了する。
【0059】
図6は、本発明の一実施形態に係る、デバイス初期化イベントの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。図6に示すステップは、管理エンジン(ME)130および/または管理エンジン(ME)130の構成要素であるセキュリティ/鍵管理ファームウェア237によって実行されるものとして説明される。「デバイス初期化イベント」ステップ610において、管理エンジン(ME)130は、デバイス初期化イベントを受け取る。「デバイス暗号鍵を生成?」の判断ポイント620に進む。初期化すべきデバイスについて暗号鍵を生成すべき場合、「暗号鍵(DEKまたはTDEK)生成」ステップ622に進む。暗号鍵は、例えば、乱数生成器を用いて生成するとしてよい。そして、「デバイスラッピング鍵(DWK)を用いて暗号鍵をラッピング」ステップ624に進む。例えば、図3のDEK310a−310nのうち1つ等のデバイス暗号鍵(DEK)、または、図3のTDEK320a−320nのうち1つ等の一時デバイス暗号鍵(TDEK)を、図3のDWK330等のデバイスラッピング鍵(DWK)を用いてラッピングする。
【0060】
「デバイスラッピング鍵(DWK)を用いて暗号鍵をラッピング」ステップ624から、「チップセットで生成されたDEK?」判断ポイント0へ進み、チップセット暗号化ストレージデバイス180のDEK184等の暗号鍵が、チップセットによって生成されたか否かを判断する。暗号鍵がチップセットによって生成されていれば、「ラッピングされたDEKをデバイスのメタデータに格納」ステップ628に進み、デバイスに直接DEKを格納する。例えば、DEK184をチップセット暗号化ストレージデバイス180のメタデータ182に格納する。そして、「マイグレーショントークンを用いてDWKをラッピング」ステップ630に進み、DWKをさらに、プラットフォーム非依存性のマイグレーショントークンを用いてラッピングして、図3のマイグレーション鍵350のようなマイグレーション鍵を生成する。そして、「マイグレーションパッケージをデバイスメタデータに格納」ステップ632に進み、マイグレーション鍵およびその他のマイグレーションデータを、マイグレーションパッケージとして、デバイスメタデータに格納する。例えば、マイグレーションパッケージ280Mは、チップセット暗号化ストレージデバイス180のメタデータ182内に格納される。デバイスの初期化はこうして、「デバイスは初期化済み」ステップ640への遷移で図示するように、完了する。
【0061】
「チップセットによって生成された鍵?」判断ポイント626において、暗号鍵がチップセットによって生成されていない場合、「メタデータ格納領域はデバイス外で利用可能?」判断ポイント650に進む。デバイスメタデータを格納するための格納領域がデバイス外で、例えば、デバイス情報コンテナ等で利用可能な場合、「メタデータ格納領域にラッピングされた暗号鍵を格納」ステップ652に進む。ラッピングされた暗号鍵は、例えば、デバイス情報コンテナ、例えばデバイス情報コンテナ280または290に格納されるとしてよい。そして、「マイグレーショントークンを用いてDWKをラッピング」ステップ654に進み、マイグレーショントークンを用いてDWKをラッピングして、図3のマイグレーション鍵350のようなマイグレーション鍵を生成する。そして、「メタデータ格納領域にマイグレーションパッケージを格納」ステップ656に進み、マイグレーション鍵およびその他のマイグレーションデータを、例えば、マイグレーションパッケージ290Mのようなマイグレーションパッケージの一部として、フラッシュメモリ190のデータ領域198に格納する。そして、「デバイスは初期化済み」ステップ640に進み、デバイスの初期化が完了する。
【0062】
「メタデータ格納領域はデバイス外で利用可能?」判断ポイント650において、デバイス外でメタデータ格納領域が利用可能でない場合、「ラッピングされた暗号鍵をデバイス上のメタデータに格納」ステップ628に移行する。ラッピングされたTDEKは、例えば、直接管理デバイス情報コンテナ280に格納されるTDEK282のように、デバイス上に直接格納される。そして、「ラッピングされた暗号鍵をデバイス上のメタデータに格納」ステップ628から、上述したように、「デバイスは初期化済み」ステップ640に進む。
【0063】
「デバイス暗号鍵を生成?」の判断ポイント620において、暗号鍵を生成しないと判断されると、「デバイス暗号鍵を受け取ったか?」ステップ660に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っている場合、「デバイスラッピング鍵(DWK)を用いて暗号鍵をラッピング」ステップ624に進む。デバイス初期化イベントの一部としてデバイス暗号鍵を受け取っていない場合、「デバイス初期化は失敗」ステップ670に進み、デバイスは初期化されない。
【0064】
図7は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「プラットフォームに対してユーザを認証」ステップ710から開始され、プラットフォームに対するユーザのアクセスが、上述したように、認証される。「ユーザラッピング鍵を生成」ステップ720に進み、340aまたは340bのようなユーザラッピング鍵を生成する。そして、「ユーザアカウントメタデータのラッピングを解除」ステップ730に進み、図4を参照しつつ上述したように、ユーザアカウントメタデータのラッピングを解除する。そして、「デバイスラッピング鍵(DWK)のラッピングを解除」ステップ740に進み、デバイスラッピング鍵のラッピングを解除する。そして、「DEK/TDEKメタデータを取得」ステップ750に進み、図5を参照しつつ上述したようにDEK/TDEKのメタデータを取得する。そして、「DEK/TDEKのラッピングを解除」ステップ760に進み、デバイス暗号鍵DEK/TDEKのラッピングを解除する。そして、「デバイスをアンロック」ステップ770に進み、デバイスをアンロックする。
【0065】
図8は、本発明の一実施形態に係る、プラットフォーム間でのデバイスのマイグレーションに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「管理者を認証」ステップ810から開始され、マイグレーションを実行したい管理者を、本明細書に記載するユーザ認証プロセスと同様の方法で、認証する。そして、「マイグレーショントークンを取得」ステップ820に進み、デバイスのマイグレーショントークンを取得する。一実施形態によると、マイグレーショントークンをリモートサーバから取得する。そして、「メタデータからマイグレーションパッケージを取得」ステップ830に進み、マイグレーションパッケージをメタデータから取得する。例えば、フラッシュメモリ190のデータ領域198からマイグレーションパッケージ290Mを取得するか、または、チップセット暗号化ストレージデバイス180のメタデータ182からマイグレーションパッケージ280Mを取得する。
【0066】
そして、「デバイスラッピング鍵(DWK)のラッピングを解除」ステップ840に進み、デバイスラッピング鍵のラッピングを解除する。そして、「DEK/TDEKメタデータを取得」ステップ850に進み、DEK/TDEKのメタデータを、図5を参照しつつ上述したように、取得する。そして、「DEK/TDEKのラッピングを解除」ステップ860に進み、デバイス暗号鍵DEK/TDEKのラッピングを解除する。そして、「デバイスをアンロック」ステップ870に進み、デバイスをアンロックする。
【0067】
図9は、本発明の一実施形態に係る、盗難にあったプラットフォームの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「プラットフォームの盗難をアサート」ステップ910から開始され、管理エンジン(ME)130が、プラットフォームが盗難に遭った旨のアサーションを発行する。このアサーションは、例えば、図1のエンタープライズサービス162内の盗難検出サーバによって、ブロードキャストされるとしてよい。そして、「盗難プラットフォームイベントを配信」ステップ920に進み、盗難プラットフォームイベントが、盗難に遭ったプラットフォームに配信される。このイベントは、図1のエンタープライズサービス162内の盗難検出サーバによって生成および配信されるとしてよい。
【0068】
「盗難プラットフォームイベントを配信」ステップ920から、「ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要?」判断ポイント930に進み、エンタープライズポリシーでは盗難に遭ったプラットフォームの鍵を全て削除する必要があるか否か判断する。エンタープライズポリシーで鍵の削除が求められている場合には、「DEKを含むデバイスメタデータ、および、TDEKを含むその他のメタデータまたはデバイス情報コンテナを削除」ステップ940に進み、チップセット暗号化ストレージデバイス180のメタデータ182およびデバイス情報コンテナ280および290のようなデバイスメタデータも含め、全てのメタデータレポジトリから全ての鍵を削除する。鍵の削除は、鍵を含むコンテナ全体の削除を含むとしてよい。
【0069】
「ポリシーによるとプラットフォーム盗難の際には鍵の削除が必要?」判断ポイント930において、ポリシーでは鍵の削除が必要ない場合、「他の盗難管理対策を講じる」ステップ950に進み、エンタープライズポリシーに従って盗難に遭ったプラットフォームに対して他の対策を講じるとしてよい。
【0070】
図10は、本発明の一実施形態に係る、盗難にあったプラットフォームの回復に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。「盗難に遭ったプラットフォームが所有者に戻る」ステップ1010から開始され、盗難に遭ったプラットフォームが所有者の元に戻ってくる。「プラットフォームに対して所有者を認証」ステップ1020に進み、プラットフォームに対して所有者の認証を行う。そして、「デバイスラッピング鍵(DWK)を含むマイグレーションパッケージのラッピングを解除」ステップ1030に進み、マイグレーションパッケージのラッピングを解除して、図3のDWK330のようなDWKを生成する。そして、「DEK/TDEKメタデータを取得」ステップ1040に進み、DEK/TDEKメタデータを、図5を参照しつつ上述したように、取得する。そして、「DEK/TDEKのラッピングを解除」ステップ1050に進み、デバイス暗号鍵DEK/TDEKのラッピングが解除される。そして、「デバイスをアンロック」ステップ1060に進み、デバイスがアンロックされる。
【0071】
図11は、本発明の一実施形態に係る、プラットフォーム100のアクセス制御コンポーネントの動作を示すフローチャートである。「プラットフォームへのユーザアクセスを認証」ステップ1110において、プラットフォームに対してアクセスを要求しているユーザに関するユーザデータ、例えば、パスワード、バイオメトリクスデータ、またはスマートカード情報等の認証を、ユーザ認証モジュール212と身元情報管理ファームウェア239との組み合わせを参照しつつ上述したように実行する。この認証は、Microsoft Active DirectoryまたはLDAPサーバ等の身元情報管理サーバでユーザの身元情報を確認して、プラットフォーム100に対応付けられているストレージデバイスに格納されている企業データに対するアクセス権限をユーザが持つことを確かめることを含むとしてよい。ユーザの認証はさらに、プラットフォームに対応付けられているプラットフォームおよび/またはストレージデバイスが紛失または盗難に遭っていないことを盗難抑止ファームウェア235で確認することを含むとしてよい。
【0072】
ユーザのデータが認証されてプラットフォームへのアクセスが確認されると、「プラットフォームに対応付けられたストレージデバイスへのユーザアクセスを認証」ステップ1120に進む。認証は、チップセット暗号化ストレージデバイス180および非チップセット暗号化ストレージデバイス172の両方に対するユーザアクセスについて、行われる。この確認は、ユーザのデータが上述したようにフラッシュメモリ190にあることを確かめることだけでなく、ユーザのデータがさらにチップセット暗号化ストレージデバイス180に格納されているデバイス情報コンテナ280にもあることを確かめることも含むとしてよい。プラットフォームに対応付けられているストレージデバイスにアクセスする権限をユーザが持つことを確認すると、対応付けられているストレージデバイスに格納されているデータにユーザをアクセスさせるためのプロセスが継続して実行される。
【0073】
プラットフォームに対応付けられているストレージデバイスに対してユーザがアクセスできることが確認されると、「チップセット暗号化ストレージデバイスを復号化」ステップ1130に進む。チップセット暗号化ストレージデバイス180に格納されているデータの復号化は、チップセット暗号化ストレージデバイスのメタデータに格納されているデバイス暗号鍵(DEK)を用いて実行される。「暗号化コンテナ用の鍵を取得」ステップ1140に進み、鍵管理情報を含む暗号化コンテナの暗号鍵を格納する。上述したように、一実施形態によると、これらのコンテナ鍵は、図2および図3のフラッシュメモリ190のデータ領域198内のユーザ/コンテナメタデータ230のユーザアカウントメタデータ223から取得される。そして、「コンテナを復号化」ステップ1150に進み、図3を参照しつつ上述したように、コンテナ鍵220をさらに、セキュリティファームウェアメタデータを含むデバイス情報コンテナ280、および、非チップセット暗号化ストレージデバイス172用の一時デバイス暗号鍵(TDEK)292を含むデバイス情報コンテナ290の両方を復号化するべく用いる。
【0074】
ステップ1130−1150においてチップセット暗号化ストレージデバイスおよびコンテナを復号した後、「他のデバイスの一時デバイス暗号鍵をコンテナから取得」ステップ1160に進む。上述したように、デバイス情報コンテナ290はさらに、プラットフォームのチップセットでは暗号化されていないデバイスの暗号鍵を含む。そして、「他のデバイスの一時デバイス暗号鍵を用いて他のストレージデバイスを復号化」ステップ1170に進む。ホスト暗号化ソフトウェア214のようなホスト暗号化ソフトウェアによって暗号化されたデータの場合は、元々の復号鍵はホスト暗号化ソフトウェアに転送されて、他のストレージデバイスに格納されているデータが復号化される。
【0075】
図11を参照しつつ説明したステップは、プラットフォーム100に対応付けられているストレージデバイスに格納されているデータへのアクセスを制御する。本明細書に記載されているデータへのアクセスを制御するためのフレームワークおよびインフラストラクチャはさらに、プラットフォーム間でのデータおよびストレージデバイスのマイグレーションをサポートすると共に、鍵回復処理および盗難通知処理をサポートする。チップセット暗号化デバイスおよび非チップセット暗号化デバイスの両方の暗号鍵を管理する共通フレームワークを提供することによって、どちらのタイプのデバイスも、1回のマイグレーションイベント、回復イベント、または盗難効果抑止イベントで、マイグレーションさせることが可能となる。
【0076】
さらに、ストレージデバイスに対応付けられているユーザ毎に暗号鍵を格納することによって、データおよび/またはストレージデバイスは、ユーザ単位の粒度で、マイグレーションおよび/または回復を行うことができる。対象となるプラットフォームのデータへのアクセスは、当該プラットフォームのユーザアカウント情報に選択されたユーザのみを含むことによって、これらの選択されたユーザに限定することができる。中央集権的な身元情報管理サービスは、対象となるプラットフォームへのアクセスが適切であるかを各ユーザについて確認するべく照合され得る。中央集権的な盗難管理サービスもまた、ストレージデバイスが盗難に遭っていないことを確認するべく利用され得る。フレームワークはUSBストレージデバイス等のスタンドアローンなストレージデバイスの暗号鍵も含むので、これらのスタンドアローンな暗号化デバイスに対するアクセスを、当該ストレージデバイスがプラットフォームに取り付けられていようといまいと、ディセーブルすることができる。このため、盗難に遭ったUSBデバイスは、正当なユーザがログインするまで、または、管理者が盗難通知を破棄するまで、ディセーブルされ得る。
【0077】
図5は、本発明の一実施形態に係る、デバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0078】
図6は、本発明の一実施形態に係る、デバイスの初期化に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0079】
図7は、本発明の一実施形態に係る、デバイスに格納されているデータの暗号鍵を取得した後のデバイスのアンロックに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0080】
図8は、本発明の一実施形態に係る、デバイスのマイグレーションに関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0081】
図9は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの処理に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0082】
図10は、本発明の一実施形態に係る、盗難に遭ったプラットフォームの回復に関連する、図1の管理エンジン(ME)の動作を示すフローチャートである。
【0083】
本明細書に記載するメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、または、これらの実装方法の組み合わせによって実装されるとしてよい。本発明の実施形態は、少なくとも1つのプロセッサと、データストレージシステム(揮発性および不揮発性メモリおよび/またはストレージ素子を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを備えるプログラム可能システムにおいて実行されるコンピュータプログラムとして実装され得る。
【0084】
プログラムコードを入力データに適用して、本明細書に記載した機能を実行すると共に出力情報を生成するとしてよい。本発明の実施形態はさらに、本発明の動作を実行するための命令、または、本明細書に記載した構造、回路、装置、プロセッサ、および/または、システムの構成要素を定義するHDL等のデザインデータを含む機械アクセス可能媒体を含む。このような実施形態は、プログラム製品とも呼ばれる。
【0085】
上述した機械アクセス可能格納媒体は、これらに限定されないが、機械またはデバイスによって製造または形成される有形の粒子の配置、例えば、ハードディスク等の格納媒体、フロッピー(登録商標)ディスクを含むその他の任意の種類のディスク、光ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)、書き換え可能コンパクトディスク(CD−RW)、および光磁気ディスク、リードオンリーメモリ(ROM)等の半導体デバイス、ダイナミックランダムアクセスメモリ(DRAM)等のランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、消去可能プログラム可能リードオンリーメモリ(EPROM:登録商標)、フラッシュプログラム可能メモリ(FLASH)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM(登録商標))、磁気カードまたは光カード、または電子命令を格納するのに適したその他の任意の種類の媒体を含むとしてよい。
【0086】
出力情報は、公知の方法で、1以上の出力デバイスに適用されるとしてよい。本願の目的に鑑みれば、処理システムは、例えば、デジタルシグナルプロセッサ(DSP)、マイクロコントローラ、特定用途向け集積回路(ASIC)またはマイクロプロセッサ等のプロセッサを備えるシステムであればどのようなシステムをも含む。
【0087】
プログラムは、処理システムとの通信を実現するべく、高級プロシージャ言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムはさらに、所望されれば、アセンブリ言語または機械言語で実装されるとしてもよい。尚、本明細書に記載するメカニズムの範囲は、特定のプログラミング言語に限定されるものではない。どの場合であっても、コンパイラ方式またはインタプリタ方式の言語であってよい。
【0088】
本明細書では、プラットフォームに対応付けられるストレージデバイスに格納されているデータを包括的に保護するための方法およびシステムの実施形態を記載している。本発明の実施形態を具体的に図示および説明してきたが、本願の特許請求の範囲から逸脱することなく、多くの点で変更、変形および修正を加えることができるのは当業者には明らかである。従って、当業者であれば、本発明を幅広く解釈した場合にその範囲から逸脱することなく、変更および変形が可能であると想到するであろう。本願の特許請求の範囲は、本発明の真の範囲および精神に含まれる上述したような変更、変形および修正を全て網羅する。
【特許請求の範囲】
【請求項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のデータに対するアクセスを前記ユーザに許可する段階と、
プラットフォーム非依存性トークンで前記第1の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第1のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第1のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第1のデータを復号化する段階と
を有する方法。
【請求項2】
プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第1のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第2のストレージデバイスを前記第2のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する段階と
をさらに備える請求項1に記載の方法。
【請求項3】
第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のデータを復号化する段階と
を有する方法。
【請求項4】
盗難通知イベントに応じて前記第1のプラットフォームに対するアクセスを拒絶する段階、または、
前記第1のプラットフォームから前記第1の暗号鍵および前記第2の暗号鍵を削除することによって、前記第1のプラットフォームに対する前記アクセスを拒絶する段階
をさらに備える請求項1から請求項3のいずれか1つに記載の方法。
【請求項5】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、
前記第1のプラットフォームの、前記第1の暗号鍵および前記第2の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階、または、
前記第1のプラットフォームの、前記第1のストレージデバイスの第1のマイグレーション鍵および前記第2のストレージデバイスの第2のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階
を有する請求項4に記載の方法。
【請求項6】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記第1のプラットフォームのマイグレーションパッケージから、前記第1の暗号鍵および前記第2の暗号鍵のうち少なくとも1つを削除する段階を有する請求項4に記載の方法。
【請求項7】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記第1のプラットフォームのハードウェアをディセーブルする段階を有する請求項4に記載の方法。
【請求項8】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記間接管理デバイス情報コンテナに対するアクセスを拒絶する段階を有する請求項4に記載の方法。
【請求項9】
請求項1から請求項8のいずれか1つに記載の方法に含まれる各段階をコンピュータに実行させるためのプログラム。
【請求項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のデータに対するアクセスを前記ユーザに許可する許可モジュールと、
プラットフォーム非依存性トークンで前記第1の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第1のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する第2の格納モジュールと、
前記第1のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第1のデータを復号化する第3の復号化モジュールと
を備えるシステム。
【請求項11】
プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第1のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する第2の格納モジュールと、
前記第2のストレージデバイスを前記第2のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する第3の復号化モジュールと
をさらに備える請求項10に記載のシステム。
【請求項12】
第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の復号化モジュールと
を備えるシステム。
【請求項13】
盗難通知イベントに応じて前記第1のプラットフォームに対するアクセスを拒絶する拒絶モジュール、または、
前記第1のプラットフォームから前記第1の暗号鍵および前記第2の暗号鍵を削除する削除モジュール
をさらに備える請求項10から請求項12のいずれか1つに記載のシステム。
【請求項14】
前記第1のプラットフォームの、前記第1の暗号鍵および前記第2の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第2の拒絶モジュール、または、
前記第1のプラットフォームの、前記第1のストレージデバイスの第1のマイグレーション鍵および前記第2のストレージデバイスの第2のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第2の拒絶モジュール
をさらに備える請求項13に記載のシステム。
【請求項15】
前記第1のプラットフォームのハードウェアをディセーブルするディセーブルモジュール、または
前記間接管理デバイス情報コンテナに対するアクセスを拒絶する第2の拒絶モジュール
をさらに備える請求項13に記載のシステム。
【請求項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のデータに対するアクセスを前記ユーザに許可する段階と、
プラットフォーム非依存性トークンで前記第1の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第1のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第1のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第1のデータを復号化する段階と
を有する方法。
【請求項2】
プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成する段階と、
前記マイグレーション鍵を前記第1のプラットフォームに格納する段階と、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する段階と、
前記第2のストレージデバイスを前記第2のプラットフォームにマイグレーションする段階と、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する段階と
をさらに備える請求項1に記載の方法。
【請求項3】
第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のデータを復号化する段階と
を有する方法。
【請求項4】
盗難通知イベントに応じて前記第1のプラットフォームに対するアクセスを拒絶する段階、または、
前記第1のプラットフォームから前記第1の暗号鍵および前記第2の暗号鍵を削除することによって、前記第1のプラットフォームに対する前記アクセスを拒絶する段階
をさらに備える請求項1から請求項3のいずれか1つに記載の方法。
【請求項5】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、
前記第1のプラットフォームの、前記第1の暗号鍵および前記第2の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階、または、
前記第1のプラットフォームの、前記第1のストレージデバイスの第1のマイグレーション鍵および前記第2のストレージデバイスの第2のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する段階
を有する請求項4に記載の方法。
【請求項6】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記第1のプラットフォームのマイグレーションパッケージから、前記第1の暗号鍵および前記第2の暗号鍵のうち少なくとも1つを削除する段階を有する請求項4に記載の方法。
【請求項7】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記第1のプラットフォームのハードウェアをディセーブルする段階を有する請求項4に記載の方法。
【請求項8】
前記第1のプラットフォームに対する前記アクセスを拒絶する段階は、前記間接管理デバイス情報コンテナに対するアクセスを拒絶する段階を有する請求項4に記載の方法。
【請求項9】
請求項1から請求項8のいずれか1つに記載の方法に含まれる各段階をコンピュータに実行させるためのプログラム。
【請求項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のデータに対するアクセスを前記ユーザに許可する許可モジュールと、
プラットフォーム非依存性トークンで前記第1の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第1のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する第2の格納モジュールと、
前記第1のストレージデバイスを、前記第1のプラットフォームとは異なる第2のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第1のデータを復号化する第3の復号化モジュールと
を備えるシステム。
【請求項11】
プラットフォーム非依存性トークンで前記第2の暗号鍵をラッピングしてマイグレーション鍵を生成するラッピングモジュールと、
前記マイグレーション鍵を前記第1のプラットフォームに格納する格納モジュールと、
前記プラットフォーム非依存性トークンを、前記第1のプラットフォーム上ではないセキュアなロケーションに格納する第2の格納モジュールと、
前記第2のストレージデバイスを前記第2のプラットフォームにマイグレーションするマイグレーションモジュールと、
前記プラットフォーム非依存性トークンおよび前記マイグレーション鍵を用いて、前記第2のプラットフォームで前記第2のデータを復号化する第3の復号化モジュールと
をさらに備える請求項10に記載のシステム。
【請求項12】
第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の復号化モジュールと
を備えるシステム。
【請求項13】
盗難通知イベントに応じて前記第1のプラットフォームに対するアクセスを拒絶する拒絶モジュール、または、
前記第1のプラットフォームから前記第1の暗号鍵および前記第2の暗号鍵を削除する削除モジュール
をさらに備える請求項10から請求項12のいずれか1つに記載のシステム。
【請求項14】
前記第1のプラットフォームの、前記第1の暗号鍵および前記第2の暗号鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第2の拒絶モジュール、または、
前記第1のプラットフォームの、前記第1のストレージデバイスの第1のマイグレーション鍵および前記第2のストレージデバイスの第2のマイグレーション鍵を含むマイグレーションパッケージに対するアクセスを拒絶する第2の拒絶モジュール
をさらに備える請求項13に記載のシステム。
【請求項15】
前記第1のプラットフォームのハードウェアをディセーブルするディセーブルモジュール、または
前記間接管理デバイス情報コンテナに対するアクセスを拒絶する第2の拒絶モジュール
をさらに備える請求項13に記載のシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−64237(P2012−64237A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2011−261670(P2011−261670)
【出願日】平成23年11月30日(2011.11.30)
【分割の表示】特願2009−293557(P2009−293557)の分割
【原出願日】平成21年12月24日(2009.12.24)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願日】平成23年11月30日(2011.11.30)
【分割の表示】特願2009−293557(P2009−293557)の分割
【原出願日】平成21年12月24日(2009.12.24)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】
[ Back to top ]