説明

セキュア仮想マシンを提供するためのシステムおよび方法

本発明は、仮想マシンにおけるセキュリティを改善する。現代のセキュアプロセッサの機能を拡張することによって、機器の所有者とプロセッサで実行中の他のユーザの両方からコンピュータ使用のプライバシーが提供され、これはレンタルできるセキュアコンピュータに有利な特徴である。仮想化できるコンピュータをセキュリティ保護するために必要とされるハードウェアの拡張に加えて、このようなプロセッサを配備するためのインフラストラクチャもまた提供される。さらに、所有者、ユーザ、および機器の製造業者の間で様々な関係を確立するためのシグナリングフローが開示される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラウドコンピューティングまたはネットワークベースのコンピューティングの分野に関し、より具体的にはセキュア仮想マシンの分野に関する。
【背景技術】
【0002】
仮想コンピューティングは、クラウドコンピューティングの重要な要素である。インターネットのどこかに位置している仮想コンピュータを借りて、自身のアプリケーションを実行することができる。これは、チープサイクル(cheap cycles)にアクセスするための適切な方法であるが、アプリケーションは他の誰かのコンピュータ上で実行されるので、自身のデータおよびアプリケーションのプライバシーを保証することができないという、特有の恐れもある。今日の汎用プロセッサは、クラウドまたはネットワークベースのコンピュータの所有者(すなわち、インフラストラクチャのプロバイダ)が、ネットワークに接続されたコンピュータをスヌーピングすることから守るためのメカニズムを提供していない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
セキュアな仮想コンピューティングがないことは、クラウドコンピューティングの発達を阻む重大な障害である。アプリケーションをネットワークでホストする利点は、既存のプロセッサの本質的にセキュアでない性質のためにアプリケーションおよび/またはアプリケーションデータが公になるという恐れと比較検討されなければならない。
【0004】
例えば、プライベートアカウント情報を有するウェブサーバのデータベースをクラウド/ネットワークベースのコンピュータ上で実行することは、クラウド/ネットワークベースのコンピュータに物理的にアクセスする敵対者が、例えばJoint Test Action Group(JTAG)接続を使用することによって、メモリバンクにアクセスすること、およびプロセッサ内部のレジスタにアクセスすることができることを意味する。あるいは、攻撃者は、ホストオペレーションシステム、または以下「ゾーンマネージャ」とも呼ぶ仮想マシンマネージャを変更することによって、物理マシンのオペレーションに進入しようとする恐れがある。
【0005】
さらに、ゾーンマネージャの中のソフトウェア侵入者は、マシンのメモリスペースにある他のユーザの他のアプリケーションおよびアプリケーションデータへのアクセスを可能にする恐れがある。特定のタイプの攻撃は、ルートキットを使用するが、これはオペレーティングシステム下で展開され、特別に対象とされたツールなしではオペレーティングシステムに検知できないソフトウェアからなる。
【0006】
仮想コンピュータをユーザにセキュアにレンタルできるようにするには、セキュリティアーキテクチャにおいていくつかの要素が必要である。プロセッサは、セキュアな処理環境を提供する必要があり、検証可能なソフトウェアスタックを用いてセキュアなブート手順を確立する必要があり、プロセッサ内にセキュアな仮想ゾーンを確立するためにコンピュータの所有者(すなわちインフラストラクチャプロバイダ)を介してセキュアなエンドポイントを提供する必要があり、ユーザからアプリケーションをセキュアにロードできる必要がある。同時に所有者は、コンピュータ上で実行されるアプリケーションからいかなる重要なプライベートデータも知ることができてはならない。
【課題を解決するための手段】
【0007】
本発明によるセキュアプロセッサの一般的な実施形態は、プロセッサの秘密鍵を格納するメモリと、ゾーンマネージャのインスタンスと関連付けられる第1の公開/秘密鍵のペアを生成するための第1の生成器と、プロセッサの秘密鍵によって第1の公開/秘密鍵のペアを証明するための第1の認証エージェント(certification agent)と、仮想マシンインスタンス化コマンドをセキュアに受信するための受信機と、仮想マシンのインスタンスと関連付けられ、インスタンス化コマンドに反応して作成される第2の公開/秘密鍵のペアを生成するための第2の生成器と、第1の公開/秘密鍵のペアによって第2の公開/秘密鍵のペアを証明するための第2の認証エージェントとを含む。
【0008】
1つの実施形態では、本発明のプロセッサは、初期ブートプログラムを格納するためのプライベートブートエリア(410)をさらに含む。
【0009】
1つの実施形態では、本発明のプロセッサは、ゾーンマネージャを含むイメージファイルを受信して、その正当性を確認する(validating)ための手段をさらに含む。
【0010】
本発明のプロセッサの1つの実施形態では、仮想マシンインスタンス化コマンドをセキュアに受信するというセキュリティ態様は、PKIを介して取得される証明書に依存する。
【0011】
1つの実施形態では、本発明のプロセッサは、上記複数のセキュア仮想マシンによって使用されるメモリをさらに含み、メモリへのアクセスは、複数のセキュア仮想マシンの様々なマシンに対する様々な暗号鍵によってセキュリティ保護される。
【0012】
1つの実施形態では、本発明のプロセッサは、複数のセキュア仮想マシンのデジタルアクセス許可情報を格納するメモリをさらに含む。
【0013】
本発明によるセキュア仮想マシンをセットアップするための方法の一般的な実施形態は、ゾーンマネージャのイメージを使用してプロセッサをブートすることと、ゾーンマネージャのセッションと関連する第1の公開/秘密鍵のペアをプロセッサで入手することと、プロセッサと関連する秘密鍵を使用してプロセッサで第1の公開/秘密鍵のペアの公開鍵を証明することと、ゾーンマネージャでセキュア仮想マシンインスタンス化コマンドを受信することと、ゾーンマネージャとユーザとの間でセキュア通信チャネルを作成することと、セキュア仮想マシンと関連する第2の公開/秘密鍵のペアを入手することと、第1の公開/秘密鍵のペアの秘密鍵を使用して第2の公開/秘密鍵のペアの公開鍵を証明することとを含む。
【0014】
1つの実施形態では、本発明の方法は、プライベートブートエリアに格納されたプログラムからプロセッサをブートすることをさらに含む。
【0015】
1つの実施形態では、本発明の方法は、上記ゾーンマネージャのイメージを上記プロセッサにダウンロードすること、および上記ゾーンマネージャのイメージの上記ブートすることのための前提条件として、上記プロセッサにおいて上記ゾーンマネージャのイメージに関するバリデーション値を検証することをさらに含む。
【0016】
本発明の方法の1つの実施形態では、上記セキュア通信チャネルのセキュリティ態様は、PKIを介して取得される証明書に依存する。
【0017】
1つの実施形態では、本発明の方法は、プロセッサの共有メモリに格納された特定のコンテンツにアクセスするための暗号鍵を上記セキュア仮想マシンと関連付けることをさらに含む。
【0018】
本発明の方法の1つの実施形態では、セキュア仮想マシンのインスタンス化コマンドは、上記ユーザに関する証明書を含む。特定の実施形態では、上記セキュア通信チャネルのセキュリティ態様は、上記ユーザに関する上記証明書に依存する。
【0019】
別の特定の実施形態では、この方法はさらに、上記ユーザに関する上記証明書を上記ゾーンマネージャに提供することを含む。
【0020】
本発明の方法の1つの実施形態では、セキュア通信チャネルは、公開鍵の暗号化技術によってセキュリティ保護される。
【0021】
1つの実施形態では、本発明の方法はさらに、上記仮想マシンのアクセス許可で機能マトリックスを更新することを含む。
【0022】
1つの実施形態では、本発明の方法はさらに、セキュア仮想マシンにブートプログラムを提供することによってセキュア仮想マシンを準備することと、セキュア仮想マシンを起動させることとを含む。
【0023】
本発明の一実施形態は、サービスプロバイダ、サービスユーザ、ゾーンマネージャ、仮想マシンのインスタンス化の間で適切な信頼関係を賢明に確立してこれらを組み合わせることによって、セキュア仮想マシン環境を取得することができるという見識に基づいている。本発明の一実施形態はさらに、こうした信頼関係を確立する際にサービスユーザ、サービスプロバイダ、およびハードウェア製造業者がそれぞれ役割を有するという見識に基づいている。以下、サービスユーザを「ユーザ」と呼ぶ場合があり、サービスプロバイダを「所有者」と呼ぶ場合があり、ハードウェア製造業者を「製造業者」と呼ぶ場合がある。
【0024】
本明細書に記載する信頼関係は、とりわけ公開鍵暗号化技術(PKC)によって確立でき、それによって暗号を使用してセキュリティ保護されたデータトンネルが作成され、様々な行為者の公開鍵が適切な認証局によって認証されることを、デジタル認証およびセキュア通信の当業者は、容易に理解するであろう。信頼関係の確立についてさらに、公開鍵暗号化技術に関して説明するが、いかなるPKCの特定の実施の詳細に本発明を限定するものではない。
【0025】
特定の実施形態では、サービスプロバイダとハードウェアプラットフォーム上にインスタンス化されたゾーンマネージャとの間で第1の信頼関係が確立される。ハードウェアプラットフォームは、秘密鍵を保持し、その対の公開鍵は、ハードウェア製造業者によって認証される。ゾーンマネージャは、秘密鍵を保持し、その対の公開鍵は、同じくハードウェアプラットフォームによって認証される。ユーザとサービスプロバイダとの間に第2の信頼関係が確立され、その信用証明書は、いかなる信頼される手段によっても確立され、通常の方法でいかなる信頼される機関によっても認証される。ユーザとゾーンマネージャとの間に、第3の信頼関係が確立される。ユーザとサービスプロバイダから受信されるリクエストに応じてゾーンマネージャによってインスタンス化された仮想マシンとの間に、第4の信頼関係が確立される。この仮想マシンのインスタンスは秘密鍵を保持し、その対の公開鍵はゾーンマネージャによって認証される。ハードウェアプラットフォーム、ゾーンマネージャ、および仮想マシンのインスタンス化の信頼性(authenticity)は、すべてハードウェア製造業者からの表明に戻すことができ、これらはそれぞれの証明書チェーンを通じて信頼されると仮定される。
【0026】
本発明の一実施形態は、ハードウェア保護リングの概念は、セキュアなハードウェアプラットフォーム内部の周辺装置における各仮想マシンの機能を表す2次元マトリックスを提供することによって、複数の仮想マシンのインスタンス化をホストするハードウェアに有利に拡張できるという見識に基づいている。このように仮想化は、バイナリ実行のいかなる変換も取り入れることなく行うことができる。これは、ランタイム環境内部の実行コード全体にわたるチェックサムを検証する必要性を考えると重要な利点である。
【0027】
次に本発明の諸実施形態に従った装置および/または方法の一部の実施形態について、単に一例として、添付の図面を参照して説明する。
【図面の簡単な説明】
【0028】
【図1】本発明による方法の概略図である。
【図2】本発明による方法に関連するそれぞれの行為者間の様々な信頼関係を示す図である。
【図3a】本発明による方法の一実施形態における典型的なメッセージフローを示す図である。
【図3b】本発明による方法の一実施形態における典型的なメッセージフローを示す図である。
【図4】本発明によるセキュアなプロセッサの一実施形態を概略的に示す図である。
【図5】仮想マシンの例示的機能マトリックスの一例を示す図である。
【発明を実施するための形態】
【0029】
プロセッサの現在のリングまたはゾーンをASIC内部の周辺装置に反映させるためにASIC内部バスへ拡張して、セキュリティ保護されていないコンピューティングリングもしくはゾーンとセキュリティ保護されたコンピューティングリングもしくはゾーンとの間でプロセッサのタイムスライシングを組み合わせることによって、高パフォーマンスのセキュアコンピューティングが達成可能である。
【0030】
「ASIC」という用語は、本明細書では、一定の実施形態でASIC技術によって実装することができるセキュアプロセッサを指すように使用されるが、上記の技術への限定を意味するものではない。
【0031】
プロセッサがそのセキュアリングまたはゾーンにあるとき、セキュリティ周辺装置はアクティブである。プロセッサがそのセキュリティ保護されていないリングまたはゾーンにある場合、セキュリティ周辺装置は応答しない。ゾーン間の切り換え時に、プロセッサはゾーン間で渡されるパラメータを検証する。このような組合せは、Trustzoneを備えたARMの1176プロセッサで利用できる。本発明は、とりわけ、ARM1176/Trustzoneアーキテクチャの要素と同様の要素を備えるが、仮想化を行うために適合されたさらなる特徴を有するASICとして具体化することができる。
【0032】
本発明の一実施形態によれば、仮想高信頼コンピューティング基盤(virtual Trusted Computing Base、vTCB)が提供され、所有者および製造業者がスヌーピングする、ハイジャックする、またはvTCB上の演算を変えることを防ぐ方法でvTCBを借りることを可能にするインフラストラクチャと併せて、プロセッサに埋め込まれる。有利には、保護リング、ACL用の機能に基づくラティス、セキュアで高性能なコンピューティング、および仮想化技術を提供する。
【0033】
3つの役割、すなわち所有者220、ユーザ210、および製造業者230が、システムの動作に関連していると仮定する。所有者は、vTCBを所有して仮想コンピューティングサービスを提供し、ユーザは、vTCB上でセキュアに実行する必要があるアプリケ−ションを提供し、製造業者は、vTCBを埋め込むセキュアASICを作製する。
【0034】
図2は、このように定義された3つの役割の間の様々な信頼関係を示す。
【0035】
さらに、2つの追加エンティティ、すなわちセキュアゾーンマネージャ240およびセキュア仮想マシン250を認める。セキュアゾーンマネージャ240およびセキュア仮想マシン250は共に、vTCBの一部である。ここではセキュアゾーンマネージャ240は、セキュア仮想マシンの保守を担当し、製造業者230によってインストールされる、セキュアASIC内部で実行される信頼されるソフトウェアコンポーネントである。セキュア仮想マシン250は、本質的にプロセッサの「一部(slice)」である。
【0036】
上記のエンティティに関連するいくつかの信頼要件について、次により詳細に記載する。本発明の諸実施形態は、記載する信頼要件の一部または全部に対処することができる。
【0037】
第1の信頼要件は、スヌーピングされることが不可能なセキュア仮想マシン250を確立するために適切なセキュリティ特性を有するプロセッサを製造業者230が供給するということをユーザ210が信頼する必要があることである。ユーザ210は単に、プロセッサの証明書上の署名をチェックすることによって、この効果への表明が実際に製造業者230から発信されたことを検証することができる。vTCBのセキュリティ機能(セキュアゾーンマネージャおよびセキュア仮想マシン)に対するユーザの信頼は、製造業者に対するこの信頼から得られる。
【0038】
第2の信頼要件は所有者220が、製造業者230は正確な使用レポートを生成するように構成されたvTCBを供給すると信頼する必要があるということである。所有者220は単に、プロセッサの証明書上の署名をチェックすることによって、この効果への表明が実際に製造業者230から発信されたことを検証することができる。vTCBのセキュリティ機能(セキュアゾーンマネージャおよびセキュア仮想マシン)に対する所有者の信頼は、ゾーンマネージャの秘密鍵を使用することに基づいており、これが本物であることの証明はまた、製造業者にさかのぼる一連の証明書によって保証される。ゆえに、vTCBに対する所有者の信頼は、製造業者に対するこの信頼から得られる。
【0039】
第3の信頼要件は、セキュアゾーンマネージャ240が適切な所有者220と通信し、デバイスの実際の所有者の要求に基づいてのみ動作すると信頼する必要があることである。
【0040】
第4の信頼要件は、ユーザ210が所有者220と通信すると信頼する必要があること、逆もまた同様であることである。この信頼関係は、アカウンティング、課金、および追跡の目的で所有者220に必要とされるものであり、ユーザ210については、正当な所有者と通信することをわかっていることが重要である。この信頼要件は、一般にはPKIを介した証明書によって対応される。
【0041】
第5の信頼要件は、セキュアゾーンマネージャ240が、所有者220によって指示される適切なユーザ210と通信することを信頼する必要があることである。この要件は、仮想マシンのインスタンス化コマンドの引数としてユーザの証明書をセキュアゾーンマネージャに提供することによって対応することができる。
【0042】
第6の信頼要件は、セキュア仮想マシン250が、それ自体のセキュアなブート手順について、信頼できるセキュアゾーンマネージャ240によって作成されることを信頼する必要があることである。これは、新しく作成されたセキュアゾーンに適切なブートソフトウェアおよび鍵材料をロードしたデバイスの製造業者230に対する暗黙の信頼である。
【0043】
第7の信頼要件は、ユーザ210およびそのセキュア仮想マシン250が、相互に互いを信頼する必要があること、セキュア仮想マシン250が適切なユーザ210と通信することを理解する必要があること、ユーザ210が真のセキュア仮想マシン250と通信することを表明する必要があることである。この要件は、第1の信頼要件と似ており、ユーザ部分については第1の信頼要件から得られ、セキュア仮想マシン部分については第5の信頼要件から得られる。
【0044】
便宜上図3aと図3bに分けているが、本発明による方法の一実施形態におけるメッセージフローを概略的に示す。図4は、本発明によるセキュアなプロセッサの一実施形態の要素を概略的に示す図である。
【0045】
セキュアゾーンマネージャ420は、セキュアASICのプライマリブートシステムによってロードされる。このブートシステムは、製造業者が提供するプライマリブートシステム410と、ASIC秘密鍵418とからなる。プライマリブートは、第2ブートをロードすることができ、第2ブートを介してセキュアゾーンマネージャのイメージ402がロード可能である、またはプライマリブートはセキュアゾーンマネージャ402を直接ロードすることができ、どちらのシナリオとも、図3(aおよびb)の抽象メッセージ301および302によって例示される。様々な所有者が様々な特別仕様のセキュアゾーンマネージャを使用することを望む可能性があるが、イメージは、製造業者によって生成されることが好ましい。これにより、信頼性の負担は製造業者にかかる。
【0046】
セキュアゾーンマネージャ420が起動するとき、セキュアゾーンマネージャ420は、図3(aおよびb)ではメッセージフロー303として、図4ではインタフェース440として概略的に示す、所有者へのセキュア通信チャネルを確立する。この相互に認証されたチャネル440は、所有者(図示せず)とセキュアゾーンマネージャ420との間の信頼関係を表す。このチャネル440の主な使用法は、セキュア仮想マシン430の管理用のセキュア通信パスを確立することである。さらに、セキュアゾーンマネージャ420は、所有者(図示せず)に使用レポートを送信することができる。
【0047】
ユーザ/所有者304と所有者/セキュアゾーンマネージャ303/440の両方のチャネルが確立されると、通信チャネルはユーザによって使用されて、セキュアゾーンマネージャ420を介して新しいセキュア仮想マシン430の確立を要求する305。ユーザが所有者に呼びかけると、所有者はセキュア仮想マシン要求をvTCB400の1つに発送する306。ユーザは、セキュアゾーンマネージャの証明書404を信頼してセキュアゾーンマネージャ自体を認証することによって、適切なvTCBと通信することを確認することができる。さらに、ユーザは、セキュアゾーンマネージャ420によって署名された、新しく作成されたセキュア仮想マシン430の証明書を受信する308ことができる。
【0048】
ユーザのためにセキュア仮想マシン430が作成された後、ユーザのアプリケーションをセキュアにブートする必要がある。セキュアゾーンマネージャ420は、したがって、ユーザがそのアプリケーションを用いてそのセキュア仮想マシン430をセキュアにブートできるようにするインフラストラクチャを提供する。所有者は、この手順の一部ではなく、したがって干渉する方法がないことに留意されたい。ユーザ−ゾーンマネージャチャネル450のエンドツーエンドのセキュアリングは、いかなる潜在的な中間者攻撃も効果的に防ぐ。
【0049】
新しいセキュア仮想マシン430は、次にユーザの選択したプログラムをロードし311、セキュアな方法でアプリケーションをブートする。新しいセキュア仮想マシン430が秘密鍵432を受信するとき、ユーザと直接にセキュア通信チャネル470をセットアップすることができる312。
【0050】
本発明によるセキュアで、仮想化できる処理環境の一実施形態は、単一マシンのセキュアプロセッサARM1176+Trustzoneに基づいている。この実施形態は、複数のこのようなセキュア処理マシンを支援する。この実施形態は、図4に概略的に示している。
【0051】
第1に、Trustzoneアーキテクチャで複数のセキュア仮想マシンを支援するために、単一のセキュアアドレス変更子ビットの代わりに、nビット幅のバスが設けられる。各セキュア仮想マシンは、以下、セキュアアドレス変更子バス(Secure Address Modifier Bus、SAMB)と呼ばれる、このアドレス変更子のバス上で特定のバイナリ表現に入力される。セキュアASIC内部の周辺装置は、それらのデバイスへのアクセスを有効または無効にするとき、SAMBの状態を考慮に入れる。
【0052】
セキュアASIC内部の周辺装置上のセキュア仮想マシンの機能を表す2次元マトリックスは、ASIC内部のバス上のSAMBと関連付けられる。4つの周辺機器および4つの仮想マシンを扱う、このようなマトリックスの例示的表現を図5に示す。セキュアASICの各周辺装置は列で表され、セキュア仮想マシンのそれぞれに行が与えられる。特定のセキュア仮想マシンの周辺装置への読み取りおよび/または書き込みアクセスを可能にするために、マトリックス中の関連ビットが設定される。
【0053】
2つの特定の行は、セキュリティ保護されていないマシンとスーパーセキュア仮想マシンという、機能マトリックスに定義することができる。これらのゾーンは共に、それぞれセキュア周辺アクセスのないマシンとセキュア周辺アクセスのあるマシンという、標準的なTrustzoneアーキテクチャにおけるその等価状態と全く同一である。セキュリティ保護されていないマシンは、一般に、セキュアゾーンのアドレス変更子バスにそのバイナリ表現で表わされ、行ゼロに位置している。1つの好ましい実施形態では、スーパーセキュア仮想マシンは、SAMBで変更子01*1を使用する。一般に、ただ1つのスーパーセキュア仮想マシンのみが、セキュア機能マトリックスへの書込アクセス権を有するべきである。
【0054】
セキュリティ保護されていない処理マシンは、いかなる特定のセキュリティも必要としていない、またいかなる特定のセキュリティも確保することがないタスクを実行するためのものである。
【0055】
スーパーセキュア仮想マシンは、他のセキュア仮想マシンを管理するためのものである。スーパーセキュア仮想マシンによって、新しい行が初期設定されることが可能であり、新しく形成された通常のセキュアゾーンに新しいアプリケーションがインストールされることが可能である。またスーパーセキュア仮想マシンは、通常のセキュア仮想マシンを停止し、削除することもできる。
【0056】
様々なセキュリティ保護されたセキュア仮想マシンとセキュリティ保護されていないキュア仮想マシンとの間で情報が漏れないことを保証するために、各セキュア仮想マシンは、個々のメモリ暗号鍵と関連付けることができる。メモリコントローラは、メモリコントローラデバイス内に、またはメモリコントローラ独自の鍵で保護された通常のメモリ内に、このメモリの鍵を格納する。SAMB上のセキュア変更子に基づいて、メモリコントローラは、メイン外部メモリに送信される、またはメイン外部メモリから取り出されるデータを暗号化することができる鍵を選択する。
【0057】
セキュアゾーンマネージャは、実行されるゲストオペレーティングシステムのバイナリ変換に依存しない、準仮想化の仮想マシンマネージャである。これは、ユーザが確実に、実行中のイメージ全体にわたってMD5チェックサムを計算して、イメージが変更されていないことを確認できるようにする。さらに、セキュアゾーンマネージャは、プロセッサおよびマシンのリソースを仮想化するためのすべてのメカニズムを、プロセッサで実行中のすべてのゲストオペレーティングシステムに提供する。
【0058】
図2に示すように、呼フローのエンティティは、所有者(機器の持ち主)、セキュアゾーンマネージャ、セキュア仮想マシン、およびユーザ(すなわち借り手)である。また、製造業者の役割を認識する必要がある。
【0059】
所有者、製造業者、およびユーザは、秘密鍵と公開鍵を有し、公開鍵は、署名された証明書の一部である。それぞれの秘密鍵は、
【数1】

