JP2023511834A - セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング - Google Patents

セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング Download PDF

Info

Publication number
JP2023511834A
JP2023511834A JP2022539306A JP2022539306A JP2023511834A JP 2023511834 A JP2023511834 A JP 2023511834A JP 2022539306 A JP2022539306 A JP 2022539306A JP 2022539306 A JP2022539306 A JP 2022539306A JP 2023511834 A JP2023511834 A JP 2023511834A
Authority
JP
Japan
Prior art keywords
security module
secure
guest
binding
confidential
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022539306A
Other languages
English (en)
Inventor
ブエントゲン、ラインハルト
キスリー、リチャード
アーバン、フォルカー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023511834A publication Critical patent/JP2023511834A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

セキュリティ・モジュールの少なくとも1つのセキュア・オブジェクトがセキュア・ゲストにバインドされる。信頼されるコンポーネントが、セキュア・ゲストのメタデータが、セキュリティ・モジュールのための機密バインディング属性を含むかどうかを判定する。メタデータが機密バインディング属性を含むと判定することに基づいて、信頼されるコンポーネントは、セキュリティ・モジュールをセレクト・モードでセキュア・ゲストのために構成する。セレクト・モードは、特定の動作が、セキュア・ゲストに関連するハイパーバイザによってインターセプトされることを阻止する。信頼されるコンポーネントは、セキュリティ・モジュール通信をインターセプトし、機密バインディング属性を使用してセキュリティ・モジュール通信の1つまたは複数のセキュア・オブジェクトに暗号動作を行って、暗号結果を提供する。暗号結果を含むセキュリティ・モジュール通信の成果が受信者に提供される。

Description

