(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-04
(54)【発明の名称】APIおよび暗号化鍵のシークレット管理システムおよび方法
(51)【国際特許分類】
G06F 21/62 20130101AFI20220225BHJP
G06F 21/78 20130101ALI20220225BHJP
H04L 47/125 20220101ALI20220225BHJP
H04L 49/113 20220101ALI20220225BHJP
【FI】
G06F21/62 318
G06F21/78
H04L47/125
H04L49/113
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021543323
(86)(22)【出願日】2020-01-22
(85)【翻訳文提出日】2021-09-17
(86)【国際出願番号】 US2020014641
(87)【国際公開番号】W WO2020159774
(87)【国際公開日】2020-08-06
(32)【優先日】2019-01-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521325710
【氏名又は名称】セラー・ドア・メディア・エルエルシー・ディービーエー・ロッカー
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】クリストファー・タイツェル
(72)【発明者】
【氏名】タイナー・フジモト
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA15
5K030KA02
5K030LE03
5K030MD02
(57)【要約】
シークレットフロー、シークレットの取り出し、およびシークレットの複製を容易にする、1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポートシステムおよび方法を提供する。本方法は、2つ以上の管轄の境界を定義することであって、各管轄が独立したマスターレコードを有し、各管轄が2つ以上の領域を含む、定義することと、2つ以上の領域内でプライマリ領域を定義することと、プライマリ領域内の、シークレットのプライマリソースであるマスターレコードハードウェアセキュリティモジュールにアクセスすることと、第2の領域を定義することと、第2の領域内の、マスターレコードハードウェアセキュリティモジュールからのシークレットのデータバックアップが作成される場所である、バックアップレコードハードウェアセキュリティモジュールにアクセスすることと、マスターレコードハードウェアセキュリティモジュールから、複数の異なる会社のマルチテナントシークレット管理を同時にサポートするバックアップレコードハードウェアセキュリティモジュールへのライブレプリケーションを実行することと、を含む。
【特許請求の範囲】
【請求項1】
1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポートシステムであって、前記システムが、
1つ以上のプロセッサと、一組の命令を格納しているメモリデバイスとを含むサーバを備え、前記一組の命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、
構成要素のより大きな機能的グループである2つ以上の管轄の境界を定義することであって、各管轄が独立したマスターレコードを有し、各管轄が2つ以上の領域を含む、定義することと、
前記2つ以上の領域内でプライマリ領域を定義することと、
前記プライマリ領域内の、その管轄のシークレットのプライマリストレージであるマスターレコードハードウェアセキュリティモジュールにアクセスすることであって、前記マスターレコードハードウェアセキュリティモジュールが、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードであり、前記シークレットに対する前記動作が、作成動作、更新動作、および削除動作のうちの1つ以上を含む、アクセスすることと、
前記プライマリ領域ではない、1つ以上のセカンダリ領域を定義することと、
前記1つ以上のセカンダリ領域内の、前記マスターレコードハードウェアセキュリティモジュールからの前記シークレットのデータバックアップが作成される場所であるバックアップレコードハードウェアセキュリティモジュールにアクセスすることと、
前記マスターレコードハードウェアセキュリティモジュールから、複数の異なる会社のマルチテナントシークレット管理を同時にサポートする前記バックアップレコードハードウェアセキュリティモジュールへのライブレプリケーションを実行することと、
前記2つ以上の領域の各々の、前記バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信するプライマリキャッシュハードウェアセキュリティモジュールにアクセスすることと、
前記2つ以上の領域の各々の、ハードウェアセキュリティモジュールキャッシュプールにアクセスすることであって、前記ハードウェアセキュリティモジュールキャッシュプールが、領域内のトラフィックの必要性に応じて前記プライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である、アクセスすることと、
管轄内の前記2つ以上の領域の各々の、ソフトウェアコンテナのクラスタ、および前記ソフトウェアコンテナが利用可能であり適切に動作していることを保証するソフトウェアコンテナ管理システムにアクセスすることと、
ソフトウェアコンテナにおける値の要求を受信することであって、領域のクラスタ内の前記ソフトウェアコンテナからの前記値の要求が、すべての読み出し動作について、前記プライマリキャッシュハードウェアセキュリティモジュールと前記ハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される、受信することと、を行わせ、
存在しない値が要求された場合に、前記システムが前記値の発信元の管轄を調べ、前記要求の発信元の管轄と異なりかつ許容される場合は、前記発信元の管轄に前記値を要求し、次に前記値が、前記要求が発信された前記領域の前記プライマリキャッシュハードウェアセキュリティモジュールにキャッシュされ、次に前記値がライブレプリケーションを介して前記ハードウェアセキュリティモジュールキャッシュプールに配布される、システム。
【請求項2】
前記管轄が、地政学的境界に基づいて定義され、前記地政学的境界が、国、国の連合、または国のグループを含み、前記管轄が、領域を編成するように任意に定義され基づき、単一のグループ、会社、または企業に結合されているシークレットを保持し、前記領域が、前記管轄のうちの1つの中にある地域的方角または国を含む、現実世界の境界によって定義され、前記領域が、同一のクラウドプロバイダ、異なるクラウドプロバイダ、オンプレミスシステム、およびプライベートクラウドのうちの1つ以上に包含された完全に固有のデータセンターに基づき、セカンダリ領域が、プライマリ領域全体が利用可能ではなくなった場合に高い可用性を提供する、請求項1に記載のシステム。
【請求項3】
前記マスターレコードが、すべての書き込み動作が発生する場所である、請求項1に記載のシステム。
【請求項4】
緊急事態の間を除いて、前記マスターレコードに対する読み出し動作は発生しない、請求項1に記載のシステム。
【請求項5】
前記バックアップレコードハードウェアセキュリティモジュールが、データベースロックが発生する可能性を低減または排除するために、前記マスターレコードハードウェアセキュリティモジュールへの負荷を可能な限り低く保持する、請求項1に記載のシステム。
【請求項6】
前記プライマリキャッシュハードウェアセキュリティモジュールが、その対応する領域内のすべてのキャッシュされた値のプライマリレプリケーションソースとして機能する、請求項1に記載のシステム。
【請求項7】
前記システムが、前記複製された値を前記管轄間で安全に配布して要求の遅延を低減し、前記複製された値を前記プライマリキャッシュハードウェアセキュリティモジュールおよびハードウェアセキュリティモジュールキャッシュプールを介して配布し、一方で前記対応する管轄の前記マスターレコードハードウェアセキュリティモジュールが常に元の値を包含する、請求項1に記載のシステム。
【請求項8】
前記2つ以上の領域の各々がデータベースクラスタを含み、前記データベースクラスタのうちの1つが前記プライマリとして指定され、データが前記プライマリデータベースクラスタに格納され、前記プライマリデータベースクラスタから、前記データが分散レプリカデータベースにグローバルに複製される、請求項1に記載のシステム。
【請求項9】
前記プライマリデータベースクラスタに格納される前記データが、前記システムで管理される前記シークレットのメタデータであり、前記メタデータが、名前、内部名、バージョン番号、発信元の管轄、および前記値が配布され得る場所を保護するセキュリティポリシーのうちの1つ以上を含む、請求項8に記載のシステム。
【請求項10】
前記メタデータを単一のエンティティとして格納するのではなく、前記データが、メタデータエンティティを構築するためにレンダリングされるイベントのストリームとして格納される、請求項8に記載のシステム。
【請求項11】
前記イベントのストリームが、ミューテーション動作の実行を引き起こすすべてのイベントの永続的な監査ログを提供する、請求項10に記載のシステム。
【請求項12】
前記永続的な監査ログ内のイベントが、異常およびセキュリティの問題について機械学習を使用して分析される、請求項11に記載のシステム。
【請求項13】
クライアントがユーザによって作成され、鍵束に結合されるが、特定の環境の値への前記クライアントのアクセスを制限し、これにより本番値および開発値が交差しないことを保障する、請求項1に記載のシステム。
【請求項14】
前記クライアントが、前記特定の環境に結合されている、請求項13に記載のシステム。
【請求項15】
異なる種類の特定の環境が、本番、ステージング、テスト、および開発を含む、請求項13に記載のシステム。
【請求項16】
すべての領域が、前記領域内の前記構成要素のすべてを包含するプライベートサブネットを含み、前記領域のうちの1つ内の他のすべてのシステムが、様々なアベイラビリティーゾーン内のプライベートサブネットに配置されており、これにより、インターネットへの外部接続を介した直接接触のいずれの可能性も排除する、請求項1に記載のシステム。
【請求項17】
領域間のすべての通信および管轄間の通信は、暗号化された接続によって処理される、請求項1に記載のシステム。
【請求項18】
1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポート方法であって、前記方法が、
構成要素のより大きな機能的グループである2つ以上の管轄の境界を定義することであって、各管轄が独立したマスターレコードを有し、各管轄が2つ以上の領域を含む、定義することと、
前記2つ以上の領域内でプライマリ領域を定義することと、
前記プライマリ領域内の、その管轄のシークレットのプライマリストレージであるマスターレコードハードウェアセキュリティモジュールにアクセスすることであって、前記マスターレコードハードウェアセキュリティモジュールが、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードであり、前記シークレットに対する前記動作が、作成動作、更新動作、および削除動作のうちの1つ以上を含む、アクセスすることと、
前記プライマリ領域ではない、1つ以上のセカンダリ領域を定義することと、
前記1つ以上のセカンダリ領域内の、前記マスターレコードハードウェアセキュリティモジュールからの前記シークレットのデータバックアップが作成される場所である、バックアップレコードハードウェアセキュリティモジュールにアクセスすることと、
前記マスターレコードハードウェアセキュリティモジュールから、複数の異なる会社のマルチテナントシークレット管理を同時にサポートする前記バックアップレコードハードウェアセキュリティモジュールへのライブレプリケーションを実行することと、
前記2つ以上の領域の各々の、前記バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信するプライマリキャッシュハードウェアセキュリティモジュールにアクセスすることと、
前記2つ以上の領域の各々の、ハードウェアセキュリティモジュールキャッシュプールにアクセスすることであって、前記ハードウェアセキュリティモジュールキャッシュプールが、領域内のトラフィックの必要性に応じて前記プライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である、アクセスすることと、
管轄内の前記2つ以上の領域の各々の、ソフトウェアコンテナのクラスタ、および前記ソフトウェアコンテナが利用可能であり適切に動作していることを保証するソフトウェアコンテナ管理システムにアクセスすることと、
ソフトウェアコンテナにおける値の要求を受信することであって、領域のクラスタ内の前記ソフトウェアコンテナからの前記値の要求が、すべての読み出し動作について、前記プライマリキャッシュハードウェアセキュリティモジュールと前記ハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される、受信することと、を含み、
存在しない値が要求された場合に、前記システムが前記値の発信元の管轄を調べ、前記要求の発信元の管轄と異なりかつ許容される場合は、前記発信元の管轄に前記値を要求し、次に前記値が、前記要求が発信された前記領域の前記プライマリキャッシュハードウェアセキュリティモジュールにキャッシュされ、次に前記値がライブレプリケーションを介して前記ハードウェアセキュリティモジュールキャッシュプールに配布される、方法。
【請求項19】
前記管轄が、地政学的境界に基づいて定義され、前記地政学的境界が、国、国の連合、または国のグループを含み、前記管轄が、領域を編成するように任意に定義され基づき、単一のグループ、会社、または企業に結合されているシークレットを保持し、前記領域が、前記管轄のうちの1つの中にある地域的方角または国を含む、現実世界の境界によって定義され、前記領域が、同一のクラウドプロバイダ、異なるクラウドプロバイダ、オンプレミスシステム、およびプライベートクラウドのうちの1つ以上に包含された完全に固有のデータセンターに基づき、セカンダリ領域が、プライマリ領域全体が利用可能ではなくなった場合に高い可用性を提供する、請求項18に記載の方法。
【請求項20】
前記マスターレコードが、すべての書き込み動作が発生する場所である、請求項18に記載の方法。
【請求項21】
緊急事態の間を除いて、前記マスターレコードに対する読み出し動作は発生しない、請求項18に記載の方法。
【請求項22】
前記バックアップレコードハードウェアセキュリティモジュールが、データベースロックが発生する可能性を低減または排除するために、前記マスターレコードハードウェアセキュリティモジュールへの負荷を可能な限り低く保持する、請求項18に記載の方法。
【請求項23】
前記プライマリキャッシュハードウェアセキュリティモジュールが、その対応する領域内のすべてのキャッシュされた値のプライマリレプリケーションソースとして機能する、請求項18に記載の方法。
【請求項24】
前記方法が、前記複製された値を前記管轄間で安全に配布して要求の遅延を低減し、前記複製された値を前記プライマリキャッシュハードウェアセキュリティモジュールおよびハードウェアセキュリティモジュールキャッシュプールを介して配布し、一方で前記対応する管轄の前記マスターレコードハードウェアセキュリティモジュールが常に元の値を包含する、請求項18に記載の方法。
【請求項25】
1つの領域がプライマリデータベースクラスタで指定され、データが前記プライマリデータベースクラスタに格納され、前記プライマリデータベースクラスタから、前記データが各領域に配置された分散レプリカデータベースにグローバルに複製される、請求項18に記載の方法。
【請求項26】
前記プライマリデータベースクラスタに格納される前記データが、前記システムで管理される前記シークレットのメタデータであり、前記メタデータが、名前、内部名、バージョン番号、発信元の管轄、および前記値が配布され得る場所を保護するセキュリティポリシーのうちの1つ以上を含む、請求項25に記載の方法。
【請求項27】
前記メタデータを単一のエンティティとして格納するのではなく、前記データが、メタデータエンティティを構築するためにレンダリングされるイベントのストリームとして格納される、請求項25に記載のシステム。
【請求項28】
前記イベントのストリームが、ミューテーション動作の実行を引き起こすすべてのイベントの永続的な監査ログを提供する、請求項27に記載のシステム。
【請求項29】
前記永続的な監査ログ内のイベントが、異常およびセキュリティの問題について機械学習を使用して分析される、請求項28に記載のシステム。
【請求項30】
クライアントがユーザによって作成され、鍵束に結合されるが、特定の環境の値への前記クライアントのアクセスを制限し、これにより本番値および開発値が交差しないことを保障する、請求項18に記載のシステム。
【請求項31】
前記クライアントが、前記特定の環境に結合されている、請求項30に記載の方法。
【請求項32】
異なる種類の特定の環境が、本番、ステージング、テスト、および開発を含む、請求項30に記載の方法。
【請求項33】
すべての領域が、前記領域内の前記構成要素のすべてを包含するプライベートサブネットを含み、前記領域のうちの1つ内の他のすべてのシステムが、様々なアベイラビリティーゾーン内のプライベートサブネットに配置されており、これにより、インターネットへの外部接続を介した直接接触のいずれの可能性も排除する、請求項18に記載の方法。
【請求項34】
領域間のすべての通信および管轄間の通信が、暗号化された接続によって処理される、請求項23に記載の方法。
【請求項35】
1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポートシステムであって、前記システムが、
構成要素のより大きな機能グループである2つ以上の管轄であって、各管轄が独立したマスターレコードを有し、各管轄が少なくともプライマリ領域およびセカンダリ領域をさらに含む2つ以上の領域を含む、2つ以上の管轄と、
その管轄のシークレットのプライマリストレージである、前記プライマリ領域に含まれるマスターレコードハードウェアセキュリティモジュールであって、前記マスターレコードハードウェアセキュリティモジュールが、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードであり、シークレットに対する前記動作は、作成動作、更新動作、および削除動作のうちの1つ以上を含む、マスターレコードハードウェアセキュリティモジュールと、
前記プライマリ領域ではない1つ以上のセカンダリ領域に含まれるバックアップレコードハードウェアセキュリティモジュールであって、複数の異なる会社のマルチテナントシークレット管理を同時にサポートする前記マスターレコードハードウェアセキュリティモジュールからライブレプリケーションを受信し、前記バックアップレコードハードウェアセキュリティモジュールが、前記マスターレコードハードウェアセキュリティモジュールからデータのバックアップが作成される場所である、バックアップレコードハードウェアセキュリティモジュールと、
前記バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信する、前記2つ以上の領域の各々に包含される、プライマリキャッシュハードウェアセキュリティモジュールと、
前記2つ以上の領域の各々に包含されるハードウェアセキュリティモジュールキャッシュプールであって、各ハードウェアセキュリティモジュールキャッシュプールが、領域内のトラフィックの必要性に応じて、その対応するプライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である、ハードウェアセキュリティモジュールキャッシュプールと、
前記2つ以上の領域の各々に含まれるソフトウェアコンテナのクラスタおよびソフトウェアコンテナ管理システムであって、前記ソフトウェアコンテナ管理システムが、前記ソフトウェアコンテナが利用可能であり適切に動作していることを保証し、領域のクラスタ内のソフトウェアコンテナからの要求が、すべての読み出し動作について、前記プライマリキャッシュハードウェアセキュリティモジュールと前記ハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される、ソフトウェアコンテナのクラスタおよびソフトウェアコンテナ管理システムと、を含み、
存在しない値が要求された場合に、前記システムが前記値の発信元の管轄を識別し、前記要求の発信元の管轄と異なりかつ許容される場合は、前記発信元の管轄に前記値を要求し、次に前記値が、前記要求が発信された前記領域の前記プライマリキャッシュハードウェアセキュリティモジュールにキャッシュされ、次に前記値がライブレプリケーションを介して前記ハードウェアセキュリティモジュールキャッシュプールに配布される、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にシークレット管理システムおよび方法に関し、特に、APIおよび暗号化鍵のセキュリティ管理システムおよび方法に関する。
【背景技術】
【0002】
関連技術の説明
インターネットセキュリティは、サイバースペース、eコマース、およびインターネット全般における大きな懸念事項および潜在的な責任の1つである。ハッカーまたは他の悪意ある者によって悪用される可能性のある潜在的な脆弱性には、多くの種類がある。
【0003】
例えば、ウェブサイトなどのソフトウェアアプリケーションがサードパーティのAPIを活用することがますます増えている。多くのシステムでは、API、パスワード、秘密鍵、認証情報、暗号鍵、および他のシークレットが、アプリケーションのコードリポジトリおよびデータベースに格納される。このようなシステムでは、アプリケーションの鍵がウェブサイトの外部で使用されるのを防止することはできない。アプリケーションがハッキングされた場合、通常、ハッカーが最初に行うのは、環境のコピーを作製することである。これは、ハッキングがSQLエクスプロイトの場合はハッカーがアプリケーションデータベースのコピーを取得するか、またはハッキングがサーバ違反の場合はハッカーがサーバのコピーを取得することを意味する。そのため、シークレットが失われ、シークレットが保護するデータおよびサービスが侵害されている可能性がある。
【0004】
これらのAPI鍵を、アプリケーションのコードリポジトリまたはデータベースから削除し、暗号化し、および分離されたシステムに安全に格納することにより、機密データ、ウェブトランザクション、および通信を保護することが主に必要である。これにより、アプリケーションが侵害された場合、または開発者がアプリケーションのコードリポジトリまたはデータベースのローカルコピーを有している場合に行われる可能性のある損害を制限する。
【0005】
アプリケーション開発およびホスティングの世界で発生する別の問題は、開発環境で本番データを復号化する問題である。これは、悪意ある開発者または他の個人の動作が原因で発生する可能性がある。代替的に、これは、開発者が本番シークレットを分離する方法を知らない場合に、偶然に発生する可能性がある。また、例として、開発ユーザから本番ユーザにテスト通知を送信するなど、サードパーティの本番サービスを誤って引き起こす可能性もある。
【0006】
さらに、アプリケーション開発およびホスティングの世界で発生するまた別の問題は、データがクラウドに格納されている場合に、データが地理的にどこに配置されているかを制御することができる必要があることである。典型的に、会社が会社のデータを管理下にあるクラウドに格納する場合、データの格納場所はほとんど制御することができず、これは、セキュリティ問題、規制問題、および/または他の問題が原因で問題になり得る。
【0007】
シークレット管理技術に関する当技術分野においてインターネットおよび様々なアプリケーションにセキュリティを継続的に提供する必要性がある。
【発明の概要】
【課題を解決するための手段】
【0008】
いくつかの実装形態によれば、1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポートシステムが開示されている。いくつかのそのような実装形態では、システムは、構成要素のより大きな機能グループである、2つ以上の管轄(sovereignty)を含む。1つ以上の実装形態では、各管轄は独立したマスターレコードを有し、各管轄は、2つ以上の領域、すなわちプライマリ領域および任意の数のセカンダリ領域を含む。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムはまた、その管轄のシークレットのプライマリストレージである各管轄のプライマリ領域に、マスターレコードハードウェアセキュリティモジュールを含む。マスターレコードハードウェアセキュリティモジュールは、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードである。いくつかのそのような実装形態では、シークレットの動作には、作成動作、更新動作、および削除動作のうちの1つ以上が含まれる。
【0009】
いくつかの実装形態の別の態様では、ホスト型シークレット管理トランスポートシステムは、管轄のプライマリ領域ではない2つ以上の領域であるセカンダリ領域に、バックアップレコードハードウェアセキュリティモジュールをさらに含む。1つ以上の実装形態では、バックアップレコードハードウェアセキュリティモジュールは、マスターレコードハードウェアセキュリティモジュールからライブレプリケーションを受信する。バックアップレコードハードウェアセキュリティモジュールは、管轄のマスターレコードハードウェアセキュリティモジュールからデータのバックアップが作成される場所である。いくつかの実装形態のまた別の態様では、ホスト型シークレット管理トランスポートシステムは、バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信する2つ以上の領域の各々に包含される、プライマリキャッシュハードウェアセキュリティモジュールを含む。いくつかの実装形態のさらに別の態様では、ホスト型シークレット管理トランスポートシステムは、2つ以上の領域の各々に包含されるハードウェアセキュリティモジュールキャッシュプールを含む。各ハードウェアセキュリティモジュールキャッシュプールは、領域内のトラフィックの必要性に応じて、その対応するプライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である。
【0010】
いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムは、2つ以上の領域の各々に含まれるソフトウェアコンテナのクラスタおよびソフトウェアコンテナ管理システムをさらに含む。ソフトウェアコンテナ管理システムは、ソフトウェアコンテナが利用可能であり適切に動作することを保証する。このようにして、領域のクラスタ内のソフトウェアコンテナからの要求は、すべての読み出しに対して、プライマリキャッシュハードウェアセキュリティモジュールとハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される。1つ以上の実装形態では、値が要求されると、システムは値の発信元の管轄を識別し、要求の発信元の管轄と異なりかつ許容される場合は、発信元の管轄に値を要求し、次にこの値は、要求が発信された領域のプライマリキャッシュハードウェアセキュリティモジュールにキャッシュされる。次に、値はレプリケーションを介してハードウェアセキュリティモジュールキャッシュプールに配布される。
【0011】
ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、管轄は地政学的境界に基づいて定義される。地政学的境界には、限定のためではなく単に例示するために、国、国の連合、または国のグループが含まれ得る。ホスト型シークレット管理トランスポートシステムの他の実装形態では、管轄は、領域を編成するように任意に定義され基づき、単一のグループ、会社、または企業に結合されているシークレットを保持する。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態の別の態様では、領域は、地域的方角(東、西、北、および南)または管轄を有する国を含む、現実世界の境界によって定義される。ホスト型シークレット管理トランスポートシステムの他の実装形態では、領域は、同一のクラウドプロバイダ、異なるクラウドプロバイダ、オンプレミスシステム、およびプライベートクラウドのうちの1つ以上に包含された固有のデータセンターに、完全にまたは部分的に基づいている。
【0012】
1つ以上の実装形態では、セカンダリ領域は、プライマリ領域全体が利用可能ではなくなった場合に高い可用性を提供する。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態の別の態様では、マスターレコードは、すべての書き込み動作が発生する場所である。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態のまた別の態様では、緊急事態の間を除いて、マスターレコードに対する読み出し動作は発生しない。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態のさらに別の態様では、バックアップレコードハードウェアセキュリティモジュールは、データベースロックが発生する可能性を低減または排除するために、マスターレコードハードウェアセキュリティモジュールへの負荷を可能な限り低く保持する。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、プライマリキャッシュハードウェアセキュリティモジュールは、その対応する領域内のすべてのキャッシュされた値のプライマリレプリケーションソースとして機能する。
【0013】
いくつかの実装形態の別の態様では、ホスト型シークレット管理トランスポートシステムは、複製された値を管轄間で安全に配布して要求の遅延を低減し、複製された値をプライマリキャッシュハードウェアセキュリティモジュールおよびハードウェアセキュリティモジュールキャッシュプールを介して配布し、一方で対応する管轄のマスターレコードハードウェアセキュリティモジュールは、常に元の値を包含する。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、1つの領域がプライマリデータベースクラスタで指定され、データはプライマリデータベースクラスタに格納される。プライマリデータベースクラスタから、データは各領域に配置された分散レプリカデータベースにグローバルに複製される。ホスト型シークレット管理トランスポートシステムの1つ以上の実装形態では、プライマリデータベースクラスタに格納されるデータは、システムで管理されるシークレットのメタデータであり、名前、内部名、バージョン番号、発信元の管轄、および値が配布され得る場所を保護するセキュリティポリシーのうちの1つ以上を含む。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、メタデータを単一のエンティティとして格納するのではなく、データは、メタデータエンティティを構築するためにレンダリングされるイベントのストリームとして格納される。このような実施形態では、イベントのストリームは、ミューテーション動作の実行を引き起こすすべてのイベントの永続的な監査ログを提供する。ホスト型シークレット管理トランスポートシステムの1つ以上の実装形態では、永続的な監査ログ内のイベントは、異常およびセキュリティの問題について機械学習を使用して分析される。
【0014】
ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、クライアントはユーザによって作成され、鍵束(KeyRing)に結合されるが、特定の環境の値へのアクセスを制限し、本番環境および開発環境などの様々な環境の値が交差しないことを保障にする。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、クライアントは環境に結合されている。ホスト型シークレット管理トランスポートシステムのいくつかのそのような実装形態では、異なる種類の環境は、限定のためではなく単に例示するために、本番、ステージング、テスト、および開発を含む。
【0015】
ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、すべての領域にプライベートサブネットを含む。いくつかのそのような実装形態では、領域内の構成要素のすべてが、様々なアベイラビリティーゾーン内のプライベートサブネットに配置されているため、インターネットへの外部接続を介した直接接触のいずれの可能性も排除される。いくつかの実装形態の別の態様では、領域間のすべての通信および管轄間の通信は、セキュリティを強化するために、仮想プライベートネットワーク接続などの暗号化された接続によって処理される。
【0016】
ホスト型シークレット管理トランスポート方法の別の実装形態では、方法は、1つ以上のオフサイトの場所でシークレットを管理する。方法は、構成要素のより大きな機能的グループである2つ以上の管轄の境界を定義することであって、各管轄が独立したマスターレコードを有し、各管轄が2つ以上の領域を含む、定義することと、2つ以上の領域内でプライマリ領域を定義することと、プライマリ領域内の、シークレットのプライマリソースであるマスターレコードハードウェアセキュリティモジュールにアクセスすることであって、マスターレコードハードウェアセキュリティモジュールは、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードであり、シークレットに対する動作は、作成動作、更新動作、および削除動作のうちの1つ以上を含む、アクセスすることと、プライマリ領域ではない、2つ以上の領域の領域外を定義することと、領域外の中の、マスターレコードハードウェアセキュリティモジュールからのシークレットのデータバックアップが作成される場所である、バックアップレコードハードウェアセキュリティモジュールにアクセスすることと、マスターレコードハードウェアセキュリティモジュールから、バックアップレコードハードウェアセキュリティモジュールへのライブレプリケーションを実行することと、2つ以上の領域の各々の、バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信する、プライマリキャッシュハードウェアセキュリティモジュールにアクセスすることと、2つ以上の領域の各々の、ハードウェアセキュリティモジュールキャッシュプールにアクセスすることであって、ハードウェアセキュリティモジュールキャッシュプールが、領域内のトラフィックの必要性に応じてプライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である、アクセスすることと、管轄内の2つ以上の領域の各々の、ソフトウェアコンテナのクラスタ、およびソフトウェアコンテナが利用可能であり適切に動作していることを保証するソフトウェアコンテナ管理システムにアクセスすることと、ソフトウェアコンテナにおける値の要求を受信することであって、領域のクラスタ内のソフトウェアコンテナからの値の要求は、すべての読み出しについて、プライマリキャッシュハードウェアセキュリティモジュールとハードウェアセキュリティモジュールキャッシュプールの間で負荷分散される、受信することと、を含み、値が要求された場合に、システムは値の発信元の管轄を調べ、要求の発信元の管轄と異なりかつ許容される場合は、発信元の管轄に値を要求し、次に値が要求が発信された領域のプライマリキャッシュハードウェアセキュリティモジュールにキャッシュされ、次に値がレプリケーションを介してハードウェアセキュリティモジュールキャッシュプールに配布される。
【0017】
ホスト型シークレット管理トランスポート方法のいくつかの実装形態では、管轄は地政学的境界に基づいて定義される。地政学的境界には、限定のためではなく単に例示するために、国、国の連合、または国のグループが含まれ得る。ホスト型シークレット管理トランスポート方法の他の実装形態では、管轄は、領域を編成するように任意に定義され基づき、単一のグループ、会社、または企業に結合されているシークレットを保持する。ホスト型シークレット管理トランスポート方法のいくつかの実装形態の別の態様では、領域は、地域的方角(東、西、北、および南)または管轄を有する国を含む、現実世界の境界によって定義される。ホスト型シークレット管理トランスポート方法の他の実装形態では、領域は、同一のクラウドプロバイダ、異なるクラウドプロバイダ、オンプレミスシステム、およびプライベートクラウドのうちの1つ以上に包含された固有のデータセンターに、完全にまたは部分的に基づいている。
【0018】
1つ以上の実装形態では、セカンダリ領域は、プライマリ領域全体が利用可能ではなくなった場合に高い可用性を提供する。ホスト型シークレット管理トランスポート方法のいくつかの実装形態の別の態様では、マスターレコードは、すべての書き込み動作が発生する場所である。ホスト型シークレット管理トランスポート方法のいくつかの実装形態のまた別の態様では、緊急事態の間を除いて、マスターレコードに対する読み出し動作は発生しない。ホスト型シークレット管理トランスポート方法のいくつかの実装形態のさらに別の態様では、バックアップレコードハードウェアセキュリティモジュールは、データベースロックが発生する可能性を低減または排除するために、マスターレコードハードウェアセキュリティモジュールへの負荷を可能な限り低く保持する。ホスト型シークレット管理トランスポート方法のいくつかの実装形態では、プライマリキャッシュハードウェアセキュリティモジュールは、その対応する領域内のすべてのキャッシュされた値のプライマリレプリケーションソースとして機能する。
【0019】
いくつかの実装形態の別の態様では、ホスト型シークレット管理トランスポート方法は、複製された値を管轄間で安全に配布して要求の遅延を低減し、複製された値をプライマリキャッシュハードウェアセキュリティモジュールおよびハードウェアセキュリティモジュールキャッシュプールを介して配布し、一方で対応する管轄のマスターレコードハードウェアセキュリティモジュールは、常に元の値を包含する。ホスト型シークレット管理トランスポート方法のいくつかの実装形態では、1つの領域がプライマリデータベースクラスタで指定され、データはプライマリデータベースクラスタに格納される。プライマリデータベースクラスタから、データは各領域に配置された分散レプリカデータベースにグローバルに複製される。ホスト型シークレット管理トランスポート方法の1つ以上の実装形態では、プライマリデータベースクラスタに格納されるデータは、本方法で管理されるシークレットのメタデータであり、名前、内部名、バージョン番号、発信元の管轄、および値が配布され得る場所を保護するセキュリティポリシーのうちの1つ以上を含む。ホスト型シークレット管理トランスポートシステムのいくつかの実装形態では、メタデータを単一のエンティティとして格納するのではなく、データは、メタデータエンティティを構築するためにレンダリングされるイベントのストリームとして格納される。このような実施形態では、イベントのストリームは、ミューテーション動作の実行を引き起こすすべてのイベントの永続的な監査ログを提供する。ホスト型シークレット管理トランスポートシステムの1つ以上の実装形態では、永続的な監査ログ内のイベントは、異常およびセキュリティの問題について機械学習を使用して分析される。
【0020】
ホスト型シークレット管理トランスポート方法のいくつかの実装形態では、クライアントはユーザによって作成され、鍵束に結合されるが、特定の環境の値へのアクセスを制限し、本番環境および開発環境などの様々な環境の値が交差しないことを保障する。ホスト型シークレット管理トランスポート方法のいくつかの実装形態では、クライアントは環境に結合されている。ホスト型シークレット管理トランスポート方法のいくつかのそのような実装形態では、異なる種類の環境は、限定のためではなく単に例示するために、本番、ステージング、テスト、および開発を含む。
【0021】
ホスト型シークレット管理トランスポート方法のいくつかの実装形態では、すべての領域にプライベートサブネットを含む。いくつかのそのような実装形態では、領域内の他のすべての構成要素が、様々なアベイラビリティーゾーン内のプライベートサブネットに配置されているため、インターネットへの外部接続を介した直接接触のいずれの可能性も排除される。いくつかの実装形態の別の態様では、領域間のすべての通信および管轄間の通信は、セキュリティを強化するために、仮想プライベートネットワーク接続などの暗号化された接続によって処理される。
【0022】
1つ以上の他の実装形態では、1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポートシステムが開示されている。いくつかのそのような実装形態では、システムは、構成要素のより大きな機能グループである、2つ以上の管轄を含む。1つ以上の実装形態では、各管轄は独立したマスターレコードを有し、各管轄は、少なくともプライマリ領域およびセカンダリ領域をさらに含む、2つ以上の領域を含む。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムはまた、その管轄のシークレットのプライマリストレージである、各管轄のプライマリ領域のマスターレコードハードウェアセキュリティモジュールを含む。マスターレコードハードウェアセキュリティモジュールは、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードである。いくつかのそのような実装形態では、シークレットに対する動作には、作成動作、更新動作、および削除動作のうちの1つ以上が含まれる。
【0023】
いくつかの実装形態の別の態様では、ホスト型シークレット管理トランスポートシステムは、管轄のプライマリ領域ではない1つ以上のセカンダリ領域に、バックアップレコードハードウェアセキュリティモジュールをさらに含む。1つ以上の実装形態では、バックアップレコードハードウェアセキュリティモジュールは、複数の異なる会社のマルチテナントシークレット管理を同時にサポートするマスターレコードハードウェアセキュリティモジュールからライブレプリケーションを受信する。1つ以上の実装形態では、バックアップレコードハードウェアセキュリティモジュールは、マスターレコードハードウェアセキュリティモジュールからデータのバックアップが作成される場所である。
【0024】
いくつかの実装形態のまた別の態様では、ホスト型シークレット管理トランスポートシステムは、バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信する2つ以上の領域の各々に包含される、プライマリキャッシュハードウェアセキュリティモジュールを含む。いくつかの実装形態のさらに別の態様では、ホスト型シークレット管理トランスポートシステムは、2つ以上の領域の各々に包含されるハードウェアセキュリティモジュールキャッシュプールを含む。各ハードウェアセキュリティモジュールキャッシュプールは、領域内のトラフィックの必要性に応じて、その対応するプライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である。
【0025】
いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムは、2つ以上の領域の各々に含まれるソフトウェアコンテナのクラスタおよびソフトウェアコンテナ管理システムをさらに含む。ソフトウェアコンテナ管理システムは、ソフトウェアコンテナが利用可能であり適切に動作することを保証する。このようにして、領域のクラスタ内のソフトウェアコンテナからの要求は、すべての読み出し動作について、プライマリキャッシュハードウェアセキュリティモジュールとハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される。
【0026】
1つ以上の実装形態では、存在しない値が要求されると、システムは値の発信元の管轄を識別し、要求の発信元の管轄と異なりかつ許容される場合は、発信元の管轄に値を要求し、次にこの値は、要求が発信された領域のプライマリキャッシュハードウェアセキュリティモジュールにキャッシュされる。次に、値はライブレプリケーションを介してハードウェアセキュリティモジュールキャッシュプールに配布される。
【0027】
図面中、同一の参照符号は同様の要素または動作を識別する。図面中の要素のサイズおよび相対位置は、必ずしも一定の縮尺で描かれているわけではない。例えば、様々な要素の形状および角度は一定の縮尺で描かれておらず、これらの要素の一部は、図面の分かりやすさを改善するため任意に拡大されて位置付けられる。さらに、描かれているように、要素の特定の形状は、必ずしも特定の要素の実際の形状に関する任意の情報を伝えることを意図するものではなく、図面中の認識を簡素化するために選択されているに過ぎない。
【図面の簡単な説明】
【0028】
【
図1A】複数の管轄およびそこに包含される複数の領域を含む、ホスト型シークレット管理トランスポートシステムを示す概略図であり、システムが、シークレットフロー、シークレットの取り出し、およびシークレットの複製を容易にする。
【
図1B】複数の管轄およびそこに包含される複数の領域を含む、ホスト型シークレット管理トランスポートシステムを示す概略図であり、システムが、シークレットフロー、シークレットの取り出し、およびシークレットの複製を容易にする。
【
図2A】単一の管轄およびそこに包含された複数の領域を含む、ホスト型シークレット管理トランスポートシステムの一部を示す概略図である。
【
図2B】単一の領域を含む、ホスト型シークレット管理トランスポートシステムの一部を示す概略図である。
【
図3】様々な鍵束、クライアント、およびユーザ間の関係を示す概略図である。
【
図4】ユーザアカウント、鍵束、開発クライアント、および本番クライアントがどのように作成されるかを示す概略図である。
【
図5】ユーザ、本番クライアント、開発クライアント、鍵束、本番シークレット、開発シークレット、およびそれらの複数のバージョンが関与するシークレット格納処理を示す概略図である。
【
図6】ホスト型シークレット管理トランスポートシステムで使用されるプロセッサベースのクライアントの例のブロック図である。
【発明を実施するための形態】
【0029】
当業者は、本開示が例示にすぎず、決して限定するものではないことを理解するであろう。本明細書に開示される特徴および教示内容の各々は、別個に、またはホスト型シークレット管理システムおよび方法を提供するための他の特徴および教示内容と組み合わせて利用されることができる。これらの追加の特徴および教示内容の多くを個別におよび組み合わせて利用する代表的な例は、添付の図面を参照してさらに詳細に説明されている。この詳細な説明は、当業者に本教示内容の態様を実装するためのさらなる詳細を教示することを単に意図しており、特許請求の範囲を限定することを意図しているわけではない。したがって、詳細な説明に開示された特徴の組み合わせは、最も広義の教示内容を実践するために必要となり得ず、代わりに、本教示内容の特に代表的な例を説明するためだけに教示される。
【0030】
本明細書の詳細な説明のいくつかの部分は、アルゴリズム、およびコンピュータメモリ内のデータビットに基づく動作の記号表現の観点から提示されている。これらのアルゴリズム的な記述および表現は、データ処理技術の当業者が、自らの研究の実体を他の当業者に最も効果的に伝えるために使用する手段である。アルゴリズムはここで、および一般に、所望の結果をもたらす首尾一貫した一連のステップであると考えられる。ステップは、物理量の物理的な操作を必要とするステップである。通常、必ずしもそうとは限らないが、これらの量は、格納され、伝送され、組み合わされ、比較され、およびそれ以外の操作をされることが可能な、電気信号または磁気信号の形式をとる。主に一般的な使用法であるという理由から、これらの信号をビット、値、要素、記号、文字、用語、数値などと呼ぶことが時として便利であることが分かっている。
【0031】
ただし、これらおよび同様の用語のすべては、適切な物理量に関連付けられる対象であること、およびこれらの量に適用される単なる便利なラベルにすぎないことに留意すべきである。以下の説明から明らかなように、特に明記しない限り、本説明全体を通して、「処理(processing)」、「コンピューティング(computing)」、「計算(calculating)」、「判定(determining)」、「表示(displaying)」、「構成(configuring)」など、または同様の用語を利用した説明は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)量として表現されるデータを操作して、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報ストレージ、送信デバイスまたは表示デバイス内の物理的量として同様に表現される他のデータに変換する、コンピュータシステムまたは同様のコンピューティングデバイスの動作および処理に言及するものであると理解される。
【0032】
さらに、代表的な例の様々な特徴および従属請求項は、本教示内容の追加の有用な実施形態を提供するために、具体的かつ明示的に列挙されていない方法で組み合わせることができる。エンティティのグループのすべての値の範囲または表示は、元の開示の目的、および特許請求された主題を制限する目的で、すべての可能な中間値または中間エンティティを開示することにも明確に留意されたい。図に示されている構成要素の寸法および形状は、本教示内容がどのように実践されているかを理解するのに役立つように設計されているが、例に示されている寸法および形状を限定することを意図するものではないことにも明確に留意されたい。
【0033】
文脈上別段の要求がない限り、続く明細書および特許請求の範囲全体を通じて、「含む(comprise)」という単語およびその変形、例えば「含む(comprises)」および「含む(comprising)」などは、オープンで包括的な意味で、すなわち「含むが、それに限られない」と解釈されるべきである。本明細書全体を通して、「1つの実装形態(one implementation)」または「実装形態(an implementation)」に対する言及は、特定の特徴、構造、または特性が、1つ以上の実装形態において任意の好適な方法で組み合わされ得ることを意味する。
【0034】
本明細書および添付の特許請求の範囲で使用されるように、単数形の「a」、「an」、および「the」は、内容が明確に別段の指示をしない限り、複数の指示対象を含む。「または(or)」という用語は、内容が明確に別段の指示をしない限り、一般にその最も広義の意味で、すなわち「および/または(and/or)」を意味するものとして採用されることにも留意されたい。本明細書に提供されている見出しおよび開示の要約は、便宜上のものであり、実装形態の範囲または意味を解釈するものではない。
【0035】
本明細書に開示されているのは、DrupalおよびWordPressなどの最新のコンテンツ管理システム(CMS)のためのホスト型シークレット管理トランスポートシステムおよび方法100である。これにより、アプリケーションは、安全なオフサイトでホストされた環境でアプリケーションシークレット(例えばAPIおよび暗号化鍵の管理など)へのアクセスを適切に管理することができる。ホスト型シークレット管理トランスポートシステムおよび方法100は、任意のアプリケーションに統合されて、APIトークン、パスワード、および暗号化鍵などの値を格納するための安全な方法を提供する。ホスト型シークレット管理トランスポートシステムおよび方法100は、重大な脆弱性から保護し、アプリケーションが多くの業界規制(例えば、PCI DSS、HIPAAならびに他のセキュリティ要件および規制)に準拠するのを助け、アプリケーションのデータを保護するための多層防御「多層」アプローチを提供するオフサイト鍵管理ソリューションを採用している。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、AES-256暗号方式をアプリケーションのカスタムプラグインにシームレスに提供し、エンタープライズグレードのHSM(ハードウェアセキュリティモジュール)鍵管理を送達しながら、アプリケーション内の保存データを保護する。
【0036】
いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、暗号化された値を受け取り、それらをオフサイトの場所にルーティングする認証、配送、およびルーティングのシステムであり、このオフサイトの場所でそれらの値は、例えばタウンゼントセキュリティ社によって提供されるHSM内に暗号化されて保存される。ホスト型シークレット管理トランスポートシステムおよび方法100は、アプリケーション管理者に機密鍵を格納する方法および場所を制御する能力を提供し、これによって、アプリケーションの全体的なセキュリティを改善し、アプリケーションが鍵管理の特定の規制およびコンプライアンス要件を満たすことを可能にする。
【0037】
1つ以上の実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100により、すべてのサイズのアプリケーションが、管理された拡張可能なクラウド鍵管理システムを用いた鍵管理の業界標準を満たすことが可能となる。他のサードパーティの鍵管理者とは異なり、ホスト型シークレット管理トランスポートシステムおよび方法100は、セキュリティおよびシステム監視の追加の層を提供する。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、オフサイトAPIおよび暗号化鍵管理を組み込んで、アプリケーションがHIPAA、FERPA、およびFISMAに準拠するのを助ける。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、アプリケーションの鍵のシームレスな統合および保護のために、多数のサードパーティプラグインのAPI鍵を保護するように自動的に構成される。ホスト型シークレット管理システムおよび方法100の1つ以上の実装形態では、システムは、複数の領域の冗長性、ユニバーサル統合のためのプラットフォーム非依存型REST API、およびアプリケーションの管理者がデータ管轄のためにデータを格納する場所を選択することができるようにする領域固有のデータ分離を提供する。
【0038】
いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、アプリケーションの値を安全な暗号化されたHSMに格納することに加えて、開発環境および本番環境の値を互いに分離する。ホスト型シークレット管理トランスポートシステムおよび方法100のこの特徴は、いくつかの技術的改善を提供する。第1に、アプリケーション管理者が、ホスト型シークレット管理システムおよび方法100に格納された鍵を用いて本番環境からの値を暗号化する場合、それらの値は開発環境では復号化されることができない。これは、暗号化されたデータへのアクセス権を有するユーザをアプリケーション管理者が制御することができる必要のある、規制された環境では重要である。第2に、ホスト型シークレット管理トランスポートシステムおよび方法100によって提供されるデータ分離は、電子メールが開発環境から本番サービスに誤って送信された場合に、暗号化された値が侵害されるのを防止する。ホスト型シークレット管理トランスポートシステムおよび方法100は、アプリケーションの本番トークンおよび鍵を開発者から遠ざけることによって、アプリケーションの開発環境を分離する。
【0039】
別の言い方をすれば、ホスト型シークレット管理トランスポートシステムおよび方法100は、「環境ごと」に基づいて鍵を管理し、これにより、本番環境から開発環境に鍵が共有される可能性が低減または排除される。ホスト型シークレット管理システムおよび方法100を使用するときに、機密情報が本番環境で暗号化される場合、そのデータは、その本番環境以外の場所では復号化されない可能性がある。このシナリオでは、データは、本番環境の外部では再取り出しすることができない本番鍵を用いて本番中に暗号化される。データベースが開発用に複製されている場合、CMSがアクセスすることができる鍵ではデータを復号化することができない。
【0040】
いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100により、会社の管理ユーザは、会社のシークレットを格納する地理的領域を選択することができる(例えば、米国のユーザは、会社のシークレットを米国に格納したい場合がある)。アプリケーション管理者が米国外にいる場合、ホスト型シークレット管理トランスポートシステムおよび方法100により、アプリケーション管理者は、そのシークレットを格納するため別の利用可能な領域を選択することができる。ホスト型シークレット管理トランスポートシステムおよび方法100における領域は分離されているため、1つの領域に設定された値は任意の他の領域においても利用することができない。
【0041】
図1を参照すると、ホスト型シークレット管理トランスポートシステムおよび方法100の1つ以上の実装形態は、複数の管轄110および複数の領域120の使用を組み込んでいる。具体的には、ホスト型シークレット管理トランスポートシステムおよび方法100は、構成要素のより大きな機能的グループである2つ以上の管轄110を含む。1つ以上の実装形態では、各管轄110は独立したマスターレコードを有し、各管轄110は、各々が少なくともプライマリ領域120およびセカンダリ領域120をさらに含む、2つ以上の領域120を含む。いくつかの実装形態では、管轄110は、地政学的境界(例えば、米国、欧州連合など)に基づいて描かれる場合がある。他の実装形態では、管轄110は、領域120を編成し、シークレットを単一のグループ(例えば、単一の会社または企業)に結合するために任意に描かれる場合がある。管轄110内の領域120は、現実世界の境界(例えば、東、西、管轄内の国)によって記述され得る。追加的に、管轄110内の領域120は、完全に一意のデータセンター(同一のクラウドプロバイダ内、異なるクラウドプロバイダ内、オンプレミスシステム内、プライベートクラウド内など)に基づくことができる。各管轄110内のプライマリ領域120およびセカンダリ領域120(および追加の可能性がある領域)は、プライマリ領域全体が利用できなくなった場合に高い可用性を提供する。
【0042】
いくつかの実装形態では、ホスト型シークレット管理トランスポートシステム100はまた、シークレットのプライマリソースである各管轄110のプライマリ領域120にマスターレコードハードウェアセキュリティモジュール130を含む。マスターレコードハードウェアセキュリティモジュール130は、その対応する管轄110内のシークレットに対するすべての動作の真実レコードである。いくつかのそのような実装形態では、シークレットの動作には、作成動作、更新動作、および削除動作のうちの1つ以上が含まれる。そのマスターレコードハードウェアセキュリティモジュール130は、すべての書き込み動作が発生する場所である。しかしながら、読み出し動作は、緊急シナリオの間を除いてマスターレコードハードウェアセキュリティモジュール130では発生しない。
【0043】
別の態様では、ホスト型シークレット管理トランスポートシステム100は、管轄110のセカンダリ領域120にバックアップレコードハードウェアセキュリティモジュール140をさらに含む。1つ以上の実装形態では、バックアップレコードハードウェアセキュリティモジュール140は、マスターレコードハードウェアセキュリティモジュール130からライブレプリケーションを受信する。バックアップレコードハードウェアセキュリティモジュール140は、管轄110のマスターレコードハードウェアセキュリティモジュール130からのデータバックアップが作成される場所であり、これは、データベースロックが発生する可能性を低減または排除するために、マスターレコードハードウェアセキュリティモジュール130への負荷を可能な限り低く保持する。
【0044】
ここで別の構成要素を参照すると、ホスト型シークレット管理トランスポートシステムのいくつかの実装形態は、バックアップレコードハードウェアセキュリティモジュール140からライブレプリケーションを受信する2つ以上の領域120の各々に包含される、プライマリキャッシュハードウェアセキュリティモジュール150を含む。いくつかの実装形態のさらに別の構成要素では、ホスト型シークレット管理トランスポートシステム100は、2つ以上の領域120の各々に包含されるハードウェアセキュリティモジュールキャッシュプール160を含む。各ハードウェアセキュリティモジュールキャッシュプール160は、領域120内のトラフィックの必要性に応じて、その対応するプライマリキャッシュハードウェアセキュリティモジュール150から複製するように拡張可能である。いくつかの実装形態では、プライマリキャッシュハードウェアセキュリティモジュール150は、その対応する領域120内のすべてのキャッシュされた値のプライマリ複製ソースとして機能する。
【0045】
ここでさらに別の構成要素を参照すると、ホスト型シークレット管理トランスポートシステム100のいくつかの実装形態は、2つ以上の領域120の各々に含まれるソフトウェアコンテナ170のクラスタおよびソフトウェアコンテナ管理システム180をさらに含む。ソフトウェアコンテナ管理システム180は、ソフトウェアコンテナ170が利用可能であり適切に動作することを保証する。ホスト型シークレット管理トランスポートシステム100では、領域120内のコンテナ170から来る要求は、すべての読み出しについて、プライマリキャッシュハードウェアセキュリティモジュール150とハードウェアセキュリティモジュールキャッシュプール160との間で負荷分散される。コンテナ170は、オペレーティングシステム仮想化の方法であって、これにより、アプリケーションおよびその従属物がリソースが分離されたプロセスで実行されることを可能にする。コンテナ170は、展開環境に関係なく、アプリケーションが迅速、確実、かつ一貫して展開されることを保証する助けとなる。
【0046】
ホスト型シークレット管理トランスポートシステム100では、存在しない値が要求されると、システム100は、値の発信元の管轄110を識別する。要求の発信元の管轄とは異なりかつ許容される場合、システムは、発信元の管轄110に値を要求し、次に、その値は、要求が発信元された領域120のプライマリキャッシュハードウェアセキュリティモジュール150にキャッシュされる。次に、値はレプリケーションを介してハードウェアセキュリティモジュールキャッシュプール160に配布される。この機能により、ホスト型シークレット管理システム100は、複製された値を管轄110間で安全に配布して要求の遅延を低減し、複製された値をプライマリキャッシュハードウェアセキュリティモジュール150およびハードウェアセキュリティモジュールキャッシュプール160を介して配布し、一方で対応する管轄110のマスターレコードハードウェアセキュリティモジュール130は、常に元の値を包含する。
【0047】
ホスト型シークレット管理システム100のいくつかの実装形態では、2つ以上の領域120の各々は、データが格納されるプライマリデータベースクラスタ190を含む。プライマリデータベースクラスタ190から、データは分散レプリカデータベース194にグローバルに複製される。ホスト型シークレット管理システム100の1つ以上の実装形態では、プライマリデータベースクラスタ190に格納されるデータは、システムで管理されるシークレットのメタデータであり、名前、内部名、バージョン番号、発信元の管轄、および値が配布され得る場所を保護するセキュリティポリシーのうちの1つ以上を含む。メタデータを単一のエンティティとして格納するのではなく、データは、イベントのストリームとして格納される。次に、これらのイベントがレンダリングされてメタデータエンティティを構築し、一方イベントストリームは、システム内で実行されるすべてのミューテーション動作の永続的な監査ログを提供する。この監査ログは、機械学習を使用することによって、異常およびセキュリティ上の懸念に関するイベントの追加の分析を可能にする。
【0048】
ここで
図3および
図4を参照すると、ホスト型シークレット管理トランスポートシステム100では、クライアントはユーザによって作成され、鍵束に結合されるが、特定の環境の値へのアクセスを制限し、本番環境および開発環境などの様々な環境の値が交差しないことを保障する。このようにして、クライアントは、ホスト型シークレット管理トランスポートシステム100内の環境に結合される。ホスト型シークレット管理トランスポートシステム100では、異なる種類の環境は、限定のためではなく単に例示するため、本番、ステージング、テスト、および開発を含む。
【0049】
再び
図1、
図2A、および
図2Bを参照すると、ホスト型シークレット管理トランスポートシステム100では、すべての領域120は、プライベートサブネット198を含む。1つ以上の実装形態では、プライベートサブネット198は、ソフトウェアコンテナ170およびソフトウェアコンテナ管理システム180を含む。いくつかのそのような実装形態では、領域120内のすべての構成要素が、様々なアベイラビリティ領域120内のプライベートサブネット198に配置されているため、インターネットへの外部接続を介した直接接触のいずれの可能性も排除される。別の態様では、領域120間のすべての通信および管轄110間の通信は、セキュリティを強化するために、例えば仮想プライベートネットワーク接続を介したプライベート暗号化接続によって処理される。
【0050】
他の者が、ホスト型シークレット管理トランスポートシステムおよび方法100によって解決される問題に対処しようと試みたが、成功していない。そのようなサードパーティの試みのいくつかは、ホスト型シークレット管理トランスポートシステムおよび方法100の最終機能といくつかの類似点を有する。しかしながら、ホスト型シークレット管理トランスポートシステムおよび方法100の設計および機能は固有である。例えば、ホスト型シークレット管理トランスポートシステムおよび方法100は、認証、ルーティング、およびホスティングを可能にするが、ストレージを提供しないトランスポート層システムである。有意なことに、ホスト型シークレット管理トランスポートシステムおよび方法100は、システム内のシークレットの通過に対する制限の動的な作成を可能にする。追加的に、ホスト型シークレット管理トランスポートシステムおよび方法100は、別個の格納方法が可能な異なるエンドポイントを有する能力を可能にする。特に、ホスト型シークレット管理トランスポートシステムおよび方法100は、格納方法の種類および環境に依存しない。さらに、ホスト型シークレット管理トランスポートシステムおよび方法100は、管轄境界の作成において任意の線を描くことを可能にするだけでなく、シークレット管理のための複数のクラウドを備えたハイブリッド領域の作成を可能にする。
【0051】
一部の競合システムは、「プライマリ」デバイス/サービスと任意の数の「セカンダリ」デバイス/サービスとの間でデフォルトのレプリケーションを採用する、ハードウェアセキュリティモジュール(HSM)を使用する。ただし、この種類のデフォルトレプリケーションは、性能および可用性のためにのみ行われる。これは、プライマリデバイスに包含されるシークレットをセカンダリデバイスに配布することにより、システムへの負荷が、場所および/またはいずれか1つのシステムの停止に基づいて分散される可能性があるからである。ただし、この種類のサードパーティレプリケーションは、データのオールオアナッシングコピーにすぎない。別の言い方をすれば、この種類のサードパーティレプリケーションでは、プライマリデバイスにあるものはすべてセカンダリデバイスにも複製される。世界中の多くの様々な顧客(例えば会社)と場所とを橋渡しするシステムを扱う場合、各国が独自のデータプライバシー法を有するため、このオールオアナッシングレプリケーションアプローチは受け入れられない。
【0052】
代わりに、ホスト型シークレット管理トランスポートシステムおよび方法100は、このシステムが管轄110として定義するものを作成する。これらの管轄110の各々は、対応する管轄110内に領域120のグループ化を作成することを可能にする。有意なことに、これらの管轄110の各々は、データを、このデータが設定されている管轄110に対してプライベートであるよう保持されることを可能にする。管轄110は、グローバルな境界に基づいている場合があるが、特定の組織または組織のグループのシークレットを分離するために、管轄110は仮想的な管轄である場合もある。各管轄110はマスターレコードを有し、その値およびログのすべてが保持されて、シークレットの監査追跡が提供される。しかしながら、ホスト型シークレット管理トランスポートシステムおよび方法100は、このデータを他のすべての管轄110にコピーしない。代わりに、ホスト型シークレット管理トランスポートシステムおよび方法100は、シークレットの配布および輸送の「シークレット単位の」制御を可能にし、これは、第1の会社のシークレットを第2の会社のシークレットから分離するために使用され得、その両方がシステム100の管轄110の領域120上でホストされ得る。いくつかの実装形態では、これは、どの管轄110にシークレットを配布することが許可され、どの管轄110にシークレットをキャッシュすることが許可されるかのホワイトリストを使用することによって実施され得る。有意なことに、発信元の管轄110の外部に永続的に格納することは、ホスト型シークレット管理トランスポートシステムおよび方法100によって許可されない。
【0053】
このグローバルキャッシングにより、ホスト型シークレット管理トランスポートシステムおよび方法100は、永続的なストレージを必要とすることなくグローバル冗長性の性能利益を提供し、それによってデータの「管轄」を維持することができる。ホスト型シークレット管理トランスポートシステムおよび方法100によって提供される「シークレット単位」ベースのこの複雑な許可システムにより、各シークレットおよび各ユーザが、それらが所在する管轄区域のデータ規制に準拠し続けながら、システムがマルチテナント(すなわち、複数の別個の会社を同時にサポートする)を安全に提供することが可能となる。一般データ保護規則(GDPR)などの新しい規制により、欧州連合のユーザは米国のユーザとは異なるデータ規制を有する可能性があるため、これは特に注目に値する。
【0054】
シークレットを動的かつ個別に制限する能力に加えて、ホスト型シークレット管理トランスポートシステムおよび方法100はまた、管轄110内の各領域120に、特定の管轄110またはより大規模なシステムとは独立した格納方法を有させる固有の能力も提供する。このようにして、ホスト型シークレット管理トランスポートシステムおよび方法100は、各領域120が、それが配置されている環境のハードウェアおよびサービスを利用することを可能にし、一方、管轄110の他の領域120は、異なるハードウェアおよびサービスを利用することが可能である。ホスト型シークレット管理トランスポートシステムおよび方法100のこの格納方法の独立性は、エンドユーザに対して透過的である。したがって、エンドユーザは、異なるストレージの種類によって方法、APIインターフースなどを変更する必要はない。
【0055】
一部の競合相手は、異なる「キーストア」間での格納を許可しているが、これらのシークレットは、これらが所在するキーストア内で名前空間が付けられているか、または値の名前によって制限されており、クラスタ内のいかなるアクセスもクラスタ内で利用可能な格納方法のみに制限する。
【0056】
別の言い方をすれば、エンドユーザは、シークレットを取り出すために、シークレットが配置されているストレージの種類を知っている必要がある。有意なことに、ホスト型シークレット管理トランスポートシステムおよび方法100では、値は、1つの領域120(または管轄110)で設定され得、別の領域120(または管轄110)で取り出され得る。さらに、ホスト型シークレット管理トランスポートシステムおよび方法100では、値は、第1の格納方法で1つの領域120に格納され得、別の値は、同一の管轄110内の第2の格納方法で第2の領域120に格納され得る。ホスト型シークレット管理トランスポートシステムおよび方法100のこの格納の柔軟性は、各領域120が個々の領域120の要件に従って実行されるがネットワーク全体の要件に従って実行されない、ということを可能にし、これは、一部のサードパーティシステムで使用される標準のプライマリデバイスからセカンダリデバイスへのレプリケーションに必要とされるものである。
【0057】
ホスト型シークレット管理トランスポートシステムおよび方法100の格納方法の独立性に加えて、ホスト型シークレット管理トランスポートシステムおよび方法100はまた、環境的にも独立している。別の言い方をすれば、ホスト型シークレット管理トランスポートシステムおよび方法100は、任意の環境で動作可能であり、値は、第1の環境の1つの領域120に格納され得、別の値は、同一の管轄110内の第2の環境の第2の領域120に格納され得る。
【0058】
ホスト型シークレット管理トランスポートシステムおよび方法100の認証およびルーティング層のコアは、オペレーティングシステムレベルの仮想化(コンテナ化としても知られる)を実施するソフトウェアプログラムを実行することができる、Linux(登録商標)に基づく任意のオペレーティングシステムで動作することができる。これらのオペレーティングシステムには、限定のためではなく単に例示するために、Ubuntu、RedHat、CentOS、およびOracle Linuxが含まれる。これらのオペレーティングシステムは、Amazon Web Services、Azure、Google Cloud Platform、IBM Cloud、およびRackspaceなどの主要なクラウドインフラストラクチャプロバイダのすべてに見られる。
【0059】
ホスト型シークレット管理トランスポートシステムおよび方法100は、安全なウェブサイトに特に適用可能であるが、システムは、安全なウェブサイトを超えて幅広い適用性を有する。ホスト型シークレット管理トランスポートシステムおよび方法100はまた、社内ネットワーク内の内部ソフトウェアだけでなく、企業ソフトウェアにおけるシークレット管理にも採用され得る。追加的に、ホスト型シークレット管理トランスポートシステムおよび方法100は、企業システム内の他の技術駆動型の処理で採用され得る。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、シークレット管理に採用され、ソフトウェアがハードウェアデバイスに搭載される生産ラインなどの非技術系企業で利用され得る。他の実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、シークレット管理に採用され、自動車が作成されソフトウェアが搭載される工場などの非技術系企業で利用され得る。モノのインターネット(IoT)の急増に伴い、インターネット接続された多くのデバイスは、それらを動作しているサービスプロバイダと安全に接続して情報を転送する能力を必要とする。これらのシークレットは、インターネット接続されたデバイスにローカルに格納される場合があるが、そのようなローカル格納は、そのようなインターネット接続されたデバイスシステムが侵害されたときに問題を作成する可能性がある。
【0060】
代わりに、ホスト型シークレット管理トランスポートシステムおよび方法100は、インターネット接続されたデバイスが、それらが動作する必要のあるシークレットなしで出荷され、エンドユーザの場所に到着した後にシークレットへのアクセスを許可されることを可能にする。ホスト型シークレット管理トランスポートシステムおよび方法100のこの実装形態では、インターネット接続されたデバイスがアクセスを許可されたシークレットへのアクセスは、いつでも取り消されることができる。
【0061】
ここで
図3を参照すると、ホスト型シークレット管理トランスポートシステムおよび方法100の鍵束300が示されている。鍵束300は、シークレットが環境内で一緒にグループ化される場所であり、環境とは、単に例示するためであり限定のためではなく、開発環境および本番環境である。管理者アカウントユーザ310のみが、請求レベル、鍵束の名前などの鍵束300に関する情報を変更し、ユーザアカウント320に対して開発クライアント330を作成する許可を与えることができる。開発クライアント330は、管理者アカウントユーザ310によって指定されたように、鍵束300へのアクセスを有する誰もが作成可能である。本番クライアント340は、管理者アカウントユーザ310によって認証された要求によってのみ作成され得、開発クライアント330を用いて要求を作成し、したがって、認証の第3のポイントを提供する。これはユーザ認証が2要素認証を有するからであり、2要素認証は、単に例示するためであり限定のためではなく、時間ベースのワンタイムパスワードアルゴリズムを介して、または登録済みデバイスへのSMSメッセージを介して行うことができる。
【0062】
ここで
図4を参照すると、ホスト型シークレット管理トランスポートシステムおよび方法100に鍵束300を作成するために、以下のプロセスを実装することができる:410でユーザアカウント320が作成され、420でユーザアカウント320を認証することにより鍵束300が作成され、430でユーザアカウント320の認証を介してクライアントが作成され、開発環境のための鍵束300への接続を可能にし、440でユーザアカウントの認証と2要素認証とを介して、鍵束300の本番シークレットへのアクセスを許可するクライアントが作成される。この実装形態では、クライアントは、開発証明書を3番目の認証ソースとして使用することによって、作成される。
【0063】
図5は、他のサードパーティシステムとは対照的に、ホスト型シークレット管理トランスポートシステムおよび方法100の技術的独自性をさらに実証している。
図5に示されるように、ユーザアカウントは、ユーザ510を認証することによって作成され得る。そのユーザ510は、登録済み本番クライアント510、登録済み本番クライアント520、および登録済み開発クライアント530によって、鍵束530に関連付けられ得る。1つ以上の実装形態では、登録済み本番クライアント510は、次に、鍵束530を使用して、本番シークレット540にアクセスすることができる。1つ以上の実装の別の態様では、登録済み開発クライアント530は、次に、鍵束530を使用して、開発シークレット550にアクセスすることができる。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、同一の本番シークレット540の異なるバージョン(例えば、バージョン-1(542)、バージョン-2(544))を保存することができる。いくつかの実装形態の別の態様では、ホスト型シークレット管理トランスポートシステムおよび方法100は、同一の開発シークレット550の異なるバージョン(例えば、バージョン-1(552)、バージョン-2(554))を保存することができる。
【0064】
特に、ホスト型シークレット管理トランスポートシステムおよび方法100では、クライアントは、変更することができない組み込みの許可および識別子を有する。別の言い方をすれば、ホスト型シークレット管理トランスポートシステムおよび方法100のクライアントは、それらが作成された時点から特定の環境に登録されている。問題なのは、他のサードパーティシステムでは、ユーザを作成し、その後に追加の許可を与えることができるということである。ただし、このようなサードパーティシステムは、異なる環境から新しいシークレットにアクセスすることができるようにする、許可昇格攻撃(permission escalation attack)を受けやすい傾向がある。この種類の攻撃では、メインシステムへの不適切なアクセスを有する誰か(例えばハッカー)が、ユーザの権限を、ユーザが権限を有することが許されていない環境に昇格させる。
【0065】
有意なことに、ホスト型シークレット管理トランスポートシステムおよび方法100の固有のアーキテクチャは、クライアントが作成された時にクライアントへの識別子および許可を保護するため、クライアントの識別子および許可は将来のいかなる時点においても変更されることはできない。別の言い方をすれば、ホスト型シークレット管理トランスポートシステムおよび方法100は、暗号署名の一部として識別子および許可をクライアントに強制するため、それをいかなる時点においても変更することはできず、それによってこの種類の攻撃を排除する。これは、ホスト型シークレット管理トランスポートシステムおよび方法100が共有システムを作成することを可能にする技術的改善であり、この共有システムにおいて、ユーザは互いに交差することができない異なるグループからのものである。
【0066】
特に、ホスト型シークレット管理トランスポートシステムおよび方法100のいくつかの実装形態では、システムは、メインシークレットの名前空間の下に鍵の複数のバージョンを格納する。ホスト型シークレット管理トランスポートシステムおよび方法100によって可能になるこの技術的改善は、同一のシークレットの複数のバージョンをすべて単一のシークレット名でアクセスさせる能力を提供する。これに関して、ホスト型シークレット管理トランスポートシステムおよび方法100は、ユーザがシークレットの様々なバージョンの値を設定することを可能にする。
【0067】
他の一部のサードパーティシステムでは、所望しない種類の「バージョン」が許可されており、ここでは鍵バージョンにシークレット-v1、シークレット-v2などの名前を付けなければならない。追加的に、さらに他のサードパーティシステムではインスタンスとバージョンとが許可される場合があるが、これらは水平方向に格納され、「鍵の更新(key rolling)」手順の一部である。鍵の更新手順では、新しい鍵はユーザ入力によって作成されるのではなく、プログラムで作成されて以前の鍵にリンクされる。対照的に、ホスト型シークレット管理トランスポートシステムおよび方法100は、ユーザが鍵バージョンおよびそれらの値を制御することを可能にする。追加的に、ホスト型シークレット管理トランスポートシステムおよび方法100によってサポートされるバージョニングは、2人の異なるユーザが同一のシークレットを使用することを可能にし、一方のユーザがシークレットを更新する場合、他方のユーザは影響を受けない。
【0068】
1つ以上の実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、シークレットを保護するために暗号化の複数の層を展開する。暗号化の最初の層は、値がユーザのアプリケーションをまさに離れる前に発生する。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、格納される暗号化された値を受け取り、それを安全な暗号化された接続を介して、ホスト型シークレット管理トランスポートシステムおよび方法100内のサーバに送信する。ホスト型シークレット管理トランスポートシステムおよび方法100に入ると、暗号化された値は、例えばタウンゼントセキュリティ社によって提供されるHSM(ハードウェアセキュリティモジュール)内にルーティングされ、暗号化されて格納される。ホスト型シークレット管理トランスポートシステムおよび方法100に送信される値は暗号化され、暗号化が開始された場所でのみ復号化することができるため、これは「エンドツーエンド暗号化」である。
【0069】
ホスト型シークレット管理トランスポートシステムおよび方法100も、他の誰でも、いかなる時も暗号化された値を表示、修正、または喪失することはできない。1つの実施形態では、アプリケーションが暗号化/復号化またはAPI要求のための鍵を必要とするとき、ホスト型シークレット管理トランスポートシステムおよび方法100は、提携するホスティングプロバイダサーバの証明書を使用してユーザに代わって認証し、鍵を解放する。このようにして、ホスト型シークレット管理トランスポートシステムおよび方法100にアクセスするために使用される認証情報は、ハイジャックおよび改ざんを防止するために、アプリケーションホストまたはアプリケーションプラットフォームによって提供される。
【0070】
キーラッピングと呼ばれる処理を使用して、鍵は、ウェブサイトまたはアプリケーション環境の外部では使用されない使用不可の状態になる。キーラッピング処理では、ある値が受け取られて2番目の鍵を使用して暗号化(ラップ)される。ホスト型シークレット管理トランスポートシステムおよび方法100は、通常はKEK(鍵暗号化鍵)と呼ばれる第2の鍵を受け取り、それを元の値の代わりにアプリケーションに格納する。このKEKは、ホスト型シークレット管理トランスポートシステムおよび方法100に格納された値を保護する以外の特徴を有さないため、アプリケーションに安全に格納することができる。この鍵にアクセスすることができる者はまだ元の値を有しておらず、それらは関連していないか、または値の派生物ではないため、攻撃者には使用不可である。
【0071】
これにより、処理に別のセキュリティ層を強化することによって、ホスト型シークレット管理トランスポートシステムおよび方法100によって格納された鍵が表示または侵害されるのを防止する。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、タウンゼントセキュリティ社のFIPS140-2準拠のキーマネージャを採用して、鍵を最高の業界標準に保護する。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、SHA256HMACを有するAES256ビットCBC暗号化を使用して、格納される値を暗号化する。
【0072】
ホスト型シークレット管理トランスポートシステムおよび方法100の1つの技術的改善は、システムが、多数の現在および予想されるストレージ技術で動作するように構成されることである。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、物理ベースまたはクラウドベースのいずれかのハードウェアセキュリティモジュールを使用して、最高レベルの保護を提供するためにシステム内に安全に保存されているシークレットを格納する。ホスト型シークレット管理トランスポートシステムおよび方法100と組み合わせて使用される任意のハードウェアセキュリティモジュールは、少なくともNIST140-2に準拠しており、暗号化された安全な環境におけるストレージの業界ベストプラクティスを可能にする。追加的に、これらのハードウェアセキュリティモジュールは、PCI-DSS、HIPAA、GDPRなどのようなグローバル規制への準拠証明書を保持している場合がある。
【0073】
他の実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、非ハードウェアセキュリティモジュールストレージ方法を使用し、これらは、保存時に暗号化され、規制準拠を満たす必要のないシークレットに基本レベルのセキュリティを提供する。これらの格納方法は、業界で精査され、非ハードウェアセキュリティモジュール、または潜在的に非準拠の格納方法として公表されるであろう。
【0074】
ホスト型シークレット管理トランスポートシステムおよび方法100は、ハードウェアセキュリティモジュールから発行されたx.509証明書、またはホスト型シークレット管理トランスポートシステムおよび方法100によって信頼される、共通の認証局を介した認証で動作する。これらの証明書は暗号的に署名されているため、改ざん防止機能がなされ、識別子データも同封されている。追加的に、ホスト型シークレット管理トランスポートシステムおよび方法100のいくつかの実装形態では、認証は、他の暗号的に署名されたトークン、例えば、Kubernetesサービスアカウントトークンを介して発生する。これらのトークンは、暗号化署名によって、ストレージ技術から発信元のサービスに対して検証される。これにより、x.509証明書を介して使用される同様の暗号化および改ざん防止の署名方法が作成される。
【0075】
ホスト型シークレット管理トランスポートシステムおよび方法100によって提供される多くの技術的改善の1つは、システム100と相互作用する基礎となるストレージ技術が、システム100によって使用される同一のオペレーティングシステムで動作する必要がないことである。いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、Linuxに基づいている。しかしながら、他の実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100は、Windowsなどの代替オペレーティングシステムで実行されているストレージ技術に接続する。ホスト型シークレット管理トランスポートシステムおよび方法100の、ネットワークが基づいている環境(例えばクラウド)を横断するだけでなくストレージ技術のオペレーティングシステムも横断する能力により、ホスト型シークレット管理トランスポートシステムおよび方法100が、シークレット管理のための真に普遍的に適用可能なネットワークであることを可能にする。対照的に、競合相手のシークレット管理システムは、ストレージ技術の環境間および/またはオペレーティングシステム間で機能することはできない。代わりに、これらの競合相手のシークレット管理システムは、特定のクラウド環境でのみ、および/またはストレージ技術の特定のオペレーティングシステムでのみ、機能する。
【0076】
特に、ホスト型シークレット管理トランスポートシステムおよび方法100の1つ以上の実装形態は、複数の接続された環境にシークレットを配布し、シークレットを取り出す能力、シークレットをエクスポートする能力、またはその両方の能力を可能にする。ただし、一部のハードウェアセキュリティモジュール技術では、シークレットのインポートのみが許可されており、シークレットの取り出しは許可されていない。したがって、これは、一部の競合相手のシステムに対して、ホスト型シークレット管理トランスポートシステムおよび方法100によって提供される別の技術的改善である。
【0077】
ホスト型シークレット管理トランスポートシステムおよび方法100と組み合わせて使用するために、
図6は、
図3~
図5で説明されるように、開発クライアントおよび本番クライアントのためのコンピューティングインフラストラクチャを実装するのに好適なプロセッサベースのデバイスを示している。必須ではないが、実装形態のいくつかの部分は、1つ以上のプロセッサによって実行されるプログラムアプリケーションモジュール、オブジェクト、またはマクロなど、プロセッサで実行可能な命令または論理の一般的な文脈で説明される。関連技術の当業者であれば、記載された実装形態、ならびに他の実装形態が、スマートフォンおよびタブレットコンピュータなどの携帯デバイス、ウェアラブルデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルな家電製品、パーソナルコンピュータ(「PC」)、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含む、様々なプロセッサベースのシステム構成で実践できることを理解するであろう。
【0078】
いくつかの実装形態では、ホスト型シークレット管理トランスポートシステムおよび方法100のクライアントは、1つ以上のプロセッサ606、システムメモリ608、およびシステムメモリ608を含む様々なシステム構成要素をプロセッサ606に結合するシステムバス610を含み得る。プロセッサベースのクライアントは、本明細書では単数形で呼ばれることもあるが、特定の実装形態においては2つ以上のシステムまたは他のネットワークコンピューティングデバイスが関与するため、実装形態を単一のシステムに限定することを意図したものではない。市販のシステムの非限定的な例には、様々な製造元のARMプロセッサ、米国インテル社のCoreマイクロプロセッサ、IBM社のPowerPCマイクロプロセッサ、サンマイクロシステム社のSparcマイクロプロセッサ、ヒューレットパッカード社のPA-RISCシリーズマイクロプロセッサ、およびモトローラ社の68xxxシリーズマイクロプロセッサが含まれるが、これらに限定されない。
【0079】
ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアントにおけるプロセッサ606は、1つ以上の中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などのような、任意の論理処理装置であり得る。特に明記しない限り、
図6に示されている様々なブロックの構造および動作は、従来の設計のものである。結果として、そのようなブロックは関連技術の当業者によって理解されるため、本明細書でさらに詳細に説明する必要はない。
【0080】
ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアントにおけるシステムバス610は、メモリコントローラを備えたメモリバス、周辺バス、およびローカルバスを含む、任意の既知のバス構造またはアーキテクチャを採用することができる。システムメモリ608は、読み出し専用メモリ(「ROM」)612およびランダムアクセスメモリ(「RAM」)614を含む。ROM612の一部を形成することができる基本的な入力/出力システム(「BIOS」)616は、プロセッサベースのデバイス内の要素間で情報を転送するのを、例えば起動中などに助ける、基本的なルーチンを包含する。いくつかの実装形態では、データ、命令、および電力用に個別のバスを採用する場合がある。
【0081】
ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアントは、1つ以上のソリッドステートメモリも含み得る。例えば、フラッシュメモリまたはソリッドステートドライブ(SSD)は、コンピュータで読み取り可能な命令、データ構造、プログラムモジュール、およびプロセッサベースのデバイス用の他のデータの不揮発性ストレージを提供する。図示されていないが、プロセッサベースのデバイスは、他の非一時的なコンピュータ可読媒体またはプロセッサ可読媒体、例えば、ハードディスクドライブ、光学ディスクドライブ、またはメモリカード媒体ドライブなどを採用することができる。
【0082】
ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアント内のプログラムモジュールは、オペレーティングシステム630、1つ以上のアプリケーションプログラム632、他のプログラムまたはモジュール634、ドライバ636、およびプログラムデータ638などのシステムメモリ608に格納することができる。
【0083】
ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアントのシステムメモリ608は、通信プログラム640、例えば、プロセッサベースのデバイスがアクセスすることを許可するためのサーバおよび/またはウェブクライアントまたはブラウザも含み得、ユーザコンピューティングシステム、インターネット上のウェブサイト、企業イントラネット、または以下に説明するような他のネットワークなどの他のシステムとデータを交換する。図示された実装形態における通信プログラム640は、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、またはワイヤレスマークアップ言語(WML)などのマークアップ言語ベースであり、ドキュメントのデータにドキュメントの構造を表すために追加された構文的に区切られた文字を使用する、マークアップ言語で動作する。カリフォルニアのモジラ社およびワシントンのマイクロソフト社からのものなど、多くのサーバおよび/またはウェブクライアントまたはブラウザが市販されている。
【0084】
図6では、システムメモリ608、オペレーティングシステム630、アプリケーションプログラム632、他のプログラム/モジュール634、ドライバ636、プログラムデータ638、ならびにサーバおよび/またはブラウザに格納されているものとして示されているが、任意の他の多種多様な非一時的なプロセッサ可読媒体(例えばハードディスクドライブ、光学ディスクドライブ、SSD、および/またはフラッシュメモリ)に格納することができる。
【0085】
ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアントのユーザは、ポインタを介して、例えば指644a、スタイラス644bを介したタッチスクリーン648などの入力デバイスを通して、またはカーソルを制御するコンピュータマウスもしくはトラックボール644cを介して、コマンドおよび情報を入力することができる。他の入力デバイスは、マイクロフォン、ジョイスティック、ゲームパッド、タブレット、スキャナ、生体認証スキャンデバイスなどを含むことができる。これらおよび他の入力デバイス(すなわち、「I/Oデバイス」)は、タッチスクリーンコントローラおよび/またはシステムバス610へのユーザ入力を結合するユニバーサルシリアルバス(「USB」)インターフェースなどのインターフェース646を介してプロセッサ606に接続されるが、パラレルポート、ゲームポートまたは無線インターフェースもしくはシリアルポートなどの他のインターフェースを使用することができる。タッチスクリーン648は、タッチスクリーン648を介して表示するための画像データまたは画像情報を受信するための、ビデオアダプタなどのビデオインターフェース650を介してシステムバス610に結合することができる。示されていないが、プロセッサベースのクライアントは、スピーカ、バイブレータ、触覚アクチュエータ、または触覚エンジンなどのような他の出力デバイスを含むことができる。
【0086】
ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアントは、ネットワーク環境で動作し、1つ以上の論理接続を使用して、1つ以上の通信チャネル、例えば1つ以上のネットワーク614a、614bを介して、1つ以上のリモートコンピュータ、リモートサーバ、および/またはリモートデバイスと通信する。これらの論理接続は、インターネットなどの1つ以上のLANおよび/もしくはWAN、ならびに/またはセルラー通信ネットワークを介するなど、コンピュータの通信を可能にする任意の既知の方法を容易にすることができる。このようなネットワーク環境は、有線および無線の企業全体のコンピュータネットワーク、イントラネット、エクストラネット、インターネット、および他の種類の通信ネットワークで周知である。そのような他の種類の通信ネットワークには、電気通信ネットワーク、セルラーネットワーク、ページングネットワーク、および他のモバイルネットワークが含まれる。
【0087】
ネットワーク環境で使用される場合、ホスト型シークレット管理トランスポートシステムおよび方法100のプロセッサベースのクライアントは、1つ以上のネットワーク、例えばインターネット614aまたはセルラーネットワーク614bなどのネットワークを介して通信を確立するための、有線または無線通信インターフェース652a、656(例えばネットワークインターフェースコントローラ、セルラー無線、WI-FI無線、Bluetooth無線)を含み得る。
【0088】
ネットワーク環境では、プログラムモジュール、アプリケーションプログラム、またはデータ、またはそれらの一部を、サーバコンピューティングシステム(図示せず)に格納することができる。関連技術の当業者であれば、
図6に示されるネットワーク接続は、コンピュータ間の通信を確立する方法のほんの一例であり、無線経由を含む他の接続が使用され得ることを認識するであろう。
【0089】
便宜上、プロセッサ606、システムメモリ608、ならびにネットワークおよび通信インターフェース652a、656は、システムバス610を介して互いに通信可能に結合され、それによって上述の構成要素間の接続を提供するものとして示されている。プロセッサベースのデバイスの代替実装形態では、上述の構成要素は、
図6に示されているものとは異なる方法で通信可能に結合され得る。例えば、上述の構成要素のうちの1つ以上は、他の構成要素に直接結合され得るか、または中間構成要素(図示せず)を介して互いに結合され得る。いくつかの実装形態では、システムバス610は省略され、構成要素は、好適な接続を使用して互いに直接結合される。
【0090】
本明細書および添付の特許請求の範囲全体を通して、「通信経路(communicative pathway)」、「通信結合されている(communicative coupling)」、および「通信結合された(communicatively coupled)」などの変形における「通信の(communicative)」という用語は、一般に、情報を転送および/または交換するための任意の工学的構成を指すために使用される。例示的な通信経路には、導電性経路(例えば導電性ワイヤ、導電性トレース)、磁気経路(例えば磁気媒体)、1つ以上の無線通信プロトコルを介した1つ以上の通信リンク、および/または光学経路(例えば光ファイバ)が含まれるがこれらに限定されず、例示的な通信結合には、電気結合、磁気結合、無線結合、および/または光学結合が含まれるが、これらに限定されない。
【0091】
本明細書および添付の特許請求の範囲全体を通して、不定形の動詞がしばしば使用される。例には、「検出する(to detect)」、「提供する(to provide)」、「送信する(to transmit)」、「通信する(to communicate)」、「処理する(to process)」、「ルーティングする(to route)」などが含まれるが、これらに限定されない。特定の文脈で別段の必要がない限り、そのような不定形の動詞は、「少なくとも検出する(to,at least,detect)」、「少なくとも提供する(to,at least,provide)」、「少なくとも送信する(to,at least,transmit)」など、オープンで包括的な意味で使用される。
【0092】
示された実装形態の上記の説明は、要約に記載されているものを含み、網羅的であることを意図するものではないか、または実装形態を開示された詳細な形式に限定することを意図するものではない。本明細書では、例示の目的で特定の実装形態および例を説明しているが、関連技術の当業者によって認識されるように、本開示の精神および範囲から逸脱することなく、様々な同等の修正を行うことができる。
【0093】
例えば、前述の詳細な説明は、ブロック図、概略図、および例を使用することにより、デバイスおよび/またはプロセスの様々な実装形態を説明している。そのようなブロック図、概略図、および例が1つ以上の特徴および/または動作を包含する限りにおいて、そのようなブロック図内、フローチャート内、または例内の各特徴および/または動作を実装できることは、個別におよび/または集合的に、広範囲のハードウェア、ソフトウェア、ファームウェア、またはそれらの事実上任意の組み合わせによって、当業者によって理解されるであろう。1つの実装形態では、本主題は、特定用途向け集積回路(ASIC)を介して実装され得る。しかしながら、当業者は、本明細書に開示される実装形態の全部または一部が、1つ以上のコンピュータによって実行される1つ以上のコンピュータプログラムとして(例えば1つ以上のコンピュータシステム上で実行される1つ以上のプログラムとして)、1つ以上のコントローラ(例えばマイクロコントローラ)によって実行される1つ以上のプログラムとして、1つ以上のプロセッサ(例えばマイクロプロセッサ、中央処理装置、グラフィカル処理装置)によって実行される1つ以上のプログラムとして、ファームウェアとして、または事実上これらの任意の組み合わせとして、標準の集積回路に同等に実装できること、ならびに回路を設計すること、および/またはソフトウェアおよびまたはファームウェアのためのコードを書くことが、本開示の教示に照らして、当技術分野の通常の技術の1つのスキルの範囲内であることを認識するであろう。
【0094】
論理がソフトウェアとして実装され、メモリに格納される場合、論理または情報は、任意のプロセッサ関連のシステムまたは方法によって、またはそれらに関連して使用するために、任意のプロセッサ可読媒体に格納することができる。本開示の文脈において、メモリは、電子的、磁気的、光学的、または他の物理的デバイス、またはコンピュータおよび/またはプロセッサプログラムを含むか、もしくは格納する手段である、プロセッサ可読媒体である。論理および/または情報は、命令実行システム、機器、またはデバイス、例えばコンピュータベースのシステム、プロセッサを包含するシステム、もしくは論理および/または情報に関連付けられる命令を実行する命令実行システム、機器、またはデバイスから命令をフェッチすることのできる他のシステムによって、またはそれらと接続して使用するために、任意のプロセッサ可読媒体に具体化されることができる。
【0095】
本明細書の文脈において、「非一時的なプロセッサ可読媒体」は、命令実行システム、機器、および/またはデバイスと接続することにより、または接続して使用するための論理および/または情報に関連付けられるプログラムを格納することができる任意の要素であり得る。プロセッサ可読媒体は、例えば電子、磁気、光学、電磁気、赤外線、または半導体システム、機器もしくはデバイスであり得るが、これらに限定されない。コンピュータ可読媒体のより具体的な例(網羅的ではないリスト)には、ポータブルコンピュータディスケット(磁気、コンパクトフラッシュ(登録商標)カード、セキュアデジタルなど)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)、ポータブルコンパクトディスク読み出し専用メモリ(CDROM)、デジタルテープ、および他の非一時的なメディアが含まれる。
【0096】
上述の様々な実施形態は、それらを組み合わせることによってさらなる実施形態を提供することができる。本明細書の特定の教示および定義に矛盾しない程度で、本明細書で言及される、かつ/または出願データシートに列挙される米国特許、米国特許出願公報、米国特許出願、外国特許、外国特許出願、および非特許公報のすべては、それらの全体が参照により本明細書に組み込まれる。必要に応じて、システム、回路、ならびに様々な特許、出願、および刊行物の概念を採用して、さらなる別の実装形態を提供するために、実装形態の態様を修正することができる。
【0097】
本特許出願は、2019年1月29日に出願された米国非仮特許出願第16/261,443号に対する優先権の利益を主張し、その特許出願は、参照によりその全体が本明細書に組み込まれる。
【0098】
上記の詳細な説明に照らして、これらおよび他の変更を実装形態に行うことができる。一般に、以下の特許請求の範囲で使用される用語は、特許請求の範囲を本明細書および特許請求の範囲に開示された特定の実装形態に限定するものと解釈されるべきではなく、表題のこのような特許請求の範囲と均等なすべての範囲とともに、すべての可能な実装形態を含むと解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
【符号の説明】
【0099】
100 ホスト型シークレット管理トランスポートシステム
110 管轄
120 領域
130 マスターレコードハードウェアセキュリティモジュール
140 バックアップレコードハードウェアセキュリティモジュール
150 プライマリキャッシュハードウェアセキュリティモジュール
160 ハードウェアセキュリティモジュールキャッシュプール
170 ソフトウェアコンテナ
180 ソフトウェアコンテナ管理システム
190 プライマリデータベースクラスタ
194 分散レプリカデータベース
198 プライベートサブネット
606 プロセッサ
608 システムメモリ
610 バス
612 ROM
614 RAM
614a インターネット
614b セルラーネットワーク
616 BIOS
630 オペレーティングシステム
632 アプリケーションプログラム
634 他のプログラム/モジュール
636 ドライバ
638 プログラムデータ
640 通信
644a 指
644b スタイラス
644c コンピュータマウスまたはトラックボール
646 インターフェース
648 タッチスクリーン
650 ビデオインターフェース
652a ネットワークインターフェース
656 通信インターフェース
【手続補正書】
【提出日】2021-09-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポートシステムであって、前記システムが、
1つ以上のプロセッサと、一組の命令を格納しているメモリデバイスとを含むサーバを備え、前記一組の命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、
構成要素のより大きな機能的グループである2つ以上の管轄の境界を定義することであって、各管轄が独立したマスターレコードを有し、各管轄が2つ以上の領域を含む、定義することと、
前記2つ以上の領域内でプライマリ領域を定義することと、
前記プライマリ領域内の、その管轄のシークレットのプライマリストレージであるマスターレコードハードウェアセキュリティモジュールにアクセスすることであって、前記マスターレコードハードウェアセキュリティモジュールが、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードであり、前記シークレットに対する前記動作が、作成動作、更新動作、および削除動作のうちの1つ以上を含む、アクセスすることと、
前記プライマリ領域ではない、1つ以上のセカンダリ領域を定義することと、
前記1つ以上のセカンダリ領域内の、前記マスターレコードハードウェアセキュリティモジュールからの前記シークレットのデータバックアップが作成される場所であるバックアップレコードハードウェアセキュリティモジュールにアクセスすることと、
前記マスターレコードハードウェアセキュリティモジュールから、複数の異なる会社のマルチテナントシークレット管理を同時にサポートする前記バックアップレコードハードウェアセキュリティモジュールへのライブレプリケーションを実行することと、
前記2つ以上の領域の各々の、前記バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信するプライマリキャッシュハードウェアセキュリティモジュールにアクセスすることと、
前記2つ以上の領域の各々の、ハードウェアセキュリティモジュールキャッシュプールにアクセスすることであって、前記ハードウェアセキュリティモジュールキャッシュプールが、領域内のトラフィックの必要性に応じて前記プライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である、アクセスすることと、
管轄内の前記2つ以上の領域の各々の、ソフトウェアコンテナのクラスタ、および前記ソフトウェアコンテナが利用可能であり適切に動作していることを保証するソフトウェアコンテナ管理システムにアクセスすることと、
ソフトウェアコンテナにおける値の要求を受信することであって、領域のクラスタ内の前記ソフトウェアコンテナからの前記値の要求が、すべての読み出し動作について、前記プライマリキャッシュハードウェアセキュリティモジュールと前記ハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される、受信することと、を行わせ、
存在しない値が要求された場合に、前記システムが前記値の発信元の管轄を調べ、前記要求の発信元の管轄と異なりかつ許容される場合は、前記発信元の管轄に前記値を要求し、次に前記値が、前記要求が発信された前記領域の前記プライマリキャッシュハードウェアセキュリティモジュールにキャッシュされ、次に前記値がライブレプリケーションを介して前記ハードウェアセキュリティモジュールキャッシュプールに配布される、システム。
【請求項2】
前記管轄が、地政学的境界に基づいて定義され、前記地政学的境界が、国、国の連合、または国のグループを含み、前記管轄が、領域を編成するように任意に定義され基づき、単一のグループ、会社、または企業に結合されているシークレットを保持し、前記領域が、前記管轄のうちの1つの中にある地域的方角または国を含む、現実世界の境界によって定義され、前記領域が、同一のクラウドプロバイダ、異なるクラウドプロバイダ、オンプレミスシステム、およびプライベートクラウドのうちの1つ以上に包含された完全に固有のデータセンターに基づき、セカンダリ領域が、プライマリ領域全体が利用可能ではなくなった場合に高い可用性を提供する、請求項1に記載のシステム。
【請求項3】
前記マスターレコードが、すべての書き込み動作が発生する場所である、請求項1に記載のシステム。
【請求項4】
緊急事態の間を除いて、前記マスターレコードに対する読み出し動作は発生しない、請求項1に記載のシステム。
【請求項5】
前記バックアップレコードハードウェアセキュリティモジュールが、データベースロックが発生する可能性を低減または排除するために、前記マスターレコードハードウェアセキュリティモジュールへの負荷を可能な限り低く保持する、請求項1に記載のシステム。
【請求項6】
前記プライマリキャッシュハードウェアセキュリティモジュールが、その対応する領域内のすべてのキャッシュされた値のプライマリレプリケーションソースとして機能する、請求項1に記載のシステム。
【請求項7】
前記システムが、前記複製された値を前記管轄間で安全に配布して要求の遅延を低減し、前記複製された値を前記プライマリキャッシュハードウェアセキュリティモジュールおよびハードウェアセキュリティモジュールキャッシュプールを介して配布し、一方で前記対応する管轄の前記マスターレコードハードウェアセキュリティモジュールが常に元の値を包含する、請求項1に記載のシステム。
【請求項8】
前記2つ以上の領域の各々がデータベースクラスタを含み、前記データベースクラスタのうちの1つが前記プライマリとして指定され、データが前記プライマリデータベースクラスタに格納され、前記プライマリデータベースクラスタから、前記データが分散レプリカデータベースにグローバルに複製される、請求項1に記載のシステム。
【請求項9】
前記プライマリデータベースクラスタに格納される前記データが、前記システムで管理される前記シークレットのメタデータであり、前記メタデータが、名前、内部名、バージョン番号、発信元の管轄、および前記値が配布され得る場所を保護するセキュリティポリシーのうちの1つ以上を含む、請求項8に記載のシステム。
【請求項10】
前記メタデータを単一のエンティティとして格納するのではなく、前記データが、メタデータエンティティを構築するためにレンダリングされるイベントのストリームとして格納される、請求項8に記載のシステム。
【請求項11】
前記イベントのストリームが、ミューテーション動作の実行を引き起こすすべてのイベントの永続的な監査ログを提供する、請求項10に記載のシステム。
【請求項12】
前記永続的な監査ログ内のイベントが、異常およびセキュリティの問題について機械学習を使用して分析される、請求項11に記載のシステム。
【請求項13】
クライアントがユーザによって作成され、鍵束に結合されるが、特定の環境の値への前記クライアントのアクセスを制限し、これにより本番値および開発値が交差しないことを保障する、請求項1に記載のシステム。
【請求項14】
前記クライアントが、前記特定の環境に結合されている、請求項13に記載のシステム。
【請求項15】
異なる種類の特定の環境が、本番、ステージング、テスト、および開発を含む、請求項13に記載のシステム。
【請求項16】
すべての領域が、前記領域内の前記構成要素のすべてを包含するプライベートサブネットを含み、前記領域のうちの1つ内の他のすべてのシステムが、様々なアベイラビリティーゾーン内のプライベートサブネットに配置されており、これにより、インターネットへの外部接続を介した直接接触のいずれの可能性も排除する、請求項1に記載のシステム。
【請求項17】
領域間のすべての通信および管轄間の通信は、暗号化された接続によって処理される、請求項1に記載のシステム。
【請求項18】
1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポート方法であって、前記方法が、
構成要素のより大きな機能的グループである2つ以上の管轄の境界を定義することであって、各管轄が独立したマスターレコードを有し、各管轄が2つ以上の領域を含む、定義することと、
前記2つ以上の領域内でプライマリ領域を定義することと、
前記プライマリ領域内の、その管轄のシークレットのプライマリストレージであるマスターレコードハードウェアセキュリティモジュールにアクセスすることであって、前記マスターレコードハードウェアセキュリティモジュールが、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードであり、前記シークレットに対する前記動作が、作成動作、更新動作、および削除動作のうちの1つ以上を含む、アクセスすることと、
前記プライマリ領域ではない、1つ以上のセカンダリ領域を定義することと、
前記1つ以上のセカンダリ領域内の、前記マスターレコードハードウェアセキュリティモジュールからの前記シークレットのデータバックアップが作成される場所である、バックアップレコードハードウェアセキュリティモジュールにアクセスすることと、
前記マスターレコードハードウェアセキュリティモジュールから、複数の異なる会社のマルチテナントシークレット管理を同時にサポートする前記バックアップレコードハードウェアセキュリティモジュールへのライブレプリケーションを実行することと、
前記2つ以上の領域の各々の、前記バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信するプライマリキャッシュハードウェアセキュリティモジュールにアクセスすることと、
前記2つ以上の領域の各々の、ハードウェアセキュリティモジュールキャッシュプールにアクセスすることであって、前記ハードウェアセキュリティモジュールキャッシュプールが、領域内のトラフィックの必要性に応じて前記プライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である、アクセスすることと、
管轄内の前記2つ以上の領域の各々の、ソフトウェアコンテナのクラスタ、および前記ソフトウェアコンテナが利用可能であり適切に動作していることを保証するソフトウェアコンテナ管理システムにアクセスすることと、
ソフトウェアコンテナにおける値の要求を受信することであって、領域のクラスタ内の前記ソフトウェアコンテナからの前記値の要求が、すべての読み出し動作について、前記プライマリキャッシュハードウェアセキュリティモジュールと前記ハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される、受信することと、を含み、
存在しない値が要求された場合に、前記システムが前記値の発信元の管轄を調べ、前記要求の発信元の管轄と異なりかつ許容される場合は、前記発信元の管轄に前記値を要求し、次に前記値が、前記要求が発信された前記領域の前記プライマリキャッシュハードウェアセキュリティモジュールにキャッシュされ、次に前記値がライブレプリケーションを介して前記ハードウェアセキュリティモジュールキャッシュプールに配布される、方法。
【請求項19】
前記管轄が、地政学的境界に基づいて定義され、前記地政学的境界が、国、国の連合、または国のグループを含み、前記管轄が、領域を編成するように任意に定義され基づき、単一のグループ、会社、または企業に結合されているシークレットを保持し、前記領域が、前記管轄のうちの1つの中にある地域的方角または国を含む、現実世界の境界によって定義され、前記領域が、同一のクラウドプロバイダ、異なるクラウドプロバイダ、オンプレミスシステム、およびプライベートクラウドのうちの1つ以上に包含された完全に固有のデータセンターに基づき、セカンダリ領域が、プライマリ領域全体が利用可能ではなくなった場合に高い可用性を提供する、請求項18に記載の方法。
【請求項20】
前記マスターレコードが、すべての書き込み動作が発生する場所である、請求項18に記載の方法。
【請求項21】
緊急事態の間を除いて、前記マスターレコードに対する読み出し動作は発生しない、請求項18に記載の方法。
【請求項22】
前記バックアップレコードハードウェアセキュリティモジュールが、データベースロックが発生する可能性を低減または排除するために、前記マスターレコードハードウェアセキュリティモジュールへの負荷を可能な限り低く保持する、請求項18に記載の方法。
【請求項23】
前記プライマリキャッシュハードウェアセキュリティモジュールが、その対応する領域内のすべてのキャッシュされた値のプライマリレプリケーションソースとして機能する、請求項18に記載の方法。
【請求項24】
前記方法が、前記複製された値を前記管轄間で安全に配布して要求の遅延を低減し、前記複製された値を前記プライマリキャッシュハードウェアセキュリティモジュールおよびハードウェアセキュリティモジュールキャッシュプールを介して配布し、一方で前記対応する管轄の前記マスターレコードハードウェアセキュリティモジュールが常に元の値を包含する、請求項18に記載の方法。
【請求項25】
1つの領域がプライマリデータベースクラスタで指定され、データが前記プライマリデータベースクラスタに格納され、前記プライマリデータベースクラスタから、前記データが各領域に配置された分散レプリカデータベースにグローバルに複製される、請求項18に記載の方法。
【請求項26】
前記プライマリデータベースクラスタに格納される前記データが、前記システムで管理される前記シークレットのメタデータであり、前記メタデータが、名前、内部名、バージョン番号、発信元の管轄、および前記値が配布され得る場所を保護するセキュリティポリシーのうちの1つ以上を含む、請求項25に記載の方法。
【請求項27】
前記メタデータを単一のエンティティとして格納するのではなく、前記データが、メタデータエンティティを構築するためにレンダリングされるイベントのストリームとして格納される、請求項25に記載の
方法。
【請求項28】
前記イベントのストリームが、ミューテーション動作の実行を引き起こすすべてのイベントの永続的な監査ログを提供する、請求項27に記載の
方法。
【請求項29】
前記永続的な監査ログ内のイベントが、異常およびセキュリティの問題について機械学習を使用して分析される、請求項28に記載の
方法。
【請求項30】
クライアントがユーザによって作成され、鍵束に結合されるが、特定の環境の値への前記クライアントのアクセスを制限し、これにより本番値および開発値が交差しないことを保障する、請求項18に記載の
方法。
【請求項31】
前記クライアントが、前記特定の環境に結合されている、請求項30に記載の方法。
【請求項32】
異なる種類の特定の環境が、本番、ステージング、テスト、および開発を含む、請求項30に記載の方法。
【請求項33】
すべての領域が、前記領域内の前記構成要素のすべてを包含するプライベートサブネットを含み、前記領域のうちの1つ内の他のすべてのシステムが、様々なアベイラビリティーゾーン内のプライベートサブネットに配置されており、これにより、インターネットへの外部接続を介した直接接触のいずれの可能性も排除する、請求項18に記載の方法。
【請求項34】
領域間のすべての通信および管轄間の通信が、暗号化された接続によって処理される、請求項23に記載の方法。
【請求項35】
1つ以上のオフサイトの場所でシークレットを管理するためのホスト型シークレット管理トランスポートシステムであって、前記システムが、
構成要素のより大きな機能グループである2つ以上の管轄であって、各管轄が独立したマスターレコードを有し、各管轄が少なくともプライマリ領域およびセカンダリ領域をさらに含む2つ以上の領域を含む、2つ以上の管轄と、
その管轄のシークレットのプライマリストレージである、前記プライマリ領域に含まれるマスターレコードハードウェアセキュリティモジュールであって、前記マスターレコードハードウェアセキュリティモジュールが、その対応する管轄内のシークレットに対するすべての動作に関する真実レコードであり、シークレットに対する前記動作は、作成動作、更新動作、および削除動作のうちの1つ以上を含む、マスターレコードハードウェアセキュリティモジュールと、
前記プライマリ領域ではない1つ以上のセカンダリ領域に含まれるバックアップレコードハードウェアセキュリティモジュールであって、複数の異なる会社のマルチテナントシークレット管理を同時にサポートする前記マスターレコードハードウェアセキュリティモジュールからライブレプリケーションを受信し、前記バックアップレコードハードウェアセキュリティモジュールが、前記マスターレコードハードウェアセキュリティモジュールからデータのバックアップが作成される場所である、バックアップレコードハードウェアセキュリティモジュールと、
前記バックアップレコードハードウェアセキュリティモジュールからライブレプリケーションを受信する、前記2つ以上の領域の各々に包含される、プライマリキャッシュハードウェアセキュリティモジュールと、
前記2つ以上の領域の各々に包含されるハードウェアセキュリティモジュールキャッシュプールであって、各ハードウェアセキュリティモジュールキャッシュプールが、領域内のトラフィックの必要性に応じて、その対応するプライマリキャッシュハードウェアセキュリティモジュールから複製するように拡張可能である、ハードウェアセキュリティモジュールキャッシュプールと、
前記2つ以上の領域の各々に含まれるソフトウェアコンテナのクラスタおよびソフトウェアコンテナ管理システムであって、前記ソフトウェアコンテナ管理システムが、前記ソフトウェアコンテナが利用可能であり適切に動作していることを保証し、領域のクラスタ内のソフトウェアコンテナからの要求が、すべての読み出し動作について、前記プライマリキャッシュハードウェアセキュリティモジュールと前記ハードウェアセキュリティモジュールキャッシュプールとの間で負荷分散される、ソフトウェアコンテナのクラスタおよびソフトウェアコンテナ管理システムと、を含み、
存在しない値が要求された場合に、前記システムが前記値の発信元の管轄を識別し、前記要求の発信元の管轄と異なりかつ許容される場合は、前記発信元の管轄に前記値を要求し、次に前記値が、前記要求が発信された前記領域の前記プライマリキャッシュハードウェアセキュリティモジュールにキャッシュされ、次に前記値がライブレプリケーションを介して前記ハードウェアセキュリティモジュールキャッシュプールに配布される、システム。
【国際調査報告】