JP7486530B2 - 管理されたコンテナ環境における共有機密情報へのアクセス方法、システム、プログラム - Google Patents

管理されたコンテナ環境における共有機密情報へのアクセス方法、システム、プログラム Download PDF

Info

Publication number
JP7486530B2
JP7486530B2 JP2021575206A JP2021575206A JP7486530B2 JP 7486530 B2 JP7486530 B2 JP 7486530B2 JP 2021575206 A JP2021575206 A JP 2021575206A JP 2021575206 A JP2021575206 A JP 2021575206A JP 7486530 B2 JP7486530 B2 JP 7486530B2
Authority
JP
Japan
Prior art keywords
key
worker node
data encryption
encryption key
container
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
JP2021575206A
Other languages
English (en)
Other versions
JPWO2020260026A5 (ja
JP2022537739A (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 JP2022537739A publication Critical patent/JP2022537739A/ja
Publication of JPWO2020260026A5 publication Critical patent/JPWO2020260026A5/ja
Application granted granted Critical
Publication of JP7486530B2 publication Critical patent/JP7486530B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Landscapes

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

Description

本開示は、一般に、オープン・ソース・コンテナ・オーケストレーション・フレームワークに関し、より詳細には、オープン・ソース・コンテナ・オーケストレーション・フレームワークのマルチノード・クラスタ内の信頼できるノードとコンテナとの間の暗号鍵オーケストレーション(cryptographic key orchestration)を提供することに関する。
例えば、Kubernetesなどのオープン・ソース・コンテナ・オーケストレーション・フレームワークは、コンテナ化されたアプリケーションの自動デプロイメント、スケーリング、および管理を行う、相互接続された物理コンピューティング・ノードまたは仮想コンピューティング・ノード(すなわち、マシン)あるいはその両方のクラスタである。オープン・ソース・コンテナ・オーケストレーション・フレームワークは、アプリケーション・ワークロードのためにコンピューティング、ネットワーキング、およびストレージ・インフラストラクチャを組織化する。これにより、サービスとしてのインフラストラクチャ(IaaS)の柔軟性とともにサービスとしてのプラットフォーム(PaaS)のシンプルさの多くが実現され、インフラストラクチャ・プロバイダ間のポータビリティが可能になる。
ノードのクラスタは、2つのタイプのノード、すなわちマスタ・ノードおよびワーカ・ノードを含む。マスタ・ノードは、クラスタのワーカ・ノードの管理を担当する。マスタ・ノードは、例えば、アプリケーション・プログラミング・インタフェース、ユーザ・インタフェース、またはコマンド・ライン・インタフェースから受け取られる、クラスタで実行されるべきすべてのオペレーションのエントリ・ポイントである。ワーカ・ノードは、1つまたは複数のワークロードを実行すること、およびクラスタの他のワーカ・ノードで実行されている様々なワークロードとネットワークを形成することを担当する。オープン・ソース・コンテナ・オーケストレーション・フレームワークの機能は、例えば、迅速なアプリケーション・デプロイメント、自動復旧および自己回復、ならびにシームレスなアプリケーション更新を含むことができる。
ワーカ・ノードの基本的なスケジューリング・ユニットは、例えば、ポッドなどのコンテナである。コンテナは、ワーカ・ノードにおいて同じ場所に配置され、リソースを共有することができる。オープン・ソース・コンテナ・オーケストレーション・フレームワークの各コンテナは、ワーカ・ノードのクラスタ内で固有のコンテナ・インターネット・プロトコル・アドレスが割り当てられ、それにより、アプリケーションは、衝突のリスクなしにポートを使用することができる。現在、コンテナは、ホスト・マシン上で互いに参照することができるが、あるワーカ・ノードに配置されたコンテナには、別のワーカ・ノード内の別のコンテナを直接アドレス指定する方法がなく、それは、コンテナの固有のインターネット・プロトコル・アドレスを使用しなければならないことになる。コンテナは、例えば、ローカル・ディスク・ディレクトリまたはネットワーク・ディスクなどのボリュームを定義し、ワーカ・ノードの他のコンテナにボリュームを公開することができる。サービスは、一緒に機能するコンテナのセット、例えば、多層アプリケーションの1つの層などである。
しかしながら、多数のワーカ・ノードを含むクラスタでは、クラスタで実行されているアプリケーション間の機密データにアクセスすることは、現在可能ではない。特に、機密アプリケーション・データ(sensitive application data)がワーカ・ノードのセキュア・エンクレーブによってシールされる場合に当てはまる。セキュア・エンクレーブは、アプリケーション機能の重要な態様が保護されるメモリの分離された信頼できる領域であり、それは、機密アプリケーション・データを秘密におよび変更されないように保持するのに役立つ。言い換えれば、セキュア・エンクレーブは、メイン・メモリの暗号化された部分である。セキュア・エンクレーブは、プロセッサベースのセキュリティ機構によって堅固にされる。所与のマシンのハードウェア(例えば、ワーカ・ノードのプロセッサ・チップ)に由来するシールされた暗号鍵にセキュリティをタグづけすることは非常に安全であるが、これは、現在、Kubernetesなどの動的な分散型オープン・ソース・コンテナ・オーケストレーション・フレームワークで機密アプリケーション・データを共有することを、不可能でないにしても、さらに一層困難にしている。
1つの例示的な実施形態によれば、管理されたコンテナ環境における共有機密情報にアクセスするための方法が提供される。複数のワーカ・ノード内の各ワーカ・ノードは、データ暗号鍵を使用して、複数のワーカ・ノード内のセキュア・エンクレーブに配置された共有機密アプリケーション・データにアクセスできる。複数のワーカ・ノードの各ワーカ・ノードは、それぞれのワーカ・ノードのセキュア・エンクレーブに固有のシーリング鍵を使用して、それぞれのワーカ・ノードごとのデータ暗号鍵を保護する。さらに、この方法は、クラスタに第1のワーカ・ノードを確立する。第1のワーカ・ノードは、データ暗号鍵と、データ暗号鍵を保護するための第1のワーカ・ノードのセキュア・エンクレーブに固有の第1のシーリング鍵とを生成する。第1のワーカ・ノードは、クラスタに第2のワーカ・ノードを作り出すことに依ってクラスタの第2のワーカ・ノードとともにリモート認証を実行する。第1のワーカ・ノードは、リモート認証の正常な実行に際してデータ暗号鍵のコピーを第2のワーカ・ノードに提供する。さらに、第2のワーカ・ノードは、第2のシーリング鍵を使用してデータ暗号鍵を暗号化することによりデータ暗号鍵を保護するために、第2のワーカ・ノードのセキュア・エンクレーブに固有の第2のシーリング鍵を生成する。他の例示的な実施形態によれば、管理されたコンテナ環境における共有機密情報にアクセスするためのシステムおよびコンピュータ・プログラム製品が提供される。
さらなる別の例示的な実施形態によれば、暗号鍵オーケストレーションのためのコンピュータ実施方法が提供される。プロセッサのセットは、オープン・ソース・コンテナ・オーケストレーション・フレームワークのクラスタに、キー・オーケストレーション・エージェント(key orchestration agent)をもつワーカ・ノードを生成する。プロセッサのセットは、ワーカ・ノードのキー・オーケストレーション・エージェントを使用して、データ暗号鍵を生成する。プロセッサのセットは、キー・オーケストレーション・エージェントを使用して、第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つのコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用されるための命令を保持および格納することができる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストには、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的符号化デバイス、および前述のものの任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などのそれ自体一過性信号であると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(R)、C++などのようなオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令はコンピュータ、完全にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータでおよび部分的にリモート・コンピュータで、または完全にリモート・コンピュータもしくはサーバで実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよく、または外部コンピュータへの接続がなされてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照して本明細書に記載される。フローチャートまたはブロック図あるいはその両方の各ブロック、およびフローチャートまたはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実現され得ることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すように、コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を構成するように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定のやり方で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するように、コンピュータ実装プロセスをもたらすべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイスで一連の動作ステップを実行させるものであってもよい。
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関しては、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替の実施態様では、ブロックに記された機能は、図に記された順序から外れて行われてもよい。例えば、連続して示された2つのブロックは、実際には、1つのステップとして達成されてもよく、同時に、実質的に同時に、部分的にもしくは全体的に時間的にオーバラップする方法で実行されてもよく、またはブロックは、時には、関連する機能に応じて逆の順序で実行されてもよい。ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方のブロックの組合せは、指定された機能または動作を実行するかあるいは専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムで実施され得ることにも留意されたい。
次に、図を参照すると、特に、図1~図3を参照すると、例示的な実施形態を実施することができるデータ処理環境の図が提供される。図1~図3は、単に例として意図されており、異なる実施形態を実施することができる環境に関していかなる限定も主張または暗示するように意図されていないことを理解されたい。図示の環境に多くの変更を加えることができる。
図1は、例示的な実施形態を実施することができるデータ処理システムのネットワークの図的表現を示す。ネットワーク・データ処理システム100は、例示的な実施形態を実施することができる、コンピュータ、データ処理システム、および他のデバイスのネットワークである。ネットワーク・データ処理システム100はネットワーク102を含み、ネットワーク102は、ネットワーク・データ処理システム100内で一緒に接続されるコンピュータ、データ処理システム、および他のデバイスの間の通信リンクを設けるために使用される媒体である。ネットワーク102は、例えば、有線通信リンク、無線通信リンク、および光ファイバ・ケーブルなどの接続を含むことができる。
図示の例では、サーバ104およびサーバ106が、ストレージ108とともにネットワーク102に接続する。サーバ104およびサーバ106は、例えば、オープン・ソース・コンテナ・オーケストレーション・フレームワーク112のクラスタ110内のワーカ・ノードとすることができる。オープン・ソース・コンテナ・オーケストレーション・フレームワーク112は、例えば、Kubernetes管理コンテナ環境とすることができる。サーバ104およびサーバ106は、物理サーバまたは仮想サーバを表すことができる。加えて、サーバ104およびサーバ106は、ネットワーク102への高速接続を有し、1つまたは複数の分散型多層アプリケーションを使用して、例えば、イベント・モニタリング・サービス、金融サービス、銀行業務サービス、行政機関サービス、教育サービス、予約サービス、データ・サービスなどのようなサービスのセットをクライアント・デバイスに提供することができる。さらに、サーバ104およびサーバ106は、各々、1つまたは複数のクラウド環境におけるコンピューティング・ノードのクラスタを表すことができることに留意されたい。代替として、サーバ104およびサーバ106は、各々、1つまたは複数のデータ・センタにおけるサーバのクラスタを表すことができる。
クライアント114、クライアント116、およびクライアント118は、同様に、ネットワーク102に接続する。クライアント114、116、および118は、サーバ104およびサーバ106のクライアントである。この例では、クライアント114、116、および118は、ネットワーク102への有線通信リンクを有するデスクトップまたはパーソナル・コンピュータとして示されている。しかしながら、クライアント114、116、および118は、単に例であり、例えば、ネットワーク・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、スマートフォン、スマート・ウォッチ、スマート・テレビジョン、スマート家電、ゲーミング・デバイス、キオスクなどのような他のタイプのデータ処理システムを表すことができることに留意されたい。クライアント114、116、および118のユーザは、クライアント114、116および118を利用して、サーバ104およびサーバ106によって提供されるサービスにアクセスおよび利用することができる。
ストレージ108は、任意のタイプのデータを構造化フォーマットまたは非構造化フォーマットで格納することができるネットワーク・ストレージ・デバイスである。加えて、ストレージ108は、複数のネットワーク・ストレージ・デバイスを表すことができる。さらに、ストレージ108は、複数のサーバ、暗号鍵、暗号化データなどのための識別子およびネットワーク・アドレスを格納することができる。さらに、ストレージ108は、例えば、システム管理者およびユーザに関連するユーザ名、パスワード、およびバイオメトリック・データを含むことができる認証または資格データなどの他のタイプのデータを格納することができる。
加えて、ネットワーク・データ処理システム100は、任意の数の追加のサーバ、クライアント、ストレージ・デバイス、および図示されていない他のデバイスを含むことができることに留意されたい。ネットワーク・データ処理システム100に配置されたプログラム・コードは、コンピュータ可読ストレージ媒体に格納され、使用するためにコンピュータまたは他のデータ処理デバイスにダウンロードされる。例えば、プログラム・コードは、サーバ104のコンピュータ可読ストレージ媒体に格納され、クライアント114で使用するためにネットワーク102を介してクライアント114にダウンロードされる。
図示の例では、ネットワーク・データ処理システム100は、例えば、インターネット、イントラネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、電気通信ネットワーク、またはそれらの組合せなどのいくつかの異なるタイプの通信ネットワークとして実現することができる。図1は、単に一例として意図されており、異なる例示的な実施形態に対するアーキテクチャ限定として意図されていない。
次に図2を参照すると、データ処理システムの図が、例示的な実施形態に従って示される。データ処理システム200は、例示的な実施形態のプロセスを実施するコンピュータ可読プログラム・コードまたは命令を配置することができる、図1のサーバ104およびサーバ106などのコンピュータの一例である。データ処理システム200は、例えば、Kubernetesなどのオープン・ソース・コンテナ・オーケストレーション・フレームワークのワーカ・ノードのクラスタ内のワーカ・ノードであり得る。データ処理システム200は、データ処理システム200で使用するために利用可能なリソースのセットを含み制御する。この例示的な例では、データ処理システム200は、通信ファブリック202を含み、通信ファブリック202は、プロセッサ・ユニット204、メモリ206、永続的ストレージ(persistent storage)208、通信ユニット210、入力/出力(I/O)ユニット212、およびディスプレイ214の間の通信を行う。しかしながら、データ処理システム200は、単に一例として意図されており、図示されたものよりも多いまたは少ない構成要素を含むこともできることに留意されたい。
プロセッサ・ユニット204は、メモリ206にロードされるソフトウェア・アプリケーションおよびプログラムの命令を実行するように機能する。プロセッサ・ユニット204は、特定の実施態様に依って、1つまたは複数のハードウェア・プロセッサ・デバイスのセットとすることができ、またはマルチコア・プロセッサとすることができる。
メモリ206および永続的ストレージ208は、ストレージ・デバイスの例である。コンピュータ可読ストレージ・デバイスは、例えば、限定はしないが、データ、機能形態のコンピュータ可読プログラム・コード、または一過性的および/または永続的な他の適切な情報、あるいはその組合せなどの情報を格納することができる任意のハードウェアである。さらに、コンピュータ可読ストレージ・デバイスは、伝搬媒体を除外する。メモリ206は、これらの例では、例えば、ランダム・アクセス・メモリ(RAM)、または他の適切な揮発性もしくは不揮発性ストレージ・デバイスとすることができる。永続的ストレージ208は、特定の実施態様に応じて様々な形態をとることができる。例えば、永続的ストレージ208は、1つまたは複数のデバイスを含むことができる。例えば、永続的ストレージ208は、ハード・ディスク・ドライブ、ソリッド・ステート・ドライブ、フラッシュ・メモリ、書換可能な光ディスク、書換可能な磁気テープ、または上述のものの組合せとすることができる。永続的ストレージ208によって使用される媒体は、着脱可能とすることができる。例えば、着脱可能ハード・ドライブが、永続的ストレージ208のために使用されてもよい。
キー・オーケストレーション・エージェント218は、データ処理システム200のために、データ暗号鍵220、シーリング鍵222、およびシーリング鍵226などの暗号鍵を生成するプロセスを制御する。データ暗号鍵220は、アプリケーション228の機密アプリケーション・データ232を暗号化および解読するための暗号鍵である。シーリング鍵222は、キー・オーケストレーション・エージェント218に固有であり、シーリング鍵226はコンテナ224に固有である。各シーリング鍵は、例えば、データ処理システム200のプロセッサ・ユニット204などのハードウェアに基づくことができる。シーリング鍵222および226はキー暗号鍵である。言い換えれば、キー・オーケストレーション・エージェント218は、データ暗号鍵220のセキュリティおよび保護のためにデータ暗号鍵220をシールまたは暗号化するためにシーリング鍵222を使用する。
キー・オーケストレーション・エージェント218は、さらに、データ暗号鍵220の配布を、データ処理システム200内に作り出されたコンテナ224と調和させるプロセスを制御する。コンテナ224は、アプリケーション228に対応する1つまたは複数のワークロードのセットを実行するポッドなどの1つまたは複数のコンテナのセットを表す。キー・オーケストレーション・エージェント218は、ローカル認証プロセスを実行して、コンテナ224が、データ暗号鍵220をコンテナ224と共有する前に、認証された信頼できるコンテナであることを確認する。データ暗号鍵220を受け取った後、コンテナ224は、コンテナ224に固有のシーリング鍵226でデータ暗号鍵220をシールまたは暗号化する。コンテナ224は、データ暗号鍵220を利用して、アプリケーション228に対応する機密アプリケーション・データ232を暗号化および解読する。
キー・オーケストレーション・エージェント218は、さらに、データ暗号鍵220の配布を、1つまたは複数の他のデータ処理システムのセット(すなわち、クラスタ内の他のワーカ・ノードのセット)と調和させるプロセスを制御する。キー・オーケストレーション・エージェント218は、ローカル認証プロセスを実行して、他のワーカ・ノードのセットの各ワーカ・ノードが、データ暗号鍵220をクラスタのそれぞれのワーカ・ノードと共有する前に、認証された信頼できるワーカ・ノードであることを確認する。
アプリケーション228は、データ処理システム200のコンテナ224などのコンテナのセットで実行される分散型多層アプリケーションを表すことができる。アプリケーション228は、要求側クライアント・デバイスのためにサービスを実行する、例えば、銀行業務アプリケーション、金融アプリケーション、医療アプリケーション、保険アプリケーション、ビジネス・アプリケーション、エンターテインメント・アプリケーション、ゲーミング・アプリケーション、ストリーミング・データ・アプリケーションなどのような任意のタイプのソフトウェア・アプリケーションを表すことができる。
セキュア・エンクレーブ230は、アプリケーション228の機能の態様が保護されるメモリ206の暗号化されたセクションであり、機密アプリケーション・データ232を秘密におよび変更されないように保持する。機密アプリケーション・データ232は、アプリケーション228に対応する、個人ユーザ情報、医療記録、銀行残高、クレジットカード番号、社会保障番号、財務記録などのような任意のタイプの個人情報を表す。セキュア・エンクレーブ230はまた、シーリング鍵234を格納する。シーリング鍵234は、シーリング鍵222およびシーリング鍵226を表す。キー・オーケストレーション・エージェント218およびコンテナ224は、それぞれ、データ暗号鍵220をシールするために、必要なときにセキュア・エンクレーブ230からシーリング鍵222およびシーリング鍵226を取得する。
その結果として、データ処理システム200は、専用コンピュータ・システムとして動作し、データ処理システム200のキー・オーケストレーション・エージェント218は、データ処理システム200内の信頼できるコンテナ、および図1のクラスタ110などのクラスタ内の他の信頼できるワーカ・ノードとの暗号鍵オーケストレーションを可能にする。特に、キー・オーケストレーション・エージェント218は、キー・オーケストレーション・エージェント218を有していない現在利用可能な汎用コンピュータ・システムと比較して、データ処理システム200を専用コンピュータ・システムに変換する。
通信ユニット210は、この例では、図1のネットワーク102などのネットワークを介する他のコンピュータ、データ処理システム、およびデバイスとの通信を可能にする。通信ユニット210は、物理的通信リンクと無線通信リンクの両方を使用することによって通信を行うことができる。物理的通信リンクは、データ処理システム200のための物理的通信リンクを確立するために、例えば、ワイヤ、ケーブル、ユニバーサル・シリアル・バス、または他の物理的技術を利用することができる。無線通信リンクは、データ処理システム200の無線通信リンクを確立するために、例えば、短波、高周波、極超短波、マイクロ波、ワイヤレス・フィデリティ(Wi-Fi)、ブルートゥース(R)技術、広域自動車通信システム(GSM)、符号分割多元接続(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4Gロング・ターム・エボリューション(LTE)、LTEアドバンスト、第5世代(5G)、または任意の他の無線通信技術もしくは標準を利用することができる。
入力/出力ユニット212は、データ処理システム200に接続される他のデバイスとのデータの入出力を可能にする。例えば、入力/出力ユニット212は、キーパッド、キーボード、マウス、マイクロホン、または他の適切な入力デバイス、あるいはその組合せによりユーザ入力の接続を行うことができる。ディスプレイ214は、情報をユーザに表示するための機構を提供し、例えば、ユーザがユーザ・インタフェースによりオンスクリーン選択を行うかまたはデータを入力することを可能にするタッチ・スクリーン機能を含むことができる。
オペレーティング・システム、アプリケーション、またはプログラム、あるいはその組合せの命令は、通信ファブリック202によりプロセッサ・ユニット204と通信するメモリ206および永続的ストレージ208に配置され得る。この例示的な例では、命令は、永続的ストレージ208に機能形態で存在する。これらの命令は、プロセッサ・ユニット204で実行するためにメモリ206にロードされ得る。異なる実施形態のプロセスは、メモリ206などのメモリに配置されるコンピュータ実装命令を使用して、プロセッサ・ユニット204によって実行され得る。これらのプログラム命令は、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれ、それらは、プロセッサ・ユニット204のプロセッサによって読み込まれ実行され得る。プログラム命令は、異なる実施形態では、メモリ206または永続的ストレージ208などの様々な物理的コンピュータ可読ストレージ・デバイスで具現化され得る。
プログラム・コード236は、選択的に着脱可能なコンピュータ可読媒体238に機能形態で配置され、プロセッサ・ユニット204による実行のためにデータ処理システム200にロードまたは転送され得る。プログラム・コード236およびコンピュータ可読媒体238は、コンピュータ・プログラム製品240を形成する。1つの例では、コンピュータ可読媒体238は、コンピュータ可読ストレージ媒体242またはコンピュータ可読信号媒体244とすることができる。コンピュータ可読ストレージ媒体242は、例えば、永続的ストレージ208の一部であるハード・ドライブなどのストレージ・デバイスに転送するために、永続的ストレージ208の一部であるドライブまたは他のデバイスに挿入または配置される光ディスクまたは磁気ディスクを含むことができる。コンピュータ可読ストレージ媒体242はまた、データ処理システム200に接続されるハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの永続的ストレージの形態をとることができる。いくつかの場合には、コンピュータ可読ストレージ媒体242は、データ処理システム200から取り外すことができない。
代替として、プログラム・コード236は、コンピュータ可読信号媒体244を使用してデータ処理システム200に転送され得る。コンピュータ可読信号媒体244は、例えば、プログラム・コード236を含む伝搬されるデータ信号とすることができる。例えば、コンピュータ可読信号媒体244は、電磁信号、光信号、または他の適切なタイプの信号、あるいはその組合せとすることができる。これらの信号は、無線通信リンク、光ファイバ・ケーブル、同軸ケーブル、ワイヤ、または他の適切なタイプの通信リンク、あるいはその組合せなどの通信リンクを介して送信され得る。言い換えれば、通信リンクまたは接続あるいはその両方は、例示的な例では物理的または無線とすることができる。コンピュータ可読媒体はまた、プログラム・コードを含む通信リンクまたは無線伝送などの無形の媒体の形態をとることができる。
いくつかの例示的な実施形態では、プログラム・コード236は、データ処理システム200内で使用するために、コンピュータ可読信号媒体244を通して別のデバイスまたはデータ処理システムから永続的ストレージ208にネットワークを介してダウンロードされ得る。例えば、データ処理システムのコンピュータ可読ストレージ媒体に格納されているプログラム・コードは、データ処理システムからデータ処理システム200にネットワークを介してダウンロードされ得る。プログラム・コード236を提供するデータ処理システムは、サーバ・コンピュータ、クライアントコンピュータ、またはプログラム・コード236を格納および送信することができる他のデバイスとすることができる。
データ処理システム200について示された様々な構成要素は、異なる実施形態を実施することができる方法にアーキテクチャ上の限定を行うことを意図していない。異なる例示的な実施形態は、データ処理システム200で示されたものに加えて、またはその代わりに、構成要素を含むデータ処理システムで実施されてもよい。図2に示された他の構成要素は、図示の例示的な例と異なっていてもよい。異なる実施形態は、プログラム・コードを実行することができるハードウェア・デバイスまたはシステムを使用して実施されてもよい。1つの例として、データ処理システム200は、無機構成要素と統合された有機構成要素を含んでもよく、または人間を除いた有機構成要素で完全に構成されてもよく、あるいはその両方であってもよい。例えば、ストレージ・デバイスは、有機半導体で構成されてもよい。
別の例として、データ処理システム200のコンピュータ可読ストレージ・デバイスは、データを格納することができる任意のハードウェア装置である。メモリ206、永続的ストレージ208、およびコンピュータ可読ストレージ媒体242は、有形形態の物理的ストレージ・デバイスの例である。
別の例では、バス・システムが、通信ファブリック202を実現するために使用されてもよく、システム・バスまたは入力/出力バスなどの1つまたは複数のバスで構成されてもよい。当然、バス・システムは、バス・システムに取り付けられた様々な構成要素またはデバイス間でのデータの転送を可能にする適切なタイプのアーキテクチャを使用して実現され得る。追加として、通信ユニットは、データを送受信するために使用される1つまたは複数のデバイス、例えば、モデムまたはネットワーク・アダプタなどを含むことができる。さらに、メモリは、例えば、メモリ206、または通信ファブリック202に存在し得るインタフェースおよびメモリ・コントローラ・ハブに見いだされるものなどのキャッシュとすることができる。
例示的な実施形態は、オープン・ソース・コンテナ・オーケストレーション・フレームワークのインフラストラクチャにおける信頼できるコンテナとワーカ・ノードとの間の暗号鍵オーケストレーション・プロセスを使用して、動的な分散型オープン・ソース・コンテナ・オーケストレーション・フレームワーク内で機密アプリケーション・データを共有するという課題に対処する。オープン・ソース・コンテナ・オーケストレーション・フレームワークに「n」個のワーカ・ノードをもつクラスタがある場合、例示的な実施形態は、クラスタのすべてのワーカ・ノードが、データ暗号鍵を使用して機密アプリケーション・データを暗号化および解読することによって、セキュア・エンクレーブの内部の機密アプリケーション・データにアクセスできるようにする。例示的な実施形態は、信頼できる(すなわち、証明済みの)ワーカ・ノード間でデータ暗号鍵を共有する。各ワーカ・ノードは、所与のワーカ・ノードのセキュア・エンクレーブに固有のシーリング鍵でデータ暗号鍵を暗号化することによってデータ暗号鍵を保護する。この機構を利用することによって、例示的な実施形態は、ハードウェア(すなわち、ワーカ・ノードのプロセッサ)にセキュリティをタグづけするとともに、さらに、信頼できるワーカ・ノード間の鍵オーケストレーションの機構を提供する。
クラスタにワーカ・ノードを作り出す際に、ワーカ・ノードは、ワーカ・ノードのセキュア・エンクレーブで実行される機密アプリケーション・データを暗号化するためのデータ暗号鍵を生成する。ワーカ・ノードがクラスタの唯一のワーカ・ノードである場合、ワーカ・ノードに配置されたキー・オーケストレーション・ソフトウェアエージェント、例えば、デーモン・セットの「キー・オーケストレーション・デーモン」などが、データ暗号鍵を生成する。デーモン・セットは、特定のコンテナのインスタンスが、クラスタのワーカ・ノードのすべてでまたは選択されたもので実行されていることを保証する。デーモン・セットは、追加されたワーカ・ノードごとにコンテナを作り出し、ワーカ・ノードがクラスタから取り除かれるとガーベッジがコンテナを収集する。デーモン・セットは、例えば、クラスタ・ストレージ・デーモン、ログ・コレクタ・デーモン、モニタリング・デーモンなどのような他のデーモンを含むことができる。
ワーカ・ノードは、セキュア・エンクレーブ内で実行されている機密アプリケーション・データを、データ暗号化キーを用いて保護する。さらに、ワーカ・ノードは、ワーカ・ノードのプロセッサに由来するシーリング鍵を用いてデータ暗号化鍵をシールし、シーリング鍵をワーカ・ノードに固有のものにする。注意すべきは、セキュア・エンクレーブがシーリング鍵を取得できるのは、同じワーカ・ノードに限られるということである。言い換えれば、異なるワーカ・ノード上の同じセキュア・エンクレーブは、異なるシーリング鍵を持つことになる。
新しいワーカ・ノードがクラスタに作り出されると、新しいワーカ・ノードのソフトウェア・エージェント(例えば、キー・オーケストレーション・デーモン)は、クラスタの既存のワーカ・ノードとともにリモート認証を実行する。認証は、ソフトウェア実行ファイル(software executable)がプラットフォームで適切にインスタンス化されていることを示すプロセスである。認証により、リモート・パーティは、意図されたソフトウェアが、インテル(R)SGX対応プラットフォームのセキュア・エンクレーブ内で安全に実行されているという確信を得ることができる。認証は、アサーションで以下の情報、すなわち、1)証明されるソフトウェアのアイデンティティ、2)測定されていない状態の詳細(例えば、ソフトウェアが実行されているモード)、および3)ソフトウェアがそれ自体に関連づけるデータ、を伝える。認証に成功すると、新しいワーカ・ノードは、クラスタの既存のワーカ・ノードからデータ暗号鍵のコピーを受け取る。データ暗号鍵を受け取った後、新しいワーカ・ノードは、それ自体の固有のシーリング鍵でデータ暗号鍵をシールする。例示的な実施形態はまた、データ暗号鍵および暗号化データを含む共有データベースまたはデータ・ストアを利用することができる。信頼できる(すなわち、証明された)ワーカ・ノードのみが共有データベースにアクセスすることができる。
したがって、例示的な実施形態により、クラスタ内の異なるワーカ・ノードで分散アプリケーションを実行する異なるコンテナは、シーリング鍵で暗号化されたデータ暗号鍵を使用することによって、異なるコンテナ間で機密アプリケーション・データを共有することができる。各コンテナおよび各キー・オーケストレーション・エージェントは、それ自体の固有のシーリング鍵を有する。各キー・オーケストレーション・エージェントは、認証プロセスを実行する。その結果として、例示的な実施形態は、コンテナがワーカ・ノードのクラスタ内で移動する(例えば、作り出される、削除される、など)場合でさえ、機密アプリケーション・データが、信頼できる(すなわち、証明された)コンテナ間でのみ共有されることを保証する。さらに、例示的な実施形態は、例えば、ハード・ディスク、ファイル・ストレージなどのようないかなる形態のストレージにおいても機密アプリケーション・データを保護することができる。
したがって、例示的な実施形態は、オープン・ソース・コンテナ・オーケストレーション・フレームワーク内のコンテナ間で機密アプリケーション・データを共有することに関連する技術的問題を克服する1つまたは複数の技術的解決策を提供する。その結果として、これらの1つまたは複数の技術的解決策は、データ・セキュリティの分野での技術的な効果および実際の用途を提供する。
次に図3を参照すると、暗号鍵オーケストレーション・システムの一例を示す図が、例示的な実施形態に従って示される。暗号鍵オーケストレーション・システム300は、図1のネットワーク・データ処理システム100などのデータ処理システムのネットワークに実装され得る。暗号鍵オーケストレーション・システム300は、オープン・ソース・コンテナ・オーケストレーション・フレームワークのマルチノード・クラスタ内の信頼できるコンテナとノードとの間の暗号鍵オーケストレーションを提供するためのハードウェア・コンポーネントおよびソフトウェア・コンポーネントのシステムである。
この例では、暗号鍵オーケストレーション・システム300は、オープン・ソース・コンテナ・オーケストレーション・フレームワーク302、クラスタ304、およびデータベース306を含む。オープン・ソース・コンテナ・オーケストレーション・フレームワーク302、クラスタ304、およびデータベース306は、例えば、図1におけるオープン・ソース・コンテナ・オーケストレーション・フレームワーク112、クラスタ110、およびストレージ108とすることができる。しかしながら、代替の例示的な実施形態では、データベース306は、オープン・ソース・コンテナ・オーケストレーション・フレームワーク302の外部に遠く離れて配置されてもよいことに留意されたい。別の代替の例示的な実施形態では、データベース306はオプションである。
この例では、クラスタ304は、例えば、図1のサーバ104およびサーバ106などのワーカ・ノードA 308およびワーカ・ノードB 310を含む。しかしながら、クラスタ304は、任意の数のワーカ・ノードを含むことができることに留意されたい。ワーカ・ノードA 308およびワーカ・ノードB 310は、図1のネットワーク102などのネットワーク312を介して互いに通信する。
ワーカ・ノードA 308は、エージェントA 314およびコンテナ1 316を含む。同様に、ワーカ・ノードB 310は、エージェントB 318およびコンテナ2 320を含む。エージェントA 314およびエージェントB 318は、図2のキー・オーケストレーション・エージェント218と類似している。さらに、コンテナ1 316およびコンテナ2 320は、図2のコンテナ224と類似している。
エージェントA 314は、シーリング鍵A(SK-A)322およびデータ暗号鍵(DEK)324を含む。シーリング鍵A 322およびデータ暗号鍵324は、例えば、図2のシーリング鍵222およびデータ暗号鍵220とすることができる。シーリング鍵A 322は、エージェントA 314に固有である。エージェントA 314は、シーリング鍵A 322を使用してデータ暗号鍵324をシールする。
コンテナ1 316は、データ暗号鍵(DEK)326およびシーリング鍵1(SK-1)328を含む。シーリング鍵1 328は、コンテナ1 316に固有である。コンテナ1 316は、シーリング鍵1 328を使用してデータ暗号鍵326をシールする。コンテナ1 316のデータ暗号鍵326は、エージェントA 314のデータ暗号鍵324と同じであることに留意されたい。エージェントA 314は、コンテナ1 316がローカル認証330に基づいて信頼できるコンテナであると決定した後、データ暗号鍵324のコピーをコンテナ1 316と共有する。ローカル認証330は、ワーカ・ノードA 308で実行されているセキュア・エンクレーブ間のアサーションを提供する。言い換えれば、ワーカ・ノードA 308のセキュア・エンクレーブは、互いに認証を行うためにレポートを使用する。ローカル認証とリモート認証の両方について、アプリケーションの保護された部分が、セキュア・エンクレーブにロードされ、セキュア・エンクレーブは、アプリケーションのコードおよびデータを測定し、次いで、レポートを生成する。真正性を確立した後、セキュア・エンクレーブは、安全なチャネルを介して情報を交換する。
エージェントB 318は、シーリング鍵B(SK-B)332を含む。エージェントA 314のデータ暗号鍵324は、エージェントB 318のデータ暗号鍵334と同じであることに留意されたい。エージェントA 314は、リモート認証342に基づいてエージェントB 318が信頼できるキー・オーケストレーション・エージェントであると決定した後、データ暗号鍵324のコピーをエージェントB 318と共有する。リモート認証342は、エージェントA 314からエージェントB 318にアサーションを提供する。リモート認証では、エージェントA 314のセキュア・エンクレーブは、クォートをエージェントB 318に送る。次いで、エージェントB 318は、信頼できるプロセッサがクォートを生成したかどうかに関して検証を実行する。検証の際に、エージェントB 318は、エージェントA 314のセキュア・エンクレーブの真正性を信頼する。データ暗号鍵334を受け取った後、エージェントB 318は、エージェントB 318に固有のシーリング鍵B 332を使用して、データ暗号鍵334をシールする。
コンテナ2 320は、データ暗号鍵(DEK)336およびシーリング鍵2(SK-2)338を含む。シーリング鍵2 338は、コンテナ2 320に固有である。コンテナ2 320は、シーリング鍵2 338を使用してデータ暗号鍵336をシールする。コンテナ2 320のデータ暗号鍵336は、エージェントB 318のデータ暗号鍵334と同じであることに留意されたい。エージェントB 318は、ローカル認証340に基づいてコンテナ2 320が信頼できるコンテナであると決定した後、データ暗号鍵334のコピーをコンテナ2 320と共有する。ローカル認証340は、ローカル認証330と同様のローカル認証プロセスである。
コンテナ1 316およびコンテナ2 320は、それぞれのデータ暗号鍵を利用して、コンテナ1 316およびコンテナ2 320で実行されている分散アプリケーションに関連するワークロードに対応する機密アプリケーション・データを解読および暗号化する。オープン・ソース・コンテナ・オーケストレーション・フレームワーク302は、データベース306を利用して、例えば、暗号化データおよび暗号鍵を格納する。データベース306は、共有データベースである。
次に図4を参照すると、ワーカ・ノードと、ワーカ・ノードに作り出されたコンテナとの間の暗号鍵オーケストレーションのプロセスを示すフローチャートが、例示的な実施形態に従って示される。図4に示されたプロセスは、例えば、図1のオープン・ソース・コンテナ・オーケストレーション・フレームワーク112または図3のオープン・ソース・コンテナ・オーケストレーション・フレームワーク302などのオープン・ソース・コンテナ・オーケストレーション・フレームワークで実施され得る。
プロセスは、オープン・ソース・コンテナ・オーケストレーション・フレームワークの1つまたは複数のプロセッサのセットが、オープン・ソース・コンテナ・オーケストレーション・フレームワークに、キー・オーケストレーション・エージェントをもつワーカ・ノードを生成するときに開始する(ステップ402)。1つまたは複数のプロセッサのセットは、オープン・ソース・コンテナ・オーケストレーション・フレームワークの1つまたは複数のノードに配置され得る。加えて、プロセッサのセットは、ワーカ・ノードのキー・オーケストレーション・エージェントを使用して、データ暗号鍵を生成する(ステップ404)。さらに、プロセッサのセットは、キー・オーケストレーション・エージェントを使用して、キー・オーケストレーション・エージェントの固有のシーリング鍵をワーカ・ノードのセキュア・エンクレーブから取得する(ステップ406)。プロセッサのセットは、キー・オーケストレーション・エージェントの固有のシーリング鍵を使用して、データ暗号鍵をシールする(ステップ408)。
プロセッサのセットは、コンテナがワーカ・ノードに作り出されたかどうかに関して決定を行う(ステップ410)。コンテナがワーカ・ノードに作り出されておらず、ステップ410の出力が「いいえ」であるとプロセッサのセットが決定した場合、プロセスは、ステップ410に戻り、プロセッサのセットは、コンテナがワーカ・ノードに作り出されるのを待つ。コンテナがワーカ・ノードに作り出されており、ステップ410の出力が「はい」であるとプロセッサのセットが決定した場合、プロセッサのセットは、キー・オーケストレーション・エージェントを使用して、コンテナとともにローカル認証を実行し、コンテナの真正性を確立する(ステップ412)。
プロセッサのセットは、ローカル認証に基づいてコンテナが信頼できるかどうかに関して決定を行う(ステップ414)。ローカル認証に基づいてコンテナが信頼できないとプロセッサのセットが決定し、ステップ414の出力が「いいえ」である場合、プロセッサのセットは、コンテナによるデータ暗号鍵へのアクセスを拒否する(ステップ416)。その後、プロセスは終了する。
ローカル認証に基づいてコンテナが信頼できるとプロセッサのセットが決定し、ステップ414の出力が「はい」である場合、プロセッサのセットは、キー・オーケストレーション・エージェントを使用して、データ暗号鍵をコンテナと共有する(ステップ418)。さらに、プロセッサのセットは、コンテナと共有されたデータ暗号鍵を使用して、コンテナのワークロードに対応するデータを暗号化する(ステップ420)。さらに、プロセッサのセットは、ワーカ・ノードの識別子と、コンテナの固有のシーリング鍵でシールされたデータ暗号鍵とを共有データベースに格納する。(ステップ422)。その後、プロセスは終了する。
次に図5A~図5Bを参照すると、クラスタ内の既存のワーカ・ノードと新しく生成されたワーカ・ノードとの間の暗号鍵オーケストレーションのプロセスを示すフローチャートが、例示的な実施形態に従って示される。図5A~図5Bに示されたプロセスは、例えば、図1のオープン・ソース・コンテナ・オーケストレーション・フレームワーク112または図3のオープン・ソース・コンテナ・オーケストレーション・フレームワーク302などのオープン・ソース・コンテナ・オーケストレーション・フレームワークで実施され得る。
プロセスは、第1のキー・オーケストレーション・エージェントをもつ第1のワーカ・ノードがプロセッサのセットによってクラスタに生成された後、オープン・ソース・コンテナ・オーケストレーション・フレームワーク内の1つまたは複数のプロセッサのセットが、オープン・ソース・コンテナ・オーケストレーション・フレームワークのノード・クラスタ内に第2のキー・オーケストレーション・エージェントをもつ第2のワーカ・ノードを生成するときに開始する(ステップ502)。プロセッサのセットは、第2のワーカ・ノードの第2のキー・オーケストレーション・エージェントを使用して、第1のワーカ・ノードの第1のキー・オーケストレーション・エージェントとともにリモート認証を実行し、第2のキー・オーケストレーション・エージェントの真正性を確立する(ステップ504)。
プロセッサのセットは、リモート認証に基づいて第2のキー・オーケストレーション・エージェントが信頼できるかどうかに関して決定を行う。(ステップ506)。リモート認証に基づいて第2のキー・オーケストレーション・エージェントが信頼できないとプロセッサのセットが決定し、ステップ506の出力が「いいえ」である場合、プロセッサのセットは、第2のキー・オーケストレーション・エージェントによる第1のキー・オーケストレーション・エージェントのデータ暗号鍵へのアクセスを拒否する(ステップ508)。その後、プロセスは終了する。
リモート認証に基づいて第2のキー・オーケストレーション・エージェントが信頼できるとプロセッサのセットが決定し、ステップ506の出力が「はい」である場合、プロセッサのセットは、第1のワーカ・ノードの第1のキー・オーケストレーション・エージェントを使用して、第1のキー・オーケストレーション・エージェントのデータ暗号鍵を第2のキー・オーケストレーション・エージェントと共有する(ステップ510)。さらに、プロセッサのセットは、第2のキー・オーケストレーション・エージェントを使用して、第2のキー・オーケストレーション・エージェントの固有のシーリング鍵を第2のワーカ・ノードのセキュア・エンクレーブから取得する(ステップ512)。さらに、プロセッサのセットは、第2のキー・オーケストレーション・エージェントの固有のシーリング鍵を使用して、データ暗号鍵をシールする(ステップ514)。
プロセッサのセットは、コンテナが第2のワーカ・ノードに作り出されたかどうかに関して決定を行う(ステップ516)。コンテナが第2のワーカ・ノードに作り出されておらず、ステップ516の出力が「いいえ」であるとプロセッサのセットが決定した場合、プロセスは、ステップ516に戻り、プロセッサのセットは、コンテナが第2のワーカ・ノードに作り出されるのを待つ。コンテナが第2のワーカ・ノードに作り出されており、ステップ516の出力が「はい」であるとプロセッサのセットが決定した場合、プロセッサのセットは、第2のキー・オーケストレーション・エージェントを使用して、第2のワーカ・ノードのコンテナとともにローカル認証を実行し、コンテナの真正性を確立する(ステップ518)。
プロセッサのセットは、ローカル認証に基づいて第2のワーカ・ノードのコンテナが信頼できるかどうかに関して決定を行う(ステップ520)。ローカル認証に基づいて第2のワーカ・ノードのコンテナが信頼できないとプロセッサのセットが決定し、ステップ520の出力が「いいえ」である場合、プロセッサのセットは、第2のワーカ・ノードのコンテナによる第2のキー・オーケストレーション・エージェントのデータ暗号鍵へのアクセスを拒否する(ステップ522)。その後、プロセスは終了する。
ローカル認証に基づいて第2のワーカ・ノードのコンテナが信頼できるとプロセッサのセットが決定し、ステップ520の出力が「はい」である場合、プロセッサのセットは、第2のキー・オーケストレーション・エージェントを使用して、データ暗号鍵を第2のワーカ・ノードのコンテナと共有する(ステップ524)。加えて、プロセッサのセットは、第2のワーカ・ノードのコンテナと共有されたデータ暗号鍵を使用して、1つまたは複数のオペレーションのセットをデータに対して実行するために第1のワーカ・ノードにおける別のコンテナのワークロードに対応するデータを解読する(ステップ526)。オペレーションのセットは、例えば、作り出す、読み出す、更新する、および削除するオペレーションのうちの1つまたは複数を含むことができる。続いて、プロセッサのセットは、第2のワーカ・ノードのコンテナと共有されたデータ暗号鍵を使用して、オペレーションのセットを実行した後のデータを暗号化する(ステップ528)。さらに、プロセッサのセットは、第2のワーカ・ノードの識別子と、第2のワーカ・ノードのコンテナの固有のシーリング鍵でシールされたデータ暗号鍵とを共有データベースに格納する。(ステップ530)。その後、プロセスは終了する。
次に図6を参照すると、ワーカ・ノードのデータ暗号鍵を保護するためのプロセスを示すフローチャートが、例示的な実施形態に従って示される。図6に示されたプロセスは、例えば、図1のオープン・ソース・コンテナ・オーケストレーション・フレームワーク112または図3のオープン・ソース・コンテナ・オーケストレーション・フレームワーク302などのオープン・ソース・コンテナ・オーケストレーション・フレームワークで実施され得る。
プロセスは、オープン・ソース・コンテナ・オーケストレーション・フレームワークの複数のワーカ・ノードの各ワーカ・ノードが、データ暗号鍵を使用して、複数のワーカ・ノード内のセキュア・エンクレーブに配置された共有機密アプリケーション・データにアクセスするときに開始する(ステップ602)。加えて、複数のワーカ・ノードの各ワーカ・ノードは、それぞれのワーカ・ノードのセキュア・エンクレーブに固有のシーリング鍵を使用して、それぞれのワーカ・ノードごとのデータ暗号鍵を保護する(ステップ604)。その後、プロセスは終了する。
次に図7を参照すると、クラスタ内のワーカ・ノード間でデータ暗号鍵を共有するためのプロセスを示すフローチャートが、例示的な実施形態に従って示される。図7に示されたプロセスは、例えば、図1のオープン・ソース・コンテナ・オーケストレーション・フレームワーク112または図3のオープン・ソース・コンテナ・オーケストレーション・フレームワーク302などのオープン・ソース・コンテナ・オーケストレーション・フレームワークで実施され得る。
プロセスは、オープン・ソース・コンテナ・オーケストレーション・フレームワークが、オープン・ソース・コンテナ・オーケストレーション・フレームワークのクラスタに第1のワーカ・ノードを確立するときに開始する(ステップ702)。第1のワーカ・ノードは、データ暗号鍵を生成する(ステップ704)。加えて、第1のワーカ・ノードは、第1のシーリング鍵を使用してデータ暗号鍵を暗号化することによってデータ暗号鍵を保護するために、第1のワーカ・ノードのハードウェアに基づいて、第1のワーカ・ノードのセキュア・エンクレーブに固有の第1のシーリング鍵を生成する(ステップ706)。
続いて、第1のワーカ・ノードは、クラスタに第2のワーカ・ノードを作り出すことに依ってクラスタの第2のワーカ・ノードとともにリモート認証を実行する(ステップ708)。第1のワーカ・ノードは、リモート認証の正常な実行に際して、データ暗号鍵のコピーを第2のワーカ・ノードに提供する(ステップ710)。第2のワーカ・ノードは、第2のシーリング鍵を使用してデータ暗号鍵を暗号化することによってデータ暗号鍵を保護するために、第2のワーカ・ノードのハードウェアに基づいて、第2のワーカ・ノードのセキュア・エンクレーブに固有の第2のシーリング鍵を生成する(ステップ712)。その後、プロセスは終了する。
したがって、本発明の例示的な実施形態は、オープン・ソース・コンテナ・オーケストレーション・フレームワークのマルチノード・クラスタ内の信頼できるノードとコンテナとの間の暗号鍵オーケストレーションを提供するためのコンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム製品を提供する。本発明の様々な実施形態の説明は、例証の目的のために提示されたが、網羅的であることまたは開示された実施形態に限定されることを意図されていない。多くの変更および変形が、説明された実施形態の範囲および思想から逸脱することなく、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、もしくは市場で見られる技術に対する技術的な改善を最も良く説明するように、または本明細書で開示された実施形態を当業者が理解することができるように選ばれた。

