(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024054263
(43)【公開日】2024-04-16
(54)【発明の名称】クラウドベースの鍵管理
(51)【国際特許分類】
H04L 9/08 20060101AFI20240409BHJP
【FI】
H04L9/08 B
【審査請求】有
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024017791
(22)【出願日】2024-02-08
(62)【分割の表示】P 2020558424の分割
【原出願日】2019-05-15
(31)【優先権主張番号】201841023140
(32)【優先日】2018-06-21
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】16/269,736
(32)【優先日】2019-02-07
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ベパ,シリシュ・ブイ
(72)【発明者】
【氏名】ミシュラ,プラティーク
(72)【発明者】
【氏名】カティ,スリーダル
(72)【発明者】
【氏名】ラビ,バラナシ・クマール
(72)【発明者】
【氏名】ロックハート,ハロルド・ウィリアム
(72)【発明者】
【氏名】ケシャバ,ラケシュ
(57)【要約】 (修正有)
【課題】マルチテナントクラウドベースのシステムにおいて、鍵管理サービスによって暗号鍵を管理する方法及びシステムを提供する。
【解決手段】鍵管理サービスは、ラップされたデータ暗号鍵(DEK)の要求をクライアントから受け取り、ランダムキーを生成し、クライアントに対応する暗号化コンテキストをフェッチし、ランダムキーとラップされたDEKでエンコードされる暗号化コンテキストとを含むラップされたDEKを生成する。その後、鍵管理サービスは、ラップされたDEKをクライアントに返す。
【選択図】
図3
【特許請求の範囲】
【請求項1】
マルチテナントクラウドベースのシステムにおける暗号鍵を管理するための方法であって、
ラップされたデータ暗号鍵(Hardware Security Module:DEK)の要求をクライアントから受け取ることと、
ランダムキーを生成することと、
前記クライアントに対応する暗号化コンテキストをフェッチすることと、
前記ランダムキーと前記ラップされたDEKでエンコードされる前記暗号化コンテキストとを含む前記ラップされたDEKを生成することと、
前記ラップされたDEKを前記クライアントに返すことと、を含む方法。
【請求項2】
前記暗号化テキストは、前記クライアントのロケーション、前記クライアントのリージョン、および前記クライアントのテナントのうちの少なくとも一つを含む、請求項1に記載の方法。
【請求項3】
前記暗号化コンテキストは、追加の認証済みデータを含む、請求項1に記載の方法。
【請求項4】
前記ラップされたDEKは、ヘッダーを含み、
前記暗号化コンテキストは、前記ヘッダーでエンコードされる、請求項1に記載の方法。
【請求項5】
前記ラップされたDEKは、JavaScript Object Notation(JSON)Web Encryption(JWE)構造を含む、請求項1に記載の方法。
【請求項6】
前記ラップされたDEKをアンラップする要求を受け取ることと、
前記ラップされたDEKをパースすることと、
前記クライアントに基づく前記暗号化コンテキストを検証することと、
ハードウェアセキュリティモジュール(Hardware Security Module:HSM)にあるマスター暗号鍵(Master Encryption Key:MEK)を検証することと、
アンラップされたDEKを返すこととをさらに含む、請求項1に記載の方法。
【請求項7】
前記生成する前記ラップされたDEKは、初期化ベクトル(Initialization Vector:
IV)および認証タグ鍵をさらに含む、請求項1に記載の方法。
【請求項8】
前記要求は、リプリゼンテーショナルステートトランスファー(Representational State Transfer:REST)アプリケーションプログラムインターフェース(Application Program Interface:API)を含む、請求項1に記載の方法。
【請求項9】
プロセッサによって実行されると、前記プロセッサに、マルチテナントクラウドベースのシステムにおける暗号鍵を管理させる命令を記憶したコンピュータ可読媒体であって、
前記管理することは、
ラップされたデータ暗号鍵(DEK)の要求をクライアントから受け取ることと、
ランダムキーを生成することと、
前記クライアントに対応する暗号化コンテキストをフェッチすることと、
前記ランダムキーと前記ラップされたDEKでエンコードされる前記暗号化コンテキストとを含む前記ラップされたDEKを生成することと、
前記ラップされたDEKを前記クライアントに返すこととを含む、コンピュータ可読媒体。
【請求項10】
前記暗号化テキストは、前記クライアントのロケーション、前記クライアントのリージョン、および前記クライアントのテナントのうちの少なくとも一つを含む、請求項9に記載のコンピュータ可読媒体。
【請求項11】
前記暗号化コンテキストは、追加の認証済みデータを含む、請求項9に記載のコンピュータ可読媒体。
【請求項12】
前記ラップされたDEKは、ヘッダーを含み、
前記暗号化コンテキストは、前記ヘッダーでエンコードされる、請求項9に記載のコンピュータ可読媒体。
【請求項13】
前記ラップされたDEKは、JavaScript Object Notation(JSON)Web Encryption(JWE)構造を含む、請求項9に記載のコンピュータ可読媒体。
【請求項14】
前記管理することは、
前記ラップされたDEKをアンラップする要求を受け取ることと、
前記ラップされたDEKをパースすることと、
前記クライアントに基づく前記暗号化コンテキストを検証することと、
ハードウェアセキュリティモジュール(HSM)にあるマスター暗号鍵(MEK)を検証することと、
アンラップされたDEKを返すこととをさらに含む、請求項9に記載のコンピュータ可読媒体。
【請求項15】
前記生成する前記ラップされたDEKは、初期化ベクトル(IV)および認証タグ鍵をさらに含む、請求項9に記載のコンピュータ可読媒体。
【請求項16】
前記要求は、リプリゼンテーショナルステートトランスファー(REST)アプリケーションプログラムインターフェース(API)を含む、請求項9に記載のコンピュータ可読媒体。
【請求項17】
1つ以上のマイクロサービスを含む中間層と、
前記中間層に結合され、1つ以上のデータベースおよび1つ以上のハードウェアセキュリティモジュールを含むデータ層とを備え、
前記1つ以上のマイクロサービスは、
ラップされたデータ暗号鍵(DEK)の要求をクライアントから受け取り、
ランダムキーを生成し、
前記クライアントに対応する暗号化コンテキストをフェッチし、
前記ランダムキーと前記ラップされたDEKでエンコードされる前記暗号化コンテキストとを含む前記ラップされたDEKを生成し、
前記ラップされたDEKを前記クライアントに返す、マルチテナントクラウドベースの鍵管理システム。
【請求項18】
前記暗号化テキストは、前記クライアントのロケーション、前記クライアントのリージョン、および前記クライアントのテナントのうちの少なくとも一つを含む、請求項17に記載のマルチテナントクラウドベースの鍵管理システム。
【請求項19】
前記ラップされたDEKは、JavaScript Object Notation(JSON)Web Encryption(JWE)構造を含む、請求項17に記載のマルチテナントクラウドベースの鍵管理システム。
【請求項20】
前記1つ以上のマイクロサービスは、さらに、
前記ラップされたDEKをアンラップする要求を受け取り、
前記ラップされたDEKをパースし、
前記クライアントに基づく前記暗号化テキストを検証し、
ハードウェアセキュリティモジュール(HSM)にあるマスター暗号鍵(MEK)を検証し、
アンラップされたDEKを返す、請求項17に記載のマルチテナントクラウドベースの鍵管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
分野
一実施形態は、一般にクラウドベースのコンピュータシステムに向けられ、特にクラウドベースのコンピュータシステムにおける暗号鍵の管理に向けられる。
【背景技術】
【0002】
背景の情報
鍵管理サービス(Key Management Service:KMS)は、暗号システムにおける暗号鍵の管理を提供する。管理は、鍵の生成、交換、保存、使用、暗号シュレッディング(すなわち、破壊)、および置換の機能を含む。それは、暗号プロトコル設計、鍵サーバ、ユーザ手順、および他の関連するプロトコルを含む。
【0003】
KMS内の鍵は、データを暗号化および復号化し、データをそれが記憶された場所で保護するために使用される暗号素材を含む1つ以上の鍵バージョンを表す論理エンティティである。暗号化アルゴリズムの一部として処理されるとき、鍵は、暗号化中に平文をどのように暗号文に変換し、復号化中に暗号文をどのように平文に変換するかを指定する。KMSは、一般に、2種類の暗号鍵を認識する。それらは、マスター暗号鍵(Master Encryption Key:MEK)およびデータ暗号鍵(Data Encryption Key:DEK)である。KMSを使用してマスター暗号鍵を生成した後、ユーザは、KMSがユーザに返すデータ暗号鍵を生成するために、APIを使用することができる。KMSは生鍵およびラップされた鍵を返す。典型的には、ユーザは、ラップされた鍵のみを保存する。
【発明の概要】
【0004】
概要
実施形態は、マルチテナントクラウドベースのシステムにおける暗号鍵を管理することに向けられる。実施形態は、ラップされたデータ暗号鍵(DEK)の要求をクライアントから受け取る。実施形態は、ランダムキーを生成し、クライアントに対応する暗号化コンテキストをフェッチする。実施形態は、ランダムキーとラップされたDEKでエンコードされる暗号化コンテキストとを含むラップされたDEKを生成する。その後、実施形態は、ラップされたDEKをクライアントに返す。
【図面の簡単な説明】
【0005】
【
図1】本発明の実施形態によるKMSの高いレベルの概要を示す図である。
【
図2】本発明の一実施形態によるコンピュータサーバ/システムのブロック図である。
【
図3】一実施形態によるKMSによってラップされたDEKを生成するための機能のフロー図である。
【
図4】一実施形態によるKMSによってラップされたDEKをアンラップするための機能のフロー図である。
【発明を実施するための形態】
【0006】
詳細な説明
一実施形態は、ラップされたデータ暗号鍵(DEK)のヘッダーでエンコードされ、信頼できる属性として機能するカスタムタグおよび値を含めることによって、ラップされたDEKを生成する。その後、ラップされたDEKをアンラップする要求を受信したとき、または、そうでなければラップされたDEKへのアクセスを承認するときに、ポリシーの決定を実施することに、タグおよび値は、使用される。
【0007】
開示されるように、ラップされたDEKは、鍵管理サービス(KMS)によって要求者(たとえば、ユーザまはたアプリケーション)に発行される。ラップされたDEKは、ラップされたDEKをアンラップする目的で、後でKMSに返送される。要求者を承認する責任はKMSにある。しかしながら、クラウド環境において、ユーザ、アプリケーション、およびラップされたDEKの数は、非常に多くなる可能性がある。一例において、100万を超える可能性のあるラップされたDEKのKMSによるアクセスの承認を処理するための解決策が必要である。
【0008】
図1は、本発明の実施形態によるKMS70の高レベルの概要を示す。複数のKMSクライアント72は、1つ以上のウェブサーバ76からのリプリゼンテーショナルステートトランスファー(Representational State Transfer:REST)アプリケーションプロ
グラムインターフェース(Application Program Interface:API)を使用して、鍵を要
求する。鍵を要求してその鍵を利用できるクライアント72は、データベース81を含む。一実施形態では、データベース81は、テーブルおよびテーブルスペースに格納される機密データの暗号化を可能にする透過的データ暗号化(Transparent Data Encryption:
TDE)を含むオラクル社製のデータベースである。データが暗号化された後、このデー
タは、承認されたユーザまたはアプリケーションがこのデータにアクセスする際に、承認されたユーザまたはアプリケーション用に透過的に復号される。本実施形態では、データベース81は、KMS-DBエージェント85を含む。他の要求クライアント72は、ク
ラウド環境内の様々なクラウドサービス82、様々なカスタマーアプリケーション83、またはアカウント管理者によって操作される管理コンソール84を含むことができる。
【0009】
一実施形態では、1つ以上のウェブサーバ76はクラウドベースのサーバである。実施形態では、ウェブサーバ76は、クロスドメインアイデンティティ管理(System for Cross-Domain Identity Management:SCIM)のためのREST API75ベースのシステムを公開する中間層コンポーネント76によって実装される。一実施形態では、中間層76は、データ層92と通信するステートレスマイクロサービスのセットを含む。
【0010】
一実施形態では、中間層76を実装することができるマイクロサービスは、独立して配備可能なサービスである。一実施形態では、「マイクロサービス」という用語は、複雑なアプリケーションが言語に依存しないAPIを使用して互いに通信する小さな独立したプロセスから構成される、ソフトウェアアーキテクチャ設計パターンを考慮している。一実施形態では、マイクロサービスは、小型で高度に切り離されたサービスであり、各々は、小型タスクを行うことに焦点を当てるであろう。一実施形態では、マイクロサービスアーキテクチャスタイルは、単一のアプリケーションを1組の小さなサービスとして開発するため、それぞれがそれ自体のプロセスで実行するため、および軽量メカニズム(例えば、
ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol:HTTP)リソースA
PI)と通信するためのアプローチである。一実施形態では、マイクロサービスは、同じ
機能の全部または多くを実行するモノリシックサービスと比較して、置換しやすい。さらに、各マイクロサービスは、他のマイクロサービスに悪影響を及ぼすことなく更新されるであろう。対照的に、モノリシックサービスの一部分への更新は、モノリシックサービスの他の部分に望ましくないまたは意図しない否定的な影響を与えるかもしれない。一実施形態では、マイクロサービスは、それらの能力の周辺において有益に編成されるであろう。一実施形態では、マイクロサービスのコレクションのそれぞれに対する起動時間は、それらのマイクロサービスのすべてのサービスを集合的に実行する単一のアプリケーションに対する起動時間よりもはるかに短い。いくつかの実施形態では、そのようなマイクロサービスの各々に対する起動時間は、約1秒以下であるが、そのような単一アプリケーションの起動時間は、約1分、数分、またはそれより長いかもしれない。
【0011】
一実施形態では、中間層76などのマイクロサービスアーキテクチャは、サービス指向アーキテクチャ(Service Oriented Architecture:SOA)が柔軟で独立して配備可能な
ソフトウェアシステムを構築するための専門化(すなわち、システム内のタスクの分離)手法および実装手法を指す。マイクロサービスアーキテクチャにおけるサービスは、目的を果たすためにネットワークを介して互いに通信するプロセスである。一実施形態では、これらのサービスは、技術に捕らわれないプロトコルを使用する。一実施形態では、それらのサービスは、小さい粒度を有し、かつ、軽量プロトコルを使用する。一実施形態では、それらのサービスは独立して配備可能である。システムの機能を異なる小さなサービスに分散させることによって、システムのコヒージョンが増強され、システムの結合が低減される。これにより、システムの変更、ならびにシステムへの機能および品質の追加をいつでも容易に行うことができる。また、これは、連続的なリファクタリングを通じて、個々のサービスのアーキテクチャが出現することを可能にし、それゆえ、大きなアップフロント設計の必要性を低減するとともにソフトウェアを早期かつ連続的にリリースすることを可能にする。
【0012】
一実施形態では、マイクロサービスアーキテクチャにおいて、アプリケーションは、サービスのコレクションとして開発され、各サービスは、それぞれのプロセスを実行し、軽量プロトコルを使用して通信する(例えば、各マイクロサービスに固有のAPI)。マイクロサービスアーキテクチャにおいて、個々のサービス/能力へのソフトウェアの分解は、
提供されるサービスに応じて異なるレベルの粒度で行われてもよい。サービスは、ランタイムコンポーネント/プロセスである。各マイクロサービスは、他のモジュール/マイクロサービスと対話することができる自己内蔵モジュールである。各マイクロサービスは、他のマイクロサービスによってコンタクトされ得る、アンネームドユニバーサルポートを有する。一実施形態では、マイクロサービスのアンネームドユニバーサルポートは、マイクロサービスが慣習によって(たとえば、従来のHTTPポートとして)公開し、同じサービス内の任意の他のモジュール/マイクロサービスがマイクロサービスと対話することを可
能にする標準通信チャネルである。マイクロサービスまたは任意の他の自己内蔵型機能モジュールは、一般的に「サービス」と称され得る。
【0013】
データ層92は、ハードウェアセキュリティモジュール(Hardware Security Module:
HSM)94およびデータベース95を含む。HSMは、強力な認証のためにデジタル鍵
を保護および管理するとともに暗号処理を提供する物理的なコンピューティングデバイスである。これらのモジュールは、従来より、コンピュータまたはネットワークサーバに直接取り付けられるプラグインカードまたは外部装置の形態をとる。MEKはHSM94内に常駐し、HSM94はMEKに関わる暗号サービスを提供する。アプリケーション鍵およびすべてのメタデータは、データベース95内に格納される。中間層76およびデータ層92のすべての構成要素は、いくつかの実施形態では、高可用性(High Availability
:HA)および災害時リカバリー(Disaster Recovery:DR)を伴って実装される。
【0014】
一実施形態では、中間層76およびデータ層92は、オラクル社製のマルチテナント、クラウドスケール、アイデンティティアクセスマネジメント(Identity Access Management:IAM)プラットフォームであるアイデンティティクラウドサービス(Identity Cloud Service:IDCS)によって提供される認証サービスによって実装される。IDCSは、認証、承認、監査、およびフェデレーションを提供する。IDCSは、パブリッククラウド上で動作するカスタムアプリケーションおよびサービスへのアクセス、ならびにオンプレミスシステムを管理する。代替または追加の実施形態では、IDCSはまた、公衆クラウドサービスへのアクセスを管理することもできる。例えば、IDCSは、様々なサービス/アプリケーション/システムにわたってシングルサインオン(Single Sign On:SSO)機能を提供するために利用され得る。ユーザおよびクライアントは、最初にIDCSに対して認証し、KMSへのアクセスに適したトークンを獲得しなければならない。境界認証
は、IDCSクラウドゲートによって実施される。KMS APIへの細やかなアクセス
は、クライアントと管理者とを区別するために使用される適切な範囲および役割を有する認証モジュールによって実施される。IDCSのさらなる詳細は、米国特許9,838,376に開示されており、その開示は参照により本明細書に組み込まれる。
【0015】
図2は、本発明の一実施形態によるコンピュータサーバ/システム10のブロック図で
ある。単一のシステムとして示されているが、システム10の機能は、分散システムとして実装することができる。さらに、本明細書で開示される機能は、ネットワーク上で互いに接続され得る個別のサーバまたはデバイス上で実装され得る。さらに、システム10の1つ以上の構成要素は含まれなくてもよい。たとえば、サーバの機能のために、システム10は、プロセッサおよびメモリを含む必要があり得るが、キーボードまたはディスプレイなど、
図2に示される他の構成要素のうちの1つ以上を含まなくてもよい。システム10の全部または一部は、いくつかの実施形態では、
図1に示される構成要素のいずれかまたは全てを実装するために使用されてもよい。
【0016】
システム10は、情報を通信するためのバス12または他の通信メカニズムと、情報を処理するためにバス12に接続されたプロセッサ22とを含む。プロセッサ22は、汎用または専用プロセッサのいずれのタイプとしてもよい。システム10は、情報およびプロセッサ22によって実行されるべき命令を記憶するためのメモリ14をさらに含む。メモリ14は、ランダムアクセスメモリ(Random Access Memory:RAM)、読み取り専用メモリ(Read Only Memory:ROM)、磁気もしくは光ディスクなどの静的な記憶装置、または任意の他のタイプのコンピュータ可読媒体のうちの任意の組み合わせから構成され得る。システム10は、ネットワークへのアクセスを提供するための、ネットワークインターフェースカードなどの通信デバイス20をさらに含む。したがって、ユーザは、直接、またはネットワークまたは任意の他の方法を介してリモートで、システム10とインターフェース接続することができる。
【0017】
コンピュータ可読媒体は、プロセッサ22によってアクセスされ得る任意の利用可能な媒体であってよく、揮発性媒体および不揮発性媒体の両方、取り外し可能媒体および取り外し不能媒体の両方、ならびに通信媒体を含む。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波若しくは他のトランスポートメカニズムなどのような、変調されたデータ信号中の他のデータを含んでもよく、任意の情報配信媒体を含む。
【0018】
プロセッサ22は、バス12を介して液晶ディスプレイ(Liquid Crystal Display:L
CD)などのディスプレイ24にさらに接続される。キーボード26およびコンピュータ
マウスなどのカーソル制御装置28は、ユーザがシステム10とインターフェース接続できるようにバス12にさらに接続される。
【0019】
一実施形態では、メモリ14は、プロセッサ22によって実行されると機能を提供するソフトウェアモジュールを記憶する。モジュールは、システム10のオペレーティングシステム機能を提供するオペレーティングシステム15を含む。モジュールは、KMS機能、および本明細書で開示される他のすべての機能を提供するKMSモジュール16をさらに含む。システム10は、より大きなシステムの一部とすることができる。したがって、システム10は、上述したIDCS機能などの追加機能を含むための1つ以上の追加機能モジュール18を含むことができる。データベース17は、モジュール16および18のためのセントラライズドストレージを提供するとともに、キー、パスワードなどを格納するためにバス12に接続される。一実施形態では、データベース17は、格納されたデータを管理するために構造化クエリ言語(Structured Query Language:SQL)を使用する
ことができるリレーショナルデータベース管理システム(Relational Database Managemen
t System:RDBMS)である。
【0020】
ラップされたDEKのアンラッピングに関連して、既知のKMS解決策は、認証および承認を、追加の認証済みデータ(Additional Authenticated Data:AAD)として知ら
れているユーザ指定の属性に利用する。AADは、Galois/Counter Mode(GCM)など
の認証暗号化モードの機能である。GCMにおいて、暗号化されたすべてのデータもまた、保護された(すなわち、認証された)インテグリティである。インテグリティが保護される(すなわち、認証される)べきであるが暗号化されていない他のデータをAADと呼ぶ。
【0021】
しかしながら、既知の解決策では、ユーザ指定の属性は、外部ソースから一般的に受信され、要求者によって明示的に指定されなければならない。たとえば、アマゾン社製の「AWS KMS」では、ラップされたデータフォーマットが使用され、暗号化コンテキス
トのエンコードであり、ラップされたデータフォーマットにはないAADの結果をアンラップに含めることができる。任意のAADは、アンラッププロセスでラップされたDEKとともにREST APIにパラメータとして提供(すなわち、オペレータ制御)される
必要がある。
【0022】
同様に、グーグル社製の「Cloud KMS」では、ファイルが暗号化されたときに
追加の認証データが使用されたのであれば、暗号文が復号化されたときに(すなわち、ラップされた鍵そのものが提供されることなく)、同じ追加の認証データが指定されなければならない、ということをユーザは指示される。
【0023】
既知の解決策とは対照的に、実施形態は、ラップされたデータ暗号鍵から黙示的に得られる信頼できる属性を用いてデータ暗号鍵へのアクセスを最適化することによって、ラップされたDEKの承認要求の有効性を改善する。具体的には、実施形態では、ラップされたDEKは、たとえば、https://tools.ietf.org/html/rfc7516で開示されている、標準
のJavaScript Object Notation(JSON)Web Encryption(JWE)構造によって表される。実施形態は、カスタム属性をラップされた/暗号化されたフォーマットでエンコードする。さらに、カスタムタグおよび値は、ラップされたDEKのJWE保護されたヘッダーにセットされる。ラップされたDEKへのアクセスを実施するためにユーザおよびグループの情報を利用することに加えて、ラップされたDEKでエンコードされたタグおよび値もまた使用される。要求者は、タグを明示的に指定する必要はない。代わりに、タグは、ラップされたDEKから黙示的に取得される。タグは、ラップされたDEKに追加的な承認を実施するために用いられる。
【0024】
KMSの実施形態によってラップされたDEKが構成されると、必要なタグ/値はラップされたDEKでエンコードされる。したがって、セットされたタグ/値は、信頼できる機関によってセットされたと見なすことができる。
【0025】
KMSの実施形態によってセットされたタグは、次のようなポリシーの決定を実施するために使用される:
● 所与の顧客/テナンシー用に製造(または要求)されたDEKは、IDCSのようなクラウドベースの環境において、異なる顧客/テナンシーによってアンラップされない。
● 所与のデータセンターのアプリケーションまたは管理者は、同じデータセンターで作成されて提供された、ラップされたデータの暗号化を管理できる。
● 世界中の多くの政府が施行を始めたデータの支配権、居住、およびローカリゼーションのルールの尊厳を保証および順守するため、ラップされたDEKは、同じ法域でのみアンラップされる必要がある。
【0026】
実施形態では、要求されたポリシー方針を示すラップされたDEKにタグ/値を組み込むことによってホリシーの決定は実施される。タグ/値としてのラップされたDEKに、ポリシーの識別子または手引きは追加で埋め込まれ得る。
【0027】
運用時に、承認の決定のために、実施形態は、ラップされたDEKからタグ情報をフェッチし、ユーザがどこからログインしているかといったことや、ユーザが所有するグループまたは管理者の特権のような、ユーザに属するタグ情報と比較する。十分に一致する場合、承認の決定は成功し、アンラッピングが許可される。
【0028】
ラップされたDEKへのアクセスを承認することを目的としたタグの組み込みおよび黙示的なフェッチングは、既存の解決策に対する技術的改善である。
【0029】
実施形態では、REST API /admin/v1/DataEncryptionKeyGeneratorを使用してDEKを
作成するときに、ラップされたDEKは、応答としてクライアント/ユーザに返される。DEKのアンラッピングは、HSM94(MEKが格納されている場所)によって実行される一方、ラップされたDEKのフォーマットはKMSの実施形態によって定義される。
【0030】
ロールベースアクセス制御(Role Based Access Control:RBAC)および上述した
ような属性の使用に加えて、実施形態を使用する細かなアクセスは、ラップされたDEKに黙示的に組み込まれたタグ(および値)を利用する。
【0031】
実施形態では、以下の追加のタグが、生成されたラップされたDEKに組み込まれ得る:
● "urn:opc:kms:regionID": "uscom-central-1"
● "urn:opc:kms:locationID": "uscom"
● "urn:opc:kms:siID": "FF91E56E58F34CB8A806A86137966627"
【0032】
「SIID」とは、IDCSのようなマルチテナント鍵管理クラウドソリューションでテナント(すなわち、ストライプ(stripe)またはスプライス(splice))を識別するサービスインスタンス識別子を示す。提示された(ラップされたDEK入力ペイロードから)SIIDが現在の実行コンテキスト(すなわち、要求が向けられた場所)のSIIDと異なる場合、ラップされたDEKは誤った顧客テナンシーで提示される。従って、要求は拒否される。
【0033】
IDCSおよびオラクルパブリッククラウドは、リージョンおよび利用可能なドメイン内にホストされる。リージョンはローカライズされた地理的領域であり、利用可能なドメインはリージョン内にある1つ以上のデータセンターである。リージョンは、いくつかの利用可能なドメインから構成される。ほとんどのリソースは、仮想クラウドネットワークのような固有のリージョンであるか、またはコンピュートインスタンスのような利用可能な固有のドメインである。
【0034】
ラップされた鍵に組み込まれた「regionID」は、リージョンに相当する。ロケーションは、リージョンの集合である。データ権限は、リージョンおよびロケーションと一致する場合と一致しない場合とがある。しかしながら、リージョンからデータ権限を導くために、外部ポリシーマッピングが考案され得る。従って、いくつかの実施形態では、鍵が製造された場所および鍵が要求/アクセスされている場所を追跡することは重要である。
【0035】
実施形態では、実際の属性(およびそれらの値)は、実質的に問題ではない。以下に示
すように、タグの検証はラップされたDEKをアンラップする前に行われるため、タグの検証は最適である。
【0036】
実施形態は、要求者がラップされたDEKのアンラップを承認するか否かの承認決定評価を最適化するための既知の解決策を、承認決定に寄与し得るラップされたDEKに組み込まれた属性を利用することによって改善する。これらのリソース属性(すなわち、ラップされたDEKからの属性)をフェッチするための追加のステップは、それがすでにリソースに存在するため不要である。これは、それ自体が最適化である。さらに、ラップされたDEKのアンラップは、HSMによって実行される暗号集約型操作である。アンラップ以前にタグを検証することによって、実施形態は、KMSインスタンスにラップされたDEKを誤って示したかどうかを判断できる。これは、さらなる最適化である。
【0037】
実施形態は、ラップされたDEKを表し、オープンで相互運用可能なDEK表現構成をKMSに提供するためにJWEを使用する。任意のタグ/値は、JWEでエンコードされ得る。タグは、ラップされたDEKを識別するために使用できる。加えて、組み込まれたタグ/値は、ラップされたDEKの操作にアクセス制御を実施するために使用される。実施形態は、ラップされたDEKへのアクセスを実施するために、ラップされたDEKから(組み込まれたタグから)承認情報を黙示的に導く。
【0038】
ラップされたDEKは、A256GCM暗号化(ラッピングアルゴリズム)とともにDEKの暗号化に使用されるMEK(保護されたヘッダーの子)を参照する自己記述型のエンベロープデータ構造である。構造は、JSON Web Encryption(JWE)構造である。実
施形態では、ラップされたデータ暗号鍵およびアンラップされたデータ暗号鍵(生鍵)のフォーマットは、以下の通りである:
【0039】
【0040】
図3は、一実施形態による、KMSによってラップされたDEKを生成するための機能のフロー図である。実施形態では、
図3の機能は、
図2のKMSモジュール16によって、または
図1の中間層76およびデータ層92によって実装される。一実施形態では、図
3(および以下の
図4)のフロー図の機能は、メモリまたは他のコンピュータ可読媒体もしくは有形媒体に記憶されたソフトウェアによって実装され、プロセッサによって実行される。他の実施形態では、機能は、ハードウェア(例えば、特定用途向け集積回路(AS
IC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などの使用を通じて)、またはハードウェアとソフトウェアとの任意の組合せ
によって提供され得る。
【0041】
302において、ラップされたDEKの要求がクライアントから受信され、サービスインスタンス用の(マルチテナントの実施形態では)生DEKが受信される。一般的に、生DEKは、アンラップされた鍵であり、メタデータまたはその他の情報は添付されていない。実施形態では、要求はREST APIを介して受信される。実施形態では、クライ
アントは、IDCSまたは別のタイプのクラウドサービスといったマルチテナントサービスの一部である。
【0042】
304において、ランダムキー「K」が生成される。
【0043】
306において、リージョンID(複数の地理的リージョンを有する実施形態では)を含むAAD情報(または、より一般的には、「暗号化コンテキスト」)、サービスIDおよびロケーションIDはフェッチされる。ロケーションIDは、実施形態では、クライアントが要求を行っている場所を示す。
【0044】
308において、304のランダムキーおよび306のAAD情報を用いて、ラップされたDEKが生成される。
【0045】
310において、保護されたヘッダー、暗号化された鍵、初期化ベクトル(Initialization Vector:IV)、および認証タグを含むJWE応答が生成される。IVは、ランダ
ムで予測不可能な値であり、隠されたものではなく、各暗号化の開始時に使用される。認証付き暗号モード(たとえば、GCM)における認証タグは、データが何かしらの方法で変更されたかどうかを判断するためのチェックサムを行うための値である。データが変更されていなければ、送信タグと計算タグとは同じでなければならない。タグは、暗号化データおよびAADの両方を保護する。
【0046】
312において、ラップされたDEKと生DEKは、応答でクライアントに返される。
【0047】
図4は、一実施形態によるKMSによってラップされたDEKをアンラップするための機能のフロー図である。実施形態では、
図4の機能は、
図2のKMSモジュール16によって、または
図1の中間層76およびデータ層92によって実装される。
【0048】
402において、(マルチテナントの実施形態では)サービスインスタンス用に、ラップされたDEKをアンラップするための要求が受信される。実施形態では、要求は、REST APIを介して受信され、ラップされたDEKはJWEの形式である。
【0049】
404において、JWE形式でのラップされたDEKがパースされる。
【0050】
406において、パースステータスが失敗した場合、機能は終了し、エラーメッセージが出力される。入力において構文エラーがあった場合にパースステータスが失敗する。
【0051】
408において、AADの詳細は、410以降の以下の機能で検証される。リージョンID、サービスID、およびロケーションIDなどの値は、実施形態では、クラウドベースのシステムにおいて顧客区分がセットアップされるときに管理上割り当てられる定義さ
れたリージョン、サービスまたはロケーションのリストにこれらの値が現れるかどうかを決定することによって検証される。
【0052】
410において、リージョンIDが検証される。有効でない場合、機能は終了し、エラーメッセージが出力される。
【0053】
412において、サービスIDが検証される。有効でない場合、機能は終了し、エラーメッセージが出力される。
【0054】
414において、ロケーションIDが検証される。有効でない場合、機能は終了し、エラーメッセージが出力される。
【0055】
416において、HSMにあるMEKは検証される。有効でない場合、機能は終了し、エラーメッセージが出力される。
【0056】
418において、HSMはラップされたDEK、IVおよびAADを用いてラップされたDEKをアンラップする。したがって、実施形態におけるすべての検証は、ラップされたDEKがアンラップされる(すなわち、ラップされた鍵が復号化される)前に行われる。
【0057】
420において、アンラップされた生鍵は、クライアントに返される。
【0058】
上記開示されるように、実施形態はAADのリージョンID、サービスIDおよびロケーションIDの値を使用するが、要求を検証することに役立つことができる他の任意のタグ/値/パラメータを使用できる。ラップされた鍵は、生成時にAAD領域に格納された適切な値を有する。これらの値は、隠されたものではないが、AADにあるため、調べることなく、これらの値を変更することはできない。鍵がアンラップされて使用されるときに、「正しい」値が、設定データから判断され、AADに格納された値と比較される。それらが一致しない場合、鍵は使用できない。
【0059】
異なるポリシーは、どのアイテムが必要で、何が一致する必要があるかを判断できる。ラップされた鍵を所持するものは誰でもAAD領域を読み取ることができるため、これは主に設定エラーを検出するためのものである。しかしながら、APIが、実行されるチェックと、構成された値の取得元とを制御する場合、これはセキュリティ対策として機能し、鍵が誤ったコンテキストで使用されることを防ぐことができる。
【0060】
開示されるように、実施形態は、鍵のヘッダーに組み込まれたAADを有するラップされたDEKを生成した。ラップされたDEKをアンラップする要求を受信したときに、組み込まれたAADは、KMSによる検証に使用される。したがって、外部AADは必要ない。
【0061】
いくつかの実施形態が、本明細書で具体的に例示および/または説明される。しかしな
がら、開示された実施形態の修正および変形は、本発明の思想および意図された範囲から逸脱することなく、上記教示によって、および添付のクレームの範囲内に含まれることが理解されるであろう。
【手続補正書】
【提出日】2024-03-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
マルチテナントクラウドベースのシステムにおける暗号鍵を管理するための方法であって、
ラップされたデータ暗号鍵(Data Encryption Key:DEK)のラップ要求をクライアントから受け取ることと、
ランダムキーを生成することと、
前記クライアントに対応する追加の認証データ(Additional Authentication Data:AAD)をフェッチすることとを含み、前記AADは、前記クライアントの第1ロケーションと、前記マルチテナントクラウドベースのシステムの第1テナンシーとを含み、前記方法は、さらに、
前記ランダムキーと、ラップされた前記DEKのフォーマットでエンコードされた前記AADとを含むラップされた前記DEKを生成することを含み、ラップされた前記DEKは、ヘッダーを含み、前記AADは、前記ヘッダーにおいてエンコードされ、前記方法は、さらに、
ラップされた前記DEKを前記クライアントに返すことと、
ラップされた前記DEKをアンラップするためのアンラップ要求を前記クライアントから受け取ることとを含み、前記アンラップ要求は、前記クライアントが前記アンラップ要求を行う第2ロケーションを含み、前記マルチテナントクラウドベースのシステムの第2テナンシーに宛てられ、
前記DEKをアンラップする前に、前記ヘッダーにおいてエンコードされた前記AADを用いて、前記第1ロケーションを前記第2ロケーションと比較し、前記第1テナンシーを前記第2テナンシーと比較して、ラップされた前記DEKをアンラップすることを前記クライアントが承認されているかどうかを判断することと、
前記第1ロケーションが前記第2ロケーションと一致し、前記第1テナンシーが前記第2テナンシーと一致した場合、前記DEKをアンラップすることとをさらに含む、方法。
【請求項2】
ラップされた前記DEKにタグを埋め込むことをさらに含み、前記タグは、アンラップするための前記アンラップ要求に応じてポリシーの決定を実施するために使用される、請求項1に記載の方法。
【請求項3】
ラップされた前記DEKは、JavaScript Object Notation(JSON)Web Encryption(JWE)構造を含む、請求項1または2に記載の方法。
【請求項4】
ラップされた前記DEKをアンラップするための前記アンラップ要求を受け取ることと、
ラップされた前記DEKをパースすることと、
エンコードされた前記AADを検証することと、
ハードウェアセキュリティモジュール(Hardware Security Module:HSM)にあるマスター暗号鍵(Master Encryption Key:MEK)を検証することと、
アンラップされたDEKを返すこととをさらに含む、請求項1~3のいずれかに記載の方法。
【請求項5】
前記生成するラップされた前記DEKは、初期化ベクトル(Initialization Vector:IV)および認証タグ鍵をさらに含む、請求項1~4のいずれかに記載の方法。
【請求項6】
前記アンラップ要求は、リプリゼンテーショナルステートトランスファー(Representational State Transfer:REST)アプリケーションプログラムインターフェース(Application Program Interface:API)を含む、請求項1~5のいずれかに記載の方法。
【請求項7】
前記タグは、サービスインスタンス識別子を含む、請求項2に記載の方法。
【請求項8】
プロセッサによって実行されると、前記プロセッサに、請求項1~7のいずれかに記載の方法を実行させるプログラム。
【請求項9】
マルチテナントクラウドベースの鍵管理システムであって、
1つ以上のマイクロサービスを含む中間層を備え、前記1つ以上のマイクロサービスの各々は、命令を実行するハードウェアプロセッサを含み、前記マルチテナントクラウドベースの鍵管理システムは、さらに、
前記中間層に結合され、1つ以上のデータベースおよび1つ以上のハードウェアセキュリティモジュールを含むデータ層を備え、
前記1つ以上のマイクロサービスは、
ラップされたデータ暗号鍵(Data Encryption Key:DEK)のラップ要求をクライアントから受け取り、
ランダムキーを生成し、
前記クライアントに対応する追加の認証データ(Additional Authentication Data:AAD)をフェッチし、前記AADは、前記クライアントの第1ロケーションと、前記マルチテナントクラウドベースのシステムの第1テナンシーとを含み、前記1つ以上のマイクロサービスは、さらに、
前記ランダムキーと、ラップされた前記DEKのフォーマットでエンコードされる前記AADとを含むラップされた前記DEKを生成し、ラップされた前記DEKは、ヘッダーを含み、前記AADは、前記ヘッダーにおいてエンコードされ、前記1つ以上のマイクロサービスは、さらに、
ラップされた前記DEKを前記クライアントに返し、
ラップされた前記DEKをアンラップするためのアンラップ要求を前記クライアントから受け取り、前記アンラップ要求は、前記クライアントが前記アンラップ要求を行う第2ロケーションを含み、前記マルチテナントクラウドベースのシステムの第2テナンシーに宛てられ、前記1つ以上のマイクロサービスは、さらに、
前記DEKをアンラップする前に、前記ヘッダーにおいてエンコードされた前記AADを用いて、前記第1ロケーションを前記第2ロケーションと比較し、前記第1テナンシーを前記第2テナンシーと比較して、ラップされた前記DEKをアンラップすることを前記クライアントが承認されているかどうかを判断し、
前記第1ロケーションが前記第2ロケーションと一致し、前記第1テナンシーが前記第2テナンシーと一致した場合、前記DEKをアンラップする、マルチテナントクラウドベースの鍵管理システム。
【請求項10】
ラップされた前記DEKは、JavaScript Object Notation(JSON)Web Encryption(JWE)構造を含む、請求項9に記載のマルチテナントクラウドベースの鍵管理システム。
【請求項11】
前記1つ以上のマイクロサービスは、さらに、
ラップされた前記DEKをアンラップするための前記アンラップ要求を受け取り、
ラップされた前記DEKをパースし、
エンコードされた前記AADを検証し、
ハードウェアセキュリティモジュール(Hardware Security Module:HSM)にあるマスター暗号鍵(Master Encryption Key:MEK)を検証し、
アンラップされたDEKを返す、請求項9または10に記載のマルチテナントクラウドベースの鍵管理システム。
【請求項12】
前記生成するラップされた前記DEKは、初期化ベクトル(Initialization Vector:IV)および認証タグ鍵をさらに含む、請求項9~11のいずれかに記載のマルチテナントクラウドベースの鍵管理システム。
【請求項13】
前記アンラップ要求は、リプリゼンテーショナルステートトランスファー(Representational State Transfer:REST)アプリケーションプログラムインターフェース(Application Program Interface:API)を含む、請求項9~12のいずれかに記載のマルチテナントクラウドベースの鍵管理システム。
【請求項14】
前記1つ以上のマイクロサービスは、さらに、ラップされた前記DEKにタグを埋め込み、前記タグは、アンラップするための前記アンラップ要求に応じてポリシーの決定を実施するために使用される、請求項9~13のいずれかに記載のマルチテナントクラウドベースの鍵管理システム。
【外国語明細書】