(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-01
(54)【発明の名称】セキュアなゲストの多部分メタデータのカスタマイゼーション
(51)【国際特許分類】
G06F 21/64 20130101AFI20240725BHJP
G06F 21/10 20130101ALI20240725BHJP
G06F 9/455 20180101ALI20240725BHJP
【FI】
G06F21/64
G06F21/10 350
G06F9/455 150
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024502507
(86)(22)【出願日】2022-08-03
(85)【翻訳文提出日】2024-01-16
(86)【国際出願番号】 EP2022071772
(87)【国際公開番号】W WO2023012200
(87)【国際公開日】2023-02-09
(32)【優先日】2021-08-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ブエントゲン、ラインハルト
(72)【発明者】
【氏名】ブラッドベリー、ジョナサン
(57)【要約】
信頼実行環境は、セキュアなゲスト・イメージと、セキュアなゲストを開始するために使用されるメタデータとを取得する。メタデータは、複数の部分、および複数の完全性尺度を含む。メタデータの第1の部分は、複数の完全性尺度のうち1つまたは複数の完全性尺度を含み、メタデータの第2の部分は、セキュアなゲストのカスタマイズされた機密データ、および複数の完全性尺度のうち1つまたは複数の他の完全性尺度を含む。信頼実行環境は、メタデータの複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、メタデータの少なくとも1つの選択部分を検証するために使用される。メタデータの少なくとも1つの選択部分の検証成功に基づいて、信頼実行環境は、セキュアなゲスト・イメージおよびメタデータの少なくとも一部分を使用して、セキュアなゲストを開始する。
【特許請求の範囲】
【請求項1】
コンピューティング環境内で処理を容易にするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶された、
信頼実行環境によって、セキュアなゲスト・イメージと、セキュアなゲストを開始するために使用されるメタデータとを取得することであって、前記メタデータが、複数の部分、および複数の完全性尺度を含み、前記メタデータの第1の部分が、前記複数の完全性尺度のうち1つまたは複数の完全性尺度を含み、前記メタデータの第2の部分が、前記セキュアなゲストのカスタマイズされた機密データ、および前記複数の完全性尺度のうち1つまたは複数の他の完全性尺度を含む、前記取得することと、
前記信頼実行環境を使用して、前記メタデータの前記複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、前記メタデータの少なくとも1つの選択部分を検証することと、
前記信頼実行環境によって、前記セキュアなゲスト・イメージおよび前記メタデータの少なくとも一部分を使用して、前記メタデータの前記少なくとも1つの選択部分の検証成功に基づいて、前記セキュアなゲストを開始することと
を含む方法を実施するためのプログラム命令と
を含む、コンピュータ・プログラム製品。
【請求項2】
前記メタデータの前記第1の部分が、完全性保護され、第1の暗号化部分を含み、前記メタデータの前記第2の部分が、完全性保護され、第2の暗号化部分を含み、前記信頼実行環境が、前記第1の暗号化部分および前記第2の暗号化部分を復号化するように、排他的に構成され、前記第1の暗号化部分および前記第2の暗号化部分のうち少なくとも1つが、前記セキュアなゲストに関連する処理に使用される選択機密データを含む、請求項1に記載のコンピュータ・プログラム製品。
【請求項3】
前記メタデータの前記少なくとも1つの選択部分を前記検証することが、前記メタデータの前記第1の部分の完全性を検証することを含み、前記メタデータの前記第1の部分の完全性を前記検証することが、
前記セキュアなゲストのメモリにロードされた前記セキュアなゲスト・イメージの少なくとも1つの完全性測定を実施して結果を取得することと、前記結果が、前記メタデータの前記第1の部分の前記1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度との所定の関係性を有するか判断することと、
前記メタデータの前記第1の部分の前記1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、前記メタデータの前記第1の部分の選択情報の完全性を検証することと
を含む、請求項1または2に記載のコンピュータ・プログラム製品。
【請求項4】
前記メタデータの前記少なくとも1つの選択部分を前記検証することが、前記メタデータの前記第2の部分の前記1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度を使用して前記メタデータの前記第2の部分の完全性を検証することを含む、請求項1ないし3のいずれかに記載のコンピュータ・プログラム製品。
【請求項5】
前記メタデータの前記第2の部分の前記完全性を前記検証することが、前記メタデータの前記第1の部分の少なくとも1つの完全性測定を実施して結果を取得することと、前記結果が、前記メタデータの前記第2の部分の前記1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度との所定の関係性を有するか判断することとを含む、請求項4に記載のコンピュータ・プログラム製品。
【請求項6】
前記方法が、前記メタデータの前記第2の部分の前記完全性を検証することに少なくとも基づいて、前記カスタマイズされた機密データの使用を可能にすることをさらに含む、請求項5に記載のコンピュータ・プログラム製品。
【請求項7】
前記セキュアなゲストを前記開始することが、前記メタデータの前記第1の部分の検証成功に基づいて、かつ前記メタデータの前記第2の部分の検証に先立って、実施される、請求項1ないし6のいずれかに記載のコンピュータ・プログラム製品。
【請求項8】
前記セキュアなゲストを前記開始することが、前記メタデータの前記第1の部分および前記メタデータの前記第2の部分の検証成功に基づいて実施される、請求項1ないし7のいずれかに記載のコンピュータ・プログラム製品。
【請求項9】
前記メタデータが、1つまたは複数の処理制約を含み、前記方法が、前記1つまたは複数の処理制約のうち、少なくとも1つの処理制約の少なくとも1つのチェックを実施することをさらに含み、前記セキュアなゲストを前記開始することが、前記少なくとも1つのチェックが少なくとも成功したことに基づいて実施される、請求項1ないし8のいずれかに記載のコンピュータ・プログラム製品。
【請求項10】
前記メタデータの前記第1の部分が、前記セキュアなゲストの作成者の機密データをさらに含み、前記方法が、前記カスタマイズされた機密データに対する要求に基づいて、前記メタデータの前記第2の部分に記憶された前記カスタマイズされた機密データを、前記信頼実行環境から前記セキュアなゲストに提供することをさらに含む、請求項1ないし9のいずれかに記載のコンピュータ・プログラム製品。
【請求項11】
コンピューティング環境内で処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサと
を備え、前記コンピュータ・システムが、方法を実行するように構成され、前記方法が、
信頼実行環境によって、セキュアなゲスト・イメージと、セキュアなゲストを開始するために使用されるメタデータとを取得することであって、前記メタデータが、複数の部分、および複数の完全性尺度を含み、前記メタデータの第1の部分が、前記複数の完全性尺度のうち1つまたは複数の完全性尺度を含み、前記メタデータの第2の部分が、前記セキュアなゲストのカスタマイズされた機密データ、および前記複数の完全性尺度のうち1つまたは複数の他の完全性尺度を含む、前記取得することと、
前記信頼実行環境を使用して、前記メタデータの前記複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、前記メタデータの少なくとも1つの選択部分を検証することと、
前記信頼実行環境によって、前記セキュアなゲスト・イメージおよび前記メタデータの少なくとも一部分を使用して、前記メタデータの前記少なくとも1つの選択部分の検証成功に基づいて、前記セキュアなゲストを開始することと
を含む、コンピュータ・システム。
【請求項12】
前記メタデータの前記第1の部分が、完全性保護され、第1の暗号化部分を含み、前記メタデータの前記第2の部分が、完全性保護され、第2の暗号化部分を含み、前記信頼実行環境が、前記第1の暗号化部分および前記第2の暗号化部分を復号化するように、排他的に構成され、前記第1の暗号化部分および前記第2の暗号化部分のうち少なくとも1つが、前記セキュアなゲストに関連する処理に使用される選択機密データを含む、請求項11に記載のコンピュータ・システム。
【請求項13】
前記メタデータの前記少なくとも1つの選択部分を前記検証することが、前記メタデータの前記第1の部分の完全性を検証することを含み、前記メタデータの前記第1の部分の完全性を前記検証することが、
前記セキュアなゲストのメモリにロードされた前記セキュアなゲスト・イメージの少なくとも1つの完全性測定を実施して結果を取得することと、前記結果が、前記メタデータの前記第1の部分の前記1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度との所定の関係性を有するか判断することと、
前記メタデータの前記第1の部分の前記1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、前記メタデータの前記第1の部分の選択情報の完全性を検証することと
を含む、請求項11または12に記載のコンピュータ・システム。
【請求項14】
前記メタデータの前記少なくとも1つの選択部分を前記検証することが、前記メタデータの前記第2の部分の前記1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度を使用して前記メタデータの前記第2の部分の完全性を検証することを含む、請求項11ないし13のいずれかに記載のコンピュータ・システム。
【請求項15】
前記メタデータの前記第2の部分の前記完全性を前記検証することが、前記メタデータの前記第1の部分の少なくとも1つの完全性測定を実施して結果を取得することと、前記結果が、前記メタデータの前記第2の部分の前記1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度との所定の関係性を有するか判断することとを含み、
前記方法が、前記メタデータの前記第2の部分の前記完全性を検証することに少なくとも基づいて、前記カスタマイズされた機密データの使用を可能にすることをさらに含む、請求項14に記載のコンピュータ・システム。
【請求項16】
コンピューティング環境内で処理を容易にするコンピュータ実装方法であって、前記コンピュータ実装方法が、
信頼実行環境によって、セキュアなゲスト・イメージと、セキュアなゲストを開始するために使用されるメタデータとを取得することであって、前記メタデータが、複数の部分、および複数の完全性尺度を含み、前記メタデータの第1の部分が、前記複数の完全性尺度のうち1つまたは複数の完全性尺度を含み、前記メタデータの第2の部分が、前記セキュアなゲストのカスタマイズされた機密データ、および前記複数の完全性尺度のうち1つまたは複数の他の完全性尺度を含む、前記取得することと、
前記信頼実行環境を使用して、前記メタデータの前記複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、前記メタデータの少なくとも1つの選択部分を検証することと、
前記信頼実行環境によって、前記セキュアなゲスト・イメージおよび前記メタデータの少なくとも一部分を使用して、前記メタデータの前記少なくとも1つの選択部分の検証成功に基づいて、前記セキュアなゲストを開始することと
を含む、コンピュータ実装方法。
【請求項17】
前記メタデータの前記第1の部分が、完全性保護され、第1の暗号化部分を含み、前記メタデータの前記第2の部分が、完全性保護され、第2の暗号化部分を含み、前記信頼実行環境が、前記第1の暗号化部分および前記第2の暗号化部分を復号化するように、排他的に構成され、前記第1の暗号化部分および前記第2の暗号化部分のうち少なくとも1つが、前記セキュアなゲストに関連する処理に使用される選択機密データを含む、請求項16に記載のコンピュータ実装方法。
【請求項18】
前記メタデータの前記少なくとも1つの選択部分を前記検証することが、前記メタデータの前記第1の部分の完全性を検証することを含み、前記メタデータの前記第1の部分の完全性を前記検証することが、
前記セキュアなゲストのメモリにロードされた前記セキュアなゲスト・イメージの少なくとも1つの完全性測定を実施して結果を取得することと、前記結果が、前記メタデータの前記第1の部分の前記1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度との所定の関係性を有するか判断することと、
前記メタデータの前記第1の部分の前記1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、前記メタデータの前記第1の部分の選択情報の完全性を検証することと
を含む、請求項16または17に記載のコンピュータ実装方法。
【請求項19】
前記メタデータの前記少なくとも1つの選択部分を前記検証することが、前記メタデータの前記第2の部分の前記1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度を使用して前記メタデータの前記第2の部分の完全性を検証することを含む、請求項16ないし18のいずれかに記載のコンピュータ実装方法。
【請求項20】
前記メタデータの前記第2の部分の前記完全性を前記検証することが、前記メタデータの前記第1の部分の少なくとも1つの完全性測定を実施して結果を取得することと、前記結果が、前記メタデータの前記第2の部分の前記1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度との所定の関係性を有するか判断することとを含み、
前記方法が、前記メタデータの前記第2の部分の前記完全性を検証することに少なくとも基づいて、前記カスタマイズされた機密データの使用を可能にすることをさらに含む、請求項19に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
1つまたは複数の態様は、一般にコンピューティング環境内の処理を容易にすることに関し、より詳細にはそのような処理を改善することに関する。
【背景技術】
【0002】
コンピューティング環境は、コンピューティング環境のハイパバイザまたは仮想機械マネージャが、コンピューティング環境の仮想機械または仮想サーバなど多様なゲストをホストする、仮想化をサポートすることができる。仮想機械は、システム・リソースへのアクセスを有し、ゲストのオペレーティング・システムなど、オペレーティング・システムを実行することができる。異なるゲストは、異なる所有者によって所有される可能性があり、このようなゲストのうち、一部はセキュアなゲストであり得る。
【0003】
従来のハイパバイザは、ホストされるゲストに対して完全な制御を有する。特に、ハイパバイザは、ホストされるゲストを検査すること、さらにはそのメモリを改変する能力を有する。しかしながら、セキュアなゲストは、完全には信頼できないハイパバイザによってホストされ得るゲストである。このようなセキュアなゲストのイメージは、ロード時に保護され、ゲストに割り当てられたリソース(例えば、メモリ、CPUレジスタ)のコンテンツの保護は、ゲストの存続期間を通して維持されることになる。ゲストの保護は、少なくとも完全性保護(例えば、ハイパバイザはどのゲスト状態も悪意を持って変更することはできない)を含み、加えてセキュアなゲストで実行中の初期イメージ、コード、およびデータの機密性を維持することを含むことができる。
【0004】
セキュアなゲストは、セキュアなゲストの機密データにアクセスしたい場合がある。このような機密データをセキュアなゲストに提供するために使用される処理が、容易にされる。
【発明の概要】
【0005】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品の提供を通じて、先行技術の欠点が克服され、さらなる利点が提供される。コンピュータ・プログラム製品は、方法を実行するために、1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令とを含む。方法は、信頼実行環境によって、セキュアなゲスト・イメージと、セキュアなゲストを開始するために使用されるメタデータとを取得することを含む。メタデータは、複数の部分、および複数の完全性尺度を含む。メタデータの第1の部分は、複数の完全性尺度のうち1つまたは複数の完全性尺度を含み、メタデータの第2の部分は、セキュアなゲストのカスタマイズされた機密データ、および複数の完全性尺度のうち1つまたは複数の他の完全性尺度を含む。信頼実行環境は、メタデータの複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、メタデータの少なくとも1つの選択部分を検証するために使用される。メタデータの少なくとも1つの選択部分の検証成功に基づいて、信頼実行環境は、セキュアなゲスト・イメージおよびメタデータの少なくとも一部分を使用して、セキュアなゲストを開始する。
【0006】
メタデータの複数の部分を提供することによって、例えば、ベンダ固有機密データと顧客固有機密データとを別個に維持できるようになる。また、セキュアなゲストを開始する際、または機密データへのアクセスを可能にする際、あるいはその両方において、各部分を別個にかつ独立的に使用できるようにすることによって、処理を容易にする。
【0007】
一例として、メタデータの第1の部分は、完全性保護され、第1の暗号化部分を含み、メタデータの第2の部分は、完全性保護され、第2の暗号化部分を含む。信頼実行環境は、第1の暗号化部分および第2の暗号化部分を復号化するように、排他的に構成される。第1の暗号化部分および第2の暗号化部分のうち少なくとも1つは、セキュアなゲストに関連する処理に使用される選択機密データを含む。信頼実行環境を、暗号化部分を復号化するように排他的に構成することによって、機密性が保証される。暗号化部分は、例えば、暗号化イメージを復号化する際、ゲストの所有者と通信する際、またはセキュアなゲストの実行中に使用する際、あるいはその組合せにおいて有用な機密データを含む場合がある。
【0008】
一例では、メタデータの少なくとも1つの選択部分を検証することは、メタデータの第1の部分の完全性を検証することを含む。メタデータの第1の部分の完全性を検証することは、例えばセキュアなゲストのメモリにロードされたセキュアなゲスト・イメージの少なくとも1つの完全性測定を実施して結果を取得することと、その結果が、メタデータの第1の部分の1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度との所定の関係性を有するか判断することとを含む。第1の部分の完全性を検証することはまた、例えばメタデータの第1の部分の1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、メタデータの第1の部分の選択情報の完全性を検証することを含む。メタデータの第1の部分の完全性を検証することによって、セキュアなゲストは不適切に開始されず、保護を維持する。
【0009】
一例では、メタデータの少なくとも1つの選択部分を検証することは、メタデータの第2の部分の1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度を使用してメタデータの第2の部分の完全性を検証することを含む。メタデータの第2の部分の完全性を検証することは、例えばメタデータの第1の部分の少なくとも1つの完全性測定を実施して結果を取得することと、その結果が、メタデータの第2の部分の1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度との所定の関係性を有するか判断することとを含む。メタデータの第2の部分にメタデータの第1の部分の測定値を含ませることによって、メタデータの第2の部分の作成者は、メタデータのその部分を、メタデータの非常に特定された第1の部分とだけ組み合わされるように制限することができる。このことにより、機密性とセキュリティの維持が容易になる。
【0010】
一実施形態では、カスタマイズされた機密データの使用は、少なくともメタデータの第2の部分の完全性を検証することに基づいて可能となる。
【0011】
一例として、セキュアなゲストを開始することは、メタデータの第1の部分の検証成功に基づいて、かつメタデータの第2の部分の検証に先立って、実施される。このことにより、セキュアなゲストを開始することが、メタデータの第2の部分の検証に先立って実施される。別の例として、セキュアなゲストを開始することは、メタデータの第1の部分およびメタデータの第2の部分の検証成功に基づいて実施される。
【0012】
一例では、メタデータは、1つまたは複数の処理制約を含む。1つまたは複数の処理制約のうち、少なくとも1つの処理制約の少なくとも1つのチェックが実施される。少なくとも1つのチェックが少なくとも成功したことに基づいて、セキュアなゲストを開始することが、実施される。各メタデータの部分が別個であるため、第1の部分からのチェックが実施されてもよく、次いでセキュアなゲストが開始されてもよい。その後、第2の部分からのチェックが実施されてもよい。別の実施形態では、両方の部分からのチェックが、例えばセキュアなゲストを開始するより前に、実施される。
【0013】
一例として、メタデータの第1の部分は、セキュアなゲストの作成者の機密データをさらに含む。さらに、一態様では、カスタマイズされた機密データに対する要求に基づいて、メタデータの第2の部分に記憶されたカスタマイズされた機密データは、信頼実行環境からセキュアなゲストに提供される。
【0014】
1つまたは複数の態様に関連するコンピュータ実装方法およびシステムもまた、本明細書において説明され、特許請求される。さらには、1つまたは複数の態様に関連するサービスも説明され、本明細書において特許請求され得る。
【0015】
追加的な特徴および利点は、本明細書において説明される技術を通じて実現される。他の実施形態および態様は、本明細書において詳細に説明され、特許請求される態様の一部と考えられる。
【0016】
1つまたは複数の態様が、本明細書の結論部における特許請求の範囲において例として、特に明示され、明確に特許請求される。前述、ならびに1つまたは複数の態様の目的、特徴および利点は、添付の図面と併せて以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0017】
【
図1】本発明の1つまたは複数の態様を組み込んで使用する、コンピューティング環境の一例の図である。
【
図2】本発明の1つまたは複数の態様による、セキュアなゲストに含められる機密データの一例の図である。
【
図3】本発明の1つまたは複数の態様に従って使用される多部分メタデータの一例の図である。
【
図4A】本発明の一態様による、多部分メタデータを使用してセキュアなゲストを開始する一例の図である。
【
図4B】本発明の一態様による、多部分メタデータを使用してセキュアなゲストを開始する一例の図である。
【
図5A】本発明の1つまたは複数の態様による、機密データをセキュアなゲストに挿入するプロセスの一例の図である。
【
図5B】本発明の1つまたは複数の態様による、機密データをセキュアなゲストに挿入するプロセスの一例の図である。
【
図5C】本発明の1つまたは複数の態様による、機密データをセキュアなゲストに挿入するプロセスの一例の図である。
【
図5D】本発明の1つまたは複数の態様による、機密データをセキュアなゲストに挿入するプロセスの一例の図である。
【
図6A】本発明の1つまたは複数の態様による、コンピューティング環境内で処理を容易にする一例の図である。
【
図6B】本発明の1つまたは複数の態様による、コンピューティング環境内で処理を容易にする一例の図である。
【
図6C】本発明の1つまたは複数の態様による、コンピューティング環境内で処理を容易にする一例の図である。
【
図7A】本発明の1つまたは複数の態様を組み込んで使用する、コンピューティング環境の別の例の図である。
【
図7B】本発明の1つまたは複数の態様による、
図7Aのメモリのさらなる詳細の図である。
【
図8】本発明の1つまたは複数の態様による、クラウド・コンピューティング環境の一実施形態の図である。
【
図9】本発明の1つまたは複数の態様による、抽象モデル・レイヤの一例の図である。
【発明を実施するための形態】
【0018】
本発明の1つまたは複数の態様によると、コンピューティング環境内で処理を容易にするための機能が提供される。一例として、機能は、機密データ(すなわち秘密)をコンピューティング環境のセキュアなゲストに提供することを含む。一例として、機密データは、セキュアなゲストのメタデータに含められ、メタデータは、信頼実行環境にロードされる。例えば、メタデータは、複数の(例えば、2つの)部分を含む。1つの部分は、1つまたは複数のセキュアなゲストを開始するために使用することができる、ベンダによって提供された少なくとも汎用ゲスト・イメージと、任意選択でベンダ固有機密データとを含み、別の部分は、セキュアなゲストに固有な情報を含む。例えば、他の部分は、顧客固有機密データを用いてカスタマイズされる。このカスタマイゼーションは、例えば、顧客がベンダ固有機密データを学習する必要なく/学習できることなく、またベンダが顧客固有機密データを学習する必要なく/学習できることなく実現される。第2の部分(すなわち他の部分)は、1つの部分に関連するが、一実施形態では、独立的かつ別個にセキュアなゲストに提供される。
【0019】
メタデータの2つの部分のそれぞれはまた、多部分メタデータの1つまたは複数の部分を検証するために使用される完全性尺度を含む。メタデータの少なくとも一部分は、セキュアなゲストを開始するより前に、検証される、または受け入れられる。
【0020】
本発明の1つまたは複数の態様を組み込んで使用するコンピューティング環境の一実施形態が、
図1を参照して説明される。一例として、コンピューティング環境は、インターナショナル・ビジネス・マシーンズ・コーポレーション(ニューヨーク州アーモンク)によって提供されるz/Architecture(R)命令セット・アーキテクチャに基づいている。z/Architecture(R)命令セット・アーキテクチャの一実施形態は、その全体が参照により本明細書に組み込まれる「z/Architecture(R) Principles of Operation」(IBM(R) Publication No.SA22-7832-12、第13版、2019年、9月)と題される出版物に記載されている。しかしながら、z/Architecture(R)命令セット・アーキテクチャは、アーキテクチャの一例に過ぎず、インターナショナル・ビジネス・マシーンズ・コーポレーションまたは他のエンティティあるいはその両方の、他のアーキテクチャまたは他のタイプのコンピューティング環境あるいはその両方は、本発明の1つまたは複数の態様を、含むこと、または使用すること、あるいはその両方が可能である。z/Architecture(R)およびIBM(R)は、少なくとも1つの管轄区においてインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。
【0021】
図1を参照すると、一例では、コンピューティング環境100は中央プロセッサ複合体(CPC)102を含む。中央プロセッサ複合体102は、例えば、IBM Z(R)サーバ(あるいはインターナショナル・ビジネス・マシーンズ・コーポレーションまたは他のエンティティによって提供される、他のサーバまたは機械)であり、例えば1つまたは複数のプロセッサ・ユニット(プロセッサとも称される)110と入力/出力(I/O)サブシステム111とに結合されたメモリ104(システム・メモリ、メイン・メモリ、メイン・ストレージ、中央ストレージ、ストレージとしても知られる)などの複数のコンポーネントを含む。例示のプロセッサ・ユニット110は、1つもしくは複数の汎用プロセッサ(中央プロセッサまたは中央処理ユニット(CPU)としても知られる)または1つもしくは複数の他のプロセッサあるいはその組合せを含む。IBM Z(R)は、少なくとも1つの管轄区においてインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。
【0022】
I/Oサブシステム111は中央プロセッサ複合体の一部とすることができるか、またはそれとは別個とすることができる。I/Oサブシステム111は、中央プロセッサ複合体に結合されたメイン・ストレージ104と入力/出力制御ユニット108と入力/出力(I/O)デバイス106との間の情報の流れを方向付ける。
【0023】
多くのタイプのI/Oデバイスを用いることができる。ある特定のタイプは、データ・ストレージ・デバイス140である。データ・ストレージ・デバイス140は、1つもしくは複数のプログラム142、1つもしくは複数のコンピュータ可読プログラム命令144、またはデータあるいはその組合せなどを記憶することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成することができる。
【0024】
中央プロセッサ複合体102は、リムーバブル/非リムーバブルの、揮発性/非揮発性のコンピュータ・システム記憶媒体を含むことができるか、またはそれらに結合することができるか、あるいはその両方である。例えば、中央プロセッサ複合体102は、非リムーバブルの、非揮発性の磁気媒体(典型的には「ハード・ドライブ」と呼ばれる)、リムーバブル、非揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)からの読み取りおよびそれへの書き込みのための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROMもしくは他の光学媒体などのリムーバブル、非揮発性の光学ディスクからの読み取りもしくはそれへの書き込みのための光学ディスク・ドライブ、あるいはそれらの組合せを含むことができるか、またはそれらに結合することができるか、あるいはその両方である。他のハードウェアまたはソフトウェアあるいはその両方のコンポーネントは、中央プロセッサ複合体102と併せて使用できることを理解されたい。例として、マイクロコードまたはミリコード、デバイス・ドライバ、冗長化処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、それに限定されない。
【0025】
さらには、中央プロセッサ複合体102は、多くの他の汎用または特殊目的の、コンピューティング・システム環境または構成で動作可能であり得る。中央プロセッサ複合体102での使用に適切であり得る良く知られているコンピューティング・システム、環境、または構成あるいはそれらの組合せの例は、パーソナル・コンピュータ(PC)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップのデバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスの任意のものを含む分散クラウド・コンピューティング環境などを含むが、それに限定されない。
【0026】
中央プロセッサ複合体102は、1つまたは複数の実施形態では、仮想化サポートを提供し、この場合、メモリ104は、例えば1つまたは複数の仮想機械112(ゲストとも称される)、仮想機械を管理するハイパバイザ114などの仮想機械マネージャ、信頼実行環境115(ウルトラバイザとも称される)およびプロセッサ・ファームウェア116を含む。ハイパバイザ114の一例は、インターナショナル・ビジネス・マシーンズ・コーポレーション(ニューヨーク州アーモンク)によって提供されるz/VM(R)ハイパバイザである。ハイパバイザは時にホストと称される。z/VMは、少なくとも1つの管轄区においてインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。
【0027】
1つまたは複数の実施形態では、信頼実行環境115は、少なくとも部分的に、例えば本明細書に記載されるようなプロセスを実施するように構成されたハードウェアまたはファームウェアあるいはその両方に実装されてもよい。信頼実行環境は、メモリ保護を強制するためにメモリ保護ハードウェアを利用した、信頼できるファームウェアまたはハードウェアあるいはその両方である。ゲストの所有者は、ホスト鍵文書に埋め込まれた公開ホスト鍵を使用することによって、(例えば、IBM(R) Secure Executionを使用して)安全に情報を信頼実行環境に渡すことができる。機密情報を処理するために、信頼実行環境は、一致するプライベート・ホスト鍵を使用する。プライベート・ホスト鍵は、サーバ、例えばIBM Z(R)サーバに固有であり、ハードウェア保護される。
【0028】
プロセッサ・ファームウェア116は、例えばプロセッサのマイクロコードまたはミリコードを含む。これには、例えばより高次の機械コードの実装形態で使用されるハードウェアレベルの命令またはデータ構造あるいはその両方が含まれる。一実施形態において、このようなコードは、例えば、典型的には基礎となるハードウェアに特有の信頼されたソフトウェア、マイクロコードまたはミリコードを含む、マイクロコードまたはミリコードとして提供されるプロプライエタリなコードを含み、オペレーティング・システムのシステム・ハードウェアへのアクセスを制御する。
【0029】
中央プロセッサ複合体の仮想機械のサポートは、それぞれが異なるプログラム120を動作させること、およびLinux(R)オペレーティング・システムなどのゲスト・オペレーティング・システム122を実行させることができる、多数の仮想機械112を動作させる能力を提供する。それぞれの仮想機械112は、別個のシステムとして機能することができる。すなわち、それぞれの仮想機械は、独立的にリセットされ、ゲストのオペレーティング・システムを実行し、異なるプログラムで動作することができる。仮想機械で実行中のオペレーティング・システムまたはアプリケーション・プログラムは、すべての完全なシステムへのアクセスを有しているように見えるが、実際にはその一部分のみが利用可能である。例としてz/VM(R)およびLinux(R)が提供されたが、他の仮想機械マネージャまたはオペレーティング・システムあるいはその両方が、本発明の1つまたは複数の態様に従って使用され得る。登録商標Linux(R)は、Linux Foundation、全世界における商標所有者である専用実施権者Linus Torvalds氏からのサブライセンスに準拠して使用される。
【0030】
一実施形態では、1つまたは複数のゲスト112は、セキュアなゲストである。
図2を参照すると、セキュアなゲスト200は、ハイパバイザ(例えば、ハイパバイザ114)がセキュアなゲストの状態(例えば、メモリ、レジスタなど)を観察することができないようなやり方で、ハイパバイザによって開始される。例えば、機密コンピューティングの一実施形態では、ハイパバイザは、セキュアなゲストを開始/停止することができ、ハイパバイザは、セキュアなゲストを開始するために使用されるデータがどこに位置するか分かっているが、実行中のセキュアなゲストを覗くことはできない。セキュアなゲストをロード/開始するために使用されるデータは、ハイパバイザがセキュアなゲストを見ることができないようなやり方で暗号化され得る。セキュアなゲスト・イメージの所有者は、機密データをセキュアなゲスト・メタデータに配置し、次いでセキュアなゲスト・メタデータとともにセキュアなゲスト・イメージを生成する。セキュアなゲストがロードされた後、セキュアなゲストの状態との任意の対話は、信頼実行環境115などの信頼実行環境によって処理される。
【0031】
一実施形態では、セキュアなゲストを開始するために、ハイパバイザは、ハイパバイザが既にメモリにロードしてあるセキュアなゲスト・イメージ210およびセキュアなゲスト・メタデータ220を、信頼実行環境115に渡す。メタデータは、完全性保護され、少なくとも部分的に機密保護され、一実施形態では、信頼実行環境によってのみ解釈される。セキュアなゲスト・メタデータ中の情報に基づいて、信頼実行環境は、次いで例えばハイパバイザのメモリにロードされたセキュアなゲスト・イメージの完全性を強制し、ロードされたイメージを含むセキュアなゲストのメモリがハイパバイザによってアクセスされないよう保護し、セキュアなゲストを開始する前にセキュアなゲスト・イメージを潜在的に復号化することが可能である。
【0032】
本発明の1つまたは複数の態様によると、セキュアなゲストのメタデータの機密保護された部分は、セキュアなゲスト向けにカスタマイズされ、この部分では顧客固有機密データ230がメタデータに追加される。一例として、この機密データは、顧客が任意のベンダ固有機密データを学習する必要なく/学習できることなく、またベンダが顧客固有機密データを学習する必要なく/学習できることなく、メタデータに追加される。一実施形態では、メタデータは複数の部分に分割される。特定の例として、メタデータは、2つの部分に分割されるが、他の実施形態では、メタデータは3つ以上の部分に分割されてもよい。2つの部分は、本明細書では、1つの部分または第1の部分、および別の部分または第2の部分と称される。第1および第2という使い方は、順序付けの任意のタイプを示すのではなく、これらは単に便宜的に使用される。分割されたメタデータのさらなる詳細は、
図3を参照して説明する。
【0033】
一例では、
図3を参照すると、メタデータ(例えば、メタデータ220)は、次の2つの部分に分割される:1つの部分、すなわち第1の部分300と、別の部分、すなわち第2の部分320である。一例では、第1の部分300は、完全性尺度308を使用して暗号法的に汎用のセキュアなゲスト・イメージ304に結び付けられ、例えばベンダ固有機密データ306、1つまたは複数の処理制約310、およびそれ自身の尺度312を含む。さらに、一例では、第2の部分320は、以下でさらに説明するように、例えば顧客固有機密データ326(例えば、機密データ230)、汎用のセキュアなゲスト・イメージの完全性尺度328、処理制約330、およびそれ自身の尺度332を含む。各部分は、独立的に完全性保護され、各部分は関連性があるが、互いに独立的である。1つの部分は、別の部分とは別個に、また異なる時間に、ゲストに与えられることがある。さらに、各部分は、他の実施形態では、追加的なデータ、より少ないデータ、または他のデータあるいはその組合せを含むことができる。
【0034】
一例として、メタデータの第1の部分(例えば、第1の部分300)は、例えば以下を含む:有効な信頼実行環境だけにメタデータの第1の部分300の解釈を許可する情報(例えば、メタデータの完全性を検証するため、およびメタデータの第1の部分300にある暗号化されたデータを復号化するために、鍵を取得する情報);開始対象となるセキュアなゲスト・イメージの1つまたは複数の完全性尺度(例えば、ハッシュ、メッセージ認証コード、暗号署名など);セキュアなゲスト・イメージの暗号化部分を復号化する1つまたは複数の鍵;使用環境および処理制約を制御する1つまたは複数の任意選択のフラグ;セキュアなゲスト・イメージの作成者の任意選択の機密データ;ならびに第1の部分300の他の情報の1つまたは複数の完全性尺度(例えば、ハッシュ、メッセージ認証コード、暗号署名など)。
【0035】
さらに、一例として、メタデータの第2の部分320は、例えば以下を含む:有効な信頼実行環境だけにメタデータの第2の部分320の解釈を許可する情報(例えば、メタデータの完全性を検証するため、およびメタデータの他の部分にある暗号化されたデータを復号化するために、鍵を取得する情報);任意選択で、開始対象となるセキュアなゲスト・イメージの1つまたは複数の完全性尺度(例えば、ハッシュ、メッセージ認証コード、暗号署名など);メタデータの第1の部分300の1つもしくは複数の完全性尺度の複製、または複製ではなく独立的に測定された第1の部分の1つもしくは複数の完全性尺度あるいはその両方;任意選択で、使用環境および処理制約を制御する1つまたは複数のフラグ;セキュアなゲスト・イメージのユーザの機密データ(すなわち、顧客固有機密データ);ならびに第2の部分320の他の情報の1つまたは複数の完全性尺度(例えば、ハッシュ、メッセージ認証コード、暗号署名など)。
【0036】
例示の情報は、メタデータの第1の部分と第2の部分の両方について与えられたが、追加的な情報、より少ない情報、または他の情報あるいはその組合せが、第1の部分、第2の部分、または両方の部分に与えられ得る。
【0037】
本発明の1つまたは複数の態様によると、メタデータの複数の部分の1つまたは複数の部分は、
図4A~
図4Bを参照して説明されるように、セキュアなゲストを開始するために使用される。
【0038】
まず
図4Aを参照すると、一実施形態では、信頼実行環境(例えば、信頼実行環境115)は、セキュアなゲストの多部分メタデータを取得する400。信頼実行環境は、セキュアなゲスト・イメージを受け取り、メタデータの少なくとも一部分(例えば、第1の部分300)を使用して、任意選択でこれをアンパック(例えば、復号化)する402。信頼実行環境は、メタデータの少なくとも一部分の、1つまたは複数の完全性チェックを実施する404。例えば、信頼実行環境は、メタデータの第1の部分、およびメタデータの第2の部分の完全性を検証する。一実施形態では、メタデータの第1の部分の完全性の検証は、セキュアなゲストを開始するより前に実施され、メタデータの第2の部分の完全性の検証は、本明細書で説明するように、セキュアなゲストを開始するより前に、またはセキュアなゲストを開始したことに続いて実施されてもよい。
【0039】
一例では、メタデータの第1の部分の完全性を検証するために、セキュアなゲストのメモリにロードされたセキュアなゲスト・イメージの少なくとも1つの完全性測定を実施して(例えば、現在既知のまたは後世で開発される1つまたは複数の技術を使用した、ハッシュ、メッセージ認証コード、または署名検証の計算など)結果(例えば、ハッシュ、メッセージ認証コード、暗号署名など)が取得され、その結果が、メタデータの第1の部分に含まれる1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度との所定の関係性(例えば、等しい)を有するかどうかに関して、判断が行われる。例えば、結果が、メタデータの第1の部分における対応する完全性尺度と等しければ、検証は成功である。さらに、一例では、メタデータの第1の部分の選択情報の完全性は、メタデータの第1の部分の1つまたは複数の完全性尺度を使用することによって、検証される。例えば、選択情報に関連する1つまたは複数の完全性尺度は、第1の部分における1つまたは複数の対応する完全性尺度と比較され、これらが所定の関係性(例えば、等しい)を有していれば、選択情報の完全性が検証される。
【0040】
メタデータの第2の部分の完全性を検証するために、一実施形態では、メタデータの第1の部分の少なくとも1つの完全性測定を実施して結果(例えば、ハッシュ、メッセージ認証コード、暗号署名など)が取得され、その結果が、メタデータの第2の部分に含まれる1つまたは複数の他の完全性尺度のうち少なくとも1つの完全性尺度との所定の関係性(例えば、等しい)を有するかどうかに関して、判断が行われる。例えば、結果が、メタデータの第2の部分における対応する完全性尺度と等しければ、検証は成功である。さらに、一例では、メタデータの第2の部分の選択情報の完全性は、メタデータの第2の部分の1つまたは複数の完全性尺度を使用することによって、検証される。例えば、選択情報に関連する1つまたは複数の完全性尺度は、第2の部分における1つまたは複数の対応する完全性尺度と比較され、これらが所定の関係性(例えば、等しい)を有していれば、選択情報の完全性は検証される。
【0041】
本明細書では検証の例が説明されたが、第1の部分、第2の部分、または両方の部分の完全性を検証するために、追加的な検証、より少ない検証、または他の検証あるいはその組合せが、実施されてもよい。
【0042】
(例えば、第1の部分または第2の部分あるいはその両方の)実施された完全性チェックのいずれかが検証に成功すれば、セキュアなゲストを開始するプロセスは、続行することができる。
【0043】
一実施形態では、メタデータの第1および第2の両方の部分は、セキュアなゲストを開始することができる環境(例えば、特定のシステム構成)を制約することができる情報を含み、セキュアなゲストの動作に対して特定の制約を含む(例えば、セキュアなゲストをダンプすることを許可する)場合がある。信頼実行環境は、メタデータの少なくとも一部分の、1つまたは複数の処理制約チェックを実施する406。やはり、部分ごとのチェックは、独立的に実施することができ、例えば、メタデータの第1の部分を使用するチェックは、セキュアなゲストを開始するより前に実施されるが、メタデータの第2の部分を使用するチェックは、セキュアなゲストを開始するより前に、またはその開始に続いて実施される。(別の実施形態では、メタデータの第1の部分と第2の部分の両方を使用する処理制約チェックは、セキュアなゲストの開始に続いて実施することができる;他の変形形態もまた可能である。)チェックされる(例えば、環境的な、または動作上の、あるいはその両方の)処理制約が、信頼実行環境の環境によって満足されれば、セキュアなゲストを開始するプロセスは、続行することができる。セキュアなゲスト・メタデータの複数の部分のいずれによっても制約されない動作は、セキュアなゲスト上で実施することができる。
【0044】
実施されたチェック(例えば、完全性および処理)のいずれかが失敗した場合410、セキュアなゲストは開始されず412、処理が完了する。しかしながら、実施されたチェックが成功した場合、信頼実行環境によってセキュアなゲスト・イメージを使用してセキュアなゲストが開始される414。例えば、信頼実行環境は、中央処理ユニットをセキュアなゲスト実行状態に遷移させ、プログラム・カウンタを、例えばメタデータの第1の部分に含まれていることで信頼実行環境には既知である、セキュアなゲスト開始アドレスにセットする。
【0045】
その後、
図4Bを参照すると、追加的なチェックが実施されるかどうかに関する判断が行われる416。例えば、メタデータの第2の部分の完全性または処理制約あるいはその両方のチェックが以前に実施されていなかった場合、メタデータの第2の部分のチェックは、信頼実行環境によって実施される418。完全性検証または処理制約チェックあるいはその両方を含むチェックの例は、上述してある。チェックのいずれかが失敗した場合420、顧客固有機密データは利用することができず422、処理は完了する。しかしながら、追加的なチェックが成功した場合、または追加的なチェックがない場合(例えば、404と406で実施されたチェックが、メタデータの第1の部分と第2の部分の両方に対するチェックを含んでいた場合)、顧客固有機密データは利用可能となる424。処理は完了する。
【0046】
チェック(例えば、完全性および処理制約のチェック)は、例えば信頼実行環境が、セキュアなゲストを開始するために(例えば、1つまたは複数の信頼実行環境関数を使用して)例えばハイパバイザから1つまたは複数のコールを受信したことに基づいて、信頼実行環境によって実施される。一例では、セキュアなゲスト・イメージおよびメタデータの部分1をサブミットするコール、およびメタデータの部分2をサブミットする別のコールが存在する。他の例では、以下が存在する:イメージおよびメタデータの両方の部分をサブミットする1つのコール;イメージのそれぞれおよび各メタデータ部分用に1つのコール;イメージ用に1つのコール、およびメタデータの両方の部分用に1つのコール;あるいは、これらの1つまたは複数の組合せ。多様な可能性が存在する。
【0047】
セキュアなゲスト・メタデータの各部分の完全性は、第1の部分がセキュアなゲスト・イメージの完全性をチェックし、任意選択で、暗号化されたデータを復号化するために使用されるやり方でチェックされる。さらには、信頼実行環境は、第2の部分にあるセキュアなゲスト・イメージの完全性データが、セキュアなゲスト・イメージと一致するかどうかをチェックすることができる。
【0048】
セキュアなゲストの実行中、信頼実行環境は、メタデータの両方の部分の機密データおよび動作上の制約を考慮する。一例では、例えば第1の部分の完全性が第1の部分のメタデータ完全性尺度を使用して検証することができ、セキュアなゲスト・イメージがメタデータの第1の部分からのデータを使用して開始するために準備することができ、ロードされたセキュアなゲストの完全性が第1の部分と第2の部分両方からの汎用セキュア・イメージの完全性尺度を使用して検証することができ、第2の部分にある第1の部分の完全性尺度が第1の部分の完全性を検証するために使用することができる場合、信頼実行環境は、セキュアなゲスト・イメージのための2部分のメタデータを提示されると、メタデータの第2の部分(または、両方の部分の機密データの組合せ)にある機密データを使用してセキュアなゲストを開始する。
【0049】
ユーザによってセキュアなゲスト・メタデータの第2の部分に記憶される顧客固有機密データの例としては、以下が挙げられる:特定のデバイス(例えば、ハードウェアのセキュリティ・モジュール)をセキュアなゲスト・イメージにバインドするために使用される機密データ、セキュアなゲストのブート・プロセス内でセルフカスタマイゼーション・ルーチンの間にセキュアなゲストによって信頼実行環境からロードされ得る機密データ、または鍵、パスワード、あるいはその組合せなど。特定の機密データは、セキュアなゲストによって使用され得るが、セキュアなゲストに対して提供または明らかにされず(例えば、特定のデバイスをバインドする機密データ)、機密データの他の項目は、セキュアなゲストに提供されてもよい(例えば、鍵、パスワードなど)。本明細書で使用される場合、要求に基づいてセキュアなゲストに提供され得る顧客固有機密データとは、ロード可能な顧客固有機密データと称される。
【0050】
一例では、第2の部分からの顧客固有機密データの少なくとも一部分が、セキュアなゲストに取り込まれる場合、これはセキュアなゲストの開始の間に生じる(例えば、セキュアなゲストがプロセッサを制御できるようになるより前に、または制御できるようになった直後のいずれかであるが、第1の外部通信より前)。
【0051】
一実施形態では、セキュアなゲストがロードされたことに続いて、セキュアなゲストは、本発明の1つまたは複数の態様に従って、そのロード可能な顧客固有機密データを要求することができる。一態様では、ロード可能な顧客固有機密データは、ロードされているセキュアなゲスト・イメージをリロードすることなく、または変更することなく、セキュアなゲストに提供される。さらにまた、信頼実行環境は、機密データをセキュアなゲストに配置するために、セキュアなゲストのメモリ・レイアウトを知る必要がない。さらに、一実施形態では、この機密データは、セキュアなゲストが機密データのプレーン・テキストの値を知ることのないやり方で、セキュアなゲストに与えられる。別の実施形態では、機密データは、プレーン・テキストのデータとしてセキュアなゲストに返される。
【0052】
本発明の一態様によると、セキュアなゲストのメタデータの選択された部分(例えば、セキュアなゲスト・メタデータの部分2)は、顧客固有機密データを含むように拡張される。一例では、セキュアなゲストのメタデータ(例えば、セキュアなゲスト・メタデータの部分2)は、機密データの1つまたは複数の識別子とともに顧客固有機密データを含むように拡張される。さらに別の例では、セキュアなゲストのメタデータ(例えば、セキュアなゲスト・メタデータの部分2)は、機密データをプレーン・テキストの値としてセキュアなゲストに返すことができるかどうかを示すために使用されるインジケータを含むようにさらに拡張される。他の可能性もある。一実施形態では、顧客固有機密データ、関連識別子、およびインジケータは、セキュアなゲストの開始時に信頼実行環境によって使用されるデータ構造に含められる。
【0053】
(例えば、セキュアなゲスト・イメージのロード、またはゲストの所有者以外のソースからのロードあるいはその両方に続いて)セキュアなゲストを開始すること、および顧客固有機密データをセキュアなゲストに提供することのさらなる詳細は、
図5A~
図5Dを参照して説明する。
図5Aに示されるように、セキュアなゲスト・イメージ500およびメタデータ502は、セキュアなゲストとしてイメージをロードする際に使用可能である。一例として、メタデータ502は、部分1(502a)および部分2(502b)を含む。部分2メタデータ502bは、少なくともロード可能な顧客固有機密データ504、ならびに上述の他の情報を含む。
【0054】
一例では、
図5Bを参照すると、ハイパバイザ510は、セキュアなゲスト・イメージ500を、セキュアなゲスト514を作成するためにコンピューティング環境のメモリにロードする512。さらに、ハイパバイザ510は、メタデータ502を信頼実行環境520にロードする。
【0055】
図5Cを参照すると、信頼実行環境520は、例えば、1つまたは複数の完全性チェック、1つまたは複数の処理チェックを実施し、任意選択でセキュアなゲスト・イメージを復号化し、チェックが成功すると仮定すると、セキュアなゲスト514としてセキュアなゲスト・イメージ522を開始する。
【0056】
さらに、本発明の一態様によると、また
図5Dを参照すると、セキュアなゲスト514は、メタデータ502(例えば、部分2メタデータ502b)に記憶されて信頼実行環境520に配置された機密データ504を要求する。一例では、要求は、セキュアなゲスト514から信頼実行環境へのコール530を介して実施される。コールは、例えば信頼実行環境を直接ターゲットにしているという点で非傍受可能であり、例えば要求された機密データの識別子を含む。コールに基づいて、信頼実行環境は、例えば、トリプルのエントリ(機密データ、識別子、およびインジケータ)を含むメタデータのデータ構造を使用して、セキュアなゲスト・メタデータから(例えば、識別子に関連する)機密データの表現を返す。一例では、識別子に関連するインジケータが、機密データをプレーン・テキストの値で返すことができないと示す場合、表現は、機密データの非プレーン・テキストの(例えば、暗号化された)表現である。別の例では、返される表現はプレーン・テキストの表現である。
【0057】
例示の表現として、機密データが暗号鍵である場合、この鍵の表現は、セキュアなゲスト用にIBM Z(R)保護された鍵とすることができる。すなわち、鍵は、信頼できるハードウェア/ファームウェアに隠された、セキュアなゲストに固有なラッピング鍵によってラップ(例えば、暗号化)される。セキュアなゲストが使用することができるプレーン・テキストの鍵を提供するために、信頼実行環境は、セキュアなゲストのラッピング鍵にアクセスし、プレーン・テキストの鍵を返す前に、プレーン・テキストの鍵をアンラップするためにこの鍵を使用する。
【0058】
一例では、信頼実行環境へのコールは、セキュアなゲストを実行中の実行環境からのみコール可能となるように制約される。信頼実行環境は、コール側のセキュアなゲストのメタデータからの顧客固有機密データだけが、信頼実行環境によって参照および返されるように強制する。
【0059】
本明細書で説明されるように、1つまたは複数の態様では、顧客固有機密データは、セキュアなゲストの所有者によって信頼されるセキュアなゲストに利用可能となる。セキュアなゲストの顧客固有機密データは、セキュアなゲストのイメージを変更することなく、またはリロードすることなく、セットまたは変更されてもよい。このことは、例えばセキュアなゲストのイメージがいくつかのベンダによって構築されるが、セキュアなゲストがいくつかの顧客の機密データに基づいて、ワークロードを実行する場合に、役立つ。一態様では、セキュアなゲストのメモリ内にアーキテクトされた位置は、セキュアなゲストのメモリに機密データを配置するために必要とされない。信頼実行環境は、ホストされるソフトウェア(すなわち、セキュアなゲスト)において、いつ、どこに機密データを配置するかを知る必要はない。さらに、一態様において、ゲストを開始する前に、信頼実行環境とセキュアなゲストの所有者との間で機密データの双方向通信は必要とされない。信頼実行環境は、セキュアなゲストのイメージおよびセキュアなゲストのメタデータに基づいて、イメージ所有者との対話なく、セキュアなゲストを開始することができる。
【0060】
1つまたは複数の態様では、顧客固有機密データを、1つまたは複数のセキュアなゲストのメタデータを介して、1つまたは複数のセキュアなゲストに提供することは、例えばセキュアなゲストのメタデータを、信頼実行環境にセキュアに(例えば、内密に、完全性保護されて)通信することを含む。セキュアなゲストのメタデータは、ロード対象となるセキュアなゲストのイメージの完全性尺度を含む。セキュアなゲストのメタデータ(例えば、部分2メタデータ)は、顧客固有機密データ(例えば、任意選択で、識別子とともに)を含む。信頼実行環境は、セキュアなゲストによってコールすることができる、顧客固有機密データをセキュアなゲストに返す信頼実行環境関数をサポートする(例えば、任意選択で、識別子によって選択される)。セキュアなゲストは、機密データを使用して(例えば、暗号化されたルート・ボリューム、鍵、パスワードなどをセットアップ/オープンする)、外部環境へのセキュアな通信を確立することができる。一例では、顧客固有機密データは鍵であり、信頼実行環境関数は、その鍵を保護された鍵(例えば、暗号演算を実行するためにシステムがインターフェースを提供する、信頼できるファームウェアによって保護された鍵)として返す。関数コールは、例えば傍受可能ではなく、信頼実行環境を直接ターゲットにする。
【0061】
1つまたは複数の態様では、セキュアなゲスト・メタデータのカスタマイゼーションには、複数の部分(例えば、2つの部分)に分割されるセキュアなゲストのためのメタデータの使用が含まれる:部分1は、例えば汎用のセキュアなゲスト・イメージ用のベンダ固有機密データおよび完全性尺度(および任意選択のベンダ制御フラグ)を含み、部分2は、例えば顧客固有機密データ(および任意選択の顧客制御フラグ)、ならびに(任意選択:汎用のセキュアなゲスト・イメージおよび)第1の部分の完全性尺度を含む。両方の部分は、独立的に完全性保護される。信頼実行環境サービスは、分割されたメタデータを使用してセキュアなゲストを開始するために使用される。一例では、サービスは、セキュアなゲスト・イメージを受信して、第1のメタデータ部分に基づいてアンパックする(例えば、復号化する)。さらに、一例では、第1の部分の(任意選択:汎用のセキュアなゲスト・イメージの)完全性尺度は、第2の部分に記憶された該当する値との一致をチェックされる。(例えば、すべての)完全性測定を検証することができる場合、セキュアなゲストが開始される。(別の実施形態では、セキュアなゲストの開始に先立って検証の一部のみが実施され、別の部分は、例えば、セキュアなゲストを開始した後であるが顧客固有機密データがアクセス可能となる前に、実施される。)第2の部分からの顧客固有機密データが、セキュアなゲストに取り込まれる場合、これはセキュアなゲストの開始の間に生じる(すなわち、セキュアなゲストが(CPUに対する)制御を得るより前に、または制御を得た直後のいずれかであるが、第1の外部通信より前)。メタデータの第1および第2の両方の部分は、セキュアなゲストを開始することができる環境(例えば、特定のシステム構成)を制約することができる情報、およびセキュアなゲストの動作に対する特定の制約を含む(例えば、セキュアなゲストをダンプすることを許可する)場合がある。環境的な制約が信頼実行環境の環境によって満足されると、セキュアなゲストを開始することができる。セキュアなゲスト・メタデータの2つの部分のいずれによっても制約されない動作は、セキュアなゲスト上で実施することができる。
【0062】
本発明の1つまたは複数の態様はコンピュータ技術に密接に結び付いており、コンピュータ内の処理を容易にし、そのパフォーマンスを改善する。セキュアなゲストが、他のエンティティとの通信に使用できる顧客固有機密データ(例えば、鍵、パスワードなど)にアクセスできるようにすることによって、処理が容易になる。パフォーマンスは、セキュアなゲスト・イメージのリロードまたは変更を必要とすることなく、機密データを提供するためにゲストの所有者との通信を必要とすることなく、またはセキュアなゲスト内に配置される機密データについて正確な場所(例えば、メモリ場所)を知ることなく、あるいはその組合せによらず、改善される。さらに、独立的かつ別個に使用および検証され得る多部分メタデータを提供することによって、処理が容易になる。
【0063】
本発明の1つまたは複数の態様に関し、コンピューティング環境内で処理を容易にする一実施形態のさらなる詳細を、
図6A~
図6Cを参照して説明する。
【0064】
図6Aを参照すると、一実施形態では、信頼実行環境は、セキュアなゲスト・イメージと、セキュアなゲストを開始するために使用されるメタデータとを取得する600。メタデータは、複数の部分、および複数の完全性尺度を含む602。メタデータの第1の部分は、複数の完全性尺度のうち1つまたは複数の完全性尺度を含み604、メタデータの第2の部分は、セキュアなゲストのカスタマイズされた機密データ、および複数の完全性尺度のうち1つまたは複数の他の完全性尺度を含む606。信頼実行環境は、メタデータの複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、メタデータの少なくとも1つの選択部分を検証するために使用される608。メタデータの少なくとも1つの選択部分の検証成功に基づいて、信頼実行環境は、セキュアなゲスト・イメージおよびメタデータの少なくとも一部分を使用して、セキュアなゲストを開始する610。
【0065】
メタデータの複数の部分を提供することによって、例えば、ベンダ固有機密データと顧客固有機密データとを別個に維持できるようになる。また、セキュアなゲストを開始する際、または機密データへのアクセスを可能にする際、あるいはその両方において、各部分を別個にかつ独立的に使用できるようにすることによって、処理を容易にする。
【0066】
一例として、メタデータの第1の部分は、完全性保護され、第1の暗号化部分を含み、メタデータの第2の部分は、完全性保護され、第2の暗号化部分を含む612。信頼実行環境は、第1の暗号化部分および第2の暗号化部分を復号化するように、排他的に構成される614。第1の暗号化部分および第2の暗号化部分のうち少なくとも1つは、セキュアなゲストに関連する処理に使用される選択機密データを含む616。信頼実行環境を、暗号化部分を復号化するように排他的に構成することによって、機密性が保証される。暗号化部分は、例えば、暗号化イメージを復号化する際、ゲストの所有者と通信する際、またはセキュアなゲストの実行中に使用する際、あるいはその組合せにおいて有用な機密データを含む場合がある。
【0067】
一例では、
図6Bを参照すると、メタデータの少なくとも1つの選択部分を検証することは、メタデータの第1の部分の完全性を検証することを含む620。メタデータの第1の部分の完全性を検証することは、例えばセキュアなゲストのメモリにロードされたセキュアなゲスト・イメージの少なくとも1つの完全性測定を実施して結果を取得することと、その結果が、メタデータの第1の部分の1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度との所定の関係性を有するか判断することとを含む622。第1の部分の完全性を検証することはまた、例えばメタデータの第1の部分の1つまたは複数の完全性尺度のうち少なくとも1つの完全性尺度を使用して、メタデータの第1の部分の選択情報の完全性を検証することを含む624。メタデータの第1の部分の完全性を検証することによって、セキュアなゲストは不適切に開始されず、保護を維持する。
【0068】
一例では、メタデータの少なくとも1つの選択部分を検証することは、メタデータの第2の部分の1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度を使用してメタデータの第2の部分の完全性を検証することを含む630。メタデータの第2の部分の完全性を検証することは、例えばメタデータの第1の部分の少なくとも1つの完全性測定を実施して結果を取得することと、その結果が、メタデータの第2の部分の1つまたは複数の他の完全性尺度のうち少なくとも1つの他の完全性尺度との所定の関係性を有するか判断することとを含む632。メタデータの第2の部分にメタデータの第1の部分の測定値を含ませることによって、メタデータの第2の部分の作成者は、メタデータのその部分を、メタデータの非常に特定された第1の部分とだけ組み合わされるように制限することができる。このことにより、機密性とセキュリティの維持が容易になる。
【0069】
一実施形態では、カスタマイズされた機密データの使用は、少なくともメタデータの第2の部分の完全性を検証することに基づいて可能となる634。
【0070】
一例として、
図6Cを参照すると、セキュアなゲストを開始することは、メタデータの第1の部分の検証成功に基づいて、かつメタデータの第2の部分の検証に先立って、実施される640。このことにより、セキュアなゲストを開始することが、メタデータの第2の部分の検証に先立って実施される。別の例として、セキュアなゲストを開始することは、メタデータの第1の部分およびメタデータの第2の部分の検証成功に基づいて実施される642。
【0071】
一例では、メタデータは、1つまたは複数の処理制約を含む644。1つまたは複数の処理制約のうち、少なくとも1つの処理制約の少なくとも1つのチェックが実施される646。少なくとも1つのチェックが少なくとも成功したことに基づいて、セキュアなゲストを開始することが、実施される648。各メタデータの部分が別個であるため、第1の部分からのチェックが実施されてもよく、次いでセキュアなゲストが開始されてもよい。その後、第2の部分からのチェックが実施されてもよい。別の実施形態では、両方の部分からのチェックが、例えばセキュアなゲストを開始するより前に、実施される。
【0072】
一例として、メタデータの第1の部分は、セキュアなゲストの作成者の機密データをさらに含む650。さらに、一態様では、カスタマイズされた機密データに対する要求に基づいて、メタデータの第2の部分に記憶されたカスタマイズされた機密データは、信頼実行環境からセキュアなゲストに提供される652。
【0073】
他の変形形態および実施形態が可能である。
【0074】
本発明の態様は、多くのタイプのコンピューティング環境によって使用することができる。本発明の1つまたは複数の態様を組み込んで使用する、コンピューティング環境の別の実施形態が
図7Aを参照して説明される。この例において、コンピューティング環境36は、例えば、ネイティブな中央処理装置(CPU)37、メモリ38、および例えば1つまたは複数のバス40または他の接続あるいはその両方を介して互いに結合された1つまたは複数の入力/出力デバイスまたはインターフェース39あるいはその両方を含む。例として、コンピューティング環境36は、インターナショナル・ビジネス・マシーンズ・コーポレーション(ニューヨーク州アーモンク)製のPowerPC(R)プロセッサ、ヒューレットパッカード(カリフォルニア州パロアルト)製のIntel(R) Itanium(R) IIプロセッサを有するHP Superdome、またはインターナショナル・ビジネス・マシーンズ・コーポレーション、ヒューレットパッカード、インテルコーポレーション、オラクル、またはその他あるいはその組合せによって提供されるアーキテクチャに基づく他の機械あるいはその組合せを含むことができる。PowerPCは、少なくとも1つの管轄区においてインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。Intel(R)およびItanium(R)は、インテルコーポレーション、またはアメリカ合衆国および他の国におけるその子会社の、商標または登録商標である。
【0075】
ネイティブな中央処理装置37は、環境内で処理の間に使用される、1つもしくは複数の汎用レジスタまたは1つもしくは複数の特殊目的レジスタあるいはその両方などの、1つまたは複数のネイティブなレジスタ41を含む。これらのレジスタは、任意の特定の時点において、環境の状態を表す情報を含む。
【0076】
その上、ネイティブな中央処理装置37はメモリ38に記憶される命令およびコードを実行する。特定の一例において、中央処理装置はメモリ38に記憶されたエミュレータ・コード42を実行する。このコードにより、あるアーキテクチャで構成されたコンピューティング環境が、別のアーキテクチャをエミュレートすることができる。例えば、エミュレータ・コード42によって、PowerPCプロセッサ、HP Superdomeサーバまたはその他などの、z/Architecture(R)命令セット・アーキテクチャ以外のアーキテクチャに基づく機械が、z/Architecture(R)命令セット・アーキテクチャをエミュレートすること、ならびにz/Architecture(R)命令セット・アーキテクチャに基づいて開発されたソフトウェアおよび命令を実行することができる。
【0077】
エミュレータ・コード42に関連するさらなる詳細を、
図7Bを参照して説明する。メモリ38に記憶されるゲスト命令43は、ネイティブなCPU37のアーキテクチャ以外のアーキテクチャで実行されるよう開発されたソフトウェア命令(例えば機械命令に相関する)を含む。例えば、ゲスト命令43は、z/Architecture(R)命令セット・アーキテクチャに基づくプロセッサで実行するように設計された可能性があるが、その代わりに例えばIntel(R) Itanium(R) IIプロセッサであり得るネイティブなCPU37上でエミュレートされる。一例において、エミュレータ・コード42は、メモリ38から1つまたは複数のゲスト命令43を取得するための命令フェッチ・ルーチン44を含み、任意選択で、取得された命令のためのローカルのバッファリングを実現する。また、取得されているゲスト命令のタイプを決定するため、およびゲスト命令を1つまたは複数の対応するネイティブな命令46に変換するための命令変換ルーチン45を含む。この変換には、例えばゲスト命令によって実施される関数を識別すること、およびその関数を実施するネイティブな命令を選ぶこと、が含まれる。
【0078】
さらには、エミュレータ・コード42は、ネイティブな命令を実行させる、エミュレーション制御ルーチン47を含む。エミュレーション制御ルーチン47はネイティブなCPU37に、1つまたは複数の以前に取得されたゲスト命令をエミュレートするネイティブな命令のルーチンを実行させることができ、そのような実行の最後に、制御を命令フェッチ・ルーチンに戻して、次のゲスト命令またはゲスト命令のグループを取得することをエミュレートする。ネイティブな命令46の実行は、データをメモリ38からレジスタにロードすること、データをレジスタからメモリに記憶し戻すこと、または変換ルーチンによって決定された何らかのタイプの算術もしくは論理演算を実施すること、を含むことができる。
【0079】
それぞれのルーチンは、例えば、メモリに記憶され、ネイティブな中央処理装置37によって実行されるソフトウェアに実装される。他の例において、ルーチンまたは演算の1つまたは複数は、ファームウェア、ハードウェア、ソフトウェアまたはそのいくつかの組合せに実装される。エミュレートされたプロセッサのレジスタは、ネイティブなCPUのレジスタ41を使用して、またはメモリ38内の場所を使用することによって、エミュレートすることができる。一実施形態において、ゲスト命令43、ネイティブな命令46およびエミュレータ・コード42は、同一のメモリに存在することができるか、または異なるメモリ・デバイス間に分けられていてもよい。
【0080】
エミュレートされ得る命令、コマンド、またはコールは、本発明の1つまたは複数の態様による、本明細書で記載の1つまたは複数の信頼実行環境のコールを含む。さらに、他の命令、コマンド、関数、演算、コール、または本発明の1つもしくは複数の態様あるいはその組合せは、本発明の1つまたは複数の態様に従って、エミュレートすることができる。
【0081】
上述のコンピューティング環境は、使用することができるコンピューティング環境の単なる例である。非パーティショニング環境、パーティショニング環境、クラウド環境、またはエミュレート環境あるいはその組合せを含むがそれに限定されない、他の環境を使用してもよい。実施形態は、いかなる1つの環境にも限定されない。本明細書においてはコンピューティング環境の様々な例が説明されるが、本発明の1つまたは複数の態様は、多くのタイプの環境で使用することができる。本明細書において提供されるコンピューティング環境は単なる例である。
【0082】
それぞれのコンピューティング環境は、本発明の1つまたは複数の態様を含むように構成することができる。
【0083】
1つまたは複数の態様は、クラウド・コンピューティングに関連することができる。
【0084】
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書で述べられる教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ本発明の実施形態は、現在既知のまたは後世で開発される任意の他のタイプのコンピューティング環境と併せて実装することができる。
【0085】
クラウド・コンピューティングは、構成可能なコンピューティング・リソースの共有プール(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)への便利でオン・デマンドのネットワーク・アクセスを可能とするためのサービス提供のモデルであり、最小限の管理努力で、またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースすることができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0086】
特徴は以下のとおりである:
【0087】
オン・デマンドのセルフサービス:クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0088】
幅広いネットワーク・アクセス:機能はネットワーク上で利用可能であり、異質なシン・クライアントまたはシック・クライアントのプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
【0089】
リソースのプール:プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用して複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが需要に応じて動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または知識を一般的に持たない点で、場所の独立性の意味があるが、より高い抽象レベルにおいて場所(例えば、国、州、またはデータセンタ)を特定できることもある。
【0090】
迅速な拡張性:機能は迅速かつ拡張可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトされ、迅速にリリースされて素早くスケール・インされる。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限に見え、いつでもいくらでも購入することができる。
【0091】
サービスの計測:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適当な何らかの抽象レベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソース使用率は、監視、制御、および報告することができ、利用されるサービスのプロバイダおよび消費者の両方に透明性を与えている。
【0092】
サービス・モデルは以下のとおりである:
【0093】
サービスとしてのソフトウェア(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャで実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含め、基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有のアプリケーション構成設定が可能である。
【0094】
サービスとしてのプラットフォーム(Platform as a Service(PaaS)):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成の、または入手されたアプリケーションをクラウド・インフラストラクチャに展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含め、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションの制御を有する。
【0095】
サービスとしてのインフラストラクチャ(Infrastructure as a Service(IaaS)):消費者に提供される機能は、消費者が任意のソフトウェアを展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、これにはオペレーティング・システムおよびアプリケーションが含まれ得る。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションの制御、および場合によっては選択ネットワーキング・コンポーネント(例えば、ホスト・ファイヤウォール)の限定された制御を有する。
【0096】
展開モデルは以下のとおりである:
【0097】
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運用される。これは、その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
【0098】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス検討)を有する特定のコミュニティをサポートする。これは、組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
【0099】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0100】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままである2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物であるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術(例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト)によって結合される。
【0101】
クラウド・コンピューティング環境は、ステートレス性、低い結合性、モジュール性、および意味論的な相互運用性に焦点をあてたサービス指向である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0102】
次に
図8を参照すると、例示的なクラウド・コンピューティング環境50が描かれている。示されるように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード52を含み、これを用いて、例えば携帯情報端末(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組合せなど、クラウドの消費者によって使用されるローカルのコンピューティング・デバイスが、通信することができる。ノード52は、互いに通信することができる。これらは、本明細書において上述したようなプライベート、コミュニティ、パブリック、またはハイブリッドのクラウド、あるいはそれらの組合せなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供することができ、これらについてクラウドの消費者はローカルのコンピューティング・デバイスでリソースを維持する必要がない。
図8に示されるコンピューティング・デバイス54A~Nのタイプは、単に例示的であることを意図されており、コンピューティング・ノード52およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク上またはネットワーク・アドレス指定可能接続で(例えば、ウェブ・ブラウザを使用して)あるいはその両方で、任意のタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
【0103】
次に
図9を参照すると、クラウド・コンピューティング環境50(
図8)によって提供される機能的な抽象化レイヤのセットが示されている。
図9に示されるコンポーネント、レイヤ、および機能は、単に例示的であることを意図されており、本発明の実施形態はそれに限定されないことが、予め理解されるべきである。描かれるように、以下のレイヤおよび対応する機能が提供される。
【0104】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、以下が挙げられる:メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66。いくつかの実施形態において、ソフトウェア・コンポーネントとしては、ネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68が挙げられる。
【0105】
仮想化レイヤ70は、仮想エンティティの以下の例が提供され得る抽象化レイヤを提供する:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。
【0106】
一例において、管理レイヤ80は以下で説明される機能を提供することができる。リソース・プロビジョニング81は、コンピューティング・リソースおよびクラウド・コンピューティング環境内でタスクを実施するために利用される他のリソースの、動的な調達を提供する。計測および課金82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含む場合がある。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を与える。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、SLAに従って将来的な要求が予期されるクラウド・コンピューティング・リソースの事前申し合わせ、およびその調達を提供する。
【0107】
ワークロード・レイヤ90は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる:マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想授業教育配信93、データ・アナリティクス処理94、トランザクション処理95、および多部分メタデータを使用した機密データ処理の提供96。
【0108】
本発明の態様は、任意の可能な技術的詳細レベルの統合における、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【0109】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述の任意の好適な組合せであってもよいが、それに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、以下が挙げられる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述の任意の好適な組合せ。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して伝送される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【0110】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータまたは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを含むことができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0111】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の設定データ、あるいはSmalltalk(R)、C++などのようなオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上で一部はリモートのコンピュータ上で、またはすべてリモートのコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオでは、リモートのコンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)外部のコンピュータに対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し、電子回路を個別化することができる。
【0112】
本発明の態様は、本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【0113】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装する手段を作成するように、コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用の態様を実装する命令を含む製造物品を備えるように、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【0114】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装するように、コンピュータ実装プロセスを作るべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実施させるものであってもよい。
【0115】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。いくつかの代替的な実装形態では、ブロックで示される機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される2つのブロックは、実際には1つのステップとして遂行されてもよく、同時に、実質的に同時に、部分的もしくは全体的に時間的に重なるやり方で実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは作用を実施する、または特殊目的ハードウェアとコンピュータ命令との組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0116】
上記に加え、1つまたは複数の態様は、顧客環境の管理を提供するサービス・プロバイダによって提供、提案、展開、管理、サービスなどがなされ得る。例えば、サービス・プロバイダは、1つまたは複数の顧客向けに1つまたは複数の態様を実施するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を、作成すること、保守すること、サポートすることなどができる。その見返りに、サービス・プロバイダは、例としてサブスクリプションまたは料金契約あるいはその両方のもと、顧客から支払いを受け取ることができる。追加的に、または代替的に、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取ることができる。
【0117】
一態様において、アプリケーションは1つまたは複数の実施形態を実施するために展開することができる。一例として、アプリケーションを展開することは、1つまたは複数の実施形態を実施するよう動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【0118】
さらなる態様として、コンピューティング・インフラストラクチャは、コンピュータ可読コードのコンピューティング・システムへの統合を含んで展開することができ、この場合コンピューティング・システムと組み合わされるコードは、1つまたは複数の実施形態を実施することができる。
【0119】
またさらなる態様として、コンピュータ可読コードのコンピュータ・システムへの統合を含んで、コンピューティング・インフラストラクチャを統合するためのプロセスが提供され得る。コンピュータ・システムは、コンピュータ可読媒体を備え、このコンピュータ媒体は1つまたは複数の実施形態を含む。コンピュータ・システムと組み合わされるコードは、1つまたは複数の実施形態を実施することができる。
【0120】
様々な実施形態を上で説明したが、これらは単なる例である。例えば、他のアーキテクチャのコンピューティング環境を使用して、1つまたは複数の態様を組み込むこと、または使用すること、あるいはその両方が可能である。さらには、異なる命令、コマンド、関数、コール、または演算あるいはその組合せを使用することができる。追加的に、異なるタイプの構造が使用されてもよい。多くの変形形態が可能である。
【0121】
様々な態様が本明細書で説明される。さらには、本発明の態様の思想から逸脱することなく、多くの変形形態が可能である。一貫性が失われない限り、本明細書で説明されるそれぞれの態様または特徴およびその変形形態は、任意の他の態様または特徴と組合せ可能であり得ることに留意されたい。
【0122】
さらには、他のタイプのコンピューティング環境が有益であり得、使用することができる。例として、プログラム・コードを記憶することまたは実行することあるいはその両方に好適であり、直接的にまたは間接的にシステム・バスを介してメモリ要素に連結される少なくとも2つのプロセッサを含むデータ処理システムが使用可能である。メモリ要素は、例えば、プログラム・コードの実際の実行の間に利用されるローカル・メモリ、バルク・ストレージ、および実行中にコードがバルク・ストレージから検索されなければならない回数を減らすために、少なくともいくつかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含む。
【0123】
入力/出力すなわちI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他のメモリ媒体などを含むが、それに限定されない)は、直接的に、または仲介的なI/Oコントローラを通じてのいずれかで、システムに結合することができる。データ処理システムが、仲介的なプライベートまたはパブリックなネットワークを通じて他のデータ処理システムまたはリモートのプリンタもしくはストレージ・デバイスに結合できるようになるために、ネットワーク・アダプタをシステムに結合することもできる。利用可能なタイプのネットワーク・アダプタはモデム、ケーブル・モデム、およびイーサネット(R)・カードのほんのいくつかである。
【0124】
本明細書で使用される用語は、特定の実施形態を説明することだけを目的としており、限定的であることを意図されていない。本明細書で使用される場合、コンテキストが明確にそうではないと指示しない限り、単数形「1つの(a)」、「1つの(an)」および「その(the)」は複数形を同様に含むように意図されている。用語「を含む(comprise)」または「を含む(comprising)」あるいはその両方は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントまたはそのグループあるいはその組合せの、存在または追加を排除しないことが、さらに理解されよう。
【0125】
以下の特許請求の範囲における、すべての機能付き手段(ミーンズ・プラス・ファンクション)または機能付き工程(ステップ・プラス・ファンクション)の要素の対応する構造、材料、作用、および等価物は、もしあれば、具体的に特許請求されるように他の特許請求される要素と組み合わせて機能を実施するために、任意の構造、材料、または作用を含むことを意図されている。例示および説明を目的として、1つまたは複数の実施形態の説明を提示してきたが、網羅的であること、または開示された形態に限定することは意図されていない。多くの修正形態および変形形態が当業者にとって明らかとなろう。実施形態は、様々な態様および実践的な用途を最良に説明するために選ばれ説明されたものであり、企図される特定の使用に適した様々な修正形態を伴う様々な実施形態を、当業者の他の者に理解させることができる。
【国際調査報告】