Claims (15)

  1. 管理されたコンテナ環境における共有機密情報にアクセスするための方法であって、
    複数のワーカ・ノードの各ワーカ・ノードによって、データ暗号鍵を使用して、前記複数のワーカ・ノード内のセキュア・エンクレーブに配置された共有機密アプリケーション・データにアクセスすることと、
    前記複数のワーカ・ノードの各ワーカ・ノードによって、それぞれのワーカ・ノードの前記セキュア・エンクレーブに固有のシーリング鍵を使用して、それぞれのワーカ・ノードごとの前記データ暗号鍵を保護することと
    クラスタに第1のワーカ・ノードを確立することと、
    前記第1のワーカ・ノードによって、前記データ暗号鍵を生成することと、
    前記第1のワーカ・ノードによって、前記データ暗号鍵を保護するために前記第1のワーカ・ノードの前記セキュア・エンクレーブに固有の第1のシーリング鍵を生成することと、
    前記第1のワーカ・ノードによって、前記クラスタに第2のワーカ・ノードを作り出すことに応じて前記クラスタの前記第2のワーカ・ノードとともにリモート認証を実行することと、
    前記第1のワーカ・ノードによって、前記リモート認証の正常な実行に際して前記データ暗号鍵のコピーを前記第2のワーカ・ノードに提供することと
    を含む、方法。
  2. 前記第2のワーカ・ノードによって、第2のシーリング鍵を使用して前記データ暗号鍵を暗号化することにより前記データ暗号鍵を保護するために前記第2のワーカ・ノードの前記セキュア・エンクレーブに固有の前記第2のシーリング鍵を生成すること
    をさらに含む、請求項に記載の方法。
  3. 前記クラスタがオープン・ソース・コンテナ・オーケストレーション・フレームワークのクラスタであり、前記第1のワーカ・ノードが第1のキー・オーケストレーション・エージェントを有しており、
    前記データ暗号鍵を生成することが、前記第1のワーカ・ノードの前記第1のキー・オーケストレーション・エージェントを使用して、前記データ暗号鍵を生成することと、
    前記シーリング鍵は、前記第1のキー・オーケストレーション・エージェントを使用して、前記第1のワーカ・ノードのセキュア・エンクレーブから取得することと、
    前記第1のキー・オーケストレーション・エージェントの前記シーリング鍵を使用して、前記データ暗号鍵をシールすることと
    をさらに含む、請求項1記載の方法。
  4. コンテナが前記第1のワーカ・ノードに作り出されたかどうかを決定することと、
    コンテナが前記第1のワーカ・ノードに作り出されたという決定に応答して、前記第1のキー・オーケストレーション・エージェントを使用して、前記コンテナとともにローカル認証を実行して、前記コンテナの真正性を確立することと
    をさらに含む、請求項に記載の方法
  5. 前記ローカル認証に基づいて前記コンテナが信頼できるかどうかを決定することと、
    前記ローカル認証に基づいて前記コンテナが信頼できないという決定に応答して、前記コンテナによる前記データ暗号鍵へのアクセスを拒否することと
    をさらに含む、請求項に記載の方法
  6. 前記ローカル認証に基づいて前記コンテナが信頼できるという決定に応答して、前記第1のキー・オーケストレーション・エージェントを使用して、前記データ暗号鍵を前記コンテナと共有することと、
    前記コンテナと共有された前記データ暗号鍵を使用して、前記コンテナのワークロードに対応するデータを暗号化することと、
    前記第1のワーカ・ノードの識別子と、前記コンテナの固有のシーリング鍵でシールされた前記データ暗号鍵とを共有データベースに格納することと
    をさらに含む、請求項に記載の方法
  7. 第2のキー・オーケストレーション・エージェントをもつ第2のワーカ・ノードを前記クラスタ内に生成することと、
    前記第2のワーカ・ノードの前記第2のキー・オーケストレーション・エージェントを使用して、前記第1のワーカ・ノードの前記第1のキー・オーケストレーション・エージェントとともにリモート認証を実行して、前記第2のキー・オーケストレーション・エージェントの真正性を確立することと
    をさらに含む、請求項に記載の方法
  8. 前記リモート認証に基づいて前記第2のキー・オーケストレーション・エージェントが信頼できるかどうかを決定することと、
    前記リモート認証に基づいて前記第2のキー・オーケストレーション・エージェントが信頼できないという決定に応答して、前記第2のキー・オーケストレーション・エージェントによる前記第1のキー・オーケストレーション・エージェントの前記データ暗号鍵へのアクセスを拒否することと
    をさらに含む、請求項に記載の方法
  9. 前記リモート認証に基づいて前記第2のキー・オーケストレーション・エージェントが信頼できるという決定に応答して、前記第1のワーカ・ノードの前記第1のキー・オーケストレーション・エージェントを使用して、前記第1のキー・オーケストレーション・エージェントの前記データ暗号鍵を前記第2のキー・オーケストレーション・エージェントと共有することと、
    前記第2のキー・オーケストレーション・エージェントを使用して、前記第2のキー・オーケストレーション・エージェントの固有のシーリング鍵を前記第2のワーカ・ノードのセキュア・エンクレーブから取得することと、
    前記第2のキー・オーケストレーション・エージェントの前記固有のシーリング鍵を使用して、前記データ暗号鍵をシールすることと
    をさらに含む、請求項に記載の方法
  10. 機密アプリケーション・データは、コンテナが前記クラスタ内で移動する場合でさえ、信頼できるコンテナ間でのみ共有される、請求項に記載の方法
  11. 前記機密アプリケーション・データが、いかなる形態のストレージにおいても保護される、請求項10に記載の方法
  12. 請求項1~11の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
  13. 請求項12に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記録した、ストレージ媒体。
  14. 管理されたコンテナ環境における共有機密情報にアクセスするためのシステムであって、
    複数のワーカ・ノードであり、
    前記複数のワーカ・ノードの各ワーカ・ノードが、データ暗号鍵を使用して、前記複数のワーカ・ノード内のセキュア・エンクレーブに配置された共有機密アプリケーション・データにアクセスし、
    前記複数のワーカ・ノードの各ワーカ・ノードが、それぞれのワーカ・ノードの前記セキュア・エンクレーブに固有のシーリング鍵を使用して、それぞれのワーカ・ノードごとの前記データ暗号鍵を保護する、前記複数のワーカ・ノードと、
    第1のワーカ・ノードが、クラスタに確立され、
    前記第1のワーカ・ノードが、前記データ暗号鍵を生成し、
    前記第1のワーカ・ノードが、前記データ暗号鍵を保護するために前記第1のワーカ・ノードの前記セキュア・エンクレーブに固有の第1のシーリング鍵を生成し、
    前記第1のワーカ・ノードが、前記クラスタに第2のワーカ・ノードを作り出すことに応じて前記クラスタの前記第2のワーカ・ノードとともにリモート認証を実行し、
    前記第1のワーカ・ノードが、前記リモート認証の正常な実行に際して前記データ暗号鍵のコピーを前記第2のワーカ・ノードに提供すること
    を含む、システム。
  15. 前記第2のワーカ・ノードが、第2のシーリング鍵を使用して前記データ暗号鍵を暗号化することにより前記データ暗号鍵を保護するために、前記第2のワーカ・ノードの前記セキュア・エンクレーブに固有の前記第2のシーリング鍵を生成する、請求項14に記載のシステム。