および
【数2】

に指定される。それぞれの公開鍵は、Kown、Kmfr、およびKuserに指定される。
【0060】
公開鍵をそれぞれ所有者、製造業者、およびユーザと関連付ける証明書は、指定されるそれぞれの各機関A(.)によって署名され、公開鍵基盤(PKI)の一部であることが可能であり、
【数3】

【数4】

および
【数5】

となる。ユーザの証明書は、ユーザのアドレスを含み、ゾーンマネージャおよび/またはセキュア仮想マシンのインスタンス化を可能にして信頼できるアドレスを使用してユーザと交信することが好ましい。
【0061】
ASICが、例えばヒューズアレイの中、またはASIC上の不揮発性RAMの中で符号化されたASIC独自の秘密鍵418、
【数6】

を備えていると仮定し、公開鍵Kasicが、これと結合される。
【0062】
製造業者によって署名された証明書が、ASICの秘密鍵418と関連付けられる。ASICは、最初のブートプログラム用のプライベートブートエリア410を有すると仮定する。このブートプログラムのセキュアハッシュが、ASICの証明書に埋め込まれる:
【数7】

製造業者は、さらなる方法で信頼できるブートプログラムのセキュアハッシュを利用することができる。
【0063】
埋め込まれたブートプログラムをブートすると、ASICは、典型的には所有者から、ASIC−所有者チャネル460を介してゾーンマネージャのイメージ402を受信するように構成される。このゾーンマネージャのイメージ402は、製造業者によって全体または一部を所有者の仕様に作成されることが可能である。ASICは、MD5のようなハッシングアルゴリズムによって、ゾーンマネージャのイメージについてセキュアハッシュHを計算し412、これを製造業者によって提供され、認証されるハッシュ
【数8】

