IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-533070ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布
<>
  • 特表-ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布 図1
  • 特表-ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布 図2A
  • 特表-ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布 図2B
  • 特表-ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布 図2C
  • 特表-ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布 図3
  • 特表-ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布 図4
  • 特表-ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】ハードウェア・セキュリティ・モジュールのルート鍵の安全な配布
(51)【国際特許分類】
   H04L 9/08 20060101AFI20240905BHJP
   H04L 9/10 20060101ALI20240905BHJP
【FI】
H04L9/08 C
H04L9/10 A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024512962
(86)(22)【出願日】2022-09-09
(85)【翻訳文提出日】2024-02-23
(86)【国際出願番号】 EP2022075096
(87)【国際公開番号】W WO2023036927
(87)【国際公開日】2023-03-16
(31)【優先権主張番号】17/447,315
(32)【優先日】2021-09-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100091568
【弁理士】
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】グエン、ディヴィッド
(72)【発明者】
【氏名】パヴォネ、マルコ
(72)【発明者】
【氏名】ハンセン、クリフォード
(72)【発明者】
【氏名】サリヴァン、ゲリー
(72)【発明者】
【氏名】ヘニンガー、ロス
(57)【要約】
ルート鍵をHSMクラスタのハードウェア・セキュリティ・モジュール(HSM)に配布するための手法が提供される。マスタ鍵を作成するための署名された第1のコマンドが、ソースHSMに送信される。製造時にソースHSMにハードコードされたモジュール署名鍵を使用してソースHSMによって署名された応答において、マスタ鍵のフィンガープリントが受信される。インポータ鍵ペアを生成するための第2のコマンドが、第1のHSMに送信される。ラップされたマスタ鍵を作成してエクスポートする要求が、ソースHSMに送信される。トランスポート鍵を使用してラップされたマスタ鍵が受信される。ラップされたマスタ鍵が、第1のHSMに送信される。第1のHSM内で、マスタ鍵が有効化される。
【特許請求の範囲】
【請求項1】
中央処理装置(CPU)と、
前記CPUに結合されたメモリと、
前記CPUに結合された1つまたは複数のコンピュータ可読ストレージ媒体とを備えるコンピュータ・システムであって、前記1つまたは複数のコンピュータ可読ストレージ媒体が、ルート鍵をHSMクラスタのハードウェア・セキュリティ・モジュール(HSM)に配布する方法を実施するために、前記メモリを介して前記CPUによって実行される命令を集合的に含み、前記方法が、
前記コンピュータ・システムが、マスタ鍵を作成するための第1のコマンドをソースHSMに送信することであって、前記第1のコマンドが、前記HSMクラスタ内のHSMの管理者によって署名される、前記送信することと、
前記コンピュータ・システムが、前記ソースHSMから、前記ソースHSMの製造時に前記ソースHSMにハードコードされたモジュール署名鍵を使用して前記ソースHSMによって署名された応答において、前記マスタ鍵のフィンガープリントを受信することと、
前記コンピュータ・システムが、第2のコマンドを前記HSMクラスタ内の第1のHSMに送信することであって、前記第2のコマンドが、インポータ秘密鍵およびインポータ公開鍵を含むインポータ鍵ペアを生成する、前記送信することと、
前記コンピュータ・システムが、前記第2のコマンドを前記送信することに応答して、前記第1のHSMから前記インポータ公開鍵を受信することと、
前記コンピュータ・システムが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記コンピュータ・システムが、前記要求を前記送信することに応答して、前記ソースHSMから、(i)トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)エクスポータ公開鍵を受信することであって、前記トランスポート鍵が、前記インポータ公開鍵およびエクスポータ秘密鍵から導出される、前記受信することと、
前記コンピュータ・システムが、前記第1のHSMに、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を送信することと、
前記コンピュータ・システムが、前記第1のHSM内の前記マスタ鍵を有効化することと
を含む、コンピュータ・システム。
【請求項2】
前記第1のHSMをさらに備え、前記方法が、
前記マスタ鍵および前記エクスポータ公開鍵を前記送信した後に、前記第1のHSMが、前記第1のHSMによって格納された前記エクスポータ公開鍵および前記インポータ秘密鍵から前記トランスポート鍵を導出することと、
前記第1のHSMが、前記トランスポート鍵を使用して前記マスタ鍵をラップ解除することと、
前記第1のHSMが、前記ラップ解除されたマスタ鍵を、新しいマスタ鍵として、コミットされていない状態で前記第1のHSMのレジスタに登録することと
をさらに含む、請求項1に記載のコンピュータ・システム。
【請求項3】
前記方法が、
前記第1のHSMが、前記インポータ秘密鍵、前記エクスポータ公開鍵、および前記トランスポート鍵を破棄することをさらに含む、請求項2に記載のコンピュータ・システム。
【請求項4】
前記方法が、
前記コンピュータ・システムが、前記第1のHSMの前記レジスタに登録された前記マスタ鍵を、前記コミットされていない状態からコミットされた状態に変更することをさらに含む、請求項2または3に記載のコンピュータ・システム。
【請求項5】
前記方法が、
前記コンピュータ・システムが、鍵管理サービスにおいて、前記有効化されたマスタ鍵をルート鍵として使用し、前記鍵管理サービスが、前記鍵管理サービスの外部での前記ルート鍵の管理を必要としない、クラウド・コンピューティング環境内のデータを保護する暗号鍵に対する完全な制御を顧客に提供し、クラウド・サービス・プロバイダが前記データにアクセスするのを防ぐことをさらに含む、請求項1ないし4のいずれかに記載のコンピュータ・システム。
【請求項6】
前記方法が、
前記コンピュータ・システムが、第2のインポータ秘密鍵および第2のインポータ公開鍵を含む第2のインポータ鍵ペアを生成するためのコマンドを前記HSMクラスタ内の第2のHSMに送信することであって、前記第2のインポータ鍵ペアが前記インポータ鍵ペアと異なる、前記送信することと、
前記コンピュータ・システムが、前記第2のHSMから前記第2のインポータ公開鍵を受信することと、
前記コンピュータ・システムが、前記マスタ鍵および前記第2のインポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記コンピュータ・システムが、前記ソースHSMから、(i)第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)第2のエクスポータ公開鍵を受信することであって、前記第2のトランスポート鍵が前記トランスポート鍵と異なり、前記第2のインポータ公開鍵および第2のエクスポータ秘密鍵から導出される、前記受信することと、
前記コンピュータ・システムが、前記第2のHSMに、(i)前記第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記第2のエクスポータ公開鍵を送信することであって、前記第2のHSMが、前記第2のHSMによって格納された前記第2のエクスポータ公開鍵および前記第2のインポータ秘密鍵から前記第2のトランスポート鍵を導出し、前記第2のトランスポート鍵を使用して前記マスタ鍵をラップ解除し、前記マスタ鍵をコミットされていない状態で前記第2のHSMのレジスタに登録する、前記送信することと、
前記コンピュータ・システムが、前記第2のHSMに登録された前記マスタ鍵をコミットされた状態に設定し、前記第2のHSMによって格納された前記マスタ鍵を有効化することと
をさらに含む、請求項1ないし5のいずれかに記載のコンピュータ・システム。
【請求項7】
前記ソースHSMをさらに備え、前記方法が、
前記ソースHSMが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を受信することと、
前記ソースHSMが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記受信することに応答して、前記エクスポータ秘密鍵および前記エクスポータ公開鍵を含むエクスポータ鍵ペアを生成することと、
前記ソースHSMが、前記トランスポート鍵を前記インポータ公開鍵および前記エクスポータ秘密鍵から導出することと、
前記ソースHSMが、前記トランスポート鍵を使用して前記マスタ鍵をラップすることと、
前記ソースHSMが前記要求に対する応答を生成することであって、前記応答が、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を含む、前記生成することと、
前記ソースHSMが、前記インポータ公開鍵、前記エクスポータ秘密鍵、および前記トランスポート鍵を破棄することと
をさらに含む、請求項1ないし6のいずれかに記載のコンピュータ・システム。
【請求項8】
前記方法が、
前記第1のコマンドを前記送信することに応答して、前記ソースHSMが、署名公開鍵を使用することによって前記第1のコマンドの署名の妥当性を確認することと、
前記ソースHSMが、前記マスタ鍵を生成することと、
前記ソースHSMが、前記モジュール署名鍵を使用して前記第1のコマンドに対する応答を生成し、前記応答に署名することと
をさらに含む、請求項7に記載のコンピュータ・システム。
【請求項9】
前記方法が、
前記コンピュータ・システムが、前記HSMクラスタ内の前記HSMの前記管理者を確立することと、
前記コンピュータ・システムが、秘密鍵および公開鍵のペアからの証明書を前記HSMにアップロードすることであって、前記複数のHSMのうちの各HSMがインプリント・モードから解放された後に、前記証明書がコマンドを許可する、前記アップロードすることと
をさらに含む、請求項1ないし8のいずれかに記載のコンピュータ・システム。
【請求項10】
ルート鍵をHSMクラスタのハードウェア・セキュリティ・モジュール(HSM)に配布するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
1つまたは複数のコンピュータ可読ストレージ媒体に集合的に格納されたコンピュータ可読プログラム・コードを有する前記1つまたは複数のコンピュータ可読ストレージ媒体を備えており、前記コンピュータ可読プログラム・コードが、コンピュータ・システムの中央処理装置(CPU)によって実行され、前記コンピュータ・システムに、
前記コンピュータ・システムが、マスタ鍵を作成するための第1のコマンドをソースHSMに送信することであって、前記第1のコマンドが、前記HSMクラスタ内のHSMの管理者によって署名される、前記送信することと、
前記コンピュータ・システムが、前記ソースHSMから、前記ソースHSMの製造時に前記ソースHSMにハードコードされたモジュール署名鍵を使用して前記ソースHSMによって署名された応答において、前記マスタ鍵のフィンガープリントを受信することと、
前記コンピュータ・システムが、第2のコマンドを前記HSMクラスタ内の第1のHSMに送信することであって、前記第2のコマンドが、インポータ秘密鍵およびインポータ公開鍵を含むインポータ鍵ペアを生成する、前記送信することと、
前記コンピュータ・システムが、前記第2のコマンドを前記送信することに応答して、前記第1のHSMから前記インポータ公開鍵を受信することと、
前記コンピュータ・システムが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記コンピュータ・システムが、前記要求を前記送信することに応答して、前記ソースHSMから、(i)トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)エクスポータ公開鍵を受信することであって、前記トランスポート鍵が、前記インポータ公開鍵およびエクスポータ秘密鍵から導出される、前記受信することと、
前記コンピュータ・システムが、前記第1のHSMに、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を送信することと、
前記コンピュータ・システムが、前記第1のHSM内の前記マスタ鍵を有効化することと
を含む方法を実行させる、コンピュータ・プログラム製品。
【請求項11】
前記方法が、
前記マスタ鍵および前記エクスポータ公開鍵を前記送信した後に、前記コンピュータ・システムが、前記第1のHSMによって格納された前記エクスポータ公開鍵および前記インポータ秘密鍵から前記トランスポート鍵を導出することと、
前記コンピュータ・システムが、前記トランスポート鍵を使用して前記マスタ鍵をラップ解除することと、
前記コンピュータ・システムが、前記ラップ解除されたマスタ鍵を、新しいマスタ鍵として、コミットされていない状態で前記第1のHSMのレジスタに登録することと
をさらに含む、請求項10に記載のコンピュータ・プログラム製品。
【請求項12】
前記方法が、
前記コンピュータ・システムが、前記インポータ秘密鍵、前記エクスポータ公開鍵、および前記トランスポート鍵を破棄することをさらに含む、請求項11に記載のコンピュータ・プログラム製品。
【請求項13】
前記方法が、
前記コンピュータ・システムが、前記第1のHSMの前記レジスタに登録された前記マスタ鍵を、前記コミットされていない状態からコミットされた状態に変更することをさらに含む、請求項11または12に記載のコンピュータ・プログラム製品。
【請求項14】
前記方法が、
前記コンピュータ・システムが、鍵管理サービスにおいて、前記有効化されたマスタ鍵をルート鍵として使用し、前記鍵管理サービスが、前記鍵管理サービスの外部での前記ルート鍵の管理を必要としない、クラウド・コンピューティング環境内のデータを保護する暗号鍵に対する完全な制御を顧客に提供し、クラウド・サービス・プロバイダが前記データにアクセスするのを防ぐことをさらに含む、請求項10ないし13のいずれかに記載のコンピュータ・プログラム製品。
【請求項15】
前記方法が、
前記コンピュータ・システムが、第2のインポータ秘密鍵および第2のインポータ公開鍵を含む第2のインポータ鍵ペアを生成するためのコマンドを前記HSMクラスタ内の第2のHSMに送信することであって、前記第2のインポータ鍵ペアが前記インポータ鍵ペアと異なる、前記送信することと、
前記コンピュータ・システムが、前記第2のHSMから前記第2のインポータ公開鍵を受信することと、
前記コンピュータ・システムが、前記マスタ鍵および前記第2のインポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記コンピュータ・システムが、前記ソースHSMから、(i)第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)第2のエクスポータ公開鍵を受信することであって、前記第2のトランスポート鍵が前記トランスポート鍵と異なり、前記第2のインポータ公開鍵および第2のエクスポータ秘密鍵から導出される、前記受信することと、
前記コンピュータ・システムが、前記第2のHSMに、(i)前記第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記第2のエクスポータ公開鍵を送信することであって、前記第2のHSMが、前記第2のHSMによって格納された前記第2のエクスポータ公開鍵および前記第2のインポータ秘密鍵から前記第2のトランスポート鍵を導出し、前記第2のトランスポート鍵を使用して前記マスタ鍵をラップ解除し、前記マスタ鍵をコミットされていない状態で前記第2のHSMのレジスタに登録する、前記送信することと、
前記コンピュータ・システムが、前記第2のHSMに登録された前記マスタ鍵をコミットされた状態に設定し、前記第2のHSMによって格納された前記マスタ鍵を有効化することと
をさらに含む、請求項10ないし14のいずれかに記載のコンピュータ・プログラム製品。
【請求項16】
前記方法が、
前記コンピュータ・システムが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を受信することと、
前記コンピュータ・システムが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記受信することに応答して、前記エクスポータ秘密鍵および前記エクスポータ公開鍵を含むエクスポータ鍵ペアを生成することと、
前記コンピュータ・システムが、前記トランスポート鍵を前記インポータ公開鍵および前記エクスポータ秘密鍵から導出することと、
前記コンピュータ・システムが、前記トランスポート鍵を使用して前記マスタ鍵をラップすることと、
前記コンピュータ・システムが前記要求に対する応答を生成することであって、前記応答が、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を含む、前記生成することと、
前記コンピュータ・システムが、前記インポータ公開鍵、前記エクスポータ秘密鍵、および前記トランスポート鍵を破棄することと
をさらに含む、請求項10ないし15のいずれかに記載のコンピュータ・プログラム製品。
【請求項17】
前記方法が、
前記第1のコマンドを前記送信することに応答して、前記コンピュータ・システムが、署名公開鍵を使用することによって前記第1のコマンドの署名の妥当性を確認することと、
前記コンピュータ・システムが、前記マスタ鍵を生成することと、
前記コンピュータ・システムが、前記モジュール署名鍵を使用して前記第1のコマンドに対する応答を生成し、前記応答に署名することと
をさらに含む、請求項16に記載のコンピュータ・プログラム製品。
【請求項18】
コンピュータ実装方法であって、
1つまたは複数のプロセッサによって、マスタ鍵を作成するための第1のコマンドをソースHSMに送信することであって、前記第1のコマンドが、前記HSMクラスタ内のHSMの管理者によって署名される、前記送信することと、
前記1つまたは複数のプロセッサによって、前記ソースHSMから、前記ソースHSMの製造時に前記ソースHSMにハードコードされたモジュール署名鍵を使用して前記ソースHSMによって署名された応答において、前記マスタ鍵のフィンガープリントを受信することと、
前記1つまたは複数のプロセッサによって、第2のコマンドを前記HSMクラスタ内の第1のHSMに送信することであって、前記第2のコマンドが、インポータ秘密鍵およびインポータ公開鍵を含むインポータ鍵ペアを生成する、前記送信することと、
前記1つまたは複数のプロセッサによって、前記第2のコマンドを前記送信することに応答して、前記第1のHSMから前記インポータ公開鍵を受信することと、
前記1つまたは複数のプロセッサによって、前記マスタ鍵および前記インポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記1つまたは複数のプロセッサによって、前記要求を前記送信することに応答して、前記ソースHSMから、(i)トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)エクスポータ公開鍵を受信することであって、前記トランスポート鍵が、前記インポータ公開鍵およびエクスポータ秘密鍵から導出される、前記受信することと、
前記1つまたは複数のプロセッサによって、前記第1のHSMに、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を送信することと、
前記1つまたは複数のプロセッサによって、前記第1のHSM内の前記マスタ鍵を有効化することと
を含む、コンピュータ実装方法。
【請求項19】
前記マスタ鍵および前記エクスポータ公開鍵を前記送信した後に、前記1つまたは複数のプロセッサによって、前記第1のHSMによって格納された前記エクスポータ公開鍵および前記インポータ秘密鍵から前記トランスポート鍵を導出することと、
前記1つまたは複数のプロセッサによって、前記トランスポート鍵を使用して前記マスタ鍵をラップ解除することと、
前記1つまたは複数のプロセッサによって、前記ラップ解除されたマスタ鍵を、新しいマスタ鍵として、コミットされていない状態で前記第1のHSMのレジスタに登録することと
をさらに含む、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記1つまたは複数のプロセッサによって、前記インポータ秘密鍵、前記エクスポータ公開鍵、および前記トランスポート鍵を破棄することをさらに含む、請求項19に記載のコンピュータ実装方法。
【請求項21】
前記1つまたは複数のプロセッサによって、前記第1のHSMの前記レジスタに登録された前記マスタ鍵を、前記コミットされていない状態からコミットされた状態に変更することをさらに含む、請求項19または20に記載のコンピュータ実装方法。
【請求項22】
前記1つまたは複数のプロセッサによって、鍵管理サービスにおいて、前記有効化されたマスタ鍵をルート鍵として使用し、前記鍵管理サービスが、前記鍵管理サービスの外部での前記ルート鍵の管理を必要としない、クラウド・コンピューティング環境内のデータを保護する暗号鍵に対する完全な制御を顧客に提供し、クラウド・サービス・プロバイダが前記データにアクセスするのを防ぐことをさらに含む、請求項18ないし21のいずれかに記載のコンピュータ実装方法。
【請求項23】
前記1つまたは複数のプロセッサによって、第2のインポータ秘密鍵および第2のインポータ公開鍵を含む第2のインポータ鍵ペアを生成するためのコマンドを前記HSMクラスタ内の第2のHSMに送信することであって、前記第2のインポータ鍵ペアが前記インポータ鍵ペアと異なる、前記送信することと、
前記1つまたは複数のプロセッサによって、前記第2のHSMから前記第2のインポータ公開鍵を受信することと、
前記1つまたは複数のプロセッサによって、前記マスタ鍵および前記第2のインポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記1つまたは複数のプロセッサによって、前記ソースHSMから、(i)第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)第2のエクスポータ公開鍵を受信することであって、前記第2のトランスポート鍵が前記トランスポート鍵と異なり、前記第2のインポータ公開鍵および第2のエクスポータ秘密鍵から導出される、前記受信することと、
前記1つまたは複数のプロセッサによって、前記第2のHSMに、(i)前記第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記第2のエクスポータ公開鍵を送信することであって、前記第2のHSMが、前記第2のHSMによって格納された前記第2のエクスポータ公開鍵および前記第2のインポータ秘密鍵から前記第2のトランスポート鍵を導出し、前記第2のトランスポート鍵を使用して前記マスタ鍵をラップ解除し、前記マスタ鍵をコミットされていない状態で前記第2のHSMのレジスタに登録する、前記送信することと、
前記1つまたは複数のプロセッサによって、前記第2のHSMに登録された前記マスタ鍵をコミットされた状態に設定し、前記第2のHSMによって格納された前記マスタ鍵を有効化することと
をさらに含む、請求項18ないし22のいずれかに記載のコンピュータ実装方法。
【請求項24】
クラウド環境内でサービスとしてのソフトウェアを提供することをさらに含み、前記ソフトウェアが、前記クラウド環境内のハードウェア・プロセッサによって実行されて、前記第1のコマンドを前記送信することと、前記マスタ鍵の前記フィンガープリントを前記受信することと、前記第2のコマンドを前記送信することと、前記インポータ公開鍵を前記受信することと、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記送信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記受信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記送信することと、前記第1のHSM内の前記マスタ鍵を前記有効化することとを実施する、請求項18ないし23のいずれかに記載のコンピュータ実装方法。
【請求項25】
コンピュータ内でコンピュータ可読プログラム・コードを作成すること、統合すること、ホストすること、維持すること、およびデプロイすることのうちの少なくとも1つのために少なくとも1つのサポート・サービスを提供することをさらに含み、前記プログラム・コードが、前記コンピュータのプロセッサによって実行されて、前記第1のコマンドを前記送信することと、前記マスタ鍵の前記フィンガープリントを前記受信することと、前記第2のコマンドを前記送信することと、前記インポータ公開鍵を前記受信することと、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記送信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記受信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記送信することと、前記第1のHSM内の前記マスタ鍵を前記有効化することとを実施する、請求項18ないし24のいずれかに記載のコンピュータ実装方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピューティング・インフラストラクチャのリソースを管理することに関し、より詳細には、ハードウェア・セキュリティ・モジュール(HSM:hardware security module)クラスタを初期化すること、およびHSMクラスタ全体に暗号鍵を安全に配布することに関する。
【背景技術】
【0002】
クラウド・サービス・プロバイダによって提供される既知の鍵管理サービスは、独自の鍵の持ち込み機能を含み、この機能は、ユーザがユーザ鍵またはランダムに生成された鍵をHSMにインポートすることを可能にし、その後、この鍵は、保管時にデータを暗号化するためにエンベロープ暗号化と共に使用される。サービスとしてのデータベース(database-as-a-service)およびインフラストラクチャ・サービスなどのデータ・サービスは、既知の鍵管理サービスと統合して、鍵暗号化鍵(key-encrypting-keys)を使用し、サービス中にデータ暗号鍵を安全にローカルに格納し、鍵管理サービスにアクセスすることによって、データ暗号鍵をアンラップしてデータを復号する。既知の鍵管理サービスは、ユーザが制御し、鍵管理サービスの外部にあるシステム上でルート鍵(ラッピング鍵またはマスタ鍵としても知られている)をユーザが生成することを可能にし、ユーザが、キー・セレモニーを介してルート鍵をアップロードすることをさらに可能にする。ユーザは、ルート鍵のコピーを管理することを中心に、物理的セキュリティおよびプロセスを維持する必要があるという問題を抱えている。
【0003】
したがって、鍵暗号化鍵を使用して、クラウド・コンピューティング環境内のデータを保護するルート鍵配布システムが必要だが、ユーザのオーナーシップおよび鍵階層のルート鍵の排他的制御が必要となる。
【発明の概要】
【0004】
1つの実施形態では、本発明は、中央処理装置(CPU:centralprocessing unit)、CPUに結合されたメモリ、およびCPUに結合された1つまたは複数のコンピュータ可読ストレージ媒体を含むコンピュータ・システムを提供する。1つまたは複数のコンピュータ可読ストレージ媒体は、ルート鍵をHSMクラスタのハードウェア・セキュリティ・モジュール(HSM)に配布する方法を実施するために、メモリを介してCPUによって実行される命令を集合的に含む。この方法は、コンピュータ・システムが、マスタ鍵を作成するための第1のコマンドをソースHSMに送信することを含む。第1のコマンドは、HSMクラスタ内のHSMの管理者によって署名される。この方法は、コンピュータ・システムが、ソースHSMから、ソースHSMの製造時にソースHSMにハードコードされたモジュール署名鍵を使用してソースHSMによって署名された応答において、マスタ鍵のフィンガープリントを受信することをさらに含む。この方法は、コンピュータ・システムが、第2のコマンドをHSMクラスタ内の第1のHSMに送信することをさらに含む。第2のコマンドは、インポータ秘密鍵(importer private key)およびインポータ公開鍵(importerpublic key)を含むインポータ鍵ペア(importer key pair)を生成する。この方法は、コンピュータ・システムが、第2のコマンドを送信することに応答して、第1のHSMからインポータ公開鍵を受信することをさらに含む。この方法は、コンピュータ・システムが、マスタ鍵およびインポータ公開鍵をエクスポートする要求をソースHSMに送信することをさらに含む。この方法は、コンピュータ・システムが、この要求を送信することに応答して、ソースHSMから、(i)トランスポート鍵を使用してラップされたマスタ鍵および(ii)エクスポータ公開鍵(exporter public key)を受信することをさらに含む。トランスポート鍵が、インポータ公開鍵およびエクスポータ秘密鍵(exporter private key)から導出される。この方法は、コンピュータ・システムが、第1のHSMに、(i)トランスポート鍵を使用してラップされたマスタ鍵および(ii)エクスポータ公開鍵を送信することをさらに含む。この方法は、コンピュータ・システムが、第1のHSM内のマスタ鍵を有効化することをさらに含む。
【0005】
前述の実施形態は、顧客またはエンド・ユーザが、ルート鍵を保持しているHSMクラスタのノードの各々を認証し、各ノードが信頼できる送信先であることを保証することを有利に可能にする。
【0006】
本発明の任意選択的態様では、この方法は、コンピュータ・システムが、鍵管理サービスにおいて、有効化されたマスタ鍵をルート鍵として使用することをさらに含み、鍵管理サービスは、鍵管理サービスの外部でのルート鍵の管理を必要としない、クラウド・コンピューティング環境内のデータを保護する暗号鍵に対する完全な制御を顧客またはエンド・ユーザに提供し、クラウド・サービス・プロバイダがデータにアクセスするのを防ぐ。本発明の前述の態様は、鍵管理サービスにおいてルート鍵を維持するために使用される2つのHSM間の困難な調整に頼るのではなく、エンド・ユーザおよびリモート・システムがルート鍵の配布のアクションを許可することを有利に要求する。
【0007】
本発明の別の任意選択的態様では、この方法は、マスタ鍵およびエクスポータ公開鍵を送信した後に、第1のHSMが、第1のHSMによって格納されたエクスポータ公開鍵およびインポータ秘密鍵からトランスポート鍵を導出することをさらに含む。この方法は、第1のHSMが、トランスポート鍵を使用してマスタ鍵をラップ解除することをさらに含む。この方法は、第1のHSMが、ラップ解除されたマスタ鍵を、新しいマスタ鍵として、コミットされていない状態で第1のHSMのレジスタに登録することをさらに含む。本発明の前述の態様は、ルート鍵を安全に輸送するために、HSMクラスタ内のすべてのノードにわたって共有されたあまり安全でない秘密を使用するのではなく、一時鍵を有利に使用する。
【0008】
本発明の別の任意選択的態様では、この方法は、コンピュータ・システムが、第2のインポータ秘密鍵および第2のインポータ公開鍵を含む第2のインポータ鍵ペアを生成するためのコマンドを、HSMクラスタ内の第2のHSMに送信することをさらに含む。第2のインポータ鍵ペアは、インポータ鍵ペアと異なる。この方法は、コンピュータ・システムが、第2のHSMから第2のインポータ公開鍵を受信することをさらに含む。この方法は、コンピュータ・システムが、マスタ鍵および第2のインポータ公開鍵をエクスポートする要求をソースHSMに送信することをさらに含む。この方法は、コンピュータ・システムが、ソースHSMから、(i)第2のトランスポート鍵を使用してラップされたマスタ鍵および(ii)第2のエクスポータ公開鍵を受信することをさらに含み、第2のトランスポート鍵は、トランスポート鍵と異なり、第2のインポータ公開鍵および第2のエクスポータ秘密鍵から導出される。この方法は、コンピュータ・システムが、第2のHSMに、(i)第2のトランスポート鍵を使用してラップされたマスタ鍵および(ii)第2のエクスポータ公開鍵を送信することをさらに含み、第2のHSMは、第2のHSMによって格納された第2のエクスポータ公開鍵および第2のインポータ秘密鍵から第2のトランスポート鍵を導出し、第2のトランスポート鍵を使用してマスタ鍵をラップ解除し、マスタ鍵をコミットされていない状態で第2のHSMのレジスタに登録する。この方法は、コンピュータ・システムが、第2のHSMに登録されたマスタ鍵をコミットされた状態に設定することと、第2のHSMによって格納されたマスタ鍵を有効化することとをさらに含む。本発明の前述の態様は、ルート鍵を安全に輸送するために、鍵階層のルート鍵を保持するために使用されるHSMクラスタ内のすべてのノードにわたって共有されたあまり安全でない秘密を使用するのではなく、一時鍵を有利に使用する。
【0009】
上で要約されたコンピュータ・システムに対応するコンピュータ・プログラム製品および方法も、本明細書に記載される。コンピュータ・システムに関連する前述の利点は、コンピュータ・プログラム製品および方法にも当てはまる。
【図面の簡単な説明】
【0010】
図1】本発明の実施形態に従って、ルート鍵をHSMクラスタ内のHSMに安全に配布するためのシステムのブロック図である。
図2A】本発明の実施形態に従って、ルート鍵をHSMクラスタ内のHSMに安全に配布するプロセスのフローチャートを示す図である。
図2B】本発明の実施形態に従って、ルート鍵をHSMクラスタ内のHSMに安全に配布するプロセスのフローチャートを示す図である。
図2C】本発明の実施形態に従って、ルート鍵をHSMクラスタ内のHSMに安全に配布するプロセスのフローチャートを示す図である。
図3】本発明の実施形態に従って、図1のシステムに含まれる、図2A~2Cのプロセスを実施するコンピュータのブロック図である。
図4】本発明の実施形態に従って、クラウド・コンピューティング環境を示す図である。
図5】本発明の実施形態に従って、抽象モデル・レイヤを示す図である。
【発明を実施するための形態】
【0011】
概要
クラウド環境内の従来の鍵管理サービスでは、ルート鍵の維持は、2つのノード(すなわち、2つのHSM)間の調整、および鍵階層のルート鍵を保持するために使用されるクラスタ内のすべてのノードにわたって共有された秘密を含み、クラウド・サービス・プロバイダがHSM内の暗号鍵にアクセスすることを可能にし、それによって、クラウド環境内でデータを暗号化しているユーザが暗号鍵へのアクセスを完全に制御するのを妨げる。さらに、エンド・ユーザがエンド・ユーザの暗号鍵を保護したいクラウド・コンピューティング環境では、別の関係者が、システムに物理的にアクセスすることがあり、エンド・ユーザが知ることなくログインし、ドメイン鍵をコピーする能力を有することがある。本明細書において使用されるとき、ノードは、HSMクラスタ内のノードであり、HSMとも呼ばれる。
【0012】
本発明の実施形態は、鍵暗号化鍵を使用するが、ユーザが鍵階層のルート鍵のオーナーシップを有し、ルート鍵を排他的に制御して、クラウド環境内のデータを保護することによって、ルート鍵を管理するという前述の特異の課題に対処する。本発明の実施形態は、ルート鍵を維持するために2つのノード間の従来の調整を使用するのではなく、エンド・ユーザおよびリモート・システムが鍵管理のアクションを許可することを必要とする。本発明の実施形態は、ルート鍵を安全に転送するために、ルート鍵を保持するために使用されるHSMクラスタ内のすべてのノードにわたって共有された秘密を使用するという既知の技術を使用するのではなく、一時鍵を使用する。本発明の実施形態は、ユーザが、送信先が信頼できる送信先であることを保証するために、ルート鍵を保持しているHSMクラスタ内のノードの各々を認証することを可能にする。ユーザは、配布プロセスの許可および送信先の認証を完全に制御し、配布プロセスは、HSMクラスタの外部でルート鍵のコピーを生成することも保護することも必要とすることなく、複数のクラウド・サービス内のデータを保護するために使用される鍵階層のルート鍵を、HSMクラスタ内のノードに配布する。
【0013】
1つの実施形態では、ルート鍵配布システムは、鍵管理サービスにおいて、有効化されたマスタ鍵をルート鍵として使用し、鍵管理サービスは、鍵管理サービスの外部でのルート鍵の管理を必要としない、クラウド・コンピューティング環境内のデータを保護する暗号鍵に対する完全な制御を顧客またはエンド・ユーザに提供し、クラウド・サービス・プロバイダがデータにアクセスするのを防ぐ。
【0014】
1つの実施形態では、ルート鍵配布システムは、HSMクラスタの各HSM(すなわち、ノード)の管理者を確立し、ノードがインプリント・モードから解放された後に、秘密鍵/公開鍵ペアを所与のノードのコマンドの許可のためにノードにアップロードし、ルート鍵を生成し、ユーザがクラウド・コンピューティング環境内で鍵管理サービス(例えば、IBM(R)Cloud Trusted Key Entry(TKE))を使用することによってプロセスを許可することに応答して、ノードを同期させ、鍵管理サービスにおいてルート鍵を使用して、クラウド・コンピューティング環境内のデータを保護する。IBMは、ニューヨーク州アーモンクにあるInternational Business Machines Corporationの登録商標である。
【0015】
1つの実施形態では、本明細書に記載されたルート鍵配布システムは、鍵管理サービスの外部でルート鍵を管理することを必要とすることなく、ユーザが鍵階層の制御によってデータを保護することを可能にする。鍵階層の第1の(すなわち、最上位の)レベルはHSMルート鍵(すなわち、マスタ鍵)を含み、HSMルート鍵は、HSMに格納され、TKEコマンド・ライン・インターフェイス(CLI:command line interface)またはスマート・カードを介してユーザによって設定され、そのバックアップがクライアントのみに格納される。鍵階層内の第2のレベルは、顧客ルート鍵(CRK:customer root key)を含み、顧客ルート鍵は、Hyper Protect Crypto Services(HPCS)のみによってラップされた形態で格納され、HSMによってランダムに作成されるか、またはAPIによってインポートされ、HPCSによって地理的領域内にバックアップされる。鍵階層内の第3のレベルは、データ暗号鍵(DEK:data encryption key)を含み、データ暗号鍵は、アプリケーションまたは他のサービスによってラップされた形態で格納され、HSMによってランダムに作成されるか、またはAPIによってインポートされ、アプリケーションによってDEKを使用してバックアップされる。
【0016】
ルート鍵をHSMクラスタのHSMに配布するためのシステム
図1は、本発明の実施形態に従って、ルート鍵をHSMクラスタ内のHSMに安全に配布するためのシステム100のブロック図である。システム100は、ソフトウェアに基づくルート鍵配布システム104を含むコンピュータ102を含み、ルート鍵配布システム104は、HSM管理者確立モジュール106、ルート鍵生成およびHSM同期モジュール108、ならびにルート鍵有効化モジュールを含む。1つの実施形態では、ルート鍵配布システム104は、IBM(R)Trusted Key Entryワークステーションに含まれる。
【0017】
ルート鍵配布システム104は、署名秘密鍵112を管理者のコンピュータ・システム(図示せず)から受信する。システム100は、ルート鍵配布システム104と通信する鍵管理サービスおよびクラウドHSMのインスタンス114も含む。管理サービスおよびクラウドHSMのインスタンス114は、例えば、IBM(R)Hyper Protect Crypto Servicesインスタンスとすることができる。
【0018】
管理サービスおよびクラウドHSMのインスタンス114は、暗号ユニット116-1、...116-Nのクラスタを含み、Nは1より大きい整数である。暗号ユニットは、HSMおよび対応するソフトウェア・スタックを表す単数のユニットである。暗号ユニット116-1、...、116-Nのクラスタは、鍵管理および鍵制御(key governance)のための1つの論理的実体として動作する。暗号ユニット116-1、...、116-Nの各々は、HSMクラスタを集合的に構成するHSM118(すなわち、クラウドHSM)を含む。クラウドHSMは、暗号鍵を安全に管理、処理、および格納するように構成された、改ざん防止機能付きの、不正開封の跡がすぐ分かるハードウェア・デバイスである。
【0019】
管理サービスおよびクラウドHSMのインスタンス114は、ハードウェア・セキュリティ・モジュールでもあるソースHSM120も含む。HSM120は、マスタ鍵を作成し、エクスポータ鍵ペアを作成し、トランスポート鍵を導出し、トランスポート鍵を使用してマスタ鍵をラップする。1つの実施形態では、暗号ユニット116-1、...、116-Nの各々は、鍵管理サービス・アプリケーション・プログラミング・インターフェイス(KMS API:key management service application programming interface)(図示せず)およびEnterprise Public-Key Cryptography Standard(PKCS)#11アプリケーション・プログラミング・インターフェイス(EP11 API)(図示せず)を含む。KMS APIは、鍵管理サービスのために鍵を管理する。EP11 APIは、データの暗号化および管理のためのインスタンス114(例えば、IBM(R)Hyper Protect Crypto Servicesインスタンス)へのリモートアクセスを提供する。
【0020】
HSM管理者確立モジュール106は、HSMクラスタのHSMの管理者を確立する。例えば、IBM(R)Crypto Expressカードは、HSMの管理者を確立するための機能を提供する。HSM管理者確立モジュール106は、秘密鍵/公開鍵ペアからの証明書を各HSM118にアップロードする。ルート鍵配布システム104は、所与のノードがインプリント・モードから解放された後に、この証明書を使用して、HSMクラスタ内の所与のノードのコマンドを許可する。
【0021】
ルート鍵生成およびHSM同期モジュール108は、ユーザがTKEクライアントを使用することによってルート鍵配布プロセスを許可することに応答して、ルート鍵を生成し、HSMクラスタ内のノードを同期させる。
【0022】
ルート鍵有効化モジュール110は、鍵管理サービスおよびクラウドHSMのインスタンス114内の保留中のルート鍵を有効化し、クラウド・コンピューティング環境内のデータを保護する。
【0023】
図1に示されたコンポーネントの機能が、以下で提示される図2A~2Cおよび図3の考察において、さらに詳細に説明される。
【0024】
ルート鍵をHSMクラスタのHSMに配布するためのプロセス
図2A~2Cは、本発明の実施形態に従って、ルート鍵をHSMクラスタ内のHSMに安全に配布するプロセスのフローチャートを示している。図2A~2Cのプロセスは、図2Aの開始ノード200から開始する。ステップ202で、ルート鍵配布システム104(図1を参照)が、管理者のコンピュータ・システムから、新しいマスタ鍵を作成するためのコマンドを受信する。本明細書において使用されるとき、マスタ鍵は、ルート鍵の同義語である。マスタ鍵は、HSM118(図1を参照)の内容を暗号化し、暗号動作を保護することによって、鍵管理サービスおよびクラウドHSMのインスタンス114(図1を参照)を保護するために使用される暗号鍵である。
【0025】
ステップ204で、ルート鍵配布システム104(図1を参照)は、マスタ鍵を作成するためのコマンドを生成し、このコマンドに署名し、このコマンドをソースHSM120(図1を参照)に送信する。ルート鍵配布システム104(図1を参照)は、署名秘密鍵112(図1を参照)を使用することによって、マスタ鍵を作成するためのコマンドに署名する。
【0026】
ステップ204の後でステップ206の前に、ソースHSM120(図1を参照)は、ステップ204で送信されたコマンドを受信し、ステップ204で送信されたコマンドの署名の妥当性を確認し、マスタ鍵(本明細書では、新しいマスタ鍵とも呼ばれる)を生成し、ソースHSM120(図1を参照)の製造時にソースHSM120(図1を参照)にハードコードされたモジュール署名鍵を使用して応答を生成し、この応答に署名する。
【0027】
ステップ206で、ルート鍵配布システム104(図1を参照)は、ステップ204の後でステップ206の前にモジュール署名鍵を使用して生成された応答における、マスタ鍵のフィンガープリントを受信する。
【0028】
ステップ208で、ルート鍵配布システム104(図1を参照)は、ステップ204の後でステップ206の前にモジュール署名鍵を使用して生成された応答の署名の妥当性を確認する。
【0029】
ステップ210で、ルート鍵配布システム104(図1を参照)は、新しいマスタ鍵の作成の完了の指示を管理者のコンピュータ・システムに送信する。
【0030】
ステップ212で、ルート鍵配布システム104(図1を参照)は、コマンドを生成し、このコマンドに署名し、このコマンドをHSMクラスタ内の第1のHSM(すなわち、図1の暗号ユニット116-1内のHSM118)に送信する。ステップ212で送信されるコマンドは、インポータ秘密鍵およびインポータ公開鍵を含むインポータ鍵ペアを生成するためのものである。
【0031】
ステップ212の後でステップ214の前に、第1のHSMが、ステップ212で送信されたコマンドを受信し、インポータ鍵ペアを生成し、インポータ秘密鍵を保存する。
【0032】
ステップ214で、ルート鍵配布システム104(図1を参照)は、第1のHSMからインポータ公開鍵を受信する。
【0033】
ステップ216で、ルート鍵配布システム104(図1を参照)は、マスタ鍵およびインポータ公開鍵をエクスポートする要求を生成し、この要求に署名し、この要求をソースHSM120(図1を参照)に送信する。
【0034】
ステップ216の後に、図2A~2Cのプロセスは、図2Bのステップ218に続く。ステップ216の後でステップ218の前に、ソースHSM120(図1を参照)は、ステップ216で送信された要求を受信し、エクスポータ秘密鍵およびエクスポータ公開鍵を含むエクスポータ鍵ペアを生成し、インポータ公開鍵およびエクスポータ秘密鍵からトランスポート鍵を導出し、このトランスポート鍵を使用してマスタ鍵をラップし、ステップ216で送信された要求に対する応答を生成し、インポータ公開鍵、エクスポータ秘密鍵、およびトランスポート鍵を破棄する。本明細書において使用されるとき、マスタ鍵をラップするということは、別の鍵を使用してマスタ鍵を暗号化することを意味する。
【0035】
ステップ218で、ルート鍵配布システム104(図1を参照)は、応答における、ラップされたマスタ鍵およびエクスポータ公開鍵を受信する。
【0036】
ステップ220で、ルート鍵配布システム104(図1を参照)は、ラップされたマスタ鍵およびエクスポータ公開鍵を生成し、ラップされたマスタ鍵およびエクスポータ公開鍵に署名し、ラップされたマスタ鍵およびエクスポータ公開鍵を第1のHSMに送信する。
【0037】
ステップ220の後でステップ222の前に、第1のHSMは、ステップ220で送信されたラップされたマスタ鍵およびエクスポータ公開鍵を受信し、インポータ秘密鍵およびエクスポータ公開鍵からトランスポート鍵を導出し、インポータ秘密鍵およびエクスポータ公開鍵から導出されたトランスポート鍵を使用してマスタ鍵をラップ解除し、ラップ解除されたマスタ鍵をコミットされていない状態で新しいマスタ鍵レジスタに配置する。新しいマスタ鍵レジスタに配置された、ラップ解除されたマスタ鍵は、本明細書では保留中のマスタ鍵とも呼ばれる。本明細書において使用されるとき、マスタ鍵をラップ解除するということは、別の鍵を使用することによって、ラップされたマスタ鍵を復号することを意味する。
【0038】
ステップ222で、ルート鍵配布システム104(図1を参照)は、第1のHSMへのマスタ鍵のインポートが完了したという指示を受信する。
【0039】
ステップ224で、ルート鍵配布システム104(図1を参照)は、保留中のマスタ鍵をコミットするためのコマンドを生成し、このコマンドに署名し、このコマンドを第1のHSMに送信する。
【0040】
ステップ224の後でステップ226の前に、第1のHSMは、ステップ224で送信されたコマンドを受信し、受信されたコマンドに応答して、保留中のマスタ鍵の状態をコミットされていない状態からコミットされた状態に変更する。
【0041】
ステップ226で、ルート鍵配布システム104(図1を参照)は、保留中のマスタ鍵がコミットされた状態であるという指示を第1のHSMから受信する。
【0042】
ステップ228で、ルート鍵配布システム104(図1を参照)は、保留中のマスタ鍵を完成させるためのコマンドを生成し、このコマンドに署名し、このコマンドを第1のHSM(図1を参照)に送信する。
【0043】
ステップ228の後でステップ230の前に、第1のHSMは、ステップ228で送信されたコマンドを受信し、アクティブになるように保留中のマスタ鍵を設定する(すなわち、保留中のマスタ鍵を有効化する)。
【0044】
ステップ230で、ルート鍵配布システム104(図1を参照)は、保留中のマスタ鍵が有効化されたという指示を第1のHSMから受信する。
【0045】
ステップ230の後に、図2A~2Cのプロセスは、図2Cのステップ232に続く。
【0046】
ステップ232で、ルート鍵配布システム104(図1を参照)は、ステップ212(図2Aを参照)から開始するループ内で使用されていない別のHSMがHSMクラスタに存在するかどうかを判定する。ルート鍵配布システム104(図1を参照)が、別のHSM(すなわち、次のHSM)が存在すると判定した場合、ステップ232の「はい」の分岐が選ばれ、図2A~2Cのプロセスはステップ212(図2Aを参照)にループパックし、ステップ212~ステップ230の説明における第1のHSMが、次のHSMに置き換えられる。
【0047】
ステップ232で、ルート鍵配布システム104(図1を参照)が、前述のループで使用されるべき別のHSMがHSMクラスタに存在しないと判定した場合、ステップ232の「いいえ」の分岐が選ばれ、ステップ234が実行される。
【0048】
ステップ234で、ルート鍵配布システム104(図1を参照)は、HSMクラスタ内のマスタ鍵の配布が完了したという指示を管理者のコンピュータ・システムに送信する。
【0049】
図2A~2Cのプロセスが、終了ノード236で終了する。
【0050】
コンピュータ・システム
図3は、本発明の実施形態に従って、図1のシステムに含まれる、図2A~2Cのプロセスを実施するコンピュータのブロック図である。コンピュータ102は、概して、中央処理装置(CPU)302、メモリ304、入出力(I/O:input/output)インターフェイス306、およびバス308を含むコンピュータ・システムである。さらに、コンピュータ102は、I/Oデバイス310およびコンピュータ・データ・ストレージ・ユニット312に結合される。CPU302は、ルート鍵配布システム104(図1を参照)のプログラム・コード314に含まれる命令を実行して、ルート鍵をHSMクラスタ内のHSMに安全に配布する方法を実行することを含む、コンピュータ102の計算機能および制御機能を実行し、これらの命令は、メモリ304を介してCPU302によって実行される。CPU302は、単一のプロセッシング・ユニットまたはプロセッサを含んでよく、あるいは1つまたは複数の位置で(例えば、クライアントおよびサーバ上で)、1つまたは複数のプロセッシング・ユニットまたは1つまたは複数のプロセッサにわたって分散されてもよい。
【0051】
メモリ304は、下で説明される既知のコンピュータ可読ストレージ媒体を含む。1つの実施形態では、メモリ304のキャッシュ・メモリ要素は、プログラム・コードの命令が実行されている間に、コードがバルク・ストレージから取り出されなければならない回数を減らすために、少なくとも一部のプログラム・コード(例えば、プログラム・コード314)の一時的格納を提供する。さらに、CPU302と同様に、メモリ304は、1つまたは複数の種類のデータ・ストレージを含む、単一の物理的位置に存在してもよく、またはさまざまな形態の複数の物理的システムもしくは複数のコンピュータ可読ストレージ媒体にわたって分散されてもよい。さらに、メモリ304は、例えば、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide areanetwork)にわたって分散されたデータを含むことができる。
【0052】
I/Oインターフェイス306は、外部ソースとの間で情報を交換するための任意のシステムを含む。I/Oデバイス310は、ディスプレイ、キーボードなどを含む、任意の既知の種類の外部デバイスを含む。バス308は、コンピュータ102内のコンポーネントの各々の間の通信リンクを提供し、電気的、光学的、ワイヤレスなどを含む、任意の種類の伝送リンクを含んでもよい。
【0053】
I/Oインターフェイス306は、コンピュータ102が、情報(例えば、データ、またはプログラム・コード314などのプログラム命令)をコンピュータ・データ・ストレージ・ユニット312または別のコンピュータ・データ・ストレージ・ユニット(図示せず)に格納するか、または情報をそれらのコンピュータ・データ・ストレージ・ユニットから取り出すことも可能にする。コンピュータ・データ・ストレージ・ユニット312は、1つまたは複数の既知のコンピュータ可読ストレージ媒体を含み、コンピュータ可読ストレージ媒体が以下で説明される。1つの実施形態では、コンピュータ・データ・ストレージ・ユニット312は、例えば、半導体ドライブ(SSD:solid-state drive)、ネットワーク接続ストレージ(NAS:network-attachedstorage)アレイ、ストレージ・エリア・ネットワーク(SAN:storage area network)アレイ、磁気ディスク・ドライブ(すなわち、ハード・ディスク・ドライブ)、または光ディスク・ドライブ(例えば、CD-ROMディスクを受け取るCD-ROMドライブまたはDVDディスクを受け取るDVDドライブ)などの、不揮発性データ・ストレージ・デバイスである。
【0054】
メモリ304またはストレージ・ユニット312あるいはその両方は、命令を含むコンピュータ・プログラム・コード314を格納してもよく、これらの命令は、メモリ304を介してCPU302によって実行され、ルート鍵をHSMクラスタ内のHSMに安全に配布する。図3は、プログラム・コードを含むようにメモリ304を示しているが、本発明は、メモリ304がコード314のすべてを同時に含むのではなく、代わりに、一度にコード314の一部のみを含む実施形態を企図する。
【0055】
さらに、メモリ304は、オペレーティング・システム(図示せず)を含んでもよく、図3に示されていない他のシステムを含んでもよい。
【0056】
当業者によって理解されるように、第1の実施形態では、本発明は方法であってもよく、第2の実施形態では、本発明はシステムであってもよく、第3の実施形態では、本発明はコンピュータ・プログラム製品であってもよい。
【0057】
本発明の実施形態のコンポーネントのいずれかは、ルート鍵をHSMクラスタ内のHSMに安全に配布することに関するコンピューティング・インフラストラクチャをデプロイまたは統合することを提供するサービス・プロバイダによって、デプロイ、管理、サービス提供などが行われ得る。したがって、本発明の実施形態は、コンピュータ・インフラストラクチャをサポートするためのプロセスを開示し、このプロセスは、1つまたは複数のプロセッサ(例えば、CPU302)を含むコンピュータ・システム(例えば、コンピュータ102)内のコンピュータ可読コード(例えば、プログラム・コード314)を統合すること、ホストすること、維持すること、およびデプロイすることのうちの少なくとも1つのための少なくとも1つのサポート・サービスを提供することを含み、これらのプロセッサは、コードに含まれる命令を実行し、コンピュータ・システムに、ルート鍵をHSMクラスタ内のHSMに安全に配布させる。別の実施形態は、コンピュータ・インフラストラクチャをサポートするためのプロセスを開示し、このプロセスは、コンピュータ可読プログラム・コードを、プロセッサを含むコンピュータ・システムに統合することを含む。この統合のステップは、プロセッサを使用することによって、プログラム・コードをコンピュータ・システムのコンピュータ可読ストレージ・デバイスに格納することを含む。プログラム・コードは、プロセッサによって実行されると、ルート鍵をHSMクラスタ内のHSMに安全に配布する方法を実施する。
【0058】
ルート鍵をHSMクラスタ内のHSMに安全に配布するためのプログラム・コード314が、コンピュータ可読ストレージ媒体(例えば、コンピュータ・データ・ストレージ・ユニット312)を読み込むことを介して、クライアント・コンピュータ、サーバ・コンピュータ、およびプロキシ・コンピュータ(図示せず)に手動で直接読み込むことによってデプロイされてもよいということが理解されるが、プログラム・コード314はまた、プログラム・コード314を中央サーバまたは中央サーバのグループに送信することによって、自動的または半自動的にコンピュータ102にデプロイされてもよい。次に、プログラム・コード314は、プログラム・コード314を実行するクライアント・コンピュータ(例えば、コンピュータ102)にダウンロードされる。代替として、プログラム・コード314は、電子メールによってクライアント・コンピュータに直接送信される。その後、プログラム・コード314は、プログラム・コード314をディレクトリに分離するプログラムを実行する電子メール上のボタンによって、クライアント・コンピュータ上のディレクトリに分離されるか、またはクライアント・コンピュータ上のディレクトリに読み込まれる。別の代替手段は、プログラム・コード314をクライアント・コンピュータのハード・ドライブ上のディレクトリに直接送信することである。プロキシ・サーバが存在する場合、プロセスは、プロキシ・サーバのコードを選択し、どのコンピュータ上にプロキシ・サーバのコードを配置するかを決定し、プロキシ・サーバのコードを送信し、その後、プロキシ・サーバのコードをプロキシ・コンピュータにインストールする。プログラム・コード314は、プロキシ・サーバに送信されてから、プロキシ・サーバに格納される。
【0059】
本発明の別の実施形態は、サブスクリプション、宣伝、または料金、あるいはその組合せに基づいて、プロセスのステップを実行する方法を提供する。すなわち、サービス・プロバイダは、ルート鍵をHSMクラスタ内のHSMに安全に配布するプロセスを作成すること、維持すること、サポートすることなどを提供することができる。この場合、サービス・プロバイダは、1人または複数の顧客のために、プロセスのステップを実行するコンピュータ・インフラストラクチャの作成、維持、サポートなどを行うことができる。その見返りとして、サービス・プロバイダは、サブスクリプションもしくは有料契約またはその両方に従って顧客から支払いを受け取ることができ、またはサービス・プロバイダは、1つまたは複数のサード・パーティへの宣伝コンテンツの販売から支払いを受け取ることができ、あるいはその両方が可能である。
【0060】
本発明は、任意の可能な技術的詳細の統合レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサ(例えば、CPU302)に本発明の態様を実行させるためのコンピュータ可読プログラム命令314を有する1つまたは複数のコンピュータ可読ストレージ媒体(すなわち、メモリ304およびコンピュータ・データ・ストレージ・ユニット312)を含んでもよい。
【0061】
コンピュータ可読ストレージ媒体は、命令実行デバイス(例えば、コンピュータ102)が使用するための命令(例えば、プログラム・コード314)を保持および格納することができる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-onlymemory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチカードまたは溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、電波または他の自由に伝搬する電磁波、導波管または他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの、それ自体が一過性の信号であると解釈されるべきではない。
【0062】
本明細書に記載されたコンピュータ可読プログラム命令(例えば、プログラム・コード314)は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング・デバイス/処理デバイス(例えば、コンピュータ102)へ、あるいはネットワーク(図示せず)(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイス(例えば、コンピュータ・データ・ストレージ・ユニット312)へダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてもよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カード(図示せず)またはネットワーク・インターフェイス(図示せず)は、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0063】
本発明の動作を実行するためのコンピュータ可読プログラム命令(例えば、プログラム・コード314)は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてもよい。一部の実施形態では、本発明の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し、電子回路をカスタマイズしてもよい。
【0064】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図(例えば、図2A~2C)またはブロック図(例えば、図1および図3)あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方のブロックの組合せが、コンピュータ可読プログラム命令(例えば、プログラム・コード314)によって実施され得るということが理解されるであろう。
【0065】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置(例えば、コンピュータ102)のプロセッサ(例えば、CPU302)に提供されてマシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令はまた、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製品を備えるように、コンピュータ可読ストレージ媒体(例えば、コンピュータ・データ・ストレージ・ユニット312)に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0066】
コンピュータ可読プログラム命令(例えば、プログラム・コード314)は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ(例えば、コンピュータ102)、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれて、一連の動作可能なステップを、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行させて、コンピュータで実施されるプロセスを作り出してもよい。
【0067】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を例示する。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してもよい。一部の代替の実装では、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、1つのステップとして遂行されるか、同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、または場合によっては逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実施され得るということにも留意する。
【0068】
本発明の実施形態は、例示の目的で本明細書に記載されているが、当業者にとって多くの修正および変更が明らかになるであろう。したがって、添付の特許請求の範囲は、本発明の真の思想および範囲内にあるとして、そのような修正および変更をすべて包含するよう意図されている。
【0069】
クラウド・コンピューティング環境
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において列挙された教示の実施は、クラウド・コンピューティング環境に限定されないと理解されるべきである。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意の他の種類のコンピューティング環境と組み合わせて実施され得る。
【0070】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含んでもよい。
【0071】
特徴は、次のとおりである。
【0072】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0073】
幅広いネットワーク・アクセス:能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを通してアクセスできるため、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
【0074】
リソース・プール:プロバイダの計算リソースは、プールされて、マルチテナント・モデルを使用して複数の利用者に提供され、さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して制御することも知ることもないが、さらに高いレベルの抽象化では、場所(例えば、国、州、またはデータセンター)を指定できることがある。
【0075】
迅速な順応性:能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、無制限に見え、任意の量をいつでも購入できる。
【0076】
測定されるサービス:クラウド・システムは、計測能力を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適したある抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は、監視、制御、および報告され、利用されるサービスのプロバイダと利用者の両方に透明性を提供することができる。
【0077】
サービス・モデルは、次のとおりである。
【0078】
サービスとしてのソフトウェア:利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力さえ含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0079】
サービスとしてのプラットフォーム:利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および可能であればアプリケーション・ホスティング環境の構成を制御する。
【0080】
サービスとしてのインフラストラクチャ:利用者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御し、可能であれば、選ばれたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御する。
【0081】
デプロイメント・モデルは、次のとおりである。
【0082】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0083】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0084】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0085】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データおよびアプリケーションのポータビリティを可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷分散のためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0086】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0087】
ここで図4を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信してもよい。ノード10は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化されてもよい(図示せず)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはサービスとしてのソフトウェア、あるいはその組合せを提供できる。図4に示されたコンピューティング・デバイス54A、54B、54C、および54Nの種類は、例示のみが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0088】
ここで図5を参照すると、クラウド・コンピューティング環境50(図4を参照)によって提供される機能的抽象レイヤのセットが示されている。図5に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0089】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0090】
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75といった仮想的実体の例を提供できる抽象レイヤを提供する。
【0091】
1つの例では、管理レイヤ80は、以下で説明される機能を提供してもよい。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよび他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの利用に対する請求書またはインボイスの送付を行う。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0092】
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を提供する。このレイヤから提供されてもよいワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ解析処理94、トランザクション処理95、およびHSMクラスタ内のHSMへの安全なルート鍵配布96が挙げられる。

図1
図2A
図2B
図2C
図3
図4
図5
【手続補正書】
【提出日】2024-04-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
中央処理装置(CPU)と、
前記CPUに結合されたメモリと、
前記CPUに結合された1つまたは複数のコンピュータ可読ストレージ媒体とを備えるコンピュータ・システムであって、前記1つまたは複数のコンピュータ可読ストレージ媒体が、ルート鍵をHSMクラスタのハードウェア・セキュリティ・モジュール(HSM)に配布する方法を実施するために、前記メモリを介して前記CPUによって実行される命令を集合的に含み、前記方法が、
前記コンピュータ・システムが、マスタ鍵を作成するための第1のコマンドをソースHSMに送信することであって、前記第1のコマンドが、前記HSMクラスタ内のHSMの管理者によって署名される、前記送信することと、
前記コンピュータ・システムが、前記ソースHSMから、前記ソースHSMの製造時に前記ソースHSMにハードコードされたモジュール署名鍵を使用して前記ソースHSMによって署名された応答において、前記マスタ鍵のフィンガープリントを受信することと、
前記コンピュータ・システムが、第2のコマンドを前記HSMクラスタ内の第1のHSMに送信することであって、前記第2のコマンドが、インポータ秘密鍵およびインポータ公開鍵を含むインポータ鍵ペアを生成する、前記送信することと、
前記コンピュータ・システムが、前記第2のコマンドを前記送信することに応答して、前記第1のHSMから前記インポータ公開鍵を受信することと、
前記コンピュータ・システムが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記コンピュータ・システムが、前記要求を前記送信することに応答して、前記ソースHSMから、(i)トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)エクスポータ公開鍵を受信することであって、前記トランスポート鍵が、前記インポータ公開鍵およびエクスポータ秘密鍵から導出される、前記受信することと、
前記コンピュータ・システムが、前記第1のHSMに、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を送信することと、
前記コンピュータ・システムが、前記第1のHSM内の前記マスタ鍵を有効化することと
を含む、コンピュータ・システム。
【請求項2】
前記方法が、
前記マスタ鍵および前記エクスポータ公開鍵を前記送信した後に、前記第1のHSMが、前記第1のHSMによって格納された前記エクスポータ公開鍵および前記インポータ秘密鍵から前記トランスポート鍵を導出することと、
前記第1のHSMが、前記トランスポート鍵を使用して前記マスタ鍵をラップ解除することと、
前記第1のHSMが、前記ラップ解除されたマスタ鍵を、新しいマスタ鍵として、コミットされていない状態で前記第1のHSMのレジスタに登録することと
をさらに含む、請求項1に記載のコンピュータ・システム。
【請求項3】
前記方法が、
前記第1のHSMが、前記インポータ秘密鍵、前記エクスポータ公開鍵、および前記トランスポート鍵を破棄することをさらに含む、請求項2に記載のコンピュータ・システム。
【請求項4】
前記方法が、
前記コンピュータ・システムが、前記第1のHSMの前記レジスタに登録された前記マスタ鍵を、前記コミットされていない状態からコミットされた状態に変更することをさらに含む、請求項2に記載のコンピュータ・システム。
【請求項5】
前記方法が、
前記コンピュータ・システムが、鍵管理サービスにおいて、前記有効化されたマスタ鍵をルート鍵として使用し、前記鍵管理サービスが、前記鍵管理サービスの外部での前記ルート鍵の管理を必要としない、クラウド・コンピューティング環境内のデータを保護する暗号鍵に対する完全な制御を顧客に提供し、クラウド・サービス・プロバイダが前記データにアクセスするのを防ぐことをさらに含む、請求項1に記載のコンピュータ・システム。
【請求項6】
第2のHSMをさらに備え、前記方法が、
前記コンピュータ・システムが、第2のインポータ秘密鍵および第2のインポータ公開鍵を含む第2のインポータ鍵ペアを生成するためのコマンドを前記HSMクラスタ内の前記第2のHSMに送信することであって、前記第2のインポータ鍵ペアが前記インポータ鍵ペアと異なる、前記送信することと、
前記コンピュータ・システムが、前記第2のHSMから前記第2のインポータ公開鍵を受信することと、
前記コンピュータ・システムが、前記マスタ鍵および前記第2のインポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記コンピュータ・システムが、前記ソースHSMから、(i)第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)第2のエクスポータ公開鍵を受信することであって、前記第2のトランスポート鍵が前記トランスポート鍵と異なり、前記第2のインポータ公開鍵および第2のエクスポータ秘密鍵から導出される、前記受信することと、
前記コンピュータ・システムが、前記第2のHSMに、(i)前記第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記第2のエクスポータ公開鍵を送信することであって、前記第2のHSMが、前記第2のHSMによって格納された前記第2のエクスポータ公開鍵および前記第2のインポータ秘密鍵から前記第2のトランスポート鍵を導出し、前記第2のトランスポート鍵を使用して前記マスタ鍵をラップ解除し、前記マスタ鍵をコミットされていない状態で前記第2のHSMのレジスタに登録する、前記送信することと、
前記コンピュータ・システムが、前記第2のHSMに登録された前記マスタ鍵をコミットされた状態に設定し、前記第2のHSMによって格納された前記マスタ鍵を有効化することと
をさらに含む、請求項1に記載のコンピュータ・システム。
【請求項7】
前記方法が、
前記ソースHSMが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を受信することと、
前記ソースHSMが、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記受信することに応答して、前記エクスポータ秘密鍵および前記エクスポータ公開鍵を含むエクスポータ鍵ペアを生成することと、
前記ソースHSMが、前記トランスポート鍵を前記インポータ公開鍵および前記エクスポータ秘密鍵から導出することと、
前記ソースHSMが、前記トランスポート鍵を使用して前記マスタ鍵をラップすることと、
前記ソースHSMが前記要求に対する応答を生成することであって、前記応答が、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を含む、前記生成することと、
前記ソースHSMが、前記インポータ公開鍵、前記エクスポータ秘密鍵、および前記トランスポート鍵を破棄することと
をさらに含む、請求項1に記載のコンピュータ・システム。
【請求項8】
前記方法が、
前記第1のコマンドを前記送信することに応答して、前記ソースHSMが、署名公開鍵を使用することによって前記第1のコマンドの署名の妥当性を確認することと、
前記ソースHSMが、前記マスタ鍵を生成することと、
前記ソースHSMが、前記モジュール署名鍵を使用して前記第1のコマンドに対する応答を生成し、前記応答に署名することと
をさらに含む、請求項7に記載のコンピュータ・システム。
【請求項9】
前記方法が、
前記コンピュータ・システムが、前記HSMクラスタ内の前記HSMの前記管理者を確立することと、
前記コンピュータ・システムが、秘密鍵および公開鍵のペアからの証明書を前記HSMにアップロードすることであって、前記複数のHSMのうちの各HSMがインプリント・モードから除外された後に、前記証明書がコマンドを許可する、前記アップロードすることと
をさらに含む、請求項1に記載のコンピュータ・システム。
【請求項10】
コンピュータ実装された方法であって、
前記コンピュータの1つまたは複数のプロセッサによって、マスタ鍵を作成するための第1のコマンドをソースHSMに送信することであって、前記第1のコマンドが、前記HSMクラスタ内のHSMの管理者によって署名される、前記送信することと、
前記1つまたは複数のプロセッサによって、前記ソースHSMから、前記ソースHSMの製造時に前記ソースHSMにハードコードされたモジュール署名鍵を使用して前記ソースHSMによって署名された応答において、前記マスタ鍵のフィンガープリントを受信することと、
前記1つまたは複数のプロセッサによって、第2のコマンドを前記HSMクラスタ内の第1のHSMに送信することであって、前記第2のコマンドが、インポータ秘密鍵およびインポータ公開鍵を含むインポータ鍵ペアを生成する、前記送信することと、
前記1つまたは複数のプロセッサによって、前記第2のコマンドを前記送信することに応答して、前記第1のHSMから前記インポータ公開鍵を受信することと、
前記1つまたは複数のプロセッサによって、前記マスタ鍵および前記インポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記1つまたは複数のプロセッサによって、前記要求を前記送信することに応答して、前記ソースHSMから、(i)トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)エクスポータ公開鍵を受信することであって、前記トランスポート鍵が、前記インポータ公開鍵およびエクスポータ秘密鍵から導出される、前記受信することと、
前記1つまたは複数のプロセッサによって、前記第1のHSMに、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を送信することと、
前記1つまたは複数のプロセッサによって、前記第1のHSM内の前記マスタ鍵を有効化することと
を含む、方法。
【請求項11】
前記マスタ鍵および前記エクスポータ公開鍵を前記送信した後に、前記1つまたは複数のプロセッサによって、前記第1のHSMによって格納された前記エクスポータ公開鍵および前記インポータ秘密鍵から前記トランスポート鍵を導出することと、
前記1つまたは複数のプロセッサによって、前記トランスポート鍵を使用して前記マスタ鍵をラップ解除することと、
前記1つまたは複数のプロセッサによって、前記ラップ解除されたマスタ鍵を、新しいマスタ鍵として、コミットされていない状態で前記第1のHSMのレジスタに登録することと
をさらに含む、請求項10に記載の方法。
【請求項12】
前記1つまたは複数のプロセッサによって、前記インポータ秘密鍵、前記エクスポータ公開鍵、および前記トランスポート鍵を破棄することをさらに含む、請求項11に記載の方法。
【請求項13】
前記1つまたは複数のプロセッサによって、前記第1のHSMの前記レジスタに登録された前記マスタ鍵を、前記コミットされていない状態からコミットされた状態に変更することをさらに含む、請求項11に記載の方法。
【請求項14】
前記1つまたは複数のプロセッサによって、鍵管理サービスにおいて、前記有効化されたマスタ鍵をルート鍵として使用し、前記鍵管理サービスが、前記鍵管理サービスの外部での前記ルート鍵の管理を必要としない、クラウド・コンピューティング環境内のデータを保護する暗号鍵に対する完全な制御を顧客に提供し、クラウド・サービス・プロバイダが前記データにアクセスするのを防ぐことをさらに含む、請求項10に記載の方法。
【請求項15】
前記1つまたは複数のプロセッサによって、第2のインポータ秘密鍵および第2のインポータ公開鍵を含む第2のインポータ鍵ペアを生成するためのコマンドを前記HSMクラスタ内の第2のHSMに送信することであって、前記第2のインポータ鍵ペアが前記インポータ鍵ペアと異なる、前記送信することと、
前記1つまたは複数のプロセッサによって、前記第2のHSMから前記第2のインポータ公開鍵を受信することと、
前記1つまたは複数のプロセッサによって、前記マスタ鍵および前記第2のインポータ公開鍵をエクスポートする要求を前記ソースHSMに送信することと、
前記1つまたは複数のプロセッサによって、前記ソースHSMから、(i)第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)第2のエクスポータ公開鍵を受信することであって、前記第2のトランスポート鍵が前記トランスポート鍵と異なり、前記第2のインポータ公開鍵および第2のエクスポータ秘密鍵から導出される、前記受信することと、
前記1つまたは複数のプロセッサによって、前記第2のHSMに、(i)前記第2のトランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記第2のエクスポータ公開鍵を送信することであって、前記第2のHSMが、前記第2のHSMによって格納された前記第2のエクスポータ公開鍵および前記第2のインポータ秘密鍵から前記第2のトランスポート鍵を導出し、前記第2のトランスポート鍵を使用して前記マスタ鍵をラップ解除し、前記マスタ鍵をコミットされていない状態で前記第2のHSMのレジスタに登録する、前記送信することと、
前記1つまたは複数のプロセッサによって、前記第2のHSMに登録された前記マスタ鍵をコミットされた状態に設定し、前記第2のHSMによって格納された前記マスタ鍵を有効化することと
をさらに含む、請求項10に記載の方法。
【請求項16】
前記1つまたは複数のプロセッサによって、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を受信することと、
前記1つまたは複数のプロセッサによって、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記受信することに応答して、前記エクスポータ秘密鍵および前記エクスポータ公開鍵を含むエクスポータ鍵ペアを生成することと、
前記1つまたは複数のプロセッサによって、前記トランスポート鍵を前記インポータ公開鍵および前記エクスポータ秘密鍵から導出することと、
前記1つまたは複数のプロセッサによって、前記トランスポート鍵を使用して前記マスタ鍵をラップすることと、
前記1つまたは複数のプロセッサによって、前記要求に対する応答を生成することであって、前記応答が、(i)前記トランスポート鍵を使用してラップされた前記マスタ鍵および(ii)前記エクスポータ公開鍵を含む、前記生成することと、
前記1つまたは複数のプロセッサによって、前記インポータ公開鍵、前記エクスポータ秘密鍵、および前記トランスポート鍵を破棄することと
をさらに含む、請求項10に記載の方法。
【請求項17】
前記第1のコマンドを前記送信することに応答して、前記1つまたは複数のプロセッサによって、署名公開鍵を使用することによって前記第1のコマンドの署名の妥当性を確認することと、
前記1つまたは複数のプロセッサによって、前記マスタ鍵を生成することと、
前記1つまたは複数のプロセッサによって、前記モジュール署名鍵を使用して前記第1のコマンドに対する応答を生成し、前記応答に署名することと
をさらに含む、請求項16に記載の方法。
【請求項18】
クラウド環境内でサービスとしてのソフトウェアを提供することをさらに含み、前記ソフトウェアが、前記クラウド環境内のハードウェア・プロセッサによって実行されて、前記第1のコマンドを前記送信することと、前記マスタ鍵の前記フィンガープリントを前記受信することと、前記第2のコマンドを前記送信することと、前記インポータ公開鍵を前記受信することと、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記送信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記受信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記送信することと、前記第1のHSM内の前記マスタ鍵を前記有効化することとを実施する、請求項10に記載の方法。
【請求項19】
コンピュータ内でコンピュータ可読プログラム・コードを作成すること、統合すること、ホストすること、維持すること、およびデプロイすることのうちの少なくとも1つのために少なくとも1つのサポート・サービスを提供することをさらに含み、前記プログラム・コードが、前記コンピュータのプロセッサによって実行されて、前記第1のコマンドを前記送信することと、前記マスタ鍵の前記フィンガープリントを前記受信することと、前記第2のコマンドを前記送信することと、前記インポータ公開鍵を前記受信することと、前記マスタ鍵および前記インポータ公開鍵をエクスポートする前記要求を前記送信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記受信することと、前記トランスポート鍵を使用してラップされた前記マスタ鍵および前記エクスポータ公開鍵を前記送信することと、前記第1のHSM内の前記マスタ鍵を前記有効化することとを実施する、請求項10に記載の方法。
【請求項20】
コンピュータに、請求項10ないし17のいずれかに記載の前記方法の各手順を実行させるためのコンピュータ・プログラム。
【国際調査報告】