JP7388803B2 - セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること - Google Patents

セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること Download PDF

Info

Publication number
JP7388803B2
JP7388803B2 JP2021547766A JP2021547766A JP7388803B2 JP 7388803 B2 JP7388803 B2 JP 7388803B2 JP 2021547766 A JP2021547766 A JP 2021547766A JP 2021547766 A JP2021547766 A JP 2021547766A JP 7388803 B2 JP7388803 B2 JP 7388803B2
Authority
JP
Japan
Prior art keywords
guest
security module
hardware security
secure
interface controller
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.)
Active
Application number
JP2021547766A
Other languages
English (en)
Other versions
JP2022522645A (ja
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 JP2022522645A publication Critical patent/JP2022522645A/ja
Application granted granted Critical
Publication of JP7388803B2 publication Critical patent/JP7388803B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • 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/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]
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Description

本発明は、セキュア・ゲストによる排他使用のためのハードウェア・セキュリティ・モジュールの構成に関する。
今日のコンピュータ・システムおよび情報転送ネットワークにおいて、暗号要素は、重要な技術的構成要素である。情報は、格納または伝送された情報への不正アクセスを回避するために、暗号を使用したセキュアな形で格納または伝送することができる。いくつかのケースでは、純粋なソフトウェア・ベースの技法を使用することができ、他のケースでは、ハードウェア・サポートおよびセキュリティ固有の要素を、このようなデータ保護を実施するために使用することができる。いくつかのケースでは、これらの固有の要素は、ハードウェア・セキュリティ・モジュール(HSM:hardware security module)と名付けられ、コンピュータまたは情報伝送システムの一部として使用することができる。このようなハードウェア・セキュリティ・モジュールは、データ暗号化およびデータ復号のための機能を提供するために、固有の回路機器を含むことができる。機能は、ゲスト・システムが使用するための暗号鍵を生成することおよび格納することも含むことができる。
HSMは、不正な当事者がアクセスできることのないマスタ鍵を収める。これらのマスタ鍵は、HSMのユーザが利用できる鍵を暗号化する(すなわち、ラップする(wrap))ために使用される。HSMマスタ鍵によってラップされたこのような鍵は、セキュア鍵と呼ばれる。HSMは、改ざんを防ぐことができ、不正アクセス(例えば、予定されていない物理的なプラギング、物理的な侵入、等)から秘密を保護する。HSMは、仮想マシン(VM:virtual machine)などの、様々な仮想リソースに割り当てることができ、仮想環境では、HSMは、1つのVMから別のVMへの、HSMの再割当てを認識していないことがある。
VM割当ての柔軟性は、セキュリティ問題を引き起こす恐れがあり、なぜなら、非常に機密性の高いホストされる情報技術(IT:information technology)環境では、ゲスト自体がハッキングされるか、そうでなければ危険にさらされ、セキュア鍵および他のデータが盗まれたとしても、信頼できないユーザによるセキュア鍵の使用から、(HSMのマスタ鍵でラップされている)セキュア鍵を有するゲストを利用する信頼できるユーザを保護することを、より厳しいセキュリティ・プロトコルがサポートするからである。
セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけるための方法を提供することで、従来技術の欠点を克服し、さらなる長所をもたらす。方法は、例えば、ハイパーバイザおよびハードウェア・セキュリティ・モジュールに通信連結されたセキュア・インターフェース制御装置で、ハイパーバイザによって管理されたセキュア・ゲストによる排他使用のためにハードウェア・セキュリティ・モジュールを構成することを含み、構成することが、ハイパーバイザによって管理された1つまたは複数のゲストのうちの所与のゲストから、ハイパーバイザを介して、ハードウェア・セキュリティ・モジュールを構成するための構成リクエストを、セキュア・インターフェース制御装置で取得することと、ハードウェア・セキュリティ・モジュールが1つまたは複数のゲストのうちの特定のゲストに対して既に構成されているかどうかを、セキュア・インターフェース制御装置で判定することであって、特定のゲストおよび所与のゲストが、1つまたは複数のゲストのうちの異なるゲストを含む、判定することと、ハードウェア・セキュリティ・モジュールが特定のゲストに対して構成されていないと判定したことに基づいて、所与のゲストのメタデータを評価することによって所与のゲストがセキュア・ゲストを含むと、セキュア・インターフェース制御装置で判定することと、所与のゲストがセキュア・ゲストを含むと判定したことに基づいて、1つまたは複数のゲストのうちの所与のゲストだけに、ハードウェア・セキュリティ・モジュールへのゲストによるアクセスを限定することによって、ハードウェア・セキュリティ・モジュールの構成を確立することを、セキュア・インターフェース制御装置で除外することと、セキュア・インターフェース制御装置で、ハードウェア・セキュリティ・モジュールに所与のゲストをログインさせることであって、ハードウェア・セキュリティ・モジュールにログインさせることが、所与のゲストの秘密を利用することを含み、メタデータが、秘密を含む、ログインさせることと、ハードウェア・セキュリティ・モジュールにログインさせることに基づいて、ハードウェア・セキュリティ・モジュールからセッション・コードを、セキュア・インターフェース制御装置で取得することと、セッション・コードを、セキュア・インターフェース制御装置で保持することとを含む。
セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけるためのコンピュータ・プログラム製品を提供することで、従来技術の欠点を克服し、さらなる長所をもたらす。コンピュータ・プログラム製品は、処理回路で読むことができ、方法を実施するための処理回路による実行のための命令を格納するストレージ媒体を備える。方法は、例えば、ハイパーバイザおよびハードウェア・セキュリティ・モジュールに通信連結された1つまたは複数のプロセッサで、ハイパーバイザによって管理されたセキュア・ゲストによる排他使用のためにハードウェア・セキュリティ・モジュールを構成することを含み、構成することが、ハイパーバイザによって管理された1つまたは複数のゲストのうちの所与のゲストから、ハイパーバイザを介して、ハードウェア・セキュリティ・モジュールを構成するための構成リクエストを、1つまたは複数のプロセッサで取得することと、ハードウェア・セキュリティ・モジュールが1つまたは複数のゲストのうちの特定のゲストに対して既に構成されているかどうかを、1つまたは複数のプロセッサで判定することであって、特定のゲストおよび所与のゲストが、1つまたは複数のゲストのうちの異なるゲストを含む、判定することと、ハードウェア・セキュリティ・モジュールが特定のゲストに対して構成されていないと判定したことに基づいて、所与のゲストのメタデータを評価することによって所与のゲストがセキュア・ゲストを含むと、1つまたは複数のプロセッサで判定することと、所与のゲストがセキュア・ゲストを含むと判定したことに基づいて、1つまたは複数のゲストのうちの所与のゲストだけに、ハードウェア・セキュリティ・モジュールへのゲストによるアクセスを限定することによって、ハードウェア・セキュリティ・モジュールの構成を確立することを、1つまたは複数のプロセッサで除外することと、1つまたは複数のプロセッサで、ハードウェア・セキュリティ・モジュールに所与のゲストをログインさせることであって、ハードウェア・セキュリティ・モジュールにログインさせることが、所与のゲストの秘密を利用することを含み、メタデータが、秘密を含む、ログインさせることと、ハードウェア・セキュリティ・モジュールにログインさせることに基づいて、ハードウェア・セキュリティ・モジュールからセッション・コードを、1つまたは複数のプロセッサで取得することと、セッション・コードを、1つまたは複数のプロセッサで保持することとを含む。
セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけるためのシステムを提供することで、従来技術の欠点を克服し、さらなる長所をもたらす。システムは、メモリ、メモリと通信中の1つまたは複数のプロセッサ、および、方法を実施するためにメモリを介して1つまたは複数のプロセッサで実行可能なプログラム命令を備える。方法は、例えば、ハイパーバイザおよびハードウェア・セキュリティ・モジュールに通信連結された1つまたは複数のプロセッサで、ハイパーバイザによって管理されたセキュア・ゲストによる排他使用のためにハードウェア・セキュリティ・モジュールを構成することを含み、構成することが、ハイパーバイザによって管理された1つまたは複数のゲストのうちの所与のゲストから、ハイパーバイザを介して、ハードウェア・セキュリティ・モジュールを構成するための構成リクエストを、1つまたは複数のプロセッサで取得することと、ハードウェア・セキュリティ・モジュールが1つまたは複数のゲストのうちの特定のゲストに対して既に構成されているかどうかを、1つまたは複数のプロセッサで判定することであって、特定のゲストおよび所与のゲストが、1つまたは複数のゲストのうちの異なるゲストを含む、判定することと、ハードウェア・セキュリティ・モジュールが特定のゲストに対して構成されていないと判定したことに基づいて、所与のゲストのメタデータを評価することによって所与のゲストがセキュア・ゲストを含むと、1つまたは複数のプロセッサで判定することと、所与のゲストがセキュア・ゲストを含むと判定したことに基づいて、1つまたは複数のゲストのうちの所与のゲストだけに、ハードウェア・セキュリティ・モジュールへのゲストによるアクセスを限定することによって、ハードウェア・セキュリティ・モジュールの構成を確立することを、1つまたは複数のプロセッサで除外することと、1つまたは複数のプロセッサで、ハードウェア・セキュリティ・モジュールに所与のゲストをログインさせることであって、ハードウェア・セキュリティ・モジュールにログインさせることが、所与のゲストの秘密を利用することを含み、メタデータが、秘密を含む、ログインさせることと、ハードウェア・セキュリティ・モジュールにログインさせることに基づいて、ハードウェア・セキュリティ・モジュールからセッション・コードを、1つまたは複数のプロセッサで取得することと、セッション・コードを、1つまたは複数のプロセッサで保持することとを含む。
1つまたは複数の態様に関する方法およびシステムも説明され、本明細書で特許請求される。さらに、1つまたは複数の態様に関するサービスも説明され、本明細書で特許請求されることがある。例えば、本発明のいくつかの実施形態では、保持することは、セキュア・インターフェース制御装置内の関連付けのテーブルに、NULLのセッション・コードとセッション・コードの関連付けを格納することを含む。
本発明のいくつかの実施形態では、ゲストのメタデータは、整合性保護され、秘密は、セキュア・インターフェース制御装置が所有する秘密鍵を使用して導き出された鍵で暗号化される。秘密鍵は、所与のゲストのブート・イメージの暗号対策を含むことができる。
本発明のいくつかの実施形態では、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方は、構成に基づいて、ハードウェア・セキュリティ・モジュールへのリクエストにおいて、所与のゲストによって利用するための新しいセッション・コードを所与のゲストに提供する。
本発明のいくつかの実施形態では、(プロセッサまたはセキュア・インターフェース制御装置あるいはその両方で)提供することは、所与のゲストからのハードウェア・セキュリティ・モジュール・ログイン・リクエストを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が捕らえることであって、ハードウェア・セキュリティ・モジュール・ログイン・リクエストが、所与のゲストからのログイン・データを含む、捕らえることと、所与のゲストの秘密に基づいて新しいログイン・データを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が生成することと、所与のゲストからの新しいハードウェア・セキュリティ・モジュール・ログイン・リクエストをハードウェア・セキュリティ・モジュールに、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が発行することであって、新しいハードウェア・セキュリティ・モジュール・ログイン・リクエストが、新しいログイン・データを含む、発行することと、ハードウェア・セキュリティ・モジュールからのセッション・コードを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が取得することと、ハードウェア・セキュリティ・モジュールからのセッション・コードを取得することに基づいて、新しいセッション・コードを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が生成することと、ハードウェア・セキュリティ・モジュールからのセッション・コードと、新しいセッション・コードとの間の関連付けをテーブルに、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が格納することと、ログイン・リクエストに応答して、新しいセッション・コードを所与のゲストに、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が伝送することとを含む。
本発明のいくつかの実施形態では、ハードウェア・セキュリティ・モジュールへの所与のゲストからのリクエストを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が捕らえ、ここで、リクエストは、新しいセッション・コードを含む。新しいセッション・コードと関連付けられたハードウェア・セキュリティ・モジュールからのセッション・コードをテーブルから、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が取得する。新しいリクエストを含むように、所与のゲストからのリクエストを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が更新し、新しいリクエストは、新しいセッション・コードではなく、ハードウェア・セキュリティ・モジュールからのセッション・コードを含む。ハードウェア・セキュリティ・モジュールへの新しいリクエストを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が発行する。
本発明のいくつかの実施形態では、ハードウェア・セキュリティ・モジュールからリクエストのフルフィルメントを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が取得する。リクエストのフルフィルメントを所与のゲストに、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が発行する。本発明のいくつかの実施形態では、リクエストは、ハードウェア・セキュリティ・モジュール・セキュア鍵生成リクエスト、およびハードウェア・セキュリティ・モジュール・ログアウト・リクエストからなるグループから選択される。
本発明のいくつかの実施形態では、所与のゲストが停止したという指示をハイパーバイザから、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が取得する。ハードウェア・セキュリティ・モジュールからのセッション・コードと、新しいセッション・コードとの間の関連付けをテーブル内で、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が識別する。テーブルに基づいて、ハードウェア・セキュリティ・モジュールからのセッション・コードを利用して、1つまたは複数のセッションのリストを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が生成する。1つまたは複数のセッションから所与のゲストを、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方がログアウトさせる。
本発明のいくつかの実施形態では、所与のゲストが停止したという指示をハイパーバイザから、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が取得する。構成を、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が除去する。
本発明のいくつかの実施形態では、所与のゲストが停止したという指示をハイパーバイザから、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が取得する。ハードウェア・セキュリティ・モジュールに保持された所与のゲストへの参照を、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が識別する。参照を、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が除去する。
本発明のいくつかの実施形態では、セキュア・インターフェース構成要素は、ファームウェア、ハードウェア、およびソフトウェアからなるグループから選択される。
本発明のいくつかの実施形態では、所与のゲストのメタデータを評価することによって、所与のゲストがセキュア・ゲストを含むと判定することは、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方がメタデータの存在またはタイプのうちの1つを検証することを含む。
本発明のいくつかの実施形態では、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が所与のゲストの秘密を利用することは、プロセッサまたはセキュア・インターフェース制御装置あるいはその両方が秘密を復号することを含む。
本発明のいくつかの実施形態では、復号することは、セキュア・インターフェース制御装置でのみ計算された鍵を利用することを含む。
本明細書で説明される技法で、さらなる特徴を実現する。他の実施形態および態様は、本明細書で詳細に説明され、特許請求される態様の一部とみなされる。
1つまたは複数の態様は、明細書の結論で、特許請求の範囲における例として、具体的に指摘され、明確に請求される。前述、および1つまたは複数の態様のオブジェクト、特徴、および長所は、添付の図面と共に利用される以下の詳細な説明から明らかである。
ハードウェア・セキュリティ・モジュールを利用した現在のアプローチで経験されるセキュリティ問題を示す。 本発明のいくつかの実施形態の様々な態様を示す図である。 本発明のいくつかの実施形態の一定の態様を示すワークフローである。 本発明のいくつかの実施形態の一定の態様を示すワークフローである。 本発明のいくつかの実施形態の一定の態様を示すワークフローである。 本発明のいくつかの実施形態の一定の態様を示すワークフローである。 本発明のいくつかの実施形態の一定の態様を示すワークフローである。 本発明のいくつかの実施形態の一定の態様を示すワークフローである。 クラウド・コンピューティング環境で利用することができるコンピュータ処理ノードの1つの実施形態を描写する図である。 本発明の実施形態によるクラウド・コンピューティング環境を描写する図である。 本発明の実施形態による抽象化モデル層を描写する図である。
別個の図の全体にわたって、同様の参照番号が同一のまたは機能的に似た要素を指し、本明細書の一部に組み込まれ、これを形成する添付の図は、本発明をさらに示し、本発明の詳細な説明とともに、本発明の諸原理を説明する役割がある。当業者が理解しているように、添付の図は、理解を容易にするために提供され、本発明の一定の実施形態の態様を示す。本発明は、図に描写された実施形態に限定されない。
当業者が理解しているように、プログラム・コードは、本出願の全体にわたって言及されるように、ソフトウェアとハードウェアの両方を含む。例えば、本発明の一定の実施形態におけるプログラム・コードは、固定機能ハードウェアを含むが、他の実施形態は、説明される機能のソフトウェア・ベースの実装形態を利用する。一定の実施形態は、両方のタイプのプログラム・コードを組み合わせる。プログラム・コードの1つの例は、1つまたは複数のプログラムとも呼ばれ、プログラム/ユーティリティ40として図9に描写されており、プログラム・モジュール42のセット(少なくとも1つ)を有し、メモリ28に格納することができる。
用語「ハードウェア・セキュリティ・モジュール」すなわちHSMは、コンピュータ・システムに差込み可能な構成要素または個別に接続された構成要素を示すことができる。HSMは、マスタ鍵または別の提供された鍵(例えば、ゲスト鍵)を使用して、暗号化動作および復号動作を実施することができる。暗号化または復号あるいはその両方は、ハードウェア・セキュリティ・モジュール上で、ハードウェアおよびソフトウェア、または両方の任意の組合せを実施することができる。データは、暗号化しない方式で、ハードウェア・セキュリティ・モジュールで受け取ることができ、HSMで暗号化することができ、または逆もまた同様である。
用語「ゲスト・システム」は、例えば、ハイパーバイザ上の仮想マシン(VM)で実行されるオペレーティング・システムを示すことができる。ユーザは、ゲスト・システムに割り当てられてもよい。これは、固有の暗号鍵をゲスト・システムに割り当てることができるということであってもよい。言及したハイパーバイザは、このような割当てを実施する際に使用することができる。固有の暗号鍵は、HSMに格納することができる。
用語「コンテンツ」は、任意のキャラクタ・ベースの文字列を示すことができる。文字列は、可読テキストまたは他の任意のバイナリ・データを含むことができる。
用語「データ・パターン」は、基本的に、コンテンツの別の表現であってもよい。データ・パターンは、可読キャラクタの文字列を示すことができ、または、バイナリ・データを含むことができる。本文書の文脈では、さらなる要件をデータ・パターンに含めない。また、データ・パターンは、事前定義すること、ランダムに選択すること、または、そうでなければ、判定することができる。
用語「マスタ鍵」は、HSMに格納されている暗号化/復号鍵を示すことができる。本文書の文脈では、1つの実施形態では、マスタ鍵は、マスタ鍵を格納したハードウェア・セキュリティ・モジュールから、決して転送できないと仮定することができる。
用語「ゲスト暗号化ユニット」は、ゲスト・システム内で、もしくは、その一部として、または、ゲスト・システムによって使用されるサービスとして、暗号化動作または復号動作あるいはその両方を実施するように適合されたモジュールを示すことができる。
用語「ハードウェア・セキュリティ・モジュール暗号化ユニット」は、マスタ鍵、または、例えばゲスト鍵といった別の提供された鍵を使用して、任意のデータ・パターンを暗号化するように適合されたHSM内のモジュールを示すことができる。したがって、「ハードウェア・セキュリティ・モジュール復号ユニット」は、マスタ鍵を使用して、例えばゲスト鍵といった、任意のデータ・パターンを復号するため、または、例えばゲスト鍵といった、別の提供された鍵を使用して、別のデータ・パターンを復号するために使用することができる。
ハードウェア・セキュリティ・モジュールすなわちHSMは、例えば暗号カードであってもよいことに留意されたい。ゲスト・システムは、例えば、ゲスト・オペレーティング・システムを動かすか、実行する仮想マシンすなわちVMであってもよい。HSMを構成することは、HSMのメモリにマスタ鍵を格納することを含むことができる。
本発明の実施形態は、HSMによって保護されたデータを、HSMにアクセスできるシステム内で使用することしかできないように、特定の所有者に属する固有のゲストにHSMのセキュア鍵を効率的に結びつける少なくとも1つの処理回路上で実行されるプログラム・コードを含む、コンピュータ実行方法、コンピュータ・プログラム製品、およびコンピュータ・システムを含む。特に、下記でより詳細に説明されるように、本発明の実施形態では、1つまたは複数のプロセッサ上で実行するプログラム・コードは、セキュア・ゲストのイメージに暗号を使用してリンクした秘密に基づいて、HSMを使用するように構成されたセキュア・ゲスト(例えばVM)のセキュア鍵を、HSMセッション・コードに結びつける。それでも、秘密は、ゲストの一部ではない。むしろ、本明細書で説明されるように、秘密は、ゲスト・メタデータの一部として、セキュア・チャネルを通じて(すなわち、暗号化して)セキュア・インターフェース制御装置(例えば、ファームウェア、信頼できる構成要素)に独立して伝送され、ゲストに暗号を使用してリンクされる。メタデータは、ゲストに暗号を使用してリンクされ(例えば、ゲスト・イメージの署名を収める)、したがって、1つのゲストのメタデータは、別のゲストのメタデータとして誤用されるはずがない。このように、セキュア・インターフェース制御装置は、ゲストとメタデータ/秘密がともに属すことを検証することができる。本発明のいくつかの実施形態では、秘密は、セキュア・ゲストのブート・イメージにリンクされ、信頼できる構成要素にセキュアに(整合性および機密性が守られる)移送される(例えば、独立して、セキュア・チャネルを通じて)メタデータに、暗号を使用して結びつけられる。本発明のいくつかの実施形態では、秘密を収めるメタデータの一部は、セキュア・インターフェース制御装置だけが計算できる鍵で暗号化される。
セキュア・ゲストは、ゲスト仮想マシン、仮想マシン、または仮想サーバ、あるいはその組合せと呼ぶこともできる。本発明の実施形態では、プログラム・コードは、セキュア・ゲストのイメージをスタートするために提供されるインストール・メタデータの一部として、セキュア・インターフェース制御装置(例えば、ファームウェア、信頼できる構成要素)に、秘密を(セキュアに)提供する。ゲストにリンクされるが、秘密は、ゲスト・メタデータの一部として、セキュア・チャネルを通じて(すなわち、暗号化して)セキュア・インターフェース制御装置に独立して伝送され、ゲストに暗号を使用してリンクされる。このように、セキュア・インターフェース制御装置は、ゲストおよびメタデータ/秘密がともに属すことを検証することができる。このように、本発明のいくつかの実施形態では、セキュア・ゲストのメタデータは、整合性が守られ、セキュア・インターフェース制御装置が所有する秘密鍵を使用して導き出された鍵で暗号化された秘密を含む(例えば、所与のゲストのブート・イメージの暗号対策)。メタデータは、それ自体が、セキュア・ゲストにアクセス可能である必要はない。下記でより詳細に説明されるように、本発明の実施形態では、信頼できる構成要素のプログラム・コードは、1)ゲストのライフタイムの間、セキュア・ゲストのためのHSMを留保し、2)秘密を使用してHSMセッションを開き、3)HSM鍵生成リクエストを捕らえ、秘密を使用してセッションを開く際に、使用されるセッション・コードを、受け取ったセッション・コードと置き替えるリクエストを、代わりに再発行し、4)セキュア・ゲストを終わらせるときに、秘密を使用して開いた全てのセッションを閉じる。
図1は、本発明の実施形態が対処するHSM関連の鍵のセキュリティへの既存のアプローチに伴う問題を示す、HSM110を含む共有コンピューティング環境100の一部であり、したがって、HSMにおける鍵のセキュリティへの既存のアプローチより著しく多くのものを、本発明の実施形態がどのように提供するかを示す。図1に示したように、HSMは、不正な当事者がアクセスできないマスタ鍵120を収める。マスタ鍵120は、HSMのプログラム・コードがHSMのユーザに提供するキーを暗号化する(すなわち、ラップする)ために、HSMのプログラム・コードによって利用される。HSMマスタ鍵120によってラップされた鍵は、セキュア鍵と呼ばれる。図1では、仮想マシン(VM)であるゲスト150(ゲスト1)が、セキュア鍵130を保有しており、セキュア鍵130は、ハイパーバイザ140がHSM110からゲスト150に提供した。当業者が理解しているように、HSMは、改ざんを防ぐことができ、不正アクセス(例えば、予定されていない物理的なプラギング、物理的な侵入、等)から秘密を保護するが、ゲスト150は、同等のセキュリティを有しておらず、したがって、脆弱な恐れがある。仮想環境では、セキュア鍵130の割当てをハイパーバイザ140が制御するので、HSM110は、1つのゲスト(すなわち、VM)から別のゲスト(すなわち、VM)への、セキュア鍵130の再割当てを認識していないことがある。このように、第2のゲスト160(ゲスト2)を利用して、所与のゲスト150(ゲスト1)を、悪意のあるユーザがハッキングした場合、セキュリティの脆弱性が存在し、ゲスト150に割り当てられたセキュア鍵130は、第2のゲスト160によって保持される。このように、第2のゲスト160は、ハイパーバイザ140によって割り当てられたゲスト150のセキュア鍵130を盗むことができる(170)。これは、特に、ホスト環境のアドミニストレータより積極的な、ホストされるゲストの所有者が、セキュリティを維持することを望む、非常に機密性の高いホストされるIT環境において問題である。共有コンピューティング環境100では、種々のエンティティによって様々なゲストを所有することができ、HSM110は、これらのエンティティのうちのいくつかだけに属すことができる。このように、セキュア鍵130が割り当てられたゲスト150の所有者などのゲスト所有者は、HSM110のマスタ鍵120でラップされた、ゲスト所有者のセキュア鍵130を維持することを望む。このゲスト所有者は、共有コンピューティング環境100におけるリソースを利用する異なるエンティティによって所有される信頼できないゲストによって、セキュア鍵130が使用されることを望まない。図1では、ゲストおよび第2のゲスト160は、異なる所有者を有し、ゲスト150の所有者は、図1に示したように、ゲスト150がハッキングされ、セキュア鍵130および他のデータが盗まれたとしても(170)、セキュア鍵130が本来割り当てられたゲスト150の所有者以外のどの所有者も、セキュア鍵130および他のデータを利用できないことを確実にすることを望む。
本発明の実施形態は、少なくとも、同様にこの範囲内にある技術的なアプローチをコンピュータ処理すること、および提供することに特有の問題に、対処することを対象とするので、コンピュータ処理に密接に結びつけられる。本発明の実施形態は、特定の所有者に属す特定のゲスト(例えば、VM)に、HSMのセキュア鍵を結びつける。本発明のいくつかの実施形態の態様が対処する役割がある図1に示された問題は、コンピュータ処理に固有である(すなわち、正当なゲストのセキュアなラップされたキーに、不正なゲストがアクセスすること)。問題とアプローチの両方がコンピュータ処理に固有であることを考慮すると、本発明の実施形態は、コンピュータ処理に密接に結びつけられる。
本発明の実施形態は、図1に示した鍵のセキュリティ問題に対する既存のアプローチに対する著しい長所をもたらす。例えば、いくつかの既存のアプローチは、ハイパーバイザが、ゲストによって使用されるメモリにアクセスできること、または、このセキュア・ゲストを内密にインストールすること、あるいはその両方なしに、ゲストを実行するためのコンテキストを提供することによって、鍵のセキュリティをサポートする(すなわち、信頼できる構成要素であるハードウェア(HW)構成要素またはファームウェア(FW)構成要素あるいはその両方だけが、秘密鍵にアクセスできる公開鍵を使用して、ゲストのインストール・データ内の秘密を保護する)。本発明のいくつかの実施形態では、(信頼できる構成要素としても理解することができる)セキュア・インターフェース制御装置は、ハードウェア、ファームウェア、またはその組合せである。このアプローチは、複雑性のさらなる層を追加し、依然として、所与のセキュア鍵にゲスト所有者を結びつけない。他のアプローチは、(セッション・ログイン・データに依存する)セッション・コードにセキュア鍵を結びつけるために、個々のセッションを作り出すが、このアプローチは、ゲストによる継続使用のために所与のキーを有するという機能を削除し、セキュア鍵が利用される状況における、ゲストを含む処理の効率を弱める。追加として、オペレーティング・システム(OS)イメージにHSMを結びつけようとするアプローチもある。これらのアプローチには、1)ブート・デバイスが変わると、結びつきが壊れる、または、2)HSMアダプタが差し込まれた後、HSMアダプタをチェックすることしかできない、あるいはその両方という、本発明の実施形態では見つからない固有の欠点がある。
図2は、本発明のいくつかの実施形態の態様が実行される、共有コンピューティング環境などの、コンピューティング環境200の様々な態様を示す。図1におけるように、HSM210は、マスタ鍵220を含む。また、ハイパーバイザ240は、(マスタ鍵220でラップされた)そのセキュア鍵230がHSM210に結びつけられるので、このように理解されるセキュア・ゲスト250を含むゲスト(例えば、VM)と対話する。ハイパーバイザ240に加えて、本発明の実施形態では、信頼できる構成要素は、この非限定的な例では、セキュア・インターフェース制御装置265として示されたが、本発明の他の実施形態では、セキュア・インターフェース制御装置であってもよく、HSM210への抜け道アクセスの構成をサポートする。特に、本発明のいくつかの実施形態では、セキュア・インターフェース制御装置265は、セキュア・ゲスト250のライフタイム中に、このセキュア・ゲスト250のために抜け道アクセスが構成されると、HSM210を、別のゲストに、またはシステムの構成要素に、(一時的に)構成することができないというポリシを実施する。本発明のいくつかの実施形態では、セキュア・インターフェース制御装置265は、秘密225に基づいて、HSM210へのセッションを開き、秘密225は、ゲストに暗号を使用してリンクされたゲスト・メタデータの一部であり、ゲスト・メタデータは、セキュア・ゲストのインストール・データ(例えば、セキュア実行(SE)ヘッダ)に収めることができ、セキュア・ゲスト250の全てのセキュア鍵230をこの秘密225に結びつける。秘密225は、セキュア・ゲスト250のイメージに暗号を使用してリンクされ、セキュア・ゲスト250のイメージをスタートするために提供されたインストール・メタデータの一部として、セキュア・インターフェース制御装置265にセキュアに提供される。秘密225は、セキュア・ゲスト250の一部ではなく、ゲスト・メタデータの一部として、(セキュア・チャネルを通じて、すなわち、暗号化して)セキュア・インターフェース制御装置265に伝送され、セキュア・ゲスト250に暗号を使用してリンクされる。このように、セキュア・インターフェース制御装置265は、セキュア・ゲスト250とメタデータ/秘密225がともに属すことを検証することができる。セキュア・ゲスト250のメタデータは、整合性が保護され、秘密225を含み、秘密225は、セキュア・インターフェース制御装置265が所有する秘密鍵を使用して導き出された鍵で暗号化することができる(例えば、所与のゲストのブート・イメージの暗号対策)。
図3は、本発明のいくつかの実施形態の様々な態様を示すワークフロー300である。例証のためだけに、ワークフロー300は、図2のコンピューティング環境200に関連して示されている。特に、図3は、セキュア・ゲスト250(HSMマスタ鍵220でラップされた少なくとも1つのセキュア鍵230を有するゲスト)をHSM210に結びつけるという態様を示すワークフロー300である。前述のように、結びつけの多くは、図2におけるセキュア・インターフェース制御装置265である、信頼できる構成要素の支援によって行われる。本発明の実施形態におけるセキュア・インターフェース制御装置265のプログラム・コードは、HSM210への抜け道アクセスの構成をサポートする。この態様をサポートするために、1つまたは複数のプロセッサ上で実行するプログラム・コードは、一定の機能を提供するように、セキュア・インターフェース制御装置265(すなわち、セキュア・インターフェース制御装置265のプログラム・コード)を構成する。
図3のワークフロー300は、構成されたセキュア・インターフェース制御装置265によって提供される機能を示す。特に、ワークフロー300は、セキュア・ゲストのメタデータにHSMの秘密を含むことに基づいて、信頼できる構成要素(例えば、ハードウェア、ファームウェア、または、その組合せであるセキュア・インターフェース制御装置である、セキュア・インターフェース制御装置265)が、HSMの秘密に基づいて、セキュア・ゲストのためのセッションを作り出す、本発明のいくつかの実施形態の一定の態様を示す。このように、作り出された全てのセッション(すなわち、ログインで始まったもの)、つまり、セキュア・ゲストからの鍵生成リクエストおよびセッション終了リクエスト(すなわち、ログアウトによって始められたもの)を、セキュア・インターフェース制御装置で捕らえる。これらのリクエストを捕らえると、セキュア・インターフェース制御装置のプログラム・コードは、セキュア・インターフェース制御装置によって生成されたHSMの秘密およびセッション・コードを含むログイン・データを含むリクエストとともに、HSMによって提供された標準ログイン・データおよびセッション・コードを最初に含むリクエストを再発行する。このように、プログラム・コードは、リクエスト内の標準ログイン・データを、HSMの秘密を含むログイン・データと置き替え、プログラム・コードは、HSMによって提供されたセッション・コードを、セキュア・インターフェース制御装置によって生成されたセッション・コードと置き替える。
図3を参照すると、ワークフローの一定の態様が、例証のために、任意の順序で提示されている。理解しやすくするために、1つの順序で描写されているが、セキュア・インターフェース制御装置のプログラム・コードが、HSMとの任意のセッションに(まだ)結びつけられていないセキュア・ゲストのセキュア鍵のために使用されることになるHSMへのデフォルト・セッションを開くこと(310)から、プログラム・コードが、セキュア・ゲストを終わらせたと判定すること(370)までの全ての態様は、イベントのループであり、この中で、残りの態様(プログラム・コードが、セキュア・ゲストの各HSMログイン・セッションを捕らえること(320)、プログラム・コードが、セキュア・ゲストの秘密に基づいて、ログイン・データを利用するHSMセッションと、(ログインで始まった)セッションを関連付けること(330)、プログラム・コードが、セキュア・ゲストの各HSM鍵生成リクエストおよびセッション・ログアウト・リクエストを捕らえること(340)、プログラム・コードが、セキュア・ゲストの秘密に基づく、関連付けられたセッション・コードと、これらのアクションのためのセッション・コードを置き替えること(350)、ならびに、所与のイベントが発生したと判定したことに基づいて、プログラム・コードが、セキュア・ゲストの秘密に基づく全てのセッションを閉じること(360))は、ワークフロー300の順序を含むがこれらに限定されない任意の順序で発生してもよく、また、ワークフロー300の中でいつでも非同期的に発生してもよい。
図2を参照しながら図3に戻ると、本発明のいくつかの実施形態では、セキュア・インターフェース制御装置265のプログラム・コードが、HSM210との任意のセッションに(まだ)結びつけられていないセキュア・ゲスト250のセキュア鍵のために使用されることになるHSM210へのデフォルト・セッションを開く(310)。プログラム・コードが、セキュア・ゲスト250の各HSM210のログイン・セッションを捕らえる(320)。プログラム・コードが、セキュア・ゲスト225の秘密に基づいて、ログイン・データを利用するHSM210のセッションと、(ログインで始まった)セッションを関連付ける(330)。本発明の実施形態では、秘密225は、ゲスト・メタデータの一部として、(セキュア・チャネルを通じて、すなわち、暗号化して)セキュア・インターフェース制御装置265に独立して伝送され、ゲスト225に暗号を使用してリンクされるので、ゲスト250の一部ではない。このように、セキュア・インターフェース制御装置265は、ゲスト250とメタデータ/秘密225がともに属すことを検証することができる。HSMのプログラム・コード265は、セキュア・ゲスト250に返されたセッション・コードとの、セキュア・ゲスト225の秘密に基づくセッション・コードのその関連付けを、テーブル245に保持することができる。HSMは、テーブル215における、セキュア・ゲスト250に返されたセッション・コードを提供し、追跡することができる。図2に示したように、セキュア・ゲストに返されたセッション・コードと、セキュア・ゲストの秘密に基づくセッション・コードを関連付けるテーブル245を格納することとともに、セキュア・インターフェース制御装置265のプログラム・コードは、セキュア・ゲスト250のHSM構成も格納する。
図3に戻ると、プログラム・コードが、セキュア・ゲスト250の各HSM鍵生成リクエストおよびセッション・ログアウト・リクエストを捕らえる(340)。セキュアなゲスト250は、マスタ鍵220でHSM210によってラップされたセキュア鍵230を格納した。プログラム・コードが、セキュア・ゲスト225の秘密に基づく、(例えば、テーブル245からの)関連付けられたセッション・コードと、これらのアクションのためのセッション・コードを置き替える(350)。所与のイベントが発生したと判定したことに基づいて、プログラム・コードが、セキュア・ゲスト225の秘密に基づく全てのセッションを閉じる(360)。プログラム・コードが、セキュア・ゲストを終わらせたと判定する(370)。所与のイベントは、変化してもよい。本発明のいくつかの実施形態では、プログラム・コードが、セキュア・ゲスト250を終わらせたと判定したことに基づいて、セキュア・ゲスト225の秘密に基づく全てのセッションを閉じる。HSM210のプログラム・コード、およびシステムの他の要素も、予期しないイベントが発生したとき、システムのセキュリティを保護するために、さらなるアクションをとることができる。例えば、本発明のいくつかの実施形態では、プログラム・コードは、HSM210が抜かれる(unplugged)と、全てのセッション状態データを削除する。本発明のいくつかの実施形態では、処理デバイス上で実行するプログラム・コードは、セキュア・インターフェース制御装置265が予期せず終了すると、HSM210の全てのセッションをクリアする。
本発明の実施形態では、信頼できる構成要素のプログラム・コード(例えば、セキュア・インターフェース制御装置265(図2))を含む処理リソース上で実行するプログラム・コードは、セキュア・ゲスト(例えば、セキュア・ゲスト250(図2))のセキュア鍵(例えば、セキュア鍵130(図2))を、HSM(例えば、HSM210(図2))に結びつけるために、1)セキュア・インターフェース制御装置のプログラム・コードが、HSMとセキュア・ゲストとの間の関係/接続を最初に構成すること、2)セキュア・インターフェース制御装置のプログラム・コードが、新しいセッション・コードをセキュア・ゲストに最終的に返す、セキュア・ゲストからのリクエストを捕らえること、3)セキュア・インターフェース制御装置のプログラム・コードが、HSMによる新しいセキュア鍵の生成(マスタ鍵でラッピングすること)のための、セキュア・ゲストからのリクエストを捕らえること、4)セキュア・インターフェース制御装置のプログラム・コードが、HSMとのセッションからログアウトするための、セキュア・ゲストからのリクエストを捕らえること、および、5)セキュア・ゲストの停止に基づいて、セキュア・インターフェース制御装置のプログラム・コードが、様々なクリーンアップ活動を開始し、完了させること、という少なくとも5つの一般的な態様を行う。図4~図8は、これらの態様についてのワークフロー400~800を示す。
図4を参照すると、ワークフロー400は、本発明の実施形態における、セキュア・インターフェース制御装置のプログラム・コードが、HSMとセキュア・ゲストとの間の関係/接続を最初に構成することを示す。図2に示したように、セキュア・インターフェース制御装置は、ハイパーバイザを介して、HSMに、および、ハイパーバイザによって管理されるゲストに、通信連結される。本発明の実施形態では、セキュア・インターフェース制御装置のプログラム・コード(例えば、信頼できるFW、信頼できる構成要素、等)が、ハイパーバイザ(例えば、仮想マシン・マネージャ)を介して、ハイパーバイザによって管理された1つまたは複数のゲストのうちの1つのゲスト(例えば、仮想マシン)からの構成リクエストを受け取る(410)。プログラム・コードが、1つまたは複数のゲストのうちの所与のゲストにHSMが既に構成されているかどうかを判定する(420)。所与のゲストにHSMが構成されていると判定したことに基づいて、プログラム・コードが、構成リクエストに応答してエラーを返す(435)。本発明の実施形態では、セキュアな構成要素(例えば、セキュアなFW、セキュア・インターフェース制御装置)のプログラム・コードは、ゲストに構成されたHSMについて、HSMへのセキュア・ゲストのどのリクエストも、ゲストを管理するハイパーバイザが捕らえることができないことを強制する。
図4に戻ると、所与のゲストにHSMが構成されていないと判定したことに基づいて、プログラム・コードが、ゲストがセキュア・ゲストであるかどうかを判定する(例えば、ゲストのメタデータを含む様々な態様に基づく認証)(440)。本発明の実施形態では、ゲストのメタデータの存在またはタイプが、ゲストがセキュアであるかどうかを決定する。メタデータは、ゲストに暗号を使用してリンクされ(例えば、ゲスト・イメージの署名を収める)、したがって、1つのゲストのメタデータは、別のゲストのメタデータとして誤用されるはずがない。ゲストがセキュアでない場合、この処理は、終了する(435)。ゲストがセキュア・ゲストであると判定したことに基づいて、プログラム・コードが、他のゲストによってアクセスされることからHSMを除外する(450)。本発明のいくつかの実施形態では、セキュア・ゲストをスタートしたが、まだ終わらせていない場合、セキュア・ゲストのために構成されたHSMは、別のゲスト(またはシステム内で動く構成要素)に構成することができない(具体的には、セキュア・ゲストのHSMの秘密を使用して、セッションが作り出されたHSMがない)。
図4を参照すると、プログラム・コードが、セキュア・ゲストの秘密を利用して、HSMにログインする(例えば、アクセスする)(460)。セキュア・ゲストが初めてHSMにアクセスする前に、セキュア・インターフェース制御装置のプログラム・コードは、セキュア・ゲストのメタデータからのHSMの秘密を使用してHSMにログインする。HSMへのログインに応答して、プログラム・コードが、セッション・コードをHSMから受け取る(470)。プログラム・コードが、セキュアな構成要素における関連付けのテーブルに、NULLのセッション・コードとセッション・コードの関連付けを格納する(480)。このように、セキュア・インターフェース制御装置は、HSMによって返されたセッション・コードと、NULLのセッション・コードの関連付けをテーブルに格納する。本発明のいくつかの実施形態では、このテーブルは、HSMによって、セキュア・ゲストに返されたセッション・コードと,セキュア・ゲストの秘密に基づくセッション・コードを関連付ける。
図5を参照すると、ワークフロー500は、本発明の実施形態における、セキュア・インターフェース制御装置のプログラム・コードが、セキュア・ゲストからのリクエストを捕らえることを示す。図5に示したように、セキュアな構成要素(例えば、セキュアなFW)のプログラム・コードは、セキュア・ゲストからの各セッション・ログイン・リクエストを捕らえ、(例えば、2つのデータをビット単位にXORをとることによって)このログイン・データとHSMの秘密の組合せで置き替えられたセキュア・ゲストのログイン・データを伴うログイン・リクエストを再発行する。このように、HSMによって返されたセッション・コードを返す代わりに、セキュア・インターフェース制御装置のプログラム・コードは、ログイン・リクエストの明細と一致した(例えば、セキュア・ゲストのログイン・データから)新しいセッション・コードを生成し、生成したセッション・コードと、HSMによって返されたセッション・コードとの関連付けをテーブル(例えば、テーブル265(図2))に格納する。
図5に戻ると、本発明のいくつかの実施形態では、セキュア・インターフェース制御装置のプログラム・コード(例えば、信頼できるFW、信頼できる構成要素)が、セキュア・ゲストからのHSMログイン・リクエストを捕らえ、ここで、HSMログイン・リクエストが、セキュア・ゲストからのログイン・データを利用した(510)。プログラム・コードが、セキュア・ゲストの秘密に基づく新しいログイン・データを生成し、ここで、セキュア・ゲストの秘密が、セキュア・ゲストのイメージに暗号を使用してリンクされる(520)。プログラム・コードが、新しいログイン・データ(すなわち、セキュア・ゲストの秘密に基づくデータ)を伴う(元のリクエストを捕らえた)HSMログイン・リクエストを発行する(530)。プログラム・コードが、HSMからセッション・コードを受け取る(540)。HSMからセッション・コードを受け取ることに基づいて、プログラム・コードが、新しいセッション・コードを生成する(セッション・コードが、ログイン・データに基づいて変化する)(550)。プログラム・コードが、HSMからのセッション・コードを新しいセッション・コードと関連付け、この関連付けを関連付けのテーブルに格納する(560)。プログラム・コードが、セキュア・ゲストに新しいセッション・コードを返す(570)。
セキュア・ゲストからのHSMログイン・リクエストを捕らえることに加えて、図5に示したように、本発明の実施形態では、信頼できる構成要素のプログラム・コード(例えば、セキュア・インターフェース制御装置265(図2))も、生成リクエストおよびセッション・ログアウト・リクエストを含むがこれらに限定されない、セキュア・ゲストからHSMへのリクエストを捕らえる。図6~図7は、セキュアな構成要素による、鍵生成リクエストおよびログアウト・リクエストそれぞれのハンドリングについての態様を示す。図6~図7に示したように、セキュアな構成要素のプログラム・コードは、関連付けのテーブルに格納されたような、HSMによって提供されたセッション・コードで置き替えられた、セキュア・ゲストによって提供されたセッション・コードを伴うこれらのリクエストを捕らえ、再発行する。
図6は、セキュア・インターフェース制御装置のプログラム・コードが、新しいセッション・コード(例えば、図5の560)を利用するHSM鍵生成リクエストを捕らえることを示すワークフロー600である。本発明のいくつかの実施形態では、セキュア・インターフェース制御装置のプログラム・コード(例えば、信頼できるFW、信頼できる構成要素)が、新しいセッション・コードを利用するHSM鍵生成リクエストをセキュア・ゲストから捕らえる(610)。プログラム・コードが、関連付けのテーブル内の新しいセッション・コードを探索し、関連付けられたセッション・コード(HSMからのセッション・コード、例えば、図5の540)を検索する(620)。セッション・コードの検索に基づいて、プログラム・コードが、セッション・コードを利用して、HSMへのHSM鍵生成リクエストを発行する(630)。リクエストに応答して、プログラム・コードが、リクエストされた鍵を取得し、セキュア・ゲストに鍵を返す(640)。このように、プログラム・コードは、HSMリクエストの結果をセキュア・ゲストに返す。
図6のワークフロー600と同様に、図7は、セキュア・インターフェース制御装置のプログラム・コードが、新しいセッション・コード(例えば、図5の560)を利用するHSMログアウト・リクエストを捕らえることを示すワークフロー700を描写する。本発明のいくつかの実施形態では、セキュア・インターフェース制御装置(例えば、信頼できるFW、信頼できる構成要素)のプログラム・コードが、新しいセッション・コードを利用するHSMログアウト・リクエストをセキュア・ゲストから捕らえる(710)。プログラム・コードが、関連付けのテーブル内の新しいセッション・コードを探索し、関連付けられたセッション・コード(HSMからのセッション・コード、例えば、図5の540)を検索する(720)。セッション・コードの検索に基づいて、プログラム・コードが、セッション・コードを利用して、HSMへのHSMログアウト・リクエストを発行する(730)。プログラム・コードが、関連付けのテーブルから関連付け(関連付けが、新しいセッション・コードをセッション・コードと関連付けた)を削除する(735)。リクエストに応答して、HSMからのセキュア・ゲストのログアウトを完了する(740)。
図8は、本発明のいくつかの実施形態における、プログラム・コードが、セキュア・ゲストを終わらせることを示すワークフロー800を描写する。全体的に、本発明の実施形態では、セキュア・ゲストが終了すると、セキュア・インターフェース制御装置は、(HSMのセキュア・ゲストの秘密を使用して)セキュア・ゲストが作り出した全てのセッションを終わらせる。本発明のいくつかの実施形態では、セキュア・インターフェース制御装置のプログラム・コードが、セキュア・ゲストを停止したことを示す情報を、ハイパーバイザを介して取得する(810)。セキュア・ゲストを停止したと判定したことに基づいて、セキュアな構成要素のプログラム・コードが、関連付けのテーブルに基づいて、HSMとのセキュア・ゲストの全てのセッションを識別する(820)。本発明のいくつかの実施形態では、プログラム・コードは、セッション・コードと関連付けられた全てのセッションのリストを生成することができる。セッションの識別に基づいて、セッション・コードを介して、プログラム・コードが、識別したセッション全てからセキュア・ゲストをログアウトさせる(830)。プログラム・コードが、セキュア・ゲストのHSM構成を除去する(840)。プログラム・コードが、セキュア・ゲストの残りのリソースをクリーンアップする(850)。
本発明の実施形態は、HSMとセキュア・ゲストとの整合性を保護するための様々なセキュリティ対策を含む。例えば、本発明のいくつかの実施形態では、セキュア・インターフェース制御装置がクラッシュすると、HSM内の全てのセッションを終了させる。追加として、HSMがサーバから除去されると、HSM内の全てのセッションを終了させる。
本発明の実施形態は、セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけるための、コンピュータ実行方法、コンピュータ・プログラム製品、およびシステムを含む。これらの実施形態の様々な態様は、セキュア・インターフェース制御装置によって実施され、セキュア・インターフェース制御装置は、ソフトウェア、ハードウェア、またはファームウェア、あるいはその組合せで構成することができる。ソフトウェアの態様は、1つまたは複数のプロセッサによって実行される。このように、理解のそれぞれについて、本発明の様々な実施形態の態様は、プログラム・コードによって広く実行されるものとして説明され、この態様の構成物と関係なく、セキュア・インターフェース制御装置を含むことができる。このように、本発明のいくつかの実施形態では、プログラム・コードは、ハイパーバイザによって管理されたセキュア・ゲストによる排他使用のためにハードウェア・セキュリティ・モジュールを構成する。構成することは、プログラム・コードが、ハイパーバイザによって管理された1つまたは複数のゲストのうちの所与のゲストから、ハイパーバイザを介して、ハードウェア・セキュリティ・モジュールを構成するための構成リクエストを取得すること、プログラム・コードが、ハードウェア・セキュリティ・モジュールが1つまたは複数のゲストのうちの特定のゲストに既に構成されているかどうかを判定することであって、特定のゲストおよび所与のゲストが、1つまたは複数のゲストのうちの異なるゲストを含む、判定すること、ハードウェア・セキュリティ・モジュールが特定のゲストに構成されていないとプログラム・コードが判定したことに基づいて、プログラム・コードが、所与のゲストのメタデータを評価することによって、所与のゲストがセキュア・ゲストを含むと判定すること、所与のゲストがセキュア・ゲストを含むと判定したことに基づいて、プログラム・コードが、1つまたは複数のゲストのうちの所与のゲストだけに、ハードウェア・セキュリティ・モジュールへのゲストによるアクセスを限定することによって、ハードウェア・セキュリティ・モジュールの構成を確立することを除外することを含む。また、構成することは、プログラム・コードが、ハードウェア・セキュリティ・モジュールに所与のゲストをログインさせることであって、ハードウェア・セキュリティ・モジュールにログインさせることが、所与のゲストの秘密を利用することを含み、メタデータが、秘密を含む、ログインさせることを含む。さらに、構成することは、プログラム・コードが、ハードウェア・セキュリティ・モジュールにログインさせることに基づいて、プログラム・コードが、ハードウェア・セキュリティ・モジュールからセッション・コードを取得すること、および、1つまたは複数のプロセッサでセッション・コードを保持することを含む。
本発明のいくつかの実施形態では、保持することは、プログラム・コードが、セキュア・インターフェース制御装置内の関連付けのテーブルに、NULLのセッション・コードとセッション・コードの関連付けを格納することを含む。
本発明のいくつかの実施形態では、ゲストのメタデータは、整合性が保護され、秘密は、セキュア・インターフェース制御装置が所有する秘密鍵を使用して導き出された鍵で暗号化される。秘密鍵は、所与のゲストのブート・イメージの暗号対策を含むことができる。
本発明のいくつかの実施形態では、プログラム・コードは、構成に基づいて、ハードウェア・セキュリティ・モジュールへのリクエストで、所与のゲストによって利用するための新しいセッション・コードを所与のゲストに提供する。
本発明のいくつかの実施形態では、(プログラム・コードで)提供することは、プログラム・コードが、所与のゲストからのハードウェア・セキュリティ・モジュール・ログイン・リクエストを捕らえることであって、ハードウェア・セキュリティ・モジュール・ログイン・リクエストが、所与のゲストからのログイン・データを含む、捕らえること、プログラム・コードが、所与のゲストの秘密に基づいて、新しいログイン・データを生成すること、プログラム・コードが、所与のゲストからの新しいハードウェア・セキュリティ・モジュール・ログイン・リクエストをハードウェア・セキュリティ・モジュールに発行することであって、新しいハードウェア・セキュリティ・モジュール・ログイン・リクエストが、新しいログイン・データを含む、発行すること、プログラム・コードが、ハードウェア・セキュリティ・モジュールからセッション・コードを取得すること、ハードウェア・セキュリティ・モジュールからセッション・コードを取得することに基づいて、プログラム・コードが、新しいセッション・コードを生成すること、プログラム・コードが、ハードウェア・セキュリティ・モジュールからのセッション・コードと、新しいセッション・コードとの間の関連付けをテーブルに格納すること、および、プログラム・コードが、ログイン・リクエストに応答して、新しいセッション・コードを所与のゲストに伝送することを含む。
本発明のいくつかの実施形態では、プログラム・コードが、ハードウェア・セキュリティ・モジュールへの所与のゲストからのリクエストを捕らえ、ここで、リクエストが、新しいセッション・コードを含む。プログラム・コードが、新しいセッション・コードと関連付けられたハードウェア・セキュリティ・モジュールからのセッション・コードをテーブルから取得する。プログラム・コードが、新しいリクエストを含むように、所与のゲストからのリクエストを更新し、新しいリクエストは、新しいセッション・コードではなく、ハードウェア・セキュリティ・モジュールからのセッション・コードを含む。プログラム・コードが、ハードウェア・セキュリティ・モジュールへの新しいリクエストを発行する。
本発明のいくつかの実施形態では、プログラム・コードが、ハードウェア・セキュリティ・モジュールから、リクエストのフルフィルメントを取得する。プログラム・コードが、リクエストのフルフィルメントを所与のゲストに発行する。本発明のいくつかの実施形態では、リクエストは、ハードウェア・セキュリティ・モジュール・セキュア鍵生成リクエスト、およびハードウェア・セキュリティ・モジュール・ログアウト・リクエストからなるグループから選択される。
本発明のいくつかの実施形態では、プログラム・コードが、所与のゲストが停止したという指示をハイパーバイザから取得する。プログラム・コードが、ハードウェア・セキュリティ・モジュールからのセッション・コードと、新しいセッション・コードとの間の関連付けをテーブル内で識別する。プログラム・コードが、テーブルに基づいて、ハードウェア・セキュリティ・モジュールからのセッション・コードを利用して、1つまたは複数のセッションのリストを生成する。プログラム・コードが、1つまたは複数のセッションから所与のゲストをログアウトさせる。
本発明のいくつかの実施形態では、プログラム・コードが、所与のゲストが停止したという指示をハイパーバイザから取得する。プログラム・コードが、構成を除去する。
本発明のいくつかの実施形態では、プログラム・コードが、所与のゲストが停止したという指示をハイパーバイザから取得する。プログラム・コードが、ハードウェア・セキュリティ・モジュールに保持された所与のゲストへの参照を識別する。プログラム・コードが、参照を除去する。
本発明のいくつかの実施形態では、セキュア・インターフェース構成要素は、ファームウェア、ハードウェア、およびソフトウェアからなるグループから選択される。
本発明のいくつかの実施形態では、所与のゲストのメタデータを評価することによって、所与のゲストがセキュア・ゲストを含むと判定することは、プログラム・コードが、メタデータの存在またはタイプのうちの1つを検証することを含む。
本発明のいくつかの実施形態では、プログラム・コードが所与のゲストの秘密を利用することは、プログラム・コードが秘密を復号することを含む。
本発明のいくつかの実施形態では、復号することは、セキュア・インターフェース制御装置でのみ計算された鍵を利用することを含む。
本明細書で説明される技法を通じて、さらなる特徴が実現される。他の実施形態および態様は、本明細書で詳細に説明され、特許請求される態様の一部とみなされる。
次に図9を参照すると、コンピュータ処理ノードの例の概略図が示されており、コンピュータ処理ノードは、クラウド・コンピューティング・ノード10であってもよい。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードのほんの一例であり、本明細書で説明される本発明の実施形態の用途または機能の範囲について、いかなる限定を提案することも意図するものではない。それにもかかわらず、クラウド・コンピューティング・ノード10は、以上に示された機能のいずれかの実行または実施あるいはその両方を行うことができる。本発明の実施形態では、セキュア・ゲスト250(図2)、セキュア・インターフェース制御装置265(例えば、セキュア・インターフェース制御装置)(図2)、またはハイパーバイザ240(図2)、あるいはその組合せは、それぞれ、クラウド・コンピューティング・ノード10(図9)上で実行するものとして理解されてもよく、クラウド・コンピューティング・ノード10でない場合、クラウド・コンピューティング・ノード10の態様を含む1つまたは複数の一般的なコンピュータ処理ノードである。
クラウド・コンピューティング・ノード10には、コンピュータ・システム/サーバ12があり、コンピュータ・システム/サーバ12は、非常に多くの他の汎用または専用コンピューティング・システム環境または構成で動作するものである。コンピュータ・システム/サーバ12と共に使用するのに適し得る、よく知られたコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などを含むがこれらに限定されない。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な背景で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実施するか、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実施される分散型クラウド・コンピューティング環境で実践することができる。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモート両方のコンピュータ・システム・ストレージ媒体に置くことができる。
図9に示したように、クラウド・コンピューティング・ノード10として利用することができるコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ12の構成要素は、1つまたは複数のプロセッサまたは処理ユニット16、システム・メモリ28、および、システム・メモリ28を含む様々なシステム構成要素をプロセッサ16に連結するバス18を含むことができるがこれらに限定されない。
バス18は、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数に相当する。限定ではなく例として、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。
コンピュータ・システム/サーバ12は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な、任意の利用可能な媒体であってもよく、揮発性媒体と不揮発性媒体の両方、取外し可能媒体および取外し不能媒体の両方を含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。ほんの一例として、ストレージ・システム34は、取外し不能な不揮発性磁気媒体(図示していないが、典型的には「ハード・ドライブ」と呼ばれる)を読み書きするために設置することができる。図示していないが、取外し可能な不揮発性磁気ディスク(例えば「フロッピー(登録商標)・ディスク」)を読み書きするための磁気ディスク・ドライブ、および、CD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブを設置することができる。このような事例では、それぞれを、1つまたは複数のデータ媒体インターフェースでバス18に接続することができる。下記でさらに描写され、説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
プログラム/ユーティリティ40は、プログラム・モジュール42のセット(少なくとも1つ)を含み、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、限定ではなく例として、メモリ28に格納することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそのいくつかの組合せは、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール42は、一般に、本明細書で説明されるような、本発明の実施形態の機能または方法あるいはその両方を実行する。
コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24等などの、1つもしくは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つもしくは複数のデバイス、または、コンピュータ・システム/サーバ12が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、あるいはその組合せとも通信することができる。このような通信は、入出力(I/O)インターフェース22を介して発生させることができる。さらに、コンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、またはパブリック・ネットワーク(例えばインターネット)、あるいはその組合せなどの、1つまたは複数のネットワークと、ネットワーク・アダプタ20を介して通信することができる。描写したように、ネットワーク・アダプタ20は、コンピュータ・システム/サーバ12の他の構成要素と、バス18を介して通信する。図示していないが、他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方を、コンピュータ・システム/サーバ12と共に使用できることを理解されたい。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム等を含むがこれらに限定されない。
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で列挙される教示の実装形態は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、今知られているか、後で開発される他の任意のタイプのコンピューティング環境と共に実装することができる。
クラウド・コンピューティングは、最低限の管理努力、または、サービスの提供者との対話により、迅速に提供し、解放することができる、構成可能なコンピュータ処理リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの導入モデルを含むことができる。
特性は、以下のようなものである。
オンデマンド・セルフサービス:クラウド利用者は、サービスの提供者との人間対話を必要とせずに必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピュータ処理能力を一方的に提供することができる。
ブロード・ネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を推進する標準メカニズムを通じてアクセスされる。リソース・プーリング:提供者のコンピュータ処理リソースは、マルチ・テナント・モデルを複数の利用者が使用するのに役立てるためにプールされ、種々の物理および仮想リソースの、要求に従った動的な割当て、および再割当てが行われる。利用者は、一般に、提供されるリソースの正確な位置についての制御権または知識を有していないが、抽象化のより高いレベル(例えば、国、州、またはデータセンタ)で位置を指定することができ得るという点で、位置独立の感覚がある。迅速な伸縮性(rapid elasticity):能力は、素早くスケール・アウトするために、迅速かつ伸縮自在に、場合によっては自動的に提供すること、および、素早くスケール・インするために、迅速に解放することができる。利用者にとって、提供するために利用可能な能力は、しばしば、無制限のように見え、任意の量でいつでも購入することができる。
測定されるサービス(measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した抽象化のいくつかのレベルで計量能力を活用することによって、リソース利用を自動的に制御し、最適化する。リソース利用率の監視、制御、レポートを行うことができ、利用されるサービスの提供者と利用者双方に透明性をもたらす。
サービス・モデルは、以下のようなものである。
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で動く提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)などの、シン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。利用者は、限定的なユーザ固有アプリケーション構成設定を例外とする可能性はあるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、ことによると、個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わない。
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、提供者がサポートするプログラミング言語およびツールを使用して作り出された、利用者が作り出した、または獲得したアプリケーションを、クラウド・インフラストラクチャ上に配布することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、配布されたアプリケーション、および場合によっては、環境構成をホストするアプリケーションに対する制御権を有している。
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、および、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを利用者が配布し、動かすことができる他の基本的なコンピュータ処理リソースを提供することである。利用者は、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、オペレーティング・システム、ストレージ、配布したアプリケーション、および場合によっては、ネットワーキング構成要素(例えば、ホスト・ファイアウォール)の選択についての限定的な制御に対する制御権がある。
導入モデルは、以下のようなものである。
プライベート・クラウド:クラウド・インフラストラクチャは、組織のために単に運用される。クラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスであってもオフプレミスであってもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、懸念(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮)を共有している特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスであってもオフプレミスであってもよい。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体に提供され、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションを移植できるようにする標準または独自の技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)とともに結びつけられた、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
クラウド・コンピューティング環境は、ステートレス性、疎結合、モジュラリティ、および意味論的相互運用性に焦点を置くサービス指向のものである。クラウド・コンピューティングの中心には、相互接続ノードのネットワークを含むインフラストラクチャがある。
次に図10を参照すると、例証的なクラウド・コンピューティング環境50が描写されている。図示のように、クラウド・コンピューティング環境50は、例えば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど、クラウド利用者によって使用されるローカル・コンピューティング・デバイスが通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。ノード10は、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組合せなど、1つまたは複数のネットワーク内で、物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド利用者がローカル・コンピューティング・デバイス上のリソースを維持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。図10に示されているコンピューティング・デバイス54A~54Nのタイプは、例証に過ぎないことを意図しており、コンピュータ処理ノード10およびクラウド・コンピューティング環境50は、(例えば、ウェブ・ブラウザを使用して)任意のタイプのネットワーク、またはネットワーク・アドレス可能接続、あるいはその両方で、任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
次に図11を参照すると、クラウド・コンピューティング環境50(図10)によって提供される機能的抽象化層のセットが示されている。図11に示された構成要素、層、および機能は、例証に過ぎないことを意図しており、本発明の実施形態は、これらに限定されないことを予め理解されたい。描写したように、以下の層、および対応する機能を提供する。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびに、ネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75、といった仮想エンティティの例を提供することができる抽象化層を提供する。
1つの例では、管理層80は、下記で説明される機能を提供することができる。リソース提供81は、クラウド・コンピューティング環境内のタスクを実施するために利用されるコンピュータ処理リソースおよび他のリソースの動的な調達を行う。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの消費量についての課金または請求を行う。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド利用者およびタスクの検証、ならびに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、利用者およびシステム・アドミニストレータに、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウド・コンピューティング・リソースの割当ておよび管理を行う。サービス・レベル契約(SLA)計画立案およびフルフィルメント85は、SLAに応じて、将来の要件が予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
ワークロード層90は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供することができるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム・エデュケーション配信93、データ分析処理94、トランザクション処理95、ならびに、セキュア・ゲストにセキュア鍵を結びつけること96を含む。
本発明は、統合の任意の可能な技術詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持し、格納することができる有形デバイスであってもよい。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック(登録商標)、フロッピー(登録商標)・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、本質的に一過性の信号であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれの計算/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといった、ネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えることができる。各計算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれの計算/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路機器のための構成データ、または、Smalltalk(登録商標)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で実行することができ、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続することができ、または、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラム可能論理回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するための手段を作り出すべく、機械を生み出すために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令も、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実行する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納することができ、特定の手法で機能するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに指図することができる。
コンピュータ可読プログラム命令も、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するべく、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施してコンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードすることができる。
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図の中の各ブロックは、指定の論理機能を実行するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序から外れて発生してもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、または、ブロックは、時には、含まれる機能に応じて逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能または行為を行うか、専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実行できることにも留意されたい。
本明細書で使用される専門用語は、特定の実施形態だけを説明するためのものであり、限定することを意図するものではない。本明細書で使用されるように、単数形「1つ(a)」、「1つ(an)」、および「前記(the)」は、別途文脈がはっきり示さない限り、複数形も同様に含むことを意図するものである。用語「備える(comprises)」または「備える(comprising)」あるいはその両方は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそのグループ、あるいはその組合せの存在または追加を排除しないことがさらに理解されよう。
全ての手段またはステップの対応する構造、材料、行為、および均等物は、下記の特許請求の範囲における機能要素に加えて、もしあれば、具体的に特許請求されるような、他の特許請求される要素と組み合わせて機能を実施するための任意の構造、材料、または行為を含むことを意図するものである。1つまたは複数の実施形態の説明は、例証および説明のために提示してきたが、網羅的であること、または開示された形に限定されることを意図するものではない。多くの変更形態および変形形態が、当業者には明らかであろう。実施形態は、様々な態様および実用的用途を最も良く説明するように、また、想定される特定の用途に適したような、様々な修正を伴う様々な実施形態を当業者が理解できるように、選ばれ、説明された。

