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

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

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

特表2024-530869高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備
<>
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図1
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図2
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図3
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図4
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図5
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図6
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図7
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図8
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図9
  • 特表-高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-27
(54)【発明の名称】高度にレジリエントなコンピュータ・システムにおけるシステム固有の秘密の配備
(51)【国際特許分類】
   H04L 9/08 20060101AFI20240820BHJP
   H04L 9/10 20060101ALI20240820BHJP
   H04L 9/32 20060101ALI20240820BHJP
【FI】
H04L9/08 B
H04L9/10 A
H04L9/32 200B
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024502495
(86)(22)【出願日】2022-07-08
(85)【翻訳文提出日】2024-01-16
(86)【国際出願番号】 EP2022069070
(87)【国際公開番号】W WO2023011850
(87)【国際公開日】2023-02-09
(31)【優先権主張番号】17/393,449
(32)【優先日】2021-08-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Blu-ray
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ブエントゲン、ラインハルト
(72)【発明者】
【氏名】ストッカー、ブライアン
(72)【発明者】
【氏名】マエディン、ニコラス
(72)【発明者】
【氏名】ブラッドベリー、ジョナサン
(57)【要約】
複数のコンピューティング・コンポーネントを有するコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ実装方法が開示される。方法は、コンポーネント固有のインポート鍵をコンピューティング・コンポーネントの一部として恒久的に記憶することと、コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、を含む。コンピューティング・システムのためのシステム固有の秘密に対する要求があると、方法は、コンピューティング・システムに含まれるコンピューティング・コンポーネントを識別することと、識別されたコンピューティング・コンポーネントに関係するレコードを取得することと、ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の秘密を判定することと、システム固有の補助鍵を判定することと、を含む。さらに、方法は、取得されたコンポーネント固有のインポート鍵でシステム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することと、システム固有の秘密を暗号化することと、補助鍵バンドルおよびシステム・レコードをコンピューティング・システムの記憶媒体に記憶することと、を含む。
【特許請求の範囲】
【請求項1】
機密コンピューティングのために、複数のコンピューティング・コンポーネントを有するコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ実装方法であって、
コンピューティング・コンポーネントの製造時に、コンポーネント固有のインポート鍵を前記コンピューティング・コンポーネントの一部として恒久的に記憶することと、
前記コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、
コンピューティング・システムのための前記システム固有の秘密に対する要求があると、
前記製造側ストレージ・システム内で、前記コンピューティング・システムに含まれる前記コンピューティング・コンポーネントを識別することと、
前記識別されたコンピューティング・コンポーネントに関係するレコードを前記製造側ストレージ・システムから取得することであって、前記レコードは前記コンポーネント固有のインポート鍵を含んでいる、前記取得することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されている前記システム固有の秘密を判定することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、
前記製造側において、前記取得されたコンポーネント固有のインポート鍵で前記システム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することであって、前記補助鍵バンドルは、前記コンポーネント固有のインポート鍵が関係する前記コンピューティング・コンポーネントへの参照と、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵とを含むバンドル・レコードを含んでいる、前記作成することと、
前記システム固有の秘密を前記システム固有の補助鍵で暗号化することと、
前記補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、前記コンピューティング・システムの記憶媒体に記憶することと、を含むコンピュータ実装方法。
【請求項2】
前記補助鍵バンドルが、少なくとも1つのバンドル・レコードを含み、前記方法が、
前記コンピューティング・システムにより、前記コンピューティング・システムの前記コンピューティング・コンポーネントのうちの1つと一致する前記コンピューティング・コンポーネントへの前記参照を含んでいるバンドル・レコードを、前記補助鍵バンドル内で検索することと、
前記暗号化されたシステム固有のレコードを含んでいる前記システム・レコードと、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵を含んでいる、見つかった前記バンドル・レコードとを、そのコンピューティング・コンポーネントに送ることと、
前記コンピューティング・コンポーネントにより、前記バンドル・レコードからの前記暗号化されたコンピューティング・システム固有の補助鍵を、前記コンピューティング・コンポーネントに記憶されている前記コンピューティング・コンポーネント固有のインポート鍵を用いて解読することと、
前記システム固有のレコードからの前記暗号化されたシステム固有の秘密を、前記システム固有の補助鍵を使用して解読することと、
前記コンピューティング・コンポーネントにより、前記システム固有の秘密を前記コンピューティング・システムのファームウェアに戻すことと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記製造側により、製造側署名鍵を維持することと、
製造側署名鍵に関連付けられた検証鍵を前記コンピューティング・システムに恒久的に記憶することであって、前記バンドル・レコードを作成することが、
前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵の署名と、製造側署名鍵を有する前記コンピューティング・コンポーネントへの前記参照とを判定すること、
前記システム・レコードの署名を決定すること、および
前記システム・レコードの前記署名を前記システム・レコードに追加すること、
を含む、前記記憶することと、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記システム固有の秘密にアクセスする前に、前記コンピューティング・システムにより、前記コンピューティング・システムに記憶されている前記検証鍵を使用して前記バンドル・レコードおよびシステム・レコードを検証することをさらに含む、請求項2または3に記載の方法。
【請求項5】
前記補助鍵バンドルを前記記憶することが、
前記コンピューティング・システムの前記複数のコンピューティング・コンポーネントを変更することと、
前記特定のコンピューティング・システムの一部である記憶媒体にある既存の補助鍵バンドルを、前記コンピューティング・システムの更新後バージョンに関係する新しい補助鍵バンドルに交換することと、
を含む、請求項1ないし4の一項に記載の方法。
【請求項6】
前記システム固有の秘密が戻される前記ファームウェアが、信頼できるファームウェアであり、前記システム固有の秘密が、この信頼できるファームウェアのみによりアクセス可能な前記コンピューティング・システムのメモリに記憶される、請求項2および請求項3ないし請求項5の一項に記載の方法。
【請求項7】
前記信頼できるファームウェアは、システム管理システム、または前記コンピューティング・システムのオペレータ・コマンド、または信頼できるファームウェアとして前記コンピューティング・システムにロードされたのでないソフトウェア、あるいはその組合せを通じたアクセスから保護されている、請求項6に記載の方法。
【請求項8】
前記製造側署名鍵が、製造側ハードウェア・セキュリティ・モジュールによって保護される、請求項2に記載の方法。
【請求項9】
前記システム固有の秘密が、製造側ハードウェア・セキュリティ・モジュールによって生成および保護される鍵である、請求項2または8に記載の方法。
【請求項10】
前記コンポーネント固有のインポート鍵を真の乱数発生器によって生成することと、
前記コンポーネント固有のインポート鍵を前記コンピューティング・コンポーネントにセキュアに記憶することと、
前記コンポーネント固有のインポート鍵を、セキュアなチャネルを介して製造側ハードウェア・セキュリティ・モジュールに送ることと、
前記コンポーネント固有のインポート鍵を前記製造側ハードウェア・セキュリティ・モジュールにインポートすることと、
前記コンポーネント固有のインポート鍵を、前記製造側ハードウェア・セキュリティ・モジュールによって保護されるオブジェクトとして前記製造側ストレージ・システムに記憶することと、
をさらに含む、請求項2または8または9に記載の方法。
【請求項11】
前記製造側署名鍵に関連付けられた前記検証鍵を前記コンピューティング・コンポーネントに記憶することと、
前記システム固有の秘密を解読する前に、前記コンピューティング・コンポーネントにより、前記検証鍵を使用して各暗号化されたシステム固有の秘密の前記署名を検証することと、
をさらに含む、請求項3に記載の方法。
【請求項12】
前記システム固有の秘密を、機密コンピューティングのための信頼できる実行環境のベース秘密として使用することをさらに含む、請求項2または請求項8ないし10の一項に記載の方法。
【請求項13】
前記コンピューティング・システムのための新しいシステム固有の補助鍵を生成したときにも、新しいシステム固有の秘密が決定され、新しい補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいる新しいシステム・レコードとが、前記コンピューティング・システムの前記記憶媒体に記憶される、請求項2または請求項8ないし10の一項または12に記載の方法。
【請求項14】
前記補助鍵でラップされた前記システム固有の秘密を含んでいる前記システム・レコードを前記コンピューティング・システムの記憶媒体に前記記憶した後に、前記システム固有の秘密を削除することをさらに含む、請求項2または請求項8ないし10の一項または12または13に記載の方法。
【請求項15】
機密コンピューティングのために、複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するためのハードウェア秘密配備システムであって、前記システムが、
1つまたは複数のプロセッサ、および前記1つまたは複数のプロセッサに通信的に結合されたメモリ、を備え、前記メモリに、1つまたは複数のプログラム・コード部分が記憶され、前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、
コンピューティング・コンポーネントの製造時に、コンポーネント固有のインポート鍵を前記コンピューティング・コンポーネントの一部として恒久的に記憶することと、
前記コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、
コンピューティング・システムのための前記システム固有の秘密に対する要求があると、
前記製造側ストレージ・システム内で、前記コンピューティング・システムに含まれる前記コンピューティング・コンポーネントを識別することと、
前記識別されたコンピューティング・コンポーネントに関係するレコードを前記製造側ストレージ・システムから取得することであって、前記レコードは一意のコンポーネント固有のインポート鍵を含んでいる、前記取得することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されている前記システム固有の秘密を判定することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、
前記製造側において、前記取得されたコンポーネント固有のインポート鍵で前記システム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することであって、前記補助鍵バンドルは、前記コンポーネント固有のインポート鍵が関係する前記コンピューティング・コンポーネントへの参照と、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵とを含むバンドル・レコードを含んでいる、前記作成することと、
前記システム固有の秘密を前記システム固有の補助鍵で暗号化することと、
前記補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、前記コンピューティング・システムの記憶媒体に記憶することと、
を可能にする、ハードウェア秘密配備システム。
【請求項16】
前記秘密補助鍵が、バンドル・レコードの少なくとも1つを含み、前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、
前記コンピューティング・システムにより、前記コンピューティング・システムの前記コンピューティング・コンポーネントのうちの1つと一致する前記コンピューティング・コンポーネントへの前記参照を含んでいるレコードを、前記補助鍵バンドル内で検索することと、
前記暗号化されたシステム固有のシステム・レコードを含んでいる前記システム・レコードと、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵を含んでいる、見つかった前記バンドル・レコードとを、そのコンピューティング・コンポーネントに送ることと、
前記コンピューティング・コンポーネントにより、前記バンドル・レコードからの前記暗号化されたコンピューティング・システム固有の補助鍵を、前記コンピューティング・コンポーネントに記憶されている前記コンピューティング・コンポーネント固有のインポート鍵を用いて解読することと、
前記システム固有のレコードからの前記暗号化されたシステム固有の秘密を、前記システム固有の補助鍵を使用して解読することと、
前記コンピューティング・コンポーネントにより、前記システム固有の秘密を前記コンピューティング・システムのファームウェアに戻すことと、
も可能にする、請求項15に記載のシステム。
【請求項17】
前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、
前記製造側により、製造側署名鍵を維持することと、
製造側署名鍵に関連付けられた検証鍵を前記コンピューティング・システムに恒久的に記憶することと、をも可能にし、前記バンドル・レコードを作成することが、
前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵の署名と、製造側署名鍵を有する前記コンピューティング・コンポーネントへの前記参照とを判定することと、
前記署名を前記バンドル・レコードに追加することと、
前記システム・レコードの署名を決定することと、
前記システム・レコードの前記署名を前記システム・レコードに追加することと、
も含む、請求項16に記載のシステム。
【請求項18】
前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、前記システム固有の秘密にアクセスする前に、前記コンピューティング・システムにより、前記コンピューティング・システムに記憶されている前記検証鍵を使用して前記バンドル・レコードを検証することも可能にする、請求項17に記載のシステム。
【請求項19】
前記補助鍵バンドルを前記記憶することが、
前記コンピューティング・システムの前記複数のコンピューティング・コンポーネントを変更することと、
前記特定のコンピューティング・システムの一部である記憶媒体にある既存の補助鍵バンドルを、前記コンピューティング・システムの更新後バージョンに関係する新しい補助鍵バンドルに交換することと、
を含む、請求項17または18に記載のシステム。
【請求項20】
機密コンピューティングのために、複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム命令が組み込まれているコンピュータ可読記憶媒体を備え、前記プログラム命令は、1つまたは複数のコンピューティング・システムに、
前記コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、
コンピューティング・システムのための前記システム固有の秘密に対する要求があると、
前記製造側ストレージ・システム内で、前記コンピューティング・システムに含まれる前記コンピューティング・コンポーネントを識別することと、
前記識別されたコンピューティング・コンポーネントに関係するレコードを前記製造側ストレージ・システムから取得することであって、前記レコードは一意のコンポーネント固有のインポート鍵を含んでいる、前記取得することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されている前記システム固有の秘密を判定することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、
前記製造側において、前記取得されたコンポーネント固有のインポート鍵で前記システム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することであって、前記補助鍵バンドルは、前記コンポーネント固有のインポート鍵が関係する前記コンピューティング・コンポーネントへの参照と、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵とを含むバンドル・レコードを含んでいる、前記作成することと、
前記システム固有の秘密を前記システム固有の補助鍵で暗号化することと、
前記補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、前記コンピューティング・システムの記憶媒体に記憶することと、
を行わせるために、前記1つまたは複数のコンピューティング・システムまたはコントローラによって実行可能である、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般的に、システム固有の秘密をコンピューティング・システムに提供するための方法、より詳細には、複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ実装方法に関する。本発明はさらに、関係するハードウェア秘密配備システムおよびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
データならびに通信回線のセキュリティ保護は、企業のIT(情報技術)管理において最上位を占め続けている。これが必要とされるのは、行政命令(例えば、EUのGDPR、すなわち一般データ保護規則(General Data Protection Regulation))の理由からだけではなく、万一顧客のデータ・レコードが危殆化された場合、信頼性が失われて企業が顧客データを保護することができず、したがって収益および利益が失われるためでもある。データ保護およびセキュアなコンピューティング・プラットフォームの提供は、ソフトウェア問題であるだけでなく、コンピュータ・システムの構成要素が製造され、配備の間にそれらが管理される方式から始まり得ることが分かる。これは、マイクロコントローラ、パーソナル・コンピュータ、携帯電話、または家庭用自動化デバイスで使用される量販CPUチップには、まだ当然の環境とはなっていないかもしれない。しかし、金融、保険、または政府産業の分野で使用されているような高信頼のコンピューティング環境については、技術的観点からデータ侵害を非常に高い確率で防止できることを証明することがますます重要になっている。これは、何らかの付加的な高度技術コンポーネントおよび支援プロセスを必要とする可能性があるが、データ・セキュリティ面における関係する成功は、この付加的労力に見合うものである。
【0003】
ハードウェア・セキュリティ・モジュールが既にしばらくの間使用されているが、より大型のコンピューティング・コンプレックス内の一部のモジュールが危殆化されないことを保証するのは、より複雑な課題である。
【発明の概要】
【0004】
本発明の1つの態様によれば、複数のコンピューティング・コンポーネントを有するコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ実装方法が提供される。方法は、コンポーネント固有のインポート鍵をコンピューティング・コンポーネントの一部として恒久的に記憶することと、コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、を含む。コンピューティング・システムのためのシステム固有の秘密に対する要求があると、方法は、コンピューティング・システムに含まれるコンピューティング・コンポーネントを識別することと、識別されたコンピューティング・コンポーネントに関係するレコードを取得することと、ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の秘密を判定することと、システム固有の補助鍵を判定することと、を含む。さらに、方法は、取得されたコンポーネント固有のインポート鍵でシステム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することと、システム固有の秘密を暗号化することと、補助鍵バンドルおよびシステム・レコードをコンピューティング・システムの記憶媒体に記憶することと、を含む。
【0005】
本発明の他の実施形態は、上記の方法の機能をコンピュータ・システムおよびコンピュータ・プログラム製品内で実施する。
【0006】
追加的な技術的特徴および利益が、本発明の技術を通じて実現される。本発明の実施形態および態様は、本明細書に詳細に説明され、特許請求される主題の一部とみなされる。よりよい理解のために、詳細な説明および図面を参照する。
【0007】
本発明の実施形態は、いくつかの異なる主題を参照して説明されることが留意されるべきである。詳細には、一部の実施形態は、方法タイプの請求項を参照して説明されるのに対し、他の実施形態は、装置タイプの請求項を参照して説明される。しかし、当業者は、上記および以下の説明から、別途指示されない限り、ある種類の主題に属する特徴の組合せに加えて、異なる主題に関係する特徴間の、詳細には方法タイプの請求項の特徴と装置タイプの請求項の特徴間の、組合せも本文献の中で開示されるとみなされるべきことを認識するであろう。
【0008】
上記に定義された態様および本発明のさらなる態様が、以降本明細書に記載される実施形態の例から明らかであり、本発明がそれに限定されない実施形態の例を参照して説明される。本発明の実施形態について、単なる例として、以下の図面を参照しながら説明する。
【図面の簡単な説明】
【0009】
図1】複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するための本発明のコンピュータ実装方法の一実施形態のブロック図である。
図2】複数のコンピューティング・コンポーネントを含む具体的なコンピューティング・システムの一実施形態のブロック図である。
図3】システム固有の秘密が、信頼できるファームウェアに対して入手可能にされる方式を説明する、具体的なコンピューティング・システム200の一実施形態のブロック図である。
図4】コンピューティング・システムによって使用されるコンピューティング・コンポーネントの鍵インポート・コンポーネントの製造の一実施形態を説明する図である。
図5】コンピューティング・システムおよびその関係する鍵インポート・コンポーネントの製造時の、ホスト・インポート鍵(すなわち、システム固有の補助鍵)バンドルの生成または製造の一実施形態を説明する図である。
図6】コンピューティング・システムのホスト・インポート鍵(システム固有の補助鍵)を使用する、コンピューティング・システムの製造時のホスト鍵の製造プロセスを示す図である。
図7】信頼できるファームウェア・フローの一部としてのシステム固有の秘密のアンパックを説明するフローチャートである。
図8】鍵インポート・コンポーネントのフロー、特にコンポーネント固有の秘密のアンパック、を詳細に説明するフローチャートである。
図9】コンピューティング・システムにシステム固有の秘密を提供するための本発明のハードウェア秘密配備システムの一実施形態のブロック図である。
図10】提案される方法を実行するために使われるコンピューティング・システムの一実施形態を少なくとも部分的に示す図である。
【発明を実施するための形態】
【0010】
本発明の1つの態様によれば、複数のコンピューティング・コンポーネントを有するコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ実装方法が提供される。方法は、コンピューティング・コンポーネントの製造時に、コンポーネント固有のインポート鍵をコンピューティング・コンポーネントの一部として恒久的に記憶することと、コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、を含む。コンピューティング・システムのためのシステム固有の秘密に対する要求があると、方法は、製造側ストレージ・システム内で、コンピューティング・システムに含まれるコンピューティング・コンポーネントを識別することと、識別されたコンピューティング・コンポーネントに関係するレコードを製造側ストレージ・システムから取得することであって、レコードは一意のコンポーネント固有のインポート鍵を含んでいる、取得することと、製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の秘密を判定することと、製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、を含んでよい。
【0011】
さらに、方法は、製造側において、取得されたコンポーネント固有のインポート鍵でシステム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することをさらに含むことができ、補助鍵バンドルは、コンポーネント固有のインポート鍵が関係するコンピューティング・コンポーネントへの参照と、コンポーネント固有のインポート鍵によって暗号化されたシステム固有の補助鍵とを含むバンドル・レコードを含んでいる。
【0012】
加えて、方法は、システム固有の秘密をシステム固有の補助鍵で暗号化することと、補助鍵バンドルと、暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、コンピューティング・システムの記憶媒体に記憶することと、を含んでよい。
【0013】
本発明の別の態様によれば、機密コンピューティングのために、複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するためのハードウェア秘密配備システムが提供され得る。システムは、1つまたは複数のプロセッサ、およびこの1つまたは複数のプロセッサに通信的に結合されたメモリを備えてよく、メモリは、1つまたは複数のプログラム・コード部分を記憶し、1つまたは複数のプログラム・コード部分は、1つまたは複数のプロセッサによって実行されたときに、1つまたは複数のプロセッサが、コンピューティング・コンポーネントの製造時に、コンポーネント固有のインポート鍵をコンピューティング・コンポーネントの一部として恒久的に記憶することと、コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、を可能にする。
【0014】
コンピューティング・システムのためのシステム固有の秘密に対する要求があると、プロセッサは、製造側ストレージ・システム内で、コンピューティング・システムに含まれるコンピューティング・コンポーネントを識別することと、識別されたコンピューティング・コンポーネントに関係するレコードを製造側ストレージ・システムから取得することであって、レコードは一意のコンポーネント固有のインポート鍵を含んでいる、取得することと、製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の秘密を判定することと、製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、も可能にされてよい。
【0015】
例示的実施形態では、プロセッサは、製造側において、取得されたコンポーネント固有のインポート鍵でシステム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することを可能にされてよく、補助鍵バンドルは、コンポーネント固有のインポート鍵が関係するコンピューティング・コンポーネントへの参照と、コンポーネント固有のインポート鍵によって暗号化されたシステム固有の補助鍵とを含むバンドル・レコードを含んでいる。さらに、プロセッサは、システム固有の秘密をシステム固有の補助鍵で暗号化することと、補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、コンピューティング・システムの記憶媒体に記憶することと、を可能にされてよい。
【0016】
複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するためのこのコンピュータ実装方法は、多数の利点、技術的効果、貢献、または改良、あるいはその組合せをもたらす可能性がある。
【0017】
提示される解決策は、コンピュータ・システムまたはそのコンポーネントの製造者が、システム固有の秘密を作成したことを安全に保証することを可能にし、これは、その出所を疑義なしに証明することができないシステム固有の秘密を無効にできることも含んでよい。
【0018】
加えて、ここに提案される概念により、システム固有の秘密が永続的である、すなわちシステムの再始動を経て存続する、ことが保証され得る。提案される概念はまた、コンピュータ・システムの冗長なコンポーネントに依拠すると共にそれを許可し、コンピューティング・コンポーネントは、システムとは独立して製造されてよく、または既に存在するコンピューティング・システムに後に追加されてもよい。
【0019】
これは、システムの寿命の間にそのようなコンポーネントのいずれかを交換することをも可能にし得る。さらに、提示される解決策により、システム固有の秘密に、どの管理インターフェース、例えば、システム管理ソフトウェア、コントロールもしくは同様のもの、またはオペレータ行動によってもアクセスできないことが保証され得る。したがって、システム固有の秘密は、平文テキストの状態ではコンピュータ・システムのファームウェア、特に信頼できるファームウェア、だけに知られ得、コンピュータ・システムのユーザ/所有者にも、またコンピュータ・システムのコンピューティング・コンポーネントの製造者にも知られることはない。コンピュータ・システムのいずれかのコンポーネントが破損しても、システム固有の秘密やコンピュータ・システムの他のコンポーネントの機密性に影響しない可能性がある。しかし、コンピュータ・システムのコンピューティング・コンポーネントが危殆化され、システム固有の秘密が漏洩した場合には、コンピューティング・システムのその特定の部分、すなわちコンピューティング・コンポーネント、を変更することなく、秘密が交換可能でなければならない。ここに提案される解決策は、これをエレガントに可能にし得る。
【0020】
ここに提案される概念は、冗長性が可能でないランダムに生成される鍵を使用して、またはコンポーネントだけに固有である製造供給鍵をコンピューティング・システムに提供することにより、信頼できるプラットフォーム・モジュール(TPM)に秘密を維持する概念をはるかに超え得る。また、製造者が非クリア・テキスト形態でのシステム固有の秘密に対するコントロールを維持できない可能性があるために製造者がシステム固有の秘密を無効にすることができないシステムの不都合点が克服され得る。
【0021】
さらに、提示される解決策は、RAS(信頼性(reliability)、可用性(availability)、保守性(serviceability))の強い要件に対処し、コンポーネントが独立して製造され、また独立して交換可能となり得るように、システム固有の鍵に関して冗長性を許す。さらに、複数のシステムが、同じシステム固有の鍵を、完全に制御可能な形で具備してもよい。
【0022】
加えて、コンピューティング・コンポーネント内に保護された形態で含まれる補助鍵を使用する、ある種の二重保護という実装されるこの概念は、暗号化されたシステム固有の秘密を含んでいるシステム・レコードが製造後のシステムに入れられた後に、元のランダムなシステム鍵またはシステム固有の鍵を再確立するために使用され得るデータを、製造時にどのストレージからも削除することを可能にし得る。それはそれ以上必要とされない可能性もあるが、一方で、予防のための保守管理作業としてまたはコンピューティング・コンポーネントの故障の場合に、交換部品がコンピューティング・システムのために設置された場合でも、コンピューティング・システムの完全性を保護することも可能となる。
【0023】
方法の一実施形態によれば、補助鍵バンドルは、少なくとも1つの、詳細には複数の、バンドル・レコードを含んでよく、方法はまた、コンピューティング・システムにより、コンピューティング・システムのコンピューティング・コンポーネントのうちの1つと一致するコンピューティング・コンポーネントへの参照を含んでいるレコードを、補助鍵バンドル内で検索することと、暗号化されたシステム固有のシステム・レコードを含んでいるシステム・レコードと、コンポーネント固有のインポート鍵によって暗号化されたシステム固有の補助鍵を含んでいる、見つかったバンドル・レコードとを、そのコンピューティング・コンポーネントに送ることと、コンピューティング・コンポーネントにより、前記バンドル・レコードからの暗号化されたコンピューティング・システム固有の補助鍵を、コンピューティング・コンポーネントに記憶されているコンピューティング・コンポーネント固有のインポート鍵、特に対称鍵、を用いて解読することと、前記コンピューティング・コンポーネントにより、前記システム固有のレコードからの暗号化されたシステム固有の秘密を、システム固有の補助鍵を使用して解読することと、コンピューティング・コンポーネントにより、システム固有の秘密をコンピューティング・システムのファームウェアに戻すことと、を含んでよい。
【0024】
したがって、ファームウェア、詳細には信頼できるファームウェア、は、コンピューティング・コンポーネントまたは信頼できるファームウェアの外側においてクリア・テキスト形態で入手できることは決してない、信頼できるファームウェアに送られてきたシステム固有の秘密にアクセスできるようになる。システム固有の秘密を、セキュアなコンピューティング、または例えば同様の手順を経た、すなわち自身のシステム固有の秘密にアクセスすることができる、他のコンピューティング・システムとのセキュアな通信のために利用可能にするために、コンピューティング・システム内の他のコンピューティング・コンポーネントは必要とされなかった。
【0025】
一実施形態によれば、方法はまた、製造側により、製造側署名鍵を維持することと、製造側署名鍵に関連付けられた検証鍵をコンピューティング・システムに、詳細にはコンピューティング・コンポーネントに、恒久的に記憶することを含んでよい。それにより、バンドル・レコードを作成することはまた、コンポーネント固有のインポート鍵によって暗号化されたシステム固有の補助鍵の署名と、製造側署名鍵を有するコンピューティング・コンポーネントへの参照とを判定する、詳細には演算する、ことと、前記システム・レコードの署名を決定することと、システム・レコードの署名をシステム・レコード(以降ではHIKB(ホスト・インポート鍵バンドル)とも表記される)に追加することと、を含んでよい。製造側サーバが、コンピューティング・システムのシステム・ディスクへのホスト・インポート鍵バンドルの送信を制御してよい。HIKBの各レコードは、署名を含んでよい。
【0026】
別の実施形態によれば、方法はまた、補助鍵またはシステム固有の秘密にアクセスする前に、コンピューティング・システムにより、コンピューティング・システムに記憶されている検証鍵を使用してバンドル・レコードおよびシステム・レコードを検証することを含んでよい。これらの検証は、ファームウェアにより、より具体的には当該のコンピューティング・コンポーネントとファームウェアとの協働により、制御されてよい。
【0027】
それにより、補助鍵バンドルまたはシステム・レコードあるいはその両方をコンピューティング・システムの記憶媒体に記憶することが、補助鍵バンドルまたはシステム・レコードあるいはその両方を、システム・サポート・チャネル、例えばコールホーム・サポート機構、を通じて、更新された補助鍵バンドルまたは新しいシステム固有の秘密あるいはその両方が要求された対象の特定のコンピューティング・システムに送ることも可能となり得る。そのような新しい補助鍵バンドルまたはシステム・レコードあるいはその両方のこの出所は、コンピューティング・コンポーネントの製造施設であってよい。
【0028】
そのような文脈において、方法の一実施形態によれば、補助鍵バンドルを記憶することは、コンピューティング・システムの複数のコンピューティング・コンポーネントを変更することと、前記特定のコンピューティング・システムの一部である記憶媒体、例えばコンピューティング・システムのシステム・ディスク、にある既存の補助鍵バンドルを、前記コンピューティング・システムの更新後バージョンに関係する新しい補助鍵バンドルに交換することと、を含んでよい。これは、コンピューティング・システム上のコンピューティング・コンポーネントが修理を必要とする場合に有用な機能であり得る。コンピューティング・コンポーネントの交換は、コンピューティング・システムが更新される場合などにも有用であり得る。また、古いシステム固有の補助鍵を無効にする必要がある場合に、古い補助鍵と古いシステム固有の秘密の両方を新しいものに交換することも、エレガントに可能になり得る。
【0029】
方法の一実施形態によれば、システム固有の秘密が(詳細には検証およびアンラップの後にコンピューティング・コンポーネントから)戻されてよいファームウェアは、信頼できるファームウェアであってよい。それにより、システム固有の秘密は、この信頼できるファームウェアのみによりアクセス可能なコンピューティング・システムのメモリに記憶されてよい。したがって、権限のない人員によるシステム固有の秘密へのアクセスは、アプリケーションのインターフェースでもコマンド・インターフェースでも、決して可能になることはない。
【0030】
方法の一実施形態によれば、信頼できるファームウェアは、システム管理システム、またはコンピューティング・システムのオペレータ・コマンド、または信頼できるファームウェアとしてコンピューティング・システムにロードされたのでないソフトウェア、あるいはその組合せを通じたアクセスから保護されてよい。このようにして、コンピューティング・プラットフォームは、最高のセキュリティおよび機密性レベルの機密コンピューティング・プラットフォームに必要な要件に準拠し得る。
【0031】
方法の一実施形態によれば、コンピューティング・コンポーネントは、特定のコンピューティング・システムとは独立して製造されてよい。よって、コンピューティング・コンポーネントは、顧客の場所における特定のホスト・コンピュータの最初の使用の後、すなわち製造を離れた後に最初にインストールされた後に、アップグレード・コンポーネントとしてインストールまたは使用されてよい。さらに、システム、すなわちホスト・システムはまた、事前に製造されたコンポーネントの任意のセットから組み立てられ得る。
【0032】
方法の一実施形態によれば、製造側署名鍵は、製造側ハードウェア・セキュリティ・モジュールによって保護される、すなわち暗号化またはラップされてよい。したがって、製造の際に誰も平文テキストの署名鍵を知り得ない。
【0033】
方法の別の実施形態によれば、システム固有の秘密は、製造側ハードウェア・セキュリティ・モジュールによって生成および保護される暗号鍵であってもよい。したがって、システム固有の秘密についても、製造の際に誰も平文テキストの秘密を知り得ないことが当てはまる。
【0034】
方法の一実施形態によれば、特に製造側の視点から、方法は、当該1つの、より好ましくはそれぞれの、コンポーネント固有のインポート鍵を真の乱数発生器によって生成することと、特に製造側において、特に製造時に、コンポーネント固有のインポート鍵をコンピューティング・コンポーネントにセキュアに記憶することと、コンポーネント固有のインポート鍵を、セキュアなチャネルを介して製造側ハードウェア・セキュリティ・モジュールに送ることと、を含んでよい。
【0035】
さらに、方法は、この文脈およびこの実施形態において、コンポーネント固有のインポート鍵を製造側ハードウェア・セキュリティ・モジュールにインポートすることと、コンポーネント固有のインポート鍵を、製造側ハードウェア・セキュリティ・モジュールによって保護されるオブジェクトとして製造側ストレージ・システムに記憶することと、を含んでよい。したがって、コンポーネント固有のインポート鍵も、クリア・テキストでは誰にも入手可能でない。
【0036】
別の実施形態によれば、方法はまた、製造側署名鍵に関連付けられた検証鍵をコンピューティング・コンポーネントに記憶することと、システム固有の秘密を解読する前に、コンピューティング・コンポーネントにより、検証鍵を使用して各暗号化されたシステム固有の秘密の署名を検証することと、を含んでよい。したがって、コンピューティング・システムのコンピューティング・コンポーネントと、あるコンポーネントの解読鍵で暗号化されたシステム秘密との間に不一致が生じ得ない。
【0037】
一実施形態によれば、方法はまた、システム固有の秘密を、機密コンピューティングのための信頼できる実行環境のベース秘密として使用することを含んでよい。これは、例えば、システム固有の秘密を、一致する鍵を具備している他のコンピューティング・システムとの暗号化されたまたはその他の方法で保護された通信のためのコア鍵として使用して、セキュアな通信チャネルを確立することであってよい。
【0038】
さらなる実施形態によれば、方法は、コンピューティング・システムのための新しいシステム固有の補助鍵を生成したときにも、新しいシステム固有の秘密が決定されてよく、新しい補助鍵バンドルと、暗号化されたシステム固有の秘密を含んでいる新しいシステム・レコードとが、コンピューティング・システムの記憶媒体に記憶されてよいことを含んでよい。これは、保守管理活動およびシステム・コンポーネント(すなわち、コンピューティング・システムのコンピューティング・コンポーネント)の交換に関して秘密コンピューティングのループを閉じてよい。
【0039】
別の実施形態によれば、方法は、補助鍵でラップされたシステム固有の秘密を含んでいるシステム・レコードを前記コンピューティング・システムの記憶媒体に記憶した後に、システム固有の秘密を削除することを含んでよい。よって、これは、暗号化されたシステム固有の秘密を含んでいるシステム・レコードがコンピューティング・システムの記憶媒体に記憶された、すなわち顧客に発送されるコンピューティング・システムに秘密が配布された、直後に実行されてよい。
【0040】
この説明の文脈において、以下の取り決め、用語、または表現、あるいはその組合せが使用されることがある。
【0041】
用語「システム固有の秘密」は、特定のコンピューティング・システムがセキュアなコンピューティング・プラットフォームとして機能することを可能にするために、その特定のコンピューティング・システムのために特に作成され得るバイナリ値を意味することがある。詳細には、システム固有の秘密は、例えば対称鍵ペアの秘密部分のような暗号鍵であってよい。システム固有の秘密は、製造側においても、またユーザやそのソフトウェア・システムのいずれに対しても、クリア・テキストの状態で入手可能になることは決してない。システム固有の秘密は、ランダムに生成され、予め定められた規則に従って保護され、永続的に記憶され、再度そのクリア・テキスト・バージョンの状態で削除されてよい。クリア・テキスト状態のシステム固有の秘密へのアクセスは、予め定められた保護スキーマと鍵を使用してのみ可能であってよい。
【0042】
用語「補助鍵」は、対称鍵または非対称鍵の対のうちの秘密鍵のどちらであってもよい暗号鍵を意味することがある。対称鍵を補助鍵として選定できることには、対称鍵は一般に非対称鍵よりも小さいという利点がある。この利点は、量子安全暗号法に関係する者にとって重要である。各コンピューティング・システムに対して、システム固有の補助鍵が選定される。システムの補助鍵は、システム固有の秘密をシステムにインポートするために使用される。したがって、それはホスト・インポート鍵(HIK)とも呼ばれる。
【0043】
用語「コンピューティング・システム」は、中央電子コンプレックス(CEC)、コプロセッサ、セキュアな機器、ネットワーク・プロセッサ等のような複数のコンピューティング・コンポーネントを備える大型のコンピュータ・システムを意味することがある。
【0044】
用語「コンピューティング・コンポーネント」は、大型のコンピューティング・システムの一部分を意味することがあり、コンピューティング・コンポーネントは、少なくとも基本的なコンピューティング能力といくらかのメモリを備えてよい。加えて、コンピューティング・コンポーネントは、鍵インポート・コンポーネントを含んでよい。このコンポーネントは、システム固有の鍵をファームウェアに提供することを可能にする、または要求時に入手可能にしてよい。鍵インポート・コンポーネントは、すべての必須能力ならびに補助鍵バンドル・レコードまたはシステム・レコードを検証し、補助ホスト鍵およびシステム固有の秘密をアンラップするためのパスワードおよび解読能力を有してよい。各コンピューティング・コンポーネントは、鍵インポート・コンポーネントに固有のパスワードおよび鍵を持つ、それ独自の鍵インポート・コンポーネントを有してよい。特殊な事例として、鍵インポート・コンポーネントは、コンピューティング・コンポーネントが含む唯一の要素であってもよい。
【0045】
用語「機密コンピューティング」は、ここでは、例えば、コンピューティング・システムの信頼できるファームウェアだけに入手可能な暗号鍵および解読鍵の使用を意味することがある。鍵は、どのユーザまたはユーザ・ソフトウェアにも入手可能でないこともある。基本的に、鍵は、クリア・テキスト形態では誰にも入手可能でなくてよい。しかし、それらを使用して、コンピューティング・システム上のデータならびに別のコンピューティング・システムへの通信データをセキュアにし、機密コンピューティングを可能にし得る。
【0046】
用語「コンポーネント固有のインポート鍵」は、システム固有の補助鍵および可能性としては例えばコンピューティング・システムのシステム・ディスクに記憶されているシステム固有の秘密をアンラップする(すなわち、解読する)ために使われる解読鍵、特に対称鍵、を意味することがある。対称鍵ペアを使用する場合には(ただし非対称鍵ペアも可能であり得る)、必要とする記憶空間がより少ない、すなわちより高速であり得、量子安全であり得るという利点があり得る。
【0047】
用語「製造時」は、ここでは、製造現場において「コンピューティング・コンポーネントを製造する工程の間」を意味することがある。したがって、コンピューティング・コンポーネントが製造現場の管理下にある限り、コンピュータ・コンポーネントは、「構築中」または「製造時」とみなされてよい。これは、コンピューティング・コンポーネントの製造が物理的に完了している可能性がある場合にも有効であってよい。しかし、ソフトウェアやデータが、この時間の間にコンピューティング・コンポーネントにロードされ得る。
【0048】
用語「製造側ストレージ・システム」は、コンポーネント識別子によって識別可能なレコードを記憶し、コンポーネント識別子を、保護バージョンのシステム固有の秘密、および任意でそのレコードが製造会社に由来するものであることの証明を提供する署名と共に記憶する、データベース(または同様のもの)を意味することがある。
【0049】
用語「ハードウェア・セキュリティ・モジュール」(HSM)は、コンピュータ・システム、例えばサーバ・システム、例えばここでは製造側サーバ・コンピュータ、に接続されているかまたは組み込まれているハードウェア要素を意味することがある。HSMは、改ざん耐性があるように、また、秘密、すなわちソフトウェア鍵、を不正アクセス、さらには物理的な侵入または予定外の物理的な電源切断あるいはその両方から保護するように、設計される。HSMは、密接にCPUに関係付けられても、またはCPUとは独立して操作されてもよい。言い換えると、HSMは、強い認証のために1つまたは複数のデジタル鍵を保護・管理し、暗号処理を提供する物理的コンピューティング・デバイスである。これらのモジュールは、従来、コンピュータまたはネットワーク・サーバに直接取り付けることが可能なプラグイン・カードまたは外部デバイスの形態で売られることがある。
【0050】
用語「補助鍵バンドル」は、例えばコンピュータ・システムのシステム・ディスクに記憶される少なくとも1つのレコード、通例は複数のレコード、を意味することがあり、補助鍵バンドルの各レコードは、コンポーネント識別子、保護バージョンのシステム固有の補助鍵、および署名、の少なくとも3つのコンポーネントを含む。
【0051】
用語「バンドル・レコード」は、補助鍵バンドル(以降「ホスト・インポート鍵バンドル」とも呼ばれる)のレコードの1つを意味することがある。
【0052】
用語「記憶媒体」は、データを永続的に記憶するように適合された、コンピューティング・システムまたはコンピューティング・コンポーネント内の任意形態のメモリを意味することがある。
【0053】
用語「ファームウェア」または信頼できるファームウェアは、コンピュータ・システムのハードウェア・コンポーネントに深く関係付けられ得るソフトウェアを意味することがあり、そのソフトウェアについて、ユーザは、その信頼できるファームウェアが、ある1つの特定の信頼できるベンダによってのみ配布され、そのハードウェアの顧客によって自由に配備できるどのソフトウェアによってもアクセス可能でないことを確信することができる。
【0054】
用語「製造側署名鍵」は、レコード、例えば補助鍵バンドルのレコード、が予め定められた製造施設または提供者に由来する証拠を提供する、公開/秘密鍵ペアの秘密部分を意味することがある。
【0055】
用語「検証鍵」は、署名が特定の出所、例えば製造者、に由来する可能性があることの証明を提供することを可能にされた、公開/秘密鍵ペアの公開部分を意味することがある。
【0056】
用語「機密コンピューティングのための信頼できる実行環境」は、ホスト側のソフトウェアが始動して何らかのゲスト・ソフトウェアをホストすることを可能にし、ホスト側のソフトウェアが、ゲスト・ソフトウェアの実行中にゲスト・ソフトウェアのデータについての詳細を知ることのない、コンピューティング環境を意味することがある。詳細には、ホスト・ソフトウェアは、ハイパーバイザであってよく、ゲスト・ソフトウェアは、仮想機械(ゲストとも呼ばれる)であってよい。IBM(R)Secure Execution for Linux、AMD SEV、およびIntel(R)SGXは、信頼できる実行環境の例である。
【0057】
以下に、図面の詳細な説明が与えられる。図中のすべての命令は模式的なものである。最初に、複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するための本発明のコンピュータ実装方法の一実施形態のブロック図が与えられる。その後、さらなる実施形態ならびにコンピューティング・システムにシステム固有の秘密を提供するためのハードウェア秘密配備システムの実施形態が説明される。
【0058】
図1は、システム固有の秘密、すなわちホスト鍵、を複数のコンピューティング・コンポーネントを含むコンピューティング・システムに提供するためのコンピュータ実装方法100の一実施形態のブロック図を示す。これらは、CEC(コンピューティング実行コンプレックス)、セキュアな機器、コプロセッサ等を含み得る。
【0059】
方法100は、コンピューティング・コンポーネントの製造時に、例えばS-EEPROMを使用して、またはその他の形で関連するデバイスに焼き付けることにより、コンポーネント固有のインポート鍵(以降、IK1、IK2、...IKnと表される)を、コンピューティング・コンポーネントの一部として恒久的に記憶すること102を含む。それにより、コンピューティング・コンポーネントは、演算装置および何らかのメモリを備えることができる。方法100は、コンポーネント固有のインポート鍵、すなわちIK1、IK2、...、IKn、を製造側ストレージ・システムに永続的に記憶すること104をさらに含む。したがって、コンポーネント固有のインポート鍵は、製造工程の後に使用のために入手可能であり得る。また、インポート鍵は、クリアな鍵値を完全にアクセス不能にする、(製造ホストからの)HSMで保護された鍵オブジェクトの形態で記憶されることが言及されるべきである。
【0060】
コンピューティング・システム(詳細には、顧客の特定のコンピューティング・システム、自動コンピューティング・システム注文システム、ハードウェア・パートナー・アップグレード注文システム、既存のシステム秘密を新しい秘密に交換したいセキュリティ担当者)のためのシステム固有の秘密に対する要求があると106、方法100は、製造側ストレージ・システム内で、当該コンピューティング・システムに含まれているコンピューティング・コンポーネントを識別する、詳細には、そのコンピューティング・コンポーネントを識別する関係する識別子を特定すること、108を含む。これは、すべての製造されたコンポーネントを追跡している製造データベースから、製造側において行うことができる。
【0061】
方法100は、識別されたコンピューティング・コンポーネントに関係するレコードを製造側ストレージ・システムから取得すること110をさらに含み、このレコードは、一意のコンポーネント固有のインポート鍵を含んでおり、方法100は、製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の秘密を判定すること112をさらに含む。これは、そのコンピューティング・システムのために既に生成されているシステム固有の秘密を取り出すこと(例えば、既存のコンピューティング・システムでコンピューティング・コンポーネントを修理または交換する場合)、または、例えば新しいコンピューティング・システムを製造する、もしくは既存のコンピューティング・システムのシステム秘密を交換する場合に、新しい(ランダムな)秘密を生成することのどちらによって行われてもよい。
【0062】
続くステップで、方法100はまた、製造側ハードウェア・セキュリティ・モジュール・ステップによって保護されているシステム固有の補助鍵を判定すること113を含む。通例、システム固有の補助鍵は、ハードウェア・セキュリティ・モジュールによって生成されるランダム鍵であり、製造時に、そのハードウェア・セキュリティ・モジュールによって保護されるオブジェクトとして、システム識別子と共にデータベースに記憶される。
【0063】
さらに、方法100は、製造側において、取得されたコンポーネント固有のインポート鍵、すなわちIK1等、でシステム固有の補助鍵を暗号化し、それにより補助鍵バンドル(最低でも1つのエントリを含むが、通例はより多くのエントリ/レコードを含む)を作成すること114を含み、ここで、補助鍵バンドルは、そのコンポーネント固有のインポート鍵が関係するコンピューティング・コンポーネントへの参照と、そのコンポーネント固有のインポート鍵によって暗号化されたシステム固有の補助鍵とを含んでいる少なくとも1つのバンドル・レコードを含む。
【0064】
さらに、方法100は、製造側において、システム固有の秘密を暗号化し、それによりシステム・レコードを作成すること115、および、通例は、多くの場合に補助鍵バンドルとシステム・レコードの両方を製造側コンピュータからコンピューティング・システムに転送し、補助鍵バンドルおよびシステム・レコードを、詳細には要求側で、コンピューティング・システムの記憶媒体に記憶すること116を含む。これは、通例、コンピューティング・システムのシステム・ディスクであってよい。
【0065】
図2は、複数のコンピューティング・コンポーネント201、203と、システム・ディスク206とを備えている具体的なコンピューティング・システム200の一実施形態のブロック図を示す。加えて、コンピューティング・システム200は、関係するメモリまたはストレージを有する、信頼できるファームウェア(FW)208を含む。さらに、2つの鍵インポート・コンポーネントKIC1、KIC2が示されており、その各々は、複数のそのような鍵インポート・コンポーネントの一例である。コンピューティング・システム200は、コンピューティング・コンポーネント201、203以外に、複数の他のコンポーネント(ここでは図示せず)を備えることができる。それらは、他の鍵インポート・コンポーネントに関係していても関係していなくてもよい。すなわち、コンピューティング・システムに含まれる各コンピューティング・コンポーネントについて、関係する鍵インポート・コンポーネントが存在することができる。
【0066】
各コンピューティング・コンポーネントは、ここではそれぞれの鍵インポート・コンポーネント202、204のメモリ210および212として示されるメモリを含む。しかし、鍵インポート・コンポーネント202、204は、関係するコンピューティング・コンポーネント201、203の一体部分であるため、それぞれの鍵インポート・コンポーネント202、204のメモリ210、212と、コンピューティング・コンポーネント201、203自体のメモリとの間の差異は、人為的なものにすぎない可能性がある。
【0067】
さらに、ホスト・インポート鍵バンドル214が示されており、ここでは、2つのみのコンピューティング・コンポーネント201、203に対応する2つのみのレコード216、218を備えている。通常は、コンピューティング・システム200の各コンピューティング・コンポーネント201、203(およびその他)に対して、すなわち鍵インポート・コンポーネント202、204の各々に対して、レコード216、218がホスト・インポート鍵バンドル214内で入手可能である。
【0068】
認識できるように、各レコード216、218は、鍵インポート・コンポーネントの識別子KIC1、KIC2と、それに関係する、保護されている、例えば暗号化されているかその他の方法でセキュアにされた、対称鍵であってよいシステム固有の補助鍵(ホスト・インポート鍵とも呼ばれる)220、222と、関係する署名224、226とを含む。システム固有の秘密の暗号化は、製造側コンピュータ・システムのハードウェア・セキュリティ・モジュール(HSM)から行われることに気づくかもしれない。
【0069】
加えて、暗号化されたシステム鍵205は、関係する署名207と共に、システム・ディスク206にシステム・レコード209の形態で記憶される。
【0070】
図3は、システム固有の秘密312が信頼できるファームウェア208に対して入手可能にされる方式、すなわち、システム固有の秘密312をアンパックする流れ、を説明する具体的なコンピューティング・システム200の一実施形態のブロック図300を示す。一般に、図300は、概ね図2と同じ構成要素、例えば、コンピューティング・システム200、鍵インポート・コンポーネント202、204等を示している(ただし、コンピューティング・コンポーネント201、203は示していない)。図3は、図3の左下部分の鍵インポート・コンポーネント202に属するコンピューティング・コンポーネント(図示せず、図2の201と比較)だけについて、アンパックされた補助鍵308を使用してシステム固有の秘密312をアンパックする方法を詳細に示している。
【0071】
最初に、ホスト鍵バンドル214(または秘密バンドル、上記と比較)のレコード216が、鍵インポート・コンポーネント202に対して入手可能にされる302。ここでは、関係する鍵インポート・コンポーネント202に記憶されている公開部分VKと、鍵インポート・コンポーネント202が入手可能なレコード216の署名コンポーネントとを使用して、レコード216が検証される304。署名の検証が成功すると、次のステップで、ここでは対称鍵IK1として示されるシステム固有のインポート鍵IK1を使用して、保護されているシステム固有の補助鍵220がアンラップされる306。次に、鍵インポート・コンポーネント202は、保護されていない、すなわち解読された、システム固有の補助鍵308を、信頼できるファームウェア208に対して入手可能にする。
【0072】
同じプロセスが鍵インポート・コンポーネント204によって実行されてよいが、署名鍵と検証鍵の別のセット、およびホスト鍵バンドル214のレコード218に対応する別のインポート鍵IK2を使用する。このようにして、システム固有の秘密312は、第2の鍵インポート・コンポーネント204に関係する第2のコンピューティング・コンポーネント、またはコンピューティング・システム200の他の同等のコンピューティング・コンポーネントからも導出されてよい。また、1つまたは複数のインポート・コンポーネントのいずれかによって補助鍵をアンパックするために1つの手順しか必要とされず、インストールされたインポート・コンポーネントのうちの1つのみが機能していればよいので、レジリエント性につながることが言及されるべきである。
【0073】
また、システム固有の秘密312のアンラップは、図3に示されるように信頼できるファームウェア208によって行われても、または代替的に鍵インポート・コンポーネント202(もしくは204)によって1回のステップで行われてもよいことが言及されるべきである。
【0074】
次に、ユーザ側に設置されたコンピューティング・システムから、製造側およびコンピューティング・コンポーネントの製造時に伴う関係するプロセスに視点を移す。
【0075】
図4は、コンピューティング・システム(図2、200と比較)によって使用されるコンピューティング・コンポーネントの鍵インポート・コンポーネントの製造の一実施形態400を示す。製造側コンピューティング・システムまたはサーバ(図示せず)は、HSMマスター鍵404を含んでいるハードウェア・セキュリティ・モジュール402(HSM)を含むかまたは制御する。
【0076】
コンポーネント固有のインポート鍵IK406は、ランダムに生成され、関係するコンピューティング・コンポーネントと共に製造される鍵インポート・コンポーネント202KICの一部として記憶される。さらに、秘密製造側署名鍵に関連付けられた公開検証鍵VKが鍵インポート・コンポーネント202に記憶される。製造コンポーネント・データベース410は、製造された各コンピューティング・コンポーネントとそれに関係する鍵インポート・コンポーネントKICについて、少なくとも1つのレコードを維持している。さらに、鍵インポート・コンポーネントの識別子KICが、製造コンポーネント・データベース410のレコード408の一部ならびにホスト鍵バンドル214のレコード206のコンポーネントとして維持される。この識別子KICxについては、識別子の暗号化の形態での保護は必要とされない。
【0077】
コンポーネント固有のインポート鍵IKが製造時に誰にもクリア・テキストで入手可能でないことを確実にするために、インポート鍵IKは、HSM402およびそのマスター鍵404を介して保護される412。このようにして、それは、製造コンポーネント・データベース410のレコード408に記憶される。したがって、保護バージョンのコンポーネント固有のインポート鍵IKは、コンピューティング・コンポーネントおよびその鍵インポート・コンポーネントKICが製造を離れた後に、製造コンポーネント・データベース410内で入手可能である。
【0078】
図5は、コンピューティング・システムおよびその関係する鍵インポート・コンポーネントKICの製造時の、ホスト・インポート鍵バンドル(図2、214と比較)または補助鍵バンドルの生成または製造の実施形態500を示す。HSM402はそのHSMマスター鍵404と共に、HSMマスター鍵404による補助鍵504(示されるエンベロープの内部、図2の補助鍵220と同一)の生成およびラップに使用される。補助鍵データベース514は、作成され、次いで暗号化されたシステム固有の補助鍵504を記憶し、これはHSMマスター鍵404によって保護されている(ステップ1)。次のステップ(ステップ2)で、システム固有の補助鍵504が、コンポーネント・インポート鍵508で再ラップされ、すなわち、最初にHSM MK404によってアンラップされ、次いでコンポーネント・インポート鍵508によって再度ラップされる。
【0079】
次のステップで、レコード216のコンポーネントが(HSM動作を使用して)署名鍵504によって署名され、それにより得られた署名502(HSMマスター鍵でラップされているものと示されている署名鍵512に由来する。「ステップ3」)が、一番右のコンポーネントとしてレコード216に追加される。上述したように、ホスト・インポート鍵バンドル214は、コンピューティング・システムのシステム・ディスクの要素になり、ユーザ側に配布され、インストールされる。したがって、この鍵生成スキームを使用すると、保護されていないシステム固有の秘密312が製造側の通信やストレージに出現することは決してない。
【0080】
同様にして、保護されているコンポーネント固有の秘密220が、ホスト鍵バンドル214に移される。その結果、ホスト・インポート鍵220は、ホスト・インポート鍵バンドル214のレコード216のコンポーネントにされる前に、HSM402を使用して製造コンポーネント・データベース410のレコードのコンポーネント・インポート鍵508によって保護される。したがって、鍵はどれも、クリア・テキストで誰かに対して入手可能にされることはない。
【0081】
図6は、ホスト鍵(システム固有の秘密とも呼ばれる)の製造のプロセスを示す。最初に、ランダムなホスト鍵602が生成され604、それがHSM402によって使用される606。HSM H402および補助鍵データベース514(図5と比較)からのマスター鍵404によって保護されている、ラップされたシステム固有の補助鍵503を使用して(すなわち、HSM404によって解読して)、ランダムなホスト鍵をラップされた鍵としてエクスポートする608。それにより、ランダムなホスト鍵は、システム固有の補助鍵503によってラップされる。すなわち、システム鍵の再暗号化が行われ、これはHSM402だけによって可能であり得る。最後に、参照符号610によって記号的に示されるように、ランダムなシステム鍵602を削除することができる。
【0082】
図7は、信頼できるファームウェア・フローの一部としてのシステム固有の秘密のアンパックを説明するフローチャート700を示す。最初に、補助鍵バンドルHIKBが、関係するコンピューティング・システムのシステム・ディスクから読み出される702。次にシステム鍵レコード(WS,S1)が読み出される703。そして、鍵インポート・コンポーネントのリストCLが読み出される704。それは、あるシステム・コンポーネントからシステムに組み込まれたコンポーネントの鍵インポート・コンポーネントIDのリストを含んでいる。
【0083】
ループで、鍵インポート・コンポーネントの識別子C、保護されているコンポーネント固有の秘密WK、およびホスト鍵バンドルからの署名Sを含んでいる次のレコードにアクセスする706。次いで、CがCLに含まれているかどうかが判定される708。それが該当しない場合、ホスト・インポート鍵バンドル(HIKB)にさらにレコードがあるかどうかが判定される710。それが該当する場合(「Y」の場合)、プロセスは、ループバックして、次のレコードを読み出す706。ホスト鍵バンドルにそれ以上のレコードがない場合(「N」の場合)は、ホスト・インポート鍵バンドル(HIKB)が、システムに含まれるコンポーネントを全く含んでいないというエラーが報告される712。
【0084】
しかし、CがCLに含まれる場合(判定708)、そのレコードがシステム・レコード(WS,S1)と共に、識別子Cを有する鍵インポート・コンポーネントに送られる714。鍵インポート・コンポーネントがエラーを返さない場合(616)(「N」の場合)、結果が、システム固有の秘密として使用される718。
【0085】
鍵インポート・コンポーネントがエラーを返す場合(「Y」の場合)、エラーが報告されて720、破損したホスト・インポート鍵バンドル(HIKB)レコードまたは破損したシステム・レコードを知らせる。
【0086】
図8は、鍵インポート・コンポーネントのフロー、特にシステム固有の秘密のアンパック、を詳細に説明するフローチャート800を示す。C、WK、Sを含むレコード、およびWSおよびS1を含むレコードが入力として使用される802。次に、検証鍵VKを使用して804、署名Sがレコード(C,WK)の署名であること、およびS1がWSの署名であることを検証する。その署名検証806が成功しない場合(「N」の場合)、エラーが返され808、プロセスは停止する。それにより、WKはラップされた補助鍵を表し、WSはラップされたシステム固有の秘密(またはホスト鍵)を表すことができる。
【0087】
署名検証806が成功した場合(「Y」の場合)、プロセスは、コンピューティング・コンポーネントのインポート鍵IKを使用したWKの解読(アンラップ)に進み810、その結果、関連するホスト・インポート鍵が得られる。次に、ホスト・インポート鍵を使用してWSが解読(すなわちアンラップ)され811、その結果、ラップされていないホスト鍵を得る。最後に、解読動作、すなわちアンラップの結果として、システム固有のホスト鍵(312、図3と比較)が、信頼できるファームウェアに返される812。
【0088】
完全性の理由から、図9は、システム固有の秘密をコンピューティング・システムに提供するためのハードウェア秘密配備システム900の可能な実施形態のブロック図を示す。システム900は、1つまたは複数のプロセッサ902、および1つまたは複数のプロセッサ902に通信的に結合されたメモリ904を含み、メモリは、1つまたは複数のプログラム・コード部分を記憶し、このプログラム・コード部分は、1つまたは複数のプロセッサ902によって実行されたときに、1つまたは複数のプロセッサ902が、コンピューティング・コンポーネントの製造時に、1つまたは複数のプロセッサ902が、コンポーネント固有のインポート鍵をコンピューティング・コンポーネントの一部として恒久的に記憶コンポーネントに記憶すること、および、コンポーネント固有のインポート鍵を製造側ストレージ・システムに、例えば製造側コンポーネント・データベース410に(410、図4と比較)、記憶することを可能にする。
プロセッサ902はさらに、メモリ904のプログラム・コードを実行したときに、特に、コンピューティング・システムのためのシステム固有の秘密に対する要求があると、製造側ストレージ・システム内で、特に識別ユニット908により、コンピューティング・システムに含まれるコンピューティング・コンポーネントを識別し、取得ユニット910により、識別されたコンピューティング・コンポーネントに関係するレコードを製造側ストレージ・システムから取得することであって、レコードは一意のコンポーネント固有のインポート鍵を含んでいる、取得することと、特に第1の判定ユニット912により、製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の秘密を判定することと、特に第2の判定ユニット913により、製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、を可能にされる。
【0089】
プロセッサ902はさらに、メモリ904のプログラム・コードを実行したときに、例えば製造側において、第1の暗号化モジュール914により、取得されたコンポーネント固有のインポート鍵でシステム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することをさらに可能にされる。それにより、補助鍵バンドルは、コンポーネント固有のインポート鍵が関係するコンピューティング・コンポーネントへの参照と、コンポーネント固有のインポート鍵によって暗号化されたシステム固有の補助鍵とを含むバンドル・レコードを含む。
【0090】
最後に、ただし同様に重要なこととして、プロセッサ902はさらに、メモリ904のプログラム・コードを実行したときに、特に第2の暗号化モジュールにより、システム固有の秘密をシステム固有の補助鍵で暗号化し、特に専用の記憶モジュール(図示せず)により、秘密バンドルをコンピューティング・システムの記憶媒体に、詳細にはシステム・ディスクに、記憶すること(206、図2と比較)を可能にする。
【0091】
また、すべての機能ユニット、モジュール、および機能ブロックは、選択された1:1の方式で信号またはメッセージ交換するために互いと通信的に結合されてよいことが言及されるべきである。代替として、機能ユニット、モジュール、および機能ブロックは、選択的な信号またはメッセージの交換のために、共通の通信バックボーン916に接続され得る。
【0092】
本発明の実施形態は、プログラム・コードの記憶または実行あるいはその両方に適したプラットフォームに関係なく、実質的に任意タイプのコンピュータと共に実施されてよい。図10は、提案される方法に関係するプログラム・コードを実行するのに適したコンピューティング・システム1000を一例として示す。
【0093】
コンピューティング・システム1000は、好適なコンピュータ・システムの一例にすぎず、コンピュータ・システム1000が、実装されることまたは上記で述べられた機能のいずれかを行うことあるいはその両方が可能であるかどうかに関係なく、本明細書に記載される本発明の実施形態の使用または機能性の範囲に関して何らかの限定を示唆するものではない。コンピュータ・システム1000には、コンポーネントがあり、それらは多数の他の汎用または特殊目的コンピューティング・システム環境または構成と共に動作可能である。コンピュータ・システム/サーバ1000と共に使用するのに適する可能性のある、よく知られたコンピューティング・システム、環境、または構成、あるいはその組合せの例には、これらに限定されないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち型またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能消費者家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムやデバイスの任意のものを含む分散クラウド・コンピューティング環境等が含まれる。コンピュータ・システム/サーバ1000は、コンピュータ・システム1000によって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含み得る。コンピュータ・システム/サーバ1000は、通信ネットワークによって接続された遠隔の処理デバイスによってタスクが行われる分散クラウド・コンピューティング環境で実施されてよい。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含む、ローカルおよびリモート両方のコンピュータ・システム記憶媒体に置かれてよい。
【0094】
図に示されるように、コンピュータ・システム/サーバ1000は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ1000のコンポーネントは、これらに限定されないが、1つまたは複数のプロセッサまたは処理ユニット1002、システム・メモリ1004、およびシステム・メモリ1004を含む様々なシステム・コンポーネントをプロセッサ1002に結合するバス1006を含み得る。バス1006は、各種のバス・アーキテクチャのいずれかを使用した、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィクス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種のバス構造のいずれか1つまたは複数を表す。限定ではなく、例として、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnects(PCI)バスが含まれる。コンピュータ・システム/サーバ1000は、通例、各種のコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ1000によってアクセス可能な任意の利用可能な媒体であってよく、揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体の両方を含む。
【0095】
システム・メモリ1004は、ランダム・アクセス・メモリ(RAM)1008またはキャッシュ・メモリ1010あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ1000は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体を含んでよい。単なる例として、取り外し不能、不揮発性の磁気媒体(図示せず、一般に「ハード・ドライブ」と呼ばれる)の読出しおよび書込みのためにストレージ・システム1012が設けられてよい。図示されないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)の読出しおよび書込みのための磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROMまたは他の光学媒体などの取り外し可能、不揮発性の光ディスクの読出しまたは書込みのための光ディスク・ドライブが設けられてよい。そのような例において、各々は、1つまたは複数のデータ媒体インターフェースによってバス1006に接続することができる。さらに描かれ、下記で説明されるように、メモリ1004は、本発明の実施形態の機能を実施するように構成されているプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでよい。
【0096】
プログラム・モジュール1016のセット(少なくとも1つ)を有するプログラム/ユーティリティが、限定ではなく例として、メモリ1004に記憶されてよく、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも記憶されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはそれらの何らかの組合せは、ネットワーキング環境の実装を含んでよい。プログラム・モジュール1016は、一般に、本明細書に記載される本発明の実施形態の機能または方法論あるいはその両方を実施する。
【0097】
コンピュータ・システム/サーバ1000は、キーボード、ポインティング・デバイス、ディスプレイ1020等の1つまたは複数の外部デバイス1018;ユーザがコンピュータ・システム/サーバ1000と対話することを可能にする1つまたは複数のデバイス;またはコンピュータ・システム/サーバ1000が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、あるいはその組合せと通信してもよい。そのような通信は、入力/出力(I/O)インターフェース1014を介して行うことができる。さらに、コンピュータ・システム/サーバ1000は、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ1022を介して通信することができる。描かれるように、ネットワーク・アダプタ1022は、バス1006を介してコンピュータ・システム/サーバ1000の他のコンポーネントと通信してよい。図示していないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方がコンピュータ・システム/サーバ1000と併せて使用され得ることが理解されるべきである。例には、これらに限定されないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ保存ストレージ・システム等が含まれる。
【0098】
加えて、システム固有の秘密をコンピューティング・システムに提供するためのハードウェア秘密配備システム1000の一部は、バス・システム1006に接続されてよい。別のコンピュータ・サーバがハードウェア秘密配備システム1000の他の部分を組み込んでいる可能性があり、それら2つのコンピュータが通信的に接触していてよい。
【0099】
本発明の様々な実施形態の説明は、例示の目的で提示されたものであり、網羅的であるまたは開示される実施形態に限定される意図はない。記載された実施形態の範囲および思想から逸脱することなく、多くの変更および変形が当業者に明らかとなろう。本明細書で使用された用語は、実施形態の原理、実際的な応用、もしくは市場に見られる技術に対する技術的向上を最も良く説明するために、または当業者が本明細書に記載される実施形態を理解できるようにするために選択されたものである。
【0100】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとして具現化されてよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有している(1つまたは複数の)コンピュータ可読記憶媒体を含んでよい。
【0101】
媒体は、伝搬媒体のための電子、磁気、光学、電磁気、赤外線、または半導体システムであってよい。コンピュータ可読媒体の例には、半導体ソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、剛体磁気ディスクおよび光ディスクが含まれ得る。光ディスクの現在の例には、コンパクト・ディスク読出し専用メモリ(CD-ROM)、コンパクト・ディスク読出し/書込み(CD R/W)、DVD、およびBlu-Ray-Diskが含まれる。
【0102】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することが可能な有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、または上述の任意の好適な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、携帯型コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラム可能読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチ・カードや、命令が記録されている溝内の隆起構造などの機械的に符号化されたデバイス、または上述の任意の好適な組合せが含まれる。本発明において使用されるコンピュータ可読記憶媒体は、電波または他の自由伝搬する電磁波、導波管もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または電線を通じて伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0103】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはワイヤレス・ネットワーク、あるいはその組合せを介して、外部コンピュータもしくは外部記憶装置にダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含んでよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内部のコンピュータ可読記憶媒体に記憶するために転送する。
【0104】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、Smalltalk(R)、C++等のオブジェクト指向プログラミング言語、およびCプログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、または、ソース・コードもしくはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェア・パッケージとして、全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意タイプのネットワークを通じてユーザのコンピュータに接続されてよく、または接続は外部コンピュータになされてもよい(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)。一部の実施形態では、例えば、プログラム可能論理回路、フィールド・プログラム可能ゲートアレイ(FPGA)、またはプログラム可能論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別設定することによって、コンピュータ可読プログラム命令を実行してよい。
【0105】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその組合せの中のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0106】
それらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するための手段を作り出すように機械を制作すべく、コンピュータまたは他のプログラム可能データ処理装置のプロセッサに提供されてよい。これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の様態で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【0107】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを行わせて、コンピュータにより実施されるプロセスを発生させてもよい。
【0108】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を説明している。これに関して、フローチャートまたはブロック図中の各ブロックは、モジュール、セグメント、または命令の一部を表し得、それは、指定される論理機能を実施するための1つまたは複数の実行可能命令を含む。一部の代替実装形態では、ブロックに記される機能は、図に記される順序から外れて行われてよい。例えば、連続して示される2つのブロックが、実際には実質的に同時に実行されてよく、またはそれらブロックは、時には、関与する機能に応じて逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方の中のブロックの組合せは、指定される機能を行うか、または特殊目的ハードウェアとコンピュータ命令との組合せを動作させるもしくは実施する、特殊目的のハードウェア・ベース・システムによって実施され得ることが気づかれよう。
【0109】
本明細書で使用された用語は、特定の実施形態を説明することのみを目的とし、本発明を限定することは意図されない。本明細書で使用される場合、単数形の「a」、「an」および「the」は、文脈が明らかに他のように示さない限り、複数形も包含することが意図される。さらに、用語「~を含む」または「~を備える」あるいはその両方は、本明細書において使用される場合、述べられる特徴、完全体、ステップ、動作、要素、または構成要素、あるいはそれらの組合せの存在を明示するが、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、またはそれらの群、あるいはそれらの組合せの存在または追加を排除しないことが理解されよう。
【0110】
下記の特許請求の範囲における、すべての手段またはステップに機能を加えた要素の、互いに対応する構造、材料、動作、および相当物は、明確に特許請求される他の特許請求される要素との組合せで機能を行うための任意の構造、材料、または動作を包含することが意図される。本発明の説明は、例示および説明の目的で提示されたものであり、網羅的であるまたは開示される形態の本発明に限定されることは意図されない。記載された実施形態の範囲および思想から逸脱することなく、多くの変更および変形が当業者に明らかとなろう。実施形態は、本発明の原理および実際的応用を最も良く説明するために、および、当業者が、様々な実施形態に関して、企図される特定の用途に適する様々な変更と共に、様々な実施形態に関して本発明を理解することを可能にするために選択および記載された。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2024-04-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
機密コンピューティングのために、複数のコンピューティング・コンポーネントを有するコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ実装方法であって、
コンピューティング・コンポーネントの製造時に、コンポーネント固有のインポート鍵を前記コンピューティング・コンポーネントの一部として恒久的に記憶することと、
前記コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、
コンピューティング・システムのための前記システム固有の秘密に対する要求があると、
前記製造側ストレージ・システム内で、前記コンピューティング・システムに含まれる前記コンピューティング・コンポーネントを識別することと、
前記識別されたコンピューティング・コンポーネントに関係するレコードを前記製造側ストレージ・システムから取得することであって、前記レコードは前記コンポーネント固有のインポート鍵を含んでいる、前記取得することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されている前記システム固有の秘密を判定することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、
前記製造側において、前記取得されたコンポーネント固有のインポート鍵で前記システム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することであって、前記補助鍵バンドルは、前記コンポーネント固有のインポート鍵が関係する前記コンピューティング・コンポーネントへの参照と、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵とを含むバンドル・レコードを含んでいる、前記作成することと、
前記システム固有の秘密を前記システム固有の補助鍵で暗号化することと、
前記補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、前記コンピューティング・システムの記憶媒体に記憶することと、を含むコンピュータ実装方法。
【請求項2】
前記補助鍵バンドルが、少なくとも1つのバンドル・レコードを含み、前記方法が、
前記コンピューティング・システムにより、前記コンピューティング・システムの前記コンピューティング・コンポーネントのうちの1つと一致する前記コンピューティング・コンポーネントへの前記参照を含んでいるバンドル・レコードを、前記補助鍵バンドル内で検索することと、
前記暗号化されたシステム固有のレコードを含んでいる前記システム・レコードと、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵を含んでいる、見つかった前記バンドル・レコードとを、そのコンピューティング・コンポーネントに送ることと、
前記コンピューティング・コンポーネントにより、前記バンドル・レコードからの前記暗号化されたコンピューティング・システム固有の補助鍵を、前記コンピューティング・コンポーネントに記憶されている前記コンピューティング・コンポーネント固有のインポート鍵を用いて解読することと、
前記システム固有のレコードからの前記暗号化されたシステム固有の秘密を、前記システム固有の補助鍵を使用して解読することと、
前記コンピューティング・コンポーネントにより、前記システム固有の秘密を前記コンピューティング・システムのファームウェアに戻すことと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記製造側により、製造側署名鍵を維持することと、
製造側署名鍵に関連付けられた検証鍵を前記コンピューティング・システムに恒久的に記憶することであって、前記バンドル・レコードを作成することが、
前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵の署名と、製造側署名鍵を有する前記コンピューティング・コンポーネントへの前記参照とを判定すること、
前記システム・レコードの署名を決定すること、および
前記システム・レコードの前記署名を前記システム・レコードに追加すること、
を含む、前記記憶することと、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記システム固有の秘密にアクセスする前に、前記コンピューティング・システムにより、前記コンピューティング・システムに記憶されている前記検証鍵を使用して前記バンドル・レコードおよびシステム・レコードを検証することをさらに含む、請求項2または3に記載の方法。
【請求項5】
前記補助鍵バンドルを前記記憶することが、
前記コンピューティング・システムの前記複数のコンピューティング・コンポーネントを変更することと、
前記特定のコンピューティング・システムの一部である記憶媒体にある既存の補助鍵バンドルを、前記コンピューティング・システムの更新後バージョンに関係する新しい補助鍵バンドルに交換することと、
を含む、請求項1ないし3の一項に記載の方法。
【請求項6】
前記システム固有の秘密が戻される前記ファームウェアが、信頼できるファームウェアであり、前記システム固有の秘密が、この信頼できるファームウェアのみによりアクセス可能な前記コンピューティング・システムのメモリに記憶される、請求項2に記載の方法。
【請求項7】
前記信頼できるファームウェアは、システム管理システム、または前記コンピューティング・システムのオペレータ・コマンド、または信頼できるファームウェアとして前記コンピューティング・システムにロードされたのでないソフトウェア、あるいはその組合せを通じたアクセスから保護されている、請求項6に記載の方法。
【請求項8】
前記製造側署名鍵が、製造側ハードウェア・セキュリティ・モジュールによって保護される、請求項2に記載の方法。
【請求項9】
前記システム固有の秘密が、製造側ハードウェア・セキュリティ・モジュールによって生成および保護される鍵である、請求項2または8に記載の方法。
【請求項10】
前記コンポーネント固有のインポート鍵を真の乱数発生器によって生成することと、
前記コンポーネント固有のインポート鍵を前記コンピューティング・コンポーネントにセキュアに記憶することと、
前記コンポーネント固有のインポート鍵を、セキュアなチャネルを介して製造側ハードウェア・セキュリティ・モジュールに送ることと、
前記コンポーネント固有のインポート鍵を前記製造側ハードウェア・セキュリティ・モジュールにインポートすることと、
前記コンポーネント固有のインポート鍵を、前記製造側ハードウェア・セキュリティ・モジュールによって保護されるオブジェクトとして前記製造側ストレージ・システムに記憶することと、
をさらに含む、請求項2または8に記載の方法。
【請求項11】
前記製造側署名鍵に関連付けられた前記検証鍵を前記コンピューティング・コンポーネントに記憶することと、
前記システム固有の秘密を解読する前に、前記コンピューティング・コンポーネントにより、前記検証鍵を使用して各暗号化されたシステム固有の秘密の前記署名を検証することと、
をさらに含む、請求項3に記載の方法。
【請求項12】
前記システム固有の秘密を、機密コンピューティングのための信頼できる実行環境のベース秘密として使用することをさらに含む、請求項2または請求項8に記載の方法。
【請求項13】
前記コンピューティング・システムのための新しいシステム固有の補助鍵を生成したときにも、新しいシステム固有の秘密が決定され、新しい補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいる新しいシステム・レコードとが、前記コンピューティング・システムの前記記憶媒体に記憶される、請求項2または請求項8に記載の方法。
【請求項14】
前記補助鍵でラップされた前記システム固有の秘密を含んでいる前記システム・レコードを前記コンピューティング・システムの記憶媒体に前記記憶した後に、前記システム固有の秘密を削除することをさらに含む、請求項2または請求項8に記載の方法。
【請求項15】
機密コンピューティングのために、複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するためのハードウェア秘密配備システムであって、前記システムが、
1つまたは複数のプロセッサ、および前記1つまたは複数のプロセッサに通信的に結合されたメモリ、を備え、前記メモリに、1つまたは複数のプログラム・コード部分が記憶され、前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、
コンピューティング・コンポーネントの製造時に、コンポーネント固有のインポート鍵を前記コンピューティング・コンポーネントの一部として恒久的に記憶することと、
前記コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、
コンピューティング・システムのための前記システム固有の秘密に対する要求があると、
前記製造側ストレージ・システム内で、前記コンピューティング・システムに含まれる前記コンピューティング・コンポーネントを識別することと、
前記識別されたコンピューティング・コンポーネントに関係するレコードを前記製造側ストレージ・システムから取得することであって、前記レコードは一意のコンポーネント固有のインポート鍵を含んでいる、前記取得することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されている前記システム固有の秘密を判定することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、
前記製造側において、前記取得されたコンポーネント固有のインポート鍵で前記システム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することであって、前記補助鍵バンドルは、前記コンポーネント固有のインポート鍵が関係する前記コンピューティング・コンポーネントへの参照と、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵とを含むバンドル・レコードを含んでいる、前記作成することと、
前記システム固有の秘密を前記システム固有の補助鍵で暗号化することと、
前記補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、前記コンピューティング・システムの記憶媒体に記憶することと、
を可能にする、ハードウェア秘密配備システム。
【請求項16】
前記秘密補助鍵が、バンドル・レコードの少なくとも1つを含み、前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、
前記コンピューティング・システムにより、前記コンピューティング・システムの前記コンピューティング・コンポーネントのうちの1つと一致する前記コンピューティング・コンポーネントへの前記参照を含んでいるレコードを、前記補助鍵バンドル内で検索することと、
前記暗号化されたシステム固有のシステム・レコードを含んでいる前記システム・レコードと、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵を含んでいる、見つかった前記バンドル・レコードとを、そのコンピューティング・コンポーネントに送ることと、
前記コンピューティング・コンポーネントにより、前記バンドル・レコードからの前記暗号化されたコンピューティング・システム固有の補助鍵を、前記コンピューティング・コンポーネントに記憶されている前記コンピューティング・コンポーネント固有のインポート鍵を用いて解読することと、
前記システム固有のレコードからの前記暗号化されたシステム固有の秘密を、前記システム固有の補助鍵を使用して解読することと、
前記コンピューティング・コンポーネントにより、前記システム固有の秘密を前記コンピューティング・システムのファームウェアに戻すことと、
も可能にする、請求項15に記載のシステム。
【請求項17】
前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、
前記製造側により、製造側署名鍵を維持することと、
製造側署名鍵に関連付けられた検証鍵を前記コンピューティング・システムに恒久的に記憶することと、をも可能にし、前記バンドル・レコードを作成することが、
前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵の署名と、製造側署名鍵を有する前記コンピューティング・コンポーネントへの前記参照とを判定することと、
前記署名を前記バンドル・レコードに追加することと、
前記システム・レコードの署名を決定することと、
前記システム・レコードの前記署名を前記システム・レコードに追加することと、
も含む、請求項16に記載のシステム。
【請求項18】
前記1つまたは複数のプログラム・コード部分は、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサが、前記システム固有の秘密にアクセスする前に、前記コンピューティング・システムにより、前記コンピューティング・システムに記憶されている前記検証鍵を使用して前記バンドル・レコードを検証することも可能にする、請求項17に記載のシステム。
【請求項19】
前記補助鍵バンドルを前記記憶することが、
前記コンピューティング・システムの前記複数のコンピューティング・コンポーネントを変更することと、
前記特定のコンピューティング・システムの一部である記憶媒体にある既存の補助鍵バンドルを、前記コンピューティング・システムの更新後バージョンに関係する新しい補助鍵バンドルに交換することと、
を含む、請求項17または18に記載のシステム。
【請求項20】
機密コンピューティングのために、複数のコンピューティング・コンポーネントを含むコンピューティング・システムにシステム固有の秘密を提供するためのコンピュータ・プログラムであって、1つまたは複数のコンピューティング・システムに、
前記コンポーネント固有のインポート鍵を製造側ストレージ・システムに記憶することと、
コンピューティング・システムのための前記システム固有の秘密に対する要求があると、
前記製造側ストレージ・システム内で、前記コンピューティング・システムに含まれる前記コンピューティング・コンポーネントを識別することと、
前記識別されたコンピューティング・コンポーネントに関係するレコードを前記製造側ストレージ・システムから取得することであって、前記レコードは一意のコンポーネント固有のインポート鍵を含んでいる、前記取得することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されている前記システム固有の秘密を判定することと、
製造側ハードウェア・セキュリティ・モジュールによって保護されているシステム固有の補助鍵を判定することと、
前記製造側において、前記取得されたコンポーネント固有のインポート鍵で前記システム固有の補助鍵を暗号化し、それにより補助鍵バンドルを作成することであって、前記補助鍵バンドルは、前記コンポーネント固有のインポート鍵が関係する前記コンピューティング・コンポーネントへの参照と、前記コンポーネント固有のインポート鍵によって暗号化された前記システム固有の補助鍵とを含むバンドル・レコードを含んでいる、前記作成することと、
前記システム固有の秘密を前記システム固有の補助鍵で暗号化することと、
前記補助鍵バンドルと、前記暗号化されたシステム固有の秘密を含んでいるシステム・レコードとを、前記コンピューティング・システムの記憶媒体に記憶することと、
を行わせる、コンピュータ・プログラム。
【国際調査報告】