と比較するように構成される。ゾーンマネージャのイメージ420は、確認が成功する場合のみブートされる。
【0064】
第2のイメージ402は、所有者の証明書
【数9】

を含む。
【0065】
起動されるとき、ゾーンマネージャ420は、ゾーンマネージャの開始と、プロセッサがリセットされ、リブートされる時間との間の時間として定義されたセッションのために、公開/秘密鍵のペア
【数10】

を作成し414、ゾーンマネージャの終了を示す。公開鍵は、ASIC鍵418を用いて認証され416、証明書404
【数11】

は、所有者に入手できるようにされる。同じく秘密鍵426は、ゾーンマネージャ420が作成するインスタンス430に対して証明書424に署名できるようにする。
【0066】
ユーザは、セキュア仮想マシン430を所有者から要求することによってこれを取得することができる。このためユーザは、例えばPKIを介して取得された証明書を信頼して、まず所有者とユーザ(図示せず)との間にセキュアな相互認証チャネルを確立する。確立されるとユーザは、「セキュア仮想マシンを生成」メッセージを所有者に送信する。所有者は、適切な(例えば軽負荷の)セキュアプロセッサのゾーンマネージャ420を選択し、要求をゾーンマネージャ420に転送する。
【0067】
所有者の「セキュア仮想マシンを生成」メッセージは、ユーザの証明書C(ユーザ、...)を添付されることが可能である。この証明書は、まずセキュアゾーンマネージャ420とユーザとの間にセキュア通信チャネル450を確立するために使用され、後にこの証明書は、新しく作成されるセキュア仮想マシン430によって使用されてユーザへのセキュアチャネル470を確立する。ゾーンマネージャとユーザとの間のセキュアチャネル450は、ユーザがゾーンマネージャを信用することができるとユーザに断言するために使用される。
【0068】
「セキュア仮想マシンを生成」メッセージを受信すると、ゾーンマネージャ420はまず、新しいゾーンの公開/秘密鍵のペア
【数12】

