(57)【特許請求の範囲】
【請求項１】
ハードウェアと、
仮想マシンモニタと、
該仮想マシンモニタにより管理される仮想トラステッドランタイムBIOSをホストするための特権ドメインと、
前記特権ドメインにより生成されるゲストドメインと、
前記ゲストドメインが前記仮想トラステッドランタイムBIOSと通信するための通信チャネルと
を備えており、
該通信チャネルがSSL（Secure Socket Layer）によりセキュアにされ、前記仮想トラステッドランタイムBIOSは、前記仮想マシンモニタを介して前記ハードウェア上の物理BIOSと通信するものである、コンピューティングシステム。
【請求項２】
前記仮想トラステッドランタイムBIOSとのセキュアな通信を提供するための公開鍵及び秘密鍵を更に備えている、請求項１に記載のシステム。
【請求項３】
前記通信チャネルがウェブ通信プロトコルに基づくものである、請求項１に記載のシステム。
【請求項４】
前記通信チャネルが、HTTP（Hypertext Transfer Protocol）レイヤとTCP（Transport Control Protocol）レイヤとの間にある、請求項３に記載のシステム。
【請求項５】
リモートに配設された仮想トラステッドランタイムBIOSと通信するための送受信手段を更に備えている、請求項１に記載のシステム。
【請求項６】
コンピューティングシステムにおける仮想トラステッドランタイムBIOSとの通信をセキュアにする方法であって、
仮想マシンモニタが仮想トラステッドランタイムBIOSを管理し、
該仮想トラステッドランタイムBIOSと、該仮想トラステッドランタイムBIOSをホストするための特権ドメインにより生成されるゲストドメインとの間のセキュアな通信チャネルを、前記仮想トラステッドランタイムBIOS及び前記ゲストドメインが確立し、
前記ゲストドメインが、SSL（Secure Socket Layer）を使用し前記セキュアな通信チャネルを介して前記仮想トラステッドランタイムBIOSと通信し、
前記仮想トラステッドランタイムBIOSが前記仮想マシンモニタを介して物理BIOSと通信する、
という各ステップを含む、コンピューティングシステムにおける仮想トラステッドランタイムBIOSとの通信をセキュアにする方法。
【請求項７】
前記ゲストドメインが、前記コンピューティングシステムからリモートに配設された仮想ランタイムBIOSと通信するステップを更に含む、請求項６に記載の方法。
【請求項８】
前記仮想トラステッドランタイムBIOSと前記ゲストドメインとの通信がウェブ通信プロトコルである、請求項６に記載の方法。
【請求項９】
セキュアな通信チャネルを確立する前記ステップが、前記仮想トラステッドランタイムBIOSと前記ゲストドメインとの間における、公開鍵及び秘密鍵を使用したハンドシェイクを含む、請求項６に記載の方法。
【請求項１０】
コードを含むコンピュータ読み取り可能媒体であって、該コードが、プロセッサにより実行された際に、
仮想トラステッドランタイムBIOSを管理し、
該仮想トラステッドランタイムBIOSと、該仮想トラステッドランタイムBIOSをホストするための特権ドメインにより生成されるゲストドメインとの間のセのセキュアな通信チャネルを確立し、
前記ゲストドメインが、SSL（Secure Socket Layer）を使用して前記セキュアな通信チャネルを介して前記仮想トラステッドランタイムBIOSと通信し、
前記仮想トラステッドランタイムBIOSが仮想マシンモニタを介して物理BIOSと通信する、
という各ステップをコンピューティングシステムに行わせるものである、コンピュータ読み取り可能媒体。
【請求項１１】
前記コンピューティングシステムからリモートに配設された仮想ランタイムBIOSと通信するステップを実行時にコンピューティング装置に行わせるコードを更に含む、請求項１０に記載のコンピュータ読み取り可能媒体。
【請求項１２】
ウェブ通信プロトコルを使用して前記仮想ランタイムBIOSと通信するステップを実行時にコンピューティング装置に行わせるコードを更に含む、請求項１０に記載のコンピュータ読み取り可能媒体。
【請求項１３】
公開鍵及び秘密鍵を使用したハンドシェイクを含むセキュアな通信チャネルを確立するステップを実行時にコンピューティング装置に行わせるコードを更に含む、請求項１０に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータ又はその他のタイプの装置等の電子装置は、該電子装置の起動を責務とする基本入出力システム（BIOS）を含むことが可能である。起動中に、BIOSは、該電子装置の各構成要素の初期化及び設定を行い、及び該電子装置にオペレーティングシステムをロードする。更に、BIOSは、電力管理サービス、熱管理サービス、及びBIOS更新サービスといった他のサービスを提供することも可能である。
【図面の簡単な説明】
【０００２】
【図１】仮想トラステッドランタイムBIOSとのセキュアな通信の一実施形態によるコンピューティングシステムのブロック図である。
【図２】仮想トラステッドランタイムBIOSとのセキュアな通信の一実施形態によるコンピューティングシステムのブロック図である。
【図３】一実施形態による仮想トラステッドランタイムBIOSとの通信をセキュアにする方法のフローチャートである。
【図４】一実施形態による仮想トラステッドランタイムBIOSとの通信をセキュアにする方法のフローチャートである。
【図５】一実施形態による仮想トラステッドランタイムBIOSとの通信をセキュアにする方法のフローチャートである。
【図６】コンピュータ読み取り可能媒体の一実施形態によるコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【０００３】
基本入出力システム（BIOS）は、通常は電子装置が始動する際に該電子装置により実行される最初のコードである。該電子装置の例として、コンピュータ（例えば、デスクトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、サーバコンピュータ等）、ハンドヘルド装置（例えば、携帯情報端末（PDA）、スマートフォン等）、電子アプライアンス、ゲーム機、又はその他のタイプの電子装置が挙げられる。BIOSは、電子装置の様々なハードウェア構成要素を初期化し設定することが可能であり、及び該電子装置のオペレーティングシステム（OS）をロードし開始させることが可能である。BIOSのためのコードは通常は、フラッシュメモリ装置又はその他のタイプのプログラマブルリードオンリーメモリ（ROM）といった不揮発性メモリに格納される。
【０００４】
様々な例示的なBIOS機能について上述したが、他の実施形態では他の又は代替的なBIOS機能を使用することが可能であることに留意されたい。
【０００５】
実施形態によっては、特権ドメイン内に存在することが可能な電子装置の仮想トラステッドランタイムBIOSにおいて、一層ローバストなシステム挙動及びBIOS機能を提供することが可能である。ここで、該特権ドメインとは、比較的セキュアであり且つ該電子機器内の他のエンティティに対して利用可能とならない特定の所定の特権を有する、該電子装置の一ドメインである。一般に、「特権ドメイン」とは、該ドメイン内の特定のエンティティが、他のエンティティ（例えば、OS、アプリケーションプログラム等）が実行することが許可されない該電子装置の機能を実行することを許可する、所定の１つ以上の特権を有するドメインを意味する。また、特権ドメインは、権限のないアクセス又は攻撃から該特権ドメインを保護するためのセキュリティ機構を有する。該仮想トラステッドランタイムBIOSを用いた通信は、ウェブベースのプロトコルによるものとすることが可能である。ウェブベースのプロトコルは、セキュアではなく、セキュリティの脆弱性に通じ得るものである。一実施形態では、通信は、SSL（Secure Socket Layer）等の公開鍵・秘密鍵式暗号化によってセキュアにすることが可能である。仮想トラステッドランタイムBIOSに対する通信のセキュア化は、システム管理モード（SMM）により扱われるシステム管理命令をセキュアにするために使用することが可能である。
【０００６】
特権ドメインの例として、以下に示すものの何れか１つ又はそれらの幾つかの組み合わせが挙げられる。ドメイン0（管理タスクを実行するために仮想マシンモニタ（ハイパーバイザとも呼ばれる）により開始される最初のドメインであることが多い）、仮想マシンモニタ（又はハイパーバイザ）の一部、強化された特権及び／又はセキュリティをゲスト仮想マシンに提供する所定の設定を有するゲスト仮想マシン、又は所定の特殊な特権及び／又はセキュリティ機構を有する電子装置内のその他のタイプのドメイン。セキュアな特権ドメインは、仮想高特権モードを他のドメインから分離させセキュアにするためにシステム管理モード転送モニタ等の仮想マシンモニタとピアレベルでコンポーネントを有することを必要とすることなく、システム管理命令をセキュアに扱うための仮想高特権モードを含むことができる仮想トラステッドランタイムBIOSを含むことが可能である。
【０００７】
「仮想マシン」（「仮想アプライアンス」又は「仮想パーティション」とも呼ばれる）とは、物理マシンを仮想化し又はエミュレートするために提供される物理マシンの幾つかのパーティション又はセグメントを称するものである。ユーザ又はアプリケーションの観点からすると、仮想マシンは物理マシンのように見える。仮想マシンは、（ゲストオペレーティングシステムと呼ばれる）オペレーティングシステム及び少なくとも１つのアプリケーションプログラムを含む。
【０００８】
仮想マシンモニタ（VMM）（ハイパーバイザとも呼ばれる）は、電子装置の物理リソース（ハードウェア構成要素を含む）の仮想マシンによる共有を管理する。VMMは、該物理リソースを仮想化する。各仮想マシンは、該VMMにより管理される関連する仮想化された物理リソースを有する。VMMは物理リソースのための要求を処理する。
【０００９】
一実施形態では、コンピューティングシステムは、ハードウェア及び仮想マシンモニタを含む。仮想トラステッドランタイムBIOSは、該仮想マシンモニタにより生成することが可能である。通信チャネルは、該仮想トラステッドランタイムBIOSと通信することが可能である。該通信チャネルはSSLによりセキュアにされる。
【００１０】
別の実施形態では、所与の方法が、コンピューティングシステムにおける仮想トラステッドランタイムBIOSとの通信をセキュアにすることが可能である。該方法は、仮想トラステッドランタイムBIOSの管理及び該仮想トラステッドランタイムBIOSに対するセキュアな通信チャネルの確立を含むことが可能である。セキュアな通信チャネルが確立された後、SSLを用いて該セキュアな通信チャネルを介して該仮想トラステッドランタイムBIOSとの通信が行われる。
【００１１】
図面を参照すると、図１は、仮想トラステッドランタイムBIOSとのセキュアな通信の一実施形態によるコンピューティングシステムのブロック図を示している。コンピューティングシステム100は、プロセッサ110を含むことが可能である。該プロセッサ110は、該コンピューティングシステム100のハードウェア105の一部である。該プロセッサ110は、汎用プロセッサ又は専用プロセッサとすることが可能である。一例として、ハードウェア105は、I/O装置、揮発性メモリ、二次記憶装置、フラッシュメモリ、ネットワークインタフェイスコントローラ、及びグラフィクスアダプタ等も含むことが可能である。該システムは、ハードウェア構成要素の物理リソースを管理し及び該物理リソースを仮想化するための仮想マシンモニタ115を含むことが可能である。該コンピューティングシステムは、ゲストドメイン130に属する仮想基本入出力システム（vBIOS）135を含む。該ゲストドメイン130は、Microsoft Windows（登録商標）、Linux（登録商標）、Unix（登録商標）、又はその他のオペレーティングシステム等のオペレーティングシステムを実行することが可能な仮想マシンである。
【００１２】
実施形態によっては、特権ドメイン120は、システム起動時にVMM102によって開始される管理ドメインである「ドメイン0」であり、該ドメイン0は、強化された特権及びセキュリティ機構を有する。ドメイン0により実行されるタスクの例として、ゲストドメインの生成及び設定が挙げられる。ドメイン0及びゲストドメインの各々は、対応する仮想マシンとみなされる。特権ドメイン120は、VMM115から分離させることが可能である。代替的な実施形態では、特権ドメイン120は、VMM115の一部とすることが可能である。かかる代替的な実施形態では、仮想トラステッドランタイムBIOS機能125はVMM115の一部となる。特権ドメイン120は、トラステッドVMM115により生成され又は管理されるため、トラステッドドメインとすることが可能である。
【００１３】
仮想TPM（Trusted Platform Module）、前記BIOS、又はその他の装置を初期化時に含むことが可能なTPM又はその他の装置によって鍵を生成し又は非封印状態にすることが可能であるため、VMM115は信頼する（trust）ことが可能である。該鍵は、特権ドメイン120を信頼するために使用することが可能である。該鍵は、VMMひいては特権ドメイン120及び仮想トラステッドランタイムBIOSを信頼するために使用される証明書の一部とすることが可能である。該鍵は、SSL通信を生成するための証明書の一部とすることが可能である。該鍵は、コンピューティングシステムの製造時に該コンピューティングシステム上に格納することが可能であり、又は該鍵は、ランタイム（実行時）に生成することが可能である。該鍵は、公開鍵又は秘密鍵等の非対称暗号鍵とすることが可能である。
【００１４】
特権ドメイン120内でのBIOS機能125の提供は、「仮想トラステッドランタイムBIOS 125」又はBIOS.vとも呼ばれる「クラウド内BIOS」を実施する。該「クラウド」とは、特権ドメイン120（又は何らかの他のトラステッドドメイン）を称することが可能なものである。該クラウドは、コンピューティングシステム100内、又は該コンピューティングシステム100の外部に配置することが可能である。例えば、仮想トラステッドランタイムBIOS 125機能を含むクラウドは、ネットワークを介してコンピューティングシステム100によりアクセスすることが可能なものである。該ネットワークは、例えば、LAN、WAN、又は世界規模のネットワークとすることが可能である。
【００１５】
実施形態によっては、ウェブベースネットワーク通信機能により提供されるウェブベースインタフェイスは、要求側（例えばドメイン）がネットワークを介して提供側（例えばサーバコンピュータ）からのサービス（例えばBIOSサービス）を要求することを可能にするサービス要求側-サービス提供側モデルの一部である。一例として、ウェブベースインタフェイスは、ウェブサービスインタフェイスとすることが可能である。ウェブサービスとは、ネットワークを介した仮想マシン同士の対話とすることが可能な協働可能なマシン・ツー・マシン（Machine-to-Machine）をサポートするよう設計された機構を称するものである。ウェブサービスインタフェイスは、W3C（World Wide Web Consortium）によって規定されたウェブサービス記述言語（WSDL）により記述されたフォーマットに従うものとすることが可能である。代替的に、ウェブサービスインタフェイスは、ネットワークを介したウェブサービスの実施において構造化情報を交換するためのプロトコルであるSOAP（Simple Object Access Protocol）（これもまたW3Cにより規定されたものである）に従うものとすることが可能である。
【００１６】
更に別の代替策として、ウェブベースインタフェイスは、クライアント及びサーバを含むREST（Representational State Transfer）アーキテクチャに従うものとすることが可能であり、この場合、クライアントはサーバに要求を提示することが可能であり、サーバはクライアントに応答を提供することが可能である。要求及び応答は、リソースの表現の転送を中心に構築される。リソースは、アドレス指定することが可能な任意の一貫した有意義な概念とすることが可能である。リソースの表現は、典型的には、リソースの現在の又は意図された状態を捕捉したドキュメントである。RESTアーキテクチャでは、クライアント（例えば電子装置）により提示された要求は、実施形態によっては、HTTP（Hypertext Transfer Protocol）Get要求とすることが可能である。サーバ（例えばサーバコンピュータ）は、HTTP Get要求に対するHTTP応答を提供することが可能である。HTTPは、セキュアHTTP（HTTPs）を含むことが可能である。
【００１７】
ウェブベースインタフェイスでは、リソース（例えば内部的な仮想トラステッドランタイムBIOS機能又は外部的な仮想トラステッドランタイムBIOS機能）には、要求されたリソースのアドレスを含む仮想トラステッドランタイムBIOSアクセス要求を発行することによりアクセスすることが可能である。該アドレスは、URL（Uniform Resource Locator）、IP（Internet Protocol）アドレス、SMTP（Simple Mail Transfer Protocol）、又は要求されたリソースを一意に識別することができる他の何らかのアドレス等のウェブアドレスとすることが可能である。
【００１８】
ウェブベースインタフェイスで受信されるアドレスを含む仮想トラステッドランタイムBIOSアクセス要求に応じて、ウェブベースネットワーク通信機能は、該要求を、内部的及び外部的な仮想トラステッドランタイムBIOS機能のうちの適当な１つへ送ることが可能である。場合によっては、ウェブベースネットワーク通信機能は、該要求を、内部的及び外部的な仮想トラステッドランタイムBIOS機能の両方へ送ることが可能である。
【００１９】
仮想トラステッドランタイムBIOSとのウェブベースネットワーク通信は、例えば、インターネット上のメッセージ送信のセキュリティを管理するプロトコルであるSSL（Secure Sockets Layer）によってセキュアにされる。該BIOSとの通信が、インターネットで使用されるようなウェブベース通信であるため、セキュア通信チャネル185を生成することにより、仮想トラステッドランタイムBIOSとの通信をSSLを使用してセキュアにすることが可能となる。SSLは、ウェブベース通信をセキュアにするためのTLS（Transport Layer Security）その他の任意のセキュリティプロトコルもまた意味する。
【００２０】
ソケット法は、ネットワーク内のクライアントとサーバプログラムとの間又は同一コンピュータ内の複数のプログラムレイヤ間でデータを往復させるものであり、それ故、例えば仮想トラステッドランタイムBIOSが特権ドメインによりホストされている場合又はネットワーク上の別の場所でホストされている場合には、SSLを使用して該仮想トラステッドランタイムBIOSとの通信をセキュアにすることが可能である。SSLは公開及び秘密鍵暗号化システムを使用し、該システムはディジタル証明書の使用を含むことも可能である。
【００２１】
セキュアな通信チャネルの確立の一例として、ゲストドメイン130等のドメインがそれ自体を識別するために仮想トラステッドランタイムBIOS 125に対して要求を行うことが挙げられる。該仮想トラステッドランタイムBIOS 125は次いで、SSL証明書のコピーを該ドメインへ送信することが可能である。該ドメインは、該ドメインが該SSLを信頼するか否かをチェックし、該ドメインが該証明書を信頼する場合には該ゲストドメインが該仮想トラステッドランタイムBIOSへメッセージを送信する。該ゲストドメインから該仮想トラステッドランタイムBIOSへのメッセージは、SSL公開鍵で暗号化されたセッション鍵シードを含むことが可能である。該仮想トラステッドランタイムBIOS 125は次いで、該ドメインへディジタル署名された肯定応答を送信して、SSL暗号化セッションを開始させることが可能である。以後、該ドメインと該仮想トラステッドランタイムBIOS 125との間で暗号化データを共有することが可能となる。
【００２２】
セキュアな通信チャネルの確立の別の例では、前記ドメインがSSL証明書を含み、該ドメイン自体を識別すべきことが該ドメインに求められ、該ドメインがSSL証明書のコピーを送信することによりこれに応答し、前記仮想トラステッドランタイムBIOSが該証明書を信頼するか否かを判定して該ドメインへメッセージを送る、ということが可能である。該仮想トラステッドランタイムBIOS 125からのメッセージは、SSL公開鍵で暗号化されたセッション鍵を含むことが可能である。該ドメインは、ディジタル署名された肯定応答を該仮想トラステッドランタイムBIOSへ返信してSSL暗号化セッションを開始させることが可能であり、その結果として該ドメインと該仮想トラステッドランタイムBIOSとの間で暗号化データを共有することが可能となる。
【００２３】
図２は、仮想高特権モードの一実施形態によるコンピューティングシステムのブロック図である。コンピューティングシステム200は、プロセッサ210を含むことが可能である。該プロセッサ210は、コンピューティングシステム200のハードウェア205の一部である。該ハードウェアはファームウェア245を含むことが可能であり、該ファームウェア245は、基本入出力システム（BIOS）250及びEFI（Extensible Firmware Interface）255を含むことが可能である。BIOS 250は、物理BIOSと称することが可能である。「物理BIOS」とは、フラッシュメモリその他のプログラマブルリードオンリーメモリ等の不揮発性メモリ内に存在するBIOSコードであって、コンピューティングシステム200の起動時に実行されるべきものを意味する。実施形態によっては、物理BIOSは、縮小版（簡素化）BIOSとすることが可能である。これは、システム管理モードのうちの少なくとも一部が仮想トラステッドランタイムBIOS 225に移されるからである。仮想トラステッドランタイムBIOS 225が実施される場合には、物理BIOS 250は、仮想トラステッドランタイムBIOS 225に置かれた信頼が故に、変更を許可するようアンロック状態に維持することが可能である。前記プロセッサ210は、汎用プロセッサ又は専用プロセッサとすることが可能である。該システムは、ハードウェア構成要素の物理リソースを管理し及び該物理リソースを仮想化するために、仮想マシンモニタVMM215を含むことが可能である。コンピューティングシステム200は、ゲストドメイン230に配設された仮想基本入出力システム（vBIOS）235を含む。該ゲストドメイン230は、Microsoft Windows（登録商標）、Linux（登録商標）、Unix（登録商標）、又はその他のオペレーティングシステム等のオペレーティングシステムを実行することが可能な仮想マシンである。
【００２４】
実施形態によっては、特権ドメイン220は、システム起動時にVMM215によって開始される管理ドメインである「ドメイン0」であり、該ドメイン0は、強化された特権及びセキュリティ機構を有する。ドメイン0により実行されるタスクの例として、ゲストドメインの生成及び設定が挙げられる。ドメイン0及びゲストドメインの各々は、対応する仮想マシンとみなされる。特権ドメイン220は、VMM215から分離させることが可能である。代替的な実施形態では、特権ドメイン220は、VMM215の一部とすることが可能である。かかる代替的な実施形態では、仮想トラステッドランタイムBIOS225はVMM215の一部となる。
【００２５】
セキュアな通信チャネル285は、システム管理要求等の通信をセキュアにするために使用することが可能である。システム管理要求は、ウェブサービスのアプリケーションプログラミングインタフェイス（API）により送信することが可能である。別の実施形態では、システム管理要求は、WMM（Windows Management Instrumentation）ラッパー内にパッケージ化することが可能である。別の実施形態として、リモートプロシージャコール（RPC）を使用してシステム管理要求を仮想システム管理モードへ送ることが挙げられる。
【００２６】
実施形態によっては、クラウド内BIOSは、VMMベースアーキテクチャの以下に示す前提に基づくものとなる：物理BIOSがブートしているメインランタイムエンティティ（VMM215）を該物理BIOSが認識し信頼している、及び該BIOSにより信頼されているVMMが特権ドメインから到来したI/O要求以外の（BIOS機能にアクセスするための）I/O要求を全てトラップしターンオフする能力を有する。実施形態によっては、コンピューティングシステムによりブートされることになるVMMの出所を認証するためにBIOS検証機構を配設することが可能である。かかる検証機構は、権限のあるVMMのみがコンピューティングシステムでブートすることができることを管理者その他のユーザが指定することを可能にする。該検証機構は、コンピューティングシステム内にあるVMMイメージが不正に変更されていないこと及び該VMMが信頼できるものであることを確実にする。物理BIOSは、該VMMイメージを視覚的に検証することが可能であり、及び以前に指定された既知の一組の制御された動作設定を用いて該VMMがブートされることを確実にすることが可能である。
【００２７】
権限のあるVMMがブートされたことを確認した後、物理BIOSは次いで、権限のない又は悪意のあるコードによる破壊を防止するために該物理BIOSが通常実行することになる様々なセキュリティ対策を延期し又は省略することが可能である。例えば、物理BIOSは、BIOSフラッシュレジスタ及び／又はフラッシュメモリの一部をロックしないことを選択することが可能である。
【００２８】
実施形態によっては、仮想トラステッドランタイムBIOS 225は、コンピューティングシステム200内に内部的に配設される。ゲスト仮想マシン又はBIOSサービスへのアクセスを所望する該コンピューティングシステムの他のエンティティの観点からすると、該BIOSサービスを含むクラウドは、該コンピューティングシステムの外部である場所を含むあらゆる場所に位置することが可能なものである。
【００２９】
仮想トラステッドランタイムBIOSを用いた一実施形態では、特権ドメインその他の信頼できるドメイン以外のドメインは、BIOSと通信することはできない。これは、ゲストドメインからBIOSへの全ての通信をその受信及び処理を行うための適当なフィルタにトラップしてから特権ドメインへ経路指定することにより行うことが可能である。特権ドメインにおける仮想高特権モードは、次いで要求を処理してフラッシュ又はBIOSに対する直接的又は間接的なコールを行うことが可能である。この特権ドメインからBIOSへのコールは、次いでその通過がハイパーバイザにより許可される。これは、ハイパーバイザが、ゲストドメインではなく特権ドメインから発せられたコールを検出することができるからである。物理BIOSに対するオープン且つ排他的なアクセスが提供されると、特権ドメインから物理BIOSへの通信がセキュアになり、特権ドメインはBIOSの全ての設定をその実行時に読み書きすることが可能となり、これにより、プロセッサがシステム管理モードに入るという状況をなくすことが可能となる。
【００３０】
仮想トラステッドランタイムBIOSがセキュアであるとしても、該仮想トラステッドランタイムBIOSとの通信がセキュアであるとは限らない。仮想トラステッドランタイムBIOSとのウェブベース通信をセキュアにするために、該仮想トラステッドランタイムBIOSと要求側ドメイン（例えば、ゲストドメイン230）との間でSSLハンドシェイクを実施することが可能である。この例では、仮想トラステッドランタイムBIOSは、ウェブサーバが有しているようなSSL証明書を含むことが可能であり、要求側ドメインは、該証明書を使用して、該要求側ドメインがセキュアウェブサイトに対するウェブブラウザのように動作することにより、該仮想トラステッドランタイムBIOSとの通信をセキュアにすることが可能である。
【００３１】
図３は、一実施形態による仮想トラステッドランタイムBIOSとの通信をセキュアにする方法のフローチャートを示している。ゲストドメイン301と仮想トラステッドランタイムBIOS 302との間のSSL通信を開始するために、ステップ305で、ゲストドメインが「Hello」と言う。次いで、ステップ310で、仮想トラステッドランタイムBIOSが「Hello」と言う。ステップ315で、仮想トラステッドランタイムBIOSがその証明書をゲストドメインに送る。
【００３２】
実施形態によっては、仮想トラステッドランタイムBIOSは、ゲストドメインに公開鍵を送ることが可能である。仮想トラステッドランタイムBIOSは、クライアント証明書を要求することが可能である。
【００３３】
ステップ320で、仮想トラステッドランタイムBIOSは、Helloが完了したことをゲストドメインに通知する。次いでステップ325で、ゲストドメインが鍵交換を行い、すなわち、仮想トラステッドランタイムBIOSにより提供された証明書からの公開鍵を使用してセッション鍵を交換する。セッション鍵は、対称暗号化を構成するために使用され、非対称暗号化を使用して仮想トラステッドランタイムBIOSへ通信される。仮想トラステッドランタイムBIOSが証明書を要求し、ゲストドメインが証明書を有している場合には、該ゲストドメインは証明書を提供することが可能である。
【００３４】
ステップ330で、ゲストドメインは、Cipher Specに変更があること及び該ゲストドメインからの次の通信がセッション鍵を使用して暗号化されることを、仮想トラステッドランタイムBIOSに通知することが可能である。ステップ335で、ゲストドメインは、処理が完了したことを通知し、該通知はセッション鍵を使用して暗号化される。ステップ340で、仮想トラステッドランタイムBIOSは、Cipher Specを変更して、次のメッセージがセッション鍵を使用して暗号化されることを示すことが可能である。ステップ345で、暗号化された完了メッセージが仮想トラステッドランタイムBIOSにより送信される。ステップ350,355で、ゲストドメインと仮想トラステッドランタイムBIOSとの間で暗号化データを送受信することが可能である。
【００３５】
図４は、一実施形態による仮想トラステッドランタイムBIOSとの通信をセキュアにする方法のフローチャートである。該方法は、ステップ405で、仮想トラステッドランタイムBIOSを管理することにより開始することができる。仮想トラステッドランタイムBIOS125は、仮想マシンモニタ115により管理することが可能である。ステップ410で、仮想トラステッドランタイムBIOSに対するセキュアな通信チャネルを確立することが可能である。
【００３６】
セキュアな通信チャネルの確立の一例として、ゲストドメイン130等のドメインが仮想トラステッドランタイムBIOS 125にそれ自体を識別するよう要求を行うことが挙げられる。該仮想トラステッドランタイムBIOS 125は次いで、SSL証明書のコピーを該ドメインへ送ることが可能である。該ドメインは、該SSL証明書を信頼するか否かをチェックし、該ドメインが該証明書を信頼する場合には、該ゲストドメインは仮想トラステッドランタイムBIOSへメッセージを送る。該ゲストドメインから該仮想トラステッドランタイムBIOSへの該メッセージは、SSL公開鍵で暗号化されたセッション鍵シードを含むことが可能である。仮想トラステッドランタイムBIOS 125は次いでディジタル署名された肯定応答を該ドメインへ返信してSSLを開始させることが可能である。次いで該ドメインと該仮想トラステッドランタイムBIOS 125との間で暗号化データを共有することが可能となる。
【００３７】
セキュアな通信を確立する別の一例では、前記ドメインがSSL証明書を含み、該ドメイン自体を識別すべきことが該ドメインに求められ、該ドメインが該SSL証明書のコピーを送信することによりこれに応答し、前記仮想トラステッドランタイムBIOSが該証明書を信頼するか否かを判定して該ドメインへメッセージを送る、ということが可能である。該仮想トラステッドランタイムBIOS 125からのメッセージは、SSL公開鍵で暗号化されたセッション鍵を含むことが可能である。該ドメインは、ディジタル署名された肯定応答を該仮想トラステッドランタイムBIOSへ返信してSSL暗号化セッションを開始させることが可能であり、その結果として該ドメインと該仮想トラステッドランタイムBIOSとの間で暗号化データを共有することが可能となる。
【００３８】
該セキュアな通信チャネルは、例えば、ウェブベース通信プロトコルとすることが可能である。ステップ415において、仮想トラステッドランタイムBIOSとの通信は、SSLを使用したセキュアな通信チャネルを介したものである。
【００３９】
図５は、一実施形態による仮想トラステッドランタイムBIOSとの通信をセキュアにする方法のフローチャートである。該方法は、ステップ502で、ウェブベースのプロトコルを使用して仮想トラステッドランタイムBIOSと通信することにより開始することができる。ステップ505で、仮想トラステッドランタイムBIOSがコンピューティングシステム100の信頼できる構成要素となるように該仮想トラステッドランタイムBIOSを管理することが可能である。仮想トラステッドランタイムBIOS 125は、仮想マシンモニタ115により管理することが可能である。ステップ510で、仮想トラステッドランタイムBIOSとのセキュアな通信チャネルを確立することが可能である。該セキュアな通信チャネルは、例えば、ウェブベース通信プロトコルとすることが可能である。ステップ512で、公開鍵及び秘密鍵を用いたハンドシェイクを使用して通信をセキュアにすることが可能である。仮想トラステッドランタイムBIOSとの通信をセキュアにするために、ステップ515で、SSLを用いたセキュア通信チャネルを仮想トラステッドランタイムBIOSとの通信に使用する。ステップ518で、仮想トラステッドランタイムBIOSは、例えばシステム構成を変更するために、物理BIOSと通信することが可能である。実施形態によっては、仮想トラステッドランタイムBIOSは、コンピューティングシステムから離れた場所に配設することが可能であり、仮想マシンモニタは、該仮想トラステッドランタイムBIOSが配設されている場所にかかわらず該仮想トラステッドランタイムBIOSへと通信を経路指定することが可能である。
【００４０】
図６は、コンピュータ読み取り可能媒体615-616の一実施形態によるコンピューティングシステム600のブロック図である。該コンピュータ読み取り可能媒体615-616は、プロセッサ605により実行された際に、仮想トラステッドランタイムBIOSとの通信をコンピューティングシステムに管理させることができるコードを含むことが可能である。該コンピューティングシステムは、コントローラハブ610及びグラフィクスコントローラ620等のハードウェアを含むことが可能である。該コンピューティングシステムは、ディスプレイ630、キーボード635、マウス640、センサ645、及びその他の装置に接続することが可能である。前記コードはまた、仮想トラステッドランタイムBIOSとセキュアな通信レイヤを確立することが可能である。仮想トラステッドランタイムBIOSとの通信は、SSLを使用したセキュアな通信チャネルを介したものとすることが可能である。
【００４１】
該コンピューティングシステムはまた、実行時に、該コンピューティングシステムから離れた場所に配設された仮想トラステッドランタイムBIOSとの通信を該コンピューティングシステムに行わせるコードを含むことが可能である。該BIOSが該コンピューティングシステムから離れた場所に配設されている場合、該仮想ランタイムBIOSに対して要求を行うドメイン等の構成要素は、該BIOSが離れた場所に配設されていることを意識しないことが可能である。VMMは、要求側の構成要素に通知することなくその要求を経路指定することが可能である。仮想ランタイムBIOSとの通信は、仮想ランタイムBIOSがローカルに配設されていようとリモートに配設されていようとウェブ通信プロトコルによるものとすることが可能である。該構成要素は、例えば公開鍵及び秘密鍵を使用したハンドシェイクを含むセキュアな通信チャネルを確立することが可能である。
【００４２】
他の図面に示すような様々なモジュールは、１つ以上のプロセッサにより実行することができるマシン読み取り可能命令として実施することが可能である。プロセッサは、マイクロプロセッサ、マイクロコントローラ、プロセッサモジュール又はサブシステム、プログラマブル集積回路、プログラマブルゲートアレイ、又はその他の制御又はコンピューティング装置を含むことが可能である。
【００４３】
マシン読み取り可能命令は、マシン読み取り可能又はコンピュータ読み取り可能記憶媒体に格納することが可能であり、該記憶媒体は、１つ以上のコンピュータ読み取り可能又はマシン読み取り可能記憶媒体として実施することが可能である。該記憶媒体は、DRAM又はSRAM、EPROM、EEPROM、及びフラッシュメモリといった半導体メモリデバイス、固定、フロッピー、及びリムーバブルディスク等の磁気ディスク、テープを含む他の磁気媒体、CD又はDVD等の光学媒体、又はその他のタイプの記憶装置を含む、様々な形態の記憶手段を含むことが可能である。上記命令は、１つのコンピュータ読み取り可能又はマシン読み取り可能記憶媒体上に配設されたものとすることが可能であり、代替的には、おそらくは複数のノードを有する大規模なシステム内に分散された複数のコンピュータ読み取り可能又はマシン読み取り可能記憶媒体上に配設されたものとすることが可能である、ということに留意されたい。かかる１つ以上のコンピュータ読み取り可能又はマシン読み取り可能記憶媒体は、物品（又は製品）の一部とすることが可能である。物品又は製品とは、任意の製造された単一の構成要素又は複数の構成要素を称することが可能なものである。１つ以上の記憶媒体は、マシン読み取り可能命令を実行しているマシン内に配設することが可能であり、又はマシン読み取り可能命令をその実行のためにネットワークを介してダウンロードすることができるリモートサイトに配設することが可能である。
【００４４】
上記説明では、本書で開示する対象の理解のために様々な細部について説明したが、本発明の実施形態は、かかる細部の一部又は全部を伴うことなく実施することが可能である。別の実施形態では、上述した細部に対する修正及び変更を含むことが可能である。特許請求の範囲は、かかる修正及び変更を網羅することを意図したものである。
【図１】
0005809362.tif 000002
【図２】
0005809362.tif 000003
【図３】
0005809362.tif 000004
【図４】
0005809362.tif 000005
【図５】
0005809362.tif 000006
【図６】
0005809362.tif 000007