Claims (18)

  1. コンピュータ実行方法であって、
    ハイパーバイザおよびハードウェア・セキュリティ・モジュールに通信連結されたセキュア・インターフェース制御装置で、前記ハイパーバイザによって管理されたセキュア・ゲストによる排他使用のために前記ハードウェア・セキュリティ・モジュールを構成することを含み、前記構成することが、
    前記ハイパーバイザによって管理された1つまたは複数のゲストのうちの所与のゲストから、前記ハイパーバイザを介して、前記ハードウェア・セキュリティ・モジュールを構成するための構成リクエストを、前記セキュア・インターフェース制御装置で取得することと、
    前記ハードウェア・セキュリティ・モジュールが前記1つまたは複数のゲストのうちの特定のゲストに対して既に構成されているかどうかを、前記セキュア・インターフェース制御装置で判定することであって、前記特定のゲストおよび前記所与のゲストが、前記1つまたは複数のゲストのうちの異なるゲストを含む、前記判定することと、
    前記ハードウェア・セキュリティ・モジュールが前記特定のゲストに対して構成されていないと判定したことに基づいて、前記所与のゲストのメタデータを評価することによって前記所与のゲストが前記セキュア・ゲストを含むと、前記セキュア・インターフェース制御装置で判定することと、
    前記所与のゲストがセキュア・ゲストを含むと判定したことに基づいて、前記1つまたは複数のゲストのうちの前記所与のゲストだけに、前記ハードウェア・セキュリティ・モジュールへのゲストによるアクセスを限定することによって、前記ハードウェア・セキュリティ・モジュールの構成を確立することを、前記セキュア・インターフェース制御装置で除外することと、
    前記セキュア・インターフェース制御装置で、前記ハードウェア・セキュリティ・モジュールに前記所与のゲストをログインさせることであって、前記ハードウェア・セキュリティ・モジュールに前記ログインさせることが、前記所与のゲストの秘密を利用することを含み、前記メタデータが、前記秘密を含む、前記ログインさせることと、
    前記ハードウェア・セキュリティ・モジュールに前記ログインさせることに基づいて、前記ハードウェア・セキュリティ・モジュールからセッション・コードを、前記セキュア・インターフェース制御装置で取得することと、
    前記セッション・コードを、前記セキュア・インターフェース制御装置で保持することと
    を含む、コンピュータ実行方法。
  2. 前記保持することが、前記セキュア・インターフェース制御装置内の関連付けのテーブルに、NULLのセッション・コードと前記セッション・コードの関連付けを格納することを含む、請求項1に記載のコンピュータ実行方法。
  3. 前記ゲストの前記メタデータが、整合性保護され、前記秘密が、前記セキュア・インターフェース制御装置が所有する秘密鍵を使用して導き出された鍵で暗号化される、請求項1または2に記載のコンピュータ実行方法。
  4. 前記秘密鍵が、前記所与のゲストのブート・イメージの暗号対策を含む、請求項3に記載のコンピュータ実行方法。
  5. 前記構成することに基づいて、前記ハードウェア・セキュリティ・モジュールへのリクエストにおいて、前記所与のゲストによって利用するための新しいセッション・コードを前記所与のゲストに、前記セキュア・インターフェース制御装置で提供すること
    をさらに含む、請求項2に記載のコンピュータ実行方法。
  6. 前記提供することが、
    前記所与のゲストからのハードウェア・セキュリティ・モジュール・ログイン・リクエストを、前記セキュア・インターフェース制御装置で捕らえることであって、前記ハードウェア・セキュリティ・モジュール・ログイン・リクエストが、前記所与のゲストからのログイン・データを含む、前記捕らえることと、
    前記所与のゲストの前記秘密に基づいて新しいログイン・データを、前記セキュア・インターフェース制御装置で生成することと、
    前記所与のゲストからの新しいハードウェア・セキュリティ・モジュール・ログイン・リクエストを前記ハードウェア・セキュリティ・モジュールに、前記セキュア・インターフェース制御装置で発行することであって、前記新しいハードウェア・セキュリティ・モジュール・ログイン・リクエストが、前記新しいログイン・データを含む、前記発行することと、
    前記ハードウェア・セキュリティ・モジュールからのセッション・コードを、前記セキュア・インターフェース制御装置で取得することと、
    前記ハードウェア・セキュリティ・モジュールからの前記セッション・コードを取得することに基づいて、前記新しいセッション・コードを、前記セキュア・インターフェース制御装置で生成することと、
    前記ハードウェア・セキュリティ・モジュールからの前記セッション・コードと、前記新しいセッション・コードとの間の関連付けを前記テーブルに、前記セキュア・インターフェース制御装置で格納することと、
    前記ログイン・リクエストに応答して、前記新しいセッション・コードを前記所与のゲストに、前記セキュア・インターフェース制御装置で伝送することと
    を含む、請求項5に記載のコンピュータ実行方法。
  7. 前記ハードウェア・セキュリティ・モジュールへの前記所与のゲストからのリクエストを、前記セキュア・インターフェース制御装置で捕らえることであって、前記リクエストが、前記新しいセッション・コードを含む、前記捕らえることと、
    前記新しいセッション・コードと関連付けられた前記ハードウェア・セキュリティ・モジュールからの前記セッション・コードを前記テーブルから、前記セキュア・インターフェース制御装置で取得することと、
    新しいリクエストを含むように、前記所与のゲストからの前記リクエストを、前記セキュア・インターフェース制御装置で更新することであって、前記新しいリクエストが、前記新しいセッション・コードではなく、前記ハードウェア・セキュリティ・モジュールからの前記セッション・コードを含む、前記更新することと、
    前記ハードウェア・セキュリティ・モジュールへの前記新しいリクエストを、前記セキュア・インターフェース制御装置で発行することと
    をさらに含む、請求項5に記載のコンピュータ実行方法。
  8. 前記ハードウェア・セキュリティ・モジュールから前記リクエストのフルフィルメントを、前記セキュア・インターフェース制御装置で取得することと、
    前記リクエストの前記フルフィルメントを前記所与のゲストに、前記セキュア・インターフェース制御装置で発行することと
    をさらに含む、請求項7に記載のコンピュータ実行方法。
  9. 前記リクエストが、ハードウェア・セキュリティ・モジュール・セキュア鍵生成リクエスト、およびハードウェア・セキュリティ・モジュール・ログアウト・リクエストからなるグループから選択される、請求項8に記載のコンピュータ実行方法。
  10. 前記所与のゲストが停止したという指示を前記ハイパーバイザから、前記セキュア・インターフェース制御装置で取得することと、
    前記ハードウェア・セキュリティ・モジュールからの前記セッション・コードと、前記新しいセッション・コードとの間の前記関連付けを前記テーブル内で、前記セキュア・インターフェース制御装置で識別することと、
    前記テーブルに基づいて、前記ハードウェア・セキュリティ・モジュールからの前記セッション・コードを利用して、1つまたは複数のセッションのリストを、前記セキュア・インターフェース制御装置で生成することと、
    前記1つまたは複数のセッションから前記所与のゲストを、前記セキュア・インターフェース制御装置でログアウトさせることと、
    をさらに含む、請求項6に記載のコンピュータ実行方法。
  11. 前記所与のゲストが停止したという指示を前記ハイパーバイザから、前記セキュア・インターフェース制御装置で取得することと、
    前記構成を、前記セキュア・インターフェース制御装置で除去することと
    をさらに含む、請求項6に記載のコンピュータ実行方法。
  12. 前記所与のゲストが停止したという指示を前記ハイパーバイザから、前記セキュア・インターフェース制御装置で取得することと、
    前記ハードウェア・セキュリティ・モジュールに保持された前記所与のゲストへの参照を、前記セキュア・インターフェース制御装置で識別することと、
    前記参照を、前記セキュア・インターフェース制御装置で除去することと
    をさらに含む、請求項6に記載のコンピュータ実行方法。
  13. 前記セキュア・インターフェース制御装置が、ファームウェア、ハードウェア、およびソフトウェアからなるグループから選択される、請求項1ないし12のいずれかに記載のコンピュータ実行方法。
  14. 前記所与のゲストのメタデータを評価することによって、前記所与のゲストが前記セキュア・ゲストを含むと判定することが、前記メタデータの存在またはタイプのうちの1つを検証することを含む、請求項1ないし13のいずれかに記載のコンピュータ実行方法。
  15. 前記所与のゲストの前記秘密を利用することが、前記セキュア・インターフェース制御装置で前記秘密を復号することを含む、請求項1ないし14のいずれかに記載のコンピュータ実行方法。
  16. 前記復号することが、前記セキュア・インターフェース制御装置でのみ計算された鍵を利用することを含む、請求項15に記載のコンピュータ実行方法。
  17. コンピュータ・プログラムであって、
    前記コンピュータ・プログラムは、1つまたは複数のプロセッサを備えるコンピュータに、
    ハイパーバイザおよびハードウェア・セキュリティ・モジュールに通信連結された前記1つまたは複数のプロセッサで、前記ハイパーバイザによって管理されたセキュア・ゲストによる排他使用のために前記ハードウェア・セキュリティ・モジュールを構成することを実行させ、前記構成することが、
    前記ハイパーバイザによって管理された1つまたは複数のゲストのうちの所与のゲストから、前記ハイパーバイザを介して、前記ハードウェア・セキュリティ・モジュールを構成するための構成リクエストを、前記1つまたは複数のプロセッサで取得することと、
    前記ハードウェア・セキュリティ・モジュールが前記1つまたは複数のゲストのうちの特定のゲストに対して既に構成されているかどうかを、前記1つまたは複数のプロセッサで判定することであって、前記特定のゲストおよび前記所与のゲストが、前記1つまたは複数のゲストのうちの異なるゲストを含む、前記判定することと、
    前記ハードウェア・セキュリティ・モジュールが前記特定のゲストに対して構成されていないと判定したことに基づいて、前記所与のゲストのメタデータを評価することによって前記所与のゲストが前記セキュア・ゲストを含むと、前記1つまたは複数のプロセッサで判定することと、
    前記所与のゲストがセキュア・ゲストを含むと判定したことに基づいて、前記1つまたは複数のゲストのうちの前記所与のゲストだけに、前記ハードウェア・セキュリティ・モジュールへのゲストによるアクセスを限定することによって、前記ハードウェア・セキュリティ・モジュールの構成を確立することを、前記1つまたは複数のプロセッサで除外することと、
    前記1つまたは複数のプロセッサで、前記ハードウェア・セキュリティ・モジュールに前記所与のゲストをログインさせることであって、前記ハードウェア・セキュリティ・モジュールに前記ログインさせることが、前記所与のゲストの秘密を利用することを含み、前記メタデータが、前記秘密を含む、前記ログインさせることと、
    前記ハードウェア・セキュリティ・モジュールに前記ログインさせることに基づいて、前記ハードウェア・セキュリティ・モジュールからセッション・コードを、前記1つまたは複数のプロセッサで取得することと、
    前記セッション・コードを、前記1つまたは複数のプロセッサで保持することと
    を含む、コンピュータ・プログラム。
  18. システムであって、
    メモリ、
    前記メモリと通信中の1つまたは複数のプロセッサ、
    方法を実施するために前記メモリを介して前記1つまたは複数のプロセッサで実行可能なプログラム命令を備え、前記方法が、
    ハイパーバイザおよびハードウェア・セキュリティ・モジュールに通信連結された前記1つまたは複数のプロセッサで、前記ハイパーバイザによって管理されたセキュア・ゲストによる排他使用のために前記ハードウェア・セキュリティ・モジュールを構成することを含み、前記構成することが、
    前記ハイパーバイザによって管理された1つまたは複数のゲストのうちの所与のゲストから、前記ハイパーバイザを介して、前記ハードウェア・セキュリティ・モジュールを構成するための構成リクエストを、前記1つまたは複数のプロセッサで取得することと、
    前記ハードウェア・セキュリティ・モジュールが前記1つまたは複数のゲストのうちの特定のゲストに対して既に構成されているかどうかを、前記1つまたは複数のプロセッサで判定することであって、前記特定のゲストおよび前記所与のゲストが、前記1つまたは複数のゲストのうちの異なるゲストを含む、前記判定することと、
    前記ハードウェア・セキュリティ・モジュールが前記特定のゲストに対して構成されていないと判定したことに基づいて、前記所与のゲストのメタデータを評価することによって前記所与のゲストが前記セキュア・ゲストを含むと、前記1つまたは複数のプロセッサで判定することと、
    前記所与のゲストがセキュア・ゲストを含むと判定したことに基づいて、前記1つまたは複数のゲストのうちの前記所与のゲストだけに、前記ハードウェア・セキュリティ・モジュールへのゲストによるアクセスを限定することによって、前記ハードウェア・セキュリティ・モジュールの構成を確立することを、前記1つまたは複数のプロセッサで除外することと、
    前記1つまたは複数のプロセッサで、前記ハードウェア・セキュリティ・モジュールに前記所与のゲストをログインさせることであって、前記ハードウェア・セキュリティ・モジュールに前記ログインさせることが、前記所与のゲストの秘密を利用することを含み、前記メタデータが、前記秘密を含む、前記ログインさせることと、
    前記ハードウェア・セキュリティ・モジュールに前記ログインさせることに基づいて、前記ハードウェア・セキュリティ・モジュールからセッション・コードを、前記1つまたは複数のプロセッサで取得することと、
    前記セッション・コードを、前記1つまたは複数のプロセッサで保持することと
    を含む、システム。