を作成し422、公開鍵を証明する424。次いでゾーンマネージャは、それまでに確立された通信チャネル450を通じて、証明書
【数13】

をユーザに送信する。
【0069】
最後に、ゾーンマネージャ420は、新しいセキュア仮想マシン430を準備する。ゾーンマネージャ420は、前述のセキュリティ機能マトリックスに項目を割り当て、メモリコントローラに適切なセッションキーを与え、新しいセキュア仮想マシン430にブートプログラムをロードする。ユーザの証明書
【数14】

は、パラメータとしてセキュア仮想マシンのブートローダに渡される。このブートローダは、ゾーンマネージャ420によってあらかじめインストールされている(したがって信頼されている)。
【0070】
仮想マシン430は、ゾーンマネージャ420を介して実行の準備をされ、最終的にゾーンマネージャ420は、新しいセキュア仮想マシン430を起動させる。
【0071】
新しいセキュア仮想マシン430が起動するとき、新しいセキュア仮想マシン430はゾーンマネージャ420だけが潜在的に動作を中断させることができるセキュア環境で動作する。製造業者は信頼できると仮定するので、ゾーンマネージャ420はそうすることができる。新しいセキュア仮想マシン430の最初のロードは、ユーザのネットワークアドレスを与えられたセキュアブートローダであることに留意されたい。
【0072】
セキュア仮想マシン430が最初に行うことは、新しいゾーンとユーザとの間にセキュア通信チャネル470を確立することである。新しいゾーンは、証明書に記録されたネットワークアドレスを含む、
【数15】