JP2021575206A 2019-06-24 2020-06-10 管理されたコンテナ環境における共有機密情報へのアクセス方法、システム、プログラム Active JP7486530B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/449,904 US11044080B2 (en) 2019-06-24 2019-06-24 Cryptographic key orchestration between trusted containers in a multi-node cluster
US16/449,904 2019-06-24
PCT/EP2020/066133 WO2020260026A1 (en) 2019-06-24 2020-06-10 Cryptographic key orchestration between trusted containers in a multi-node cluster

Publications (3)

Publication Number Publication Date
JP2022537739A JP2022537739A (ja) 2022-08-29
JPWO2020260026A5 JPWO2020260026A5 (ja) 2022-11-22
JP7486530B2 true JP7486530B2 (ja) 2024-05-17

Family

ID=71094329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021575206A Active JP7486530B2 (ja) 2019-06-24 2020-06-10 管理されたコンテナ環境における共有機密情報へのアクセス方法、システム、プログラム

Country Status (12)

Country Link
US (1) US11044080B2 (ja)
EP (1) EP3987712A1 (ja)
JP (1) JP7486530B2 (ja)
KR (1) KR20220002616A (ja)
CN (1) CN113826352A (ja)
AU (1) AU2020305390B2 (ja)
BR (1) BR112021026146A2 (ja)
CA (1) CA3143383A1 (ja)
IL (1) IL288689B2 (ja)
MX (1) MX2021015223A (ja)
SG (1) SG11202110433SA (ja)
WO (1) WO2020260026A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4035035A4 (en) * 2019-09-25 2023-10-04 Commonwealth Scientific and Industrial Research Organisation CRYPTOGRAPHIC SERVICES FOR BROWSER APPLICATIONS
US11354151B2 (en) * 2020-02-12 2022-06-07 International Business Machines Corporation Hardware memory encryption and protection for containers
US11494219B2 (en) * 2020-02-26 2022-11-08 Red Hat, Inc. Encryption and remote attestation of containers
US20240022423A1 (en) * 2021-03-12 2024-01-18 Meta Platforms, Inc. Processing private information in a distributed enclave framework

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530961A (ja) 2009-12-22 2012-12-06 インテル・コーポレーション セキュアなアプリケーションの実行を提供する方法および装置
US20140108805A1 (en) 2012-10-12 2014-04-17 Ned M. Smith Technologies labeling diverse content
WO2019081348A1 (en) 2017-10-25 2019-05-02 International Business Machines Corporation VIRTUALIZATION OF CONTROL PLANE FUNCTION BASED ON A SECURE PROCESSOR IN CLOUD SYSTEMS

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005043802A1 (en) 2003-10-20 2005-05-12 Drm Technologies, Llc Securing digital content system and method
EP2874093A1 (en) * 2013-11-13 2015-05-20 Gemalto SA Method to protect a set of sensitive data associated to public data in a secured container
US9461821B1 (en) * 2014-06-30 2016-10-04 Emc Corporation System and method for key material protection on devices using a secret sharing scheme
EP3304322A4 (en) * 2015-06-05 2018-11-07 Nutanix, Inc. Optimizable full-path encryption in a virtualization environment
US10534724B2 (en) * 2015-12-24 2020-01-14 Intel Corporation Instructions and logic to suspend/resume migration of enclaves in a secure enclave page cache
US10523427B2 (en) * 2016-01-11 2019-12-31 Dell Products L.P. Systems and methods for management controller management of key encryption key
US10326744B1 (en) * 2016-03-21 2019-06-18 EMC IP Holding Company LLC Security layer for containers in multi-tenant environments
US10498726B2 (en) * 2016-03-22 2019-12-03 International Business Machines Corporation Container independent secure file system for security application containers
CN107959567B (zh) * 2016-10-14 2021-07-27 阿里巴巴集团控股有限公司 数据存储方法、数据获取方法、装置及系统
US11165565B2 (en) * 2016-12-09 2021-11-02 Microsoft Technology Licensing, Llc Secure distribution private keys for use by untrusted code
US11438155B2 (en) * 2017-01-24 2022-09-06 Microsoft Technology Licensing, Llc Key vault enclave
US10567359B2 (en) 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms
US10554634B2 (en) * 2017-08-18 2020-02-04 Intel Corporation Techniques for shared private data objects in a trusted execution environment
US10776459B2 (en) * 2017-12-07 2020-09-15 International Business Machines Corporation Facilitating build and deploy runtime memory encrypted cloud applications and containers
US11388272B2 (en) * 2018-03-30 2022-07-12 Intel Corporation Technologies for network packet processing between cloud and telecommunications networks
US10884814B2 (en) * 2018-09-28 2021-01-05 Intel Corporation Mobile edge-cloud security infrastructure
US11048800B2 (en) * 2018-12-17 2021-06-29 Intel Corporation Composable trustworthy execution environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530961A (ja) 2009-12-22 2012-12-06 インテル・コーポレーション セキュアなアプリケーションの実行を提供する方法および装置
US20140108805A1 (en) 2012-10-12 2014-04-17 Ned M. Smith Technologies labeling diverse content
WO2019081348A1 (en) 2017-10-25 2019-05-02 International Business Machines Corporation VIRTUALIZATION OF CONTROL PLANE FUNCTION BASED ON A SECURE PROCESSOR IN CLOUD SYSTEMS

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
阿佐 志保 ほか,なぜプログラマの役に立つのか いまはじめるDocker ~コンテナ技術を身につける~ 第2章,SoftwareDesign,日本,(株)技術評論社,2017年02月18日,通巻382号(発刊316号) ,pp. 24-29

