(57)【要約】【解決手段】  暗号化方式、ユーザ認証方式、ならびにパスワード保護方式によって保護されるストレージデバイスの管理を行う方法、装置、システムおよびコンピュータプログラム製品、および、仮想化環境および非仮想化環境での監査方式を提供する。【選択図】  図１
2013515296.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
システムに結合されている暗号化されたデバイスをアンロックする要求を、前記システムのホストオペレーティングシステムから隔離された前記システムのセキュアパーティションによって、前記セキュアパーティションと信頼のおけるリモートコンソールとの間に構築されているセキュア通信チャネルを介して受信する段階と、
前記セキュアパーティションが、前記ホストオペレーティングシステムの介在無しに、前記要求に応じて前記暗号化されたデバイスをアンロックする段階と
を備える方法。
【請求項２】
前記信頼のおけるリモートコンソールから前記セキュアパーティションがトークンを受信する段階と、
前記トークンを利用して前記暗号化されたデバイスのブロックを暗号化するために用いられる鍵をアンラップする段階と
をさらに備える請求項１に記載の方法。
【請求項３】
前記暗号化されたデバイスのセキュアストレージ領域から前記鍵を取得する段階をさらに備え、
前記セキュアストレージ領域は、前記ホストオペレーティングシステムから隠されている請求項２に記載の方法。
【請求項４】
前記暗号化されたデバイスをアンロックする前に、前記要求が前記信頼のおけるリモートコンソールで発行されたことを確認する段階をさらに備える請求項１に記載の方法。
【請求項５】
前記暗号化されたデバイスがアンロックされた後に管理動作を実行する段階と、
前記管理動作が実行された後に前記ホストオペレーティングシステムをブートする段階と
をさらに備え、
前記要求はさらに、実行すべき前記管理動作を特定している請求項１に記載の方法。
【請求項６】
前記暗号化されたデバイスのアンロックは、前記システムの前記ホストオペレーティングシステムが誤動作している場合に実行される請求項１に記載の方法。
【請求項７】
前記暗号化されたデバイスのアンロックは、前記システムのユーザが介在することなく実行される請求項１に記載の方法。
【請求項８】
前記要求は、前記暗号化されたデバイスのパスワードを含み、
前記暗号化されたデバイスのアンロックは、前記パスワードを用いて前記暗号化されたデバイスをアンロックすることを含む請求項１に記載の方法。
【請求項９】
少なくとも１つのプロセッサと、
前記プロセッサで実行されているホストオペレーティングシステムから隔離されているセキュアパーティションと、
前記セキュアパーティションで実行されるデバイスマネージャのための命令を有するメモリと
を備える装置であって、
前記セキュアパーティションで実行されるデバイスマネージャのための命令は、
前記装置に結合されている暗号化されたデバイスをアンロックするための要求を受信し、
前記ホストオペレーティングシステムの介在無しに、前記要求に応じて前記暗号化されたデバイスをアンロックするための命令であり、
前記要求は、前記セキュアパーティションによって、前記セキュアパーティションと信頼のおけるリモートコンソールとの間に構築されているセキュア通信チャネルを介して、受信され、前記セキュアパーティションは、前記ホストオペレーティングシステムから隔離されている装置。
【請求項１０】
コンピュータ可読格納媒体と、
前記コンピュータ可読格納媒体に格納されている命令と
を備え、
前記命令は、プロセッシングシステムのホストオペレーティングシステムから隔離された当該プロセッシングシステムのセキュアパーティションで実行されると、前記セキュアパーティションに、
前記プロセッシングシステムに結合されている暗号化されたデバイスをアンロックするための要求を、前記セキュアパーティションによって、前記セキュアパーティションと信頼のおけるリモートコンソールとの間に構築されているセキュア通信チャネルを介して受信させ、
ホストオペレーティングシステムの介在無しで前記要求に応じて前記暗号化されたデバイスをアンロックさせるコンピュータプログラム製品。
【請求項１１】
コンピュータで実施される方法であって、
信頼のおけるリモートコンソールと、システムのセキュアパーティションとの間でセキュア通信チャネルを構築する段階と、
前記システムに結合されている暗号化されたデバイスをアンロックする要求を、前記セキュア通信チャネルを介して前記セキュアパーティションに送信する段階と
を備え、
前記セキュアパーティションは、前記システムのホストオペレーティングシステムから隔離されており、
前記暗号化されたデバイスは、前記システムのホストオペレーティングシステムの介在無しで、前記セキュアパーティションによってアンロックされる方法。
【請求項１２】
前記信頼のおけるリモートコンソールから前記セキュアパーティションへ、前記要求に含めてトークンを供給する段階をさらに備え、
前記セキュアパーティションは、前記トークンを用いて、前記暗号化されたデバイスに格納されているブロックを復号化するために用いられる鍵をアンラップする請求項１１に記載の方法。
【請求項１３】
前記要求に含めて、前記暗号化されたデバイスのパスワードを供給する段階をさらに備え、
前記セキュアパーティションは、前記パスワードを用いて前記暗号化されたデバイスをアンロックする請求項１１に記載の方法。
【請求項１４】
前記要求において、前記暗号化されたデバイスがアンロックされた後に実行されるべき管理動作を特定する段階をさらに備え、
前記セキュアパーティションは、前記暗号化されたデバイスがアンロックされた後に前記管理動作を実行する請求項１１に記載の方法。
【請求項１５】
コンピュータで実施される方法であって、
システムのユーザの第１の信用情報を、前記システムに取り付けられている複数のデバイスのうち任意のデバイスに対するアクセスが許可される前に、認証する段階と、
新しいデバイスが前記システムに取り付けられた旨を示すイベントを、前記システムのホストオペレーティングシステムから隔離された前記システムのセキュアパーティションでインターセプトする段階と
前記システムをブートすることなく、前記新しいデバイスにアクセスするための第２の信用情報を要求する段階と、
前記第２の信用情報を認証する段階と、
前記第２の信用情報を認証した後に前記新しいデバイスへのアクセスを可能とする段階と、
前記新しいデバイスのホットプラグイベントを前記ホストオペレーティングシステムに通知する段階と
を備える方法。
【請求項１６】
前記新しいデバイスにアクセスするための前記第２の信用情報を要求する段階は、前記第２の信用情報を受信するユーザ入力デバイスおよび前記第２の信用情報を求める要求を表示する表示デバイスへの信頼のおける経路接続を利用する段階を有する請求項１５に記載の方法。
【請求項１７】
前記新しいデバイスへのアクセスを可能とする段階は、前記新しいデバイスの復号化を可能とする前記デバイスのネイティブコマンドを利用する段階を有する請求項１５に記載の方法。
【請求項１８】
前記第２の信用情報は、前記新しいデバイスのパスワードを含み、
前記新しいデバイスへのアクセスを可能とする段階は、前記パスワードを利用して前記新しいデバイスをアンロックする段階を有する請求項１５に記載の方法。
【請求項１９】
前記第２の信用情報は、ユーザ識別子を含み、
前記新しいデバイスへのアクセスを可能とする段階は、前記ユーザ識別子を信頼のおける第三者に供給して、前記信頼のおける第三者が前記ユーザ識別子を認証した場合には、前記新しいデバイスへのアクセスを可能とする段階を有する請求項１５に記載の方法。
【請求項２０】
少なくとも１つのプロセッサと、
前記プロセッサで実行されているホストオペレーティングシステムから隔離されているセキュアパーティションと、
前記セキュアパーティションで実行されているファームウェア用の命令を有するメモリと
を備え、
前記セキュアパーティションで実行されているファームウェア用の命令は、
システムに取り付けられている複数のデバイスのうち任意のデバイスへのアクセスを許可する前に、前記システムのユーザの第１の信用情報を認証し、
前記システムに新しいデバイスが取り付けられた旨を示すイベントを、前記セキュアパーティションでインターセプトし、
前記システムをブートすることなく、前記新しいデバイスにアクセスするための第２の信用情報を要求し、
前記第２の信用情報を認証し、
前記第２の信用情報が認証された後前記新しいデバイスへのアクセスを可能とし、
前記新しいデバイスのホットプラグイベントを前記ホストオペレーティングシステムに通知するための命令である装置。
【請求項２１】
コンピュータ可読格納媒体と、
前記コンピュータ可読格納媒体に格納されている命令と
を備え、
前記命令は、ホストオペレーティングシステムから隔離された、プロセッシングシステムのセキュアパーティションで実行されると、前記セキュアパーティションに、
システムに取り付けられている複数のデバイスのうち任意のデバイスへのアクセスが許可される前に、前記システムのユーザの第１の信用情報を認証させ、
前記システムに新しいデバイスが取り付けられた旨を示すイベントを、前記セキュアパーティションでインターセプトさせ、
前記システムをブートさせることなく、前記新しいデバイスにアクセスするための第２の信用情報を要求させ、
前記第２の信用情報を認証させ、
前記第２の信用情報が認証された後に前記新しいデバイスへのアクセス可能とさせ、
前記新しいデバイスのホットプラグイベントを前記システムのホストオペレーティングシステムに通知させる
コンピュータプログラム製品。
【請求項２２】
コンピュータで実施される方法であって、
システムのホストオペレーティングシステムから隔離された当該システムのセキュアパーティションにおいて実行されている、前記ホストオペレーティングシステムから隔離された監査可能イベントを特定する段階と、
前記監査可能イベントの監査イベント記録を生成する段階と、
前記監査イベント記録を監査ログに書き込む段階と
を備える方法。
【請求項２３】
前記監査ログは、複数の監査ログのうち第１の監査ログであり、
前記複数の監査ログは、前記セキュアパーティション内からのみアクセス可能であり、
前記複数の監査ログはそれぞれ、前記ホストオペレーティングシステムから隔離されており、
前記方法はさらに、
前記第１の監査ログが利用可能であるか否かを判断する段階と、
前記第１の監査ログが利用可能である場合、前記第１の監査ログに対応付けられている第１の監査サブシステムに前記監査イベント記録を送る段階と、
前記第１の監査ログが利用可能でない場合には、前記複数の監査ログのうち第２の監査ログに対応付けられている第２の監査サブシステムに前記監査イベント記録を送る段階と
を備え、
前記第１の監査サブシステムは、前記第１の監査ログへの前記監査イベント記録の書き込みを実行し、
前記第２の監査サブシステムは、前記第２の監査ログへの前記監査イベント記録の書き込みを実行する請求項２２に記載の方法。
【請求項２４】
コンピュータで実施される方法であって、
要求元システムのホストオペレーティングシステムから隔離された当該要求元システムのセキュアパーティションから、当該セキュアパーティションで実行される監査可能イベントの監査イベント記録を含み、前記ホストオペレーティングシステムから隔離されている監査ログにサービスを提供するよう求める要求を受信する段階と、
前記セキュアパーティションとの間にセキュア通信チャネルを構築する段階と、
前記セキュア通信チャネルを介して前記監査ログにサービスを提供する段階と、
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、暗号化方式、ユーザ認証方式およびパスワード保護方式によって保護されるデバイスの管理に関する。
【背景技術】
【０００２】
企業データは、モバイル化、分散化および多量化の一途をたどっている。データは日常的に、出張する社員またはフレックス勤務体制で勤務する社員でも利用できるように物理的にセキュアな設備から取り出される。また、企業の事業内容により他市、他州および他国にまでも企業活動が広がるので、データは地理的に分散化している。データは、発生する速度および提示する際のマルチメディア形式の両方の観点からみて多量化している。こういった流れによって、転送中および保存中のどちらの状態でもデータが保護されることを要件とする新しい格納媒体、高帯域幅サブシステムおよびネットワーク接続ストレージの開発が後押しされている。
【０００３】
保存データ（ｄａｔａ  ａｔ  ｒｅｓｔ：ＤＡＲ）暗号化技術により、紛失または盗難に遭ったストレージデバイスに格納されているデータの不正利用が防止されるので、当該データがインターネット等のネットワーク上で広がることが抑制される。ＤＡＲ暗号化は、ストレージデバイスの紛失および盗難が不可避であっても当該デバイスに格納されているデータの紛失および盗難は防ぐための、自動化高速応答メカニズムとして機能する。
【０００４】
一のコンピューティングプラットフォームに対応付けられているさまざまなストレージデバイスに格納されているデータを保護する上での問題の１つは、暗号化技術および鍵管理戦略が暗号化を行うエンティティによって異なる点である。ストレージハードウェアは、当該ストレージハードウェアのベンダ独特の暗号化機能が組み込まれていることがあり、ストレージハードウェアベンダのツールを利用してデータにアクセスする必要が出てくる。ソフトウェアベースの暗号化では、ハードウェアベースの暗号化とは異なる鍵生成・管理サービスが必要となるので、ソフトウェアベースで暗号化されたデータにアクセスするためにはソフトウェアベンダのツールを利用しなければならない場合がある。このため、盗難または紛失が発生した場合の鍵回復およびデータ移行を検討する際には、多数のさまざまなベンダのツールを利用してコンピューティングプラットフォームに対応付けられているデータの全てを保護および／または回復する必要がある。
【０００５】
ストレージデバイスで格納されているデータを保護する上での別の問題点として、ストレージデバイス自体をパスワード保護方式を利用して保護する点が挙げられる。例えば、アドバンスド・テクノロジ・アタッチメント（ＡＴＡ）の仕様によると、ハードディスクドライブのセキュリティ機能としてディスクロックが組み込まれている。ＡＴＡ仕様では、ディスクがユーザパスワードおよびマスターパスワードの２つのパスワードを持つことが必要になる。ディスクは、高セキュリティモードまたは最大セキュリティモードの２つのモードでロック可能である。高セキュリティモードでは、ディスクは、ユーザパスワードまたはマスターパスワードの一方で、「ＳＥＣＵＲＩＴＹ  ＵＮＬＯＣＫ  ＤＥＶＩＣＥ」ＡＴＡコマンドを用いて、アンロック可能である。試行回数には制限があり、通常は５回に設定されている。試行回数の制限を超えると、ディスクの電源を一度切った後に再度入れるか、または、ハードリセットしなければ、再度アンロックを試みることはできない。高セキュリティモードではさらに、ユーザパスワードまたはマスターパスワードの一方で「ＳＥＣＵＲＩＴＹ  ＥＲＡＳＥ  ＵＮＩＴ」コマンドを用いることもできる。
【０００６】
最大セキュリティモードでは、ディスクはユーザパスワードを用いなければアンロック出来ない。ディスクを利用可能状態に戻す唯一の方法によると、「ＳＥＣＵＲＩＴＹ  ＥＲＡＳＥ  ＰＲＥＰＡＲＥ」コマンドを発行した直後に「ＳＥＣＵＲＩＴＹ  ＥＲＡＳＥ  ＵＮＩＴ」コマンドを発行する。最大セキュリティモードでは、「ＳＥＣＵＲＩＴＹ  ＥＲＡＳＥ  ＵＮＩＴ」コマンドは、ユーザパスワードを必要として、ディスク上の全てのデータを完全に消去する。このため、ディスクがパスワードで保護されており、最大セキュリティモードに設定されており、ユーザパスワードが分からない場合、ディスク上のデータを回復することができない。
【０００７】
コンピューティングプラットフォームに対応付けられているストレージデバイスに格納されているデータを保護する上でのさらに別の問題点としては、対応付けられているストレージデバイス上のデータに対するアクセスが許可される前に、コンピューティングプラットフォームがユーザの信用情報を認証する必要がある点であるとしてよい。例えば、一部のコンピューティングプラットフォームは、ケルベロスユーザ認証を用いて保護されている。ケルベロス認証では、基礎として、対称プロトコルであるニーダム・シュレーダー（Ｎｅｅｄｈａｍ−Ｓｃｈｒｏｅｄｅｒ）プロトコルを用いる。ニーダム・シュレーダープロトコルは、鍵分配センター（ｋｅｙ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｃｅｎｔｅｒ：ＫＤＣ）と呼ばれる信頼のおける第三者を利用する。ＫＤＣは、認証サーバ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ：ＡＳ）およびチケット発行サーバ（Ｔｉｃｋｅｔ  Ｇｒａｎｔｉｎｇ  Ｓｒｅｖｅｒ：ＴＧＳ）という２つの論理的に別個の構成要素で構成される。ケルベロス認証は、ユーザの識別情報を証明する機能を持つ「チケット」を基礎としている。
【０００８】
ＫＤＣは、秘密鍵のデータベースを維持する。ネットワーク上の各エンティティは、クライアントであろうとサーバであろうと、当該エンティティ自身とＫＤＣのみが知っている秘密鍵を共有する。この鍵を知っていることによって、エンティティの識別情報を証明する。２つのエンティティ間の通信については、ＫＤＣが、両エンティティがやり取りをセキュア化するために利用できるセッション鍵を生成する。当該プロトコルのセキュリティは、参加者が疎同期しているタイミングを維持すること、および、ケルベロスチケットと呼ばれる一時的な認証アサーションに大きく依存している。
【０００９】
ケルベロスプロトコルでは、クライアントが認証サーバにクライアント自身を認証させて、チケットを受信する。（チケットは全て、タイムスタンプが付されている。）クライアントはこの後、チケット発行サーバと接触して、チケットを用いて、識別情報を証明してサービスを要求する。クライアントがサービスを受け取る権利を持っていれば、チケット発行サーバは別のチケットをクライアントに送る。クライアントはこの後、サービスサーバに接触して、このチケットを用いて、サービスを受け取ることが認められた旨を証明する。
【００１０】
［著作権情報］
本明細書に記載する内容は、著作権により保護されるべきものである。著作権保有者は、当該特許開示内容を、何人が米国特許庁のファイルまたは記録に保存されている通りに複製しようともそれに異議はないが、それ以外に関しては無断複写・転載を禁じる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスを管理するシステムを示すブロック図である。
【図２】本発明の一実施形態に係る、図１に示すシステムが保護デバイスを管理する方法を説明するための詳細図である。
【図３】本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスを備えるシステムのリセット時に実行される方法を説明するフローチャートである。
【図４】本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスをアンロックするコマンドを受信した際に実行されるべき方法を説明するフローチャートである。
【図５Ａ】本発明の一実施形態に係る、図１に示すシステムが、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスを、リブートを実行することなく、動的に取着可能にして、ユーザ認証用の信用情報を動的に再確認可能とするようにするための方法を説明する詳細図である。
【図５Ｂ】デバイスのホットプラグイベントを認識すると、図５Ａに示すシステムが実行すべき方法を説明するフローチャートである。
【図６】本発明の一実施形態に係る、図１のシステムが保護デバイスを管理する方法を説明する詳細図である。
【図７】本発明の一実施形態に係る、システムのセキュアパーティション内で発生する監査可能イベントを検出すると実行すべき方法を示すフローチャートである。
【図８】本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式を用いてデバイスを保護する等の動作を管理するためのセキュアパーティションを実施する仮想マシン環境を示す図である。
【発明を実施するための形態】
【００１２】
本発明の実施形態は、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスを備えるシステムを管理するための方法、装置、システムおよびコンピュータプログラム製品を提供するとしてよい。
【００１３】
本明細書で本発明の「一実施形態」または「ある実施形態」と言及する場合、当該実施形態に関連付けて説明している特定の特徴、構造または特性が本発明の少なくとも１つの実施形態に含まれることを意味している。このため、本明細書において繰り返し「一実施形態において」、「一実施形態によると」等の記載が見られるが、これらは全て必ずしも同じ実施形態を意味しているものではない。
【００１４】
説明を目的として、具体的な構成および詳細な事項を記載して、本発明を深く理解していただきたい。しかし、本発明の実施形態は本明細書に記載している具体的且つ詳細な内容を利用しなくても実施し得ることは当業者には明らかである。さらに、公知の特徴は、本発明があいまいにならないように、省略または簡略化している場合がある。本明細書ではさまざまな例を挙げている。記載した例は、本発明の具体的な実施形態を説明するためのものに過ぎない。本発明の範囲は、記載した例に限定されるものではない。
【００１５】
一実施形態によると、隔離および管理された環境を提供するためのセキュアパーティション内で、保護デバイス管理を実施する。セキュアパーティションは、信頼のおける管理アプリケーションから管理動作を実行するためのコマンドを受信するとしてよい。セキュアパーティションによれば、保護デバイスを管理するためのコマンドは、正当なソースからのものであることが証明される。信頼のおける管理アプリケーションは、システムからリモートであるとしてよく、セキュア通信チャネルを介してセキュアパーティションと通信を行うとしてよい。
【００１６】
保護デバイスマネージャの隔離されたセキュアな環境は、さまざまな種類のパーティションを含むとしてよい。例えば、完全に別個のハードウェアパーティション（例えば、インテル（商標）・コーポレーション社のマネジビリティ・エンジン（「ＭＥ」）、アクティブ・マネジメント・テクノロジ（「ＡＭＴ」）、プラットフォーム・リソース・レイヤ（「ＰＲＬ」）、および／または、他の同等または同様の技術を用いる）、および／または、仮想化パーティション（例えば、インテル（商標）・コーポレーション社の仮想化技術（「ＶＴ」）方式での仮想マシン）がある。仮想化ホストを用いてＭＥ技術、ＡＭＴ技術およびＰＲＬ技術を実施し得ることは当業者には明らかである（図８を参照しつつ詳細に後述する）。
【００１７】
一実施形態によると、保護デバイスマネージャは、システムのホストオペレーティングシステムから隔離されているセキュアパーティションにおいて実行される。セキュアパーティションは、システムに結合されている暗号化されたデバイスをアンロックするよう求める要求を受信するとしてよい。当該要求は、信頼のおけるリモートコンソールとセキュアパーティションとの間に構築されるセキュア通信チャネルを介してセキュアパーティションで受信される。セキュアパーティションは、ホストオペレーティングシステムの介入無しで、当該要求に応じて暗号化されたデバイスをアンロックする。
【００１８】
セキュアパーティションは、信頼のおけるリモートコンソールからトークンを受信して、当該トークンを用いて暗号化されたデバイスのブロックを暗号化するために用いられている鍵をアンラップするとしてよい。セキュアパーティションは、暗号化されたデバイスのセキュアストレージ領域から当該キーを取得するとしてよい。セキュアストレージ領域は、ホストオペレーティングシステムから隠れている。セキュアパーティションは、暗号化されたデバイスをアンロックする前に、信頼のおけるリモートコンソールから当該要求が発行されていることを確認するとしてよい。要求はさらに、実施すべき管理動作を特定しているが、セキュアパーティションは、暗号化されたデバイスがアンロックされた後に当該管理動作を実行するとしてよく、管理動作が実行された後にホストオペレーティングシステムをブートするとしてよい。暗号化されたデバイスのアンロックは、システムのホストオペレーティングシステムが故障した際に実行されるとしてよく、システムのユーザが介在することなく実行されるとしてよい。
【００１９】
図１は、本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスを管理するシステムを示す図である。プラットフォーム１００では、デスクトップ管理インターフェース（ＤＭＩ）１１１ａを介して、プロセッサ１１０がチップセット／セキュアパーティション１２０に接続されている。チップセット／セキュアパーティション１２０は、プラットフォーム１００の設定および動作を管理する、マイクロプロセッサとして実現されているマネジビリティ・エンジン（ＭＥ）１３０を有する。一実施形態によると、マネジビリティ・エンジン（ＭＥ）１３０は、監査イベントを集めて、ユーザを認証して、周辺デバイスに対するアクセスを制御して、プラットフォーム１００のストレージデバイスに格納されているデータを保護する暗号鍵を管理し、ネットワークコントローラ１６０を介して、管理コンソール１６６とやり取りを行う。マネジビリティ・エンジン（ＭＥ）１３０は、管理コンソール１６６を用いて、プラットフォーム１００等のプラットフォームの設定および管理に関する企業規模のポリシーとの整合性を維持する。マネジビリティ・エンジン（ＭＥ）１３０は、ホスト・エンベデッド・コントローラ・インターフェース（ＨＥＣＩ）１１１ｂを介してプロセッサ１１０に接続されている。
【００２０】
仮想化エンジンコントローラインターフェース（ＶＥＣＩ）１１１ｃは、プロセッサ１１０をチップセット／セキュアパーティション１２０のＩ／Ｏコマンドデコードモジュール１４０に接続している。一実施形態によると、Ｉ／Ｏコマンドデコードモジュール１４０は、特別なファームウェアを用いて、格納コマンドのデコードおよびその他の加速化処理を実行する汎用コントローラである。Ｉ／Ｏコマンドデコードモジュール１４０の機能はまた、特定用途向けハードウェアで全て実施されるとしてよい。Ｉ／Ｏコマンドデコードモジュール１４０は、プラットフォーム１００に対応付けられているストレージデバイスに書き込まれているデータを保護する管理機能を供給する。例えば、Ｉ／Ｏコマンドデコードモジュール１４０は、暗号化エンジン１５０とやり取りを行って、ストレージデバイスを暗号化し、ストレージデバイスを保護するために用いられたメタデータを保護し、ストレージデバイスに関連するハードウェア割り込みをインターセプトして処理し、ストレージデバイスでの管理動作を円滑化するとしてよい。
【００２１】
マネジビリティ・エンジン（ＭＥ）１３０は、Ｉ／Ｏコマンドデコードモジュール１４０および暗号化エンジン１５０の挙動を、ポリシーおよび暗号鍵を設定することによって、制御する。マネジビリティ・エンジン（ＭＥ）１３０、Ｉ／Ｏコマンドデコードモジュール１４０、および、暗号化エンジン１５０の動作は、さらに詳細に後述する。
【００２２】
プラットフォーム１００はさらに、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）１１４、チップセット／セキュアパーティション１２０内のスタティックランダムアクセスメモリ（ＳＲＡＭ）１２２、および、フラッシュメモリ１９０等のメモリデバイスを備える。プラットフォーム１００全体が電源供給を受けている場合、上部メモリ領域（ＵＭＡ）と呼ばれるＤＲＡＭ１１４の一部であるＭＥ−ＵＭＡ１１６は、マネジビリティ・エンジン（ＭＥ）１３０が利用できるようになっている。プラットフォーム１００用のホストオペレーティングシステム１１５は、ベーシック・インプット・アウトプット・システム（ＢＩＯＳ）によって設定されているメモリ隔離メカニズムのために、一般的にＭＥ−ＵＭＡ１１６にアクセスできない。このメモリ隔離メカニズムは、ホストオペレーティングシステムが実行される前に、ＭＥ−ＵＭＡメモリ１１６へのアクセスをロックする。ＤＲＡＭ１１４のこの部分をマネジビリティ・エンジン１３０が利用できるようにホストオペレーティングシステムから隔離することによって、マネジビリティ・エンジン１３０のインテグリティは、ホストオペレーティングシステム１１５に感染し得るウイルスまたはその他のマルウェアから保護される。
【００２３】
フラッシュメモリ１９０は、プラットフォーム１００を初期化するために用いられるファームウェアを含む。この初期化ファームウェアは、ＢＩＯＳファームウェア１９２、ネットワークコントローラ１６０を設定するネットワークコントローラファームウェア１９４、および、チップセット／セキュアパーティション１２０を設定するチップセットファームウェア１９６を含む。マネジビリティ・エンジン（ＭＥ）１３０およびＩ／Ｏコマンドデコードモジュール１４０のチップセットファームウェア１９６のインテグリティは、フラッシュメモリ１９０に格納される前にデジタル署名によって確認される。マネジビリティ・エンジン（ＭＥ）１３０が利用するデータ、例えば、ユーザ認証情報は、マネジビリティ・エンジン（ＭＥ）１３０内の暗号化ファームウェアによって暗号化されて、フラッシュメモリ１９０のデータ領域１９８に格納されるとしてよい。
【００２４】
図１に示すプラットフォーム１００の実施形態はさらに、ＵＳＢデバイス１７７に接続されているユニバーサルシリアルバス（ＵＳＢ）コントローラ１７５を含む。ＵＳＢデバイスは、ポインティングデバイス（マウス等）、キーボード、デジタルカメラ、プリンタ、パーソナルメディアプレーヤ、フラッシュドライブ、および、外部ハードドライブを含むとしてよい。ＵＳＢの仕様によって、コンピュータ筐体を開くこと（ホストスワップ）なく、または、コンピュータを再起動することなく、デバイスをインストールおよび削除することが可能となり、さまざまな種類のドライブ等のモバイル型の周辺機器にとって便利になる。本来は光学格納デバイス（ＣＤ−ＲＷドライブ、ＤＶＤドライブ等）用に考案され現在でも利用されているが、一部の製造業者は、内部ドライブと同様の性能を持つ外付けポータブルＵＳＢハードドライブまたはディスクドライブ用の空の筐体を提供している。これらは、取着するＵＳＢデバイスの現在の数および種類によって、および、ＵＳＢインターフェースの上限によって制限されている（実際には、ＵＳＢ２．０では約４０ＭｉＢ／ｓ、おそらくＵＳＢ３．０については４００ＭｉＢ／ｓ以上であろう）。このような外付けドライブは通常、当該ドライブのインターフェース（ＩＤＥ、ＡＴＡ、ＳＡＴＡ、ＰＡＴＡ、ＡＴＡＰＩまたはＳＣＳＩ）とＵＳＢインターフェースポートとの間を橋渡しする「変換デバイス」を含む。機能的には、ドライブは、ユーザにとっては内部ドライブとほぼ同様に見える。外部ドライブ接続用の他の競合する規格としては、ｅＳＡＴＡ、ＥｘｐｒｅｓｓＣａｒｄ（現在のバージョンは２．０）およびＦｉｒｅＷｉｒｅ（ＩＥＥＥ１３９４）がある。
【００２５】
図１に示すプラットフォーム１００の実施形態はさらに、Ｉ／Ｏコントローラ１７０を介してアクセス可能なさまざまな種類のストレージデバイスを含む。例えば、ストレージインターフェース１７１を介してアクセス可能な不揮発性メモリストレージデバイス１７２、および、ストレージインターフェース１８１を介してアクセス可能なシリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）ストレージデバイス１８０を含む。ストレージインターフェース１７１は、不揮発性メモリの不揮発性メモリ（ＮＶＭ）ホストコントローラインターフェース（ＨＣＩ）として実現されるとしてよく、ストレージインターフェース１８１は、シリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）ストレージデバイス１８０のアドバンスドＨＣＩ（ＡＨＣＩ）インターフェースとして実現されるとしてよい。Ｉ／Ｏコントローラ１７０は、ＮＶＭコントローラおよびＳＡＴＡコントローラ両方の機能を持つ。
【００２６】
ストレージデバイス１７２および１８０に格納されているデータは、チップセット／セキュアパーティション１２０の暗号化エンジン１５０によって暗号化されているとしてよい。ＳＡＴＡストレージデバイス１８０は、チップセットで暗号化されたデバイスの一例として用いられており、さらに、メタデータ１８２を格納する保留領域を含む。メタデータ１８２は、ストレージデバイス１８０のための少なくとも１つのデバイス暗号鍵（ＤＥＫ）１８４およびマネジビリティ・エンジン（ＭＥ）１３０が利用する他のメタデータを含む。メタデータ１８２は、Ｉ／Ｏコマンドデコードモジュール１４０およびＩ／Ｏコントローラ１７０によるＩ／Ｏコマンドの処理中に、プロセッサ１１０上で実行されるアプリケーションによって上書きされないように保護される。
【００２７】
一実施形態によると、チップセット／セキュアパーティション１２０の暗号化エンジン１５０によるデータの暗号化または復号化が実行される前に、マネジビリティ・エンジン（ＭＥ）１３０は、入出力動作に関連するストレージデバイスに対応付けられているＤＥＫ１８４等のデバイス暗号鍵（ＤＥＫ）を、暗号化エンジン１５０に対応付けられているメモリレジスタに挿入する。一の物理的ストレージデバイスが論理的に複数の異なる論理デバイスまたは論理パーティションに分割される場合、各論理デバイスまたは各論理パーティションは、それぞれ対応するデバイス暗号鍵（ＤＥＫ）を持つとしてよく、各ＤＥＫは暗号化エンジン１５０の対応するメモリレジスタに挿入されるとしてよい。
【００２８】
一実施形態によると、マネジビリティ・エンジン（ＭＥ）１３０は、プラットフォーム１００に対応付けられている全てのデータの暗号化を管理する。例えば、チップセット／セキュアパーティション１２０内において暗号化エンジン１５０が実行する暗号化、および、チップセットは実行しないが、プロセッサ１１０で実行されているソフトウェアまたはストレージハードウェア自身が実行するデータの暗号化を管理する。マネジビリティ・エンジン（ＭＥ）１３０が提供するサービスのうち１つは、データの暗号化を実行するのがプラットフォーム１００のどの構成要素であっても、共通のフレームワークおよびユーザインターフェースにおいて暗号鍵を管理するサービスである。データの暗号化を管理する場合のチップセット／セキュアパーティション１２０およびマネジビリティ・エンジン（ＭＥ）１３０の動作およびフレームワークに関する更なる詳細については、米国特許出願第１２／３１９，２１０号（発明の名称：「暗号化されたストレージデバイスについてのチップセット鍵管理サービスの利用の実施方法」、発明者：ネッド・スミス（Ｎｅｄ  Ｓｍｉｔｈ））に記載されている。当該出願の内容は全て、参照により本願に組み込まれる。
【００２９】
図２は、本発明の一実施形態に係る、図１に示すチップセット／セキュアパーティション１２０の構成要素であるマネジビリティ・エンジン（ＭＥ）１３０およびＩ／Ｏコマンドデコードモジュール１４０をさらに詳細に説明する図である。チップセット／セキュアパーティション１２０内において、マネジビリティ・エンジン（ＭＥ）１３０は、ＭＥカーネル２３１、ＭＥ共通サービス２３３、保護デバイスマネージャ２３５、セキュリティ／鍵管理ファームウェア２３７、および、識別情報管理ファームウェア２３９を含む。これらの構成要素はそれぞれ、さらに詳細に後述する。
【００３０】
ＭＥカーネル２３１は、ＳＲＡＭ１２２およびＤＲＡＭ１１２の一部分（ＭＥ−ＵＭＡ１１４等）のメモリ利用、フラッシュメモリ１９０における永久的なデータの格納、および、アクセス制御等、基本的な機能を提供する。ＭＥカーネル２３１は、Ｉ／Ｏコマンドデコードモジュール１４０および暗号化エンジン１５０の動作を制御する。
【００３１】
ＭＥ共通サービス２３３は、複数のさまざまなファームウェアモジュールが共に必要とするサービスを含み、セキュリティサービス、ネットワーク化サービス、および、プロビジョニングサービスを含む。ＭＥ共通サービス２３３が提供するセキュリティサービスは一般的に、ＨＴＴＰダイジェスト認証およびケルベロス認証の両方から構成されるユーザ認証、Ｍｉｃｒｏｓｏｆｔ社のアクティブディレクトリおよび／または他のサービスを利用するドメイン認証、クライアントクロックおよびサーバクロックを同期させるクロック同期サービス、ならびに、セキュリティ監査サービスを含む。
【００３２】
ＭＥ共通サービス２３３が提供するネットワーク化サービスは、トランスミッション・トランスポート・プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スタック、トランスポート・レイヤ・セキュリティ（ＴＬＳ）、ハイパーテクスト・トランスポート・プロトコル（ＨＴＴＰ）、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）、ウェブ・サービス・フォー・マネジビリティ（ＷＳ−ＭＡＮ）、および、ローカル・マネジビリティ・サービス（ＬＭＳ）と呼ばれるホストベースのＴＬＳインターフェースを含む。
【００３３】
ＭＥ共通サービス２３３が提供するプロビジョニングサービスは、図１の管理コンソール１６６と共に用いられて、プラットフォーム１００に対して企業ソフトウェアをプロビジョニングする。こういったプロビジョニングサービスは、ゼロタッチモードおよびワンタッチモードという２つの展開モードをサポートしている。ゼロタッチモードでは、展開証明アンカー鍵が図１のフラッシュメモリ１９０のデータ領域１９８等のデータストレージ領域に格納されているので、プラットフォームの所有権を取得するために用いられるＩＴ信用情報の有効性を証明するために公知の証明機関鍵を用いることが可能となる。ワンタッチモードでは、セットアップおよび展開のタスクをリモートに完了するために用いられる機関証明情報、対称鍵、および、信用の置けるホストを設定する。
【００３４】
マネジビリティ・エンジン１３０はさらに、アウトオブバンド（ＯＯＢ）通信モジュール２３０を含む。ＯＯＢ通信モジュール２３０は、ネットワークコントローラ１６０を介したプラットフォーム１００の構成要素と、管理コンソール１６６の対応する構成要素との間の通信を円滑化する。ＯＯＢ通信モジュール２３０は、チップセット／セキュアパーティション１２０と管理コンソール１６６との間にセキュアなＯＯＢ通信チャネル１６８を構築する。
【００３５】
マネジビリティ・エンジン（ＭＥ）１３０はさらに、識別情報管理ファームウェア２３９を含む。識別情報管理ファームウェア２３９は、ユーザの認証情報を、例えば、フラッシュメモリ１９０のデータ領域１９８に格納されているユーザアカウントメタデータと比較するとしてよい。識別情報管理ファームウェア２３９はさらに、マネジビリティ・エンジン（ＭＥ）１３０のセキュリティ／鍵管理ファームウェア２３７とやり取りを行って、ユーザ情報がさらにＳＡＴＡストレージデバイス１８０等のストレージデバイス内のコンテナに格納されていることを確認するとしてよい。このようにＳＡＴＡストレージデバイス１８０等の特定のストレージデバイスに対するユーザのアクセスを確認することによって、ＳＡＴＡストレージデバイス１８０に格納されているデータの保護について更なるレイヤが得られる。
【００３６】
セキュリティ／鍵管理ファームウェア２３７は、暗号化エンジン１５０が生成する暗号鍵等の鍵を管理する。セキュリティ／鍵管理ファームウェア２３７はさらに、プラットフォーム１００に対応付けられているストレージデバイスに格納されているデータに対するアクセスが許可される前に、ユーザを認証するとしてよい。セキュリティ／鍵管理ファームウェア２３７は、鍵管理情報を管理して、この鍵管理情報をプラットフォームに対応付けられているメモリまたはストレージデバイス、例えば、フラッシュメモリ１９０またはＳＡＴＡストレージデバイス１８０に格納する。鍵管理情報が格納される位置は、利用可能な格納空間および格納すべきデータの量に応じて決まり、本発明は鍵管理情報を格納する構成について特定のものに限定されない。一実施形態によると、セキュリティ／鍵管理ファームウェア２３７は、プラットフォーム１００に割り当てられているプラットフォームコンテナ鍵（ＰＣＫ）を用いて鍵管理情報を暗号化する。
【００３７】
セキュリティ／鍵管理ファームウェア２３７が管理している鍵管理情報は、チップセット（つまり、チップセット／セキュアパーティション１２０内の暗号化エンジン１５０）が生成する暗号鍵を含み、デバイス暗号鍵（ＤＥＫ）１８４と呼ばれるメタデータ１８２に格納されている。
【００３８】
マネジビリティ・エンジン（ＭＥ）１３０はさらに、保護デバイスマネージャ２３５を含むものとして図示されている。一実施形態によると、保護デバイスマネージャ２３５は、ＳＡＴＡストレージデバイス１８０等のデバイスをアンロックするために用いられるデバイスパスワードを供給するべくＩ／Ｏコマンドデコードモジュール１４０と通信する。保護デバイスマネージャ２３５の動作は、図３および図４を参照しつつより詳細に後述する。
【００３９】
Ｉ／Ｏコマンドデコードモジュール１４０は、Ｉ／Ｏモジュールカーネル２４１およびＳＡＴＡ仮想化ファームウェア２４３を含むものとして図示されている。Ｉ／Ｏモジュールカーネル２４１は、Ｉ／Ｏコマンドデコードモジュール１４０に対して基本的な機能を提供し、ＭＥカーネル２３１からコマンドを受信する。ＳＡＴＡ仮想化ファームウェア２４３を本実施形態ではファームウェアとして説明するが、ＳＡＴＡ仮想化ファームウェア２４３の機能は専用ハードウェアとして実現するとしてもよい。ＳＡＴＡ仮想化ファームウェア２４３は、ＳＡＴＡストレージデバイス１８０等のＳＡＴＡストレージデバイスにアクセスするために用いられ、マネジビリティ・エンジン（ＭＥ）１３０がデバイス管理機能を実行できるようにする。例えば、ＳＡＴＡ仮想化ファームウェア２４３は、ＳＡＴＡ制御パケットをＩ／Ｏデータストリームに挿入することによって、ホストオペレーティングシステム１１５またはプロセッサ１１０で実行されているその他のホストソフトウェアが介在しなくとも、管理コンソール１６６による保護デバイスへのリモートアクセスを可能とする。制御パケットは、例えば、管理コンソール１６６からのコマンドによって、ＳＡＴＡストレージデバイス１８０をアンロックするために用いられるとしてよい。
【００４０】
ＳＡＴＡ仮想化ファームウェア２４３はさらに、ＳＡＴＡストレージデバイス１８０上のある範囲のリニアブロックアドレスを、ホストオペレーティングシステム１１５から隠すために用いられる。このようにホストオペレーティングシステムによるアクセスから隠される所与の範囲のリニアブロックアドレスは、本明細書において、ドライブ上にデバイスメタデータ１８２を格納できるように保護されるセキュアストレージ領域と呼ぶ。デバイスメタデータ１８２は、ＳＡＴＡストレージデバイス１８０のブロックの暗号化および復号化を可能とするデバイス暗号鍵１８４を含むとしてよい。
【００４１】
ＳＡＴＡ仮想化ファームウェア２４３はさらに、Ｉ／Ｏコントローラ１７０によって検出されるイベント、例えば、新しいデバイスがプラットフォーム１００に取り付けられる際に生成されるホットプラグ割り込み等をインターセプトするとしてよい。ＳＡＴＡ仮想化ファームウェア２４３はさらに、ストレージデバイスとの間でやり取りされるＩ／Ｏストリームを監視して、監査対象のイベントを検出するとしてよい。
【００４２】
一実施形態によると、ＳＡＴＡストレージデバイス１８０は、暗号化、および、デバイスにアクセスする前にユーザが入力しなければならないＡＴＡパスワード等のパスワードの両方を用いて保護される。パスワードは、ＳＡＴＡストレージデバイス１８０のネイティブロッキングメカニズムをアンロックするために用いられる。暗号化エンジン１５０は、ＳＡＴＡストレージデバイス１８０のブロックを暗号化するために用いられる。ＳＡＴＡデバイス暗号鍵（ＤＥＫ）、例えば、ＤＥＫ１８４は、ＳＡＴＡデバイス上の、ホストオペレーティングシステムに対して隠されている位置に格納されている。デバイスは最初に、暗号化されたブロックを復号化するべくＤＥＫへのアクセスが可能になる前に、ネイティブロッキングメカニズムに対するパスワードを利用してアンロックされる。
【００４３】
プラットフォーム１００がリセットされると、Ｉ／Ｏコマンドデコードモジュール１４０およびマネジビリティ・エンジン（ＭＥ）１３０は、協働して、デバイスメタデータ、例えば、暗号鍵およびユーザ認証用信用情報を、デバイスから読み出して、デバイスメタデータをセキュアストレージ、例えば、フラッシュメモリ１９０のデータ領域１９８にデバイスメタデータ２９８として格納する。一実施形態によると、管理コンソール１６６に対して認証出来る各ユーザについて、図２のトークン１−２６６Ａ等のトークンがあり、当該トークンは、特定のデバイスに対するラッピング鍵を導出するために用いられる。デバイスラッピング鍵は、特定のデバイスの暗号鍵をラップするために用いられる。
【００４４】
ユーザラッピング鍵およびデバイスラッピング鍵は、ユーザが特定のデバイスにアクセス可能か否かを判断するために共に用いられ、ユーザラッピング鍵／デバイスラッピング鍵の対は、フラッシュメモリ１９０のデータ領域１９８にデバイスメタデータ２９８として格納される。これとは対照的に、ＤＥＫ１８４等のデバイス暗号鍵は、ストレージデバイス上に格納される。デバイスに対してアクセスが行われる場合、トークン１のコピーに基づき、デバイスメタデータ２９８のうち適切なユーザラッピング鍵／デバイスラッピング鍵の対を決定する。対のうちデバイスラッピング鍵は、デバイス上のメタデータ１８２を復号化するために用いられる。尚、デバイスは、デバイス暗号鍵１８４を公開している。トークン１は、ユーザがいない場合、または、ユーザが必要な認証用信用情報を提供できない場合、ストレージデバイス上で管理動作を実行するために用いられる。
【００４５】
一実施形態によると、デバイスメタデータ１８２は、ＵＳＢデバイス１７７等のＵＳＢデバイスに格納されている別のトークン、本明細書ではトークン２と呼ぶトークンによって導出される別のデバイスラッピング鍵を用いて、暗号化エンジン１５０によって暗号化される。ＵＳＢデバイス１７７は、盗難の犯人がアクセスし得る箇所から離れた物理的位置にセキュアに格納されるものとする。トークン２は、リモート管理コンソール１６６がストレージデバイスに接続するためのネットワーク接続が利用できない場合に、ストレージデバイス上で管理動作を実行するために用いられる。ＵＳＢデバイス１７７は、トークン２の保有者が暗示的にストレージデバイス上での管理動作を実行する権限を持つように、暗号化されていないプレーンテキスト形式でトークン２を保有している。トークン２が供給されると、トークン２を用いて第２のユーザラッピング鍵のセットを導出して、第２のユーザラッピング鍵／デバイスラッピング鍵の対のセットもデバイスメタデータ２９８の一部として、フラッシュメモリ１９０に格納する。トークン１およびトークン２の値はいずれも、識別情報管理ファームウェア２３９等のユーザ認証システムによって保護され、正当なユーザのみがデバイス暗号鍵を公開できる。
【００４６】
一実施形態によると、トークン１  ２６６Ａは、デバイス１８０のパスワード２６６Ｂと共に、管理コンソール１６６に対応付けられているリモートストレージ２６６に（またはディレクトリサービスに）セキュアに保存される。デバイス１８０のパスワード２６６Ｂおよびトークン１  ２６６Ａは、ＳＡＴＡデバイス１８０をリモートにアンロックするために管理コンソール１６６によって用いられる。デバイス１８０のパスワード２６６Ｂは、リモート管理コンソール１６６によって保護デバイスマネージャ２３５に供給される。保護デバイスマネージャ２３５は、デバイス１８０のパスワード２６６Ｂを用いてデバイスをアンロックする。保護デバイスマネージャ２３５は、トークン１  ２６６Ａをセキュリティ／鍵管理ファームウェア２３７に提供する。セキュリティ／鍵管理ファームウェア２３７は、ユーザラッピング鍵をアンラップするために識別情報管理ファームウェア２３９を利用するとしてよい。ユーザラッピング鍵は、メタデータ１８２を復号化するために用いられるデバイスラッピング鍵をアンラップするために用いられるので、ＳＡＴＡストレージデバイス１８０のブロックを復号化するために暗号化エンジン１５０が利用するデバイス暗号鍵１８４に対するアクセスを提供する。トークン１  ２６６Ａは、管理コンソール１６６とチップセット／セキュアパーティション１２０との間のＯＯＢ通信チャネル１６８等、セキュア通信チャネルを利用することによって、ネットワーク攻撃から保護される。ＯＯＢ通信チャネル１６８は、例えば、ケルベロスセッション鍵を利用することによって、セキュアとなるとしてよい。
【００４７】
ＳＡＴＡストレージデバイス１８０上のデータは暗号化されている場合があるので、デバイス暗号鍵（ＤＥＫ）１８４は、マネジビリティ・エンジン（ＭＥ）１３０の保護デバイスマネージャ２３５がアクセス可能な位置に格納されている。保護デバイスマネージャ２３５がＤＥＫを利用できるようにすることによって、ＨＥＣＩインターフェース／ＶＥＣＩインターフェース１１１ｂおよび１１１ｃを介したＳＡＴＡ読み書き要求について、ＳＡＴＡストレージデバイス１８０上のデータが暗号化されていても、サービスを提供することができる。保護デバイスマネージャ２３５がＳＡＴＡストレージデバイス１８０をアンロックするためにパスワードにアクセスすると、保護デバイスマネージャ２３５は、デバイスメタデータ２９８に格納されているデバイスラッピング鍵のコピーを作成することができる。デバイスラッピング鍵は、プラットフォームに取り付けられている各ＳＡＴＡデバイスについてのデバイスメタデータに含まれているデバイス暗号鍵をアンラップするために用いることが出来る。
【００４８】
図３は、本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスを備えるシステムのリセット時に実行される方法を説明するフローチャートである。図３に示す方法は、図２に示すシステムの構成要素によって実行されるものとして説明するが、当該方法の実施例はこれに限定されない。システムリセットに応じて、ＭＥの保護デバイスマネージャがＭＥＣＩでＩ／Ｏコマンドデコードモジュールを介して間接的にＳＡＴＡデバイスからデバイスメタデータを読み出すステップ３１０に進む。ステップ３１０において、マネジビリティ・エンジン１３０の保護デバイスマネージャ２３５は、ＳＡＴＡストレージデバイス１８０等のＳＡＴＡデバイスからデバイスメタデータを読み出して、取り付けられたストレージデバイスについての情報を取得する。マネジビリティ・エンジン１３０は直接ストレージデバイスに接続されていないので、マネジビリティ・エンジン１３０の保護デバイスマネージャ２３５は、ＭＥＣＩ１３１でＩ／Ｏコマンドデコードモジュール１４０を介して間接的にデバイスメタデータにアクセスする。マネジビリティ・エンジン１３０の保護デバイスマネージャ２３５は、ＳＡＴＡストレージデバイス１８０等のＳＡＴＡデバイスに格納されているデバイスメタデータにアクセスするためにＳＡＴＡ仮想化ファームウェア２４３を利用する。ＳＡＴＡ仮想化ファームウェア２４３は、ストレージインターフェースを保護デバイスマネージャ２３５に公開して、ＳＡＴＡストレージデバイス１８０が複数のリニアブロックアドレスを持つ一のブロックストレージデバイスに見えるようにする。ＳＡＴＡ仮想化ファームウェア２４３は、一部のリニアブロックアドレスをホストオペレーティングシステムから隠して、保護デバイスマネージャ２３５に公開する。ＳＡＴＡ仮想化ファームウェア２４３は、ＳＡＴＡ  Ｉ／Ｏプロトコルを用いて、ＳＡＴＡストレージデバイス１８０との間でやり取りを行う。
【００４９】
システムリセットに応じて、ＭＥの保護デバイスマネージャがＭＥＣＩでＩ／Ｏコマンドデコードモジュールを介して間接的にＳＡＴＡデバイスからデバイスメタデータを読み出すステップ３１０から、Ｉ／Ｏコマンドデコードモジュールがメタデータ記述情報を含む仮想ドライブ定義メタデータを読み出すステップ３２０に進む。ステップ３２０において、Ｉ／Ｏコマンドデコードモジュール１４０のＳＡＴＡ仮想化ファームウェア２４３は、ＳＡＴＡストレージデバイス１８０上に格納されているメタデータ１８２に格納されているメタデータ記述情報を含む仮想ドライブ定義メタデータを読み出す。一実施形態によると、ＳＡＴＡ仮想化ファームウェア２４３は、ストレージデバイスを仮想化して、複数の仮想ドライブパーティションが認識できるようにする。各仮想ドライブパーティションは、仮想ドライブ定義データに記述されている。第１の仮想ハードディスクドライブ（ＨＤＤ）定義に含まれているのは、従来のドライブ構造素子であってよい。例えば、リニアブロックアドレス（ＬＢＡ）ゼロを先頭として、マスタブートレコード（ＭＢＲ）が格納されているとしてよく、この後に続いてオペレーティングシステムファイルおよびユーザファイル等のドライブデータが格納されているとしてよい。一部のシステムでは、ＢＩＯＳまたはその他のシステムユーティリティによって利用され得る隠れたパーティションがある。ホスト保護領域（ＨＰＡ）は、緊急回復ＯＳ（ＲＯＳ）、マルチメディアユーティリティ、診断ユーティリティ、または、その他のプログラムを格納するために用いられるとしてよい。リダンダント・アレイズ・オブ・インエクスペンシブ・ディスクス（ＲＡＩＤ）を採用するシステムでは、ＲＡＩＤメタデータを仮想ドライブの終端に置くとしてよい。ＲＡＩＤメタデータを仮想ドライブの終端に置くことによって、ＲＡＩＤの任意のＲＯＭは、システム初期化時にＲＡＩＤメタデータの位置を容易に特定することができる。
【００５０】
一実施形態によると、ＤＥＫ１８４等の１つのデバイス暗号鍵は、デバイス上の各仮想ＨＤＤを対象とし、全ての仮想ＨＤＤは同じ鍵で暗号化されていることになる。仮想ドライブ定義（ＶＤＤ）データは、物理ドライブの終端、例えば、最後のリニアブロックアドレスＬＢＡ−ｎにある。ＶＤＤデータは、ドライブ構成を含み、各仮想ＨＤＤの先頭および終端を示す。ＶＤＤはさらに、マネジビリティ・エンジンのメタデータ領域の先頭箇所および終端箇所、例えば、メタデータ１８２の先頭位置および終端位置を特定している。ＶＤＤおよびＭＥメタデータは、暗号化エンジン１５０によって暗号化されていないとしてよいが、メタデータ１８２の内容はＩ／Ｏコマンドデコードモジュール１４０およびマネジビリティ・エンジン（ＭＥ）１３０によって保護される。
【００５１】
一実施形態によると、メタデータ１８２は、ＡＨＣＩファイルシステムブロック、ブート前認証（ＰＢＡ）コード、および、ＰＢＡメタデータを含む。ＡＨＣＩファイルシステムは、ファームウェアストレージドライバによって利用される。ファームウェアストレージドライバは、プロセッサ１１０によって実行されるとしてよい。メタデータ１８２はさらに、ラップされたＤＥＫ１８４、デバイス設定データ、ドライブ変換ステータス情報、および、ＳＡＴＡストレージデバイス１８０等のデバイスを別のプラットフォームにマイグレーションさせるために用いられるドライブマイグレーションパッケージを含むとしてよい。マイグレーションパッケージはさらに、プラットフォームに特に対応付けられているわけではない回復鍵でラップされているＤＥＫ１８４のコピーを含む。メタデータ１８２はさらに、ＰＢＡ実行ファイル、および、ホストオペレーティングシステムがロードされる前にホストプロセッサ１１０でブート前処理中に実行すべきＰＢＡコードを含むストレージ領域の識別子を含むとしてよい。例えば、ＰＢＡコードを含むこのストレージ領域は、フラッシュメモリ１９０の一部分であるとしてよい。ＰＢＡ領域に対するアクセスは、ＶＥＣＩ１１１ｃを用いてＩ／Ｏコマンドデコードモジュール１４０を介して、または、ＨＥＣＩ１１１ｂを利用するホストコマンドインターフェースを介してマネジビリティ・エンジン（ＭＥ）１３０を介して、ホストプロセッサ１１０上で実行されるコードによって許可される。Ｉ／Ｏコマンドデコードモジュール１４０によって、ＰＢＡコードはホストプロセッサ１１０上で実行されるので、ＰＢＡストレージ領域にアクセスする要求は、ストレージのうちＰＢＡ実行ファイルが格納されている範囲に限定される。
【００５２】
Ｉ／Ｏコマンドデコードモジュール１４０のＳＡＴＡ仮想化ファームウェア２４３が、Ｉ／Ｏコマンドデコードモジュールがメタデータ記述情報を含む仮想ドライブ定義メタデータを読み出すステップ３２０において、ＳＡＴＡストレージデバイス１８０に格納されているメタデータ１８２に格納されているメタデータ記述情報を含む仮想ドライブ定義メタデータを読み出すと、メタデータ記述情報は、デバイスメタデータ１８２内のＤＥＫ１８４等のラップされたデバイス暗号鍵の複数のインスタンスを含むとしてよい。例えば、ＤＥＫ１８４は、プラットフォーム特有のデバイスラップ鍵およびプラットフォーム１００に対応付けられていない回復鍵の両方によってラップされているとしてよい。デバイス暗号鍵のインスタンスは複数存在するので、システムリセットを実行する際に関連するユーザ認証用信用情報を用いてアンラップすることができる特定のデバイス暗号鍵の位置を決定する必要がある。
【００５３】
上述したように、システムリセットを実行するユーザは、デバイスラップ鍵をラップするために用いられるユーザラップ鍵が対応付けられている。ユーザラップ鍵／デバイスラップ鍵は、フラッシュメモリ１９０のデバイスメタデータ２８９に格納される。Ｉ／Ｏコマンドデコードモジュールがユーザ認証メタデータオフセットの位置を特定してデバイスメタデータを読み出すステップ３３０に進む。ステップ３３０において、Ｉ／Ｏコマンドデコードモジュール１４０は、メタデータ記述情報を用いて、システムリセットを実行するために用いられるユーザ信用情報について、フラッシュメモリ１９０内のユーザ認証メタデータオフセットの位置を特定する。ユーザ認証メタデータおよび他のデバイスメタデータは、オフセットによって特定されるフラッシュメモリ１９０の位置から読み出される。
【００５４】
Ｉ／Ｏコマンドデコードモジュールがユーザ認証メタデータオフセットの位置を特定してデバイスメタデータを読み出すステップ３３０においてフラッシュメモリ１９０からデバイスメタデータ２９８を読み出した後、ＭＥの保護デバイスマネージャがデバイスメタデータをセキュアストレージに格納するステップ３４０に進む。例えば、ＭＥの保護デバイスマネージャ２３５が、ＳＡＴＡストレージデバイス１８０のためのユーザ認証用信用情報を含むデバイスメタデータを、マネジビリティ・エンジン（ＭＥ）１３０が後にアクセスできるように、フラッシュメモリ１９０のデバイスメタデータ２９８に格納するとしてよい。この後、ＭＥの保護デバイスマネージャがマネジビリティ動作コマンドが発行されるまで待機するステップ３５０に進む。例えば、ＭＥの保護デバイスマネージャ２３５は、ＳＡＴＡストレージデバイス１８０にアクセスするべく、アンロックコマンド等のマネジビリティ動作コマンドが発行されるまで待機する。マネジビリティ動作コマンドを受信すると、ＭＥの保護デバイスマネージャ２３５は、ユーザ認証用信用情報および／またはＳＡＴＡストレージデバイス１８０にアクセスするために必要なその他の情報を取得するべく格納されているメタデータにアクセスすることができる。
【００５５】
図４は、本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスをアンロックするコマンドを受信した際に実行されるべき方法を説明するフローチャートである。図４に示す方法は、図２に示すシステムの構成要素によって実行されるものとして説明されるが、当該方法の実施例はこれに限定されない。図４には、保護デバイスをアンロックするよう求める要求の発行元に応じて、方法フローの例を２つ挙げている。リモートアンロックブロック４０２の場合の当該方法のステップでは、ＯＯＢ通信チャネル１６８等のセキュア通信チャネルを介して管理コンソール１６６から受信したアンロックコマンド等のリモートアンロックコマンドを処理する。ＵＳＢアンロックブロック４１８の場合の当該方法のステップでは、ストレージデバイスをアンロックするためのトークンを格納しているＵＳＢデバイスと共にアンロックコマンドを処理する。
【００５６】
リモートアンロックブロック４０２の場合のリモートアンロックコマンドを処理するための当該方法のステップは、管理コンソールがＳＡＴＡデバイスに対するリモートアンロック要求をトリガするステップ４０４で開始される。管理コンソール１６６は、企業管理ポリシーに応じて当該要求を発行するとしてもよいし、または、管理コンソール１６６は、ＳＡＴＡストレージデバイス１８０等のデバイスをアンロックすべきである旨のマネジビリティ・エンジン（ＭＥ）１３０からの通知に応じて動作するとしてもよい。管理コンソール１６６は、キーボードにユーザが存在しない場合、ユーザは存在するがプラットフォームに対する認証が成功しない場合、プラットフォームが低電力状態（アドバンスド・コンフィグレーション・アンド・パワー・インターフェース（ＡＣＰＩ）のＳｘ電力状態Ｓ１からＳ５のうち１つ等）にある場合、システムが有線ネットワークまたは無線ネットワークを介して接続されているか、または、企業ファイヤーウォールの外部にあるがデバイスがアクセス不可能な場合、および、システムのホストオペレーティングシステムが故障している場合、といった状況において、マネジビリティ・エンジン（ＭＥ）１３０およびチップセット／セキュアパーティション１２０を介して暗号化されているＳＡＴＡデバイスをアンロックするよう求める要求をトリガする。
【００５７】
管理コンソールがＳＡＴＡデバイスに対するリモートアンロック要求をトリガするステップ４０４から、管理コンソールがセキュアパーティションに接続して、トークン１およびデバイスパスワードを含むディスクアンロックコマンドを送るステップ４０６に進む。管理コンソール１６６は、チップセット／セキュアパーティション１２０が提供する埋め込みセキュリティサブシステムに対してアンロック処理を指示するセキュアコマンドを送るために、ＯＯＢ通信チャネル１６８等の独立して保護および暗号化されているチャネルを利用することができる。ＯＯＢ通信チャネル１６８等のセキュア通信チャネルが管理コンソール１６６とチップセット／セキュアパーティション１２０との間で構築されると、識別情報管理ファームウェア２３９によって管理コンソール１６６およびマネジビリティ・エンジン（ＭＥ）１３０を認証するべくケルベロス認証が用いられる。マネジビリティ・エンジン（ＭＥ）１３０によってリモートアンロック要求が開始されると、セキュア通信チャネルを構築した後、管理コンソール１６６は、プラットフォーム１００に対応付けられているユーザのユーザ名およびパスワード等のユーザ信用情報を取得することができる。リモートアンロック要求が管理コンソール１６６によって開始されると、プラットフォーム１００についての管理者用ユーザ信用情報が用いられるとしてもよい。これらのユーザ信用情報は、デバイスに対応付けられているパスワード、例えば、デバイス１８０のパスワード２６６Ｂ、および、デバイスを復号化するために用いられるトークン、例えば、トークン１  ２６６Ａを管理データストア２６６から取得するべく管理コンソール１６６によって用いられる。
【００５８】
管理コンソールがセキュアパーティションに接続して、トークン１およびデバイスパスワードを含むディスクアンロックコマンドを送るステップ４０６では、デバイスパスワードはアンロックコマンドに含められて、デバイスパスワードを用いてデバイスをアンロックできるようになる。トークン１をコマンドに含めることによって、ユーザラップ鍵／デバイスラップ鍵を、例えば、デバイスメタデータ２９８等で特定することができるようになる。ユーザラップ鍵／デバイスラップ鍵は、暗号化されたストレージデバイスのブロックを復号化するために用いることができ、デバイス暗号鍵１８４を含むメタデータ１８２を含む。
【００５９】
管理コンソールがセキュアパーティションに接続して、トークン１およびデバイスパスワードを含むディスクアンロックコマンドを送るステップ４０６から、ＭＥの保護デバイスマネージャが信頼のおけるコンソールから発行されたコマンドであることを確認するステップ４０８に進む。管理コンソール１６６とチップセット／セキュアパーティション１２０との間でセキュア通信チャネルを構築するために必要なケルベロス認証用の信用情報は、コマンドが信頼のおける管理コンソール１６６で発行されたことを確認するために用いられるとしてよい。この後、ＭＥの保護デバイスマネージャがトークン１を用いてデバイスメタデータに含まれるＤＥＫのコピーをアンラップするステップ４１０に進む。上述したように、保護デバイスマネージャ２３５がＳＡＴＡストレージデバイス１８０をアンロックするためのデバイス１８０のパスワード２６６Ｂへのアクセスを得ると、保護デバイスマネージャ２３５は、フラッシュメモリ１９０のデバイスメタデータ２９８に格納されているデバイスラップ鍵のコピーを作成することができる。デバイスラップ鍵は、プラットフォームに取り付けられた各ＳＡＴＡデバイスのためのデバイスメタデータに含まれるデバイス暗号鍵をアンラップするために用いることができる。
【００６０】
ＭＥの保護デバイスマネージャ２３５が暗号化されたストレージデバイス用のデバイス暗号鍵を取得すると、ＭＥのセキュリティ／鍵管理ファームウェアがＤＥＫを暗号化エンジンのＳＡＴＡデバイスに対応するキースロットレジスタに書き込むステップ４１２に進む。米国特許出願第１２／３１９，２１０号（発明の名称：「暗号化されたストレージデバイスについてチップセット鍵管理サービスの利用を実行する方法」、発明者：ネッド・スミス（Ｎｅｄ  Ｓｍｉｔｈ））に記述しているように、デバイス暗号鍵は暗号化エンジン１５０内のキースロットレジスタに格納されるとしてよい。当該出願は上述したように参照により本願に組み込まれる。デバイスにアクセスすると、暗号化エンジン１５０は、対応するキースロットレジスタに格納されているデバイス暗号鍵を利用して、対応するデバイス上に格納されているデータを復号化する。
【００６１】
ＭＥのセキュリティ／鍵管理ファームウェアがＤＥＫを暗号化エンジンのＳＡＴＡデバイスに対応するキースロットレジスタに書き込むステップ４１２において暗号化エンジン１５０に対してデバイス暗号鍵がアクセス可能になった後、ＭＥの保護デバイスマネージャはマネジビリティ動作（ＯＳのブートを含むとしてよい）を実行するステップ４１４に進む。例えば、リモートアンロックコマンドに応じて、ＭＥの保護デバイスマネージャ２３５は、デバイスをアンロックする。これは、デバイスをアンロックするためにデバイスパスワードを提供すること、および、暗号化されたデバイスのブロックを復号化するために暗号化エンジン１５０を利用することを含むとしてよい。デバイスがさらにホストソフトウェアによって暗号化されている場合、マネジビリティ動作は、さらにデバイスを復号化するように信頼のおけるホストソフトウェアと通信するように管理コンソール１６６に要求するとしてよい。ＵＳＢアンロックコマンドに応じて、ＭＥの保護デバイスマネージャ２３５は同様に、デバイスをアンロックする。これは、暗号化されたデバイスのブロックを復号化することを目的として、デバイスおよび暗号化エンジン１５０をアンロックするために、デバイスパスワードを利用することを含む。処理されている特定のマネジビリティ動作コマンドに応じて、プラットフォームはリブートされるとしてよい。これは、ホストオペレーティングシステムをブートすることを含むとしてよい。
【００６２】
ＭＥの保護デバイスマネージャはマネジビリティ動作（ＯＳのブートを含むとしてよい）を実行するステップ４１４でマネジビリティ動作を実行した後、ＭＥの保護デバイスマネージャがプラットフォームをリセットして、ＳＡＴＡデバイスが再度ロックされるステップ４１６に進む。ＭＥの保護デバイスマネージャ２３５は、図３を参照しつつ説明したステップを実行して、システムをリセットする。この結果、ストレージデバイスが再度ロックされる。
【００６３】
上述したように、図４はさらに、ＵＳＢアンロックコマンドを用いて手動でデバイスをアンロックするステップを含む。ＵＳＢアンロックコマンドを処理するＵＳＢアンロックブロック４１８のステップは、ＢＩＯＳアプリケーションがトークン２を含むＵＳＢデバイスを挿入するようユーザを促すステップ４２０から開始される。システム起動時に、ＢＩＯＳアプリケーションは、トークン２を含むＵＳＢデバイスを挿入するようユーザを促して、ユーザがＳＡＴＡストレージデバイス１８０等のデバイスにアクセスできるようにする。例えば、このようなＢＩＯＳプロンプトは、デバイスにアクセスするためのパスワードをユーザが提示できない場合に提供されるとしてよい。ＢＩＯＳはトークン２を読み出してＨＥＣＩ／ＤＨＣＩを介してＭＥの保護デバイスマネージャに送るステップ４２２に進む。ＢＩＯＳアプリケーションは、ユーザが提供するトークン２を読み出して、ＨＥＣＩ１１１ｂを介してトークン２をＭＥの保護デバイスマネージャ２３５に送る。この後、ＭＥの保護デバイスマネージャがトークン２を利用してデバイスメタデータに含まれるＤＥＫのコピーをアンラップするステップ４２４に進む。上述したように、保護デバイスマネージャ２３５がＳＡＴＡストレージデバイス１８０をアンロックするためのアンロックトークンに対するアクセスを持つと、保護デバイスマネージャ２３５は、フラッシュメモリ１９０のデータ領域１９８等、デバイスメタデータに格納されているデバイスラップ鍵（ＤＷＫ）のコピーを作成することができる。ＤＷＫは、プラットフォームに取り付けられている各ＳＡＴＡデバイスのデバイスメタデータに含まれているＤＥＫを復号化するために用いることができる。ＭＥのセキュリティ／鍵管理ファームウェアがＤＥＫを暗号化エンジンのＳＡＴＡデバイスに対応するキースロットレジスタに書き込むステップ４１２において暗号化エンジン１５０がデバイス暗号鍵にアクセス可能になった後は上述したように処理が進む。
【００６４】
図２、図３および図４に示すシステムによれば、ホストオペレーティングシステムが介在しなくてもデバイスをアンロックすることが可能となる。システムに取り付けられているデバイスへのアクセスが許可される前にシステムのユーザの信用情報を認証することが望ましい場合には、特別に考慮することが必要である。この認証は通常、システムをブートする際に行われるので、システムをリブートすることなく動的に取り付けられるデバイスについては、ユーザの認証用信用情報の確認が省略されてしまう。ホットプラグされたデバイスへのユーザのアクセスを認めることが好ましいが、ユーザの信用情報を確認するためにシステムをリブートするのは、大変な負荷となる。ストレージデバイスを動的に取り付ける際に認証を可能とすることは、例えば、ＲＡＩＤアレイの一部であるストレージデバイスを動的に交換する場合、正当なユーザによって実行されることを確認する上で有用である。
【００６５】
同様の問題は、ＡＴＡコマンドを用いてロックまたは暗号化されているデバイスでも見られる。ＡＴＡでロックまたは暗号化されたデバイスは、システム起動時にＢＩＯＳによってアンロックされるので、システムにホットプラグすることはできない。当該デバイス上のデータにアクセスする前にデバイスをアンロックまたは復号化するためにはシステムをリブートすることが必要である。
【００６６】
図５Ａおよび図５Ｂに示すシステムによれば、ホットプラグされたデバイスへのアクセスは、システムのユーザの信用情報の認証が成功することを条件とすることができる。デバイスがＡＴＡコマンドを用いてロックまたは暗号化されていたとしても、ホットプラグされたデバイスをアンロックおよび／または復号化することができ、システムをリブートすることなくユーザの信用情報を確認することができる。
【００６７】
図５Ａおよび図５Ｂに示すシステムでは、システムに取り付けられている複数のデバイスのうち任意のデバイスに対するアクセスを許可する前にシステムのユーザの第１の信用情報について認証を行うことが必要である。システムに対して新しいデバイスが取り付けられた旨を示すイベントが、システムのホストオペレーティングシステムから隔離されているシステムのセキュアパーティションによってインターセプトされる。システムをブートすることなく、新しいデバイスにアクセスするための第２の信用情報が要求される。第２の信用情報の認証が行われ、第２の信用情報の認証が成功した後で新しいデバイスに対するアクセスが可能となる。新しいデバイスに対するホットプラグイベントは、セキュアパーティションからホストオペレーティングシステムに通知される。
【００６８】
新しいデバイスにアクセスするための第２の信用情報を要求することは、表示デバイスに対する経路接続として信頼のおけるものを利用して、第２の信用情報に対する要求を表示して、ユーザ入力デバイスが第２の信用情報を受信することを含むとしてよい。第１の信用情報および第２の信用情報について認証を行うことは、信頼のおける第三者で第１の信用情報および第２の信用情報の認証を行うことを含むとしてよい。第２の信用情報は、新しいデバイスについてのパスワードを含むとしてよく、新しいデバイスにアクセスできるようにすることは、パスワードを利用して新しいデバイスをアンロックすることを含むとしてよい。第２の信用情報は、ユーザ識別子を含むとしてよく、新しいデバイスにアクセスできるようにすることは、ユーザ識別子を信頼のおける第三者に提供して、信頼のおける第三者が当該ユーザ識別子の認証に成功すると、新しいデバイスにアクセスできるようにすることを含むとしてよい。
【００６９】
図５Ａは、本発明の一実施形態に係る、図１に示すシステムが、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式で保護されているデバイスを、リブートを実行することなく、動的に取着可能にして、ユーザ認証用の信用情報を動的に再確認可能とするようにするための方法を説明する詳細図である。マネジビリティ・エンジン・カーネル５３１、マネジビリティ・エンジン共通サービス５３３、セキュリティ／鍵管理ファームウェア５３７、Ｉ／Ｏモジュールカーネル５４１、および、ＳＡＴＡ仮想化ファームウェア５４３は、上述した図２のシステムの対応する構成要素と同様に動作する。
【００７０】
マネジビリティ・エンジン（ＭＥ）１３０において、識別情報管理ファームウェアのケルベロスクライアント５３９Ａは、識別情報管理ファームウェアのケルベロスサーバ５３９Ｂとやり取りを行って、ユーザの認証を行う。ケルベロスクライアント５３９Ａは、図１の鍵分配センター１６４等の鍵分配センターにケルベロスプロトコルを実装する。ケルベロスクライアント５３９Ａは、表示デバイスに対して信頼のおける経路接続を利用するべく信頼のおけるＩ／Ｏファームウェア５３６（利用可能な場合に限る）を利用し、システムのユーザから信用情報を取得するためにユーザ入力デバイスを利用するとしてよい。ケルベロスクライアント５３９Ａは、ユーザ信用情報を鍵分配センター１６４に供給するとしてよく、ケルベロスサーバ５３９Ｂ等のケルベロスサービスにアクセスするためのケルベロスチケットを取得するとしてよい。ケルベロスサーバ５３９Ｂは、デバイスにアクセスするためのユーザの信用情報の認証が成功した旨を示すケルベロスチケットを受信すると、ＳＡＴＡストレージデバイス１８０へのアクセスを可能とする。ケルベロスチケットは、図２のトークン１  ２６６Ａ等のユーザトークンを含む拡張フィールドを含むとしてよい。拡張フィールドによって、図２を参照しつつ上述したように、デバイスラップ鍵およびデバイス暗号鍵をアンラップするために用いられるユーザラップ鍵の生成が可能になる。ケルベロスチケットはさらに、図２に示すデバイス１８０のパスワード２６６Ｂ等、デバイスをアンロックするために用いられるデバイスパスワードを含む拡張フィールドを含むとしてよい。
【００７１】
Ｉ／Ｏコマンドデコードモジュール１４０において、ホットプラグ仮想化ファームウェア５４５は、Ｉ／Ｏコントローラ１７０が受信するホットプラグイベントをデコードして、ホストオペレーティングシステム１１５にホットプラグイベントを転送する前にこれらのイベントを処理する。ホットプラグ仮想化ファームウェア５４５の動作は、図５Ｂを参照しつつより詳細に後述する。
【００７２】
図５Ｂは、デバイスのホットプラグイベントを認識すると、図５Ａに示すシステムが実行すべき方法を説明するためのフローチャートである。動作５．１では、Ｉ／Ｏコントローラ１７０が、ＳＡＴＡストレージデバイス１８０がプラットフォーム１００に動的に取り付けられたＳＡＴＡホットプラグイベントを検出する。動作５．２では、ホットプラグ仮想化ファームウェア５４５が、ホットプラグイベントをインターセプトして、ＳＡＴＡ仮想化ファームウェア５４３とやり取りを行ってデバイスの属性を特定する。ホットプラグ仮想化ファームウェア５４５は、識別情報管理ファームウェア５３９のケルベロスクライアント５３９Ａからホットプラグされたデバイスへのアクセスを要求する。デバイスがＡＴＡパスワード方式、ＡＴＡ暗号化および／またはチップセットベースの暗号化を用いてロックされている場合、ホットプラグ仮想化ファームウェア５４５はさらに、ケルベロスクライアント５３９Ａに、ＳＡＴＡストレージデバイス１８０がロックされている旨を、デバイスへのアクセスを求める要求の一部として通知する。
【００７３】
動作５．４において、ケルベロスクライアント５３９Ａは、ユーザ認証用信用情報等のユーザ情報を取得する。ケルベロスクライアント５３９Ａは、ユーザの信用情報が、マネジビリティ・エンジン（ＭＥ）１３０内にローカルにキャッシュされたか否か、例えば、ＳＲＡＭ１２２内にキャッシュされたか否かを判断するとしてよい。ユーザの信用情報がローカルにキャッシュされている場合、動作５．４および５．５は省略されるとしてよい。ユーザの信用情報がローカルにキャッシュされていない場合、ユーザ認証用の信用情報は、プラットフォーム１００上で利用可能であれば、信頼のおけるＩ／Ｏファームウェア５３６を介して取得されるとしてよい。信頼のおけるＩ／Ｏファームウェア５３６は、信頼のおける経路接続、例えば、信用情報に対する要求を表示する表示デバイスに対する信頼のおける経路接続、および、信用情報を受信するキーボード等のユーザ入力デバイスに対する信頼のおける経路接続を利用する。信頼のおけるＩ／Ｏファームウェア５３６がプラットフォーム１００上で利用できない実施形態では、新しいデバイスが取り付けられた旨を示す通知を、プロセッサ１１０上で実行されているホストエージェント（不図示）に送るとしてよい。ホストエージェントは、ユーザの信用情報を集めて、チップセット／セキュアパーティション１２０に接続して、デバイスをアンロックするとともにホストオペレーティングシステム１１５に対してデバイスを可視とする。
【００７４】
動作５．５において、ケルベロスクライアント５３９Ａは、鍵分配センター１６４からケルベロスチケットを取得する。一実施形態によると、ケルベロスチケットは、図２に示すトークン１  ２６６Ａ等のユーザに対するアンロックトークンと共に、ＳＡＴＡストレージデバイス１８０、および、図２に示すデバイス１８０のパスワード２６６Ｂ等のユーザが所有するＡＴＡパスワードについて提供される。このアンロックトークンおよびユーザのためのＡＴＡパスワードは、図１および図２に示す管理コンソール１６６等、ディレクトリサービスから取得するとしてよい。ケルベロスチケットは、ケルベロスサーバ５３９Ｂからサービスを受信するべく、ユーザの信用情報の正当性を確認するためのものである。一実施形態によると、ケルベロスサーバ５３９Ｂは、ケルベロスクライアント５３９Ａがマネジビリティ・エンジン（ＭＥ）１３０内の他の全てのサービス、例えば、セキュリティ／鍵管理ファームウェア５３７および保護デバイスマネージャ５３９からのサービスにアクセスできるようにする。他の実施形態によると、別のケルベロスチケットは、セキュリティ／鍵管理ファームウェア５３７等、マネジビリティ・エンジン（ＭＥ）１３０の他の構成要素が提供するサービスにアクセスするために取得されるとしてよい。一実施形態によると、ＳＡＴＡストレージデバイス１８０のユーザのためのアンロックトークンおよびユーザが所有するＡＴＡパスワードが、ケルベロスセッション鍵の一部である拡張フィールドとして分配される。
【００７５】
動作５．６において、ケルベロスクライアント５３９Ａは、ケルベロスサーバ５３９Ｂとの間で、ユーザの信用情報を確認する。別の実施形態によると、ケルベロスクライアント５３９Ａは、ケルベロスサーバ５３９Ｂ等のローカルケルベロスサーバを介すことなく、鍵分配センター１６４との間で直接、ユーザの信用情報を確認するとしてよい。例えば、ケルベロスクライアント５３９Ａは、ケルベロスチケットを取得して、別のユーザ認証サービス、例えば、トークン１  ２６６Ａおよびデバイス１８０のパスワード２６６Ｂを次のやり取りで返送するアクティブディレクトリサービスにアクセスするとしてよい。一実施形態によると、図１および図２の管理コンソール１６６は、別のユーザ認証サービスへの接続をプロキシするとしてよく、および／または、ユーザ認証サービス自体をホストするとしてよい。
【００７６】
動作５．７から５．１０は、ホットプラグされたＳＡＴＡストレージデバイス１８０がＡＴＡパスワードまたはＡＴＡ暗号化等のネイティブロッキングメカニズムによって保護されている場合に実行する動作を説明している。デバイスがＡＴＡパスワードまたはＡＴＡ暗号化等のネイティブロッキングメカニズムによって保護されていない場合には、ステップ５．７から５．１０は省略する。
【００７７】
動作５．７において、ホットプラグされたＳＡＴＡストレージデバイス１８０がＡＴＡパスワードを用いてロックされている場合には、ケルベロスクライアント５３９Ａは、ユーザのＡＴＡパスワードを保護デバイスマネージャ５３５に供給する。動作５．８においては、保護デバイスマネージャ５３５は、ユーザのＡＴＡパスワードをＩ／Ｏコマンドデコードモジュール１４０のＳＡＴＡ仮想化ファームウェア５４３に供給する。動作５．９において、ＳＡＴＡ仮想化ファームウェア５４３は、ＳＡＴＡストレージデバイス１８０をアンロックするべくＡＴＡコマンドをＩ／Ｏコントローラ１７０に送る。動作５．１０において、Ｉ／Ｏコントローラ１７０は、ＳＡＴＡストレージデバイス１８０をアンロックするべくＡＴＡコマンドを利用する。上述したように、ＳＡＴＡストレージデバイス１８０が暗号化エンジン１５０で暗号化されている場合、セキュリティ／鍵管理ファームウェア／ケルベロスサーバ５３７は、識別情報管理ファームウェア／ケルベロスクライアント５３９と共に協働して、ケルベロスチケットの拡張フィールドに含まれているユーザのアンロックトークンを用いてユーザラップ鍵を導出するとしてよい。ユーザラップ鍵は、ＳＡＴＡストレージデバイス１８０のデバイス暗号鍵およびデバイスラップ鍵にアクセスするために用いられるとしてよい。
【００７８】
動作５．１１および５．１２では、ホットプラグされたＳＡＴＡストレージデバイス１８０が暗号化エンジン１５０で暗号化されている場合に行われる動作を説明する。ホットプラグされたＳＡＴＡストレージデバイスが暗号化エンジン１５０で暗号化されていない場合には、ステップ５．１１および５．１２は省略される。ホットプラグされたＳＡＴＡストレージデバイス１８０がチップセット／セキュアパーティション１２０の暗号化エンジン１５０で暗号化されている場合には、動作５．１１において、ケルベロスクライアント５３９Ａは、ホットプラグされたＳＡＴＡストレージデバイス１８０用のデバイス復号化を可能とするようにセキュリティ／鍵管理ファームウェア５３７に対して要求するとしてよい。ユーザ信用情報は、図２を参照しつつ上述したように、デバイス暗号鍵を取得するために用いられるとしてよい。動作５．１２において、デバイス暗号鍵１８４は、暗号化エンジン１５０に供給される。上述したように、デバイス暗号鍵は、暗号化エンジン１５０のキースロットレジスタに書き込まれるとしてよく、ホットプラグされたデバイス、例えば、ＳＡＴＡストレージデバイス１８０のブロックを復号化するべく暗号化エンジン１５０によって利用されるとしてよい。ホットプラグされたＳＡＴＡストレージデバイス１８０がさらにＡＴＡパスワードによっても保護されている場合、デバイスに格納されているデバイス暗号鍵にアクセスする前に、動作５．７から５．１０を参照しつつ上述したＳＡＴＡストレージデバイス１８０をアンロックするためのステップを用いてデバイスをアンロックするとしてよい。
【００７９】
動作５．１３では、ケルベロスクライアント５３９Ａは、ＳＡＴＡストレージデバイス１８０へのアクセスが認可された旨をホットプラグ仮想化ファームウェア５４５に通知する。動作５．７から５．１０を参照しつつ説明したように、ＳＡＴＡストレージデバイス１８０は、ＡＴＡパスワードでロックされた場合、アンロックされている。動作５．１１および５．１２を参照しつつ説明したように、デバイスが暗号化エンジン１５０で暗号化された場合、復号化をイネーブルしている。動作５．１４において、ホットプラグ仮想化ファームウェア５４５は、ホットプラグイベントをホストオペレーティングシステム１１５に供給する。ホストオペレーティングシステム１１５はこの後、ＳＡＴＡストレージデバイス１８０のアンロックおよび復号化で得られたデータにアクセスする。ホストオペレーティングシステム１１５は、ホストプラグイベントの受信に応じて、ファイルシステムを呼び出して、ＳＡＴＡストレージデバイス１８０の実装および／またはＳＡＴＡストレージデバイス１８０のＲＡＩＤアレイへの組み込みを行うとしてよい。
【００８０】
図１から図５Ｂを参照しつつ上述したシステムでは、ストレージデバイスの暗号化は、チップセット／セキュアパーティション１２０内で暗号化エンジン１５０によって行われている。さらに、図１から図５Ｂを参照しつつ上述したシステムは、当該システム内のホストオペレーティングシステムから隔離されたセキュアパーティション内において、暗号化および保護デバイス管理を行う。例えば、暗号化エンジン１５０は、チップセット／セキュアパーティション１２０内に常駐し、図２の保護デバイスマネージャ２３５はチップセット／セキュアパーティション１２０内のマネジビリティ・エンジン（ＭＥ）１３０内に常駐し、図５ＢのＳＡＴＡ仮想化ファームウェア５４３およびホットプラグ仮想化ファームウェア５４５はチップセット／セキュアパーティション１２０のＩ／Ｏコマンドデコードモジュール１４０内に常駐している。
【００８１】
監査可能イベントは通常、ホストオペレーティングシステムおよび／またはＢＩＯＳの制御下で実行されている監査ソフトウェアで捕捉される。本明細書で説明する管理機能および暗号化機能はホストオペレーティングシステムおよびＢＩＯＳから隔離されているので、セキュアパーティション内で実行されるイベントは通常の監査ソフトウェアでは捕捉されない。しかし、保護デバイスの管理および格納されているデータの暗号化に影響を及ぼすイベントについては、捕捉して監査することが望ましい。また、ホストオペレーティングシステムおよび／またはＢＩＯＳの破損の危険性に対して保護されている環境においては監査処理を実行することが望ましい。また、監査可能イベントが発生したタイミングおよび発生したセキュア環境内で監査情報を捕捉することが好ましい。
【００８２】
図６は、本発明の一実施形態に係る、図１のシステムが保護デバイスを管理する方法を説明する詳細図である。マネジビリティ・エンジン・カーネル６３１、マネジビリティ・エンジン共通サービス６３３、保護デバイスマネージャ６３５、セキュリティ／鍵管理ファームウェア６３７、および、識別情報管理ファームウェア６３９は、図２および図５Ａに示す対応する構成要素と同様に動作する。
【００８３】
図６に示す実施形態では、マネジビリティ・エンジン（ＭＥ）１３０がマネジビリティ・エンジン監査サブシステム６３８を含み、Ｉ／Ｏコマンドデコードモジュール１４０がＩ／Ｏモジュール監査サブシステム６４８を含む。マネジビリティ・エンジン監査サブシステム６３８およびＩ／Ｏモジュール監査サブシステム６４８は、チップセット／セキュアパーティション１２０のうち対応する構成要素において発生する監査可能動作を特定して処理する。Ｉ／Ｏコマンドデコードモジュール１４０は、ストレージデバイスへの入出力用データを準備して暗号化エンジン１５０と直接協働してストレージデバイスに書き込むべくデータを暗号化するので、Ｉ／Ｏモジュール監査サブシステム６４８は、Ｉ／Ｏ時に発生する監査可能イベントを捕捉する。これとは対照的に、マネジビリティ・エンジン（ＭＥ）１３０は、ストレージデバイスへの入出力に直接関連しているわけではないので、マネジビリティ・エンジン監査サブシステム６３８は、保護デバイスの管理に関する監査可能イベントを捕捉する。例えば、マネジビリティ・エンジン監査サブシステム６３８は、暗号化、ユーザ認証、デバイスの初期化および故障、暗号鍵、盗難検出、および、その他の企業プラットフォーム管理ポリシーを管理するためのシステムの設定およびセットアップに関するイベントを捕捉する。
【００８４】
マネジビリティ・エンジン監査サブシステム６３８およびＩ／Ｏモジュール監査サブシステム６４８は、マネジビリティ・エンジン（ＭＥ）コントローラインターフェース１３１を介して通信を行う。マネジビリティ・エンジン監査サブシステム６３８は、ＯＯＢ通信チャネル１６８、ネットワークコントローラ１６０、および、アウトオブバンド通信モジュール６３０を介して、管理コンソール１６６内のリモート監査管理サービス６４０と通信するとしてよい。
【００８５】
一実施形態によると、監査可能イベントは監査ポリシーで定義されている。監査ポリシーは、監査イベント記録が生成される監査可能イベント、および、無視する他の監査不可能イベントについても定義しているとしてよい。システム内で発生する全てのイベントを監査するとシステムの性能が大幅に低下するので、監査ポリシーに基づき、対象組織の優先順位およびポリシーに応じて特定のイベントを選択的に捕捉する。一実施形態によると、監査ビットマスクをセレクタとして利用して、監査可能イベントを検出可能なハードウェア素子および／またはファームウェア素子をアクティブ化および非アクティブ化する。
【００８６】
監査ポリシーでは、イベントの種類として、暗号化システムプロビジョニング／デプロビジョニングイベント、ユーザ管理イベント、デバイス管理イベント、鍵管理イベント、デバイス初期化イベント、盗難検出イベントおよびデバイス故障イベントを含むとしてよい。具体的な監査可能イベントには、システムのセキュアパーティションの外部の動作によってトリガされるイベント、例えば、セキュアパーティション内の動作を発生させるホストオペレーティングシステムによってトリガされるイベント、および／または、セキュアパーティション内で内部的に発生する動作、例えば、割り込みが含まれるとしてよい。
【００８７】
外部トリガされるイベントとしては、盗難防止サービスのイネーブルまたはディセーブル、ユーザアカウントの作成、削除または修正、ユーザのログオン／ログオフの成功または失敗、デバイス暗号鍵、デバイスラップ鍵および回復鍵等さまざまな種類の暗号鍵について暗号鍵の生成または削除、暗号化または復号化を行うためのデバイスの設定、デバイスのセキュリティ管理デバイスへの変換または変換取り消し、デバイスのＰＡＳＳ＿ＴＨＲＯＵＧＨ設定、デバイス移行またはデバイス移行の準備、デバイス暗号鍵（ＤＥＫ）の暗号化エンジンのレジスタに対する挿入または削除、監査イベントポリシーの登録または登録取り消し、プラットフォームまたはデバイスのメタデータの回復、ローカルプラットフォームトークンのユーザ、鍵強度、鍵リフレッシュの変更を始めとする暗号化ポリシーの変更または暗号化ポリシーのリモート設定、認証済み暗号化と未認証暗号化との間での移行、デバイスアンロック処理、デバイス故障が挙げられるとしてよい。内部トリガされる監査可能イベントとしては、マネジビリティ・エンジン、Ｉ／Ｏコマンドデコードモジュール、暗号化エンジン、および／または、セキュアパーティションに対するインターフェースの自己試験の失敗、連邦情報処理基準（ＦＩＰＳ）の自己試験の成功または失敗、監査初期化の失敗、および／または、メモリ故障が挙げられるとしてよい。
【００８８】
マネジビリティ・エンジン監査サブシステム６３８またはＩ／Ｏモジュール監査サブシステム６４８がイベントを検出すると、検出したイベントが監査ポリシーにおいて監査可能イベントと定義されているものの１つであるか否かを判断するとしてよい。検出したイベントが監査ポリシーにおいて監査可能イベントと定義されているものの１つである場合には、当該イベントを監査可能イベントと特定する。
【００８９】
監査ポリシーは、各監査可能イベントについて監査イベント記録を提供する命令を含むとしてよい。監査ポリシーはさらに、監査可能イベントを記録できない場合に実行すべき動作を特定するとしてよい。例えば、マネジビリティ・エンジン監査サブシステム６３８またはＩ／Ｏモジュール監査サブシステム６４８は、監査イベント記録が監査ログに書き込まれない動作を停止または取り消す（効果を戻す）ように設定されているとしてよい。さらに、監査ポリシーは、監査格納ログリソースを使い果たした場合の処理を特定しているとしてよい。このため、マネジビリティ・エンジン監査サブシステム６３８またはＩ／Ｏモジュール監査サブシステム６４８は、監査ログを上書きするように、または、監査イベント記録の監査ログへの書き込みを中止するように構成されているとしてよい。
【００９０】
一実施形態によると、マネジビリティ・エンジン監査サブシステム６３８およびＩ／Ｏモジュール監査サブシステム６４８はそれぞれ、特定された監査可能イベントについて監査イベント記録を生成する。監査イベント記録は、ホストオペレーティングシステムから隔離された監査ログに書き込まれる。図６に示す実施形態では、マネジビリティ・エンジン監査サブシステム６３８は、監査可能イベントを監査ログ６１０に書き込み、Ｉ／Ｏモジュール監査サブシステムは監査可能イベントを監査ログ６２０に書き込む。一実施形態によると、監査ログ６１０はフラッシュメモリの隔離領域、例えば、図１のフラッシュメモリ１９０のデータ領域１９８の隔離領域に格納され、監査ログ６２０は、不揮発性メモリの隔離領域、例えば、図１の不揮発性メモリ格納デバイス１７２の隔離領域等に格納される。不揮発性メモリはフラッシュメモリより高速であるので、一実施形態によると、不揮発性メモリが利用可能であれば、監査イベント記録が最初に、不揮発性メモリに格納されている監査ログ（本例では監査ログ６２０）に書き込まれる。Ｉ／Ｏコマンドデコードモジュール１４０がストレージデバイスへの入出力用データを用意して暗号化エンジン１５０と直接協働してストレージデバイスに書き込む際にデータを暗号化するので、Ｉ／Ｏモジュール監査サブシステム６４８は、Ｉ／Ｏイベントを処理する際にレイテンシを小さくするべく、不揮発性メモリに格納されているより高速な監査ログ６２０に結合されている。マネジビリティ・エンジン監査サブシステム６３８はＩ／Ｏに直接関与しないので、マネジビリティ・エンジン監査サブシステム６３８は、フラッシュメモリ１９０等のフラッシュメモリに格納されているより低速な監査ログ６１０に監査イベント記録を書き込む。
【００９１】
監査ログ６１０および／または監査ログ６２０がしきい値に到達すると、マネジビリティ・エンジン監査サブシステム６３８は、監査ログを提供する旨をリモート監査管理サービス６４０に通知するとしてよい。一実施形態によると、監査管理サービス６４０は、監査ログ６１０および６２０の内容をリモートストレージに複製して、しきい値をリセットする。監査管理サービス６４０は、マネジビリティ・エンジン監査サブシステム６３８またはＩ／Ｏモジュール監査サブシステム６４８の動作を中断しない。マネジビリティ・エンジン監査サブシステム６３８およびＩ／Ｏモジュール監査サブシステム６４８は、監査可能イベントを特定するのと同時進行で、監査イベント記録の対応する監査ログ６１０および６２０への書き込みを続ける。監査ログ６２０がしきい値に近づくと、Ｉ／Ｏモジュール監査サブシステム６４８は、ＭＥＣＩ１３１を介してマネジビリティ・エンジン監査サブシステム６３８に通知して、マネジビリティ・エンジン監査サブシステム６３８が監査管理サービス６４０にサービス要求を送るようにする。
【００９２】
一実施形態によると、マネジビリティ・エンジン監査サブシステム６３８は、監査管理サービス６４０と共に動作して、セキュアパーティション内でアクティブな全ての監査サブシステムを管理する。マネジビリティ・エンジン監査サブシステム６３８は、Ｉ／Ｏモジュール監査サブシステム６４８等の他の監査サブシステムがオーバーロードとなり監査可能イベントを処理できなくなると、Ｉ／Ｏモジュール監査サブシステム６４８等の他の監査サブシステムの機能を実行するとしてよい。マネジビリティ・エンジン監査サブシステム６３８はさらに、他の監査サブシステムの監査ログに対してサービスを提供するとしてよい。一実施形態によると、マネジビリティ・エンジン監査サブシステム６３８は、他の監査サブシステムに登録するよう求める。登録を利用して、他の監査サブシステムが維持している監査ログ６２０等のローカル監査ログがある旨をマネジビリティ・エンジン監査サブシステム６３８に通知する。さらに、登録を利用して、それぞれの監査可能イベントが処理のためにルーティングし直されるか否か、および／または、監査ログへのサービス提供が要求されているか否かを、マネジビリティ・エンジン監査サブシステム６３８に通知するとしてよい。
【００９３】
一実施形態によると、マネジビリティ・エンジン監査サブシステム６３８およびＩ／Ｏモジュール監査サブシステム６４８の動作は、ケルベロスチケットを用いて、企業ドメイン特権によって制御される。一実施形態によると、システムのセキュアパーティション内で実行されている監査可能イベントが特定される。尚、当該セキュアパーティションはシステムのホストオペレーティングシステムから隔離されている。監査イベント記録は、監査可能イベントについて生成されており、監査イベント記録がホストオペレーティングシステムから隔離されている監査ログに書き込まれる。一実施形態によると、複数の監査可能イベントが監査ポリシー内で定義されており、監査ポリシーは、複数の監査可能イベントのうちそれぞれについてサービスを提供する命令を含む。そして、監査可能イベントを特定することは、検出したイベントが監査ポリシーで定義されている複数の監査可能イベントのうち１つであるか否か判断することを含む。
【００９４】
監査ログは、セキュアパーティション内からのみアクセス可能な複数の監査ログのうち第１の監査ログであってよい。複数の監査ログはそれぞれ、ホストオペレーティングシステムから隔離されている。一実施形態によると、第１の監査ログが利用可能であるか否かを判断する。第１の監査ログが利用可能である場合には、第１の監査ログに対応付けられている第１の監査サブシステムに監査イベント記録が送信され、第１の監査サブシステムは監査イベント記録を第１の監査ログに書き込む。第１の監査ログが利用できない場合、監査イベント記録は、複数の監査ログのうち第２の監査ログに対応付けられている第２の監査サブシステムに送信され、第２の監査サブシステムは監査イベント記録を第２の監査ログに書き込む。
【００９５】
一実施形態によると、第１の監査ログへの書き込み動作のレイテンシを監視する。レイテンシが所定のしきい値に到達すると、後続の書き込み動作は、第２の監査サブシステムに移動させて、後続の書き込み動作の対象である後続の監査イベント記録を第２の監査ログに書き込めるようにする。別の実施形態では、レイテンシが所定のしきい値に到達すると、第１の監査ログにサービスを提供するよう求める要求を、第２の監査サブシステムに送る。第２の監査サブシステムは、監査イベント記録を第１の監査ログから別の位置、例えば、第３の監査ログに移動させることによって、第１の監査ログに対してサービスを提供する。一実施形態によると、第２の監査サブシステムは、第３の監査ログにサービスを提供するようにリモート管理アプリケーションをスケジューリングし、リモート管理アプリケーションは、セキュアパーティションとの間でセキュア通信チャネルを構築し、リモート管理アプリケーションはセキュア通信チャネルを介して第３の監査ログにサービスを提供する。
【００９６】
一実施形態によると、監査ログにサービスを提供するよう求める要求は、要求元システムのセキュアパーティションから受信する。セキュアパーティションは、要求元システムのホストオペレーティングシステムから隔離されている。監査ログは、セキュアパーティション内で実行される監査可能イベントの監査イベント記録を含み、監査ログは、要求元システムのホストオペレーティングシステムから隔離されている。セキュアパーティションとの間でセキュア通信チャネルが構築され、セキュア通信チャネルを介して監査ログにサービスが提供される。監査ログにサービスを提供することは、監査ポリシーに応じて監査可能イベントを処理することを含むとしてよい。
【００９７】
図７は、本発明の一実施形態に係る、システムのセキュアパーティション内で発生する監査可能イベントを検出すると実行すべき方法を示すフローチャートである。「イベント検出」ステップ７０２においてチップセット／セキュアパーティション１２０等のセキュアパーティション内で発生するイベントを検出すると、「監査可能イベント？」の判断ポイント７０４に進む。「監査可能イベント？」の判断ポイント７０４においては、ハードウェアおよび／または対応する監査サブシステム（マネジビリティ・エンジン監査サブシステム６３８またはＩ／Ｏモジュール監査サブシステム６４８の一方）に符号化されているロジックが、監査ポリシーを確認して、検出したイベントが監査可能イベントであるか否かを判断するとしてよい。一実施形態によると、監査ビットマスクを用いて、監査可能イベントを検出可能な別のハードウェア素子および／またはファームウェア素子をアクティブ化する。「監査可能イベント？」の判断ポイント７０４において監査ビットマスクを評価することによって、検出したイベントが監査可能であるか否かを判断する。
【００９８】
「監査可能イベント？」の判断ポイント７０４において、イベントが監査可能イベントである場合、「監査イベント記録を生成」ステップ７０６に進む。監査イベント記録は、ハードウェアおよび／または対応する監査サブシステム（マネジビリティ・エンジン監査サブシステム６３８またはＩ／Ｏモジュール監査サブシステム６４８の一方）に符号化されているロジックによって生成される。監査イベント記録が生成された後、「ＮＶＭのログが利用可能？」の判断ポイント７０８に進む。前述したように、不揮発性メモリのログが利用可能である場合、イベントの処理にかかるレイテンシを低減するべく、監査イベント記録を不揮発性メモリに書き込むことが好ましい。「ＮＶＭのログが利用可能？」の判断ポイント７０８では、ＮＶＭのログが利用可能である場合、「イベント記録をＩ／Ｏモジュール監査サブシステムに送る」ステップ７１０に進む。「イベント記録をＩ／Ｏモジュール監査サブシステムに送る」ステップ７１０において、イベント記録がＩ／Ｏモジュール監査サブシステム６４８に送信される。
【００９９】
「イベント記録をＩ／Ｏモジュール監査サブシステムに送る」ステップ７１０から、「しきい値到達？」の判断ポイント７１２に進む。しきい値到達の例として、Ｉ／Ｏモジュール利用率が通常レベル未満となった場合および／または監査ログが満杯になった場合が挙げられる。しきい値に到達すると、「しきい値ステータスをマネジビリティ・エンジン監査サブシステムに送る」ステップ７１８に進む。例えば、Ｉ／Ｏモジュール利用率がしきい値レベル未満になると、監査動作をマネジビリティ・エンジン監査サブシステム６３８に任せて、および／または、監査ログ６２０にサービスを提供する必要があるとしてよい。「しきい値ステータスをマネジビリティ・エンジン監査サブシステムに送る」ステップ７１８が実行されると、マネジビリティ・エンジン監査サブシステム６３８は、監査ポリシーに従ってしきい値に到達したことに対して適切な処理を行う。例えば、マネジビリティ・エンジン監査サブシステム６３８は、監査管理サービス６４０をスケジューリングして、ログにサービスを提供するとしてよいし、および／または、しきい値に到達したログを他のアーカイブストレージに複製するとしてよい。「しきい値ステータスをマネジビリティ・エンジン監査サブシステムに送る」ステップ７１８から、「イベント記録を監査ログに書き込む」ステップ７１５に進む。ステップ７１５では、しきい値に到達した原因となった監査イベント記録をマネジビリティ・エンジン監査サブシステム６３８がログに書き込む。
【０１００】
「しきい値到達？」の判断ポイント７１２から、しきい値に到達していなければ、「イベント記録を監査ログに書き込む」ステップ７１５に進む。ステップ７１５では、対応する監査サブシステムが監査イベント記録を対応するログに書き込む。この後、「イベントを実行する」ステップ７１４に進む。ステップ７１４では、イベントを実行して、監査可能イベントの処理が完了する。
【０１０１】
「ＮＶＭのログが利用可能？」の判断ポイント７０８において、ＮＶＭのログが利用可能でない場合、「イベント記録をマネジビリティ・エンジン監査サブシステムに送る」ステップ７１６に進む。監査イベント記録は、マネジビリティ・エンジン監査サブシステム６３８に送られる。マネジビリティ・エンジン監査サブシステム６３８はこの後、「イベント記録を監査ログに書き込む」ステップ７１５において監査ログ６１０にイベント記録を書き込む。「イベントを実行する」ステップ７１４に進み、イベントを実行して、監査可能イベントの処理が完了する。
【０１０２】
「監査可能イベント？」の判断ポイント７０４において、イベントが監査可能イベントでない場合、「イベントを実行する」ステップ７１４に進む。イベントを実行して、イベントの処理が完了する。
【０１０３】
監査可能イベントの処理は、ハードウェアおよび／またはファームウェアに符号化されているロジックによって実行することができる。チップセット／セキュアパーティション１２０の構成要素、例えば、マネジビリティ・エンジン（ＭＥ）１３０、Ｉ／Ｏコマンドデコードモジュール１４０、および、暗号化エンジン１５０の初期化が、上記の構成要素のハードウェアに符号化されるか、および／または、上記の構成要素のファームウェアに含められる監査可能イベントである。同様に、ＨＥＣＩ１１１ｂ、ＶＥＣＩ１１１ｃ、ネットワークコントローラ１６０、ＵＳＢコントローラ１７５、Ｉ／Ｏコントローラ１７０といったコントローラおよびインターフェースのハードウェアおよび／またはファームウェアは、監査可能イベントを処理するロジックを含むとしてよい。
【０１０４】
監査イベント処理は、最初の設定時、および、マネジビリティ・エンジン（ＭＥ）１３０の構成要素の動作中、例えば、図２のセキュリティ／鍵管理ファームウェア２３７の動作中に、マネジビリティ・エンジン（ＭＥ）１３０内で実行することができる。例えば、監査イベントは、セキュリティ／鍵管理ファームウェア２３７が、ストレージデバイスが暗号化される場合にデバイス暗号鍵（ＤＥＫ）を暗号化エンジン１５０の対応するレジスタに書き込むと、または、暗号化がディセーブルされる場合に暗号化エンジン１５０の対応するレジスタからＤＥＫを削除すると、トリガされるとしてよい。
【０１０５】
監査イベント処理はさらに、データが平文形式でＩ／Ｏコントローラ１７０から暗号化エンジン１５０に（書き込み動作のために）転送されると、そして、データが暗号形式で暗号化エンジン１５０から返送されると、実行されるとしてもよい。Ｉ／Ｏコントローラ１７０と暗号化エンジン１５０との間のチャネルを介して発生する監査イベントによって、データが暗号化されているという証明が得られるが、監査ポリシーはこのようなイベントの監査を、定期的なコンプライアンス試験に制限するとしてよい。
【０１０６】
監査イベント処理は、監査サブシステム間の調整がマネジビリティ・エンジン・コントローラ・インターフェース（ＭＥＣＩ）１３１を介してやり取りされるので、ＭＥＣＩ１３１で実行されるとしてよい。Ｉ／Ｏコマンドデコードモジュール１４０の最初の設定も、ＭＥＣＩ１３１によって実行され、監査可能イベントを生成する。
【０１０７】
監査イベント処理は、インターフェースＨＥＣＩ１１１ｂおよびＶＥＣＩ１１１ｃを介してプロセッサ１１０からの通信で生成されるとしてよい。例えば、デバイスのロッキング状態に関するＡＴＡセキュリティコマンド、および、これらのインターフェースを介してＩ／Ｏコントローラ１７０またはＵＳＢコントローラ１７５にまで伝搬するコマンドが監査可能イベントを生成する。さらに、ユーザ認証、暗号化、セキュリティ、鍵管理およびステータスに関するＨＥＣＩコマンドが監査可能イベントである。Ｉ／Ｏコントローラ１７０、ＵＳＢコントローラ１７５およびネットワークコントローラ１６０等のコントローラを初期化するために利用されるコマンドも監査可能イベントである。監査ログの格納および設定コマンドもまた監査可能イベントであり、監査サブシステムが図６のリモート監査管理サービス６４０と通信することも同様である。ＵＳＢコントローラ１７５および／またはＩ／Ｏコントローラ１７０を介してプラットフォーム１００にデバイスを取り付けることも、監査可能イベントである。
【０１０８】
監査ポリシーにおいて特定のイベントを監査可能イベントであると設定したり、監査可能イベントでないと設定したりすることによって、監査システムは、性能、格納容量およびセキュリティのバランスを取るべく細かい調整が可能となる。セキュア通信チャネルを介して監査管理サービスおよびリモート管理コンソールで監査サブシステムを管理することによって、監査情報のインテグリティを守ることができる。
【０１０９】
図８は、本発明の一実施形態に係る、暗号化方式、ユーザ識別情報認証方式およびパスワード保護方式を用いてデバイスを保護する等の動作を管理するためのセキュアパーティションを実施する仮想マシン環境を示す図である。プラットフォーム８００が仮想化される場合、備えるプロセッサは１つのみとしてよいが、ホスト上の仮想マシンモニタ（ＶＭＭ８３０）はホストの抽象化および／またはビューを複数提供するとしてよい。このため、ホストの下層のハードウェアは１以上の独立して動作する仮想マシン（ＶＭ）に見える。ＶＭＭ８３０は、ソフトウェア（例えば、スタンドアロンプログラムおよび／またはホストオペレーティングシステムの構成要素）、ハードウェア、ファームウェアおよび／またはこれらの任意の組み合わせで実施されるとしてよい。ＶＭＭ８３０は、ホスト上のリソースの割り当てを管理し、ラウンドロビン方式またはその他の所定の方式に応じて、さまざまなＶＭをオン／オフするために必要であればコンテクストスイッチを実行する。図示しているプロセッサは１つのみであるが（プロセッサ８０５）、本発明の実施形態はこれに限定されず、仮想化環境では複数のプロセッサを利用し得ることは当業者には明らかであろう。
【０１１０】
図示しているＶＭパーティションは２つのみ（「ＶＭ８１０」および「ＶＭ８２０」、以下では「ＶＭ」と総称する）であるが、ＶＭは、一例に過ぎず、ホストにさらに仮想マシンを追加するとしてもよい。ＶＭ８１０およびＶＭ８２０は、それぞれ自己完結型プラットフォームとして機能するとしてよく、独自の「ゲストオペレーティングシステム」（つまり、ＶＭＭ８３０がホストするオペレーティングシステムで、「ゲストＯＳ８１１」および「ゲストＯＳ８２１」と図示している。以下では「ゲストＯＳ」と総称する）およびその他のソフトウェア（「ゲストソフトウェア８１２」および「ゲストソフトウェア８２２」と図示している。以下では「ゲストソフトウェア」と総称する）を実行している。
【０１１１】
各ゲストＯＳおよび／または各ゲストソフトウェアは、仮想マシンではなく専用コンピュータで実行されているかのように動作する。つまり、各ゲストＯＳおよび／または各ゲストソフトウェアは、さまざまなイベントを制御するものとしてよく、プラットフォーム８００上のハードウェアリソースにアクセスするとしてよい。各ＶＭにおいて、ゲストＯＳおよび／またはゲストソフトウェアは、実際に、プラットフォーム８００の物理ハードウェア（「ホストハードウェア８４０」、ネットワークコントローラ８６０を含むとしてよい）上で実行されているかのように挙動するとしてよい。
【０１１２】
専用プロセッサを持つ物理ハードウェアパーティション、例えば、図１のマネジビリティ・エンジン（ＭＥ）１３０は、仮想化パーティション（図８に図示するもの）より高いセキュリティを提供し得ることは当業者であれば容易に想到するであろう。しかし、本発明の実施形態は、いずれの環境で実施するとしてもよく、および／または、両環境を組み合わせてさまざまなレベルのセキュリティを提供するとしてもよい。また、ＭＥプラットフォーム、ＡＭＴプラットフォームまたはＰＲＬプラットフォームは仮想化環境内で実施し得ることも当業者であれば容易に想到するであろう。例えば、ＶＭ８２０は、ホスト上のＭＥパーティションとして専用化されるとしてよく、ＶＭ８１０は、ホスト上で通常のアプリケーションを実行する。この場合、ホストは、複数のプロセッサを含むとしてもよいし、含まないとしてもよい。ホストが２つのプロセッサを含む場合、例えば、ＶＭ８１０（およびホスト上のその他のＶＭ）がプロセッサ８０５のリソースを共有する一方、ＶＭ８２０は他のプロセッサに割り当てられるとしてよい。他方、ホストが備えるプロセッサが１つのみである場合、プロセッサは両方のＶＭに対してサービスを提供するが、ＶＭＭ８３０の協力の下、ＶＭ８２０はホスト上の他のＶＭから隔離されるとしてよい。簡略化のため、本発明の実施形態は、マネジビリティ・エンジン（ＭＥ）環境に関連付けて説明しているが、本発明の実施形態はこれに限定されない。これに代えて、マネジビリティ・エンジン、ＭＥに言及する場合、「パーティション」、「セキュアパーティション」、「セキュリティパーティション」および／または「管理パーティション」は任意の物理パーティションおよび／または仮想的パーティション（上述の説明のように）を含むものとする。
【０１１３】
スタートアップ時、または、新しいデバイスがプラットフォームにホットプラグされると、ＶＭＭ８３０は、当該デバイスをＶＭ８１０または８２０に割り当てる。図８に図示したような仮想化環境においてチップセット／セキュアパーティション１２０内で監査を実施する場合、ＶＭＭ８３０は、ＶＭ８１０および８２０のそれぞれの監査マスクプロフィールを管理する。あるデバイスがＶＭ８１０または８２０に割り当てられると、当該ＶＭの対応する監査マスクプロフィールは、チップセット／セキュアパーティション１２０に対応付けられる。チップセット／セキュアパーティション１２０に対応付けられているＶＭの監査マスクプロフィールが変更される度に、ＶＭＭ８３０は監査イベント記録を生成する。このように、監査可能イベントを開始するＶＭ８１０または８２０は、監査イベント記録で表現される。例えば、デバイスに対して格納Ｉ／Ｏコマンドを発行するＶＭ８１０または８２０は、監査イベント記録で特定される。
【０１１４】
デバイスがプラットフォームにホットプラグされると、デバイス管理を受信したＶＭ８１０または８２０は、監査イベント記録で特定される。ホットプラグイベントが検出されると、Ｉ／Ｏコマンドデコードモジュール１４０が、チップセット／セキュアパーティション１２０に現在対応付けられているＶＭ８１０または８２０がデバイス管理を受信する権限を持つか否かを判断する必要があるとしてよい。デバイスが割り当てられて、チップセット／セキュアパーティション１２０に割り当てられるべき正しい監査マスクプロフィールが決定されるまで、内部監査マスクプロフィールを用いて、ホットプラグイベント以降デバイス管理が発生するまでのイベントを監査するとしてよい。
【０１１５】
ＶＭＭ８３０は、現在アクティブな監査マスクプロフィールをフラッシュメモリ１９０に書き込むことによって、現在アクティブなＶＭ監査マスクプロフィールをチップセット／セキュアパーティションに特定するとしてよい。フラッシュメモリ１９０はさらに、各ＶＭに対応付けられているユーザアカウントメタデータを維持するために用いられる。ストレージデバイスがデバイスパスワードまたはデバイス暗号鍵を用いてアンロックされる場合、フラッシュメモリ１９０内のユーザアカウントメタデータが、デバイスが割り当てられたＶＭに対応することを確認するべくさらに追加で確認を行うとしてよい。
【０１１６】
ＶＭＭ８３０によって、過渡的なＶＭ環境のためにドライブが不当に割り当てられることにならないようにする。一実施形態によると、ＶＭＭ８３０は、ＶＭ８１０および８２０のそれぞれについて、ＧＵＩＤ（グローバルに一意的なＩＤ）を生成する。ＧＵＩＤは、フラッシュメモリ１９０内のメタデータをパーティション化するために用いられる。
【０１１７】
本明細書で開示するメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの実施方法の組み合わせで実現されるとしてよい。本発明の実施形態は、少なくとも１つのプロセッサと、データストレージシステム（揮発性メモリおよび不揮発性メモリおよび／または格納素子を含む）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを備えるプログラム可能システムで実行されるコンピュータプログラムとして実現されるとしてよい。
【０１１８】
本明細書で説明した機能を実行して出力情報を生成するべく、入力データにプログラムコードを適用するとしてよい。本発明の実施形態はさらに、本明細書に係る処理を実行するための命令を含むか、または、本明細書で説明した構造、回路、装置、プロセッサおよび／またはシステム機能を定義するＨＤＬ等の構成データを含む機械アクセス可能媒体を含む。このような実施形態は、プログラム製品とも呼ばれるとしてよい。
【０１１９】
このような機械アクセス可能格納媒体は、これらに限定されないが、機械またはデバイスが製造または形成する粒子による有形の構造物、例えば、ハードディスク、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）、および、光磁気ディスク等の任意のその他の種類のディスク、リードオンリーメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、フラッシュプログラム可能メモリ（ＦＬＡＳＨ）、電気的消去可能プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）等の半導体デバイス、磁気カードまたは光カード、または、電子命令を格納するのに適している任意のその他の種類の媒体等の格納媒体を含むとしてよい。
【０１２０】
出力情報は、公知の方法で、１以上の出力デバイスに適用されるとしてよい。本願では、プロセッシングシステムは、プロセッサ、例えば、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、または、マイクロプロセッサ等を含む任意のシステムを含む。
【０１２１】
プログラムは、プロセッシングシステムとの間でやり取りを行うべく高級プロシージャプログラミング言語または高級オブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムはまた、所望される場合には、アセンブリ言語または機械言語で実装するとしてもよい。実際のところ、本明細書で説明したメカニズムの範囲は、任意の特定のプログラミング言語に限定されるものではない。いずれの場合でも、プログラミング言語は、コンパイラ型またはインタプリタ型のいずれであってもよい。
【０１２２】
本明細書では、暗号化方式、ユーザ認証方式およびパスワード保護方式によって保護されるデバイスの管理を行うための方法およびシステムの実施形態を説明する。本発明の具体的な実施形態を図示および説明してきたが、請求項の範囲から逸脱することなく多くの点で変更、変化、および変形が可能であることは当業者には明らかであろう。したがって、当業者であれば、本発明を広義に解釈した場合に本発明の範囲から逸脱することなく変更および変形が可能であるものと理解されたい。請求項の範囲には、本発明の真の意図および範囲に含まれるこのような変更、変化、変形もすべて包含するものとする。
【図１】
2013515296.tif 000003
【図２】
2013515296.tif 000004
【図３】
2013515296.tif 000005
【図４】
2013515296.tif 000006
【図５Ａ】
2013515296.tif 000007
【図５Ｂ】
2013515296.tif 000008
【図６】
2013515296.tif 000009
【図７】
2013515296.tif 000010
【図８】
2013515296.tif 000011
【手続補正書】
【提出日】平成24年6月19日(2012.6.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
システムに結合されている暗号化されたデバイスをアンロックする要求を、前記システムのホストオペレーティングシステムから隔離された前記システムのセキュアパーティションによって、前記セキュアパーティションと信頼のおけるリモートコンソールとの間に構築されているセキュア通信チャネルを介して受信する段階と、
前記セキュアパーティションが、前記ホストオペレーティングシステムの介在無しに、前記要求に応じて前記暗号化されたデバイスをアンロックする段階と
を備える方法。
【請求項２】
前記信頼のおけるリモートコンソールから前記セキュアパーティションがトークンを受信する段階と、
前記トークンを利用して前記暗号化されたデバイスのブロックを暗号化するために用いられる鍵をアンラップする段階と
をさらに備える請求項１に記載の方法。
【請求項３】
前記暗号化されたデバイスのセキュアストレージ領域から前記鍵を取得する段階をさらに備え、
前記セキュアストレージ領域は、前記ホストオペレーティングシステムから隠されている請求項２に記載の方法。
【請求項４】
前記暗号化されたデバイスをアンロックする前に、前記要求が前記信頼のおけるリモートコンソールで発行されたことを確認する段階をさらに備える請求項１に記載の方法。
【請求項５】
前記暗号化されたデバイスがアンロックされた後に管理動作を実行する段階と、
前記管理動作が実行された後に前記ホストオペレーティングシステムをブートする段階と
をさらに備え、
前記要求はさらに、実行すべき前記管理動作を特定している請求項１に記載の方法。
【請求項６】
前記暗号化されたデバイスのアンロックは、前記システムの前記ホストオペレーティングシステムが誤動作している場合に実行される請求項１に記載の方法。
【請求項７】
前記暗号化されたデバイスのアンロックは、前記システムのユーザが介在することなく実行される請求項１に記載の方法。
【請求項８】
前記要求は、前記暗号化されたデバイスのパスワードを含み、
前記暗号化されたデバイスのアンロックは、前記パスワードを用いて前記暗号化されたデバイスをアンロックすることを含む請求項１に記載の方法。
【請求項９】
少なくとも１つのプロセッサと、
前記プロセッサで実行されているホストオペレーティングシステムから隔離されているセキュアパーティションと、
前記セキュアパーティションで実行されるデバイスマネージャのための命令を有するメモリと
を備える装置であって、
前記セキュアパーティションで実行されるデバイスマネージャのための命令は、
前記装置に結合されている暗号化されたデバイスをアンロックするための要求を受信し、
前記ホストオペレーティングシステムの介在無しに、前記要求に応じて前記暗号化されたデバイスをアンロックするための命令であり、
前記要求は、前記セキュアパーティションによって、前記セキュアパーティションと信頼のおけるリモートコンソールとの間に構築されているセキュア通信チャネルを介して、受信され、前記セキュアパーティションは、前記ホストオペレーティングシステムから隔離されている装置。
【請求項１０】
プロセッシングシステムのホストオペレーティングシステムから隔離された当該プロセッシングシステムのセキュアパーティションに、
前記プロセッシングシステムに結合されている暗号化されたデバイスをアンロックするための要求を、前記セキュアパーティションによって、前記セキュアパーティションと信頼のおけるリモートコンソールとの間に構築されているセキュア通信チャネルを介して受信する段階と、
ホストオペレーティングシステムの介在無しで前記要求に応じて前記暗号化されたデバイスをアンロックする段階と
を実行させるためのプログラム。
【請求項１１】
コンピュータで実施される方法であって、
信頼のおけるリモートコンソールと、システムのセキュアパーティションとの間でセキュア通信チャネルを構築する段階と、
前記システムに結合されている暗号化されたデバイスをアンロックする要求を、前記セキュア通信チャネルを介して前記セキュアパーティションに送信する段階と
を備え、
前記セキュアパーティションは、前記システムのホストオペレーティングシステムから隔離されており、
前記暗号化されたデバイスは、前記システムのホストオペレーティングシステムの介在無しで、前記セキュアパーティションによってアンロックされる方法。
【請求項１２】
前記信頼のおけるリモートコンソールから前記セキュアパーティションへ、前記要求に含めてトークンを供給する段階をさらに備え、
前記セキュアパーティションは、前記トークンを用いて、前記暗号化されたデバイスに格納されているブロックを復号化するために用いられる鍵をアンラップする請求項１１に記載の方法。
【請求項１３】
前記要求に含めて、前記暗号化されたデバイスのパスワードを供給する段階をさらに備え、
前記セキュアパーティションは、前記パスワードを用いて前記暗号化されたデバイスをアンロックする請求項１１に記載の方法。
【請求項１４】
前記要求において、前記暗号化されたデバイスがアンロックされた後に実行されるべき管理動作を特定する段階をさらに備え、
前記セキュアパーティションは、前記暗号化されたデバイスがアンロックされた後に前記管理動作を実行する請求項１１に記載の方法。
【請求項１５】
コンピュータで実施される方法であって、
システムのユーザの第１の信用情報を、前記システムに取り付けられている複数のデバイスのうち任意のデバイスに対するアクセスが許可される前に、認証する段階と、
新しいデバイスが前記システムに取り付けられた旨を示すイベントを、前記システムのホストオペレーティングシステムから隔離された前記システムのセキュアパーティションでインターセプトする段階と
前記システムをブートすることなく、前記新しいデバイスにアクセスするための第２の信用情報を要求する段階と、
前記第２の信用情報を認証する段階と、
前記第２の信用情報を認証した後に前記新しいデバイスへのアクセスを可能とする段階と、
前記新しいデバイスのホットプラグイベントを前記ホストオペレーティングシステムに通知する段階と
を備える方法。
【請求項１６】
前記新しいデバイスにアクセスするための前記第２の信用情報を要求する段階は、前記第２の信用情報を受信するユーザ入力デバイスおよび前記第２の信用情報を求める要求を表示する表示デバイスへの信頼のおける経路接続を利用する段階を有する請求項１５に記載の方法。
【請求項１７】
前記新しいデバイスへのアクセスを可能とする段階は、前記新しいデバイスの復号化を可能とする前記デバイスのネイティブコマンドを利用する段階を有する請求項１５に記載の方法。
【請求項１８】
前記第２の信用情報は、前記新しいデバイスのパスワードを含み、
前記新しいデバイスへのアクセスを可能とする段階は、前記パスワードを利用して前記新しいデバイスをアンロックする段階を有する請求項１５に記載の方法。
【請求項１９】
前記第２の信用情報は、ユーザ識別子を含み、
前記新しいデバイスへのアクセスを可能とする段階は、前記ユーザ識別子を信頼のおける第三者に供給して、前記信頼のおける第三者が前記ユーザ識別子を認証した場合には、前記新しいデバイスへのアクセスを可能とする段階を有する請求項１５に記載の方法。
【請求項２０】
少なくとも１つのプロセッサと、
前記プロセッサで実行されているホストオペレーティングシステムから隔離されているセキュアパーティションと、
前記セキュアパーティションで実行されているファームウェア用の命令を有するメモリと
を備え、
前記セキュアパーティションで実行されているファームウェア用の命令は、
システムに取り付けられている複数のデバイスのうち任意のデバイスへのアクセスを許可する前に、前記システムのユーザの第１の信用情報を認証し、
前記システムに新しいデバイスが取り付けられた旨を示すイベントを、前記セキュアパーティションでインターセプトし、
前記システムをブートすることなく、前記新しいデバイスにアクセスするための第２の信用情報を要求し、
前記第２の信用情報を認証し、
前記第２の信用情報が認証された後前記新しいデバイスへのアクセスを可能とし、
前記新しいデバイスのホットプラグイベントを前記ホストオペレーティングシステムに通知するための命令である装置。
【請求項２１】
ホストオペレーティングシステムから隔離された、プロセッシングシステムのセキュアパーティションに、
システムに取り付けられている複数のデバイスのうち任意のデバイスへのアクセスが許可される前に、前記システムのユーザの第１の信用情報を認証する段階と、
前記システムに新しいデバイスが取り付けられた旨を示すイベントを、前記セキュアパーティションでインターセプトする段階と、
前記システムをブートさせることなく、前記新しいデバイスにアクセスするための第２の信用情報を要求する段階と、
前記第２の信用情報を認証する段階と、
前記第２の信用情報が認証された後に前記新しいデバイスへのアクセス可能とさせ、
前記新しいデバイスのホットプラグイベントを前記システムのホストオペレーティングシステムに通知する段階と
を実行させるためのプログラム。
【請求項２２】
コンピュータで実施される方法であって、
システムのホストオペレーティングシステムから隔離された当該システムのセキュアパーティションにおいて実行されている、前記ホストオペレーティングシステムから隔離された監査可能イベントを特定する段階と、
前記監査可能イベントの監査イベント記録を生成する段階と、
前記監査イベント記録を監査ログに書き込む段階と
を備える方法。
【請求項２３】
前記監査ログは、複数の監査ログのうち第１の監査ログであり、
前記複数の監査ログは、前記セキュアパーティション内からのみアクセス可能であり、
前記複数の監査ログはそれぞれ、前記ホストオペレーティングシステムから隔離されており、
前記方法はさらに、
前記第１の監査ログが利用可能であるか否かを判断する段階と、
前記第１の監査ログが利用可能である場合、前記第１の監査ログに対応付けられている第１の監査サブシステムに前記監査イベント記録を送る段階と、
前記第１の監査ログが利用可能でない場合には、前記複数の監査ログのうち第２の監査ログに対応付けられている第２の監査サブシステムに前記監査イベント記録を送る段階と
を備え、
前記第１の監査サブシステムは、前記第１の監査ログへの前記監査イベント記録の書き込みを実行し、
前記第２の監査サブシステムは、前記第２の監査ログへの前記監査イベント記録の書き込みを実行する請求項２２に記載の方法。
【請求項２４】
コンピュータで実施される方法であって、
要求元システムのホストオペレーティングシステムから隔離された当該要求元システムのセキュアパーティションから、当該セキュアパーティションで実行される監査可能イベントの監査イベント記録を含み、前記ホストオペレーティングシステムから隔離されている監査ログにサービスを提供するよう求める要求を受信する段階と、
前記セキュアパーティションとの間にセキュア通信チャネルを構築する段階と、
前記セキュア通信チャネルを介して前記監査ログにサービスを提供する段階と、
を備える方法。
【国際調査報告】
2013515296.tif 000012
2013515296.tif 000013