を使用してセッションを確立し、一方ユーザは、
【数16】

を使用してセッションを確立する。
【数17】

が、「create secure virtual machine」メッセージ中に所有者によってユーザに返された。
【0073】
ユーザと新しく作成されたセキュア仮想マシン430との間にセキュア通信チャネル470が確立されると、ユーザはアプリケーションを新しいセキュア仮想マシン430にアップロードし、そのアプリケーションを起動する。ブートローダは、ユーザの証明書
【数18】

を新しくロードされたアプリケーションに渡して、アプリケーションが現在ユーザのアプリケーションを実行しているセキュア仮想マシンとユーザとの間にセキュア通信チャネルを再確立できるようにする。セキュア仮想マシン430は、ここで動作モードを起動する。
【0074】
本発明の一実施形態では、稼働中のゾーンマネージャ420はおよび所有者は、セキュア仮想マシン430の使用レポート313を定期的に交換する。こうしたレポートは、例えばユーザのハードウェア使用に関する請求記録を準備するために、所有者によって使用されることが可能である。さらに、ユーザは、セキュア通信チャネル(450、470)を介してゾーンマネージャ420に管理要求314を送信することができる。こうした要求は、セキュア仮想マシン430に費やされるサイクル数を増減する、またはセキュア仮想マシン430を完全に停止して再開する動作に関するものであることが可能である。このような1つの要求316は、セキュア仮想マシン430全体を停止することに関し、終了されるセキュア仮想マシン430に関するすべての状態情報をクリーンアップする場合がある。この結果を達成するための効果的な方法は、ゾーンのセキュアメモリスライスに使用されるセッションキーをクリアすることである。
【0075】
本発明の一実施形態では、セキュア仮想マシン430は、そのセキュア仮想マシンのデータのプライバシーを保証するためにその特定のセキュア仮想マシン430に割り当てられたメモリ暗号化鍵を使用して、メモリコントローラ480を介して共有メモリ490にアクセスする。
【0076】
説明および図面は、本発明の原理を示すにすぎない。したがって、本明細書には明示的に記載または表示されていないが、本発明の原理を具体化し、本発明の趣旨および範囲の内に含まれる様々な仕組みを当業者は考案することができるであろうと理解される。さらに、本明細書に列挙するすべての例は、原則として、発明者により当技術分野の促進をもたらす本発明の原理および概念を理解する際に読者の助けとなるように、明らかに教育上の目的のためにすぎないものとし、このような具体的に列挙した例および条件に限定しないものであると解釈されたい。さらに、本発明の原理、態様、および実施形態、ならびにその特定の例を列挙する本明細書中のあらゆる記載は、その均等物を包むものとする。
【0077】
「プロセッサ」と呼ぶいかなる機能ブロックも含む、図に示した様々な要素の機能は、専用のハードウェア、ならびに適切なソフトウェアと関連してソフトウェアを実行することができるハードウェアを使用することによって提供されることが可能である。プロセッサによって提供されるとき、機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、またはその一部を共有することができる複数の個々のプロセッサによって、提供されることが可能である。さらに、「プロセッサ」または「コントローラ」という用語の明示的な使用は、ソフトウェアを実行することができるハードウェアを排他的に指すと解釈されるべきではなく、暗黙的に、デジタル信号プロセッサ(DSP)のハードウェア、ネットワークプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ソフトウェアを格納するリードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、および不揮発記憶装置を含む場合があるが、それらには限定されない。また、従来型および/またはカスタム型の他のハードウェアを含む場合もある。同様に、図に示したいかなるスイッチも、概念上にすぎない。これらの機能は、プログラム論理の動作によって、専用論理によって、プログラム制御と専用論理の相互作用によって、または手動でも実行されることが可能であり、特定の技術は、状況からより具体的に理解されるように実行者によって選択可能である。