1つまたは複数の態様は、概してコンピューティング環境内の処理に関し、詳細にはそのような環境内でデータを保護することに関する。
コンピューティング環境において、暗号要素は、データを保護する際の有用な技術的構成要素である。情報は、記憶または送信される情報への不正なアクセスを回避するために、暗号的に安全化された形態で記憶または送信されることがある。一部の場合には、ソフトウェアに基づく技術を使用してそのようなデータ保護を行うことがあり、他の場合には、ハードウェアの支援およびセキュリティに固有の要素が使用され得る。それらの固有の要素は、ハードウェア・セキュリティ・モジュール(HSM)と呼ばれることがあり、それらは、コンピュータ、またはコンピューティング環境の情報伝送システムの一部として使用されることがある。
ハードウェア・セキュリティ・モジュールは、データ暗号化およびデータ復号の機能を提供するための特殊な回路を含むことがある。それらの機能は、ゲストとも称される、ゲスト・システムを使用するための暗号鍵を生成し、記憶することも含み得る。様々なゲスト(例えば、仮想機械、仮想サーバ等)が、ハイパーバイザまたは仮想機械マネジャによって制御される。共通のハイパーバイザによって管理される異なるゲストは、異なる所有者によって生成され得る。ある従来のハイパーバイザは、それがホストするゲストに対する完全な制御を有する。詳細には、そのハイパーバイザは、ホストされるゲストのメモリを検査し、さらには変更を加える能力を有する。クラウド環境において、ハイパーバイザおよびその管理者は、完全に信頼できるものであるべきである。
ハイパーバイザによって管理される一部のゲストは、セキュア・ゲストである。セキュア・ゲストは、完全に信頼できるのではない1つまたは複数のハイパーバイザによってホストされ得るゲストである。そのようなゲストのイメージは、ロードされるときに保護され、そのゲストに割り当てられたリソース(例えば、メモリ、中央演算処理装置(CPU)レジスタ等)の内容の保護は、ゲストの全寿命にわたって保持される。ゲストの保護は、少なくとも完全性の保護(例えば、ハイパーバイザはどのゲスト状態も悪意をもって変更することはできない)を含み、加えて、初期イメージ、コード、およびゲスト内で実行されるデータの機密性を保持することを含むことができる。セキュア・ゲストに対応している環境の例には、AMD SEV(Advanced Micro Devices Secure Encrypted Virtualization)およびPOWER(R)の保護されるコンピューテーションが含まれる。POWERは、少なくとも1つの管轄においてインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品の提供を通じて、従来技術の欠点が克服され、さらなる利点が提供される。コンピュータ・プログラム製品は、少なくとも1つの処理回路により可読であり、方法を行うための命令を記憶している、少なくとも1つのコンピュータ可読記憶媒体を含む。方法は、コンピューティング環境のセキュリティ・モジュールの少なくとも1つのセキュア・オブジェクトを、コンピューティング環境のセキュア・ゲストにバインドすることを含む。セキュア・ゲストは、セキュリティ・モジュールを使用するように構成される。バインドすることは、コンピューティング環境の信頼されるコンポーネントにより、セキュア・ゲストのメタデータが、セキュリティ・モジュールのための機密バインディング属性を含むかどうかを判定することを含む。メタデータが機密バインディング属性を含むと判定することに基づいて、信頼されるコンポーネントは、セキュリティ・モジュールをセレクト・モードでセキュア・ゲストのために構成する。セレクト・モードは、特定の動作が、セキュア・ゲストに関連するハイパーバイザによってインターセプトされることを阻止する。信頼されるコンポーネントは、セキュリティ・モジュール通信をインターセプトする。機密バインディング属性を使用してセキュリティ・モジュール通信の1つまたは複数のセキュア・オブジェクトに暗号動作を行って、暗号結果を提供する。セキュリティ・モジュール通信の成果が受信者に提供される。成果は、暗号結果を含む。
1つまたは複数の態様に関するコンピュータによって実施される方法およびシステムも、本明細書に記載され、特許請求される。さらに、1つまたは複数の態様に関係するサービスも、本明細書に記載され、特許請求され得る。
さらなる特徴および利点が、本明細書に記載される技術を通じて実現される。他の実施形態および態様が本明細書に詳細に記載され、特許請求される態様の一部とみなされる。
1つまたは複数の態様が、添付の特許請求の範囲において例として具体的に指し示され、明確に特許請求される。前述の内容、ならびに1つまたは複数の態様の目的、特徴、および利点は、添付図面と併せて読まれる以下の詳細な説明から明らかになる。
本発明の1つまたは複数の態様を組み込んで使用するコンピューティング環境の一例を示す図である。 本発明の1つまたは複数の態様による図1Aのコンピューティング環境のさらなる詳細を示す図である。 ハードウェア・セキュリティ・モジュールを利用する特定の手法で遭遇される潜在的なセキュリティ問題の一例を示す図である。 1つまたは複数の態様による、セキュリティ・モジュールのセキュア・オブジェクトをセキュア・ゲストにバインドすることに関連する処理の1つの実施形態を示す図である。 1つまたは複数の態様による、セキュリティ・モジュールに要求を転送する流れの一例を示す図である。 1つまたは複数の態様による、要求の結果をセキュア・ゲストに返す流れの一例を示す図である。 本発明の1つまたは複数の態様を組み込んで使用するコンピューティング環境の別の例を示す図である。 図6Aのメモリのさらなる詳細を示す図である。 クラウド・コンピューティング環境の1つの実施形態を示す図である。 抽象化モデル層の一例を示す図である。
1つまたは複数の態様により、コンピューティング環境のセキュリティ・モジュールのセキュア・オブジェクトをそのコンピューティング環境のセキュア・ゲストにバインドする能力が提供される。セキュア・オブジェクトには、例えば、鍵もしくは鍵を導出するための材料などの機密属性(秘密とも称される);オブジェクトの1つもしくは複数の属性などの追加的情報;または、追加的情報がセキュア・オブジェクトから分離されないことを保証する完全性保護データ、あるいはその組合せが含まれる。セキュア・オブジェクトの1つまたは複数の部分は重複し得る。機密属性は、1つの実施形態では、セキュリティ・モジュールのマスター鍵または別の提供される鍵(例えばゲスト鍵)などのセレクト鍵によってラップされる。セキュリティ・モジュールの構成は、セレクト鍵を、セキュリティ・モジュールのメモリに安全に記憶することを含む。データは暗号化されていない形態でセキュリティ・モジュールによって受け取られることが可能であり、セキュリティ・モジュールにおいて暗号化されることが可能であり、その逆も同様である。暗号化動作または復号動作あるいはその両方は、セキュリティ・モジュールにおいて、ハードウェアもしくはソフトウェア、またはそれらの任意の組合せで行われ得る。一例では、セキュリティ・モジュールはハードウェア・セキュリティ・モジュール(HSM)であり、これは例えば、コンピュータ・システムにプラグ接続可能なコンポーネントまたは個々に接続されるコンポーネントである。1つの特定の例では、ハードウェア・セキュリティ・モジュールは暗号カードであるが、他の例が存在する。
本発明の1つまたは複数の態様を組み込んで使用するコンピューティング環境の1つの実施形態が、図1Aを参照して説明される。一例では、コンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるz/Architecture(R)のハードウェア・アーキテクチャに基づく。z/Architecture(R)ハードウェア・アーキテクチャの1つの実施形態は、「z/Architecture Principles of Operation」(IBM Publication No. SA22-7832-11、第12版、2017年9月)に記載されており、同文献は全体が参照により本明細書に組み込まれる。IBMおよびz/Architectureは、少なくとも1つの管轄においてインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標または商標である。
コンピューティング環境は、他のアーキテクチャに基づいてもよく、z/Architecture(R)ハードウェア・アーキテクチャは一例に過ぎない。
図1Aに示されるように、コンピューティング環境100は、例えば、例えば汎用コンピューティング・デバイスの形態で示される、コンピュータ・システム102を含む。コンピュータ・システム102は、これらに限定されないが、1つまたは複数のバスまたは他の接続120あるいはその両方を介して互いと結合された、1つまたは複数のプロセッサまたは処理ユニット104(例えば中央演算処理装置(CPU))、メモリ106(例として、システム・メモリ、主メモリ、主記憶、中央ストレージまたはストレージとしても知られる)、および1つまたは複数の入力/出力(I/O)インターフェース108を含み得る。
バス120は、各種のバス・アーキテクチャのいずれかを使用する、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種のバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、Industry Standard Architecture(ISA)、Micro Channel Architecture(MCA)、Enhanced ISA(EISA)、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnect(PCI)が含まれる。
メモリ106は、例えば、共有キャッシュ122などのキャッシュを含んでよく、それは、プロセッサ104のローカル・キャッシュ123に結合されてよい。さらに、メモリ106は、1つまたは複数のプログラムまたはアプリケーション124、オペレーティング・システム126、および1つまたは複数のコンピュータ可読プログラム命令128を含み得る。コンピュータ可読プログラム命令128は、本発明の態様の実施形態の機能を実行するように構成され得る。
コンピュータ・システム102は、例えばI/Oインターフェース108を介して、1つもしくは複数の外部デバイス130、1つもしくは複数のネットワーク・インターフェース132、または1つもしくは複数のデータ記憶装置134、あるいはその組合せと通信してもよい。例示的な外部デバイスには、ユーザ端末、テープ・ドライブ、ポインティング・デバイス、ディスプレイ等が含まれる。ネットワーク・インターフェース132は、コンピュータ・システム102が、ローカル・エリア・ネットワーク(LAN)、一般のワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えばインターネット)、あるいはその組合せなどの1つまたは複数のネットワークと通信することを可能にして、他のコンピューティング・デバイスまたはシステムとの通信を提供する。
データ記憶装置134は、1つもしくは複数のプログラム136、1つもしくは複数のコンピュータ可読プログラム命令138、またはデータ、あるいはその組合せ等を記憶し得る。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成され得る。
コンピュータ・システム102は、取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体を含む、またはそれに結合される、あるいはその両方であり得る。例えば、それは、取り外し不能で不揮発性の磁気媒体(通例「ハード・ドライブ」と呼ばれる)、取り外し可能で不揮発性の磁気ディスク(例えば「フロッピー(R)・ディスク」)の読み書きを行うための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROMもしくは他の光学媒体などの取り外し可能で不揮発性の光ディスクの読み書きを行うための光ディスク・ドライブ、あるいはその組合せを含む、またはそれに結合される、あるいはその両方であり得る。他のハードウェアまたはソフトウェア・コンポーネントあるいはその両方がコンピュータ・システム102と併せて使用され得ることが理解されるべきである。例には、これらに限定されないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ保存記憶システム等が含まれる。
コンピュータ・システム102は、多数の他の汎用または特殊目的のコンピューティング・システム環境または構成と共に動作し得る。コンピュータ・システム102と共に使用するのに適し得る、よく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例には、これらに限定されないが、パーソナル・コンピュータ(PC)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち型またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能消費者家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上述のシステムまたはデバイスの任意のものを含む分散クラウド・コンピューティング環境等が含まれる。
本発明の1つもしくは複数の態様を組み込む、または使用する、あるいはその両方を行うコンピューティング環境(例えばコンピューティング環境100)の1つの実施形態のさらなる詳細が、図1Bを参照して説明される。一例では、コンピューティング環境100は、コンピュータ・システム102などのシステムと、1つまたは複数のセレクト鍵(例えばマスター鍵152)を含む、ハードウェア・セキュリティ・モジュール(HSM)150などのセキュリティ・モジュールと、を含む共有コンピューティング環境である。本明細書における例では、セキュリティ・モジュールはハードウェア・セキュリティ・モジュールであるが、他の実施形態では、他のセキュリティ・モジュールが使用されてよい。
コンピュータ・システム102は、一例では、信頼されるファームウェア160などの信頼されるコンポーネントと、1つまたは複数のセキュア・ゲスト180を含む1つまたは複数のゲスト(例えば仮想機械(VM))と対話するハイパーバイザ170とを含む。ハイパーバイザ170の一例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるz/VM(R)ハイパーバイザである。z/VMは、少なくとも1つの管轄においてインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標または商標である。ハイパーバイザは、ホストと称されることがある。ハイパーバイザは、コンピュータ・システム内で実行されるゲストを管理する。
ゲストまたはゲスト・システムは、例えば、ハイパーバイザ上の仮想機械(VM)で実行されるオペレーティング・システムである。ハイパーバイザは、1つまたは複数のハードウェア・セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)をゲスト・システムに割り当てるために使用される。ゲストに割り当てられる特定のハードウェア・セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)は、ゲストの鍵をラップしてゲスト用のセキュア鍵を提供するために使用される暗号マスター鍵(例えばマスター鍵152、ラッピング鍵としても知られる)を備えて構成され得る。
ゲストの1つまたは複数は、セキュア・ゲストとみなされる。セキュア・ゲストは、その状態およびメモリがハイパーバイザのアクセスから保護されるゲストである。セキュア・ゲストは、例えば、機密性を保護し、完全性を保護する方式で信頼されるコンポーネント(例えば信頼されるファームウェア160)に送信されるメタデータを使用して開始され、メタデータは、機密バインディング属性(例えばHSM機密バインディング属性162)を含んでいる。
本発明の一態様により、セキュア・ゲスト180などのセキュア・ゲストのセキュア鍵は、無効な(破損したとも言われる)セキュア鍵182とみなされる。それは、別のゲストを含む別のコンポーネントによって入手されたときに使用不可能になるように破損している。一態様では、セキュア鍵はセキュア・オブジェクトの一部であり、本明細書に記載されるように、特定のゲストのセキュア・オブジェクトは、特定のセキュリティ・モジュールにバインドされる。本発明において使用される場合、セキュア・オブジェクトのバインディングは、セキュア・オブジェクトの少なくとも一部分を特定のゲストおよび特定のセキュリティ・モジュールにバインドすることを含む。
信頼されるファームウェア160は、例えば、機密バインディング属性(バインディング秘密、例えばバインディング鍵またはバインディング鍵を導出するための材料としても知られる)、例えば、セキュア・ゲストのHSM機密バインディング属性162を含み、これは、セキュリティ・モジュール(例えばHSM150)によって生成されたセキュア・オブジェクトの、セキュア・ゲスト(例えばセキュア・ゲスト180)へのHSMバインディングを行うために使用される。一例では、HSM機密バインディング属性162は、セキュア・ゲストのメタデータを介して信頼されるコンポーネント(例えば信頼されるファームウェア160)に渡される。
信頼されるファームウェア160は、一例では、セキュア・ゲスト(例えばセキュア・ゲスト180)のHSM構成を記述する制御ブロック164も含む。この構成にリストされているハードウェア・セキュリティ・モジュールは、ハイパーバイザ通過モードでセキュア・ゲストに対して構成され、それにより、ゲストによって発行された暗号動作がハイパーバイザ(例えばハイパーバイザ170)によってインターセプトされないようになる。代わりに、それらは、信頼されるコンポーネント(例えば信頼されるファームウェア160)によってインターセプトされる。本発明において使用される場合、ファームウェアは、例えばプロセッサのマイクロコードを含む。それは、例えば、上位の機械コードの実装で使用されるハードウェア・レベル命令またはデータ構造あるいはその両方を含む。1つの実施形態では、それは例えば独自仕様コードを含み、この独自仕様コードは、信頼されるソフトウェアを含むマイクロコード、または、基礎となるハードウェアに固有であり、システム・ハードウェアへのオペレーティング・システム・アクセスを制御するマイクロコードとして提供されるのが一般的である。
1つの実施形態では、ハードウェア・セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)は、少なくとも1つのマスター鍵152または他のセレクト鍵を含み、これは権限のない関係者にとってアクセス可能でない。このマスター鍵は、ハードウェア・セキュリティ・モジュールのユーザにとって利用可能な鍵を暗号化(すなわちラップ)するために使用される。「マスター鍵」という語は、HSMに記憶されている暗号化鍵/復号鍵を意味することがある。1つの実施形態では、マスター鍵は、それが記憶されているハードウェア・セキュリティ・モジュールの外に転送されない。HSMマスター鍵によってラップされた鍵は、セキュア鍵と呼ばれる。
完全性保護と共にセキュア・オブジェクト(セキュア鍵オブジェクトとも称される)をサポートするハードウェア・セキュリティ・モジュールが存在する。一例では、セキュア・オブジェクトは、例えば、ハードウェア・セキュリティ・モジュールのマスター鍵によって暗号化された有効な鍵を含んでいる。加えて、一例では、それは、そのセキュア・オブジェクトが現在のマスター鍵を用いてハードウェア・セキュリティ・モジュールによって作成されたことを検証するためにハードウェア・セキュリティ・モジュールによって使用され得るデータを含んでいる。この完全性保護は、それがマスター鍵に依存することから、ハードウェア・セキュリティ・モジュールによって生成される。そのような完全性が保護されたセキュア・オブジェクトの例は、例えばEP11モードのCrypto Express Adapterのセキュア鍵オブジェクトであり、これは、マスター鍵によってラップされた鍵を含み、それに、そのラップされた鍵のメッセージ認証コード(MAC)が連結されている。MACは、例えばマスター鍵から導出された鍵を使用して、計算される。
ハードウェア・セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)は、改ざん耐性があり、機密属性(例えばセキュア・ゲストの鍵)を、不正アクセス(例えば、予定外の物理的なプラグ接続、物理的な侵入等)から保護する。ハードウェア・セキュリティ・モジュールは、仮想機械(VM)などの様々な仮想リソースに割り当てられることが可能であり、仮想環境では、ハードウェア・セキュリティ・モジュールは、ある仮想機械またはゲストから別の仮想機械またはゲストへの自身の再割り当てを意識しないことがある。
このVM割り当ての柔軟性は、セキュリティ問題を呈することがある。非常に機密性の高いホストされる情報技術(IT)環境では、ホストされるゲスト(例えばセキュア・ゲスト)の所有者は、ゲストがハッキングされるかまたはその他の理由で危険にさらされる、および/あるいは、セキュア鍵もしくは他のデータまたはその両方が入手された場合でも、自身のセキュア鍵(例えば、自身のHSMのマスター鍵によってラップされている)が、自身が所有していない信頼されないゲストによって使用できないことを確実にすることを望む。
図2は、そのようなセキュリティ問題の一例を示す。図2に示されるように、一例では、ハードウェア・セキュリティ・モジュール150などのハードウェア・セキュリティ・モジュール(HSM)が、権限のない関係者にとってアクセス不可能な、マスター鍵152などのマスター鍵を含んでいる。マスター鍵152は、ハードウェア・セキュリティ・モジュールのプログラム・コードが、ハードウェア・セキュリティ・モジュールのユーザに対して利用可能にする鍵を暗号化する(すなわち、ラップする)ために、ハードウェア・セキュリティ・モジュールのプログラム・コードによって利用される。ハードウェア・セキュリティ・モジュールのマスター鍵152によってラップされた鍵は、セキュア鍵と呼ばれる。
一例では、ゲスト1であるゲスト200が、ハイパーバイザ、例えばハイパーバイザ(HV)170がハードウェア・セキュリティ・モジュール150からゲスト200に提供したセキュア鍵220を保有している。本明細書に示されるように、ハードウェア・セキュリティ・モジュールは、改ざん耐性があり、機密属性(例えば、鍵などの秘密)を、不正アクセス(例えば、予定外の物理的なプラグ接続、物理的な侵入等)から保護する。しかし、ゲスト200は、同等のセキュリティを持たず、したがって脆弱性を表し得る。仮想環境では、ハイパーバイザ170が、そのゲストへのハードウェア・セキュリティ・モジュールのようなリソースの割り当てを制御するので、ハードウェア・セキュリティ・モジュール150は、あるゲスト(すなわち、VM)から別のゲスト(すなわち、VM)への自身の再割り当てを意識しないことがある。よって、悪意のあるユーザが、ゲスト2である第2のゲスト210を利用してゲスト1である所与のゲスト200をハッキングし、ゲスト200に割り当てられたセキュア鍵220が第2のゲスト210によって保持された場合、セキュリティの脆弱性が存在する。よって、第2のゲスト210は、ゲスト200のセキュア鍵220を入手することができる(230)。ハイパーバイザ(例えばハイパーバイザ170)が、ハードウェア・セキュリティ・モジュール150をゲスト2 210に割り当てる場合、ゲスト2はセキュア鍵220を使用することができる。
上記の鍵の入手は、特に非常に機密性の高いホストされるIT環境において問題となり、そこでは、ホストされるゲストの所有者は、ホスト環境の管理者よりも積極的なセキュリティを維持することを望む。共有コンピューティング環境(例えば共有コンピューティング環境100)では、様々なゲストが異なるエンティティによって所有され得、ハードウェア・セキュリティ・モジュール150は、そのようなエンティティのうちの特定のものだけに属することができる。よって、セキュア鍵(例えばセキュア鍵220)が割り当てられたゲスト200の所有者などのゲスト所有者は、ハードウェア・セキュリティ・モジュール150のマスター鍵152によってラップされたそのセキュア鍵220を維持することを望む。このゲスト所有者は、セキュア鍵220を、共有コンピューティング環境内のリソースを利用する異なるエンティティによって所有される他のゲスト(例えば信頼されないゲスト)によって使用されたくない。例えば、図2では、第1のゲスト200と第2のゲスト210は、異なる所有者を有し、ゲスト200の所有者は、図2に示されるようにゲスト200がハッキングされ、セキュア鍵220または他のデータあるいはその両方が入手された(230)場合でも、それが、セキュア鍵220が当初割り当てられたゲスト200の所有者以外のどの所有者によっても利用され得ないことを確実にしたい。これが、本発明の1つまたは複数の態様によって対処される。
本発明の1つまたは複数の態様によると、セキュア・ゲストは、信頼されるコンポーネントによって維持されているセキュア・ゲストの実行中のインスタンスの外側で使用可能な有効なセキュア・オブジェクト(例えばセキュア鍵を含む)へのアクセス権を持たない。無効なセキュア・オブジェクトは、信頼されるコンポーネントが、正しいハードウェア・セキュリティ・モジュール機密バインディング属性へのアクセスを有すれば、信頼されるコンポーネントによってハードウェア・セキュリティ・モジュールで使用可能にされる。
一態様では、信頼されるコンポーネント(例えば信頼されるファームウェア160)は、ハードウェア・セキュリティ・モジュール機密バインディング属性(例えば、鍵または鍵がそれから導出される材料などの機密バインディング属性162)を使用して、セキュア・ゲストによって使用される1つまたは複数のセキュア・オブジェクトを、該当するハードウェア・セキュリティ・モジュールにバインドする。例えば、信頼されるコンポーネントは、機密バインディング属性を使用して、セキュア・ゲストがハードウェア・セキュリティ・モジュールとの間で使用する、セキュア・オブジェクトの1つまたは複数の完全性保護フィールドに変更を加える。完全性保護フィールドは、例えば鍵の目的(例えば、署名、暗号化等)などの、例えば鍵の、属性を、暗号的に鍵値にバインドするために使用される。セキュア・オブジェクトがハードウェア・セキュリティ・モジュールからセキュア・ゲストに送られるとき、信頼されるファームウェアは、機密バインディング属性を使用して、セキュア・オブジェクトの完全性保護フィールドの1つまたは複数を暗号化またはその他の方法で変更して、セキュア・ゲストが、信頼されるコンポーネントによって実行される自身のインスタンスにバインドされたセキュア・オブジェクトを受け取るようにする。セキュア・ゲストが、変更されたセキュア・オブジェクトを、新しい動作のためにハードウェア・セキュリティ・モジュールに送り返すとき、信頼されるコンポーネントは、その動作をインターセプトし、セキュア・オブジェクトの完全性保護への変更を復号するかまたは他の方法で除去して、ハードウェア・セキュリティ・モジュールが、それが使用できるセキュア・オブジェクトを受け取るようにする。
信頼されるコンポーネントは、例えば、セキュア・ゲストがアクセスを許されるハードウェア・セキュリティ・モジュールごとに、ハードウェア・セキュリティ・モジュール機密バインディング属性(例えば機密バインディング属性162)を維持する。信頼されるコンポーネントは、セキュア・ゲストが、ハードウェア・セキュリティ・モジュール機密バインディング属性がそのゲストのメタデータに含まれているハードウェア・セキュリティ・モジュールにだけアクセスできることを強制する。さらに、信頼されるコンポーネントは、1つの実施形態では、セキュア・ゲストにとってアクセス可能なハードウェア・セキュリティ・モジュールがハイパーバイザ通過モードに構成されることを強制し、これは、ゲストによって発行された暗号動作(例えば暗号化/復号)がハイパーバイザによってインターセプトされないことを意味する。代わりに、1つまたは複数の態様では、それはハイパーバイザを迂回し、信頼されるコンポーネントによってインターセプトされる。
1つの実施形態では、2つ以上のセキュリティ・モジュールが1つのゲストに対して構成されてよく、各々が独自の機密バインディング属性を有する。さらに、1つの実施形態では、セキュア・ゲストの所有者は、同じ所有者によって所有される複数のゲストが変更された鍵オブジェクトを交換できるように、第1のゲストと同じ機密バインディング属性を含んでいるインフラストラクチャと共に1つまたは複数の他のセキュア・ゲストを準備するオプションを有する。これは、万一第1のゲストが機能しなくなった場合に、別のゲストがコンピューテーションを引き継ぐことを可能にし、高い可用性の解決法を提供する。
セキュア・ゲストへのハードウェア・セキュリティ・モジュールのセキュア・オブジェクトのバインディングに関するさらなる詳細が、図3~5を参照して説明される。詳細には、図3は、セキュア・ゲスト(例えばセキュア・ゲスト180)にセキュリティ・モジュール(例えばHSM150)のセキュア・オブジェクトをバインドする論理の一例を描いており、図4は、セキュリティ・モジュールに要求を送る論理の一例を描いており、図5は、要求の結果をセキュア・ゲストに返す論理の一例を描いている。
最初に、図3を参照して、セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)のセキュア・オブジェクトを、セキュア・ゲスト(例えばセキュア・ゲスト180)にバインドする1つの実施形態が説明される。1つの実施形態では、バインディングは、セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)を使用するように構成されたセキュア・ゲストのセキュア・オブジェクトのバインディングであり、このバインディングは、そのセキュア・ゲストのイメージに暗号的にリンクされ、かつ、セキュア・ゲストのイメージを開始するために提供されるセキュア・ゲストのメタデータのインストールの一部として信頼されるコンポーネント(例えば信頼されるファームウェア160)に安全に提供される、セキュリティ・モジュールの機密バインディング属性(例えば鍵)に基づく。
照会300で、セキュア・ゲスト(例えばセキュア・ゲスト180)のメタデータが、機密バインディング属性(例えば機密バインディング属性162)を有するかどうかについて判定が行われる。メタデータが機密バインディング属性を含んでいない場合、ステップ302で、この処理は完了する。そうでない場合、処理が継続し、ステップ304で、セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)がセレクト・モードのために構成される。一例では、信頼されるコンポーネント(例えば信頼されるファームウェア160)は、セキュリティ・モジュールをハイパーバイザ通過モードのために構成し、このモードでは、ゲストによって発行された暗号動作が、そのゲストを管理するハイパーバイザによってインターセプトされない。この構成は、z/Architecture(R)ハードウェア・アーキテクチャの一例では、例えばz/Architecture(R)ハードウェア・アーキテクチャの解釈実行開始(start interpretative execution:SIE)命令の、例えば暗号制御ブロックを構成することによって行われる。一例では、信頼されるコンポーネント(例えば信頼されるファームウェア160)は、ハイパーバイザによってセキュア・ゲストに対して構成されたセキュリティ・モジュールごとに、そのハードウェア・セキュリティ・モジュールのための機密バインディング属性が存在するかどうかを検証し、セキュア・ゲストのメタデータに機密バインディング属性が存在しないセキュリティ・モジュールの各構成を、暗号制御ブロックから削除し、その暗号制御ブロックを、セキュア・ゲストの寿命中にハイパーバイザによって変更されることから保護する。
さらに、1つの実施形態では、信頼されるコンポーネントは、ステップ306で、1つまたは複数のセキュリティ・モジュール通信をインターセプトする。例えば、信頼されるコンポーネントは、セキュリティ・モジュールへの要求をインターセプトし、図4を参照してさらに説明されるように、ステップ308で、その要求をセキュリティ・モジュールに転送する前に、機密バインディング属性を使用して、セキュア鍵を含んでいる要求の無効なオブジェクト(本明細書においてセキュア鍵オブジェクトと称される)を有効化する。加えて、信頼されるコンポーネントは、図5を参照してさらに説明されるように、ステップ310で、セキュリティ・モジュールによって処理された要求の結果をインターセプトし、機密バインディング属性を使用して、セキュア・ゲストに返されるセキュア鍵を含んでいる結果のオブジェクト(本明細書においてセキュア鍵オブジェクトと称される)を無効化する。
図4を参照すると、一例では、ステップ400で、セキュア・ゲストが、セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)に、要求(セキュリティ・モジュール通信とも称される)をサブミットする。この要求は、例えば、データ、テキスト等を暗号化または復号する要求、鍵を生成する要求等の暗号要求であり、例えば、1つまたは複数の無効なセキュア鍵を含む1つまたは複数の無効なオブジェクトを含む。要求は、ステップ402で、信頼されるコンポーネント(例えば信頼されるファームウェア160)によってインターセプトされ、信頼されるコンポーネントは、ステップ404で、セキュア鍵を含むオブジェクトがあるか要求を検索する。照会406で、セキュア鍵を含むオブジェクトが見つかった場合、ステップ408で、完全性データを含むように指定されたオブジェクトの少なくとも一部が、機密バインディング属性の鍵またはそれから導出される鍵(例えば、機密バインディング属性から取得される鍵)を使用して復号される。処理は次いでステップ404に進む。しかし、照会406で、オブジェクトまたはさらなるオブジェクトが見つからない場合、ステップ410で、その結果生じる要求がハードウェア・セキュリティ・モジュールに転送される。その結果生じる要求は、本明細書において暗号結果と称されることがあり、これは、例えば、照会406で鍵オブジェクトが見つかったと仮定すると、機密バインディング属性に関連するセキュリティ・モジュール(例えばHSM150)にバインドされた1つまたは複数の有効なセキュア・オブジェクトを含む。
図5を参照すると、一例では、ステップ500で、セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール150)が、要求の結果を返す。この要求は、ここでも、例えば暗号要求である。結果の返しは、ステップ502で、信頼されるコンポーネント(例えば信頼されるファームウェア160)によってインターセプトされ、信頼されるコンポーネントは、ステップ504で、セキュア鍵を含むオブジェクトがあるか結果を検索する。照会506で、セキュア鍵を含むオブジェクトが見つかった場合、ステップ508で、完全性データ(例えばメッセージ認証コード)を含むように指定されたオブジェクトの少なくとも一部が、機密バインディング属性の鍵またはそれから導出される鍵(例えば、機密バインディング属性から取得される鍵)を使用して暗号化される。処理は次いでステップ504に進む。しかし、照会506で、セキュア鍵を含んでいるオブジェクトまたはさらなるオブジェクトが見つからない場合は、ステップ510で、可能性としては変更されている結果がセキュア・ゲストに転送される。この結果は、本明細書において暗号結果と称されることがあり、これは、例えば、照会506で鍵オブジェクトが見つかったと仮定すると、機密バインディング属性に関連するセキュリティ・モジュール(例えばHSM150)にバインドされた1つまたは複数の無効化されたセキュア・オブジェクトを含む。
本明細書に記載されるのは、セキュリティ・モジュールのセキュア・オブジェクト(例えばセキュア鍵を含むもの)をセキュア・ゲストにバインドする能力である。1つまたは複数の態様において、セキュア・ゲストに対するハードウェア・セキュリティ・モジュールの構成は、そのハードウェア・セキュリティ・モジュールが、異なる機密バインディング属性を使用して別のゲストに対して構成された場合に、そのセキュア・ゲストから入手された鍵材料または他のデータあるいはその両方によって、当該別のゲストが、構成されたハードウェア・セキュリティ・モジュールとの間で入手した鍵を使用することが可能になり得ないように、行われる。1つまたは複数の態様において、信頼されるファームウェア(ウルトラバイザ(UV)としても知られる)は、セキュア・ゲストが、ハイパーバイザ通過モードではハードウェア・セキュリティ・モジュールに(例えば、それのみに)アクセスするように構成されることを強制する。セキュア・ゲストを開始(ブート)するために使用されるメタデータは、そのセキュア・ゲストに対して構成されることになるハードウェア・セキュリティ・モジュールごとに、機密バインディング属性(例えば、鍵/または鍵を導出するための材料などの秘密)を含んでいる。メタデータは、完全性が保護され、セキュア・ゲストのブート・イメージに暗号的にバインドされ、安全に(すなわち、機密性を有し、かつ完全性を保護して)信頼されるファームウェアに渡される。信頼されるファームウェアは、セキュア・ゲストからハードウェア・セキュリティ・モジュールへの各要求をインターセプトする。機密バインディング属性を使用して、それは、セキュア・ゲストに返すべきセキュア鍵を含んでいる各オブジェクトを無効化する。機密バインディング属性を使用して、それは、要求をハードウェア・セキュリティ・モジュールに転送する前に、セキュア・ゲストによってハードウェア・セキュリティ・モジュールに送られた要求中の各無効化されたオブジェクトを有効化する。
本明細書に記載されるように、セキュア・オブジェクトは、例えば、ハードウェア・セキュリティ・モジュールに安全に記憶されているマスター鍵によってラップされた鍵のような、ハードウェア・セキュリティ・モジュールによって保護された鍵、または、ハードウェア・セキュリティ・モジュールによって保護された鍵を含んでいる任意のオブジェクト(中間計算状態のような)を含む。そのようなセキュア・オブジェクトは、例えば、ハードウェア・セキュリティ・モジュールによってのみ明らかにされ得る実際の秘密(例えばラップされた鍵)、ハードウェア・セキュリティ・モジュールを使用してソフトウェアによって解釈可能な何らかの追加的情報(オブジェクトの属性のような)、および、追加的情報がセキュア・オブジェクトから分離されないことを保証する何らかの完全性保護データ、を含む、例えば、異なる(可能性としては重複する)部分を含む(セキュア・データと完全性データは重複し得る)。
無効化および有効化がセキュア・ゲストのセキュア・オブジェクトに行われるように、ハイパーバイザは、セキュア・ゲストからセキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール)へのどの要求にも干渉できるべきではない。したがって、セキュア・ゲストに対して構成されるハードウェア・セキュリティ・モジュールは、ハイパーバイザ通過モードに構成されるべきである。すなわち、ハイパーバイザは、ハードウェア・セキュリティ・モジュールへのセキュア・ゲストのどの要求もインターセプトしない。
信頼されるファームウェアは、例えば、ハードウェア・セキュリティ・モジュールへのセキュア・ゲストの各要求をインターセプトする。ハードウェア・セキュリティ・モジュールに送られる各要求について、信頼されるファームウェアは、その要求をインターセプトし、セキュア鍵オブジェクトを含むその要求内の各セキュア・オブジェクトについて、要求をハードウェア・セキュリティ・モジュールに転送する前に、破損した完全性保護データが、規定された完全性保護を含んでいるデータに置き換えられる。
規定された完全性保護を含んでいるデータは、ハードウェア・セキュリティ・モジュール機密バインディング属性の鍵またはそれから導出される鍵を使用して、破損した完全性保護を含んでいるデータを復号することにより、破損した完全性保護を含んでいるデータから導出される。
一例では、ハードウェア・セキュリティ・モジュールによって返される各応答について、信頼されるファームウェアは、その応答をインターセプトし、セキュア鍵オブジェクトを含むその応答内の各セキュア・オブジェクトについて、応答をセキュア・ゲストに転送する前に、完全性保護を含んでいるデータが、破損した完全性保護を含んでいるデータに置き換えられる。
破損した完全性保護を含んでいるデータは、ハードウェア・セキュリティ・モジュール機密バインディング属性の鍵またはそれから導出される鍵を使用して、完全性保護を含んでいるデータを暗号化することにより、完全性保護を含んでいるデータから導出される。
様々な態様が本明細書に記載される。本発明の態様の思想から逸脱することなく、多くの変形形態および実施形態が可能である。他の点で矛盾しない限り、本明細書に記載される各態様または特徴、およびそれらの変形例は、任意の他の態様または特徴と組み合わせ可能であり得ることが留意されるべきである。
1つまたは複数の態様において、エンクレーブまたは同様の技術は必要とされない。さらに、ハードウェア・セキュリティ・モジュールが、セキュア・チャネルの終点を(非対称暗号法に基づいて)確立可能であることは必要とされない。特殊なハードウェア・セキュリティ・モジュール、鍵マネジャ、または鍵配布サービスも必要とされない。さらに、セキュリティ・モジュールのセキュア鍵をセキュア・ゲストにバインドするために、信頼されるファームウェアは、セキュリティ・モジュールに対して開かれるセッションも、セキュリティ・モジュールによって作成される鍵のセットも追跡する必要がない。
本発明の1つまたは複数の態様は、コンピュータ技術と一体に結び付いており、コンピュータ内の処理を容易にして、その性能を向上させる。本発明の実施形態は、少なくとも、それらが、コンピューティングに特有の課題に対処し、同じくこの分野にある技術的手法を提供することを対象とするため、コンピューティングと一体に結び付いている。本発明の実施形態は、セキュリティ・モジュール(例えばハードウェア・セキュリティ・モジュール)のセキュア・オブジェクト(例えばセキュア鍵を含む)を、特定の所有者に属する特定のゲスト(例えばVM)にバインドする。本発明の一部の実施形態の態様が対処するように働く、図2に示される問題は、コンピューティングに固有である(すなわち、権限のないゲストが、権限のあるゲストのセキュアなラップされた鍵へのアクセス権を得る)。この問題とこの手法の両方がコンピューティングに固有であるとすると、本発明の実施形態は、コンピューティングと一体に結び付いている。
これらに限定されないが、エミュレーション環境を含む他の種類のコンピューティング環境も、本発明の1つまたは複数の態様を組み込んで使用し得、エミュレーション環境の一例が、図6Aを参照して説明される。この例では、コンピューティング環境35は、例えば、例えば1つまたは複数のバス43または他の接続あるいはその両方を介して互いと結合された、ネイティブ中央演算処理装置(CPU)37、メモリ39、ならびに1つまたは複数の入力/出力デバイスまたはインターフェース41あるいはその両方を含む。例として、コンピューティング環境35は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるPowerPC(R)プロセッサ、またはインターナショナル・ビジネス・マシーンズ・コーポレーション、Intel Corporation、もしくは他の企業によって提供されるアーキテクチャに基づく他の機械、あるいはその両方を含み得る。PowerPCは、少なくとも1つの管轄においてインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。Intelは、米国および他の国においてIntel Corporationおよびその系列会社の商標または登録商標である。
ネイティブ中央演算処理装置37は、環境内で処理中に使用される、1つもしくは複数の汎用レジスタ、または1つもしくは複数の特殊目的レジスタ、あるいはその両方などの、1つまたは複数のネイティブ・レジスタ45を含む。これらのレジスタは、任意の特定の時点における環境の状態を表す情報を含んでいる。
さらに、ネイティブ中央演算処理装置37は、メモリ39に記憶されている命令およびコードを実行する。1つの特定の例では、中央演算処理装置は、メモリ39に記憶されているエミュレータ・コード47を実行する。このコードは、あるアーキテクチャで構成されたコンピューティング環境が別のアーキテクチャをエミュレートすることを可能にする。例えば、エミュレータ・コード47は、PowerPC(R)プロセッサまたは他のサーバもしくはプロセッサなどの、z/Architecture(R)ハードウェア・アーキテクチャ以外のアーキテクチャに基づく機械が、z/Architecture(R)ハードウェア・アーキテクチャをエミュレートし、z/Architecture(R)ハードウェア・アーキテクチャに基づいて開発されたソフトウェアおよび命令を実行することを可能にする。
エミュレータ・コード47に関するさらなる詳細が、図6Bを参照して説明される。メモリ39に記憶されたゲスト命令49は、ネイティブCPU37のアーキテクチャ以外のアーキテクチャ内で実行するために開発されたソフトウェア命令(例えば機械命令と相関する)を含む。例えば、ゲスト命令49は、z/Architecture(R)プロセッサで実行するように設計されている可能性があるが、代わりに、例えばIntel(R)プロセッサであり得る、ネイティブCPU37上でエミュレートされている。一例では、エミュレータ・コード47は、メモリ39から1つまたは複数のゲスト命令49を取得し、任意で、取得した命令のローカルなバッファリングを提供するための命令フェッチ・ルーチン51を含む。それは、取得されたゲスト命令の種類を判定し、そのゲスト命令を1つまたは複数の対応するネイティブ命令55に変換するための命令変換ルーチン53も含む。この変換は、例えば、ゲスト命令によって行われる機能を識別し、その機能を行うためのネイティブ命令を選択することを含む。
さらに、エミュレータ・コード47は、ネイティブ命令を実行させるエミュレーション制御ルーチン57を含む。エミュレーション制御ルーチン57は、ネイティブCPU37にネイティブ命令のルーチンを実行させ得、それが、1つまたは複数の事前に取得されたゲスト命令をエミュレートし、その実行の終結時に、制御を命令フェッチ・ルーチンに戻して次のゲスト命令またはゲスト命令の群の取得をエミュレートする。ネイティブ命令55の実行は、変換ルーチンの決定に応じて、メモリ39からレジスタにデータをロードすること、レジスタからメモリにデータを戻して記憶すること、または、何らかの種類の算術もしくは論理演算を行うことを含み得る。
各ルーチンは、例えば、ソフトウェアとして実装され、それがメモリに記憶され、ネイティブ中央演算処理装置37によって実行される。他の例では、ルーチンまたは動作の1つまたは複数が、ファームウェア、ハードウェア、ソフトウェア、またはそれらの何らかの組合せとして実装される。エミュレートされるプロセッサのレジスタは、ネイティブCPUのレジスタ45を使用して、またはメモリ39内の場所を使用することによって、エミュレートされ得る。実施形態において、ゲスト命令49、ネイティブ命令55、およびエミュレータ・コード47は、同じメモリに存在していても、または異なるメモリ・デバイス間に分散されてもよい。
1つまたは複数の態様は、クラウド・コンピューティングに関し得る。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に述べられる教示の実施はクラウド・コンピューティング環境に限定されないことが理解されるべきである。むしろ、本発明の実施形態は、現在知られているまたは後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
クラウド・コンピューティングは、最小限の管理労力で、またはサービスの提供者との最小限の対話で、速やかにプロビジョニングおよび公開することが可能な、構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの利便でオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
特性は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者が、サービスの提供者との人的な対話を必要とすることなく、必要に応じて、自動的に、サーバ時間やネットワーク・ストレージなどのコンピューティング能力を一方向にプロビジョニングすることができる。
ブロード・ネットワーク・アクセス:諸能力が、ネットワークを通じて利用可能であり、異種混合のシンまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソース・プーリング:提供者のコンピューティング・リソースが、マルチテナント・モデルを使用して複数の消費者に対応するためにプールされ、種々の物理リソースおよび仮想リソースが、必要に従って動的に割り当てられ、再割り当てされる。消費者は、一般に、提供されるリソースの正確な所在地に関して制御も知識も有さないが、高い抽象化レベルで場所を指定することができる(例えば、国、州、またはデータセンター)という点で、場所の非依存感がある。
速やかな順応性:迅速に拡張し、速やかに解放されて迅速に縮小するように、能力を、速やかかつ柔軟に、場合によっては自動的にプロビジョニングすることができる。消費者にとって、プロビジョニングするために利用可能な能力は、多くの場合無限に見え、任意の時に任意の数量で購入することができる。
計測されるサービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、および有効なユーザ・アカウント)に適する何らかの抽象化レベルで、計測能力を活用することにより、リソース使用を自動的に制御および最適化する。リソース使用を監視、制御、および報告して、利用されるサービスの提供者と消費者の両方に透明性を提供することができる。
サービス・モデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウド・インフラストラクチャ上で動作する提供者のアプリケーションを使用する能力である。アプリケーションは、ウェブ・ブラウザ(例えばウェブベースの電子メール)などのシン・クライアント・インターフェースを通じて、様々なクライアント・デバイスからアクセスすることができる。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージを含む、基礎となるクラウド・インフラストラクチャ、またはさらには、可能性としては限られたユーザ固有のアプリケーション構成設定を除く個々のアプリケーション能力すら、管理も制御もしない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、提供者によってサポートされるプログラミング言語およびツールを使用して作成された、消費者によって作成または取得されたアプリケーションを、クラウド・インフラストラクチャ上に展開する能力である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーション、および可能性としてはアプリケーション・ホスト環境構成に対する制御を有する。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングする能力であり、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開して実行することができる。消費者は、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御、および場合によっては選択されたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)の制限された制御を有する。
展開モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャが、1つの組織のためだけに運用される。それは、その組織または第三者によって管理され得、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャがいくつかの組織によって共有され、共有される関心事項(例えば、使命、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティを支援する。それは、それら組織または第三者によって管理され得、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャが、一般公衆または大きな産業グループに利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成であり、それらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする、標準化されたまたは独自仕様の技術(例えばクラウド間の負荷分散のためのクラウド・バースティング)によって互いに結合される。
クラウド・コンピューティング環境は、ステートレス性、低い結合度、モジュール性、および意味的な相互運用性を重視したサービスである。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
次いで図7を参照すると、例示的なクラウド・コンピューティング環境50が描かれている。示されるように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード52を含み、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せが、上記クラウド・コンピューティング・ノードと通信し得る。ノード52は、互いと通信し得る。それらは、本明細書の上記に記載されるようにプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウドなどの1つまたは複数のネットワークとして、またはその組合せとして、物理的または仮想的にグループ化されてよい(図示せず)。これにより、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せを、サービスとして提供することが可能となり、それに対してクラウド消費者は、ローカル・コンピューティング・デバイス上にリソースを維持しておく必要がない。図7に示されるコンピューティング・デバイス54A~Nの種類は単に例示的なものであることが意図され、またコンピューティング・ノード52およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス指定可能接続(例えばウェブ・ブラウザを使用する)、あるいはその組合せを通じて、任意の種類のコンピュータ化されたデバイスと通信できることが理解される。
次いで図8を参照すると、クラウド・コンピューティング環境50(図7)によって提供される機能抽象化層のセットが示されている。図8に示される構成要素、層、および機能は単に例示的なものであることが意図され、本発明の実施形態はそれに限定されないことがあらかじめ理解されるべきである。描かれるように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61;RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62;サーバ63;ブレード・サーバ64;記憶装置65;ならびにネットワークおよびネットワーキング・コンポーネント66を含む。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は抽象化層を提供し、そこから以下の仮想エンティティの例が提供され得る:仮想サーバ71;仮想ストレージ72;仮想プライベート・ネットワークを含む仮想ネットワーク73;仮想アプリケーションおよびオペレーティング・システム74;ならびに仮想クライアント75。
一例では、管理層80は、下記の機能を提供し得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および価格決定82は、クラウド・コンピューティング環境内でリソースが利用されるのに伴う費用追跡、およびそれらリソースの消費に対する請求書送付またはインボイス送付を提供する。一例では、これらリソースは、アプリケーション・ソフトウェアのライセンスを含み得る。セキュリティは、クラウド消費者およびタスクに関する身元検証、ならびにデータおよび他のリソースに関する保護を提供する。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス・レベル管理84は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り振りおよび管理を提供する。サービス・レベル合意(SLA)の計画および遂行85は、将来の必要性が見込まれるクラウド・コンピューティング・リソースの事前の構成および調達をSLAに従って提供する。
作業負荷層90は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得る作業負荷および機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、ならびにセキュア・オブジェクト・バインディング処理96が含まれる。
本発明の態様は、任意の可能な技術的詳細の統合レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有している(1つまたは複数の)コンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することが可能な有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、または上述の任意の好適な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、携帯型コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラム可能読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチ・カードや命令が記録されている溝内の***構造などの機械的に符号化されたデバイス、および上述の任意の好適な組合せが含まれる。本発明において使用されるコンピュータ可読記憶媒体は、電波または他の自由伝搬する電磁波、導波管もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、あるいは電線を通じて伝送される電気信号などの一過性の信号自体であるとは解釈されるべきでない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくはワイヤレス・ネットワーク、あるいはその組合せを介して、外部コンピュータもしくは外部記憶装置にダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含んでよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内部のコンピュータ可読記憶媒体内に記憶するために転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、Smalltalk(R)、C++等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、または、ソース・コードもしくはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェア・パッケージとして、全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通じてユーザのコンピュータに接続されてよく、または接続は外部コンピュータになされてもよい(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)。一部の実施形態では、例えば、プログラム可能論理回路、フィールド・プログラム可能ゲートアレイ(FPGA)、またはプログラム可能論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別設定することによって、コンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその組合せの中のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
それらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/行為を実施するための手段を作り出すように機械を制作すべく、コンピュータまたは他のプログラム可能データ処理装置のプロセッサに提供されてよい。それらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/行為の態様を実施する命令を含む製造品を構成するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/行為を実施するように、コンピュータ、他のプログラム可能データ処理装置、もしくは他のデバイスにロードされて、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを行わせて、コンピュータによって実施されるプロセスを発生させてもよい。
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を説明している。これに関して、フローチャートまたはブロック図中の各ブロックは、モジュール、セグメント、または命令の一部を表し得、それは、指定される論理機能を実施するための1つまたは複数の実行可能命令を含む。一部の代替実装形態では、ブロックに記される機能は、図に記される順序から外れて行われてよい。例えば、連続して示される2つのブロックが、実際には1つのステップとして実現される、同時に実行される、実質的に同時に実行される、または、部分的もしくは完全に時間的に重なるように実行されてよく、あるいはそれらブロックは、時に、関与する機能に応じて逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方の中のブロックの組合せは、指定される機能もしくは行為を行うか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施する、特殊目的のハードウェア・ベース・システムによって実施され得ることに留意されよう。
上記に加えて、1つまたは複数の態様が、顧客環境の管理を提供するサービス提供者によって、提供、供給、展開、管理、サービス等され得る。例えば、サービス提供者は、1人または複数の顧客のために1つまたは複数の態様を行うコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を作成、保持、支援等することができる。その見返りとして、サービス提供者は、例としてサブスクリプションまたは料金あるいはその両方の契約の下に顧客から支払いを受け取り得る。追加または代替として、サービス提供者は、1つまたは複数の第三者への広告コンテンツの販売から支払いを受け取ってもよい。
1つの態様では、1つまたは複数の実施形態を行うためのアプリケーションが展開され得る。一例として、アプリケーションの展開は、1つまたは複数の実施形態を行うように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
さらなる態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含むコンピューティング・インフラストラクチャが展開され得、コードは、コンピューティング・システムとの組合せで、1つまたは複数の実施形態を行うことができる。
またさらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含む、コンピューティング・インフラストラクチャを統合するためのプロセスが提供され得る。コンピュータ・システムは、コンピュータ可読媒体を備え、コンピュータ媒体は1つまたは複数の実施形態を備える。コードは、コンピュータ・システムとの組合せで、1つまたは複数の実施形態を行うことができる。
様々な実施形態が上記に説明されたが、それらは例に過ぎない。例えば、他のアーキテクチャのコンピューティング環境を使用して、1つまたは複数の実施形態を組み込み、使用することができる。さらに、他の信頼されるコンポーネントまたはセキュリティ・モジュールあるいはその両方が使用されてよい。加えて、機密バインディング属性は、メタデータ以外の機構を通じてゲストに結び付けられるもしくはリンクされてよく、または機密バインディング属性は、鍵または鍵を導出するための材料以外の情報/データであってもよく、あるいはその両方であってもよい。またさらに、セレクト・モードは、ハイパーバイザ通過モード以外であってもよい。さらなる実施形態では、セキュア・オブジェクトは、暗号動作を行うこと以外によって、または機密バインディング属性を使用して暗号動作を行うこと以外によって、あるいはその両方によって、無効化/有効化されてよい。多くの変形形態が可能である。
さらに、他の種類のコンピューティング環境が利益を得、使用されることができる。一例として、システム・バスを通じて直接または間接的にメモリ要素に結合された少なくとも2つのプロセッサを含む、プログラム・コードを記憶または実行する、あるいはその両方を行うのに適したデータ処理システムが使用可能である。メモリ要素は、例えば、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量ストレージ、および、実行中に大容量ストレージからコードが取り出されなければならない回数を減らすために少なくともいくらかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含む。
入力/出力またはI/Oデバイス(これらに限定されないが、キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブおよび他のメモリ媒体等を含む)が、直接、または仲介するI/Oコントローラを通じて、システムに結合され得る。ネットワーク・アダプタもシステムに結合されて、データ処理システムが、仲介するプライベート・ネットワークまたは公衆ネットワークを通じて、他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合されることを可能にし得る。モデム、ケーブル・モデム、およびEthernet(R)カードは、ネットワーク・アダプタの利用可能な種類のほんの数例である。
本明細書で使用される術語は、特定の実施形態を説明することのみを目的とし、制限する意図はない。本明細書で使用される場合、単数形の「a」、「an」および「the」は、文脈が明らかに他のように示さない限り、複数形も包含することが意図される。さらに、用語「~を備える」または「~を備えている」あるいはその両方は、本明細書で使用される場合、述べられる特徴、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらの群、あるいはその組合せの存在または追加を排除しないことが理解されよう。
添付の特許請求の範囲における、すべてのミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクション要素の、対応する構造、材料、行為、および均等物(存在する場合)は、明確に特許請求される他の特許請求される要素との組合せで機能を行うための任意の構造、材料、または行為を包含することが意図される。1つまたは複数の実施形態の説明は、例示および説明の目的で提示されたものであり、網羅的であるまたは開示される形態であることに制限される意図はない。多くの変更および変形が当業者に明らかとなろう。実施形態は、様々な態様および実際的応用を最もよく説明し、当業者が、企図される特定の用途に適する様々な変更と共に様々な実施形態を理解することを可能にするために選択および記載された。

Claims (20)

  1. コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品であって、
    少なくとも1つの処理回路により可読であり、方法を行うための命令を記憶している、少なくとも1つのコンピュータ可読記憶媒体を備え、前記方法が、
    前記コンピューティング環境のセキュリティ・モジュールの少なくとも1つのセキュア・オブジェクトを、前記コンピューティング環境のセキュア・ゲストにバインドすることであって、前記セキュア・ゲストが前記セキュリティ・モジュールを使用するように構成される、前記バインドすること
    を含み、前記バインドすることが、
    前記コンピューティング環境の信頼されるコンポーネントにより、前記セキュア・ゲストのメタデータが前記セキュリティ・モジュールのための機密バインディング属性を含むかどうかを判定することと、
    前記メタデータが前記機密バインディング属性を含むと判定することに基づいて、前記信頼されるコンポーネントにより、前記セキュリティ・モジュールをセレクト・モードで前記セキュア・ゲストのために構成することであって、前記セレクト・モードは、特定の動作が、前記セキュア・ゲストに関連するハイパーバイザによってインターセプトされることを阻止する、前記構成することと、
    前記信頼されるコンポーネントにより、セキュリティ・モジュール通信をインターセプトすることと、
    前記機密バインディング属性を使用して前記セキュリティ・モジュール通信の1つまたは複数のセキュア・オブジェクトに暗号動作を行って、暗号結果を提供することと、
    前記セキュリティ・モジュール通信の成果を受信者に提供することであって、前記成果が前記暗号結果を含む、前記提供することと、
    を含む、コンピュータ・プログラム製品
  2. 前記セキュリティ・モジュール通信が、前記セキュア・ゲストから前記セキュリティ・モジュールへの要求であり、前記暗号動作が、前記要求の前記1つまたは複数のセキュア・オブジェクトのうちのセキュア・オブジェクトの少なくとも一部を復号するための復号動作を含み、前記受信者が前記セキュリティ・モジュールである、請求項1に記載のコンピュータ・プログラム製品。
  3. 前記復号動作が、暗号化された完全性保護を含む前記セキュア・オブジェクト内のデータを復号することを含み、前記復号が、前記機密バインディング属性から取得された鍵を使用する、請求項2に記載のコンピュータ・プログラム製品。
  4. 前記セキュリティ・モジュール通信が、要求を処理することに基づいて前記セキュリティ・モジュールによって返される前記要求の結果を含み、前記暗号動作が、前記結果の前記1つまたは複数のセキュア・オブジェクトのうちのセキュア・オブジェクトの少なくとも一部を暗号化するための暗号化動作を含み、前記受信者が前記セキュア・ゲストである、請求項1に記載のコンピュータ・プログラム製品。
  5. 前記暗号化動作が、前記セキュア・オブジェクトを無効化するために、前記セキュリティ・モジュールのセレクト鍵を使用して計算された完全性保護を含む前記セキュア・オブジェクト内のデータを暗号化することを含み、前記暗号化が、前記機密バインディング属性から取得された鍵を使用する、請求項4に記載のコンピュータ・プログラム製品。
  6. 前記方法が、1つまたは複数の無効化されたオブジェクトを含む前記セキュア・ゲストからの要求を取得することをさらに含み、前記暗号動作が、前記1つまたは複数の無効化されたオブジェクトを有効化するために、前記1つまたは複数の無効化されたオブジェクト内のデータを復号することを含み、前記復号が、前記機密バインディング属性から取得された前記鍵を使用する、請求項5に記載のコンピュータ・プログラム製品。
  7. 前記セキュリティ・モジュールがハードウェア・セキュリティ・モジュールを含む、請求項1に記載のコンピュータ・プログラム製品。
  8. 前記セレクト・モードがハイパーバイザ通過モードである、請求項1に記載のコンピュータ・プログラム製品。
  9. 前記信頼されるコンポーネントは、前記ハイパーバイザが、前記セキュア・ゲストに対して構成されたセキュリティ・モジュールのセットを変更することを阻止する、請求項1に記載のコンピュータ・プログラム製品。
  10. 前記機密バインディング属性が、鍵または前記鍵を導出するための材料を含む、請求項1に記載のコンピュータ・プログラム製品。
  11. 前記1つまたは複数のセキュア・オブジェクトが、少なくとも1つまたは複数のセキュア鍵を含む、請求項1に記載のコンピュータ・プログラム製品。
  12. 前記方法が、前記セキュア・ゲストの前記メタデータが前記機密バインディング属性を含まないと判定することに基づいて、前記セキュア・ゲストに対する前記セキュリティ・モジュールの構成を、前記信頼されるコンポーネントによって阻止することをさらに含む、請求項1に記載のコンピュータ・プログラム製品。
  13. コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、
    メモリと、
    前記メモリと通信しているプロセッサと、を備え、前記コンピュータ・システムは方法を行うように構成されており、前記方法が、
    前記コンピューティング環境のセキュリティ・モジュールの少なくとも1つのセキュア・オブジェクトを、前記コンピューティング環境のセキュア・ゲストにバインドすることであって、前記セキュア・ゲストが前記セキュリティ・モジュールを使用するように構成される、前記バインドすること
    を含み、前記バインドすることが、
    前記コンピューティング環境の信頼されるコンポーネントにより、前記セキュア・ゲストのメタデータが前記セキュリティ・モジュールのための機密バインディング属性を含むかどうかを判定することと、
    前記メタデータが前記機密バインディング属性を含むと判定することに基づいて、前記信頼されるコンポーネントにより、前記セキュリティ・モジュールをセレクト・モードで前記セキュア・ゲストのために構成することであって、前記セレクト・モードは、特定の動作が、前記セキュア・ゲストに関連するハイパーバイザによってインターセプトされることを阻止する、前記構成することと、
    前記信頼されるコンポーネントにより、セキュリティ・モジュール通信をインターセプトすることと、
    前記機密バインディング属性を使用して前記セキュリティ・モジュール通信の1つまたは複数のセキュア・オブジェクトに暗号動作を行って、暗号結果を提供することと、
    前記セキュリティ・モジュール通信の成果を受信者に提供することであって、前記成果が前記暗号結果を含む、前記提供することと、
    を含む、コンピュータ・システム。
  14. 前記セキュリティ・モジュール通信が、前記セキュア・ゲストから前記セキュリティ・モジュールへの要求であり、前記暗号動作が、前記要求の前記1つまたは複数のセキュア・オブジェクトのうちのセキュア・オブジェクトの少なくとも一部を復号するための復号動作を含み、前記受信者が前記セキュリティ・モジュールである、請求項13に記載のコンピュータ・システム。
  15. 前記復号動作が、暗号化された完全性保護を含む前記セキュア・オブジェクト内のデータを復号することを含み、前記復号が、前記機密バインディング属性から取得された鍵を使用する、請求項14に記載のコンピュータ・システム。
  16. 前記セキュリティ・モジュール通信が、要求を処理することに基づいて前記セキュリティ・モジュールによって返される前記要求の結果を含み、前記暗号動作が、前記結果の前記1つまたは複数のセキュア・オブジェクトのうちのセキュア・オブジェクトの少なくとも一部を暗号化するための暗号化動作を含み、前記受信者がセキュア・ゲストである、請求項13に記載のコンピュータ・システム。
  17. 前記暗号化動作が、前記セキュア・オブジェクトを無効化するために、前記セキュリティ・モジュールのセレクト鍵を使用して計算された完全性保護を含む前記セキュア・オブジェクト内のデータを暗号化することを含み、前記暗号化が、前記機密バインディング属性から取得された鍵を使用する、請求項16に記載のコンピュータ・システム。
  18. コンピューティング環境内の処理を容易にする、コンピュータによって実施される方法であって、
    前記コンピューティング環境のセキュリティ・モジュールの少なくとも1つのセキュア・オブジェクトを、前記コンピューティング環境のセキュア・ゲストにバインドすることであって、前記セキュア・ゲストが前記セキュリティ・モジュールを使用するように構成される、前記バインドすること
    を含み、前記バインドすることが、
    前記コンピューティング環境の信頼されるコンポーネントにより、前記セキュア・ゲストのメタデータが前記セキュリティ・モジュールのための機密バインディング属性を含むかどうかを判定することと、
    前記メタデータが前記機密バインディング属性を含むと判定することに基づいて、前記信頼されるコンポーネントにより、前記セキュリティ・モジュールをセレクト・モードで前記セキュア・ゲストのために構成することであって、前記セレクト・モードは、特定の動作が、前記セキュア・ゲストに関連するハイパーバイザによってインターセプトされることを阻止する、前記構成することと、
    前記信頼されるコンポーネントにより、セキュリティ・モジュール通信をインターセプトすることと、
    前記機密バインディング属性を使用して前記セキュリティ・モジュール通信の1つまたは複数のセキュア・オブジェクトに暗号動作を行って、暗号結果を提供することと、
    前記セキュリティ・モジュール通信の成果を受信者に提供することであって、前記成果が前記暗号結果を含む、前記提供することと、
    を含む、コンピュータによって実施される方法。
  19. 前記セキュリティ・モジュール通信が、前記セキュア・ゲストから前記セキュリティ・モジュールへの要求であり、前記暗号動作が、前記要求の前記1つまたは複数のセキュア・オブジェクトのうちのセキュア・オブジェクトの少なくとも一部を復号するための復号動作を含み、前記受信者が前記セキュリティ・モジュールである、請求項18に記載のコンピュータによって実施される方法。
  20. 前記セキュリティ・モジュール通信が、要求を処理することに基づいて前記セキュリティ・モジュールによって返される前記要求の結果を含み、前記暗号動作が、前記結果の前記1つまたは複数のセキュア・オブジェクトのうちのセキュア・オブジェクトの少なくとも一部を暗号化するための暗号化動作を含み、前記受信者が前記セキュア・ゲストである、請求項18に記載のコンピュータによって実施される方法。
JP2022539306A 2020-01-29 2020-12-10 セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング Pending JP2023511834A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/775,851 2020-01-29
US16/775,851 US11533174B2 (en) 2020-01-29 2020-01-29 Binding secure objects of a security module to a secure guest
PCT/IB2020/061733 WO2021152383A1 (en) 2020-01-29 2020-12-10 Binding secure objects of security module to secure guest

Publications (1)

Publication Number Publication Date
JP2023511834A true JP2023511834A (ja) 2023-03-23

Family

ID=76969495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022539306A Pending JP2023511834A (ja) 2020-01-29 2020-12-10 セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング

Country Status (6)

Country Link
US (1) US11533174B2 (ja)
JP (1) JP2023511834A (ja)
CN (1) CN114930328A (ja)
DE (1) DE112020005625T5 (ja)
GB (1) GB2607794A (ja)
WO (1) WO2021152383A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475167B2 (en) * 2020-01-29 2022-10-18 International Business Machines Corporation Reserving one or more security modules for a secure guest
US20230039894A1 (en) * 2021-08-05 2023-02-09 International Business Machines Corporation Deferred reclaiming of secure guest resources
US20230388280A1 (en) * 2022-05-25 2023-11-30 CybXSecurity LLC System, Method, and Computer Program Product for Generating Secure Messages for Messaging
GB2624693A (en) * 2022-11-28 2024-05-29 Ibm Updating secure guest metadata of a specific guest instance
GB2624868A (en) * 2022-11-29 2024-06-05 Ibm Updating secure guest metadata of a specific guest instance
WO2024115150A1 (en) * 2022-11-29 2024-06-06 International Business Machines Corporation Extending secure guest metadata to bind the secure guest to an hsm
WO2024115147A1 (en) * 2022-11-29 2024-06-06 International Business Machines Corporation Selecting an hsm for association to a secure guest

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4494189A (en) 1982-04-26 1985-01-15 International Business Machines Corporation Method and means for switching system control of CPUs
EP0610677A3 (en) 1993-02-12 1995-08-02 Ibm Communication device management module operating in two modes.
US6453392B1 (en) 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US7143287B2 (en) 2004-10-21 2006-11-28 International Business Machines Corporation Method and system for verifying binding of an initial trusted device to a secured processing system
US7639819B2 (en) 2005-06-16 2009-12-29 Oracle International Corporation Method and apparatus for using an external security device to secure data in a database
US8315394B2 (en) 2007-10-24 2012-11-20 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for encrypting data on storage devices using an intermediate key
US8826039B2 (en) 2010-02-02 2014-09-02 Broadcom Corporation Apparatus and method for providing hardware security
US8375437B2 (en) 2010-03-30 2013-02-12 Microsoft Corporation Hardware supported virtualized cryptographic service
US8856504B2 (en) * 2010-06-07 2014-10-07 Cisco Technology, Inc. Secure virtual machine bootstrap in untrusted cloud infrastructures
US20120179909A1 (en) 2011-01-06 2012-07-12 Pitney Bowes Inc. Systems and methods for providing individual electronic document secure storage, retrieval and use
CN103368973B (zh) 2013-07-25 2016-02-17 浪潮(北京)电子信息产业有限公司 一种云操作***安全体系
CN103701607A (zh) 2013-12-25 2014-04-02 国家电网公司 一种虚拟机环境下可信平台模块的虚拟化方法
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9928080B2 (en) 2014-09-30 2018-03-27 International Business Machines Corporation Hardware security module access management in a cloud computing environment
US9767293B2 (en) 2015-02-13 2017-09-19 International Business Machines Corporation Content based hardware security module assignment to virtual machines
US10284534B1 (en) 2015-06-26 2019-05-07 EMC IP Holding Company LLC Storage system with controller key wrapping of data encryption key in metadata of stored data item
US9720721B2 (en) 2015-07-01 2017-08-01 International Business Machines Corporation Protected guests in a hypervisor controlled system
US10833858B2 (en) 2017-05-11 2020-11-10 Microsoft Technology Licensing, Llc Secure cryptlet tunnel
WO2018218349A1 (en) 2017-05-31 2018-12-06 Crypto4A Technologies Inc. Hardware security module

Also Published As

Publication number Publication date
US11533174B2 (en) 2022-12-20
GB2607794A (en) 2022-12-14
WO2021152383A1 (en) 2021-08-05
DE112020005625T5 (de) 2022-09-01
CN114930328A (zh) 2022-08-19
US20210234681A1 (en) 2021-07-29
GB202212344D0 (en) 2022-10-12

Similar Documents

Publication Publication Date Title
AU2020234675B2 (en) Binding secure keys of secure guests to a hardware security module
US11533174B2 (en) Binding secure objects of a security module to a secure guest
JP7397557B2 (ja) セキュア実行ゲスト所有者環境制御
AU2021302892B2 (en) Hypervisor protected key
TWI786373B (zh) 用於安全介面控制之安全執行客體所有者控制之電腦實施方法、電腦系統及電腦程式產品
US11856090B2 (en) Data protection optimization
JP2023551527A (ja) 準同型暗号化を使用したセキュアなコンピューティング・リソース配置
US11755721B2 (en) Trusted workload execution
US20200004969A1 (en) Secure operations on encrypted data
EP4381400A1 (en) Confidential data provided to a secure guest via metadata
US11995197B2 (en) Sensitive data encryption
US11645092B1 (en) Building and deploying an application
US12050700B2 (en) Secure execution guest owner controls for secure interface control
JP2024510893A (ja) 複数の暗号システムを用いたハイブリッドセキュリティ証明書の生成

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221223

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240716