JP2021547766A 2019-03-08 2020-02-27 セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること Active JP7388803B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/296,411 US11500988B2 (en) 2019-03-08 2019-03-08 Binding secure keys of secure guests to a hardware security module
US16/296,411 2019-03-08
PCT/EP2020/055160 WO2020182483A1 (en) 2019-03-08 2020-02-27 Binding secure keys of secure guests to a hardware security module

Publications (2)

Publication Number Publication Date
JP2022522645A JP2022522645A (ja) 2022-04-20
JP7388803B2 true JP7388803B2 (ja) 2023-11-29

Family

ID=69723942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021547766A Active JP7388803B2 (ja) 2019-03-08 2020-02-27 セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること

Country Status (14)

Country Link
US (2) US11500988B2 (ja)
EP (1) EP3935535A1 (ja)
JP (1) JP7388803B2 (ja)
KR (1) KR102539777B1 (ja)
CN (1) CN113557509A (ja)
AU (1) AU2020234675B2 (ja)
BR (1) BR112021017439A2 (ja)
CA (1) CA3132747A1 (ja)
IL (1) IL285112B2 (ja)
MX (1) MX2021010588A (ja)
SG (1) SG11202105613PA (ja)
TW (1) TWI744797B (ja)
WO (1) WO2020182483A1 (ja)
ZA (1) ZA202106316B (ja)

