(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-13
(54)【発明の名称】ポスト量子暗号を使用する証明書ベースのセキュリティ
(51)【国際特許分類】
H04L 9/32 20060101AFI20231106BHJP
H04L 9/14 20060101ALI20231106BHJP
G06F 21/64 20130101ALI20231106BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
H04L9/14
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023525111
(86)(22)【出願日】2021-10-28
(85)【翻訳文提出日】2023-04-25
(86)【国際出願番号】 EP2021080014
(87)【国際公開番号】W WO2022090405
(87)【国際公開日】2022-05-05
(32)【優先日】2020-11-02
(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)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】グレイ、マイケル
(72)【発明者】
【氏名】マディネニ、ナラヤナ
(72)【発明者】
【氏名】マクマホン、サイモン
(72)【発明者】
【氏名】グリーン、マシュー
(72)【発明者】
【氏名】ワルテンベルク、ピーター
(57)【要約】
サーバ証明書メッセージを送信することであって、証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、第1の証明書と第2の証明書とが互いにバインドされる、送信することと、第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名することと、第2の証明書に関連付けられた第2の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第2のメッセージに署名することであって、第2のメッセージが署名済みの第1のメッセージを含む、署名することと、署名済みの第1のメッセージと署名済みの第2のメッセージとを含むサーバ証明書検証メッセージを送信することとによって、安全な通信を確立する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
安全なネットワーク通信を確立するためのコンピュータ実装方法であって、
1つまたは複数のサーバ・コンピュータ・プロセッサによって、クライアント・ハロー・メッセージに応答してサーバ証明書メッセージを送信することであって、前記証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、前記第1の証明書と前記第2の証明書とが互いにバインドされる、前記送信することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記第2の証明書に関連付けられた第2の秘密鍵を使用して、前記クライアント-サーバ通信に関連付けられた第2のメッセージに署名することであって、前記第2のメッセージが前記第1のメッセージを含む、前記署名することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記クライアント・ハロー・メッセージの受信に応答して、前記第1のメッセージと前記第2のメッセージとを含むサーバ証明書検証メッセージを送信することと
を含む、コンピュータ実装方法。
【請求項2】
前記第1の暗号化アルゴリズムが格子ベースの暗号化アルゴリズムを含む、前記請求項に記載のコンピュータ実装方法。
【請求項3】
前記第1のメッセージがクライアント-サーバ・メッセージングのトランスクリプトを含む、前記請求項のいずれかに記載のコンピュータ実装方法。
【請求項4】
前記第1の証明書と前記第2の証明書とが同一のサブジェクト名を有する、前記請求項のいずれかに記載のコンピュータ実装方法。
【請求項5】
前記第2の証明書の属性が前記第1の証明書のハッシュ値を含む、前記請求項のいずれかに記載のコンピュータ実装方法。
【請求項6】
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記クライアント・ハロー・メッセージに応答してサーバ・ハロー・メッセージを送信することをさらに含む、前記請求項のいずれかに記載の方法。
【請求項7】
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記サーバ・ハロー・メッセージに応答してクライアント証明書メッセージを受信することであって、前記クライアント証明書メッセージが、前記第1の暗号化アルゴリズムに関連付けられた第3の証明書と前記第2の暗号化アルゴリズムに関連付けられた第4の証明書とを含み、前記第3の証明書と前記第4の証明書とが互いにバインドされる、前記受信することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、クライアント証明書検証メッセージを受信することであって、前記クライアント証明書検証メッセージが、前記第3の証明書に関連付けられた第3の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第3のメッセージと、前記第4の証明書に関連付けられた第4の秘密鍵を使用して署名された、前記クライアント-サーバ通信に関連付けられた第4のメッセージとを含み、前記第4のメッセージが前記第3のメッセージを含む、前記受信することと
をさらに含む、前記請求項に記載のコンピュータ実装方法。
【請求項8】
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記第1の暗号化アルゴリズムを使用して暗号化されたデータを送信することをさらに含む、
前記請求項のいずれかに記載のコンピュータ実装方法。
【請求項9】
安全なネットワーク通信を確立するためのコンピュータ・プログラム製品であって、
1つまたは複数のコンピュータ可読記憶デバイスと、
前記1つまたは複数のコンピュータ可読記憶デバイスにまとめて格納されたプログラム命令と
を含み、
前記格納されたプログラム命令が、
クライアント・ハロー・メッセージに応答してサーバ証明書メッセージを送信するためのプログラム命令であって、前記証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、前記第1の証明書と前記第2の証明書とが互いにバインドされる、前記プログラム命令と、
前記第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名するためのプログラム命令と、
前記第2の証明書に関連付けられた第2の秘密鍵を使用して、前記クライアント-サーバ通信に関連付けられた第2のメッセージに署名するためのプログラム命令であって、前記第2のメッセージが前記第1のメッセージを含む、前記プログラム命令と、
前記クライアント・ハロー・メッセージの受信に応答して、前記第1のメッセージと前記第2のメッセージとを含むサーバ証明書検証メッセージを送信するためのプログラム命令と
を含む、コンピュータ・プログラム製品。
【請求項10】
前記第1の暗号化アルゴリズムが格子ベースの暗号化アルゴリズムを含む、前記請求項に記載のコンピュータ・プログラム製品。
【請求項11】
前記第1のメッセージがクライアント-サーバ・メッセージングのトランスクリプトを含む、2つの前記請求項のいずれかに記載のコンピュータ・プログラム製品。
【請求項12】
前記第1の証明書と前記第2の証明書とが同一のサブジェクト名を有する、3つの前記請求項のいずれかに記載のコンピュータ・プログラム製品。
【請求項13】
前記第2の証明書の属性が前記第1の証明書のハッシュ値を含む、4つの前記請求項のいずれかに記載のコンピュータ・プログラム製品。
【請求項14】
前記格納されたプログラム命令が、前記クライアント・ハロー・メッセージに応答してサーバ・ハロー・メッセージを送信するためのプログラム命令をさらに含む、5つの前記請求項のいずれかに記載のコンピュータ・プログラム製品。
【請求項15】
前記格納されたプログラム命令が、
前記サーバ・ハロー・メッセージに応答してクライアント証明書メッセージを受信するためのプログラム命令であって、前記クライアント証明書メッセージが、前記第1の暗号化アルゴリズムに関連付けられた第3の証明書と前記第2の暗号化アルゴリズムに関連付けられた第4の証明書とを含み、前記第3の証明書と前記第4の証明書とが互いにバインドされる、前記プログラム命令と、
クライアント証明書検証メッセージを受信するためのプログラム命令であって、前記クライアント証明書検証メッセージが、前記第3の証明書に関連付けられた第3の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第3のメッセージと、前記第4の証明書に関連付けられた第4の秘密鍵を使用して署名された、前記クライアント-サーバ通信に関連付けられた第4のメッセージとを含み、前記第4のメッセージが前記第3のメッセージを含む、前記プログラム命令と
をさらに含む、前記請求項に記載のコンピュータ・プログラム製品。
【請求項16】
前記格納されたプログラム命令が、前記第1の暗号化アルゴリズムを使用して暗号化されたデータを送信するためのプログラム命令をさらに含む、7つの前記請求項のいずれかに記載のコンピュータ・プログラム製品。
【請求項17】
安全なネットワーク通信を確立するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶デバイスと、
前記1つまたは複数のコンピュータ・プロセッサによって実行するために、前記1つまたは複数のコンピュータ可読記憶デバイスに格納されたプログラム命令と
を含み、
前記格納されたプログラム命令が、
クライアント・ハロー・メッセージに応答してサーバ証明書メッセージを送信するためのプログラム命令であって、前記証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、前記第1の証明書と前記第2の証明書とが互いにバインドされる、前記プログラム命令と、
前記第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名するためのプログラム命令と、
前記第2の証明書に関連付けられた第2の秘密鍵を使用して、前記クライアント-サーバ通信に関連付けられた第2のメッセージに署名するためのプログラム命令であって、前記第2のメッセージが前記第1のメッセージを含む、前記プログラム命令と、
前記クライアント・ハロー・メッセージの受信に応答して、前記第1のメッセージと前記第2のメッセージとを含むサーバ証明書検証メッセージを送信するためのプログラム命令と
を含む、コンピュータ・システム。
【請求項18】
前記第1の暗号化アルゴリズムが格子ベースの暗号化アルゴリズムを含む、前記請求項に記載のコンピュータ・システム。
【請求項19】
前記第1のメッセージがクライアント-サーバ・メッセージングのトランスクリプトを含む、2つの前記請求項のいずれかに記載のコンピュータ・システム。
【請求項20】
前記第1の証明書と前記第2の証明書とが同一のサブジェクト名を有する、3つの前記請求項のいずれかに記載のコンピュータ・システム。
【請求項21】
前記第2の証明書の属性が前記第1の証明書のハッシュ値を含む、4つの前記請求項のいずれかに記載のコンピュータ・システム。
【請求項22】
前記格納されたプログラム命令が、前記クライアント・ハロー・メッセージに応答してサーバ・ハロー・メッセージを送信するためのプログラム命令をさらに含む、5つの前記請求項のいずれかに記載のコンピュータ・システム。
【請求項23】
前記格納されたプログラム命令が、
前記サーバ・ハロー・メッセージに応答してクライアント証明書メッセージを受信するためのプログラム命令であって、前記クライアント証明書メッセージが、前記第1の暗号化アルゴリズムに関連付けられた第3の証明書と前記第2の暗号化アルゴリズムに関連付けられた第4の証明書とを含み、前記第3の証明書と前記第4の証明書とが互いにバインドされる、前記プログラム命令と、
クライアント証明書検証メッセージを受信するためのプログラム命令であって、前記クライアント証明書検証メッセージが、前記第3の証明書に関連付けられた第3の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第3のメッセージと、前記第4の証明書に関連付けられた第4の秘密鍵を使用して署名された、前記クライアント-サーバ通信に関連付けられた第4のメッセージとを含み、前記第4のメッセージが前記第3のメッセージを含む、前記プログラム命令と
をさらに含む、前記請求項に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、安全なネットワーク通信の確立に関する。本開示は特に、複数の証明書と暗号化アルゴリズムの組合せとを使用する通信ハンドシェイク(communications handshake)に関する。
【背景技術】
【0002】
大規模量子コンピューティング・システムの出現により、ショアのアルゴリズムの使用およびそのような量子デバイスが、RSA(Rivest-Shamir-Adleman)、楕円曲線暗号(ECC)、または同様の技術などの従来の暗号アルゴリズムを危うくする可能性が生じている。さらに、従来の暗号アルゴリズムを危うくするこのような手段は、現在、使用不可能であるが、このようなシステムが使用可能になると、現在の暗号化通信およびデータ記憶システムのセキュリティは危険にさらされることになる。従来の暗号方法が十分ではなくなると、現在および将来の両方で通信およびデータを保護するセキュリティ・プロトコルが必要になる。レガシー通信およびデータ記憶プロトコルを強化して、現在のプロトコルを乱すことなく、この追加の保護を提供しなければならない。
【発明の概要】
【0003】
以下に、本開示の1つまたは複数の実施形態の基本的な理解をもたらすための概要を提示する。本概要は、主要なまたは重要な要素を特定するものではなく、または特定の実施形態のいずれかの範囲または特許請求の範囲のいずれかの範囲を定めるものでもない。その唯一の目的は、後述するより詳細な説明の前置きとして、概念を簡単な形で提示することである。本明細書に記載の1つまたは複数の実施形態において、デバイス、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せは、証明書を使用する安全なネットワーク通信チャネルの確立を可能にする。
【0004】
本発明の態様は、サーバ証明書メッセージを送信することであって、証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、第1の証明書と第2の証明書とが互いにバインドされる、送信することと、第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名することと、第2の証明書に関連付けられた第2の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第2のメッセージに署名することであって、第2のメッセージが署名済みの第1のメッセージを含む、署名することと、署名済みの第1のメッセージと署名済みの第2のメッセージとを含むサーバ証明書検証メッセージを送信することと、によって安全な通信を確立することに関連付けられた、方法、システム、およびコンピュータ可読媒体を開示している。
【0005】
添付図面における本開示の一部の実施形態のより詳細な説明を通じて、本開示の上記その他の目的、特徴、および利点がより明らかになろう。同一の参照符号は、一般に、本開示の実施形態における同一の構成要素を指す。
【図面の簡単な説明】
【0006】
【
図1】本発明の実施形態によるコンピューティング環境の概略図である。
【
図2】本発明の実施形態による動作シーケンスを示すフローチャートである。
【
図3】本発明の実施形態によるクライアント-サーバ・ハンドシェイク・シーケンスを示す概略図である。
【
図4】本発明の実施形態によるクラウド・コンピューティング環境を示す図である。
【
図5】本発明の実施形態による抽象化モデル層を示す図である。
【発明を実施するための形態】
【0007】
本開示の実施形態を示す添付図面を参照しながら、一部の実施形態についてより詳細に説明する。しかしながら、本開示は、様々な方法で実装することができ、したがって、本明細書に開示された実施形態に限定されるものと解釈すべきではない。
【0008】
一実施形態において、システムの1つまたは複数のコンポーネントは、非常に技術的な性質の問題(例えば、通信プロトコル・メッセージの送受信、エンティティの身元の検証、デジタル証明書の認証、デジタル署名の認証など)を解決するために、ハードウェアまたはソフトウェアあるいはその両方を使用することができる。これらの解決策は、抽象的ではなく、例えば、安全なクライアント-サーバ通信リンクの確立を容易にするために必要な処理能力により、人間による一連の精神的な活動として実行することができない。さらに、実行されるプロセスの一部は、通信を安全にすることに関連する規定のタスクを実行するために、専用コンピュータによって実行され得る。例えば、専用コンピュータを使用して、通信セキュリティ・ハンドシェイク・プロトコルなどに関連するタスクを実行することができる。
【0009】
本発明の態様は、クライアント・デバイスからクライアント・ハロー・メッセージを受信することと、サーバ・ハロー・メッセージを送信することと、サーバ証明書メッセージを送信することであって、証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、第1の証明書と第2の証明書とが互いにバインドされる、送信することと、第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名することと、第2の証明書に関連付けられた第2の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第2のメッセージに署名することであって、第2のメッセージが署名済みの第1のメッセージを含む、署名することと、署名済みの第1のメッセージと署名済みの第2のメッセージとを含むサーバ証明書検証メッセージを送信することと、1つまたは複数のサーバ・コンピュータ・プロセッサによって、サーバ・ハロー・メッセージに応答してクライアント証明書メッセージを受信することであって、クライアント証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第3の証明書と第2の暗号化アルゴリズムに関連付けられた第4の証明書とを含み、第3の証明書と第4の証明書とが互いにバインドされる、受信することと、1つまたは複数のサーバ・コンピュータ・プロセッサによって、クライアント証明書検証メッセージを受信することであって、クライアント証明書検証メッセージが、第3の証明書に関連付けられた第3の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第3のメッセージと、第4の証明書に関連付けられた第4の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第4のメッセージとを含み、第4のメッセージが第3のメッセージを含む、受信することと、クライアント・デバイスからクライアント完了メッセージを受信することと、クライアント完了メッセージの受信に応答してサーバ完了メッセージを送信することと、によって安全な通信を確立することに関連付けられた、方法、システム、およびコンピュータ可読媒体を開示している。
【0010】
開示された実施形態は、従来の暗号方法に基づく1つの証明書と格子またはポスト量子暗号(PQC)方法に基づく1つの証明書との2つの証明書を、PQC方法およびTC方法の両方が悪意のあるアクターによって破られない限り、2つの証明書を通して確立された安全な通信リンクを保証する方法でリンクさせるという利点をもたらす。
【0011】
RSAまたはECCに基づく従来の暗号方法(TC)は、大規模量子コンピュータの使用によって破られやすい。RSAおよびECCは、互いに乗算されて結果を生み出す大きい素数の使用に基づく。ショアのアルゴリズムを使用する大規模量子コンピュータは、RSAまたはECCなどの、因数の使用に基づく暗号化アルゴリズムを容易に無効にすることができるだろう。
【0012】
コンピューティング・エンティティ間のインターネット通信は、エンティティ間の初期「ハンドシェイク」を含む。エンティティの初期の非暗号化通信は、エンティティを互いに紹介するハンドシェイクの間に行われる。ハンドシェイクを通して、エンティティは、その後の通信の属性を確立するのに必要な非暗号化情報を、エンティティ間で交換する。属性は、データの暗号化および解読に使用される暗号化プロトコルを確立するのに必要な情報、ならびにエンティティが公開鍵を含む互いの身元を検証するのに必要な情報の交換を含む。
【0013】
トランスポート・レベル・セキュリティ(TLS)・ハンドシェイクなどの一般的な通信ハンドシェイクは、RSA、ECC、または同様の従来の因数ベースの暗号化公開鍵基盤に基づく安全なデジタル署名によって認証される、x.509証明書などの公開鍵証明書に依拠する。悪意のあるアクターが、ハンドシェイク通信にアクセスするおそれがあり、当事者のうち1つのTCを破るおそれがあり、その後、偽造された秘密鍵を使用してその当事者に成りすますおそれがある。
【0014】
格子ベースの暗号化アルゴリズムは、格子またはアレイ・ベースの数学的手法を使用して生成された公開鍵および秘密鍵のペアを使用する。このようなアルゴリズムは、量子コンピュータの使用によって破られにくいと考えられる。このようなアルゴリズムは、ポスト量子暗号(PQC)アルゴリズムとみなされる。
【0015】
レガシーTLSプロトコルはTCの使用に基づくため、単にTCをPQCに置き換えることは、グローバルなインターネット通信に後方互換性の問題を生じさせるおそれがある。量子コンピュータの使用によって破られにくい後方互換通信リンク・プロトコルが必要である。開示された方法は、互いに暗号的にバインドされる2つの証明書、すなわち、TCの因数ベースの証明書とPQCの格子ベースの証明書とを使用することによって、これを防ぐ。2つの証明書の各々は、エンティティにより信頼される認証局(CA)によって発行される。悪意のあるアクターは、量子コンピュータによって格子ベースの暗号化を破ることができない。PQC証明書に暗号的にバインドされたTC証明書の組合せに基づくハイブリッド・ハンドシェイク・プロトコルは、ポスト量子世界におけるネットワーク化されたエンティティ間の通信リンクの確立を可能にする。
【0016】
TLSという用語では、サーバの証明書および証明書検証メッセージの各々が、2組の証明書チェーンと2組の検証データとをそれぞれ含む。メッセージは2つのメッセージとして構成され、各々が処理を簡略化し、現在のTLSメッセージ処理論理の使用を可能にする。開示された実施形態は、TC検証データが認証され得る前にPQC検証データが認証されることを必要とすることによって、安全な通信を可能にする。TCが攻撃され得る前に、PQCが破られなければならない。悪意のあるアクターは、通信リンクの攻撃に成功するためには、PQCとTCとの両方を破らなければならない。
【0017】
TLSハンドシェイクは、クライアント・デバイスがクライアント・ハロー・メッセージをサーバに送信することから始まる。ハンドシェイクは、サーバがサーバ・ハロー・メッセージを送信することによりクライアント・ハロー・メッセージに応答することによって進む。ハロー・メッセージの交換は、使用される暗号化プロトコルのネゴシエーション、ならびに、次の暗号化データの交換で使用される、クライアントおよびサーバにより生成された乱数の交換を含む。例として、クライアント・ハロー・メッセージは、クライアントにより使用されるTLSのバージョン、使用される圧縮方法、通信のためにクライアントによりサポートされる暗号スイートのオプション、および暗号化データ交換に使用されるランダムな文字列を含む。クライアント・ハロー・メッセージは、ハロー・メッセージに従ってTLSハンドシェイク・データを暗号化するための暗号化拡張子などの1つまたは複数の拡張子を含むことができる。サーバ・ハロー・メッセージは、提供されたオプションからのサーバによる暗号スイートの選択、および通信の暗号化に使用する異なる乱数を含むことができる。
【0018】
その後、サーバはTLS証明書メッセージをクライアントに送信する。TLS証明書メッセージは、メッセージに埋め込まれた2つの証明書チェーンを含み、1つの証明書チェーンはTCに基づき、1つの証明書チェーンはPQCに基づく。2つの証明書チェーンは各々、1つまたは複数の中間証明書を含むサーバのエンド・エンティティ証明書から始まり、ルート証明書で終わる、一連の証明書を含むことができる。ルート証明書は、エンティティにより信頼される認証局によって発行され署名される。一実施形態において、証明書チェーンは各々、単一の証明書を含む。
【0019】
サーバ証明書メッセージを受信すると、クライアント・デバイスは、2つの証明書チェーンを復号し、各証明書チェーンを独立して認証する。クライアントは、2つの証明書チェーンの各々の各証明書の期限が切れていないこと、または各証明書が取り消されていないこと、証明書のドメイン名がサーバのドメインに一致すること、各チェーンの各証明書のデジタル署名が有効であること、および、各チェーンのルート証明書がクライアントにより信頼されるCAによって発行されたことを確認する。
【0020】
一実施形態において、クライアントは、CAの公開鍵を使用して、サーバのエンド・エンティティ証明書の署名を認証する。一実施形態において、クライアントは、中間証明書からの公開鍵を使用して、エンド・エンティティ証明書の署名を認証し、CAルート証明書の公開鍵を使用して、ルート証明書の署名および中間証明書の署名を認証する。
【0021】
TC証明書チェーンの場合、公開鍵およびデジタル署名は、TC公開鍵および秘密鍵のペアに基づく。PQC証明書チェーンの場合、署名および公開鍵は、PQCアルゴリズムを使用して導き出された公開鍵および秘密鍵のペアに基づく。
【0022】
PQCアルゴリズムは、CRYSTALS-DILITHIUM、FALCON、RAINBOW、CLASSIC McELIECE、CRYSTALS-KYBER、NTRU、SABER、および他の格子ベースのアルゴリズムを含む格子ベースの暗号化方法を含む。(注:「CRYSTALS-DILITHIUM」、「FALCON」、「RAINBOW」、「CLASSIC McELIECE」、「CRYSTALS-KYBER」、「NTRU」、および「SABER」という用語は、世界中の様々な法域における商標権の対象であり得、ここでは、そのような商標権が存在し得る限りにおいて、当該商標によって適切に示される製品またはサービスのみに関して使用される。)
【0023】
一実施形態において、サーバは、クライアントための証明書検証メッセージを作成する。証明書検証メッセージは、サーバがPQC証明書およびTC証明書のそれぞれに関連付けられたPQC秘密鍵およびTC秘密鍵を所有することを証明するのに役立つ。証明書検証メッセージは2つのメッセージを含む。第1のメッセージは、これまでにクライアントとサーバとの間で交換されたメッセージの現在のトランスクリプトを含み、このトランスクリプトは、サーバのPQC秘密鍵を使用して署名される。第2のメッセージは、サーバにより第1のメッセージが付加された、交換されたメッセージの現在のトランスクリプトを含み、付加されたトランスクリプトは、従来のサーバ証明書検証メッセージを生成する、サーバのTC秘密鍵を使用して署名される。サーバは、第1の証明書検証メッセージと第2の証明書検証メッセージとを組み合わせ、その組合せを単一の証明書検証メッセージとしてクライアントに送信する。
【0024】
クライアントは、組み合わせた証明書検証メッセージを受信し、2つのメッセージを切り離す。クライアントは、現在のメッセージング・トランスクリプトと、サーバのPQC証明書を認証するプロセスからのサーバのPQC公開鍵とを所有する。クライアントは、現在のメッセージング・トランスクリプトとサーバのPQC公開鍵とを使用して、サーバ証明書検証メッセージのPQC証明書検証部分のPQCデジタル署名を検証する。クライアントは、組み合わせたサーバ証明書検証メッセージのPQC部分に設けられた、署名済みの第1のメッセージ内容を含むメッセージ・トランスクリプトを使用して、組み合わせたサーバ証明書メッセージのTC部分のTC署名を検証する。クライアントは、付加されたメッセージング・トランスクリプトと、サーバのTC証明書を認証するプロセス中に得られたサーバのTC公開鍵とを使用する。
【0025】
一実施形態において、方法はさらに、TC証明書とPQC証明書とをバインドする。方法は、同じサブジェクト名、発行者名、およびサブジェクト代替名を有するPQC証明書およびTC証明書を作成する。方法は、公開鍵の通し番号および2つの証明書の署名を除いて、TCの制約をPQCの制約と同一として設定する。本実施形態において、方法は、PQC証明書データのハッシュ(SHA1、SHA256、または他のハッシュ関数)に等しいTCの通し番号または拡張子を設定する。ハッシュ関数の出力として設定されたバインド値は、大規模量子コンピュータまたは従来の非量子コンピュータを使用して破ることができない。本実施形態において、クライアントは、TC通し番号または拡張子が、使用時に、PQC証明書データのハッシュを含むこと、ならびに、すべての他のTC証明書データ属性およびPQC証明書データ属性が一致することを認証する。
【0026】
一実施形態において、サーバからクライアントに送信される証明書要求メッセージによって示されるように、相互のエンティティ検証が望ましい。証明書要求メッセージに応答して、クライアントは、クライアントのTC証明書およびPQC証明書の各々を含む証明書メッセージを送信する。その後、クライアントは、組み合わせた証明書検証メッセージを生成し送信する。これは、クライアントのPQC秘密鍵を使用して現在のメッセージ・トランスクリプトに署名することと、次に、第1の証明書検証メッセージを現在のメッセージング・トランスクリプトに付加することと、クライアントのTC秘密鍵を使用して、付加されたトランスクリプトに署名することとによって、第1の証明書検証メッセージを作成することを含む。
【0027】
一実施形態において、クライアント・ハロー・メッセージおよびサーバ・ハロー・メッセージの交換が、PQC証明書の使用につながることはない。これは、クライアントがその使用をサポートしないからである。本実施形態において、方法は、TC証明書およびメッセージのTC証明書検証部分のみを渡す。本実施形態において、方法は、すべてのネットワーク・エンティティがPQCベースのプロトコルの使用に移行していない任意の期間中に後方互換性をもたらす。
【0028】
図1は、開示された発明を実施することに関連付けられた例示的なネットワーク・リソースの概略図である。本発明は、命令ストリームを処理する開示された要素のいずれかのプロセッサにおいて実施されてよい。図示するように、ネットワーク化されたクライアント・デバイス110は、サーバ・サブシステム102に無線で接続する。クライアント・デバイス104は、ネットワーク114を介してサーバ・サブシステム102に無線で接続する。クライアント・デバイス104、110は、通信セキュリティ・プログラム(図示せず)を、プログラムを実行するための十分なコンピューティング・リソース(プロセッサ、メモリ、ネットワーク通信ハードウェア)と共に含む。クライアント・デバイス104、110とサーバ・サブシステム102との間の通信ハンドシェイクは、検証されたエンティティ間の安全な通信および暗号化データの交換を可能にするために、開示された実施形態の使用を含むことができる。
図1に示すように、サーバ・サブシステム102は、サーバ・コンピュータ150を備える。
図1は、本発明の実施形態による、ネットワーク化されたコンピュータ・システム1000内のサーバ・コンピュータ150のコンポーネントのブロック図である。
図1は、一実装形態の例示を単に提供するものであり、異なる実施形態を実装可能な環境に関するいかなる限定をも示唆するものではないことを理解すべきである。図示の環境に対する多くの変更を行うことができる。
【0029】
サーバ・コンピュータ150は、プロセッサ154、メモリ158、永続ストレージ170、通信ユニット152、入力/出力(I/O)インターフェース156、および通信ファブリック140を含むことができる。通信ファブリック140は、キャッシュ162、メモリ158、永続ストレージ170、通信ユニット152、および入力/出力(I/O)インターフェース156の間の通信を提供する。通信ファブリック140は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、ならびにシステム内の任意の他のハードウェア・コンポーネントの間で、データまたは制御情報あるいはその両方を渡すように設計された任意のアーキテクチャで実装されてもよい。例えば、通信ファブリック140は、1つまたは複数のバスで実装されてもよい。
【0030】
メモリ158および永続ストレージ170は、コンピュータ可読記憶媒体である。本実施形態において、メモリ158は、ランダム・アクセス・メモリ(RAM)160を含む。一般に、メモリ158は、任意の適切な揮発性または不揮発性のコンピュータ可読記憶媒体を含むことができる。キャッシュ162は、メモリ158から、最近アクセスされたデータ、および最近アクセスされたデータの近くのデータを保持することによって、プロセッサ154の性能を向上させる高速メモリである。
【0031】
本発明の実施形態を実施するために使用されるプログラム命令およびデータ、例えば、通信セキュリティ・プログラム175は、キャッシュ162を介してサーバ・コンピュータ150のそれぞれのプロセッサ154のうちの1つまたは複数により実行するまたはアクセスするあるいはその両方を行うために、永続ストレージ170に格納される。本実施形態において、永続ストレージ170は、磁気ハード・ディスク・ドライブを含む。磁気ハード・ディスク・ドライブの代わりにまたはそれに加えて、永続ストレージ170は、ソリッド・ステート・ハード・ドライブ、半導体ストレージ・デバイス、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROM)、フラッシュ・メモリ、または、プログラム命令もしくはデジタル情報を格納できる任意の他のコンピュータ可読記憶媒体を含むことができる。
【0032】
永続ストレージ170によって使用される媒体は、取外し可能であってもよい。例えば、取外し可能なハード・ドライブを永続ストレージ170に使用することができる。他の例として、永続ストレージ170の一部でもある別のコンピュータ可読記憶媒体に転送するためにドライブに挿入される光ディスクおよび磁気ディスク、サム・ドライブ、ならびにスマート・カードが挙げられる。
【0033】
これらの例では、通信ユニット152は、クライアント・コンピューティング・デバイス104、110のリソースを含む他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット152は、1つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット152は、物理的な通信リンクおよび無線通信リンクのいずれかまたは両方を使用して通信を提供することができる。本発明の実装形態に使用されるソフトウェア分配プログラムならびに他のプログラムおよびデータを、通信ユニット152を通じてサーバ・コンピュータ150の永続ストレージ170にダウンロードすることができる。
【0034】
I/Oインターフェース156は、サーバ・コンピュータ150に接続され得る他のデバイスとのデータの入力および出力を可能にする。例えば、I/Oインターフェース156は、キーボード、キーパッド、タッチ・スクリーン、マイクロフォン、デジタル・カメラ、または他の適切な入力デバイス、あるいはその組合せなどの外部デバイス190への接続を提供することができる。外部デバイス190は、例えば、サム・ドライブ、携帯型光ディスクまたは磁気ディスク、およびメモリ・カードなどの携帯型コンピュータ可読記憶媒体を含むこともできる。本発明の実施形態を実施するために使用されるソフトウェアおよびデータ、例えば、サーバ・コンピュータ150の通信セキュリティ・プログラム175は、そのような携帯型コンピュータ可読記憶媒体に格納することができ、I/Oインターフェース156を介して永続ストレージ170にロードすることができる。I/Oインターフェース156は、ディスプレイ180にも接続する。
【0035】
ディスプレイ180は、データをユーザに表示するための機構を提供し、例えば、コンピュータ・モニタであってよい。ディスプレイ180は、タブレット・コンピュータのディスプレイなどのタッチ・スクリーンとして機能することもできる。
【0036】
図2は、本開示の実施に関連付けられた例示的な動作を示すフローチャート200である。プログラムの開始後、ブロック210で、サーバの通信セキュリティ・プログラム175は、サポートされたTLSプロトコル、暗号スイートのオプション、およびクライアントにより生成された乱数に関するクライアント情報を含むクライアント・ハロー・メッセージを受信する。
【0037】
ブロック220で、サーバは、提供されたオプションからのサーバによる暗号スイートの選択を示し、かつサーバにより生成された乱数を含む、サーバ・ハロー・メッセージを送信する。
【0038】
ブロック230で、サーバは、サーバ証明書メッセージを送信する。サーバ証明書メッセージは、2つの証明書または証明書チェーンを含む。証明書または証明書チェーンは、PQCアルゴリズムからの第1のサーバ秘密鍵に関連付けられた第1のデジタル署名を使用して署名された第1の証明書または証明書チェーンと、TC暗号化アルゴリズムからの第2のサーバ秘密鍵に関連付けられた第2のデジタル署名を使用して署名された第2の証明書または証明書チェーンとを含む。
【0039】
ブロック240で、サーバの通信セキュリティ・プログラム175は、第1のサーバPQC秘密鍵を使用して第1のメッセージに署名する。第1のメッセージは、クライアント-サーバ・メッセージングのトランスクリプトを含む。
【0040】
ブロック250で、サーバの通信セキュリティ・プログラム175は、第2のサーバTC秘密鍵を使用して第2のメッセージに署名する。第2のメッセージは、第1のメッセージを含むように付加された、現在のクライアント-サーバ・メッセージング・トランスクリプトを含む。
【0041】
ブロック260で、サーバの通信セキュリティ・プログラム175は、第1のメッセージと第2のメッセージとを組み合わせて単一のサーバ証明書検証メッセージにし、組み合わせたメッセージをクライアントに送信する。
【0042】
ブロック270で、通信セキュリティ・プログラム175は、クライアントからクライアント完了メッセージを受信する。クライアント完了メッセージは、同意済みの暗号化アルゴリズムを使用して暗号化された、すべての以前のクライアント-サーバ・メッセージングの暗号ハッシュを含む。
【0043】
ブロック280で、通信セキュリティ・プログラム175は、ハンドシェイク・プロトコルからのすべての以前のクライアント-サーバ・メッセージング・トラフィックの暗号ハッシュを含むサーバ完了メッセージを送信する。
【0044】
TLSハンドシェイク・プロトコルは、データの暗号化/解読および他の目的のための暗号化鍵を生成するのに必要な情報の交換に関連する、クライアントとサーバとの間の追加のメッセージを含むことができることを理解されたい。
【0045】
図3の概略
図300は、本発明の実施形態による、クライアント310とサーバ320との間のメッセージング・トラフィックを示す。図示するように、クライアント310は、クライアント・ハロー・メッセージ315をサーバ320に送信する。サーバ320は、サーバ・ハロー・メッセージ325、サーバ証明書メッセージ330、およびサーバ証明書検証メッセージ340を送信することによって応答する。サーバ証明書メッセージ330およびサーバ証明書検証メッセージ340の各々は、2つの別個のメッセージを含む。サーバ証明書メッセージ330は、サーバPQC証明書メッセージ332とサーバTC証明書メッセージ334とを含む。サーバ証明書検証メッセージ340は、サーバPQC秘密鍵を使用して署名された、メッセージング・トランスクリプトを含む第1のメッセージ342を含み、第2のメッセージ344は、第1のメッセージが付加され、かつサーバTC秘密鍵を使用して署名されたメッセージング・トランスクリプトを含む。
【0046】
図3は、クライアント証明書メッセージ360とクライアント証明書検証メッセージ370とを含む、相互検証に関連付けられたメッセージを含む。サーバと同様に、クライアント証明書メッセージ360は、2つのメッセージ、すなわち、クライアントPQC証明書メッセージ362とクライアントTC証明書メッセージ364とを含む。クライアント証明書検証メッセージ370も2つのメッセージを含み、一方のメッセージ372は、メッセージング・トランスクリプトを含み、クライアントのPQC秘密鍵を使用して署名され、他方のメッセージ374は、クライアントPQC秘密鍵を使用して署名されたメッセージを含むように付加されたメッセージング・トランスクリプトを含み、このメッセージは、クライアントのTC秘密鍵を使用して署名される。項目380は、一般に、クライアント完了メッセージおよびサーバ完了メッセージを含む、クライアントとサーバとの間の通信ハンドシェイクに関連する追加のクライアント-サーバ・メッセージング・トラフィックを示す。
【0047】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装はクラウド・コンピューティング環境に限定されるものではないことを理解されたい。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意の他の種類のコンピューティング環境と共に実装することができる。
【0048】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話によって迅速にプロビジョニングおよびリリースされ得る構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの配備モデルとを含むことができる。
【0049】
特徴は以下の通りである。
【0050】
オンデマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人的対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0051】
広帯域ネットワーク・アクセス:機能はネットワークを介して利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を通じてアクセスされる。
【0052】
リソース・プール:マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング・リソースがプールされ、需要に応じて異なる物理リソースおよび仮想リソースが動的に割当てられ、再割当てされる。消費者は一般に、提供されるリソースの正確な場所について制御することができないかまたは知らないが、より高い抽象化レベルの場所(例えば、国、州、またはデータセンタ)を指定できるという点で、場所独立感がある。
【0053】
迅速な順応性:機能は、迅速かつ順応的に、場合によっては自動的にプロビジョニングされて、迅速にスケール・アウトすることができ、かつ迅速にリリースされて、迅速にスケール・インすることができる。消費者にとって、プロビジョニングのために利用可能な機能は、多くの場合、無制限であるように見え、いつでも任意の量を購入することができる。
【0054】
従量制サービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適切な何らかの抽象化レベルの計量機能を活用することによって、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視、制御、および報告して、利用サービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0055】
サービス・モデルは以下の通りである。
【0056】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。消費者は、限られたユーザ固有アプリケーション構成設定を例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能も含む、基礎となるクラウド・インフラストラクチャを管理または制御しない。
【0057】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成アプリケーションまたは消費者取得アプリケーションを配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャを管理または制御しないが、配備されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
【0058】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティング・リソースをプロビジョニングすることであり、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを配備および実行することができる。消費者は、基礎となるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションを制御することができ、場合によっては選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の限定的な制御を行うことができる。
【0059】
配備モデルは以下の通りである。
【0060】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。これは、組織または第3者によって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
【0061】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(例えば、任務、セキュリティ要件、ポリシ、およびコンプライアンス事項)を有する特定のコミュニティをサポートする。これは、組織または第3者によって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
【0062】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般人または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
【0063】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体であり、それらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または専有技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって共に結合される。
【0064】
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0065】
次に
図4を参照して、例示的なクラウド・コンピューティング環境50を示す。図示のように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含み、この1つまたは複数のクラウド・コンピューティング・ノード10と、例えば、パーソナル・デジタル・アシスタント(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどの、クラウド消費者によって使用されるローカル・コンピューティング・デバイスとが、通信することができる。ノード10は相互に通信することができる。ノード10は、前述したプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化(図示せず)され得る。これにより、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提供することができる。
図4に示すコンピューティング・デバイス54A~54Nの種類は、単なる例示であり、コンピューティング・ノード10およびクラウド・コンピューティング環境50が、(例えば、ウェブ・ブラウザを使用して)任意の種類のネットワークまたはネットワーク・アドレス可能接続あるいはその両方を介して任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
【0066】
次に
図5を参照して、クラウド・コンピューティング環境50(
図4)によって提供される1組の機能抽象化層を示す。
図5に示すコンポーネント、層、および機能は、単なる例示であり、本発明の実施形態はこれらに限定されないことを予め理解すべきである。図示のように、以下の層および対応する機能が提供される。
【0067】
ハードウェアおよびソフトウェア層60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、メインフレーム61、縮小命令セット・コンピュータ(RISC)・アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が挙げられる。一部の実施形態において、ソフトウェア・コンポーネントとして、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68が挙げられる。
【0068】
仮想化層70は抽象化層を提供し、この抽象化層から、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75を提供することができる。
【0069】
一例において、管理層80は、以下に記載の機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を行う。計量および価格設定82は、リソースがクラウド・コンピューティング環境内で利用されるときの費用追跡、およびこれらのリソースの消費に対する請求書発行またはインボイス処理を行う。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクの本人確認と、データおよび他のリソースの保護とを行う。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割当ておよび管理を行う。サービス品質保証契約(SLA)の計画および履行85は、将来の要件がSLAに従って予測されるクラウド・コンピューティング・リソースの事前手配および調達を行う。
【0070】
作業負荷層90は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供できる作業負荷および機能の例として、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ解析処理94、トランザクション処理95、および通信セキュリティ・プログラム175が挙げられる。
【0071】
本発明は、任意の可能な統合の技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。本発明は、命令ストリームを処理する任意のシステム(単独または並列)において有利に実施されてよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【0072】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持し格納することができる有形デバイスであってよい。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下のもの、すなわち、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ(R)・ディスク、パンチカードもしくは命令が記録されている溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体またはコンピュータ可読記憶デバイスは、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0073】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して、外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0074】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で実行することができる。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに接続することができる。一部の実施形態において、本発明の態様を実行するために、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0075】
本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら、本発明の態様について本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0076】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令がまとめて格納されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んだ製品を含むべく、コンピュータ可読記憶媒体に格納されて、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0077】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0078】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことができる。一部の代替実装形態において、ブロックに記載された機能は、図に記載された順序以外で生じる場合がある。例えば、連続して示す2つのブロックは、実際には、実質的に同時に実行することができ、またはそれらのブロックは、時には、関与する機能に応じて、逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェア・ベースのシステムによって実施することができることにも留意されたい。
【0079】
本明細書における「1つの実施形態」、「一実施形態」、「例示的な実施形態」などへの言及は、説明された実施形態が特定の機能、構造、または特徴を含むことができるが、必ずしもすべての実施形態がこの特定の機能、構造、または特徴を含まなくてもよいことを示す。さらに、そのような表現は、必ずしも同じ実施形態を指しているわけではない。さらに、特定の機能、構造、または特徴が一実施形態に関連して説明されるとき、明示的に説明されているか否かに関わらず、他の実施形態に関連するそのような機能、構造、または特徴に影響を与えることは当業者の知識の範囲内にあると考えられる。
【0080】
本明細書で使用されている用語は、特定の実施形態を説明することのみを目的としたものであり、本発明を限定することは意図していない。本明細書で使用されるとき、単数形「a」、「an」、および「the」は、文脈において別途明確に示さない限り、複数形も含むことを意図している。「含む」または「含んでいる」という用語あるいはその両方は、本明細書で使用されるとき、記載されている機能、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を明示するが、1つまたは複数の他の機能、整数、ステップ、動作、要素、構成要素、またはこれらのグループ、あるいはその組合せの存在も追加も除外しないことがさらに理解されよう。
【0081】
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることも、開示された実施形態に限定することも意図していない。本発明の範囲および思想から逸脱することなく、多くの変更および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術と比べた実際の応用もしくは技術的改良を最も良く説明するために、または当業者が本明細書に開示された実施形態を理解できるようにするために選択されたものである。
【手続補正書】
【提出日】2023-06-16
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
安全なネットワーク通信を確立するためのコンピュータ実装方法であって、
1つまたは複数のサーバ・コンピュータ・プロセッサによって、クライアント・ハロー・メッセージに応答してサーバ証明書メッセージを送信することであって、前記証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、前記第1の証明書と前記第2の証明書とが互いにバインドされる、前記送信することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記第2の証明書に関連付けられた第2の秘密鍵を使用して、前記クライアント-サーバ通信に関連付けられた第2のメッセージに署名することであって、前記第2のメッセージが前記第1のメッセージを含む、前記署名することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記クライアント・ハロー・メッセージの受信に応答して、前記第1のメッセージと前記第2のメッセージとを含むサーバ証明書検証メッセージを送信することと
を含む、コンピュータ実装方法。
【請求項2】
前記第1の暗号化アルゴリズムが格子ベースの暗号化アルゴリズムを含む、
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記第1のメッセージがクライアント-サーバ・メッセージングのトランスクリプトを含む、
請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記第1の証明書と前記第2の証明書とが同一のサブジェクト名を有する、
請求項1ないし3のいずれかに記載のコンピュータ実装方法。
【請求項5】
前記第2の証明書の属性が前記第1の証明書のハッシュ値を含む、
請求項1ないし4のいずれかに記載のコンピュータ実装方法。
【請求項6】
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記クライアント・ハロー・メッセージに応答してサーバ・ハロー・メッセージを送信することをさらに含む、
請求項1ないし5のいずれかに記載の
コンピュータ実装方法。
【請求項7】
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記サーバ・ハロー・メッセージに応答してクライアント証明書メッセージを受信することであって、前記クライアント証明書メッセージが、前記第1の暗号化アルゴリズムに関連付けられた第3の証明書と前記第2の暗号化アルゴリズムに関連付けられた第4の証明書とを含み、前記第3の証明書と前記第4の証明書とが互いにバインドされる、前記受信することと、
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、クライアント証明書検証メッセージを受信することであって、前記クライアント証明書検証メッセージが、前記第3の証明書に関連付けられた第3の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第3のメッセージと、前記第4の証明書に関連付けられた第4の秘密鍵を使用して署名された、前記クライアント-サーバ通信に関連付けられた第4のメッセージとを含み、前記第4のメッセージが前記第3のメッセージを含む、前記受信することと
をさらに含む、
請求項6に記載のコンピュータ実装方法。
【請求項8】
前記1つまたは複数のサーバ・コンピュータ・プロセッサによって、前記第1の暗号化アルゴリズムを使用して暗号化されたデータを送信することをさらに含む、
請求項1ないし7のいずれかに記載のコンピュータ実装方法。
【請求項9】
安全なネットワーク通信を確立するためのコンピュータ・プログラム製品であって、
1つまたは複数のコンピュータ可読記憶デバイスと、
前記1つまたは複数のコンピュータ可読記憶デバイスにまとめて格納されたプログラム命令と
を含み、
前記格納されたプログラム命令が、
クライアント・ハロー・メッセージに応答してサーバ証明書メッセージを送信するためのプログラム命令であって、前記証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、前記第1の証明書と前記第2の証明書とが互いにバインドされる、前記プログラム命令と、
前記第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名するためのプログラム命令と、
前記第2の証明書に関連付けられた第2の秘密鍵を使用して、前記クライアント-サーバ通信に関連付けられた第2のメッセージに署名するためのプログラム命令であって、前記第2のメッセージが前記第1のメッセージを含む、前記プログラム命令と、
前記クライアント・ハロー・メッセージの受信に応答して、前記第1のメッセージと前記第2のメッセージとを含むサーバ証明書検証メッセージを送信するためのプログラム命令と
を含む、コンピュータ・プログラム製品。
【請求項10】
前記第1の暗号化アルゴリズムが格子ベースの暗号化アルゴリズムを含む、
請求項9に記載のコンピュータ・プログラム製品。
【請求項11】
前記第1のメッセージがクライアント-サーバ・メッセージングのトランスクリプトを含む、
請求項9または10に記載のコンピュータ・プログラム製品。
【請求項12】
前記第1の証明書と前記第2の証明書とが同一のサブジェクト名を有する、
請求項9ないし11のいずれかに記載のコンピュータ・プログラム製品。
【請求項13】
前記第2の証明書の属性が前記第1の証明書のハッシュ値を含む、
請求項9ないし12のいずれかに記載のコンピュータ・プログラム製品。
【請求項14】
前記格納されたプログラム命令が、前記クライアント・ハロー・メッセージに応答してサーバ・ハロー・メッセージを送信するためのプログラム命令をさらに含む、
請求項9ないし13のいずれかに記載のコンピュータ・プログラム製品。
【請求項15】
前記格納されたプログラム命令が、
前記サーバ・ハロー・メッセージに応答してクライアント証明書メッセージを受信するためのプログラム命令であって、前記クライアント証明書メッセージが、前記第1の暗号化アルゴリズムに関連付けられた第3の証明書と前記第2の暗号化アルゴリズムに関連付けられた第4の証明書とを含み、前記第3の証明書と前記第4の証明書とが互いにバインドされる、前記プログラム命令と、
クライアント証明書検証メッセージを受信するためのプログラム命令であって、前記クライアント証明書検証メッセージが、前記第3の証明書に関連付けられた第3の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第3のメッセージと、前記第4の証明書に関連付けられた第4の秘密鍵を使用して署名された、前記クライアント-サーバ通信に関連付けられた第4のメッセージとを含み、前記第4のメッセージが前記第3のメッセージを含む、前記プログラム命令と
をさらに含む、
請求項14に記載のコンピュータ・プログラム製品。
【請求項16】
前記格納されたプログラム命令が、前記第1の暗号化アルゴリズムを使用して暗号化されたデータを送信するためのプログラム命令をさらに含む、
請求項9ないし15のいずれかに記載のコンピュータ・プログラム製品。
【請求項17】
安全なネットワーク通信を確立するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶デバイスと、
前記1つまたは複数のコンピュータ・プロセッサによって実行するために、前記1つまたは複数のコンピュータ可読記憶デバイスに格納されたプログラム命令と
を含み、
前記格納されたプログラム命令が、
クライアント・ハロー・メッセージに応答してサーバ証明書メッセージを送信するためのプログラム命令であって、前記証明書メッセージが、第1の暗号化アルゴリズムに関連付けられた第1の証明書と第2の暗号化アルゴリズムに関連付けられた第2の証明書とを含み、前記第1の証明書と前記第2の証明書とが互いにバインドされる、前記プログラム命令と、
前記第1の証明書に関連付けられた第1の秘密鍵を使用して、クライアント-サーバ通信に関連付けられた第1のメッセージに署名するためのプログラム命令と、
前記第2の証明書に関連付けられた第2の秘密鍵を使用して、前記クライアント-サーバ通信に関連付けられた第2のメッセージに署名するためのプログラム命令であって、前記第2のメッセージが前記第1のメッセージを含む、前記プログラム命令と、
前記クライアント・ハロー・メッセージの受信に応答して、前記第1のメッセージと前記第2のメッセージとを含むサーバ証明書検証メッセージを送信するためのプログラム命令と
を含む、コンピュータ・システム。
【請求項18】
前記第1の暗号化アルゴリズムが格子ベースの暗号化アルゴリズムを含む、
請求項17に記載のコンピュータ・システム。
【請求項19】
前記第1のメッセージがクライアント-サーバ・メッセージングのトランスクリプトを含む、
請求項17または18に記載のコンピュータ・システム。
【請求項20】
前記第1の証明書と前記第2の証明書とが同一のサブジェクト名を有する、
請求項17ないし19のいずれかに記載のコンピュータ・システム。
【請求項21】
前記第2の証明書の属性が前記第1の証明書のハッシュ値を含む、
請求項17ないし20のいずれかに記載のコンピュータ・システム。
【請求項22】
前記格納されたプログラム命令が、前記クライアント・ハロー・メッセージに応答してサーバ・ハロー・メッセージを送信するためのプログラム命令をさらに含む、
請求項17ないし21のいずれかに記載のコンピュータ・システム。
【請求項23】
前記格納されたプログラム命令が、
前記サーバ・ハロー・メッセージに応答してクライアント証明書メッセージを受信するためのプログラム命令であって、前記クライアント証明書メッセージが、前記第1の暗号化アルゴリズムに関連付けられた第3の証明書と前記第2の暗号化アルゴリズムに関連付けられた第4の証明書とを含み、前記第3の証明書と前記第4の証明書とが互いにバインドされる、前記プログラム命令と、
クライアント証明書検証メッセージを受信するためのプログラム命令であって、前記クライアント証明書検証メッセージが、前記第3の証明書に関連付けられた第3の秘密鍵を使用して署名された、クライアント-サーバ通信に関連付けられた第3のメッセージと、前記第4の証明書に関連付けられた第4の秘密鍵を使用して署名された、前記クライアント-サーバ通信に関連付けられた第4のメッセージとを含み、前記第4のメッセージが前記第3のメッセージを含む、前記プログラム命令と
をさらに含む、
請求項22に記載のコンピュータ・システム。
【国際調査報告】