IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7445358セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
<>
  • 特許-セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール 図1
  • 特許-セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール 図2
  • 特許-セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール 図3
  • 特許-セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール 図4
  • 特許-セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール 図5
  • 特許-セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-28
(45)【発行日】2024-03-07
(54)【発明の名称】セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
(51)【国際特許分類】
   G06F 21/62 20130101AFI20240229BHJP
   G06F 9/455 20180101ALI20240229BHJP
   H04L 9/08 20060101ALI20240229BHJP
【FI】
G06F21/62
G06F9/455 150
H04L9/08 B
H04L9/08 E
【請求項の数】 20
(21)【出願番号】P 2021549838
(86)(22)【出願日】2020-02-27
(65)【公表番号】
(43)【公表日】2022-04-26
(86)【国際出願番号】 EP2020055098
(87)【国際公開番号】W WO2020182477
(87)【国際公開日】2020-09-17
【審査請求日】2022-07-25
(31)【優先権主張番号】16/296,478
(32)【優先日】2019-03-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ブエントゲン、ラインハルト
(72)【発明者】
【氏名】ブラッドベリー、ジョナサン
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2000-010929(JP,A)
【文献】特表2014-505924(JP,A)
【文献】米国特許出願公開第2014/0208123(US,A1)
【文献】米国特許出願公開第2015/0178504(US,A1)
【文献】米国特許出願公開第2016/0132345(US,A1)
【文献】特表2016-523421(JP,A)
【文献】特表2016-511872(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 9/455
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
コンピュータ実施方法であって、
コンピューティング・システムのセキュア・インタフェース・コントロールによってメタデータを取得することであって、前記セキュア・インタフェース・コントロールが、ハイパーバイザに通信可能に結合され、前記ハイパーバイザが、1つまたは複数のゲストを管理し、前記メタデータが、所有者によって開始され前記ハイパーバイザによって管理されるべきセキュア・ゲストのイメージに暗号でリンクされる前記セキュア・ゲストのメタデータであり、前記メタデータが複数のコントロールを含み、前記複数のコントロールの各コントロールは、前記イメージより生成されたセキュア・ゲストが、各コントロールに対応する特定の要求への応答を取得することを許可されるかどうかを前記セキュア・インタフェース・コントロールに示し、各機能の個別の制御を記述する、前記取得することと、
前記セキュア・インタフェース・コントロールによって、前記ハイパーバイザを介して、前記イメージより生成された前記セキュア・ゲストから、前記セキュア・ゲストの実行時中、要求を傍受することと、
前記セキュア・インタフェース・コントロールによって、前記複数のコントロールに基づいて、前記セキュア・ゲストが前記特定の要求への応答としての前記要求への応答を取得することを許可されるかどうかを決定することと、
前記セキュア・ゲストが前記応答を取得することを許可されるという決定に基づいて、前記セキュア・インタフェース・コントロールによって、前記コンピューティング・システム内で、前記要求の履行を開始することと、
前記セキュア・ゲストが前記応答を取得することを許可されないという決定に基づいて、前記セキュア・インタフェース・コントロールによって、前記要求を無視することと
を含むコンピュータ実施方法。
【請求項2】
前記セキュア・ゲストが前記応答を取得することを許可され、前記コンピュータ実施方法が、
前記セキュア・インタフェース・コントロールによって、前記要求への前記応答を取得することと、
前記セキュア・インタフェース・コントロールによって、前記応答を前記セキュア・ゲストに送信することと
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
コンピュータ実施方法であって、
コンピューティング・システムのセキュア・インタフェース・コントロールによってメタデータを取得することであって、前記セキュア・インタフェース・コントロールが、ハイパーバイザに通信可能に結合され、前記ハイパーバイザが、1つまたは複数のゲストを管理し、前記メタデータが、所有者によって開始され前記ハイパーバイザによって管理されるべきセキュア・ゲストのイメージにリンクされ、前記メタデータが1つまたは複数のコントロールを含み、前記1つまたは複数のコントロールの各コントロールは、前記イメージにより生成されたセキュア・ゲストが特定の要求への応答を取得することを許可されるかどうかを前記セキュア・インタフェース・コントロールに示す、前記取得することと、
前記セキュア・インタフェース・コントロールによって、前記ハイパーバイザを介して、前記イメージにより生成された前記セキュア・ゲストから、前記セキュア・ゲストの実行時中、要求を傍受することと、
前記セキュア・インタフェース・コントロールによって、前記1つまたは複数のコントロールに基づいて、前記セキュア・ゲストが前記要求への応答を取得することを許可されるかどうかを決定することと、
前記セキュア・ゲストが前記応答を取得することを許可されるという決定に基づいて、前記セキュア・インタフェース・コントロールによって、前記コンピューティング・システム内で、前記要求の履行を開始することと、
前記セキュア・ゲストが前記応答を取得することを許可されないという決定に基づいて、前記セキュア・インタフェース・コントロールによって、前記要求を無視することと
を含み、前記メタデータを取得することが、
前記セキュア・インタフェース・コントロールによって、セキュア・ゲストのイメージにリンクされた前記メタデータの一部を復号することであって、前記メタデータが、保全性保護され、前記一部が、前記セキュア・ゲストのブート・イメージの暗号化手段を含み、秘密鍵を使用して導出された鍵によって暗号化されている、前記復号すること
をさらに含む、コンピュータ実施方法。
【請求項4】
前記メタデータの暗号化された前記一部が、前記1つまたは複数のコントロールを含む、請求項3に記載のコンピュータ実施方法。
【請求項5】
前記要求が、ページをエクスポートするために使用されるラップされた鍵を出力するための前記セキュア・インタフェース・コントロールへの要求、前記セキュア・ゲストの前記ブート・イメージの更新バージョンのメタデータを生成するための前記セキュア・インタフェース・コントロールへの要求、前記セキュア・インタフェース・コントロールが、前記メタデータに提供された鍵を使用してデータを暗号化し、暗号化データを前記セキュア・ゲストに返すことを可能にするための要求からなる群から選択される、請求項3または4に記載のコンピュータ実施方法。
【請求項6】
前記要求への前記応答が、前記ページをエクスポートするために使用される前記ラップされた鍵、前記セキュア・ゲストの前記ブート・イメージの前記更新バージョンの前記メタデータ、および前記メタデータに提供された前記鍵を前記セキュア・インタフェース・コントロールが利用することによって暗号化された暗号化データからなる群から選択される、請求項5に記載のコンピュータ実施方法。
【請求項7】
前記秘密鍵が、前記セキュア・インタフェース・コントロールによって所有され、前記セキュア・インタフェース・コントロールによって排他的に使用される、請求項3ないし6のいずれか一項に記載のコンピュータ実施方法。
【請求項8】
前記秘密鍵を使用して導出された前記鍵が、前記セキュア・インタフェース・コントロールと前記所有者との間で共有される、請求項3ないし7のいずれか一項に記載のコンピュータ実施方法。
【請求項9】
前記メタデータが、衝突耐性一方向性関数を利用して計算された前記セキュア・ゲストのブート・イメージから導出された値を含む、請求項1ないし8のいずれか一項に記載のコンピュータ実施方法。
【請求項10】
各コントロールが、様々な機能に対するポジティブ指定またはネガティブ指定を含み、前記ポジティブ指定は、前記セキュア・ゲストが前記特定の要求への前記応答を取得することを許可されることを示し、前記ネガティブ指定は、前記セキュア・ゲストが前記特定の要求への前記応答を取得することを許可されないことを示す、請求項1ないし9のいずれか一項に記載のコンピュータ実施方法。
【請求項11】
前記メタデータは、前記セキュア・ゲストにはアクセス不能であり、前記コンピュータ実施方法は、前記セキュア・インタフェース・コントロールによって、秘密のホスト鍵を利用することによって前記メタデータにおける前記コントロールにアクセスすることを含む、請求項1ないし10のいずれか一項に記載のコンピュータ実施方法。
【請求項12】
前記セキュア・ゲストが前記要求への前記応答を取得することを許可されるかどうかを決定することが、
前記セキュア・インタフェース・コントロールによって、前記要求に関連するコントロールを識別することと、
前記セキュア・インタフェース・コントロールによって、識別された前記要求に関連するコントロールが前記セキュア・ゲストによる前記要求への前記応答の受信を有効にするかまたは制限するかを決定することと
をさらに含む、請求項1ないし11のいずれか一項に記載のコンピュータ実施方法。
【請求項13】
コンピュータ・プログラムであって、コンピュータに、
コンピューティング・システムの1つまたは複数のプロセッサによってメタデータを取得することであって、前記1つまたは複数のプロセッサが、ハイパーバイザに通信可能に結合され、前記ハイパーバイザが、1つまたは複数のゲストを管理し、前記メタデータが、所有者によって開始され前記ハイパーバイザによって管理されるべきセキュア・ゲストのイメージに暗号でリンクされる前記セキュア・ゲストのメタデータであり、前記メタデータが複数のコントロールを含み、前記複数のコントロールの各コントロールは、前記イメージより生成されたセキュア・ゲストが、各コントロールに対応する特定の要求への応答を取得することを許可されるかどうかを前記1つまたは複数のプロセッサに示し、各機能の個別の制御を記述する、前記取得することと、
前記1つまたは複数のプロセッサによって、前記ハイパーバイザを介して、前記イメージにより生成された前記セキュア・ゲストから、前記セキュア・ゲストの実行時中、要求を傍受することと、
前記1つまたは複数のプロセッサによって、前記複数のコントロールに基づいて、前記セキュア・ゲストが前記特定の要求への応答としての前記要求への応答を取得することを許可されるかどうかを決定することと、
前記セキュア・ゲストが前記応答を取得することを許可されるという決定に基づいて、前記1つまたは複数のプロセッサによって、前記コンピューティング・システム内で、前記要求の履行を開始することと、
前記セキュア・ゲストが前記応答を取得することを許可されないという決定に基づいて、前記1つまたは複数のプロセッサによって、前記要求を無視することと
を実行させるためのコンピュータ・プログラム。
【請求項14】
前記セキュア・ゲストが前記応答を取得することを許可され、前記コンピュータに、
前記1つまたは複数のプロセッサによって、前記要求への前記応答を取得することと、
前記1つまたは複数のプロセッサによって、前記応答を前記セキュア・ゲストに送信することと
をさらに実行させる、請求項13に記載のコンピュータ・プログラム。
【請求項15】
コンピュータ・プログラムであって、コンピュータに、
コンピューティング・システムの1つまたは複数のプロセッサによってメタデータを取得することであって、前記1つまたは複数のプロセッサが、ハイパーバイザに通信可能に結合され、前記ハイパーバイザが、1つまたは複数のゲストを管理し、前記メタデータが、所有者によって開始され前記ハイパーバイザによって管理されるべきセキュア・ゲストのイメージにリンクされ、前記メタデータが1つまたは複数のコントロールを含み、前記1つまたは複数のコントロールの各コントロールは、前記イメージにより生成されたセキュア・ゲストが特定の要求への応答を取得することを許可されるかどうかを前記1つまたは複数のプロセッサに示す、前記取得することと、
前記1つまたは複数のプロセッサによって、前記ハイパーバイザを介して、前記イメージにより生成された前記セキュア・ゲストから、前記セキュア・ゲストの実行時中、要求を傍受することと、
前記1つまたは複数のプロセッサによって、前記1つまたは複数のコントロールに基づいて、前記セキュア・ゲストが前記要求への応答を取得することを許可されるかどうかを決定することと、
前記セキュア・ゲストが前記応答を取得することを許可されるという決定に基づいて、前記1つまたは複数のプロセッサによって、前記コンピューティング・システム内で、前記要求の履行を開始することと、
前記セキュア・ゲストが前記応答を取得することを許可されないという決定に基づいて、前記1つまたは複数のプロセッサによって、前記要求を無視することと
を実行させるためのコンピュータ・プログラムであり、前記メタデータを取得することが、前記コンピュータに、
前記1つまたは複数のプロセッサによって、セキュア・ゲストのイメージにリンクされた前記メタデータの一部を復号することであって、前記メタデータが、保全性保護され、前記一部が、前記セキュア・ゲストのブート・イメージの暗号化手段を含み、秘密鍵を使用して導出された鍵によって暗号化されている、前記復号すること
をさらに実行させる、コンピュータ・プログラム。
【請求項16】
前記要求が、ページをエクスポートするために使用されるラップされた鍵を出力するための前記1つまたは複数のプロセッサへの要求、前記セキュア・ゲストの前記ブート・イメージの更新バージョンのメタデータを生成するための前記1つまたは複数のプロセッサへの要求、前記1つまたは複数のプロセッサが、前記メタデータに提供された鍵を使用してデータを暗号化し、暗号化データを前記セキュア・ゲストに返すことを可能にするための要求からなる群から選択される、請求項15に記載のコンピュータ・プログラム。
【請求項17】
前記要求への応答が、前記ページをエクスポートするために使用される前記ラップされた鍵、前記セキュア・ゲストの前記ブート・イメージの前記更新バージョンの前記メタデータ、および前記メタデータに提供された前記鍵を前記1つまたは複数のプロセッサが利用することによって暗号化された暗号化データからなる群から選択される、請求項16に記載のコンピュータ・プログラム。
【請求項18】
前記秘密鍵が、前記1つまたは複数のプロセッサによって所有され、前記1つまたは複数のプロセッサによって排他的に計算される、請求項15ないし17のいずれか一項に記載のコンピュータ・プログラム。
【請求項19】
前記秘密鍵を使用して導出された前記鍵が、セキュア・インタフェース・コントロールと前記所有者との間で共有される、請求項15ないし18のいずれか一項に記載のコンピュータ・プログラム。
【請求項20】
システムであって、
メモリと、
前記メモリと通信する1つまたは複数のプロセッサと、
方法を実行するために前記メモリを介して前記1つまたは複数のプロセッサによって実行可能であるプログラム命令と
を含み、
前記方法が、
コンピューティング・システムの前記1つまたは複数のプロセッサによってメタデータを取得することであって、前記1つまたは複数のプロセッサが、ハイパーバイザに通信可能に結合され、前記ハイパーバイザが、1つまたは複数のゲストを管理し、前記メタデータが、所有者によって開始され前記ハイパーバイザによって管理されるべきセキュア・ゲストのイメージに暗号でリンクされる前記セキュア・ゲストのメタデータであり、前記メタデータが複数のコントロールを含み、前記複数のコントロールの各コントロールは、前記イメージより生成されたセキュア・ゲストが、各コントロールに対応する特定の要求への応答を取得することを許可されるかどうかを前記1つまたは複数のプロセッサに示し、各機能の個別の制御を記述する、前記取得することと、
前記1つまたは複数のプロセッサによって、前記ハイパーバイザを介して、前記イメージより生成された前記セキュア・ゲストから、前記セキュア・ゲストの実行時中、要求を傍受することと、
前記1つまたは複数のプロセッサによって、前記複数のコントロールに基づいて、前記セキュア・ゲストが前記特定の要求への応答としての前記要求への応答を取得することを許可されるかどうかを決定することと、
前記セキュア・ゲストが前記応答を取得することを許可されるという決定に基づいて、前記1つまたは複数のプロセッサによって、前記コンピューティング・システム内で、前記要求の履行を開始することと、
前記セキュア・ゲストが前記応答を取得することを許可されないという決定に基づいて、前記1つまたは複数のプロセッサによって、前記要求を無視することと
を含む、システム。
【発明の詳細な説明】
【背景技術】
【0001】
今日のコンピュータ・システムおよび情報伝送ネットワークでは、暗号要素は重要な技術構成要素である。情報は、格納または送信された情報への不正アクセスを防ぐために、暗号によるセキュアな形態で格納または送信することができる。純粋なソフトウェア・ベース技法を使用することができる場合もあれば、ハードウェア・サポートおよびセキュリティ専用要素を使用してそのようなデータ保護を実行することができる場合もある。
【0002】
ハイパーバイザまたは仮想マシン・マネージャは、システム・リソースへのアクセスにより様々なゲスト(例えば、仮想マシン、仮想サーバ)を制御することができる。共通のハイパーバイザによって管理された異なるゲストは、異なる所有者によって生成され得る。これらのゲストのうちの一部をセキュア・ゲスト(secure guest)とすることができる。従来のハイパーバイザは、ホストされたすべてのゲストを完全に制御している。特に、ハイパーバイザには、ホストされるゲストのすべてのメモリを検査しさらに変更する機能がある。クラウド環境では、そのような設定は、ハイパーバイザおよびその管理者が完全に信頼できることを必要とする。
【0003】
セキュア・ゲストは、(完全には)信頼できないハイパーバイザによってホストされる可能性があるゲストである。そのようなゲストのイメージは、ロードされるときに保護されことになり、ゲストに割り当てられたリソース(例えば、メモリ、CPUレジスタ)のコンテンツの保護は、ゲストの存続時間の全体にわたって維持されることになる。ゲストの保護は、少なくとも保全性保護(例えば、ハイパーバイザは、ゲスト状態を、悪意を持って変化させることができない)を含み、加えて、初期イメージおよびゲストで動作しているコードおよびデータの機密性を維持することを含むことができる。
【発明の概要】
【0004】
所有者がセキュア・インタフェース・コントロールを利用してセキュア・ゲストの機能を管理できるようにする方法を提供することによって、先行技術の欠点が克服され、追加の利点が提供される。この方法は、例えば、コンピューティング・システムのセキュア・インタフェース・コントロールによってメタデータを取得することであって、セキュア・インタフェース・コントロールがハイパーバイザに通信可能に結合され、ハイパーバイザが、1つまたは複数のゲストを管理し、メタデータが、所有者によって開始されハイパーバイザによって管理されるべきセキュア・ゲストのイメージにリンクされ、メタデータが1つまたは複数のコントロールを含み、1つまたは複数のコントロールの各コントロールは、イメージにより生成されたセキュア・ゲストが特定の要求への応答を取得することを許可されるかどうかをセキュア・インタフェース・コントロールに示す、取得することと、セキュア・インタフェース・コントロールによって、ハイパーバイザを介して、イメージにより生成されたセキュア・ゲストから、セキュア・ゲストの実行時中、要求を傍受する(intercept)ことと、セキュア・インタフェース・コントロールによって、1つまたは複数のコントロールに基づいて、セキュア・ゲストが要求への応答を取得することを許可されるかどうかを決定することと、セキュア・ゲストが応答を取得することを許可されるという決定に基づいて、セキュア・インタフェース・コントロールによって、コンピューティング・システム内で、要求の履行を開始することと、セキュア・ゲストが応答を取得することを許可されないという決定に基づいて、セキュア・インタフェース・コントロールによって、要求を無視することとを含む。
【0005】
所有者がセキュア・インタフェース・コントロールを利用してセキュア・ゲストの機能を管理できるようにするコンピュータ・プログラム製品を提供することによって、先行技術の欠点が克服され、追加の利点が提供される。コンピュータ・プログラム製品は、処理回路によって読取り可能であり、方法を実行するための処理回路による実行のための命令を格納する記憶媒体を含む。この方法は、例えば、コンピューティング・システムの1つまたは複数のプロセッサによってメタデータを取得することであって、1つまたは複数のプロセッサがハイパーバイザに通信可能に結合され、ハイパーバイザが、1つまたは複数のゲストを管理し、メタデータが、所有者によって開始されハイパーバイザによって管理されるべきセキュア・ゲストのイメージにリンクされ、メタデータが1つまたは複数のコントロールを含み、1つまたは複数のコントロールの各コントロールは、イメージにより生成されたセキュア・ゲストが特定の要求への応答を取得することを許可されるかどうかを1つまたは複数のプロセッサに示す、取得することと、1つまたは複数のプロセッサによって、ハイパーバイザを介して、イメージにより生成されたセキュア・ゲストから、セキュア・ゲストの実行時中、要求を傍受することと、1つまたは複数のプロセッサによって、1つまたは複数のコントロールに基づいて、セキュア・ゲストが要求への応答を取得することを許可されるかどうかを決定することと、セキュア・ゲストが応答を取得することを許可されるという決定に基づいて、1つまたは複数のプロセッサによって、コンピューティング・システム内で、要求の履行を開始することと、セキュア・ゲストが応答を取得することを許可されないという決定に基づいて、1つまたは複数のプロセッサによって、要求を無視することとを含む。
【0006】
所有者がセキュア・インタフェース・コントロールを利用してセキュア・ゲストの機能を管理できるようにするシステムを提供することによって、先行技術の欠点が克服され、追加の利点が提供される。システムは、メモリと、メモリと通信する1つまたは複数のプロセッサと、方法を実行するためにメモリを介して1つまたは複数のプロセッサによって実行可能であるプログラム命令とを含む。この方法は、例えば、コンピューティング・システムの1つまたは複数のプロセッサによってメタデータを取得することであって、1つまたは複数のプロセッサがハイパーバイザに通信可能に結合され、ハイパーバイザが、1つまたは複数のゲストを管理し、メタデータが、所有者によって開始されハイパーバイザによって管理されるべきセキュア・ゲストのイメージにリンクされ、メタデータが1つまたは複数のコントロールを含み、1つまたは複数のコントロールの各コントロールは、イメージにより生成されたセキュア・ゲストが特定の要求への応答を取得することを許可されるかどうかを1つまたは複数のプロセッサに示す、取得することと、1つまたは複数のプロセッサによって、ハイパーバイザを介して、イメージにより生成されたセキュア・ゲストから、セキュア・ゲストの実行時中、要求を傍受することと、1つまたは複数のプロセッサによって、1つまたは複数のコントロールに基づいて、セキュア・ゲストが要求への応答を取得することを許可されるかどうかを決定することと、セキュア・ゲストが応答を取得することを許可されるという決定に基づいて、1つまたは複数のプロセッサによって、コンピューティング・システム内で、要求の履行を開始することと、セキュア・ゲストが応答を取得することを許可されないという決定に基づいて、1つまたは複数のプロセッサによって、要求を無視することとを含む。
【0007】
1つまたは複数の態様に関連する方法およびシステムが、さらに、本明細書で説明され特許請求される。さらに、1つまたは複数の態様に関連するサービスがまた、説明され、本明細書で特許請求され得る。
【0008】
追加の機能が、本明細書で説明される技法を通して実現される。他の実施形態および態様が、本明細書で詳細に説明され、特許請求される態様の一部と見なされる。例えば、本発明のいくつかの実施形態では、セキュア・ゲストは、応答を取得することを許可され、この方法は、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方によって、要求への応答を取得することと、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方によって、応答をセキュア・ゲストに送信することとをさらに含む。
【0009】
本発明のいくつかの実施形態では、メタデータを取得するセキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方は、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方によって、セキュア・ゲストのイメージにリンクされたメタデータの一部を復号することであって、メタデータが、保全性保護され、その一部が、セキュア・ゲストのブート・イメージの暗号化手段(cryptographic measure)を含む秘密鍵を使用して導出された鍵によって暗号化されている、復号することをさらに含む。
【0010】
本発明のいくつかの実施形態では、メタデータの暗号化された一部は、1つまたは複数のコントロールを含む。
【0011】
本発明のいくつかの実施形態では、要求は、ページをエクスポートするために使用されるラップされた鍵を出力するためのセキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方への要求、セキュア・ゲストのブート・イメージの更新バージョンのためにメタデータを生成するためのセキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方への要求、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方が、メタデータに提供された鍵を使用してデータを暗号化し、暗号化データをセキュア・ゲストに返すことを可能にするための要求からなる群から選択される。
【0012】
本発明のいくつかの実施形態では、要求への応答は、ページをエクスポートするために使用されるラップされた鍵、セキュア・ゲストのブート・イメージの更新バージョンのメタデータ、およびメタデータに提供された鍵をセキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方が利用することによって暗号化された暗号化データからなる群から選択される。
【0013】
本発明のいくつかの実施形態では、秘密鍵は、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方によって所有され、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方によって排他的に使用される。
【0014】
本発明のいくつかの実施形態では、秘密鍵を使用して導出された鍵は、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方と、所有者との間で共有される。
【0015】
本発明のいくつかの実施形態では、メタデータは、衝突耐性一方向性関数を利用して計算されたセキュア・ゲストのブート・イメージから導出された値を含む。
【0016】
本発明のいくつかの実施形態では、1つまたは複数のコントロールが、各々、様々な機能に対するポジティブ指定(positive designation)またはネガティブ指定(negative designation)を含み、ポジティブ指定は、セキュア・ゲストが特定の要求への応答を取得することを許可されることを示し、ネガティブ指定は、セキュア・ゲストが特定の要求への応答を取得することを許可されないことを示す。
【0017】
本発明のいくつかの実施形態では、メタデータは、セキュア・ゲストにはアクセス不能である。
【0018】
本発明のいくつかの実施形態では、セキュア・ゲストが要求への応答を取得することを許可されるかどうかをセキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方が決定することは、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方によって、1つまたは複数のコントロールの中で、要求に関連するコントロールを識別することと、セキュア・インタフェース・コントロールまたは1つまたは複数のプロセッサあるいはその両方によって、コントロールがセキュア・ゲストによる要求への応答の受信を有効にするかまたは制限するかを決定することとをさらに含む。
【0019】
1つまたは複数の態様が、本明細書の末尾の特許請求の範囲において、例として、特に指摘され、明確に特許請求される。1つまたは複数の態様の前述の目的、特徴、および利点が、添付の図面とともに行われる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0020】
図1】本発明のいくつかの実施形態の特定の態様を示すワークフローの図である。
図2】本発明のいくつかの実施形態の様々な態様を示す図である。
図3】本発明のいくつかの実施形態の特定の態様を示すワークフローの図である。
図4】クラウド・コンピューティング環境で利用することができるコンピューティング・ノードの1つの実施形態を示す図である。
図5】本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。
図6】本発明の一実施形態による抽象化モデル層を示す図である。
【発明を実施するための形態】
【0021】
同様の参照番号が別個の図の全体にわたり同一の要素または機能的に類似した要素を指し、本明細書の一部に組み込まれ、本明細書の一部を形成する添付の図は、本発明をさらに示し、本発明の詳細な説明とともに、本発明の原理を説明する役割を果たす。当業者によって理解されるように、添付の図は、理解を容易にするために提供され、本発明の特定の実施形態の態様を示す。本発明は、図に示された実施形態に限定されない。
【0022】
当業者によって理解されるように、本出願の全体にわたって参照されるプログラム・コードは、ソフトウェアとハードウェアの両方を含む。例えば、本発明の特定の実施形態におけるプログラム・コードは、固定機能ハードウェアを含み、一方、他の実施形態は、記載された機能のソフトウェア・ベース実施態様を利用した。特定の実施形態は、両方のタイプのプログラム・コードを組み合わせている。1つまたは複数のプログラムとも呼ばれるプログラム・コードの1つの例が、プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40として図4に示されており、これは、メモリ28に格納され得る。
【0023】
「ゲスト・システム」または「ゲスト」という用語は、例えば、ハイパーバイザ上の仮想マシンVMで実行されるオペレーティング・システムを指すことができる。ユーザをゲスト・システムに割り当てることができる。特定の暗号鍵をゲスト・システムに割り当てることができることが可能である。上記のハイパーバイザは、そのような割り当てを実行する際に使用することができる。ゲスト・システムは、例えば、ゲスト・オペレーティング・システムを稼働または実行する仮想マシン、すなわち、VMとすることができる。
【0024】
「コンテンツ」という用語は、文字ベースの文字列を指すことができる。文字列は、読取り可能なテキストまたは他のバイナリ・データを含むことができる。
【0025】
「データ・パターン」という用語は、基本的に、コンテンツの別の表現とすることができる。データ・パターンは、読取り可能文字の文字列を指すことができ、またはバイナリ・データを含むことができる。本明細書の文脈では、データ・パターンに追加の要件はない。それは、さらに、事前定義されるか、ランダムに選択されるか、または別の方法で決定されてもよい。
【0026】
「ゲスト暗号化ユニット」という用語は、ゲスト・システム内でもしくはその一部として、またはゲスト・システムによって使用されるサービスとして、暗号化操作または復号化操作あるいはその両方を実行するように構成されたモジュールを指すことができる。
【0027】
前記のように、セキュア・ゲストは、(完全には)信頼できないハイパーバイザによってホストされる可能性があるゲストである。そのようなゲストのイメージは、ロードされるときに保護されことになり、ゲストに割り当てられたリソース(例えば、メモリ、CPUレジスタ)のコンテンツの保護は、ゲストの存続時間の全体にわたって維持されることになる。ゲストの保護は、少なくとも保全性保護(すなわち、ハイパーバイザは、ゲスト状態を、悪意を持って変化させることができない)を含み、加えて、初期イメージおよびゲストで動作しているコードおよびデータの機密性を維持することを含むことができる。
【0028】
本発明の実施形態では、セキュア・ゲストは必然的に保全性保護されている(ハイパーバイザが完全には信頼されない可能性があるが、セキュア・ゲストは安全である)ので、そのようなセキュア・ゲストを管理するために、コンピュータ・システムのセキュア・インタフェース・コントロール(例えば、信頼できる構成要素、信頼できるファームウェア)が、ゲストのホスティングに関わる特定のタスクを引き継ぎ、セキュア・ゲストへの限定的なアクセスのみをハイパーバイザに許可する。具体的には、セキュア・インタフェース・コントロールは、セキュア・ゲストのゲスト状態(またはセキュア・ゲストのイメージあるいはその両方)の検査または変更に関与しないアクセスをハイパーバイザに与える。
【0029】
本発明の実施形態では、セキュア・ゲストが配備されるとき、所有者は、いくつかのセキュア・ゲスト・メタデータと一緒に(セキュア・ゲストの)ゲスト・イメージを準備する。本明細書で論じるように、ゲスト・メタデータは、ゲストの保全性を検証し、ことによると、ゲストの機密性を維持するために必要とされる秘密(例えば、暗号鍵)を含むことができる。セキュア・ゲストのメタデータの秘密はゲスト所有者およびセキュア・インタフェース・コントロールにしか知られていないので、メタデータの一部(すなわち、秘密を含む部分)は、秘密鍵がセキュア・インタフェース・コントロールによって安全に維持される秘密鍵/公開鍵ペアを使用して、セキュア・インタフェース・コントロールとゲスト所有者との間で安全に取り決められた鍵により、暗号化され、ゲスト・イメージに暗号でリンクされる。
【0030】
本発明の実施形態は、セキュア実行(SE)ゲストの所有者が、ハードウェア、ファームウェア、またはそれらの組合せであるセキュア・インタフェース・コントロールに指示して、SEゲストの実行時中に所有者の所与のSEゲストの様々な動作を有効または無効あるいはその両方にすることができるプログラム・コードを含む少なくとも1つの処理回路またはハードウェアあるいはその両方で実行されるプログラム・コードを含む、コンピュータ実施方法、コンピュータ・プログラム製品、およびコンピュータ・システムを含む。したがって、セキュア・インタフェース・コントロールを利用することによって、SE所有者は、イメージごとに(すなわち、セキュア・ゲストごとに)、各ゲスト・イメージの様々な機能を有効または無効にすることができる。所有者は、セキュア・ゲストのブート・イメージに暗号でリンクされたイメージ・メタデータを介して所与のセキュア・ゲストのための詳細を通信し、セキュア・インタフェース・コントロールは、本発明の実施形態において、所与のセキュア・ゲストに対して、指定された詳細を実施する。本発明のいくつかの実施形態では、セキュア・ゲストに関連するメタデータは、保全性保護される(例えば、メタデータの少なくとも一部を暗号化することができる)。メタデータは、プログラム・コードが衝突耐性一方向性関数(例えば、暗号学的ハッシュ関数)を使用して計算する、セキュア・ゲストのブート・イメージからプログラム・コードによって導出された値を含むことができる。衝突耐性関数は、その適用が、同じ値を導出できる代替イメージの構築を計算上実行不可能にするので、値にセキュリティを与える。本発明のいくつかの実施形態では、メタデータは、様々な機能に対する特定のポジティブおよびネガティブ指定を含む。本発明のいくつかの実施形態では、メタデータは、セキュア・ゲストのインストール・データ(例えば、セキュア実行(SE)ヘッダ)を含む。
【0031】
本発明の実施形態では、セキュア・インタフェース・コントロールが、所与のセキュア・ゲストのための機能を有効にすべきか無効にすべきかを評価する(例えば、メタデータのポジティブおよびネガティブ指標を識別する)とき、セキュア・インタフェース・コントロールは、メタデータ内の各機能の個別のコントロールを読み出す。本発明の実施形態では、実行中のセキュア・ゲストでは、セキュア・インタフェース・コントロールは、(限定はしないが、セキュア・ゲストを含むシステムの構成要素からの)各要求を取得し、要求が許容可能であるかどうかを決定し、許容可能である場合、実行のために関連コントロールに要求を送信し、許容可能でない場合、要求を無視する。本発明の実施形態では、セキュア・インタフェース・コントロールは、限定はしないが、以下を含む要求を、セキュア・ゲストに関連するメタデータの値に基づいて、許可する、または無視する、あるいはその両方を行う。1)ページをエクスポートするために使用されるラップされた鍵を出力するためのセキュア・インタフェース・コントロールへの要求(例えば、メタデータに提供された鍵によって暗号化された、セキュア・インタフェース・コントロールによって生成された鍵で暗号化されたハイパーバイザ駆動ゲスト・ダンプをサポートするために)、2)セキュア・ゲストのブート・イメージの更新バージョンのメタデータを生成するためのセキュア・インタフェース・コントロールへの要求、または3)セキュア・インタフェース・コントロールが、セキュア・ゲストのメタデータに提供された鍵を使用してデータを暗号化し、暗号化データを返すことを可能にする要求、あるいはその組合せ。メタデータは、機能のきめ細かい制御(granular control)を可能にし、例えば、最初のアイテムに関して、メタデータを通じて、SEゲスト所有者は、セキュア・インタフェース・コントロールおよび所有者によってのみ共有される鍵により暗号化される場合でさえ、セキュア・インタフェース・コントロールが、エクスポートされるデータを暗号化するために使用される鍵をエクスポートすることを許されるかどうかを決定することができる。
【0032】
図1は、本発明のいくつかの実施形態の特定の機能を示すワークフロー100である。図1で示されるように、本発明の実施形態では、セキュア実行を可能にするために、セキュア・ゲストは、メタデータに暗号でリンクされ、メタデータは、セキュア・インタフェース・コントロールのみがアクセス可能である秘密のホスト鍵に基づいて、セキュア・インタフェース・コントロール(例えば、信頼できるハードウェアまたはソフトウェア・コンポーネントあるいはその両方、信頼できるファームウェア、ウルトラバイザ)に安全に通信される。本発明の実施形態では、セキュア・ゲストの所有者は、セキュア・インタフェース・コントロール挙動を制御し、セキュア・ゲストの実行に関する特定の操作を許可または禁止する。セキュア・ゲストのセキュリティのための既存の手法に対する本発明の実施形態の利点は、セキュア・インタフェース・コントロールによって実施されるメタデータのきめ細かい制御により、所有者は、特定のセキュリティ上の問題に対処するために操作を制限するかまたは操作を可能にすることができることである。例えば、所有者は、データがセキュア・インタフェース・コントロールおよび所有者によってのみ共有される鍵により暗号化される場合でさえ、セキュア・インタフェース・コントロールが、エクスポートされるデータを暗号化するために使用される鍵をエクスポートすることができるかどうかを制御することができる。本発明のいくつかの実施形態では、鍵は、セキュア・インタフェース・コントロールと所有者との間で共有される秘密鍵を使用して導出される。本発明の実施形態では、少なくとも1つの処理回路で実行される、またはハードウェアによって提供される、あるいはその両方が行われるプログラム・コードは、セキュア・ゲストの実行を制約する。
【0033】
図1を参照すると、本発明のいくつかの実施形態では、セキュア・インタフェース・コントロール(例えば、ハードウェア、ソフトウェア、ファームウェア、組合せなど)は、セキュア・ゲストの所有者から開始されるべきセキュア・ゲストにリンクされたメタデータを取得する(110)。本発明のいくつかの実施形態では、メタデータは、保全性保護され、(SE)所有者によって開始されるべきセキュア・ゲストのブート・イメージに暗号でリンクされる。メタデータはコントロールを含み、各コントロールは、セキュア・ゲストへの制限を意味する。本発明の実施形態では、セキュア・インタフェース・コントロールは、セキュア・インタフェース・コントロールがアクティビティを完了するために、今開始されたセキュア・ゲストからの要求を取得する(120)。セキュア・インタフェース・コントロールは、メタデータを分析し、要求されたアクティビティが許可されるかどうかをメタデータに基づいて決定する(130)。アクティビティが許可されないことをメタデータに基づいてセキュア・インタフェース・コントロールが決定した場合、セキュア・インタフェース・コントロールは、エラーをセキュア・ゲストに返す(135)。本発明のいくつかの実施形態では、セキュア・インタフェース・コントロールは要求を無視する。セキュア・インタフェース・コントロールの構成に依存して、許可されない要求への応答は変わることがある。アクティビティが許可されることをセキュア・インタフェース・コントロールがメタデータに基づいて決定した場合、セキュア・インタフェース・コントロールは、要求されたアクティビティを実行する、または進捗させる(例えば、書き込む、読み出す、送信する)、あるいはその両方を行う(140)。したがって、セキュア・インタフェース・コントロールは、メタデータによって記述された制限と矛盾する要求を拒否する。様々な要求の阻止および許可は、セキュア・ゲストの実行時中にセキュア・インタフェース・コントロールによって遂行される。
【0034】
セキュア・インタフェース・コントロールが実行する、または進捗させる、あるいはその両方を行うことをセキュア・ゲストが要求することができ、これらのアクティビティが制約されるかどうかをメタデータに基づいてセキュア・インタフェース・コントロールが決定することできるアクティビティの非限定のリストがここにある。1)セキュア・ゲストは、セキュア・インタフェース・コントロールが、ページをエクスポートするために使用されるラップされた鍵を出力することを要求することができる(例えば、メタデータに提供された鍵によって暗号化された、セキュア・インタフェース・コントロールによって生成された鍵で暗号化されたハイパーバイザ駆動ゲスト・ダンプをサポートするために)、2)セキュア・ゲストは、セキュア・インタフェース・コントロールが、セキュア・ゲストのブート・イメージの更新バージョンのメタデータを生成することを要求することができる、3)セキュア・ゲストは、セキュア・インタフェース・コントロールが、セキュア・ゲストのメタデータで提供された鍵を使用してデータを暗号化し、暗号化データを返すことを要求することができる。
【0035】
図2は、本発明のいくつかの実施形態の様々な態様を含む技術環境200である。図2の技術環境200を含む構成要素は、セキュア・インタフェース・コントロールが、ゲスト所有者に各所有者に固有の暗号化を介してゲスト・イメージの機能を制御させることができ、セキュア・インタフェース・コントロールが、実行時中に所与のセキュア・ゲストの特定の機能を有効または無効にする方法を示す。セキュア実行では、セキュア・ゲスト210は、メタデータ240に暗号でリンクされ、メタデータ240は、セキュア・インタフェース・コントロール230のみがアクセス可能である秘密のホスト鍵に基づいて、セキュア・インタフェース・コントロール230(例えば、信頼できるFW、ウルトラバイザ、信頼できる構成要素など)に安全に通信される。セキュア・ゲスト210の所有者は、セキュア・インタフェース・コントロール230を制御し、所有者の優先に基づいて、セキュア・ゲスト210の実行に関する特定の操作を許可または禁止する。例えば、セキュア・インタフェース・コントロール230を通じて所有者によって許可される機能は、セキュア・ゲスト210の所有者が懸念しているまたは懸念していないかいずれかの攻撃を可能にする操作に限定され得る。例えば、メタデータが、セキュア・ゲスト210および所有者によってのみ共有される鍵により暗号化される場合でさえ、所有者は、セキュア・ゲスト210がメタデータの一部を暗号化するために利用される鍵に対して許可されているかどうかを、セキュア・ゲスト210のイメージに暗号でリンクされたメタデータ240に入力することができる。本発明のいくつかの実施形態では、鍵は、セキュア・インタフェース・コントロール230とセキュア・ゲスト210の所有者との間で共有される秘密鍵を使用して導出される。所有者の優先に基づいて、セキュア・ゲスト210に関連するメタデータ240に記述されているように、セキュア・インタフェース・コントロール230は、セキュア・ゲスト210の実行時中、セキュア・ゲスト210の操作を制御する。
【0036】
本発明のいくつかの実施形態では、セキュア・ゲスト210(例えば、仮想マシン、仮想サーバ)は、ハイパーバイザ220(例えば、仮想マシン・マネージャ)によって制御される。セキュア・インタフェース・コントロール250は、セキュア・ゲスト210から、ハイパーバイザ220を介して、セキュア・ゲストに関連するメタデータ240を取得する。このメタデータ240は保全性保護される(そして、メタデータ230の一部、すなわち、セキュア・ゲスト250の秘密も機密性保護される(すなわち、暗号化される))。本発明のいくつかの実施形態では、メタデータ240は、セキュア・ゲスト210のブート・イメージに暗号でリンクされる。本発明のいくつかの実施形態では、セキュア・ゲストの秘密250は、セキュア・ゲストのインストール・データ(例えば、セキュア実行(SE)ヘッダ)に含まれる。本発明のいくつかの実施形態では、メタデータ240は、同じ値を導出することができる代替イメージを構築することが計算上実行不可能であるように、衝突耐性一方向性関数(例えば、暗号学的ハッシュ関数)を使用して計算された、セキュア・ゲスト210のブート・イメージから導出された値を含む。
【0037】
図2に示されるように、セキュア・ゲスト240にリンクされたメタデータは、秘密250を含む。本発明のいくつかの実施形態では、ゲストのメタデータは、保全性保護され、秘密は、セキュア・インタフェース・コントロール230によって所有される秘密鍵を使用して導出された鍵によって暗号化される。導出された鍵は、所与のゲストのブート・イメージの暗号化手段を保護することができる。そこで、本発明のいくつかの実施形態では、秘密250を含むメタデータ240の一部は、セキュア・インタフェース・コントロール230しか計算できない鍵によって暗号化される。メタデータ240は、セキュア・ゲスト210自体がアクセス可能である必要はない。
【0038】
メタデータ240は、セキュア・ゲスト210のイメージにリンクされ、秘密250がセキュア・ゲストのイメージに暗号でリンクされているが、それはゲストの一部ではない。むしろ、本明細書で説明されるように、それは、セキュア・インタフェース・コントロール(例えば、ファームウェア、信頼できる構成要素、ソフトウェア、ハードウェアなど)に独立して移送される(例えば、図1、110)。本発明の実施形態では、秘密250は、ゲスト・メタデータの一部としてセキュア・チャネル(すなわち、暗号化された)により移送され、ゲストに暗号でリンクされる。本発明のいくつかの実施形態では、メタデータ240は、ゲストに暗号でリンクされ(例えば、ゲスト・イメージの署名を含み)、そこで、あるゲストのメタデータが、別のゲストのメタデータとして誤用されることはあり得ない。したがって、信頼できる構成要素は、ゲストおよびメタデータ/秘密が一緒に属していることを確認することができる。セキュア・インタフェース・コントロール230に(例えば、独立して、セキュア・チャネルを通して)移送されたメタデータ240は、保全性および機密性保護される。
【0039】
秘密250を含むことに加えて、メタデータ240は、コントロール260をさらに含み、それを、セキュア・インタフェース・コントロール230は利用して、様々な機能を許可および禁止する。セキュア・ゲスト210と技術環境200の様々な要素との間の相互作用は、メタデータ240内のコントロール260をシステム設定270と比較することに基づいて、セキュア・インタフェース・コントロール230によって決定される。セキュア・インタフェース・コントロール230は、メタデータ240(例えば、コントロール260)によって記述された制限と矛盾するセキュア・ゲスト210からの要求を拒否する。本発明のいくつかの実施形態では、メタデータ240には、コントロールがポジティブである場合に有効にすることができ、またはコントロールがネガティブである場合に無効にすることができるセキュア・インタフェース・コントロール230の機能を表すコントロール260が含まれる。
【0040】
本発明のいくつかの実施形態では、セキュア・インタフェース・コントロール230は、コントロールごとにコントロール260を読み出すことによってセキュア・ゲスト210のメタデータ240を評価する。セキュア・ゲスト210を実行するとき、セキュア・インタフェース・コントロール230は、セキュア・ゲスト210からを含む技術環境200の様々な構成要素からの各要求をチェックして、要求の実行が許容可能であるかどうかを決定することができる。許容される場合、セキュア・ゲスト210を実行することにより、要求の制御を対象とするアクション(書き込み、読み出し、送信など)が行われて、要求が完了することになる。要求が容認されないことをセキュア・インタフェース・コントロール230が決定した場合、セキュア・インタフェース・コントロール230は、要求を無視するか、またはさもなければ拒絶することができる。したがって、セキュア・インタフェース・コントロール230は、セキュア・ゲスト210のメタデータ240に基づいて、セキュア・ゲスト210からの要求およびセキュア・ゲスト210に影響を与える要求の両方を制御することができる。
【0041】
図3は、本発明のいくつかの実施形態の様々な態様を示すワークフロー300である。本発明の実施形態では、コンピューティング・システムにセキュア・インタフェース・コントロールがあり、セキュア・インタフェース・コントロールが、ハイパーバイザに通信可能に結合され、ハイパーバイザは、1つまたは複数のゲストを管理し、メタデータが、所有者によって開始されハイパーバイザによって管理されるべきセキュア・ゲストのイメージにリンクされ、メタデータは1つまたは複数のコントロールを含み、1つまたは複数のコントロールの各コントロールは、イメージにより生成されたセキュア・ゲストが特定の要求への応答を取得することを許可されるかどうかをセキュア・インタフェース・コントロールに示す(310)。メタデータ自体は、セキュア・ゲストにはアクセス不能であることがある。メタデータを取得することの一部として、本発明のいくつかの実施形態では、セキュア・インタフェース・コントロールは、セキュア・ゲストのイメージにリンクされたメタデータの一部を復号する。メタデータは、保全性保護され、この一部は、秘密鍵を使用して導出された鍵によって暗号化されており、暗号化された一部は、本発明のいくつかの実施形態では、セキュア・ゲストのブート・イメージの暗号化手段を含む。秘密鍵は、セキュア・インタフェース・コントロールによって所有され、セキュア・インタフェース・コントロールによって排他的に使用され得る。秘密鍵を使用して導出される鍵は、セキュア・インタフェース・コントロールと所有者との間で(例えば、間でのみ)共有することができる。本発明のいくつかの実施形態では、メタデータは、衝突耐性一方向性関数を利用して計算された、セキュア・ゲストのブート・イメージから導出された値を含む。
【0042】
図2に示すように、1つまたは複数のコントロール(例えば、図2、260)は、メタデータ(例えば、図2、240)の一部である。本発明のいくつかの実施形態では、1つまたは複数のコントロールは、メタデータの暗号化された一部に含まれる。セキュア・インタフェース・コントロールは、セキュア・ゲストのイメージにリンクされたメタデータのこの一部を復号することができ、メタデータは、保全性保護され、この一部は、セキュア・ゲストのブート・イメージの暗号化手段を含む秘密鍵を使用して導出された鍵によって暗号化されている。コントロールは、各々、様々な機能に対してポジティブ指定またはネガティブ指定を含むことができ、ポジティブ指定は、セキュア・ゲストが特定の要求への応答を取得することを許可されることを示し、ネガティブ指定は、ゲストが特定の要求への応答を取得することを許可されないことを示す。
【0043】
図3に戻ると、セキュア・インタフェース・コントロールは、ハイパーバイザを介して、イメージにより生成されたセキュア・ゲストから、セキュア・ゲストの実行時中、要求を傍受する(320)。本発明のいくつかの実施形態の態様によって扱われる要求のいくつかの非限定の例には、ページをエクスポートするために使用されるラップされた鍵を出力するためのセキュア・インタフェース・コントロールへの要求、セキュア・ゲストのブート・イメージの更新バージョンのメタデータを生成するためのセキュア・インタフェース・コントロールへの要求、セキュア・インタフェース・コントロールが、メタデータに提供された鍵を使用してデータを暗号化し、暗号化データをセキュア・ゲストに返すことを可能にするための要求が含まれる。本発明の実施形態において、要求されたセキュア・ゲストにセキュア・インタフェース・コントロールによって提供される要求への応答のいくつかの非限定の例には、ページをエクスポートするために使用されるラップされた鍵、セキュア・ゲストのブート・イメージの更新バージョンのメタデータ、およびメタデータに提供された鍵をセキュア・インタフェース・コントロールが利用することによって暗号化された暗号化データが含まれる。
【0044】
図3を参照すると、セキュア・インタフェース・コントロールは、1つまたは複数のコントロールに基づいて、セキュア・ゲストが要求への応答を取得することを許可されるかどうかを決定する(330)。セキュア・ゲストが要求への応答を取得することを許可されるかどうかを決定するために、本発明のいくつかの実施形態では、セキュア・インタフェース・コントロールは、1つまたは複数のコントロールの中で、要求に関連するコントロールを識別する(332)。セキュア・インタフェース・コントロールは、コントロールがセキュア・ゲストによる要求への応答の受信を有効にするかまたは制限するかを決定する(334)。
【0045】
セキュア・ゲストが応答を取得することを許可されるという決定に基づいて、セキュア・インタフェース・コントロールは、コンピューティング・システム内で、要求の履行を開始する(340)。セキュア・ゲストが応答を取得することを許可されないという決定に基づいて、セキュア・インタフェース・コントロールは要求を無視する(335)。
【0046】
本発明のいくつかの実施形態では、セキュア・ゲストが応答を取得することを許可されることをセキュア・インタフェース・コントロールが決定した場合、セキュア・インタフェース・コントロールは、要求への応答を取得する(350)。セキュア・インタフェース・コントロールは、応答をセキュア・ゲストに送信する(360)。
【0047】
本発明の実施形態は、コンピュータ実施方法、コンピュータ・プログラム製品、およびコンピュータ・システムを含み、コンピューティング・システムにセキュア・インタフェース・コントロールがあり、セキュア・インタフェース・コントロールは、ファームウェア、ハードウェア、およびソフトウェアのうちの1つ、またはそれらの組合せとすることができ、所有者によって開始されハイパーバイザによって管理されるべきセキュア・ゲストのイメージにリンクされたメタデータを取得する。ハイパーバイザは、1つまたは複数のゲストを管理し、メタデータは、1つまたは複数のコントロールを含む。1つまたは複数のコントロールの各コントロールは、イメージにより生成されたセキュア・ゲストが特定の要求への応答を取得することを許可されるかどうかをセキュア・インタフェース・コントロールに示す。セキュア・インタフェース・コントロールは、ハイパーバイザを介して、イメージにより生成されたセキュア・ゲストから、セキュア・ゲストの実行時中、要求を傍受する。セキュア・インタフェース・コントロールは、1つまたは複数のコントロールに基づいて、セキュア・ゲストが要求への応答を取得することを許可されるかどうかを決定する。セキュア・ゲストが応答を取得することを許可されるという決定に基づいて、セキュア・インタフェース・コントロールは、コンピューティング・システム内で、要求の履行を開始する。セキュア・ゲストが応答を取得することを許可されないという決定に基づいて、セキュア・インタフェース・コントロールは、要求を無視する。
【0048】
本発明のいくつかの実施形態では、セキュア・ゲストが応答を取得することを許可される場合、セキュア・インタフェース・コントロールは、要求への応答を取得し、応答をセキュア・ゲストに送信する。
【0049】
本発明のいくつかの実施形態では、メタデータを取得するセキュア・インタフェース・コントロールは、セキュア・ゲストのイメージにリンクされたメタデータの一部を復号するセキュア・インタフェース・コントロールをさらに含み、メタデータは、保全性保護され、この一部は、セキュア・ゲストのブート・イメージの暗号化手段を含む秘密鍵を使用して導出された鍵によって暗号化されている。本発明のいくつかの実施形態では、メタデータの暗号化された一部は、1つまたは複数のコントロールを含む。
【0050】
本発明のいくつかの実施形態では、要求は、ページをエクスポートするために使用されるラップされた鍵を出力するためのセキュア・インタフェース・コントロールへの要求、セキュア・ゲストのブート・イメージの更新バージョンのメタデータを生成するためのセキュア・インタフェース・コントロールへの要求、セキュア・インタフェース・コントロールが、メタデータに提供された鍵を使用してデータを暗号化し、暗号化データをセキュア・ゲストに返すことを可能にするための要求からなる群から選択される。
【0051】
本発明のいくつかの実施形態では、要求への応答は、ページをエクスポートするために使用されるラップされた鍵、セキュア・ゲストのブート・イメージの更新バージョンのためのメタデータ、およびメタデータに提供された鍵をセキュア・インタフェース・コントロールが利用することによって暗号化された暗号化データからなる群から選択される。
【0052】
本発明のいくつかの実施形態では、秘密鍵は、セキュア・インタフェース・コントロールによって所有され、セキュア・インタフェース・コントロールによって排他的に使用される。
【0053】
本発明のいくつかの実施形態では、秘密鍵を使用して導出された鍵は、セキュア・インタフェース・コントロールと所有者との間で共有される。
【0054】
本発明のいくつかの実施形態では、メタデータは、衝突耐性一方向性関数を利用して計算された、セキュア・ゲストのブート・イメージから導出された値を含む。
【0055】
本発明のいくつかの実施形態では、1つまたは複数のコントロールは、各々、様々な機能に対するポジティブ指定またはネガティブ指定を含むことができ、ポジティブ指定は、セキュア・ゲストが特定の要求への応答を取得することを許可されることを示し、ネガティブ指定は、ゲストが特定の要求への応答を取得することを許可されないことを示す。
【0056】
本発明のいくつかの実施形態では、メタデータは、セキュア・ゲストにはアクセス不能である。
【0057】
本発明のいくつかの実施形態では、セキュア・ゲストが要求への応答を取得することを許可されるかどうかをセキュア・インタフェース・コントロールが決定することは、セキュア・インタフェース・コントロールが、1つまたは複数のコントロールの中で、要求に関連するコントロールを識別することをさらに含む。セキュア・インタフェース・コントロールは、コントロールがセキュア・ゲストによる要求への応答の受信を有効にするかまたは制限するかを決定する。
【0058】
次に図4を参照すると、クラウド・コンピューティング・ノード10とすることができるコンピューティング・ノードの一例の概略図である。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの1つの例にすぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関していかなる限定も示唆するようには意図されない。それとは関係なく、クラウド・コンピューティング・ノード10は、先に記載された機能のうちのいずれかを実装すること、実行すること、あるいはその両方が可能である。本発明の一実施形態では、セキュア・ゲスト210(図2)、セキュア・インタフェース・コントロール230(図2)、またはハイパーバイザ220(図2)、あるいはその組合せは、各々、クラウド・コンピューティング・ノード10(図4)上で実行されるとして理解することができ、クラウド・コンピューティング・ノード10でない場合、クラウド・コンピューティング・ノード10の態様を含む1つまたは複数の汎用コンピューティング・ノードである。
【0059】
クラウド・コンピューティング・ノード10には、多数の他の汎用または専用コンピューティング・システム環境または構成により動作するコンピュータ・システム/サーバ12がある。コンピュータ・システム/サーバ12で使用するのに好適であり得るよく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例には、限定はしないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上述のシステムまたはデバイスのうちのいずれかを含む分散型クラウド・コンピューティング環境などが含まれる。
【0060】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈に記載され得る。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ12は、通信ネットワークを通してリンクされるリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実践され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム記憶媒体に配置することができる。
【0061】
図4に示すように、クラウド・コンピューティング・ノード10として利用することができるコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12の構成要素は、限定はしないが、1つまたは複数のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28を含む様々なシステム構成要素をプロセッサ16に結合するバス18とを含むことができる。
【0062】
バス18は、メモリ・バスもしくはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィック・ポート、およびプロセッサ、または様々なバス・アーキテクチャのうちのいずれかを使用するローカル・バスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。例として、限定ではなく、そのようなアーキテクチャは、産業標準アーキテクチャ(ISA)バス、マイクロチャネル・アーキテクチャ(MCA)バス、拡張型ISA(EISA)バス、ビデオ エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。
【0063】
コンピュータ・システム/サーバ12は、一般に、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセス可能である任意の利用可能な媒体とすることができ、揮発性および不揮発性媒体、取り外し可能および取り外し不能媒体の両方を含む。
【0064】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方などの揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含むことができる。単に例として、ストレージ・システム34は、取り外し不能な不揮発性の磁気媒体(図示せず、一般に「ハード・ドライブ」と呼ばれる)との間の読み出しおよび書き込みのために設けることができる。図示されていないが、取り外し可能な不揮発性の磁気ディスク(例えば、「フロッピー(登録商標)・ディスク」)との間の読み出しおよび書き込みのための磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROM、または他の光媒体などの取り外し可能な不揮発性の光ディスクとの間の読み出しおよび書き込みのための光ディスク・ドライブを設けることができる。そのような例では、各々は、1つまたは複数のデータ媒体インタフェースによってバス18に接続することができる。以下でさらに図示および説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
【0065】
プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データは、例として、限定ではなく、メモリ28に格納することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの組合せの各々は、ネットワーキング環境の実施態様を含むことができる。プログラム・モジュール42は、一般に、本明細書で説明されるような本発明の実施形態の機能または方法あるいはその両方を実行する。
【0066】
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24などのような1つまたは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話できるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信することができる。そのような通信は、入力/出力(I/O)インタフェース22を介して行うことができる。さらにまた、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他の構成要素と通信する。図示されていないが、他のハードウェアまたはソフトウェア・コンポーネントあるいはその両方が、コンピュータ・システム/サーバ12とともに使用されてもよいことを理解されたい。例には、限定はしないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスクドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれる。
【0067】
本開示はクラウド・コンピューティングの詳細な説明を含むが、本明細書に列挙される教示の実施態様はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているまたは後に開発される他のタイプのコンピュータ環境に関連して実施され得る。
【0068】
クラウド・コンピューティングは、最小の管理労力またはサービスのプロバイダとの対話により迅速にプロビジョニングおよび解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに便利なオン・デマンド・ネットワーク・アクセスを可能にするためのサービス送出のモデルである。このクラウド・モデルは、少なくとも5つの特性と、少なくとも3つのサービス・モデルと、少なくとも4つの配備モデルとを含むことができる。
【0069】
特性は以下の通りである。
【0070】
オン・デマンド・セルフサービス:クラウド消費者は、サービス・プロバイダとの人間の対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0071】
ブロード・ネットワーク・アクセス:機能は、ネットワークを介して利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば、モバイル・フォン、ラップトップ、およびPDA)による使用を促進する標準機構を通してアクセスされる。リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用して多数の消費者にサービスするためにプールされ、様々な物理的および仮想リソースが、要求に応じて動的に割り当ておよび再割り当てされる。消費者は、一般に、提供されるリソースの正確な位置に関して制御できないかまたは知識を有していないが、より高い抽象化レベルの位置(例えば、国、州、またはデータセンター)を指定することができる可能性があるという点で、位置独立の感覚がある。迅速な順応性:機能が、迅速に順応的にプロビジョニングされて、場合によっては自動的に、素早くスケール・アウトし、迅速に開放されてスケール・インされ得る。消費者にとって、プロビジョニングのために利用可能な機能は、多くの場合、無制限に見え、任意の数量をいつでも購入することができる。
【0072】
従量制サービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した何らかの抽象化レベルの計測機能を活用することによって、リソース使用を自動的に制御および最適化する。リソースの使用状況をモニタし、制御し、報告することができ、利用されたサービスのプロバイダと消費者の両方に透明性を提供することができる。
【0073】
サービス・モデルは以下の通りである:
【0074】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インタフェース(例えば、ウェブ・ベースの電子メール)を通して様々なクライアント・デバイスからアクセス可能である。消費者は、限定的なユーザ固有のアプリケーション構成設定をあり得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらに個々のアプリケーション機能を含む基礎をなすクラウド・インフラストラクチャを管理または制御しない。
【0075】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された消費者作成または獲得アプリケーションをクラウド・インフラストラクチャ上に配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャを管理または制御しないが、配備されたアプリケーションと、ことによると、アプリケーション・ホスティング環境構成とを制御する。
【0076】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、消費者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを配備し、実行することができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションを制御し、ことによると、選択ネットワーキング構成要素(例えば、ホスト・ファイアウォール)を限定的に制御する。
【0077】
配備モデルは以下の通りである。
【0078】
プライベート・クラウド:クラウド・インフラストラクチャは組織のためにのみ運用される。クラウド・インフラストラクチャは、組織またはサード・パーティが管理することができ、施設内または施設外に存在することができる。
【0079】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織またはサード・パーティが管理することができ、施設内または施設外に存在することができる。
【0080】
パブリック・クラウド:クラウド・インフラストラクチャは、公衆または大規模業界団体が利用可能であり、クラウド・サービスを販売する組織によって所有される。
【0081】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーション可搬性を可能にする標準技術または専用技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(例えば、プライベート、コミュニティ、またはパブリック)の複合である。
【0082】
クラウド・コンピューティング環境は、ステートレス性、低結合、モジュール性、および意味相互運用性に重点をおいたサービス指向である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0083】
次に図5を参照すると、例示的なクラウド・コンピューティング環境50が示される。図示のように、クラウド・コンピューティング環境50は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしく携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどが通信することができる1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。ノード10は、先に記載されたようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組合せなどの1つまたは複数のネットワークにおいて物理的にまたは仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド消費者がローカル・コンピューティング・デバイスにリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。図5に示されたコンピューティング・デバイス54A~54Nのタイプは単に例示であることが意図されていることと、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続あるいはその両方を介して(例えば、ウェブ・ブラウザを使用して)任意のタイプのコンピュータ化デバイスと通信できることとを理解されたい。
【0084】
次に、図6を参照すると、クラウド・コンピューティング環境50(図5)によって提供される機能抽象化層のセットが示される。図6に示された構成要素、層、および機能は、単に例示であることが意図されており、本発明の実施形態はそれに限定されないことを予め理解されたい。図示のように、以下の層および対応する機能が提供される。
【0085】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例には、メインフレーム61と、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベース・サーバ62と、サーバ63と、ブレード・サーバ64と、ストレージ・デバイス65と、ネットワークおよびネットワーキング構成要素66とが含まれる。実施形態によっては、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67と、データベース・ソフトウェア68とを含む。
【0086】
仮想化層70は、仮想エンティティの以下の例、すなわち、仮想サーバ71と、仮想ストレージ72と、仮想プライベート・ネットワークを含む仮想ネットワーク73と、仮想アプリケーションおよびオペレーティング・システム74と、仮想クライアント75とを備えることができる抽象化層を提供する。
【0087】
1つの例では、管理層80は、以下で説明する機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を行う。計測および価格設定82は、リソースがクラウド・コンピューティング環境内で利用されたときにコスト追跡を行い、これらのリソースの消費に対する請求書または送り状を送る。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクのアイデンティティ検証、ならびにデータおよび他のリソースの保護を行う。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセス権を提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割り当ておよび管理を行う。サービス品質保証契約(SLA)計画および履行85は、将来必要なことがSLAによって予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
【0088】
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション91と、ソフトウェア開発およびライフサイクル管理92と、仮想教室教育デリバリ(virtual classroom education delivery)93と、データ分析処理94と、トランザクション処理95と、セキュア・インタフェース・コントロール96を介して実行時中にセキュア・ゲストの機能を制御することとが含まれる。
【0089】
本発明は、任意の可能な技術的な詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つのコンピュータ可読記憶媒体(または複数の媒体)を含むことができる。
【0090】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(登録商標)・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的符号化デバイス、および前述のものの任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などのそれ自体一過性信号であると解釈されるべきではない。
【0091】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0092】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSmalltalk(登録商標)、C++などのようなオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータでおよび部分的にリモート・コンピュータで、または完全にリモート・コンピュータもしくはサーバで実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよい。または外部コンピュータへの接続がなされてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
【0093】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照して本明細書に記載されている。フローチャートまたはブロック図あるいはその両方の各ブロック、およびフローチャートまたはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実現され得ることが理解されるであろう。
【0094】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するための手段を創出するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を構成するように、コンピュータ可読記憶媒体に格納されて、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定のやり方で機能するように指示することができるものであってもよい。
【0095】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するように、コンピュータ実装プロセスを作り出すために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイスで一連の動作ステップを実行させるものであってもよい。
【0096】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関しては、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替の実施態様では、ブロックに記された機能は、図に記された順序から外れて行われてもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは、時には、関連する機能に応じて逆の順序で実行されてもよい。ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方のブロックの組合せは、指定された機能または動作を実行するかあるいは専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムで実施することができることにも留意されたい。
【0097】
本明細書で使用される用語は、単に特定の実施形態を説明するためのものであり、限定するようには意図されていない。本明細書で使用される「ある(a)」、「1つの(an)」、および「その(the)」という単数形は、文脈がそうでないと明確に示さない限り、複数形もまた含むように意図される。「備える、含む(comprises)」または「備えている、含んでいる(comprising)」あるいはその両方の用語は、本明細書で使用された場合、明示された特徴、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはその組合せの存在または追加を排除しないことがさらに理解されよう。
【0098】
以下の特許請求の範囲における対応する構造、材料、動作、およびすべての手段またはステップに機能要素を加えた均等物は、もしあれば、明確に特許請求されている他の特許請求された要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図される。1つまたは複数の実施形態の説明は、例証および説明の目的のために提示されたが、網羅的であることまたは開示された形態に限定されることを意図されていない。多くの変形および変更が当業者には明らかであろう。実施形態は、様々な態様および実際の用途を最もよく説明するように、および企図された特定の使用に適するような様々な変形を伴う様々な実施形態を当業者が理解できるように選ばれ説明された。
図1
図2
図3
図4
図5
図6