【特許請求の範囲】
【請求項1】
所有者の要求で作成される複数のセキュア仮想マシンをホストするためのプロセッサであって、
プロセッサの秘密鍵を格納するメモリと、
ゾーンマネージャのインスタンスと関連付けられる第1の公開/秘密鍵のペアを生成するための第1の生成器と、
前記プロセッサの秘密鍵によって前記第1の公開/秘密鍵のペアを証明するための第1の認証エージェントと、
前記所有者から仮想マシンインスタンス化コマンドをセキュアに受信する受信機と、
前記インスタンス化コマンドに応えて作成された、前記複数の仮想マシンのうちの1つの仮想マシンのインスタンスと関連付けられる第2の公開/秘密鍵のペアを生成するための第2の生成器と、
前記第1の公開/秘密鍵のペアによって前記第2の公開/秘密鍵のペアを証明するための第2の認証エージェントと
を含む、プロセッサ。
【請求項2】
初期ブートプログラムを格納するための、プライベートブートエリア(410)をさらに含む、請求項1に記載のプロセッサ。
【請求項3】
前記ゾーンマネージャを含むイメージファイルを受信して正当性を確認するための手段をさらに含む、請求項1または2に記載のプロセッサ。
【請求項4】
前記複数のセキュア仮想マシンによって使用されるメモリをさらに含み、前記メモリへのアクセスが、前記複数のセキュア仮想マシンのセキュア仮想マシン毎に異なる暗号鍵によってセキュリティ保護される、請求項1から3のいずれかに記載のプロセッサ。
【請求項5】
前記複数のセキュア仮想マシンのデジタルアクセス許可情報を格納するメモリをさらに含む、請求項1から4のいずれかに記載のプロセッサ。
【請求項6】
所有者の要求でプロセッサ内のセキュア仮想マシンをセットアップするための方法であって、
ゾーンマネージャのイメージを使用して前記プロセッサをブートすることと、
前記プロセッサでゾーンマネージャのセッションと関連する第1の公開/秘密鍵のペアを入手することと、
前記第1の公開/秘密鍵のペアの公開鍵を前記プロセッサで前記プロセッサと関連する秘密鍵を使用して証明することと、
前記ゾーンマネージャでセキュア仮想マシンインスタンス化コマンドを前記所有者から受信することと、
前記ゾーンマネージャと前記ユーザとの間でセキュア通信チャネルを作成することと、
セキュア仮想マシンと関連する第2の公開/秘密鍵のペアを入手することと、
前記第1の公開/秘密鍵のペアの秘密鍵を使用して前記第2の公開/秘密鍵のペアの公開鍵を証明することと
を含む、方法。
【請求項7】
プライベートブートエリアに格納されたプログラムからプロセッサをブートすることをさらに含む、請求項6に記載の方法。
【請求項8】
前記ゾーンマネージャのイメージを前記プロセッサにダウンロードすることと、前記プロセッサで、前記ゾーンマネージャのイメージの前記ブートすることのための前提条件として、前記ゾーンマネージャのイメージに関するバリデーション値を検証することとをさらに含む、請求項6に記載の方法。
【請求項9】
前記プロセッサの共有メモリに格納された特定のコンテンツにアクセスするための暗号鍵を、前記セキュア仮想マシンと関連付けることをさらに含む、請求項6に記載の方法。
【請求項10】
前記セキュア仮想マシンのインスタンス化コマンドが前記ユーザに関する証明書を含む、請求項6に記載の方法。
【請求項11】
前記セキュア通信チャネルのセキュリティ面が、前記ユーザに関する前記証明書に依存する、請求項10に記載の方法。
【請求項12】
前記ユーザに関する前記証明書を前記ゾーンマネージャに提供することをさらに含む、請求項10または11に記載の方法。
【請求項13】
前記セキュア通信チャネルが、公開鍵暗号化技術を用いてセキュリティ保護される、請求項10または11に記載の方法。
【請求項14】
前記仮想マシンのアクセス許可で機能マトリックスを更新することをさらに含む、請求項6から13のいずれかに記載の方法。
【請求項15】
前記セキュア仮想マシンにブートプログラムを提供することによって、前記セキュア仮想マシンを準備することと、
前記セキュア仮想マシンを起動することと
をさらに含む、請求項6から14のいずれかに記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2012−533128(P2012−533128A)
【公表日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2012−520055(P2012−520055)
【出願日】平成22年7月16日(2010.7.16)
【国際出願番号】PCT/EP2010/060341
【国際公開番号】WO2011/006997
【国際公開日】平成23年1月20日(2011.1.20)
【出願人】(391030332)アルカテル−ルーセント (1,149)