(57)【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
プラットフォームのオペレーティングシステムをロードする前に前記プラットフォームのドメイン認証情報を取得する段階と、
前記プラットフォームからリモートのドメインコントローラに対して前記ドメイン認証情報を認証する段階と、
前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームのリソースに対応するリソース識別子を含む、前記プラットフォームのアクセス制御ポリシーを、前記ドメインコントローラに対して前記ドメイン認証情報を認証したことに応じて受信する段階と、
前記アクセス制御ポリシーの前記リソース識別子に基づいて、前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームの前記リソースを特定する段階と、
前記プラットフォームの前記オペレーティングシステムをロードする前に、前記ドメイン認証情報を利用して前記プラットフォームの前記リソースをアンロックする段階とを備える方法。
【請求項２】
前記ドメイン認証情報は、前記プラットフォームのユーザの認証情報および前記プラットフォームのセキュアパーティションの認証情報のうち少なくとも１つを含む請求項１に記載の方法。
【請求項３】
前記ドメイン認証情報を利用して、前記リソースに格納されているデータを復号する鍵を取得する段階と、
前記鍵を利用して前記リソースに格納されている前記データを復号する段階と
をさらに備える請求項１または２に記載の方法。
【請求項４】
前記プラットフォームの前記アクセス制御ポリシーは、前記ドメインコントローラによって維持され、
前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームの前記リソースを特定する段階は、前記受信した前記プラットフォームの前記アクセス制御ポリシーを確認する段階を有する請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記プラットフォームの前記リソースをアンロックする段階は、前記ドメインコントローラと前記リソースとの間でセキュアな通信セッションを構築する段階を有する請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記リソースをアンロックする段階は、前記リソースに電力を供給する段階を有する請求項１から４のいずれか一項に記載の方法。
【請求項７】
前記ドメインコントローラからアンロックトークンを取得する段階をさらに備え、
前記リソースをアンロックする段階は、前記アンロックトークンを利用して前記リソースをアンロックする段階を有する請求項１から４のいずれか一項に記載の方法。
【請求項８】
前記リソースは、ＡＴＡデバイスおよびチップセット制御リソースのうち少なくとも1つを含む請求項１から７のいずれか一項に記載の方法。
【請求項９】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合されており、命令を有するメモリと
を備え、
前記命令は、
プラットフォームのオペレーティングシステムをロードする前に前記プラットフォームのドメイン認証情報を取得する段階と、
前記プラットフォームからリモートのドメインコントローラに対して前記ドメイン認証情報を認証する段階と、
前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームのリソースに対応するリソース識別子を含む、前記プラットフォームのアクセス制御ポリシーを、前記ドメインコントローラに対して前記ドメイン認証情報を認証したことに応じて受信する段階と、
前記アクセス制御ポリシーの前記リソース識別子に基づいて、前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームの前記リソースを特定する段階と、
前記プラットフォームの前記オペレーティングシステムをロードする前に、前記ドメイン認証情報を利用して前記プラットフォームの前記リソースをアンロックする段階と
を実行するための命令であるシステム。
【請求項１０】
前記ドメイン認証情報は、前記プラットフォームのユーザの認証情報および前記プラットフォームのセキュアパーティションの認証情報のうち少なくとも１つを含む請求項９に記載のシステム。
【請求項１１】
前記命令はさらに、
前記ドメイン認証情報を利用して、前記リソースに格納されているデータを復号する鍵を取得する段階と、
前記鍵を利用して前記リソースに格納されている前記データを復号する段階と
を実行させるための命令を含む請求項９または１０に記載のシステム。
【請求項１２】
前記プラットフォームの前記アクセス制御ポリシーは、前記ドメインコントローラによって維持され、
前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームの前記リソースを特定する段階は、前記受信した前記プラットフォームの前記アクセス制御ポリシーを確認する段階を有する請求項９から１１のいずれか一項に記載のシステム。
【請求項１３】
前記プラットフォームの前記リソースをアンロックする段階は、前記ドメインコントローラと前記リソースとの間でセキュアな通信セッションを構築する段階を有する請求項９から１２のいずれか一項に記載のシステム。
【請求項１４】
前記リソースをアンロックする段階は、前記リソースに電力を供給する段階を有する請求項９から１２のいずれか一項に記載のシステム。
【請求項１５】
前記命令はさらに、
前記ドメインコントローラからアンロックトークンを取得する段階
を実行するための命令を含み、
前記リソースをアンロックする段階は、前記アンロックトークンを利用して前記リソースをアンロックする段階を有する請求項９から１２のいずれか一項に記載のシステム。
【請求項１６】
前記リソースは、ＡＴＡデバイスおよびチップセット制御リソースのうち少なくとも1つを含む請求項９から１５のいずれか一項に記載のシステム。
【請求項１７】
コンピュータに、
プラットフォームのオペレーティングシステムをロードする前に前記プラットフォームのドメイン認証情報を取得する手順と、
前記プラットフォームからリモートのドメインコントローラに対して前記ドメイン認証情報を認証する手順と、
前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームのリソースに対応するリソース識別子を含む、前記プラットフォームのアクセス制御ポリシーを、前記ドメインコントローラに対して前記ドメイン認証情報を認証したことに応じて受信する手順と、
前記アクセス制御ポリシーの前記リソース識別子に基づいて、前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームの前記リソースを特定する手順と、
前記プラットフォームの前記オペレーティングシステムをロードする前に、前記ドメイン認証情報を利用して前記プラットフォームの前記リソースをアンロックする手順と
を含む複数の手順を実行させるためのプログラム。
【請求項１８】
前記ドメイン認証情報は、前記プラットフォームのユーザの認証情報および前記プラットフォームのセキュアパーティションの認証情報のうち少なくとも１つを含む請求項１７に記載のプログラム。
【請求項１９】
前記複数の手順はさらに、
前記ドメイン認証情報を利用して、前記リソースに格納されているデータを復号する鍵を取得する手順と、
前記鍵を利用して前記リソースに格納されている前記データを復号する手順と
を含む請求項１７または１８に記載のプログラム。
【請求項２０】
前記プラットフォームの前記アクセス制御ポリシーは、前記ドメインコントローラによって維持され、
前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームの前記リソースを特定する手順は、前記受信した前記プラットフォームの前記アクセス制御ポリシーを確認する手順を有する請求項１７から１９のいずれか一項に記載のプログラム。
【請求項２１】
前記プラットフォームの前記リソースをアンロックする手順は、前記ドメインコントローラと前記リソースとの間でセキュアな通信セッションを構築する手順を有する請求項１７から２０のいずれか一項に記載のプログラム。
【請求項２２】
前記リソースをアンロックする手順は、前記リソースに電力を供給する手順を有する請求項１７から２０のいずれか一項に記載のプログラム。
【請求項２３】
前記複数の手順はさらに、
前記ドメインコントローラからアンロックトークンを取得する手順を含み、
前記リソースをアンロックする手順は、前記アンロックトークンを利用して前記リソースをアンロックする手順を有する請求項１７から２０のいずれか一項に記載のプログラム。
【請求項２４】
前記リソースは、ＡＴＡデバイスおよびチップセット制御リソースのうち少なくとも1つを含む請求項１７から請求項２３のいずれか一項に記載のプログラム。
【請求項２５】
プラットフォームのドメイン認証情報を、前記プラットフォームからリモートのドメインコントローラで受信する段階と、
前記ドメイン認証情報を認証する段階と、
前記ドメイン認証情報を認証することに応じて前記プラットフォームにアクセスポリシーを供給する段階と
を備え、
前記アクセスポリシーは、（ｉ）前記ドメイン認証情報がアクセスする権限を持つ前記プラットフォームのリソースを特定するためのリソース識別子と、（ｉｉ）前記リソースをアンロックする為のトークンとを含むコンピュータで実施される方法。
【請求項２６】
前記ドメイン認証情報は、前記プラットフォームのユーザの認証情報および前記プラットフォームのセキュアパーティションの認証情報のうち少なくとも１つを含む請求項２５に記載の方法。
【請求項２７】
前記リソースは、ＡＴＡデバイスおよびチップセット制御リソースのうち少なくとも1つを含む請求項２５または２６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、コンピューティングプラットフォームのリソースに対するアクセスを制御することに関する。
【０００２】
＜著作権に関する情報＞
本明細書の内容は、著作権保護の対象となる。著作権所有者は、米国特許商標庁の特許ファイルまたは特許記録の特許情報開示を複製することについては異議を唱えないが、それ以外の場合に関しては著作権に関するいかなる権利も有する。
【背景技術】
【０００３】
企業データは、利用する場所が増え、格納箇所も多岐にわたって分散し、大量化している。データは、出張に出かける従業員または就業形態がさまざまな従業員に対応するべく、物理的に保護された設備から日常的に読み出される。また、企業の業務内容は複数の都市、州および国にわたるので、データは地理的にさまざまな場所に分散することになる。データは、生成される速度および提示可能なマルチメディア形式の両方について、大量化している。こういった流れは全て、アクセス中および格納時の両方の場合についてデータの保護を必要とする新たな格納媒体、より大きな帯域幅のサブシステムおよびネットワーク接続ストレージの登場を後押ししている。さらに、コンピューティングプラットフォームは、持ち運びがより容易になり、小型化および軽量化が進んでいる。ユーザは、複数のコンピューティングデバイスを持つ可能性が高くなっている。こういった要因は全て、ユーザパスワードに対する辞書攻撃が高くなるので、紛失および盗難の可能性が高くなる原因となり、設備投資が増加するとともに安全性が脅かされる危険性が高くなる。
【０００４】
蓄積データ（ＤＡＲ）暗号化技術によって、紛失または盗難に遭ったストレージデバイスに格納されているデータが不正利用されないようにすることができるので、インターネット等のネットワーク上で当該データが広まることを防ぐ。ＤＡＲ暗号化は、ストレージデバイスの紛失および盗難が不可抗力で発生した場合に当該デバイスに格納されているデータが紛失および盗難に合わないようにするための自動高速応答メカニズムとして機能する。しかし、ＤＡＲ暗号化技術は通常、暗号化されたハードドライブに格納されているデータを復号化するために用いられる暗号鍵へのアクセスを制御するパスワードが１つである。同様に、ハードドライブを保護するために利用されているパスワードは通常、１つである。盗難された場合、ユーザのパスワードを推測できると、このような一般的な保護メカニズムを潜り抜けることができる。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態に応じた、ドメイン認証を利用したプラットフォームリソースの制御を実現するよう構成されているシステムを示すブロック図である。
【図２】本発明の一実施形態に応じた、ユーザの認証および／またはプラットフォーム認証情報に応じて、暗号化されたストレージデバイスをアンロックする様子を説明するためのフローチャートである。
【図３】本発明の一実施形態に応じた、プラットフォームの認証に応じて匿名ユーザによる利用のためにリソースをアンロックする様子を説明するためのフローチャートである。
【図４】本発明の一実施形態に応じた、プラットフォームおよびユーザの両方の認証に応じて、匿名でないユーザによる利用が承認されたリソースをアンロックする様子を説明するためのフローチャートである。
【図５】本発明の一実施形態に応じた、ドメイン認証を利用したプラットフォームリソースの制御を実現するように構成されたシステムを示すブロック図である。
【図６】本発明の一実施形態に応じた、ドメイン認証を利用したプラットフォームリソースの制御を実現するべくセキュアパーティションを実施する仮想マシン環境を示す図である。
【発明を実施するための形態】
【０００６】
本発明の実施形態によると、ドメイン認証を利用したプラットフォームリソースの制御を実行する方法、装置、システムおよびコンピュータプログラム製品が提供されるとしてよい。プラットフォームの制御下にあるリソースについては、ディレクトリサービスによって中央管理されているアクセス制御ルールの粒度を細かくすることが有益である。セキュリティポリシーは、プラットフォームリソースに対するユーザアクセスの認証を要件とすることによって、一様に適用され得る。プラットフォームリソースには、ハードドライブ、フラッシュメモリ、センサ、ネットワークコントローラおよび電力状態コントローラが含まれる。
【０００７】
一実施形態に係る方法は、プラットフォームのオペレーティングシステムをロードする前に、プラットフォームのドメイン認証情報を取得する段階と、プラットフォームからリモートのドメインコントローラとの間でドメイン認証情報の認証を実行する段階と、ドメイン認証情報がアクセス権限を持つ、プラットフォームのリソースを特定する段階と、プラットフォームのオペレーティングシステムをロードする前に、ドメイン認証情報を利用してプラットフォームのリソースをアンロックする段階とを備える。ドメイン認証情報は、プラットフォームのユーザの認証情報、および／または、プラットフォームのセキュアパーティションの認証情報を含むとしてよい。ドメイン認証情報を利用してリソースをアンロックする段階は、ドメイン認証情報を利用してリソースに格納されているデータを復号するための鍵を取得して、リソースに格納されているデータを復号するための鍵を利用する段階を有するとしてよい。ドメイン認証情報がアクセス権限を持つ、プラットフォームのリソースを特定する段階は、ドメインコントローラが維持しているプラットフォームのアクセスポリシーを参照する段階を有するとしてよい。プラットフォームのリソースをアンロックする段階は、ドメインコントローラとリソースとの間でセキュアな通信セッションを構築する段階を有するとしてよい。リソースをアンロックする段階は、リソースに電力を供給する段階を有するとしてよい。当該方法はさらに、ドメインコントローラからアンロックトークンを取得する段階を備えるとしてよい。リソースをアンロックする段階は、アンロックトークンを利用してリソースをアンロックする段階を有する。リソースは、ＡＴＡストレージデバイスおよびチップセット制御リソースのうち少なくとも１つを含むとしてよい。当該方法を実施するための命令を備えるコンピュータプログラム製品およびシステムも提供する。
【０００８】
本明細書において本発明の「一実施形態」または「実施形態」という場合、当該実施形態に関連付けて説明する特定の特徴、構造または特性が本発明の少なくとも１つの実施形態に含まれていることを意味する。このため、「一実施形態において」、「一実施形態に係る」等の表現が本明細書で何度も見られるとしても、必ずしも全てが同じ実施形態を意味するものではない。
【０００９】
説明の便宜上、具体的な構成および詳細な内容を記載して、本発明への理解をさらに深めていただく。しかし、本明細書で説明する具体的且つ詳細な内容を利用しなくても本発明の実施形態が実施可能であることは、当業者には明らかである。さらに、公知の特徴については、本発明をあいまいにすることを避けるべく、説明を省略または簡略化している。本明細書ではさまざまな例を紹介している。それらの例は、本発明の具体的な実施形態を説明しているものに過ぎない。本発明の範囲は、紹介している例に限定されない。
【００１０】
図１は、本発明の一実施形態に応じた、ドメイン認証を利用したプラットフォームリソースの制御を実現するように構成されているプラットフォーム１００を示すブロック図である。プラットフォーム１００のリソースは、互いに異なる２種類のリソースとして図示されている。これら２種類のリソースは、プラットフォーム１００の初期化中の初期に利用可能であるとしてよく、アドバンスド・テクノロジ・アタッチメント（ＡＴＡ）デバイス１８０およびＭＥ制御リソース１９０である。ＡＴＡデバイス１８０は、システム初期化を実行するために利用されるプラットフォームファームウェアおよびソフトウェア用のストレージとして機能する、プラットフォーム１００のハードドライブ等のリソースを表す。保護メカニズムが機能する前のブートプロセスの間は脆弱なので、プラットフォーム初期化用のファームウェアおよびソフトウェアを提供するハードドライブは通常、ハードドライブパスワードおよび／またはフルディスク暗号化を利用して保護される。しかし、ハードドライブパスワードまたは暗号化されたディスクパスワードを盗難者が推測できる場合には、ハードドライブ上のデータは、本発明によって提供されるような保護メカニズムが無ければ、アクセスされてしまう可能性がある。
【００１１】
ＭＥ制御リソース１９０は、チップセット／セキュアパーティション１０５で管理機能として実装されている企業データ保護方式によって管理されるリソースを表す。例えば、ＭＥ制御リソース１９０は、センサ、電力状態コントローラ、ネットワークコントローラ、および、プラットフォーム初期化時に利用される第三者のファームウェアおよびソフトウェアを提供するフラッシュメモリを含むとしてよい。プラットフォーム初期化時には脆弱であること、および、第三者のファームウェアコードがウイルスに感染している可能性を考慮して、ＭＥ制御リソース１９０は、プラットフォーム１００からリモートに動作している企業管理ソフトウェアの制御下に置かれる。ＭＥ制御リソース１９０はこのため、企業管理ソフトウェアと、チップセット／セキュアパーティション１０５等、プラットフォーム１００上のセキュアパーティション内で実行されている管理エンジン１４０との間にあるセキュアチャネルを介して更新されるとしてよい。企業管理ソフトウェアに関連する管理エンジン１４０の動作については、さらに以下で詳細に説明する。
【００１２】
ＢＩＯＳ／ＰＢＡ（ブート前認証）モジュール１１０は、システム初期化時に利用されるプラットフォームファームウェアを含む。ベーシック・インプット・アウトプット・システム（ＢＩＯＳ）は、元々ＩＢＭのＰＣコンピュータ向けに開発されたもので、システムＢＩＯＳとしても知られているが、ファームウェアインターフェースを定義する事実上の規格である。ＢＩＯＳは、電源が入った際にＰＣが実行する最初のコードとして設計されているブートファームウェアである。ＢＩＯＳの最初の機能は、ビデオディスプレイカード、ハードディスク、および、フロッピー（登録商標）ディスクおよびその他のハードウェア等のシステムデバイスの特定、試験および初期化を行うことである。マシンは、この初期化によって公知の状態になり、準拠した媒体に格納されているオペレーティングシステム等のソフトウェアをロードして、実行し、ＰＣを制御可能となる。このプロセスは、ブートまたはブートアップとして知られており、ブートストラップの短縮形である。ＢＩＯＳ／ＰＢＡ１１０は、ブート前認証モジュールを含み、オペレーティングシステムをブートする前にユーザ認証情報を取得する。
【００１３】
ＢＩＯＳ／ＰＢＡ１１０は、プラットフォームリソースＡＴＡデバイス１８０と通信を行うべく、認証クライアント１２０およびアドバンスド・テクノロジ・アタッチメント（ＡＴＡ）コマンドモジュール１３０を含む。認証クライアント１２０は、管理エンジン１４０のアウト・オブ・バンドネットワークスタック１４４を介してドメインコントローラ１７０との間でドメイン認証を実行する。ドメイン認証は、プラットフォーム識別情報のみ、ユーザ識別情報のみ、または、プラットフォーム識別情報とユーザ識別情報の組み合わせを利用して実行することができる。
【００１４】
認証クライアント１２０は、本明細書において、ケルベロス識別情報管理インフラストラクチャを利用してプラットフォーム１００の他の構成要素およびドメインコントローラ１７０とインタラクションするものとして説明されるが、本発明はこれに限定されない。他の識別情報管理インフラストラクチャを利用するとしてもよい。例えば、ＳＡＭＬ（セキュリティ・アサーション・マークアップ言語）、Ｃａｒｄ  Ｓｐａｃｅ（カードスペース）、Ｌｉｂｅｒｔｙ  Ａｌｌｉａｎｃｅ（リバティアライアンス）、公共鍵等を利用するとしてよい。さらに、認証クライアント１２０をＢＩＯＳ／ＰＢＡモジュール１１０の一部として実装されるものとして図示しているが、認証クライアント１２０はこれに代えて、管理エンジン１４０またはプラットフォーム１００の他のセキュアパーティションの一部として実装されるとしてもよい。
【００１５】
一実施形態によると、認証クライアント１２０は、ケルベロス識別情報管理インフラストラクチャにしたがって動作する。ケルベロスでは、基本的に、対称ニーダムシュレーダープロトコルを利用する。ケルベロスでは、鍵分配センター（ＫＤＣ）と呼ばれる信頼のおける第三者を利用する。鍵分配センターは、認証サーバ（ＡＳ）およびチケット許可サーバ（ＴＧＳ）という２つの論理的に別個の構成要素から成る。ケルベロスは、ユーザの識別情報を証明する機能を持つ「チケット」に基づき動作する。
【００１６】
ＫＤＣは、秘密鍵のデータベースを維持する。ネットワーク上の各エンティティは、クライアントまたはサーバのいずれであっても、当該エンティティ自身およびＫＤＣのみが知っている秘密鍵を共有している。この鍵を知っているという事実が、エンティティの識別情報を証明する機能を果たす。２つのエンティティ間の通信については、ＫＤＣがセッション鍵を生成し、この鍵を利用して両者間のインタラクションを保護することができる。このプロトコルのセキュリティは、時間の同期が厳密でない参加者、および、ケルベロスチケットと呼ばれる一時的な正当性の主張に大いに左右される。
【００１７】
ケルベロスプロトコルでは、認証クライアント１２０等のクライアントが、認証サーバ（ドメインコントローラ１７０のＫＤＣ１７１内）に対して自身を証明し、チケットを受信する。（全てのチケットは、タイムスタンプが付与されている。）認証クライアント１２０はこの後、ＫＤＣ１７１のチケット付与サーバに連絡を取り、当該チケットを用いて、自身の識別情報を証明し、サービスを要求する。認証クライアント１２０が当該サービスを受ける資格を持つ場合、チケット付与サーバは、別のチケットを認証クライアント１２０に送信する。認証クライアント１２０はこの後、サービスサーバ（本例では、管理エンジン１４０内の認証済みサービス１５０）に連絡を取り、このチケットを利用して、認証クライアント１２０は、サービスを受け取ることが承認された旨を証明する。
【００１８】
管理エンジン１４０は、共通サービス１４２を含む。共通サービス１４２は、アウト・オブ・バンドネットワークスタック１４４を含む。一実施形態によると、管理エンジン（ＭＥ）１４０は、セキュアで隔離された環境を提供し、当該環境は、プラットフォーム１００用のホストオペレーティングシステム（不図示）からはアクセスできない。一実施形態によると、管理エンジン（ＭＥ）１４０は、ユーザを認証し、周辺デバイスへのアクセスを制御し、ＡＴＡデバイス１８０およびＭＥ制御リソース１９０等のプラットフォーム１００の格納デバイス上に格納されるデータを保護するための暗号鍵を管理し、アウト・オブ・バンドネットワークスタック１４４を介してドメインコントローラ１７０へのインターフェースを提供する。
【００１９】
ＭＥ共通サービス１４２は、複数の異なるファームウェアモジュールが共通して必要とするサービスを含み、セキュリティサービス、プロビジョニングサービス、および、ネットワーキングサービスを含む。ＭＥ共通サービス１４２が提供するセキュリティサービスは通常、ＨＴＴＰダイジェストおよびケルベロス認証の両方から成るユーザ認証、マイクロソフト・アクティブ・ディレクトリおよび／または他のサービスを利用したドメイン認証、クライアントおよびサーバのクロックを同期させるクロック同期サービス、および、セキュリティ監査サービスを含む。ＭＥ共通サービス１４２が提供するプロビジョニングサービスは、プラットフォーム１００に企業ソフトウェアをプロビジョニングするために、企業サーバ（不図示）と共に利用される。
【００２０】
ＭＥ共通サービス１４２が提供するネットワーキングサービスは、アウト・オブ・バンドネットワークスタック１４４を含む。アウト・オブ・バンドネットワークスタック１４４は、トランスミッション・トランスポート・プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、トランスポートレイヤセキュリティ（ＴＬＳ）、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）、ウェブ・サービス・フォー・マネジビリティ（ＷＳ−ＭＡＮ）、および、ローカル・マネジビリティ・サービス（ＬＭＳ）と呼ばれるホストベースのＴＬＳインターフェース等のサービスへのサポートを含むとしてよい。認証クライアント１２０は、アウト・オブ・バンドネットワークスタック１４４を利用して、ドメインコントローラ１７０と通信を行う。
【００２１】
管理エンジン１４０はさらに、認証済みサービス１５０を含む。認証済みサービス１５０は、認証クライアント１２０および管理エンジン１４０等のクライアントからの要求に応じて認証済みのサービスを提供する。一実施形態によると、認証済みサービス１５０は、管理エンジン１４０およびＢＩＯＳによって制御可能なプラットフォームリソース、例えば、センサ、電力コントローラ、ネットワークコントローラ、および、集積化されているフラッシュメモリへのアクセスを制御するケルベロスサービスである。例えば、ケルベロス識別情報管理インフラストラクチャを用いる実施形態において、認証済みサービス１５０は、サービスチケットを受信することに応じて、認証クライアント１２０へフルディスク暗号鍵サービスを提供する。一実施形態によると、認証済みサービス１５０は、フルディスク暗号技術を利用して暗号化された格納デバイスを復号化するための復号鍵として機能するトークンを提供する。
【００２２】
一実施形態によると、認証済みサービス１５０はさらに、窃盗防止サービス１６０を含む。窃盗防止サービス１６０は、ドメインコントローラ１７０の企業サーバコンポーネント（不図示）と共に利用され、プラットフォーム１００が盗まれた場合にプラットフォーム１００の格納デバイスからデータが盗まれないようにする。窃盗防止サービス１６０は、プラットフォーム１００の盗難が報告されると、プラットフォームリソースをディセーブルおよび／またはロックすることが可能である。具体的には、窃盗防止サービス１６０は、アウト・オブ・バンドネットワークスタック１４４を介した企業サーバ（不図示）によるＭＥ制御リソース１９０へのアクセス、例えば、ロックおよびアンロックを可能とする。窃盗防止サービス１６０の制御は、自身のユーザアカウントを利用してアクティブ化するとしてよい。プラットフォーム１００が盗まれると、ユーザアカウントにアクセスして、窃盗防止サービス１６０をアクティブ化して、チップセットコントローラ、センサおよび／または集積化されたフラッシュメモリへの電力を制御することによってプラットフォーム１００をディセーブルする。
【００２３】
一実施形態によると、認証済みサービス１５０はさらに、管理エンジン１４０とＡＴＡデバイス１８０との間で直接通信が可能となるように、ＡＴＡコマンドモジュール１３１を含む。この直接通信については、図２を参照しつつ後述する。
【００２４】
ドメインコントローラ１７０は、複数のバックエンドサービスを含むとしてよい。例えば、鍵分配センター（ＫＤＣ）１７１、プラットフォームリソースのためのアクセス制御ポリシーを維持するためのマイクロソフトアクティブディレクトリまたはライトウェイトディレクトリアクセスプロトコル（ＬＤＡＰ）サービス等のディレクトリサービス１７２、および、リソースおよびポリシーの管理システムを含む。ドメインコントローラ１７０はさらに、識別情報管理のインフラストラクチャを提供するサーバ、例えば、認証サービス（ＡＳ）プロトコルに応じて動作する認証サーバ、および、チケット付与サービス（ＴＧＳ）プロトコルに応じて動作するチケット付与サーバを含むとしてよい。一実施形態によると、ドメインコントローラ１７０が発行するチケットは、ディレクトリサービス１７２からのアクセス制御ポリシーを表す認証属性を含むとしてよく、プラットフォームリソースへのアクセスを承認する。ドメインコントローラ１７０はさらに、窃盗防止サービス１６０等のさまざまなドメイン関連サービスを管理する１以上の企業サーバを含むとしてよい。
【００２５】
一実施形態によると、ケルベロスプロトコルを認証属性ペイロードと組み合わせることで、プラットフォームがエニュメレートするさまざまなリソースのアクセス制御ルールが伝達され得る。このレベルの制御は、ケルベロスモデルを利用することで実現される。ケルベロスサービスプロセスをチップセットの認証済みサービス１５０に埋め込む。チップセットは、ＡＴＡ格納デバイス１８０およびＭＥ制御リソース１９０等のアクセスプラットフォームリソースへのゲートとして機能する。ケルベロスクライアントである認証クライアント１２０も、ケルベロス鍵分配センター（ＫＤＣ）１７１に対してユーザを認証し、ディレクトリサービス１７２に含まれている中央管理セキュリティポリシーに応じてユーザの役割および特権を作成するべく、プラットフォームに埋め込まれる。セキュリティポリシーは、ハードドライブ、フラッシュメモリ、センサ、ネットワークコントローラおよび電力状態コントローラを含むプラットフォームリソースへのユーザのアクセスを承認するようケルベロスチケットに要求することによって、均一に適用可能である。
【００２６】
一実施形態によると、ドメインコントローラ１７０は、プラットフォーム用のドメイン認証情報を受信して、ドメイン認証情報を認証し、ドメイン認証情報を認証したことに応じてプラットフォームにアクセスポリシーを提供する。アクセスポリシーは、ドメイン認証情報がアクセス権を持つプラットフォームのリソースを特定するために用いられ、アクセスポリシーは、リソースをアンロックするためのトークンを含む。
【００２７】
図２は、本発明の一実施形態に応じた、図１のプラットフォームのプラットフォーム認証情報および／またはユーザの認証に応じて、暗号化された格納デバイスをアンロックする処理を示すフローチャートである。上述したように、このような認証情報は、プラットフォーム初期化プロセスの初期に、オペレーティングシステムのブートの前に、ＢＩＯＳ／ブート前認証（ＰＢＡ）モジュール１１０のプラットフォームファームウェアによって取得される。動作２．１において、認証クライアント１２０は、ユーザの認証情報を、例えば、ログインプロセス中に、取得して、ユーザの認証情報をドメインコントローラ１７０に提供する。一実施形態によると、ドメインコントローラ１７０によって管理されるユーザの識別子は、ドメインコントローラ１７０の認証サーバ（ＡＳ、不図示）に、認証サーバ（ＡＳ）プロトコルを用いた要求として、管理エンジン１４０のネットワークスタック１４４を介して、送信される。ユーザの認証情報はさらに、プラットフォームの識別子であってよく、または、プラットフォーム識別子およびユーザ識別子の両方を含むとしてよい。このユーザ認証情報および／またはプラットフォーム認証情報は、管理エンジン１４０のネットワークスタック１４４を介して送信される。これは、初期化プロセス中の、オペレーティングシステムのロード前の、初期の段階では、プラットフォーム用のネットワーク通信機能がまだ、初期化されていないためである。企業管理システムが提供するネットワーク通信用のプラットフォーム設定の特徴を利用することによって、ドメインコントローラ１７０との通信は、ネットワーク通信をプラットフォーム用に設定する前であっても、可能になる。
【００２８】
動作２．２では、要求に対する応答が、ドメインコントローラ１７０の認証サーバから送信される。この応答は、認証クライアント１２０が認証クライアント１２０を認証してドメイン内の認証済みサービス１５０等の認証済みサービスへの接続を構築するためのチケット付与チケット（ＴＧＴ）を含む。動作２．３では、認証クライアント１２０が、チケット付与チケット（ＴＧＴ）を利用して、認証済みサービス１５０等の認証済みサービスへのチケット付与サービス（ＴＧＳ）プロトコルを介してアクセスを要求する。先述したように、一実施形態によると、認証済みサービス１５０は、フルディスク暗号化技術を利用して暗号化された格納デバイスを復号するための復号鍵として機能するトークンを供給する。
【００２９】
動作２．４において、アクセスが許可されると、サービスチケットとしてドメインコントローラ１７０のチケット付与サーバ（ＴＧＳ、不図示）から認証クライアント１２０へと応答が発行される。動作２．５において、認証クライアント１２０は、サービスチケットを利用して、認証済みサービス１５０にアクセスする。認証済みサービス１５０は、本例では、ケルベロス認証されフルディスク暗号サービスである。認証済みサービス１５０は、クライアント識別情報（動作２．１から）に対応付けられているアクセス制御ポリシーを確認する。このアクセス制御ポリシーは、サービスチケットに含まれており、ドメインコントローラ１７０のディレクトリサービス１７２によって提供される。アクセスポリシーは、認証済みクライアント１２０がアクセスするプラットフォームリソースがどれかを特定する。例えば、アクセスポリシーは、プラットフォーム識別子、格納デバイス識別子、デバイス鍵、認証用のデバイスファームウェア測定値、および、デバイス用のアクセストークンを含むとしてよい。さまざまな種類のリソースは、それぞれ必要なトークン構造および／または内容が異なるが、リソースにアクセスするために必要な情報、トークンまたはトークン値は、サービスチケットの一部として提供されるアクセスポリシーに含まれる。サービスチケットの受信に応じて、アクセスが許可されると、認証済みサービス１５０（またはその一部、例えば、窃盗防止サービス１６０またはＡＴＡコマンドモジュール１３１）は、アクセスポリシーからアクセストークンを取得する。動作２．６では、アクセストークンは、認証済みサービス１５０によって認証クライアント１２０に提供される。一実施形態によると、認証クライアント１２０と認証済みサービス１５０との間のチャネルセキュリティは、ケルベロスセッション鍵を用いて、ネットワークスタック１４４のトランスポートレイヤセキュリティ（ＴＬＳ）から供給される。このチャネルセキュリティによって、中間者攻撃および反射攻撃から保護される。
【００３０】
動作２．７では、トークンをＡＴＡコマンドモジュール１３０に提供する。ＡＴＡコマンドモジュール１３０は、動作２．８において、ＡＴＡデバイス１８０のうち１以上に対してアンロックコマンドを発行する。トークンは、ＯＰＡＬおよびＩＥＥＥ１６６７シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ）プロトコルの拡張版に応じて、ＡＴＡデバイス１８０に供給されるとしてよい。
【００３１】
一実施形態によると、アクセストークンはさらに、認証済みサービス１５０によって、アクセストークンをＡＴＡデバイス１８０のうち所与のデバイスにシール（ｓｅａｌ）することによって、エンド・ツー・エンドで（ドメインコントローラ１７０からＡＴＡデバイス１８０まで）保護される。例えば、アクセスポリシーからのアクセストークンおよびデバイス識別子は、アクセスポリシーからのデバイス鍵を用いてデバイスナンスと共に暗号化されるとしてよい。認証済みサービス１５０は、ブロブ（ｂｌｏｂ）がシールされると、デバイスによって、デバイスナンスを発生させる。このように暗号化されシールされたブロブは、認証クライアント１２０に返却することができ、その後ＡＴＡコマンドモジュール１３０およびＡＴＡデバイス１８０に供給され得る。ナンスおよびデバイスＩＤは、アンロックコマンドをＡＴＡデバイス１８０のうち１以上に発行する前に、ＡＴＡコマンドモジュール１３０によって検証され得る。
【００３２】
別の実施形態によると、アクセストークンは、「組織的結合」と説明されるプロセスにおいて、管理エンジン１４０からＡＴＡデバイス１８０へと直接ＴＬＳチャネルを作成することによって、エンド・ツー・エンドで（ドメインコントローラ１７０からＡＴＡデバイス１８０まで）保護される。このようにエンド・ツー・エンドで保護するためには、ＡＴＡコマンドモジュール１３１を利用して、ＢＩＯＳ／ＰＢＡ認証モジュール１１０のＡＴＡコマンドモジュール１３０および認証クライアント１２０を経過するのではなく、ＡＴＡデバイス１８０に直接アクセスする。このような実施形態では、動作２．５を参照しつつ上述したように取得されたアンロックトークンは、動作２．６および動作２．７を参照しつつ上述したように、認証クライアント１２０およびＡＴＡコマンドモジュール１３０を経過するのではなく、認証済みサービス１５０からＡＴＡコマンドモジュール１３１を通ってＡＴＡデバイス１８０へとＴＬＳセッションを介して直接配信されるであろう。この組織的結合を実施すると、ＴＬＳプロトコルは、ナンスを満足させ、要件をシールして、アクセストークンをエンド・ツー・エンドで保護する。
【００３３】
認証済みサービス１５０は、格納されているデータを復号する前にＡＴＡデバイス１８０が適切に設定されることを保証できる。データは、鍵導出関数（ＫＤＦ）をアクセストークンおよびデバイスファームウェアの測定値に適用することによって、デバイス設定にシールされる。例えば、ＡＴＡデバイス１８０のうち所与のデバイス上のデータを暗号化および復号するために用いられるトークンＴ１´は、アクセストークンＴ１およびデバイスファームウェアの測定値（普通は、ファームウェアのハッシュ関数として算出される）Ｈ１に適用する鍵導出関数を用いて算出できる。本例では、トークンＴ１´＝ＫＤＦ（トークンＴ１、ハッシュＨ１）である。ＡＴＡデバイス１８０のうち所与のデバイスは、デバイスファームウェアの暗号ハッシュ（例えば、ＳＨＡ２５６またはＡＥＳ−ＣＭＡＣ）および任意の関連する設定を算出することによってデバイスファームウェアの測定値を取得する。認証済みサービス１５０は、ファームウェア更新配信の一部として、製造者から、デバイスファームウェア測定値を取得する。
【００３４】
暗号ハッシュ関数を利用してデバイスファームウェアを保護することによって、暗号化されたデータをＡＴＡデバイス１８０から不正に取得する不正デバイスファームウェアに対する保護が強化される。不正デバイスファームウェアは、ＡＴＡデバイス１８０の所与のデバイスに格納されているデータを復号するためのアクセストークンを導出するためのハッシュＨ１値の値を推測する必要がある。正しいハッシュＨ１値を推測する可能性は非常に低いので、暗号化されたＡＴＡデバイス１８０からデータを不正に取得できる可能性は非常に低い。
【００３５】
ＡＴＡデバイス１８０へのアクセス権の取消は、ドメインコントローラ１７０と共に認証済みサービス１５０によって中央管理されている。デバイスが盗難に遭い、ある組織が正当な利用および不正な利用の両方を制限したい場合、管理者は、盗難に遭ったデバイスのアクセストークンを、認証済みサービス１５０のアクセスポリシーから削除することができる。この後、アクセス要求は拒絶され、認証クライアント１２０にはサービスチケットが配信されることはなく、上述した動作２．５から２．７は完了できない。
【００３６】
認証情報がユーザ識別子およびプラットフォーム識別子の両方を含む場合、動作２．２で取得したチケット付与チケット（ＴＧＴ）は、両方の識別子を含む。アクセスポリシーは、クライアントの識別子として、（ユーザ識別情報、プラットフォーム識別情報）のタプルを含むように設計される。
【００３７】
図３は、本発明の一実施形態に応じた、プラットフォームの認証に応じて、匿名ユーザの利用についてリソースをアンロックする処理を示すフローチャートである。本例では、Ｒ０からＲＮの複数のリソースから成るリソース群が、匿名ユーザのアクセスについて承認されており、プラットフォームのドメインに対する認証が成功した場合には、プラットフォームの全てのユーザにアクセスが許可される。一実施形態によると、ドメインに対してプラットフォームを認証する処理は、プラットフォームのセキュアパーティション、例えば、管理エンジン１４０を、ドメインコントローラ１７０に対して認証することを含む。
【００３８】
動作３．１においてネットワーク接続がプラットフォーム１００とドメインコントローラ１７０との間で構築されると、認証済みサービス１５０は、ドメインコントローラ１７０に登録され、サービス要求に対して利用可能である旨が示される。動作３．１は、ユーザの存在を必要としないリソースのアクティブ化に関して自動生成された要求を表す。例えば、プラットフォームの盗難が報告されていない場合、チップセット／セキュアパーティション１０５は、完全な起動を認証するサービスチケットが与えられている可能性がある。これとは対照的に、プラットフォームの盗難が報告されている場合、チップセット／セキュアパーティション１０５の起動を承認するサービストークンは与えられていない。プラットフォームが盗まれた場合、ドメインコントローラ１７０とやり取りするべく電力を受け取る必要があるのは認証済みサービス１５０のみであり、他の全てのチップセット／セキュアパーティション１０５の構成要素は、電源オフのままであってよい。ドメインコントローラ１７０は、図２の動作２．１から２．５を参照しつつ上述したように、アクセスポリシーに従って、認証済みの要求元に対してサービスチケットを発行する。本例によると、サービスチケットは認証済みサービス１５０に対して発行される。
【００３９】
動作３．２において、ドメインコントローラ１７０は、暗号トークンを必要とするリソースについてアンロックトークンを供給する。ユーザの存在を必要としない場合に限りプログラム的にアクセスが強要されるリソースについて、アクセスポリシー情報は認証済みサービス１５０に供給される。
【００４０】
認証済みサービス１５０は、ＡＴＡデバイス１８０等の格納デバイスにアクセスするよう求めるホストアプリケーションからのコマンドに応答する。動作３．３において１以上のＡＴＡデバイス１８０をアンロックするよう求める要求に応じて、認証済みサービス１５０は、アクセスポリシーを評価し、リソースＲ０からＲｍ（ＡＴＡデバイス１８０に対応）についてアンロックトークンを供給する。ＡＴＡコマンドモジュール１３０は、ＡＴＡ、ＯＰＡＬに適切なトークンパラメータを供給する適切なＡＴＡコマンド、または、格納リソースをアンロックする他のコマンドを形成する。そして、動作３．４において、ＡＴＡデバイス１８０をアンロックする。
【００４１】
認証済みサービス１５０はさらに、管理エンジン１４０によって直接制御されるリソース、例えば、ＭＥ制御リソース１９０に対するアクセスを制御する。例えば、管理エンジン１４０は、プラットフォームファームウェアを含むフラッシュメモリを直接制御するとしてよい。認証済みサービス１５０は、窃盗防止サービス１６０に対して、ＭＥ制御リソース１９０（リソースＲｍ＋１からＲｎ）へのアクセスを承認する。アクセス中のリソースが暗号トークンを必要とする場合、本例ではＭＥ制御リソース１９０のうち少なくとも一部がそうであるが、動作３．５に示すように、窃盗防止サービス１６０に対して暗号トークンが供給される。動作３．６において、窃盗防止サービス１６０は、ＭＥ制御リソース１９０をアンロックするよう求めるコマンドを発行する。
【００４２】
図４は、本発明の一実施形態に応じて、プラットフォームおよびユーザの両方を認証したことに応じて、匿名でないユーザによる利用について認証されたリソースをアンロックする処理を示すフローチャートである。本例では、図３のプロセスが既に実行されたものと仮定し、Ｒ０からＲまでのリソース群は既に匿名のユーザによるアクセスについて承認されており、認証済みサービス１５０は既に、ドメインコントローラ１７０に登録されているものとする。以下のステップでは、ユーザがアクセス権を持つことが確認された追加リソースＲＮ＋1からＲｚを認証およびアンロックするための追加処理を説明する。本例では、リソースＲＮ＋１からＲＹは、ユーザがアクセス権を持つことが確認されたＡＴＡリソースであり、リソースＲＹ＋１からＲｚは、ユーザがアクセス権を持つことが確認されたＭＥ制御リソースである。
【００４３】
動作４．１において、ユーザはドメインに登録される。このユーザ登録は、図２の動作２．１から２．５で実行された処理と同様に実行され、アウト・オブ・バンドネットワークスタック１４４を用いて、プラットフォームのＢＩＯＳ／ＰＢＡ１１０で実施されている認証クライアント１２０と、ドメインコントローラ１７０との間で通信を行う。本例では、認証サービス１５０は既にドメインに登録されているので、動作４．２において、ＭＥサーバチケット（つまり、管理エンジン１４０の認証済みサービス１５０にアクセスするためのサービスチケット）がドメインコントローラ１７０から認証クライアント１２０へと供給される。ドメインコントローラ１７０はさらに、ユーザの特権を評価して、暗号化を利用したアクセスを許可するために必要なアンロックトークンの位置を特定するので、リソースＲＮ＋１からＲＹ、ユーザがアクセス権を持つことが確認されているＡＴＡリソースに対するアンロックトークンが認証クライアント１２０に提供される。動作４．３において、認証クライアント１２０は、ＭＥサーバチケット、および、リソースＲＮ＋１からＲＹに対するアンロックトークンを認証済みサービス１５０に供給するので、アクセス特権が付与される。
【００４４】
動作４．４において、ＡＴＡデバイス１８０のリソースＲＮ＋１からＲＹへのアクセスを求める要求に応じて、認証済みサービス１５０は、リソースＲＮ＋１からＲＹに対するアンロックトークンをＡＴＡコマンドモジュール１３０に供給する。ＡＴＡコマンドモジュール１３０はこの後、ＡＴＡデバイス１８０に対してアンロックコマンドを発行して、デバイスをアンロックする。
【００４５】
動作４．６において、認証済みサービス１５０は、リソースＲＹ＋１からＲｚについてのアンロックトークンを窃盗防止サービス１６０に供給する。動作４．７において、窃盗防止サービス１６０は、ＭＥ制御リソース１９０をアンロックする。例えば、アンロックトークンは、チップセットコントローラへの電力をイネーブルまたはディセーブルするとしてよく、および／または、電力状態を変化させるとしてもよい。一実施形態によると、アンロックトークンは、ドメインコントローラ１７０によって供給されるキャッシュ済みトークン値をリフレッシュするために用いられるトークン値を含む。
【００４６】
図５は、本発明の一実施形態に応じた、プラットフォームリソースを制御するべく、ドメイン認証を実行するよう構成されているシステムを示すブロック図である。プラットフォーム５００は、ホストコンピュータシステムに対応し、デスクトップ管理インターフェース（ＤＭＩ）５１１を介してチップセット５２０に接続されているプロセッサ５１０を備える。プロセッサ５１０は、プラットフォーム５００の処理能力を実現し、シングルコアプロセッサまたはマルチコアプロセッサであってよく、複数のプロセッサがプラットフォーム５００には含まれているとしてもよい。プロセッサ５１０は、１以上のシステムバス、通信経路、または、媒体（不図示）を介して、プラットフォーム５００の他の構成要素に接続されているとしてもよい。
【００４７】
チップセット５２０は、プラットフォーム５００の設定および動作を管理するべく管理エンジン（ＭＥ）５３０を含む。ＭＥ５３０は、ホストプロセッサ５１０から独立して動作する埋め込み型マイクロプロセッサとして実施されるとしてよい。一実施形態によると、プロセッサ５１０は、ホストオペレーティングシステム（不図示）の指示に応じて動作し、管理エンジン（ＭＥ）５３０は、ホストオペレーティングシステムがアクセス不可能なセキュアで隔離された環境を供給する。一実施形態によると、管理エンジン（ＭＥ）５３０は、ユーザを認証し、周辺デバイスに対するアクセスを制御し、プラットフォーム５００の格納デバイスに格納されているデータを保護するための暗号鍵を管理し、ネットワークコントローラ５６０を介して企業サービス５７０へのインターフェースを提供する。管理エンジン（ＭＥ）５３０は、企業サービス５７０を利用して、プラットフォーム５００等のプラットフォームの管理および設定に関する企業内ポリシーに反しないようにし、本発明の一実施形態に応じて、ドメイン認証を利用してプラットフォームリソースを制御する。
【００４８】
ＭＥ５３０と企業サービス５７０との間の通信は、アウト・オブ・バンド通信チャネル５７１を介して行われる。一実施形態によると、アウト・オブ・バンド通信チャネル５７１は、ホストシステム上の管理エンジン（ＭＥ）５３０と、ホストシステムを管理する企業サービス５７０との間のセキュア通信チャネルである。プラットフォーム５００と企業サービス５７０との間でセキュアな通信を可能とする暗号鍵／復号鍵は、チップセット５２０と管理エンジン（ＭＥ）５３０の製造時に図５のフラッシュメモリ５９０内に格納されるとしてよい。
【００４９】
図５に示す実施形態によると、管理エンジン（ＭＥ）５３０は、管理エンジンコントローラインターフェース（ＭＥＣＩ）５３１を介して、マイクロコントローラ５４０に結合される。一実施形態によると、マイクロコントローラ５４０は、格納コマンドの復号および他の加速処理を実行する汎用コントローラである。図示した実施形態によると、管理エンジン（ＭＥ）５３０は、マイクロコントローラ５４０の動作を管理しており、マイクロコントローラ５４０は、格納コントローラ５５０の動作を制御している。マイクロコントローラ５４０は、格納コントローラ５５０用のドライバを有するとともに、任意のディスク暗号化機能に関するロジックを有する。格納コントローラ５５０は、格納デバイス５５２等の格納デバイス用のコントローラであり、マイクロコントローラ５４０およびＭＥ５３０による格納デバイス５５２上に格納されているデータへのアクセスを可能とする。
【００５０】
プラットフォーム５００はさらに、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）５１２、チップセット５２０内のスタティックランダムアクセスメモリ（ＳＲＡＭ）５２２、および、フラッシュメモリ５９０等のメモリデバイスを備え、格納コントローラ５５０を介してアクセス可能な格納デバイス５５２を備える。これらのメモリデバイスは、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリーメモリ（ＲＯＭ）を含むとしてよい。本開示では、「ＲＯＭ」という用語は概して、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュＲＯＭ、フラッシュメモリ等の不揮発性メモリデバイスを意味するものとして利用されるとしてよい。格納デバイス５５２は、インテグレーテッド・ドライブ・エレクトロニクス（ＩＤＥ）、ハードドライブ等の大容量格納デバイス、および／または、フロッピー（登録商標）ディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生物学的記憶装置等の、他のデバイスまたは媒体を含むとしてよい。
【００５１】
フラッシュメモリ５９０は、フラッシュインターフェース５９１を介してチップセット５２０からアクセス可能である。格納デバイス５５２および／またはメモリデバイスＤＲＡＭ５１２、ＳＲＡＭ５２２およびフラッシュメモリ５９０に格納されているデータは、暗号化されているとしてもよい。
【００５２】
フラッシュメモリ５９０は、プラットフォーム５００を初期化するために用いられるファームウェアを含む。この初期化ファームウェアは、システムコンポーネントハードウェア（ビデオディスプレイカードおよびハードディスク等）、および、管理エンジン（ＭＥ）５３０を含むその他の一部のハードウェアデバイスを特定して初期化するベーシック・インプット／アウトプット・システム（ＢＩＯＳ）ファームウェア５９２を含む。ＢＩＯＳファームウェア５９２は、プラットフォーム５００のシステムコンポーネントハードウェアが公知の低機能状態で動作するように準備するので、さまざまな媒体に格納されている他のソフトウェアプログラム、例えば、オペレーティングシステムは、ロード、実行が可能となり、プラットフォーム５００の制御が与えられる。ＢＩＯＳファームウェア５９２は、ＢＩＯＳ／ＭＥ通信モジュール５９３を含み、ＢＩＯＳ／ＭＥ通信モジュール５９３は、ブート処理時に管理エンジン（ＭＥ）５３０の初期設定が出来るようにする。一実施形態によると、管理エンジン（ＭＥ）５３０は、プラットフォーム５００用のオペレーティングシステムがロードされる直前に通知を受け取るべく、ＢＩＯＳ／ＭＥ通信モジュール５９３に登録される。この通知によって、管理エンジン（ＭＥ）５３０は、オペレーティングシステムのロードについて準備するべく特定の命令を実行できるようになる。
【００５３】
フラッシュメモリ５９０はさらに、ネットワークコントローラ５６０を設定するためのネットワークコントローラファームウェア５９５、および、チップセット５２０を設定するためのチップセットファームウェア５９６を含む。フラッシュメモリ５９０はさらに、データ領域５９８を持つ。一実施形態によると、データ領域５９８は、暗号化され、管理エンジン（ＭＥ）５３０のみが読み出すとしてよい。プラットフォームリソースのドメイン認証による制御を行うべくＭＥ５３０が利用する情報は、フラッシュメモリ５９０のデータ領域５９８または格納デバイス５５２に格納されるとしてよい。
【００５４】
プロセッサ５１０はさらに、追加で設けられる構成要素、例えば、ビデオコントローラ、小型計算機システムインターフェース（ＳＣＳＩ）コントローラ、ネットワークコントローラ、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、キーボードおよびマウス等の入力デバイスと通信可能に結合されているとしてよい。プラットフォーム５００はさらに、さまざまなシステム構成要素を通信可能に結合するべく１以上のブリッジまたはハブ、例えば、メモリコントローラハブ、入出力（Ｉ／Ｏ）コントローラハブ、ＰＣＩルートブリッジ等を備えるとしてよい。本明細書で用いる場合、「バス」という用語は、ポイント・ツー・ポイント経路と同様に共有通信経路を意味するものとして用いられるとしてよい。
【００５５】
一部の構成要素、例えば、ネットワークコントローラ５６０は、バスとの通信を実行するためのインターフェース（例えば、ＰＣＩコネクタ）に対して用いられるアダプタカードとして実現され得る。一実施形態によると、１以上のデバイスは、プログラム可能型または非プログラム式のロジックデバイスまたはロジックアレイ、特定用途向け集積回路（ＡＳＩＣ）、埋め込みコンピュータ、スマートカード等の構成要素を用いて、埋め込みコントローラとして実現されるとしてよい。
【００５６】
本明細書で用いる場合、「処理システム」および「データ処理システム」といった用語は、一のマシン、または、通信可能に結合されている複数のマシンまたはデバイスが共同して動作する一のシステムを含む広義の意味を持つものである。処理システムの例としては、これらに限定されるものではないが、分散型コンピューティングシステム、スーパーコンピュータ、高性能コンピューティングシステム、コンピューティングクラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアント−サーバシステム、パーソナルコンピュータ、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレット、電話、携帯情報端末（ＰＤＡ）、手持ちデバイス、オーディオデバイスおよび／またはビデオデバイス等の娯楽用デバイス、ならびに、情報を処理または送信するその他のデバイスが挙げられる。
【００５７】
プラットフォーム５００は、少なくとも部分的に、従来の入力デバイス、例えば、キーボード、マウス等からの入力によって、および／または、他のマシンから受信するコマンド、バイオメトリクスフィードバック、または、他の入力ソースまたは信号によって制御されるとしてよい。プラットフォーム５００は、１以上のリモートデータ処理システム（不図示）に対する１以上の接続、例えば、ネットワークインターフェースコントローラ（ＮＩＣ）５６０、モデム、または、他の通信ポートまたは結合を介した接続を利用するとしてよい。
【００５８】
プラットフォーム５００は、物理的ネットワークおよび／または論理的ネットワーク、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イントラネット、インターネット等を利用して、他の処理システム（不図示）に相互接続されているとしてよい。ネットワークを利用した通信では、さまざまな有線式および／または無線式の短距離用または長距離用のキャリアおよびプロトコルを利用するとしてよい。例えば、無線周波数（ＲＦ）、衛星、マイクロ波、米国電気電子学会（ＩＥＥＥ）８０２．１１、Ｂｌｕｅｔｏｏｔｈ（登録商標）、光、赤外線、ケーブル、レーザ等を利用するとしてよい。
【００５９】
図６は、本発明の一実施形態に応じて、ドメイン認証を利用してプラットフォームリソースを制御するべく、セキュアパーティションを実現するための仮想マシン環境を示す図である。プラットフォーム６００は、仮想化されている場合、有しているプロセッサは１つのみであるとしてよいが、ホスト上の仮想マシンモニタ（ＶＭＭ６３０）は、ホストの複数の抽象化および／またはビューを表すとしてよく、ホストの下層のハードウェアは、１以上の独立して動作する仮想マシン（ＶＭ）に見える。ＶＭＭ６３０は、ソフトウェア（例えば、スタンドアロンプログラムおよび／またはホストオペレーティングシステムの一構成要素として存在）、ハードウェア、ファームウェア、および／または、これらを任意に組み合わせたもので実現されるとしてよい。ＶＭＭ６３０は、ホスト上のリソースの割り当てを管理し、ラウンドロビン方式またはその他の所定の方式に従って、ＶＭ同士の間でのサイクルで必要となるのに応じてコンテクストスイッチを実行する。当業者であれば、図示されているプロセッサは１つのみ（プロセッサ６０５）であるが、本発明の実施形態はこれに限定されず、複数のプロセッサも仮想化環境で利用し得るものと容易に想到するであろう。
【００６０】
図示しているＶＭパーティションは２つのみであるが（「ＶＭ６１０」および「ＶＭ６２０」、以下では「ＶＭ」と総称する）、これらのＶＭは単に一例に過ぎず、追加の仮想マシンをホストに追加するとしてもよい。ＶＭ６１０およびＶＭ６２０は、それぞれが自己完結型プラットフォームとして機能するとしてよく、独自の「ゲストオペレーティングシステム」（つまり、ＶＭＭ６３０がホストとなるオペレーティングシステムで、「ゲストＯＳ６１１」および「ゲストＯＳ６２１」と図示している、以下では「ゲストＯＳ」と総称する）および他のソフトウェア（「ゲストソフトウェア６１２」および「ゲストソフトウェア６２２」と図示、以下では「ゲストソフトウェア」と総称する）を実行する。
【００６１】
各ゲストＯＳおよび／または各ゲストソフトウェアは、仮想マシンではなく専用コンピュータで実行されているように動作する。つまり、各ゲストＯＳおよび／または各ゲストソフトウェアは、さまざまなイベントを制御することが期待されており、プラットフォーム６００上のハードウェアリソースへのアクセスを持つとしてよい。各ＶＭでは、ゲストＯＳおよび／またはゲストソフトウェアは、実際にプラットフォーム６００の物理的ハードウェア（「ホストハードウェア６４０」、これはネットワークコントローラ６６０を含むとしてよい）で実行されているかのように、動作するとしてよい。
【００６２】
当業者であれば、図１の管理エンジン（ＭＥ）１４０等の専用プロセッサを持つ物理的ハードウェアパーティションの方が、仮想化パーティション（図６に図示しているもの）よりも、高いレベルのセキュリティが得られるが、本発明の実施形態はいずれの環境での実施可能であり、および／または、これらの環境を組み合わせることでさまざまなレベルのセキュリティが得られることは、容易に想到するであろう。また、ＭＥプラットフォーム、ＡＭＴプラットフォームまたはＰＲＬプラットフォームは仮想化環境内で実現され得ることも、当業者であれば、容易に想到するであろう。例えば、ＶＭ６２０は、ホスト上のＭＥパーティションとして専用とし、ＶＭ６１０がホスト上の通常のアプリケーションを実行するとしてよい。このシナリオでは、ホストは、複数のプロセッサを持つとしてもよいし、持たないとしてもよい。例えば、ホストが２つのプロセッサを有する場合、ＶＭ６２０が他方のプロセッサに割り当てられ、ＶＭ６１０（およびホスト上の他のＶＭ）がプロセッサ６０５のリソースを共有するとしてよい。一方、ホストが有するプロセッサが１つのみである場合、当該プロセッサは、両方のＶＭに対処するとしてよいが、ＶＭ６２０は依然として、ＶＭＭ６３０の協力により、ホスト上の他のＶＭから隔離されているとしてよい。説明を簡略にするべく、本発明の実施形態は、管理エンジン（ＭＥ）環境で説明するが、本発明の実施形態はこれに限定されるものではない。これに代えて、管理エンジン、ＭＥ、「パーティション」、「セキュアパーティション」、「セキュリティパーティション」および／または「管理パーティション」といった用語は、任意の物理的パーティションおよび／または仮想パーティション（上述したように）を含むものとする。
【００６３】
起動時、または、プラットフォームに新しいデバイスがホットプラグされた場合、ＶＭＭ６３０は当該デバイスをＶＭ６１０または６２０に割り当てる。
【００６４】
フラッシュメモリ１９０はさらに、各ＶＭに対応付けられているユーザアカウントメタデータを維持するために用いられる。デバイスパスワードまたはデバイス暗号鍵のいずれか一方を用いて格納デバイスをアンロックする場合、フラッシュメモリ１９０内のユーザアカウントメタデータが、当該デバイスが割り当てられたＶＭに対応していることを確認するべく、追加確認を行うことができる。
【００６５】
ＶＭＭ６３０は、一時的なＶＭ環境によってドライブが不正に割り当てられないようにする。一実施形態によると、ＶＭＭ６３０は、ＶＭ６１０および６２０のそれぞれについてＧＵＩＤ（グローバル一意ＩＤ）を生成する。ＧＵＩＤは、フラッシュメモリ１９０内でメタデータを分割するために用いられる。
【００６６】
本明細書で開示する実施形態に係るメカニズムは、ハードウェア、ソフトウェア、ファームウェアまたはこれらの実現方法を組み合わせて実現するとしてよい。本発明の実施形態は、少なくとも１つのプロセッサ、データ格納システム（揮発性メモリおよび不揮発性メモリおよび／または格納素子を含む）、少なくとも１つの入力デバイス、および、少なくとも１つの出力デバイスを備えるプログラム可能システムで実行されるコンピュータプログラムとして実現されるとしてよい。
【００６７】
プログラムコードは、本明細書で説明した機能を実行して、出力情報を生成するべくデータを入力するために適用されるとしてよい。本発明の実施形態はさらに、本発明に係る動作を実行するための命令を含む、または、ＨＤＬ等の、本明細書で説明した構造、回路、装置、プロセッサおよび／またはシステム特徴を定義する設計データを含む機械アクセス可能媒体を含む。このような実施形態も、プログラム製品と呼ばれるとしてよい。
【００６８】
このような機械アクセス可能格納媒体には、これらに限定されないが、機械またはデバイスで形成または製造される粒子の有形配列、例えば、ハードディスク等の格納媒体、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）および光磁気ディスクを含む任意のその他の種類のディスク、リードオンリーメモリ（ＲＯＭ）等の半導体デバイス、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、フラッシュプログラム可能メモリ（ＦＬＡＳＨ）、電気的消去可能プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、磁気カードまたは光カード、あるいは、電子的に命令を格納するのに適したその他の任意の種類の媒体が含まれるとしてよい。
【００６９】
出力情報は、公知の方法で、１以上の出力デバイスに適用されるとしてよい。本願では、処理システムは、プロセッサ、例えば、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、または、マイクロプロセッサ等を有する任意のシステムを含む。
【００７０】
プログラムは、処理システムと通信するべく、高度なプロシージャプログラミング言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムは、所望されれば、アセンブリ言語またはマシン言語で実装されるとしてもよい。実際、本明細書で説明するメカニズムの範囲は、任意の特定のプログラミング言語に限定されない。いずれの場合でも、言語は、コンパイル型であってもよいし、インタプリタ型であってもよい。
【００７１】
本明細書では、ドメイン認証を利用してプラットフォームリソースを制御する方法およびシステムの実施形態を説明した。本発明の具体的な実施形態を図示および説明してきたが、特許請求の範囲から逸脱することなく、数多くの点で変更、変化および変形し得ることは、当業者には明らかである。したがって、当業者におかれては、本発明の広義の内容から逸脱することなく、変更および変形が可能であることを理解されたい。特許請求の範囲は、本発明の真の範囲および意図に入るこのような変更、変化および変形をすべて範囲に含めるものとする。
【図１】
0005592565.tif 000002
【図２】
0005592565.tif 000003
【図３】
0005592565.tif 000004
【図４】
0005592565.tif 000005
【図５】
0005592565.tif 000006
【図６】
0005592565.tif 000007