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

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

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

<>
  • 特表-セキュア・ゲストの証明 図1
  • 特表-セキュア・ゲストの証明 図2
  • 特表-セキュア・ゲストの証明 図3
  • 特表-セキュア・ゲストの証明 図4A
  • 特表-セキュア・ゲストの証明 図4B
  • 特表-セキュア・ゲストの証明 図5
  • 特表-セキュア・ゲストの証明 図6A
  • 特表-セキュア・ゲストの証明 図6B
  • 特表-セキュア・ゲストの証明 図6C
  • 特表-セキュア・ゲストの証明 図7A
  • 特表-セキュア・ゲストの証明 図7B
  • 特表-セキュア・ゲストの証明 図8
  • 特表-セキュア・ゲストの証明 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-01
(54)【発明の名称】セキュア・ゲストの証明
(51)【国際特許分類】
   G06F 21/57 20130101AFI20240725BHJP
   G06F 21/64 20130101ALI20240725BHJP
【FI】
G06F21/57 350
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024505577
(86)(22)【出願日】2022-08-03
(85)【翻訳文提出日】2024-01-30
(86)【国際出願番号】 EP2022071774
(87)【国際公開番号】W WO2023012201
(87)【国際公開日】2023-02-09
(31)【優先権主張番号】17/395,053
(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つまたは複数の完全性測定結果が実体に提供され、1つまたは複数の完全性測定結果は、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される。
【特許請求の範囲】
【請求項1】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
1つまたは複数のコンピュータ可読ストレージ媒体と、前記1つまたは複数のコンピュータ可読ストレージ媒体に集合的に格納されたプログラム命令とを備え、前記プログラム命令が、
信頼できる実行環境によって、証明要求を取得することであって、前記証明要求が少なくとも証明鍵を含む、前記取得することと、
前記証明要求を取得することに基づいて、1つまたは複数の完全性測定結果を計算することであって、少なくとも前記証明鍵を使用する、前記計算することと、
前記1つまたは複数の完全性測定結果を実体に提供することであって、前記1つまたは複数の完全性測定結果が、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される、前記提供することとを含む方法を実行する、コンピュータ・プログラム製品。
【請求項2】
前記証明要求が、完全性保護されている証明要求構造体を含み、前記証明要求構造体の暗号化された部分内で、前記証明鍵が維持される、請求項1に記載のコンピュータ・プログラム製品。
【請求項3】
前記証明要求構造体が、前記信頼できる実行環境によって排他的に解釈可能であり、前記方法が、
前記証明要求構造体の完全性保護を検証することと、
前記信頼できる実行環境によって、前記証明要求構造体の前記完全性保護の検証の成功に基づいて、前記証明要求構造体の前記暗号化された部分を復号し、前記1つまたは複数の完全性測定結果を計算することにおいて使用される前記証明鍵を取得することとをさらに含む、請求項2に記載のコンピュータ・プログラム製品。
【請求項4】
前記1つまたは複数の完全性測定結果を前記提供することが、前記セキュア・ゲストを検証するために使用される、前記信頼できる実行環境の選ばれた情報を提供することをさらに含み、前記選ばれた情報が、前記セキュア・ゲストの実行時データを含む、請求項1ないし3のいずれかに記載のコンピュータ・プログラム製品。
【請求項5】
前記1つまたは複数の完全性測定結果が、少なくとも前記セキュア・ゲストのイメージおよび1つまたは複数のセキュア・ゲスト・メタデータに基づいて計算された、計算された検証コードを含む、請求項1ないし4のいずれかに記載のコンピュータ・プログラム製品。
【請求項6】
前記計算された検証コードが、前記セキュア・ゲストの実行時データに基づいてさらに計算される、請求項5に記載のコンピュータ・プログラム製品。
【請求項7】
前記セキュア・ゲストの前記実行時データが、前記証明要求を発行した前記セキュア・ゲストの実行中のインスタンスの一意の識別情報を含む、請求項6に記載のコンピュータ・プログラム製品。
【請求項8】
前記計算された検証コードが、前記セキュア・ゲストの特定のデータに基づいてさらに計算される、請求項6に記載のコンピュータ・プログラム製品。
【請求項9】
前記信頼できる実行環境に対する傍受不可能な呼び出しを介して、前記証明要求が前記セキュア・ゲストから取得され、前記証明要求が前記セキュア・ゲストの特定のデータをさらに含み、前記セキュア・ゲストの前記特定のデータが、前記1つまたは複数の完全性測定結果を計算するために前記証明鍵と共に使用され、前記実体が前記セキュア・ゲストであり、前記提供することが、前記セキュア・ゲストの実行時データを前記セキュア・ゲストに提供することをさらに含み、前記セキュア・ゲストの前記実行時データ、前記1つまたは複数の完全性測定結果、および前記セキュア・ゲストの前記特定のデータが、前記セキュア・ゲストを検証することにおいて使用されるために、要求している実体にさらに提供される、請求項1ないし8のいずれかに記載のコンピュータ・プログラム製品。
【請求項10】
前記セキュア・ゲストの前記特定のデータが、前記セキュア・ゲストに接続して、前記証明要求において使用される証明要求構造体を前記セキュア・ゲストにサブミットするために、前記要求している実体によって使用されるセッションの、セッション情報を含む、請求項9に記載のコンピュータ・プログラム製品。
【請求項11】
前記証明要求が、前記信頼できる実行環境によって、傍受不可能な呼び出しを介して前記セキュア・ゲストから取得され、前記傍受不可能な呼び出しが、前記証明鍵および前記セキュア・ゲストの特定のデータを含んでいる証明要求構造体を含む、請求項1ないし10のいずれかに記載のコンピュータ・プログラム製品。
【請求項12】
コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサとを備え、前記コンピュータ・システムが方法を実行するように構成されており、前記方法が、
信頼できる実行環境によって、証明要求を取得することであって、前記証明要求が少なくとも証明鍵を含む、前記取得することと、
前記証明要求を取得することに基づいて、1つまたは複数の完全性測定結果を計算することであって、少なくとも前記証明鍵を使用する、前記計算することと、
前記1つまたは複数の完全性測定結果を実体に提供することであって、前記1つまたは複数の完全性測定結果が、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される、前記提供することとを含む、コンピュータ・システム。
【請求項13】
前記証明要求が、完全性保護されている証明要求構造体を含み、前記証明要求構造体の暗号化された部分内で、前記証明鍵が維持される、請求項12に記載のコンピュータ・システム。
【請求項14】
前記1つまたは複数の完全性測定結果を前記提供することが、前記セキュア・ゲストを検証するために使用される、前記信頼できる実行環境の選ばれた情報を提供することをさらに含み、前記選ばれた情報が、前記セキュア・ゲストの実行時データを含む、請求項12または13に記載のコンピュータ・システム。
【請求項15】
前記セキュア・ゲストの前記実行時データが、前記証明要求を発行した前記セキュア・ゲストの実行中のインスタンスの一意の識別情報を含む、請求項14に記載のコンピュータ・システム。
【請求項16】
前記信頼できる実行環境に対する傍受不可能な呼び出しを介して、前記証明要求が前記セキュア・ゲストから取得され、前記証明要求が前記セキュア・ゲストの特定のデータをさらに含み、前記セキュア・ゲストの前記特定のデータが、前記1つまたは複数の完全性測定結果を計算するために前記証明鍵と共に使用され、前記実体が前記セキュア・ゲストであり、前記提供することが、前記セキュア・ゲストの実行時データを前記セキュア・ゲストに提供することをさらに含み、前記セキュア・ゲストの前記実行時データ、前記1つまたは複数の完全性測定結果、および前記セキュア・ゲストの前記特定のデータが、前記セキュア・ゲストを検証することにおいて使用されるために、要求している実体にさらに提供される、請求項12ないし15のいずれかに記載のコンピュータ・システム。
【請求項17】
コンピューティング環境内の処理を容易にするコンピュータ実装方法であって、前記コンピュータ実装方法が、
信頼できる実行環境によって、証明要求を取得することであって、前記証明要求が少なくとも証明鍵を含む、前記取得することと、
前記証明要求を取得することに基づいて、1つまたは複数の完全性測定結果を計算することであって、少なくとも前記証明鍵を使用する、前記計算することと、
前記1つまたは複数の完全性測定結果を実体に提供することであって、前記1つまたは複数の完全性測定結果が、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される、前記提供することとを含む、コンピュータ実装方法。
【請求項18】
前記証明要求が、完全性保護されている証明要求構造体を含み、前記証明要求構造体の暗号化された部分内で、前記証明鍵が維持される、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記1つまたは複数の完全性測定結果を前記提供することが、前記セキュア・ゲストを検証するために使用される、前記信頼できる実行環境の選ばれた情報を提供することをさらに含み、前記選ばれた情報が、前記セキュア・ゲストの実行時データを含む、請求項17または18に記載のコンピュータ実装方法。
【請求項20】
前記信頼できる実行環境に対する傍受不可能な呼び出しを介して、前記証明要求が前記セキュア・ゲストから取得され、前記証明要求が前記セキュア・ゲストの特定のデータをさらに含み、前記セキュア・ゲストの前記特定のデータが、前記1つまたは複数の完全性測定結果を計算するために前記証明鍵と共に使用され、前記実体が前記セキュア・ゲストであり、前記提供することが、前記セキュア・ゲストの実行時データを前記セキュア・ゲストに提供することをさらに含み、前記セキュア・ゲストの前記実行時データ、前記1つまたは複数の完全性測定結果、および前記セキュア・ゲストの前記特定のデータが、前記セキュア・ゲストを検証することにおいて使用されるために、要求している実体にさらに提供される、請求項17ないし19のいずれかに記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
1つまたは複数の態様は、一般に、コンピューティング環境内の処理を容易にすることに関連しており、特に、そのような処理を改善することに関連している。
【背景技術】
【0002】
コンピューティング環境は、仮想化をサポートすることがあり、仮想化では、コンピューティング環境のハイパーバイザまたは仮想マシン・マネージャが、コンピューティング環境の仮想マシンまたは仮想サーバなどの、さまざまなゲストをホストする。仮想マシンは、システム・リソースに対するアクセス権限を持ち、ゲスト・オペレーティング・システムなどのオペレーティング・システムを実行することができる。さまざまな所有者によって、さまざまなゲストが所有されることが可能であり、これらのゲストのうちの一部は、セキュア・ゲストであることができる。
【0003】
従来のハイパーバイザは、ホストされたゲストを完全に制御する。特に、ハイパーバイザは、ホストされたゲストのメモリを検査し、変更する能力さえも有する。しかし、セキュア・ゲストは、完全には信頼できないハイパーバイザによってホストされ得るゲストである。そのようなセキュア・ゲストのイメージは、読み込まれるときに保護され、ゲストに割り当てられたリソース(例えば、メモリ、CPUレジスタ)の内容の保護は、ゲストの存続期間全体を通じて維持される。ゲストの保護は、少なくとも完全性保護を含み(例えば、ハイパーバイザは、どのゲストの状態も悪意を持って変更することができない)、加えて、セキュア・ゲストにおいて実行されている初期のイメージ、コード、およびデータの機密性を維持することを含むことができる。
【0004】
セキュア・ゲストのユーザは、セキュア・ゲストに関連する特定の情報を取得することを望むことがある。したがって、そのような情報を取得するために使用される処理が、容易にされるべきである。
【発明の概要】
【0005】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品の提供によって、従来技術の欠点が克服され、追加の利点がもたらされる。コンピュータ・プログラム製品は、1つまたは複数のコンピュータ可読ストレージ媒体と、方法を実行するために1つまたは複数のコンピュータ可読ストレージ媒体に集合的に格納されたプログラム命令とを含む。この方法は、信頼できる実行環境によって証明要求を取得することを含む。証明要求は、少なくとも証明鍵を含む。証明要求を取得することに基づいて、1つまたは複数の完全性測定結果が計算され、この計算は、少なくとも証明鍵を使用する。1つまたは複数の完全性測定結果が実体に提供される。1つまたは複数の完全性測定結果は、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される。これによって、要求している実体が、セキュア・ゲストが正しいセキュア・ゲストであることを確認することを可能にし、それによって、さらなるセキュリティをコンピューティング環境にもたらす。
【0006】
1つの例では、証明要求は、完全性保護されている証明要求構造体を含み、証明要求構造体の暗号化された部分内で、証明鍵が維持される。これによって、証明要求構造体、証明鍵、およびこれらに関連する処理のための保護を実現する。この保護は、要求している実体から信頼できる実行環境への送信中に、要求構造体が変更され得ないこと、および送信中に、要求構造体の暗号化された部分内のデータが機密のままであることを保証する。
【0007】
例として、証明要求構造体は、信頼できる実行環境によって排他的に解釈可能である。証明要求構造体の完全性保護が検証され、証明要求構造体の検証の成功に基づいて、信頼できる実行環境が、証明要求構造体の暗号化された部分を復号し、1つまたは複数の完全性測定結果を計算することにおいて使用される証明鍵を取得する。完全性保護を検証することによって、セキュリティが維持される。検証が失敗した場合、証明要求の処理が失敗する。
【0008】
1つの例では、1つまたは複数の完全性測定結果を提供することは、セキュア・ゲストを検証するために使用される、信頼できる実行環境の選ばれた情報を提供することをさらに含む。選ばれた情報は、例えば、セキュア・ゲストの実行時データを含む。
【0009】
さらに、1つの例では、1つまたは複数の完全性測定結果は、少なくともセキュア・ゲストのイメージおよび1つまたは複数のセキュア・ゲスト・メタデータに基づいて計算された、計算された検証コードを含む。例として、計算された検証コードは、セキュア・ゲストの実行時データに基づいてさらに計算される。セキュア・ゲストの実行時データは、例えば、証明要求を発行したセキュア・ゲストの実行中のインスタンスの一意の識別情報を含む。実行中のセキュア・ゲストのインスタンスを識別するためのデータを、返される完全性測定結果に含めることによって、このデータも、要求している実体に返される。次に、要求している実体は、そのデータを使用して、同じセキュア・ゲストのインスタンスに関して、信頼できる実行環境によって複数の(例えば、2つの)要求が処理されたかどうかを判定することができる。
【0010】
1つの例では、計算された検証コードが、セキュア・ゲストの特定のデータに基づいてさらに計算される。
【0011】
1つの例として、信頼できる実行環境に対する傍受不可能な呼び出しを介して、証明要求がセキュア・ゲストから取得される。さらに、1つの例では、証明要求は、セキュア・ゲストの特定のデータを含む。セキュア・ゲストの特定のデータは、1つまたは複数の完全性測定結果を計算するために、証明鍵と共に使用される。
【0012】
さらに、1つの例では、実体はセキュア・ゲストであり、提供することは、セキュア・ゲストの実行時データをセキュア・ゲストに提供することをさらに含む。1つの例では、セキュア・ゲストの実行時データ、1つまたは複数の完全性測定結果、およびセキュア・ゲストの特定のデータが、セキュア・ゲストを検証することにおいて使用されるために、要求している実体にさらに提供される。
【0013】
例として、セキュア・ゲストの特定のデータは、セキュア・ゲストに接続して、証明要求において使用される証明要求構造体をセキュア・ゲストにサブミットするために、要求している実体によって使用されるセッションの、セッション情報を含む。
【0014】
1つの例では、証明要求は、信頼できる実行環境によって、傍受不可能な呼び出しを介してセキュア・ゲストから取得される。傍受不可能な呼び出しは、例えば、証明鍵およびセキュア・ゲストの特定のデータを含んでいる証明要求構造体を含む。
【0015】
1つまたは複数の態様に関連するコンピュータ実装方法およびシステムも本明細書に記載され、請求される。さらに、1つまたは複数の態様に関連するサービスも本明細書に記載され、請求されてよい。
【0016】
さらなる特徴および利点が、本明細書に記載された技術によって実現される。他の実施形態および態様は、本明細書において詳細に説明され、請求される態様の一部と見なされる。
【0017】
1つまたは複数の態様は、本明細書の最後にある特許請求の範囲において例として具体的に指摘され、明確に請求される。前述の内容、ならびに1つまたは複数の態様の目的、特徴、および利点は、添付の図面と併せて行われる以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【0018】
図1】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の1つの例を示す図である。
図2】本発明の1つまたは複数の態様に従って、証明照会の1つの例を示す図である。
図3】本発明の1つまたは複数の態様に従って使用される証明要求構造体に関連する記述の1つの例を示す図である。
図4A】本発明の1つまたは複数の態様に従って、証明要求の処理の1つの例を示す図である。
図4B】本発明の1つまたは複数の態様に従って、証明要求の処理の1つの例を示す図である。
図5】本発明の1つまたは複数の態様に従って、証明プロセスの1つの例を示す図である。
図6A】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
図6B】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
図6C】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
図7A】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の別の例を示す図である。
図7B】本発明の1つまたは複数の態様に従って、図7Aのメモリのさらなる詳細を示す図である。
図8】本発明の1つまたは複数の態様に従って、クラウド・コンピューティング環境の1つの実施形態を示す図である。
図9】本発明の1つまたは複数の態様に従って、抽象モデル・レイヤの1つの例を示す図である。
【発明を実施するための形態】
【0019】
本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にするための能力が提供される。例として、この能力は、セキュア・ゲストが、例えば、特定のセキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータを使用して開始された特定のセキュア・ゲストであることの検証を容易にすることを含む。1つの例では、例えば、中間者システムによって実行され得ない、セキュア・ゲスト上のセッションに関する検証が提供される。さらなる態様では、この能力は、セキュア・ゲストの複数の(例えば、2つの)インスタンスが同じセキュア・ゲストのインスタンスであるかどうかの判定を容易にすることを含む。
【0020】
本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の1つの実施形態が、図1を参照して説明される。例として、コンピューティング環境は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるz/Architecture(R)命令セット・アーキテクチャに基づく。z/Architecture命令セット・アーキテクチャの1つの実施形態は、“z/Architecture Principles of Operation," IBM Publication No.SA22-7832-12, Thirteenth Edition, September 2019という公開文献に記載されており、この公開文献は本明細書において参照によってその全体が本明細書に組み込まれている。しかし、z/Architecture命令セット・アーキテクチャは1つの例示的なアーキテクチャにすぎず、International Business Machines Corporationまたは他の実体あるいはその両方の、他のアーキテクチャまたは他の種類のコンピューティング環境あるいはその両方が、本発明の1つまたは複数の態様を含むか、または使用するか、あるいはその両方であってよい。z/ArchitectureおよびIBMは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0021】
図1を参照すると、1つの例では、コンピューティング環境100は中央処理装置複合体(CPC:central processor complex)102を含む。中央処理装置複合体102は、例えば、IBM Z(R)サーバ(または、International Business Machines Corporationもしくは他の実体によって提供される他のサーバもしくはマシン)であり、例えば、1つまたは複数のプロセッサ・ユニット(プロセッサとも呼ばれる)110および入出力(I/O:input/output)サブシステム111に結合されたメモリ104(システム・メモリ、メイン・メモリ、主記憶装置、中央記憶装置、ストレージとも呼ばれる)などの、複数のコンポーネントを含んでいる。プロセッサ・ユニット110の例としては、1つまたは複数の汎用プロセッサ(セントラル・プロセッサまたは中央処理装置(CPU:central processing units)としても知られている)または1つまたは複数の他のプロセッサあるいはその両方が挙げられる。IBM Zは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0022】
I/Oサブシステム111は、中央処理装置複合体の一部であるか、または中央処理装置複合体から分離することができる。I/Oサブシステム111は、主記憶装置104と、中央処理装置複合体に結合された入出力制御ユニット108および入出力(I/O)デバイス106との間の情報の流れを方向付ける。
【0023】
多くの種類のI/Oデバイスが使用されてよい。1つの特定の種類は、データ・ストレージ・デバイス110である。データ・ストレージ・デバイス110は、1つまたは複数のプログラム142、1つまたは複数のコンピュータ可読プログラム命令144、またはデータ、あるいはその組合せなどを格納することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0024】
中央処理装置複合体102は、取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含むか、またはそのようなコンピュータ・システム・ストレージ媒体に結合されるか、あるいはその両方であることができる。例えば、中央処理装置複合体102は、取り外し不可、不揮発性の磁気媒体(通常は、「ハード・ドライブ」と呼ばれる)、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、あるいはCD-ROM、DVD-ROM、または他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りまたは書き込みを行うための光ディスク・ドライブ、あるいはその組合せを含むか、またはこれらに結合されるか、あるいはその両方であることができる。他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、中央処理装置複合体102と併用できるということが理解されるべきである。その例として、マイクロコードまたはミリコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0025】
さらに、中央処理装置複合体102は、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用され得る。中央処理装置複合体102での使用に適し得る周知のコンピューティング・システム、環境、または構成、あるいはその組合せの例としては、パーソナル・コンピュータ(PC:personal computer)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが挙げられるが、これらに限定されない。
【0026】
中央処理装置複合体102は、1つまたは複数の実施形態では仮想化をサポートし、仮想化のサポートでは、例えば、メモリ104が、1つまたは複数の仮想マシン112(ゲストとも呼ばれる)、仮想マシンを管理するハイパーバイザ114などの仮想マシン・マネージャ、信頼できる実行環境115(ウルトラバイザとも呼ばれる)、およびプロセッサ・ファームウェア116を含む。ハイパーバイザ114の1つの例は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるz/VM(R)ハイパーバイザである。ハイパーバイザは、ホストと呼ばれることがある。z/VMは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0027】
1つまたは複数の実施形態では、信頼できる実行環境115は、例えば、本明細書に記載されているようなプロセスを実行するように構成されたハードウェアまたはファームウェアあるいはその両方において少なくとも部分的に実装されてよい。信頼できる実行環境は、メモリ保護ハードウェアを利用してメモリ保護を実施する、信頼できるファームウェアまたはハードウェアあるいはその両方である。ゲストの所有者は、ホスト鍵文書に埋め込まれた公開ホスト鍵を使用することによって、(例えば、IBM Secure Executionを使用して)情報を信頼できる実行環境に安全に渡すことができる。機密情報を処理するために、信頼できる実行環境は、一致する秘密ホスト鍵を使用する。秘密ホスト鍵は、サーバ(例えば、IBM Z(R)サーバ)に固有であり、ハードウェア保護される。
【0028】
プロセッサ・ファームウェア116は、例えば、プロセッサのマイクロコードまたはミリコードを含む。プロセッサ・ファームウェア116は、例えば、上位レベルのマシン・コードの実装において使用される、ハードウェア・レベルの命令またはデータ構造あるいはその両方を含む。1つの実施形態では、プロセッサ・ファームウェア122は、例えば、信頼できるソフトウェアを含んでいるマイクロコードまたはミリコード、基盤になるハードウェアに固有のマイクロコードまたはミリコードとして通常は提供され、システムのハードウェアへのオペレーティング・システムのアクセスを制御する、独自のコードを含む。
【0029】
中央処理装置複合体の仮想マシンのサポートは、多数の仮想マシン112を操作する能力を提供し、各仮想マシン112は、異なるプログラム120と共に動作し、Linux(R)オペレーティング・システムなどのゲスト・オペレーティング・システム122を実行することができる。各仮想マシン112は、別々のシステムとして機能することができる。すなわち、各仮想マシンは、独立してリセットされ、ゲスト・オペレーティング・システムを実行し、異なるプログラムと共に動作することができる。仮想マシン内で実行されるオペレーティング・システムまたはアプリケーション・プログラムは、完全なシステム全体にアクセスできるように見えるが、実際は、その一部のみが利用可能である。z/VMおよびLinuxが例として提供されているが、本発明の1つまたは複数の態様に従って、他の仮想マシン・マネージャまたはオペレーティング・システムあるいはその両方が使用されてよい。Linux Foundation(世界規模での商標の所有者であるLinus Torvaldsの専用実施権者)からのサブライセンスに従って、登録商標Linux(R)が使用される。
【0030】
1つの実施形態では、1つまたは複数のゲスト112がセキュア・ゲストである。図2を参照すると、セキュア・ゲスト200は、ハイパーバイザがセキュア・ゲストの状態(例えば、メモリ、レジスタなど)を観察できない方法で、ハイパーバイザ(例えば、ハイパーバイザ114)によって開始される。例えば、機密コンピューティングの1つの実施形態では、ハイパーバイザは、セキュア・ゲストを開始/停止することができ、ハイパーバイザは、セキュア・ゲストを開始するために使用されるデータがどこにあるかを識別するが、実行中のセキュア・ゲストの中を見ることはできない。セキュア・ゲストを読み込む/開始するために使用されるデータは、ハイパーバイザがセキュア・ゲストを見ることができない方法で暗号化されてよい。セキュア・ゲスト・イメージの所有者は、機密データをセキュア・ゲスト・メタデータ内に配置し、その後、セキュア・ゲスト・イメージをセキュア・ゲスト・メタデータと共に生成する。セキュア・ゲストが読み込まれた後に、セキュア・ゲストの状態とのすべての情報のやりとりが、信頼できる実行環境115などの信頼できる実行環境によって処理される。
【0031】
1つの実施形態では、セキュア・ゲストを開始するために、ハイパーバイザは、ハイパーバイザがメモリにすでに読み込んだセキュア・ゲスト・イメージ210およびセキュア・ゲスト・メタデータ220を信頼できる実行環境115に渡す。このメタデータは、完全性保護され、少なくとも部分的に機密保護され、信頼できる実行環境のみによって解釈される。次に、信頼できる実行環境は、セキュア・ゲスト・メタデータ内の情報に基づいて、メモリに読み込まれたセキュア・ゲスト・イメージの完全性を強制し、読み込まれたイメージを含んでいるセキュア・ゲストのメモリを、ハイパーバイザによってアクセス可能になることから保護し、および場合によっては、セキュア・ゲストを開始する前に、セキュア・ゲスト・イメージを復号することができる。
【0032】
セキュア・ゲストを読み込むか、または開始した後に、セキュア・ゲストが、例えば、特定のセキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータを使用して開始された特定のセキュア・ゲストであることを検証するのが、望ましいことがある。したがって、本発明の1つまたは複数の態様に従い、セキュア・ゲストが特定のセキュア・ゲストであるかどうかに関して、照会が行われる(250)。例として、この照会は、セキュア・ゲストのユーザまたは所有者などの、要求している実体によって行われる。そのような照会に対する回答を提供するために、情報が収集され、1つまたは複数の測定結果(例えば、ハッシュ、メッセージ認証コード、暗号署名など)が計算され、(例えば、セキュア・ゲストの外部の要求している実体によって)セキュア・ゲストが特定のセキュア・ゲストであるかどうかを判定するために使用される。1つの例では、1つまたは複数の測定結果を計算するために、証明要求構造体が使用される。証明要求構造体は、セキュア・ゲストの外部で、例えば、セキュア・ゲストのユーザまたは所有者によって準備される。
【0033】
証明要求構造体に関連する記述の1つの例が、図3を参照して説明される。図3に示されているように、1つの例では、証明要求構造体に関連する記述300(本明細書では、証明要求構造体記述300とも呼ばれる)は、複数のエントリ302を含み、各エントリ302は、名前310、略語(略語)312、およびエントリの簡単な説明(内容)314に加えて、内容(例えば、内容314)が完全性保護されるのか、または例えば、対象のシステムのみによって取得され得る要求保護鍵によって、完全性保護および機密保護の両方を行われる(例えば、暗号化される)のかの保護の指示(保護)316を含む。1つの例では、内容314は、要求構造体のデータ/属性を含み、名前310、略語312、および保護の指示316は、内容314に関連する情報を提供する。
【0034】
例として、証明要求構造体の1つのエントリ318は、(要求している実体によって提供された)顧客公開鍵を含み、1つまたは複数の他のエントリ320は、対象のホストのホスト鍵/信頼できる実行環境によって保護された要求保護鍵をそれぞれ含んでいる鍵スロット1~Nを含む。顧客公開鍵および鍵スロットは、可能性のある対象のシステムのセットの(例えば、(楕円曲線)ディフィー・ヘルマン技術を使用する)要求保護鍵を信頼できる実行環境に安全に伝達するために使用され、各鍵スロットが、1つの対象のシステムのアドレスを指定する。さらなる例として、証明要求構造体記述の別のエントリ322は、AKと省略される証明鍵(略語312を参照)を含み、証明鍵は、例えば、512ビットのハッシュベース・メッセージ認証コード(HMAC:hash-based message authentication code)鍵(内容314を参照)であり、保護の指示316によって示されているように、暗号化される。証明要求構造体の追加のエントリ324は、要求構造体の完全性を検証するために使用され得るデータを含んでいる要求構造体タグを含む。追加の情報、より少ない情報、または他の情報、あるいはその組合せが、証明要求構造体記述300に含まれてよい。証明要求構造体記述300が、追加のエントリ、より少ないエントリ、もしくは他のエントリ、またはその組合せを含んでよく、または各エントリが、追加の情報、より少ない情報、もしくは他の情報、またはその組合せを含んでよく、あるいはその両方であってよい。さらに、証明要求構造体(例えば、内容314)は、追加のデータ/属性、より少ないデータ/属性、または他のデータ/属性、あるいはその組合せを含んでよい。多くの可能性が存在する。
【0035】
証明要求構造体は、本発明の1つまたは複数の態様に従って、セキュア・ゲストが特定のセキュア・ゲストであることを検証または証明するために使用される。この処理の1つの例が、図4A図4Bを参照して説明される。
【0036】
最初に図4Aを参照すると、1つの例では、セキュア・ゲストの外部で準備された、例えば証明鍵402を含んでいる(例えば、内容314に類似する内容を含んでいる)証明要求構造体400が、セキュア・ゲスト410によって取得される(例えば、送信される、提供される、受信される、引き出されるなど)。セキュア・ゲスト410は、例えばセキュア・ゲストの状態から、ローカル・データ412(例えば、接続情報または他の情報あるいはその両方)を計算する。例えば、ローカル・データは、セキュア・ゲストに固有であり、例えば、証明構造体をセキュア・ゲストにサブミットするときに、例えば、セキュア・ゲストに接続するために要求している(例えば、検証を要求している)実体によって使用されるセッション情報を含む。
【0037】
さらに、セキュア・ゲスト410は、信頼できる実行環境420に対する呼び出し414を実行する。この呼び出しは、例えば、証明要求構造体およびローカル・データを含む。信頼できる実行環境は、この呼び出しを、証明要求構造体を含んでいる引数と共に取得する(例えば、受信する、提供される、引き出すなど)。信頼できる実行環境は、システムに固有の秘密鍵(ホスト鍵としても知られている)424を使用して、証明要求構造体の完全性をチェックする。例えば、本明細書に記載された鍵スロットのうちの1つから、要求保護鍵が抽出され、その鍵が、要求の完全性チェックを実行するために使用される。検証の成功に基づいて、信頼できる実行環境は、要求構造体に含まれている証明鍵402を最初に抽出することを含む、証明要求の実行を続ける。
【0038】
信頼できる実行環境は、例として、セキュア・ゲストのインスタンスの識別子(例えば、証明要求を発行したセキュア・ゲストの実行中のインスタンスの一意の識別情報)およびファームウェアのバージョンなどの、信頼できる実行環境の実行時データ422を決定する。信頼できる実行環境420は、セキュア・ゲスト・イメージ432およびセキュア・ゲスト・メタデータ434の1つまたは複数の測定結果(例えば、ハッシュ、メッセージ認証コード、暗号署名など)430をさらに取得する。
【0039】
図4Bを参照すると、呼び出しを受信することに基づいて、信頼できる実行環境420が、証明鍵402を使用して、1つまたは複数の測定結果430、ローカル・データ412、および信頼できる実行環境の実行時データ422に関して、証明データ、例えば、メッセージ認証コード・タグなどの検証タグを決定する。信頼できる実行環境の実行時データ422と共に、この証明データがセキュア・ゲスト410に返される。次に、セキュア・ゲストが、証明データ(例えば、証明データ450)、信頼できる実行環境の実行時データ422、およびローカル・データ412を、セキュア・ゲストの外部の要求している実体(例えば、セキュア・ゲストのユーザまたは所有者、他の実体)に返す。証明データ450は、例えば、証明鍵によって完全性保護され、例えば、セキュア・ゲストの外部の要求している実体によって評価される。
【0040】
セキュア・ゲストが、特定のセキュア・ゲスト・メタデータを含んでいる特定のセキュア・ゲストであることを検証するために使用される証明プロセスの1つの実施形態のさらなる詳細が、図5を参照して説明される。
【0041】
1つの実施形態では、セキュア・ゲストの所有者、ユーザ、または他の実体などの、要求している実体(本明細書では、要求元とも呼ばれる)は、セキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータの1つまたは複数の測定結果(例えば、ハッシュ、メッセージ認証コード、暗号署名など)の知識を有する(500)。要求している実体は、例えば、証明鍵を生成し、この証明鍵を証明要求構造体に含める(502)。証明要求構造体は、要求している実体、別の実体、または既存の実体によって生成されてよい。証明要求構造体は、証明鍵、および任意選択的に、本明細書に記載されているような他の情報を含む。要求している実体は、証明要求を、要求している実体との定義された関係を有する(例えば、要求している実体によって所有されている)セキュア・ゲストに送信する(504)。
【0042】
セキュア・ゲストは、例えば、証明要求構造体を含んでいる証明要求を受信し、セキュア・ゲストに固有のローカル・データを決定する(506)。例えば、ローカル・データは、例えば、証明構造体をセキュア・ゲストにサブミットするときに、例えば、セキュア・ゲストに接続するために要求している(例えば、検証を要求している)実体によって使用されるセッションのセッション情報を含む。さらに、セキュア・ゲストは、証明要求構造体およびセキュア・ゲストに固有のローカル・データを呼び出しへの引数として使用して、信頼できる実行環境機能を呼び出す(508)。
【0043】
信頼できる実行環境は、証明要求構造体およびローカル・データを含んでいる呼び出しを受信し、証明要求構造体の完全性をチェックする(510)。例えば、信頼できる実行環境は、証明要求構造体の測定結果(例えば、ハッシュ、メッセージ認証コード、暗号署名など)を決定し、対応する既知の値と比較する。測定結果が、既知の値との事前に定義された関係を有する(例えば、等しい)場合、証明要求構造体の完全性が検証される。測定結果を保護するために使用される要求保護鍵(例えば、メッセージ認証コード、署名)が、信頼できる実行環境によって使用可能なシステムに固有の秘密鍵(ホスト鍵としても知られている)によって保護される証明要求構造体に含まれ得る。
【0044】
証明要求構造体の完全性の検証に成功することに基づいて、信頼できる実行環境は、(例えば、要求保護鍵を使用して)証明要求構造体の暗号化された部分を復号し、暗号化された部分から証明鍵を抽出する。信頼できる実行環境は、証明鍵を使用して、セキュア・ゲスト・イメージ、1つまたは複数のセキュア・ゲスト・メタデータの測定結果、セキュア・ゲストのローカル・データ、およびセキュア・ゲストの信頼できる実行環境の実行時データの組合せを表す、検証タグ(タグ、例えば、メッセージ認証コード・タグとも呼ばれる)などの、少なくとも1つの完全性の測定値を計算する(512)。完全性の測定値の計算は、現在知られているか、または今後開発される1つまたは複数の技術を使用してよい。信頼できる実行環境は、計算された完全性の測定値(例えば、検証タグ)およびセキュア・ゲストの信頼できる実行環境の実行時データ(例えば、証明要求を発行したセキュア・ゲストの実行中のインスタンスの一意の識別情報)を、セキュア・ゲストに返す(516)。
【0045】
セキュア・ゲストは、計算された完全性の測定値(例えば、メッセージ認証コード・タグなどの検証タグ)、セキュア・ゲストの信頼できる実行環境の実行時データ、およびセキュア・ゲストのローカル・データ(例えば、セッション情報)を、要求している実体に返す(520)。
【0046】
要求している実体は、返されたデータを受信し(522)、返されたデータは、セキュア・ゲストが特定のセキュア・ゲストであるかどうかを判定するために使用されてよい。例えば、セキュア・ゲスト所有者は、(例えば、512で計算され、516、520で返された)取得された検証タグを既知の値(例えば、既存の値または計算された値)と比較し、それらの値が事前に定義された関係を有する(例えば、等しい)場合、セキュア・ゲストが、特定のセキュア・ゲスト・メタデータを含んでいる特定のセキュア・ゲストであるということが検証される。
【0047】
本明細書において説明されるように、例えば、セキュア・ゲストのみから呼び出し可能な、信頼できる実行環境証明呼び出し(attestation trusted execution environment call)が提供される。この呼び出しは、例えば、証明要求構造体(または少なくとも証明鍵)および選ばれたローカル・データ(例えば、セッション情報)を引数として受け取り、例えば、信頼できる実行環境に固有の実行時データ(例えば、証明要求を発行したセキュア・ゲストの実行中のインスタンスの一意のid)および1つまたは複数のセキュア・ゲストの測定結果の検証タグ(例えば、メッセージ認証コードまたは他の測定値)、ローカル・データ、ならびに例えばメッセージ認証コード鍵などの証明鍵を使用して計算された特定の信頼できる実行環境の実行時データを返す。
【0048】
有効なセキュア・ゲストは、要求している実体によって準備された、受信された証明要求構造体、およびローカル・データ(例えば、要求を受信するために使用されたセッションに固有のデータ、例えば、ユーザによって開始されたSSH(secure shell:セキュア・シェル)セッションまたはTLS(transport layer security:トランスポート層セキュリティ)セッションのクライアント証明書)を使用して機能を呼び出す。信頼できる実行環境は、この呼び出しを受信し、結果(例えば、検証タグ)を決定し、この結果をセキュア・ゲストに返す。セキュア・ゲストは、証明機能の結果を要求している実体に渡し、その後、要求している実体は、セキュア・ゲストおよびセキュア・ゲストにログインするために使用されたセッションの両方を識別することとして、この結果を検証することができる。
【0049】
1つまたは複数の態様では、証明要求構造体が定義され、この要求構造体は、例えば、要求保護鍵によって保護される。要求保護鍵は、信頼できる実行環境の秘密鍵(ホスト鍵としても知られている)を使用して、信頼できる実行環境に安全に伝達される。任意選択的に、要求保護鍵を伝達するために、選ばれた技術(例えば、楕円曲線ディフィー・ヘルマン)が使用される場合、要求構造体は、顧客の公開鍵を含む。要求の一部は、要求保護鍵を使用して機密保護(暗号化)され、その部分は、例えば、証明鍵(例えば、メッセージ認証コード鍵)および任意選択的ノンスを含む。1つの例では、要求構造体は、どの測定値が証明されなければならないかの指示を含む。
【0050】
さらなる態様では、セキュア・ゲストから呼び出し可能な証明機能が、信頼できる実行環境に追加される。証明機能は、例えば、証明要求構造体を引数として受け取る。任意選択的に、証明機能は、セキュア・ゲストに固有のローカル・データに関する第2の引数を受け取る。この機能は、証明鍵を使用して、例えばメッセージ認証コードを介してすべて一緒にリンクされている、セキュア・ゲスト・イメージの1つまたは複数の測定結果、セキュア・ゲスト・イメージのメタデータ、要求によって定義された任意の追加データ、および任意選択的に、機能への第2の引数からのローカル・データを返す。
【0051】
さらなる態様では、中間者システムから防御するために、有効なセキュア・ゲストにおいて、リモートの証明機能を提供するためのサービスが提供される。このサービスは、例えば、セッション内で受信された要求構造体を引数として受け取る。このサービスは、接続/セッションに固有のデータを導出し、要求を発行する(セッションに固有のデータは、接続/セッションを開始したクライアントの証明書、セッション番号などから導出され得る)。このサービスは、要求構造体を1つの引数として使用し、証明書を別の引数として使用して、信頼できる実行環境証明呼び出しを呼び出す。
【0052】
1つの態様では、任意選択的に、測定結果に含まれるように要求構造体内で選択され得るデータは、例えば、例として、セキュア・ゲストを開始するときにセキュア・ゲスト・メタデータをアンパックするために信頼できる実行環境が使用した秘密鍵に属する公開鍵、ファームウェアのリリース、またはセキュア・ゲストID、あるいはその組合せを含む。
【0053】
有効なセキュア・ゲストは、機能を使用して、要求している実体または他の実体によって準備された要求構造体を受信してよく、要求を受信するために使用されたセッションに固有のデータ(例えば、ユーザによって開始されたセキュア・シェル・セッションまたはトランスポート層セキュリティ・セッションのクライアント証明書)をローカル・データとして使用してよい。有効なセキュア・ゲストは、証明機能の結果を要求している実体に渡し、その後、要求している実体は、セキュア・ゲストおよびセキュア・ゲストにログインするために使用されたセッションの両方を識別することとして、この結果を検証することができる。
【0054】
本発明の1つまたは複数の態様は、コンピュータ技術に密接に関係しており、コンピュータ内の処理を容易にし、その性能を改善する。セキュア・ゲストの妥当性を確認し、コンピューティング環境に保護を提供することができることによって、処理が容易にされる。
【0055】
コンピューティング環境内の処理が、本発明の1つまたは複数の態様に関連しているため、その処理を容易にする1つの実施形態のさらなる詳細が、図6A図6Cを参照して説明される。
【0056】
図6Aを参照すると、1つの実施形態では、信頼できる実行環境が証明要求を取得する(600)。証明要求は、少なくとも証明鍵を含む(602)。証明要求を取得することに基づいて、1つまたは複数の完全性測定結果が計算され、この計算は、少なくとも証明鍵を使用する(604)。1つまたは複数の完全性測定結果が実体に提供され(606)、1つまたは複数の完全性測定結果は、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される(608)。これによって、要求している実体が、セキュア・ゲストが正しいセキュア・ゲストであることを確認することを可能にし、それによって、さらなるセキュリティをコンピューティング環境にもたらす。
【0057】
1つの例では、証明要求は、完全性保護されている証明要求構造体を含み(610)、証明要求構造体の暗号化された部分内で、証明鍵が維持される(612)。これによって、証明要求構造体、証明鍵、およびこれらに関連する処理のための保護を実現する。
【0058】
例として、証明要求構造体は、信頼できる実行環境によって排他的に解釈可能である(614)。証明要求構造体の完全性保護が検証され(615)、証明要求構造体の検証の成功に基づいて、信頼できる実行環境が、証明要求構造体の暗号化された部分を復号し、1つまたは複数の完全性測定結果を計算することにおいて使用される証明鍵を取得する(616)。完全性保護を検証することによって、セキュリティが維持される。検証が失敗した場合、証明要求の処理が失敗する。
【0059】
1つの例では、1つまたは複数の完全性測定結果を提供することは、セキュア・ゲストを検証するために使用される、信頼できる実行環境の選ばれた情報を提供することをさらに含む(618)。選ばれた情報は、例えば、セキュア・ゲストの実行時データを含む(620)。
【0060】
さらに、1つの例では、図6Bを参照すると、1つまたは複数の完全性測定結果は、少なくともセキュア・ゲストのイメージおよび1つまたは複数のセキュア・ゲスト・メタデータに基づいて計算された、計算された検証コードを含む(630)。例として、計算された検証コードは、セキュア・ゲストの実行時データに基づいてさらに計算される(632)。セキュア・ゲストの実行時データは、例えば、証明要求を発行したセキュア・ゲストの実行中のインスタンスの一意の識別情報を含む(634)。実行中のセキュア・ゲストのインスタンスを識別するためのデータを、返される完全性測定結果に含めることによって、このデータも、要求している実体に返される。次に、要求している実体は、そのデータを使用して、同じセキュア・ゲストのインスタンスに関して、信頼できる実行環境によって複数の(例えば、2つの)要求が処理されたかどうかを判定することができる。
【0061】
1つの例では、計算された検証コードが、セキュア・ゲストの特定のデータに基づいてさらに計算される(636)。
【0062】
1つの例として、信頼できる実行環境に対する傍受不可能な呼び出しを介して、証明要求がセキュア・ゲストから取得される(638)。さらに、1つの例では、証明要求は、セキュア・ゲストの特定のデータを含む(640)。セキュア・ゲストの特定のデータは、1つまたは複数の完全性測定結果を決定するために、証明鍵と共に使用される(642)。
【0063】
さらに、1つの例では、実体はセキュア・ゲストであり、提供することは、セキュア・ゲストの実行時データをセキュア・ゲストに提供することをさらに含む(644)。1つの例では、セキュア・ゲストの実行時データ、1つまたは複数の完全性測定結果、およびセキュア・ゲストの特定のデータが、セキュア・ゲストを検証することにおいて使用されるために、要求している実体にさらに提供される(646)。
【0064】
例として、図6Cを参照すると、セキュア・ゲストの特定のデータは、セキュア・ゲストに接続して、証明要求において使用される証明要求構造体をセキュア・ゲストにサブミットするために、要求している実体によって使用されるセッションの、セッション情報を含む(650)。
【0065】
1つの例では、証明要求は、信頼できる実行環境によって、傍受不可能な呼び出しを介してセキュア・ゲストから取得される(652)。傍受不可能な呼び出しは、例えば、証明鍵およびセキュア・ゲストの特定のデータを含んでいる証明要求構造体を含む(654)。
【0066】
他の変形および実施形態が可能である。
【0067】
本発明の態様は、多くの種類のコンピューティング環境によって使用されてよい。本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の別の実施形態が、図7Aを参照して説明される。この例では、コンピューティング環境36は、例えば、1つまたは複数のバス40または他の接続あるいはその両方を介して互いに結合された、ネイティブ中央処理装置(CPU)37、メモリ38、および1つまたは複数の入出力デバイスまたはインターフェイスあるいはその両方39を含む。例として、コンピューティング環境36は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるPowerPC(R)プロセッサ、ヒューレット・パッカード社(カリフォルニア州パロアルト市)によって提供されるインテル(R)Itanium(R)IIプロセッサ内蔵HP Superdome、あるいはInternational Business Machines Corporation、ヒューレット・パッカード社、インテル社、Oracle社、もしくは他の企業、またはその組合せによって提供されるアーキテクチャに基づく他のマシン、あるいはその組合せを含んでよい。PowerPCは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。インテルおよびItaniumは、米国および他の国における、インテル社またはその子会社の商標または登録商標である。
【0068】
ネイティブ中央処理装置37は、環境内で処理中に使用される1つまたは複数の汎用レジスタまたは1つまたは複数の専用レジスタあるいはその両方などの、1つまたは複数のネイティブ・レジスタ41を含む。これらのレジスタは、いずれかの特定の時点での環境の状態を表す情報を含む。
【0069】
さらに、ネイティブ中央処理装置37は、メモリ38に格納された命令およびコードを実行する。1つの特定の例では、中央処理装置は、メモリ38に格納されたエミュレータ・コード42を実行する。このコードは、あるアーキテクチャで構成されたコンピューティング環境が、別のアーキテクチャをエミュレートできるようにする。例えば、エミュレータ・コード42は、z/Architecture命令セット・アーキテクチャ以外のアーキテクチャに基づくマシン(PowerPCプロセッサ、HP Superdomeサーバなど)が、z/Architecture命令セット・アーキテクチャをエミュレートし、z/Architecture命令セット・アーキテクチャに基づいて開発されたソフトウェアおよび命令を実行できるようにする。
【0070】
エミュレータ・コード42に関連するさらなる詳細が、図7Bを参照して説明される。メモリ38に格納されたゲスト命令43は、ネイティブCPU37のアーキテクチャ以外のアーキテクチャにおいて実行されるように開発された(例えば、マシン命令と相互関係がある)ソフトウェア命令を含む。例えば、ゲスト命43は、z/Architecture命令セット・アーキテクチャに基づくプロセッサ上で実行するように設計されていてよいが、代わりに、例えばインテルItanium IIプロセッサであってよい、ネイティブCPU37上でエミュレートされる。1つの例では、エミュレータ・コード42は、メモリ38から1つまたは複数のゲスト命令43を取得するため、および取得された命令のローカル・バッファリングを任意選択的に提供するための命令フェッチ・ルーチン44を含む。エミュレータ・コード42は、取得されたゲスト命令の種類を決定するため、およびゲスト命令を、1つまたは複数の対応するネイティブ命令46に変換するための命令変換ルーチン45も含む。この変換は、例えば、ゲスト命令によって実行される機能を識別すること、およびこの機能を実行するためのネイティブ命令を選択することを含む。
【0071】
さらに、エミュレータ・コード42は、ネイティブ命令の実行を引き起こすためのエミュレーション制御ルーチン47を含む。エミュレーション制御ルーチン47は、ネイティブCPU37に、1つまたは複数のすでに取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、そのような実行の終了時に、次のゲスト命令またはゲスト命令のグループの取得をエミュレートするために、制御を命令フェッチ・ルーチンに返してよい。ネイティブ命令46の実行は、データをメモリ38からレジスタに読み込むこと、データをレジスタからメモリに再び格納すること、あるいは変換ルーチンによって決定されたとおりに、何らかの種類の算術演算または論理演算を実行することを含んでよい。
【0072】
例えば、各ルーチンは、メモリに格納されてネイティブ中央処理装置37によって実行されるソフトウェアにおいて実装される。他の例では、ルーチンまたは動作のうちの1つまたは複数は、ファームウェア、ハードウェア、ソフトウェア、またはこれらの何らかの組合せにおいて実装される。エミュレートされたプロセッサのレジスタは、ネイティブCPUのレジスタ41を使用して、またはメモリ38内の位置を使用することによって、エミュレートされてよい。実施形態では、ゲスト命令43、ネイティブ命令46、およびエミュレータ・コード42は、同じメモリ内に存在してよく、または異なるメモリ・デバイス間で分配されてよい。
【0073】
エミュレートされ得る命令、コマンド、または呼び出しは、本発明の1つまたは複数の態様に従って、本明細書に記載された信頼できる実行環境の呼び出しを含む。さらに、他の命令、コマンド、機能、動作、呼び出し、または本発明の1つまたは複数の態様、あるいはその組合せが、本発明の1つまたは複数の態様に従ってエミュレートされてよい。
【0074】
前述のコンピューティング環境は、使用可能なコンピューティング環境の例にすぎない。分割されない環境、分割された環境、クラウド環境、またはエミュレートされた環境、あるいはその組合せを含むが、これらに限定されない、他の環境が使用されてよく、実施形態はいずれか1つの環境に限定されない。本明細書ではコンピューティング環境のさまざまな例が説明されるが、本発明の1つまたは複数の態様が、多くの種類の環境と共に使用されてよい。本明細書で提供されるコンピューティング環境は、例にすぎない。
【0075】
各コンピューティング環境は、本発明の1つまたは複数の態様を含むように構成されることが可能である。
【0076】
1つまたは複数の態様がクラウド・コンピューティングに関連してよい。
【0077】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において列挙された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意の他の種類のコンピューティング環境と組み合わせて実装され得る。
【0078】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含んでよい。
【0079】
特徴は、次のとおりである。
【0080】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0081】
幅広いネットワーク・アクセス:能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを通じてアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
【0082】
リソース・プール:プロバイダの計算リソースは、プールされて、マルチテナント・モデルを使用して複数の利用者に提供され、さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高いレベルの抽象化では、場所(例えば、国、州、またはデータセンター)を指定できることがある。
【0083】
迅速な順応性:能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
【0084】
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は、監視、制御、および報告されることが可能であり、利用されるサービスのプロバイダと利用者の両方に透明性を提供する。
【0085】
サービス・モデルは、次のとおりである。
【0086】
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0087】
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【0088】
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選ばれたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0089】
デプロイメント・モデルは、次のとおりである。
【0090】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0091】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0092】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0093】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0094】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0095】
ここで図8を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード52を含んでいる。ノード52は、互いに通信してよい。ノード52は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供できる。図8に示されたコンピューティング・デバイス54A~Nの種類は、例示のみが意図されており、コンピューティング・ノード52およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0096】
ここで図9を参照すると、クラウド・コンピューティング環境50(図8)によって提供される機能的抽象レイヤのセットが示されている。図9に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0097】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0098】
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75などの仮想的実体を提供できる抽象レイヤを備える。
【0099】
1つの例では、管理レイヤ80は、以下で説明される機能を提供してよい。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよび他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書またはインボイスの送付を行う。1つの例では、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0100】
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ解析処理94、トランザクション処理95、およびセキュア・ゲストの証明処理96が挙げられる。
【0101】
本発明の態様は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つまたは複数のコンピュータ可読ストレージ媒体を含んでよい。
【0102】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチカードまたは溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、電波または他の自由に伝搬する電磁波、導波管または他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの、それ自体が一過性の信号であると解釈されるべきではない。
【0103】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、あるいはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0104】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し、電子回路をカスタマイズしてよい。
【0105】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0106】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0107】
コンピュータ可読プログラム命令は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成する他のデバイス上で実行させる。
【0108】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、1つのステップとして実現されるか、同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、あるいは場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0109】
上記に加えて、顧客の環境の管理を提供するサービス・プロバイダによって、1つまたは複数の態様が提供されること、提示されること、デプロイされること、管理されること、サービス提供されることなどが行われてよい。例えば、サービス・プロバイダは、1人または複数の顧客のために1つまたは複数の態様を実行するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を作成すること、維持すること、サポートすることなどを行うことができる。その見返りとして、サービス・プロバイダは、例えばサブスクリプションまたは料金契約あるいはその両方に従って、顧客から支払いを受け取ってよい。追加または代替として、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取ってよい。
【0110】
1つの態様では、1つまたは複数の実施形態を実行するために、アプリケーションがデプロイされてよい。1つの例として、アプリケーションのデプロイは、1つまたは複数の実施形態を実行するよう機能するコンピュータ・インフラストラクチャを提供することを含む。
【0111】
さらなる態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含むコンピューティング・インフラストラクチャがデプロイされてよく、このコンピューティング・インフラストラクチャでは、コンピューティング・システムと組み合わせたコードが、1つまたは複数の実施形態を実行できる。
【0112】
さらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含んでいる、コンピューティング・インフラストラクチャを統合するためのプロセスが提供されてよい。コンピュータ・システムは、コンピュータ可読媒体を備え、このコンピュータ可読媒体では、コンピュータ媒体が1つまたは複数の実施形態を含む。コンピュータ・システムと組み合わせたコードは、1つまたは複数の実施形態を実行できる。
【0113】
上ではさまざまな実施形態が説明されたが、それらは単なる例である。例えば、1つまたは複数の態様を組み込むため、または1つまたは複数の態様を使用するため、あるいはその両方のために、他のアーキテクチャのコンピューティング環境が使用され得る。さらに、さまざまな命令、コマンド、機能、呼び出し、または動作、あるいはその組合せが使用されてよい。さらに、さまざまな種類の構造体が使用されてよい。多くの変形が可能である。
【0114】
本明細書では、さまざまな態様が説明される。さらに、本発明の態様の思想から逸脱することなく、多くの変形が可能である。本明細書に記載された各態様または特徴およびその変形を、特に矛盾しない限り、任意の他の態様または特徴と組み合わせることができるということに、注意するべきである。
【0115】
さらに、他の種類のコンピューティング環境が、恩恵を受けることができ、使用され得る。例として、プログラム・コードの格納または実行あるいはその両方を行うのに適した、システム・バスを介して直接的または間接的にメモリ素子に結合された少なくとも2つのプロセッサを含んでいる、データ処理システムを使用できる。これらのメモリ素子は、例えば、プログラム・コードの実際の実行時に使用されるローカル・メモリ、バルク・ストレージ、および実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリを含む。
【0116】
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他の記憶媒体などを含むが、これらに限定されない)は、直接的に、または介在するI/Oコントローラを通じて、システムに結合され得る。ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを通じて、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。
【0117】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、制限することを意図していない。本明細書において使用されるとき、単数形「a」、「an」、および「the」は、文脈で特に明示的に示されない限り、複数形も含むよう意図されている。「備える」または「備えている」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組合せの存在を示すが、1つまたは複数の他の機能、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組合せの存在または追加を除外していないということが、さらに理解されるであろう。
【0118】
下の特許請求の範囲内のすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および等価なものは、もしあれば、具体的に請求されるとき、他の請求される要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。1つまたは複数の実施形態の説明は、例示および説明の目的で提示されているが、網羅的であることは意図されておらず、開示された形態に限定されない。多くの変更および変形が、当業者にとって明らかであろう。さまざまな態様および実際的な適用を最も適切に説明するため、および他の当業者が、企図されている特定の用途に適しているようなさまざまな変更を伴う多様な実施形態を理解できるようにするために、実施形態が選択されて説明された。
図1
図2
図3
図4A
図4B
図5
図6A
図6B
図6C
図7A
図7B
図8
図9
【手続補正書】
【提出日】2024-04-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラムであって、プロセッサに
信頼できる実行環境によって、証明要求を取得することであって、前記証明要求が少なくとも証明鍵を含む、前記取得することと、
前記証明要求を取得することに基づいて、1つまたは複数の完全性測定結果を計算することであって、少なくとも前記証明鍵を使用する、前記計算することと、
前記1つまたは複数の完全性測定結果を実体に提供することであって、前記1つまたは複数の完全性測定結果が、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される、前記提供することとを含む方法を実行させるためのコンピュータ・プログラム。
【請求項2】
前記証明要求が、完全性保護されている証明要求構造体を含み、前記証明要求構造体の暗号化された部分内で、前記証明鍵が維持される、請求項1に記載のコンピュータ・プログラム。
【請求項3】
前記証明要求構造体が、前記信頼できる実行環境によって排他的に解釈可能であり、前記方法が、
前記証明要求構造体の完全性保護を検証することと、
前記信頼できる実行環境によって、前記証明要求構造体の前記完全性保護の検証の成功に基づいて、前記証明要求構造体の前記暗号化された部分を復号し、前記1つまたは複数の完全性測定結果を計算することにおいて使用される前記証明鍵を取得することとをさらに含む、請求項2に記載のコンピュータ・プログラム。
【請求項4】
前記1つまたは複数の完全性測定結果を前記提供することが、前記セキュア・ゲストを検証するために使用される、前記信頼できる実行環境の選ばれた情報を提供することをさらに含み、前記選ばれた情報が、前記セキュア・ゲストの実行時データを含む、請求項1に記載のコンピュータ・プログラム。
【請求項5】
前記1つまたは複数の完全性測定結果が、少なくとも前記セキュア・ゲストのイメージおよび1つまたは複数のセキュア・ゲスト・メタデータに基づいて計算された、計算された検証コードを含む、請求項1に記載のコンピュータ・プログラム。
【請求項6】
前記計算された検証コードが、前記セキュア・ゲストの実行時データに基づいてさらに計算される、請求項5に記載のコンピュータ・プログラム。
【請求項7】
前記セキュア・ゲストの前記実行時データが、前記証明要求を発行した前記セキュア・ゲストの実行中のインスタンスの一意の識別情報を含む、請求項6に記載のコンピュータ・プログラム。
【請求項8】
前記計算された検証コードが、前記セキュア・ゲストの特定のデータに基づいてさらに計算される、請求項6に記載のコンピュータ・プログラム。
【請求項9】
前記信頼できる実行環境に対する傍受不可能な呼び出しを介して、前記証明要求が前記セキュア・ゲストから取得され、前記証明要求が前記セキュア・ゲストの特定のデータをさらに含み、前記セキュア・ゲストの前記特定のデータが、前記1つまたは複数の完全性測定結果を計算するために前記証明鍵と共に使用され、前記実体が前記セキュア・ゲストであり、前記提供することが、前記セキュア・ゲストの実行時データを前記セキュア・ゲストに提供することをさらに含み、前記セキュア・ゲストの前記実行時データ、前記1つまたは複数の完全性測定結果、および前記セキュア・ゲストの前記特定のデータが、前記セキュア・ゲストを検証することにおいて使用されるために、要求している実体にさらに提供される、請求項1に記載のコンピュータ・プログラム。
【請求項10】
前記セキュア・ゲストの前記特定のデータが、前記セキュア・ゲストに接続して、前記証明要求において使用される証明要求構造体を前記セキュア・ゲストにサブミットするために、前記要求している実体によって使用されるセッションの、セッション情報を含む、請求項9に記載のコンピュータ・プログラム。
【請求項11】
前記証明要求が、前記信頼できる実行環境によって、傍受不可能な呼び出しを介して前記セキュア・ゲストから取得され、前記傍受不可能な呼び出しが、前記証明鍵および前記セキュア・ゲストの特定のデータを含んでいる証明要求構造体を含む、請求項1に記載のコンピュータ・プログラム。
【請求項12】
コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサとを備え、前記コンピュータ・システムが方法を実行するように構成されており、前記方法が、
信頼できる実行環境によって、証明要求を取得することであって、前記証明要求が少なくとも証明鍵を含む、前記取得することと、
前記証明要求を取得することに基づいて、1つまたは複数の完全性測定結果を計算することであって、少なくとも前記証明鍵を使用する、前記計算することと、
前記1つまたは複数の完全性測定結果を実体に提供することであって、前記1つまたは複数の完全性測定結果が、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される、前記提供することとを含む、コンピュータ・システム。
【請求項13】
コンピューティング環境内の処理を容易にするコンピュータ実装方法であって、前記コンピュータ実装方法が、
信頼できる実行環境によって、証明要求を取得することであって、前記証明要求が少なくとも証明鍵を含む、前記取得することと、
前記証明要求を取得することに基づいて、1つまたは複数の完全性測定結果を計算することであって、少なくとも前記証明鍵を使用する、前記計算することと、
前記1つまたは複数の完全性測定結果を実体に提供することであって、前記1つまたは複数の完全性測定結果が、選択されたセキュア・ゲスト・イメージおよび選択されたセキュア・ゲスト・メタデータを使用してセキュア・ゲストが開始されたということを検証するために使用される、前記提供することとを含む、コンピュータ実装方法。
【国際調査報告】