Families Citing this family (9)

* 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
US20230040577A1 (en) * 2021-08-05 2023-02-09 International Business Machines Corporation Secure guest image and metadata update
US11809607B2 (en) 2021-08-05 2023-11-07 International Business Machines Corporation Customization of multi-part metadata of a secure guest
US11829495B2 (en) 2021-08-05 2023-11-28 International Business Machines Corporation Confidential data provided to a secure guest via metadata
US20230081068A1 (en) * 2021-09-10 2023-03-16 International Business Machines Corporation Securely distributing a root key for a hardware security module
US20240086550A1 (en) * 2022-09-13 2024-03-14 Synamedia Limited Zero-Trust Cloud Development
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
GB2624862A (en) * 2022-11-29 2024-06-05 Ibm Extending secure guest metadata to bind the secure guest to an HSM

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008541279A (ja) 2005-05-13 2008-11-20 インテル コーポレイション ソフトウェア・ベースのセキュリティ・コプロセッサを提供する方法および装置
JP2016511872A (ja) 2013-01-22 2016-04-21 アマゾン・テクノロジーズ、インコーポレイテッド 仮想化された環境における特権的な暗号サービス

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1084543B1 (en) 1998-06-03 2008-01-23 Cryptography Research Inc. Using unpredictable informaion to minimize leakage from smartcards and other cryptosystems
US6363480B1 (en) 1999-09-14 2002-03-26 Sun Microsystems, Inc. Ephemeral decryptability
US20030217258A1 (en) 2002-05-16 2003-11-20 International Business Machines Corporation Apparatus and method of using ephemeral asymmetric keys to exchange security data between hardware security modules
US8205248B2 (en) * 2007-09-30 2012-06-19 Lenovo (Singapore) Pte. Ltd. Local verification of trusted display based on remote server verification
US8539551B2 (en) * 2007-12-20 2013-09-17 Fujitsu Limited Trusted virtual machine as a client
US8032942B2 (en) * 2007-12-31 2011-10-04 Intel Corporation Configuration of virtual trusted platform module
US8891868B1 (en) 2011-08-04 2014-11-18 Amazon Technologies, Inc. Recognizing gestures captured by video
FR3011654B1 (fr) 2013-10-08 2016-12-23 Commissariat Energie Atomique Procede et dispositif d'authentification et d'execution securisee de programmes
US9158909B2 (en) * 2014-03-04 2015-10-13 Amazon Technologies, Inc. Authentication of virtual machine images using digital certificates
US20160149877A1 (en) * 2014-06-05 2016-05-26 Cavium, Inc. Systems and methods for cloud-based web service security management basedon hardware security module
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
US10425234B2 (en) * 2015-08-27 2019-09-24 Cavium, Llc Systems and methods for perfect forward secrecy (PFS) traffic monitoring via a hardware security module
TWM540310U (zh) 2016-08-17 2017-04-21 兆豐國際商業銀行股份有限公司 加密驗證系統
EP3516573A1 (en) * 2016-09-22 2019-07-31 Telefonaktiebolaget LM Ericsson (PUBL) Version control for trusted computing
US10461943B1 (en) * 2016-11-14 2019-10-29 Amazon Technologies, Inc. Transparently scalable virtual hardware security module
US10387687B2 (en) 2017-04-07 2019-08-20 Nxp B.V. Method for symbolic execution on constrained devices
WO2019050527A1 (en) * 2017-09-07 2019-03-14 Visa International Service Association SYSTEM AND METHOD FOR GENERATING TRUSTED TOKENS
US10601590B1 (en) * 2017-11-09 2020-03-24 Amazon Technologies, Inc. Secure secrets in hardware security module for use by protected function in trusted execution environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008541279A (ja) 2005-05-13 2008-11-20 インテル コーポレイション ソフトウェア・ベースのセキュリティ・コプロセッサを提供する方法および装置
JP2016511872A (ja) 2013-01-22 2016-04-21 アマゾン・テクノロジーズ、インコーポレイテッド 仮想化された環境における特権的な暗号サービス