Also Published As

Publication number Publication date
JP2022537739A (ja) 2022-08-29
IL288689B2 (en) 2024-06-01
EP3987712A1 (en) 2022-04-27
CN113826352A (zh) 2021-12-21
CA3143383A1 (en) 2020-12-30
MX2021015223A (es) 2022-01-18
IL288689A (en) 2022-02-01
AU2020305390B2 (en) 2023-07-13
IL288689B1 (en) 2024-02-01
WO2020260026A1 (en) 2020-12-30
KR20220002616A (ko) 2022-01-06
US11044080B2 (en) 2021-06-22
US20200403784A1 (en) 2020-12-24
SG11202110433SA (en) 2021-10-28
AU2020305390A1 (en) 2021-10-14
BR112021026146A2 (pt) 2022-02-08

Similar Documents

Publication Publication Date Title
US10277591B2 (en) Protection and verification of user authentication credentials against server compromise
US20220292180A1 (en) Systems and methods for offline usage of saas applications
JP7486530B2 (ja) 管理されたコンテナ環境における共有機密情報へのアクセス方法、システム、プログラム
US11558484B2 (en) Systems and methods for secure peer-to-peer caching
US11647025B2 (en) Systems and methods for continuous authentication
US10157290B1 (en) Systems and methods for encrypting files
US11323528B2 (en) Systems and methods for push notification service for SAAS applications
US11489660B2 (en) Re-encrypting data on a hash chain
CN111954879B (zh) 互不信任的飞地
US20210377315A1 (en) Systems and methods for responsible intermediation of privacy policies
US11550448B2 (en) Systems and methods for intellisense for SaaS application
US10462113B1 (en) Systems and methods for securing push authentications
WO2019040182A1 (en) SYSTEMS AND METHODS FOR ENCRYPTED FILES
US11228583B2 (en) Systems and methods for slogan based sharing of living SaaS objects

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221014

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240229

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: 20240423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240507

R150 Certificate of patent or registration of utility model

Ref document number: 7486530

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150