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

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

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

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