Also Published As

Publication number Publication date
WO2020182483A1 (en) 2020-09-17
TWI744797B (zh) 2021-11-01
CN113557509A (zh) 2021-10-26
KR20210122288A (ko) 2021-10-08
US11500988B2 (en) 2022-11-15
IL285112A (en) 2021-09-30
AU2020234675B2 (en) 2022-11-24
JP2022522645A (ja) 2022-04-20
BR112021017439A2 (pt) 2021-11-16
US20200285746A1 (en) 2020-09-10
MX2021010588A (es) 2021-10-13
SG11202105613PA (en) 2021-06-29
EP3935535A1 (en) 2022-01-12
US20230031297A1 (en) 2023-02-02
TW202038114A (zh) 2020-10-16
IL285112B2 (en) 2024-04-01
ZA202106316B (en) 2023-03-29
IL285112B1 (en) 2023-12-01
AU2020234675A1 (en) 2021-06-10
KR102539777B1 (ko) 2023-06-05
CA3132747A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
JP7388803B2 (ja) セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること
JP7397557B2 (ja) セキュア実行ゲスト所有者環境制御
JP7308002B2 (ja) ハイブリッド・クラウドkmsソリューションにおけるhsmの自己破壊方法、システム、プログラム
AU2021302892B2 (en) Hypervisor protected key
JP7445358B2 (ja) セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
US20210234681A1 (en) Binding secure objects of a security module to a secure guest
JP2023551527A (ja) 準同型暗号化を使用したセキュアなコンピューティング・リソース配置
US11120140B2 (en) Secure operations on encrypted data
US11645092B1 (en) Building and deploying an application
US11995197B2 (en) Sensitive data encryption
US20230171089A1 (en) Enforcing multi-ownership of data on storage

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210909

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20210816

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231019

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231031

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20231031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231114

R150 Certificate of patent or registration of utility model

Ref document number: 7388803

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150