JP2023549598A - 秘密鍵管理 - Google Patents

秘密鍵管理 Download PDF

Info

Publication number
JP2023549598A
JP2023549598A JP2023528265A JP2023528265A JP2023549598A JP 2023549598 A JP2023549598 A JP 2023549598A JP 2023528265 A JP2023528265 A JP 2023528265A JP 2023528265 A JP2023528265 A JP 2023528265A JP 2023549598 A JP2023549598 A JP 2023549598A
Authority
JP
Japan
Prior art keywords
handshake
key
security proxy
message
context information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023528265A
Other languages
English (en)
Inventor
ション、ウェイシャン
リン、チュンシュオ
リアウ、ウェイジエ
リー、チェンタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023549598A publication Critical patent/JP2023549598A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報が取得される。コンテキスト情報は、セキュリティプロキシから鍵マネージャに送信される。鍵マネージャはセキュリティプロキシの第1の秘密鍵を維持する。第1のハンドシェイクメッセージは、鍵マネージャから受信される。第1のハンドシェイクメッセージは、少なくともコンテキスト情報に基づいて生成され、第1の秘密鍵で署名される。第1のハンドシェイクメッセージは、ターゲットエンティティに送信される。【選択図】図8

Description

本発明は、データ暗号化に関し、より具体的には、秘密鍵管理のための方法、システム、およびコンピュータプログラム製品に関する。
現在、アプリケーションはコンテナ化され、クラウド環境にデプロイされており、セキュリティ要件をもたらしている。暗号化は一般的な戦略である。例えば、アプリケーション用のクライアントとアプリケーション用のサーバ間のネットワークトラフィックは、一般的に暗号化されている。
本開示のいくつかの実施形態は、方法として例示することができる。本方法によれば、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報は、セキュリティプロキシにおいて取得される。コンテキスト情報は、セキュリティプロキシから鍵マネージャに送信される。ここで、鍵マネージャはセキュリティプロキシの第1の秘密鍵を維持する。そして、第1のハンドシェイクメッセージは、鍵マネージャから受信される。ここで、第1のハンドシェイクメッセージは、少なくともコンテキスト情報に基づいて生成され、第1の秘密鍵で署名される。そして、第1のハンドシェイクメッセージは、ターゲットエンティティに送信される。
本開示のいくつかの実施形態は、第2の方法として例示することができる。第2の方法によれば、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報は、鍵マネージャにおいてセキュリティプロキシから受信される。ここで、鍵マネージャは、セキュリティプロキシの第1の秘密鍵を維持する。そして、ターゲットエンティティに向けられる第1のハンドシェイクメッセージは、鍵マネージャにおいて、少なくともコンテキスト情報に基づいて生成される。ここで、第1のハンドシェイクメッセージは、セキュリティプロキシの第1の秘密鍵で署名される。次に、第1のハンドシェイクメッセージは、セキュリティプロキシに送信される。
本開示のいくつかの実施形態は、システムとして例示することができる。システムは、処理ユニットと、処理ユニットに結合されたメモリとを含む。メモリは、処理ユニットによって実行されるとき、動作を実行する命令を格納する。動作は、セキュリティプロキシにおいて、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報を取得することを含む。また、かかる動作は、セキュリティプロキシから鍵マネージャにコンテキスト情報を送信することを含む。ここで、鍵マネージャは、セキュリティプロキシの第1の秘密鍵を維持する。また、かかる動作は、鍵マネージャから第1のハンドシェイクメッセージを受信することを含む。ここで、第1のハンドシェイクメッセージは、少なくともコンテキスト情報に基づいて生成され、第1の秘密鍵で署名される。かかる動作は、第1のハンドシェイクメッセージをターゲットエンティティに送信することをさらに含む。
本開示のいくつかの実施形態は、コンピュータプログラム製品として例示することができる。コンピュータプログラム製品は、非一時的な機械可読媒体上に格納され、機械実行可能な命令を含む。機械実行可能な命令は、デバイス上で実行されると、デバイスに動作を実行させる。この動作は、セキュリティプロキシにおいて、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報を取得することを含む。また、かかる動作は、セキュリティプロキシから鍵マネージャにコンテキスト情報を送信することを含む。ここで、鍵マネージャはセキュリティプロキシの第1の秘密鍵を維持する。また、かかる動作は、鍵マネージャから第1のハンドシェイクメッセージを受信することを含む。ここで、第1のハンドシェイクメッセージは、少なくともコンテキスト情報に基づいて生成され、第1の秘密鍵で署名される。かかる動作は、さらに、第1のハンドシェイクメッセージをターゲットエンティティに送信することを含む。
上記の概要は、本開示の図示された各実施形態またはすべての実装を説明することを意図するものではない。
本願に含まれる図面は、本明細書に組み込まれ、本明細書の一部を構成する。それらは、本開示の実施形態を例示し、説明とともに、本開示の原理を説明するのに役立つ。図面は、特定の実施形態を例示するものに過ぎず、本開示を限定するものではない。請求された主題の様々な実施形態の特徴および利点は、以下の詳細な説明が進むにつれて、また、同様の数字が同様の部分を示す図面を参照することにより、明らかになるであろう。
本発明の実施形態に係るクラウドコンピューティングノードを示す図である。 本発明の一実施形態に係るクラウドコンピューティング環境を示す図である。 本発明の一実施形態に係る抽象化モデルレイヤを示す図である。 本開示の実施形態が実装され得る環境を示す図である。 本開示のいくつかの実施形態に係る秘密鍵管理のための例示的なプロセスを示す図である。 本開示のいくつかの実施形態に係る秘密鍵管理のための例示的なプロセスを示す図である。 本開示のいくつかの実施形態に係る秘密鍵管理のための例示的なプロセスを示す図である。 本開示のいくつかの実施形態に係る例示的な方法のフローチャートを示す図である。 本開示のいくつかの実施形態に係る例示的な方法のフローチャートを示す図である。 本開示の実施形態を実施する際に使用され得る例示的なコンピュータシステムのハイレベルブロック図である。
本発明は、様々な変更および代替形態に従うことができるが、その具体的な内容は、図面において例として示されており、詳細に説明されるであろう。しかしながら、その意図は、記載された特定の実施形態に本発明を限定することではないことを理解されたい。それどころか、その意図は、本発明の範囲内に入るすべての変更、等価物、および代替物をカバーすることである。
いくつかの実施形態は、本開示の実施形態が図示された添付図面を参照してより詳細に説明される。しかしながら、本開示は、様々な態様で実施することができ、したがって、本明細書に開示された実施形態に限定されると解釈されるべきではない。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
特性は以下の通りである。
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは以下の通りである。
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで、図1を参照すると、クラウドコンピューティングノードの一例の概略図が示されている。クラウドコンピューティングノード10は、適切なクラウドコンピューティングノードの一例に過ぎず、本明細書に記載される本発明の実施形態の使用範囲または機能性に関するいかなる制限も示唆することを意図していない。それにもかかわらず、クラウドコンピューティングノード10は、本明細書で規定された機能性のいずれかを実装もしくは実行またはその両方を行うことが可能である。
クラウドコンピューティングノード10では、多数の他の汎用または特殊目的のコンピューティングシステム環境または構成で動作するコンピュータシステム/サーバ12または通信デバイスなどの携帯電子デバイスが存在する。コンピュータシステム/サーバ12と共に使用するのに適している可能性がある周知のコンピューティングシステム、環境、もしくは構成またはその組み合わせの例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、および上記システムまたはデバイスのいずれかを含む分散クラウドコンピューティング環境などがあるが、これらに限定されない。
コンピュータシステム/サーバ12は、プログラムモジュールなどのコンピュータシステム実行可能命令がコンピュータシステムによって実行されるという一般的な文脈で説明されることがある。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでもよい。コンピュータシステム/サーバ12は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散クラウドコンピューティング環境において実施されてもよい。分散クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートコンピュータシステム記憶媒体の両方に配置されてもよい。
図1に示すように、クラウドコンピューティングノード10内のコンピュータシステム/サーバ12は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム/サーバ12の構成要素は、1または複数のプロセッサまたは処理ユニット16のセット、システムメモリ28、およびシステムメモリ28を含む様々なシステム構成要素をプロセッサ16に結合するバス18を含むことができるが、これらに限定されるものではない。
バス18は、種々のバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、およびプロセッサまたはローカルバスを含む複数種類のバス構造のうち1つ以上の任意のものを表す。一例として、かかるアーキテクチャは、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバスおよびペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
コンピュータシステム/サーバ12は、一般的に、種々のコンピュータシステム可読媒体を含む。かかる媒体は、コンピュータシステム/サーバ12によってアクセス可能な任意の利用可能な媒体でよく、揮発性媒体および不揮発性媒体の両方と、取り外し可能媒体および取り外し不能媒体の両方とを含むことができる。
システムメモリ28は、ランダムアクセスメモリ(RAM)30もしくはキャッシュメモリ32またはその両方など、揮発性メモリとしてのコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ12はさらに、他の取り外し可能/取り外し不能コンピュータシステム記憶媒体および揮発性/不揮発性コンピュータシステム記憶媒体を含んでもよい。一例として、ストレージシステム34は、取り外し不能な不揮発性磁気媒体(不図示。一般に「ハードドライブ」と呼ばれる)への読み書きのために設けることができる。また、図示は省略するが、取り外し可能な不揮発性磁気ディスク(例えば、フロッピーディスク)への読み書きのための磁気ディスクドライブ、および取り外し可能な不揮発性光学ディスク(CD-ROM、DVD-ROMや他の光学媒体など)への読み書きのための光学ディスクドライブを設けることができる。これらの例において、それぞれを、1つ以上のデータ媒体インタフェースによってバス18に接続することができる。以下でさらに図示および説明するように、メモリ28は、本発明の実施形態の機能を実行するように構成されたプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
一例として、プログラムモジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータと同様に、メモリ28に記憶することができる。オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータ、またはそれらのいくつかの組み合わせの各々は、ネットワーク環境の実装形態を含むことができる。プログラムモジュール42は一般に、本明細書に記載の本発明の実施形態の機能もしくは方法またはその両方を実行する。
また、コンピュータシステム/サーバ12は、キーボード、ポインティングデバイス、ディスプレイ24などの1つ以上の外部装置14、ユーザとコンピュータシステム/サーバ12との対話を可能にする1つ以上の装置、もしくはコンピュータシステム/サーバ12と1つ以上の他のコンピュータ装置との通信を可能にする任意の装置(例えば、ネットワークカードやモデムなど)またはこれらの組み合わせと通信することができる。かかる通信は、入力/出力(I/O)インタフェース22を介して行うことができる。さらに、コンピュータシステム/サーバ12は、ネットワークアダプタ20を介して1つ以上のネットワーク(ローカルエリアネットワーク(LAN)、汎用広域ネットワーク(WAN)、もしくはパブリックネットワーク(例えばインターネット)またはこれらの組み合わせなど)と通信することができる。図示するように、ネットワークアダプタ20は、バス18を介してコンピュータシステム/サーバ12の他のコンポーネントと通信することができる。なお、図示は省略するが、他のハードウェアコンポーネントもしくはソフトウェアコンポーネントまたはその両方を、コンピュータシステム/サーバ12と併用することができる。それらの一例としては、マイクロコード、デバイスドライバ、冗長化処理ユニット、外付けディスクドライブアレイ、RAIDシステム、テープドライブ、データアーカイブストレージシステムなどがある。
ここで図2を参照すると、例示的なクラウドコンピューティング環境50が描かれている。図示されるように、クラウドコンピューティング環境50は1つまたは複数のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図2に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
ここで図3を参照すると、クラウドコンピューティング環境50(図2)によって提供される一連の機能抽象化レイヤが示されている。なお、図3に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、秘密鍵管理96が含まれる。
クラウド環境では、一般的にトラフィックは暗号化されている。しかし、このことは、悪意のあるトラフィックもしばしば暗号化され、観測されずにサーバを攻撃する可能性があるという、独自のセキュリティ上の懸念をもたらす。このようなセキュリティ上の脅威を軽減するために、クラウドセキュリティプロキシが導入されることがある。クラウドセキュリティプロキシは、クライアントとサーバ間に位置するコンテナ型のプロキシ製品であってもよい。クラウドセキュリティプロキシは、暗号化されたトラフィックを観察・監視し、悪意のある行動やコンテンツを検出することができる。この目的のために、そしてクライアントに対して透過的であるために、クラウドセキュリティプロキシの公開鍵は、クライアントによって信頼される必要があり、クラウドセキュリティプロキシは、クライアントに対して自身を認証するためにペアリング秘密鍵を使用することが要求される場合がある。
一方、クラウド環境において、クラウドセキュリティプロキシは、1または複数のコンテナインスタンスによって実装される場合がある。しかし、コンテナインスタンスに秘密鍵を維持することは、秘密鍵が漏洩するリスクを増大させる可能性がある。さらに、クラウド環境では、刻々と変化するワークロードに合わせてコンテナインスタンスが頻繁に変更される可能性があるため、コンテナインスタンスに秘密鍵を配布することは、比較的複雑である可能性がある。
本開示の実施形態は、秘密鍵管理のための解決策を提供する。一般に、本開示の実施形態によれば、セキュリティプロキシに代わる鍵マネージャは、セキュリティプロキシの秘密鍵を維持し、秘密鍵を必要とするハンドシェイクメッセージを処理する。ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報は、セキュリティプロキシにおいて取得され、鍵マネージャに送信される。ハンドシェイクメッセージは、少なくともコンテキスト情報に基づいて鍵マネージャによって生成され、セキュリティプロキシの秘密鍵で署名される。そして、ハンドシェイクメッセージは、セキュリティプロキシに送信され、セキュリティプロキシによってターゲットエンティティに転送される。
本開示の実施形態において、セキュリティを強化した集中型システムが提案される。このようにすれば、セキュリティプロキシが秘密鍵を保存、管理、保護する必要がない。セキュリティプロキシの秘密鍵は、コンテナインスタンスに分散されることなく、一元的に保存され得る。これにより、秘密鍵の漏洩リスクを有利に低減することができる。このように、提案するソリューションにより、より安全なクラウド環境を実現することができる。また、一元化することで、セキュリティプロキシの秘密鍵の個別設定が不要となり、セキュリティプロキシの設定変更も鍵マネージャにおいて対応できるようになる。このように、セキュリティプロキシの秘密鍵の更新および管理が容易になる。
いくつかの実施形態では、ハンドシェイクメッセージに関する情報は、セキュリティプロキシおよび鍵マネージャで事前に準備することができる。ソースエンティティが関与する履歴ハンドシェイクの履歴コンテキスト情報が事前に取得されてもよい。ターゲットエンティティによってハンドシェイクが開始されると、鍵マネージャは、ソースエンティティからの応答を待つことなく、ハンドシェイクメッセージを生成してもよい。このような実施形態では、ハンドシェイクに要する時間を短縮することができ、その結果、ソースエンティティとターゲットエンティティ間のトランザクションフローを改善することができる。このようにして、より効率的なハンドシェイクを実現することができる。
セキュリティプロキシがクラウド環境に配備されていない場合であっても、本開示の上記利点を実現することも可能である。本開示の他の利点は、以下の例示的な実施形態および添付の図面を参照して説明される。
図4は、本開示の実施形態が実装され得る環境400を描いている。環境400の構造および機能は、本開示の範囲に関するいかなる制限も示唆することなく、説明の目的のためにのみ記載されていることが理解される。一般に、環境400は、ターゲットエンティティ410、ソースエンティティ420、セキュリティプロキシ430、および鍵マネージャ440を含む。
図4に示すように、セキュリティプロキシ430は、ターゲットエンティティ410とソースエンティティ420間に配置される。具体的には、セキュリティプロキシ430は、ターゲットエンティティ410とセキュリティプロキシ430間の第1のセキュア接続、およびセキュリティプロキシ430とソースエンティティ420間の第2のセキュア接続を確立する認可されたエンティティとして機能し得る。これらの2つのセキュア接続により、セキュリティプロキシ430は、第1のセキュア接続を介してターゲットエンティティ410から暗号化された通信を受信してもよい。暗号化された通信がソースエンティティ420に向けられている場合、セキュリティプロキシ430は、第2のセキュア接続を介して、通信をソースエンティティ420に転送してもよい。暗号化された通信が第2のセキュア接続を介してソースエンティティ420から受信される場合、逆の処理が実行され得る。一例として、セキュリティプロキシ430は、TLS(Transport Layer Security)を提供するように構成されてもよい。このような例では、セキュリティプロキシ430は、TLSプロキシであってもよい。
いくつかの実施形態では、セキュリティプロキシ430は、クラウド環境において実装されてもよい。例えば、セキュリティプロキシ430は、1または複数のコンテナインスタンスによって実装されてもよい。いくつかの実施形態では、セキュリティプロキシ430は、1または複数のローカルデバイスに実装されてもよい。
ターゲットエンティティ410およびソースエンティティ420は、セキュリティプロキシ430を介して互いに通信する任意の適切なエンティティであってよい。いくつかの実施形態では、ターゲットエンティティ410およびソースエンティティ420の一方はクライアントであってよく、ターゲットエンティティ410およびソースエンティティ420の他方はサーバであってよい。一例として、本開示の範囲に関するいかなる制限もなく、ターゲットエンティティ410はTLSクライアントであってよく、ソースエンティティ420はTLSサーバであってよい。
互いに通信するため、例えばアプリケーションデータを交換するためには、ターゲットエンティティ410とソースエンティティ420間でハンドシェイクが必要である。セキュリティプロキシ430の存在により、ハンドシェイクは、ターゲットエンティティ410とセキュリティプロキシ430間のハンドシェイクシーケンスだけでなく、ソースエンティティ420とセキュリティプロキシ430間の別のハンドシェイクシーケンスを含む場合がある。ターゲットエンティティ410、セキュリティプロキシ430、およびソースエンティティ420の間で通信される1または複数のハンドシェイクメッセージは、ハンドシェイクメッセージの送信者の秘密鍵で署名される必要がある場合がある。例えば、証明書検証のためのハンドシェイクメッセージは、送信者の秘密鍵で署名されることが要求される。
本明細書で使用する場合、「ソース」という用語は、メッセージ(例えば、ハンドシェイクメッセージ)の発信元に関して使用され、「ターゲット」という用語は、メッセージの宛先に関して使用される。以下では、ターゲットエンティティ410およびソースエンティティ420は、まとめて「エンティティ(entities)」と呼ばれることもあり、個別に「エンティティ(entity)」と呼ばれることもある。
図4に示すように、鍵マネージャ440は、セキュリティプロキシ430とセキュア接続で通信することができる。鍵マネージャ440は、セキュリティプロキシ430の秘密鍵450を維持し、セキュリティプロキシ430の代わりに秘密鍵450を必要とするメッセージを処理するように構成される。鍵マネージャ440は、任意の適切な方法で実装されてもよい。例えば、鍵マネージャ440は、クラウド環境内の構成要素によって実装されてもよい。あるいは、鍵マネージャ440は、1または複数のデバイス、例えばサーバによって実装されてもよい。
鍵マネージャ440は、セキュリティプロキシ430からソースエンティティ420とターゲットエンティティ410間のハンドシェイクのコンテキスト情報を受信し、少なくともコンテキスト情報および秘密鍵450に基づいてハンドシェイクメッセージを生成するように構成されている。本明細書において、ハンドシェイクの「コンテキスト情報」という用語は、ハンドシェイク中に交換された情報の少なくとも一部を指し、例えば、ターゲットエンティティ410、セキュリティプロキシ430およびソースエンティティ420の間で通信されたメッセージのことである。
いくつかの実施形態では、鍵マネージャ440は、ソースエンティティ420が関与する履歴ハンドシェイクの履歴コンテキスト情報460を格納してもよい。具体的には、履歴コンテキスト情報は、ソースエンティティ420に関連していてもよい。鍵マネージャ440は、履歴コンテキスト情報に基づいて、ハンドシェイクメッセージをさらに生成してもよい。図示しないが、いくつかの実施形態において、セキュリティプロキシ430は、履歴コンテキスト情報460を格納してもよい。
図4に示された要素の数は、説明の目的のみのために提供されており、任意の適切な数の要素が存在してもよい。例えば、セキュリティプロキシ430によって提供されるエンティティがさらに存在してもよい。鍵マネージャ440は、複数のセキュリティプロキシの秘密鍵を維持してもよい。
図5は、本開示のいくつかの実施形態による秘密鍵管理のための例示的なプロセス500を示す図である。図5に示すように、プロセス500は、ターゲットエンティティ511、セキュリティプロキシ531、鍵マネージャ541、およびソースエンティティ521を含んでもよい。これらの構成要素は、図4に示すように、ターゲットエンティティ410、セキュリティプロキシ430、鍵マネージャ440、およびソースエンティティ420にそれぞれ対応してもよい。
ターゲットエンティティ511とソースエンティティ521間のハンドシェイクが、相互認証のために開始されてもよい。ハンドシェイクメッセージは、セキュリティプロキシ531を介して、ターゲットエンティティ511とソースエンティティ521間で通信される。ハンドシェイクメッセージ(「第1のハンドシェイクメッセージ」とも称される)、例えば証明書検証のためのメッセージは、セキュリティプロキシ531の秘密鍵(「第1の秘密鍵」とも称される)を必要とする場合がある。
セキュリティプロキシ531は、ソースエンティティ521とターゲットエンティティ511間のハンドシェイクのコンテキスト情報510を取得し、そのコンテキスト情報を鍵マネージャ541に送信515する。コンテキスト情報は、ハンドシェイク中に交換された情報の一部または全部を含んでよい。例えば、コンテキスト情報は、ハンドシェイク中にターゲットエンティティ511、セキュリティプロキシ531、およびソースエンティティ521の間で通信されたメッセージ505、506を含んでよい。
いくつかの実施形態では、セキュリティプロキシ531は、コンテキスト情報の少なくとも一部として、ソースエンティティ521からハンドシェイクメッセージ(「第2のハンドシェイクメッセージ」とも称される)を受信してもよい。第2のハンドシェイクメッセージは、ターゲットエンティティ511に向けられ、ソースエンティティ521の秘密鍵(「第2の秘密鍵」とも称される)で署名される。一例として、第2のハンドシェイクメッセージは、証明書を検証するための証明書検証(CV)メッセージであってよい。CVメッセージは、ソースエンティティ521の秘密鍵に基づいて生成されるソースエンティティ521の署名を含んでよい。
第2のハンドシェイクメッセージを受信すると、セキュリティプロキシ531は、第2のハンドシェイクメッセージを鍵マネージャ541に送信することができる。さらに、いくつかの実施形態では、セキュリティプロキシ531は、さらに、ターゲットエンティティ511とセキュリティプロキシ531間で使用されるハンドシェイク鍵を鍵マネージャ541に送信してもよい。ハンドシェイク鍵は、ターゲットエンティティ511からの鍵交換情報に基づいて決定されてもよい。このように、鍵マネージャ541は、ハンドシェイク鍵で第1のハンドシェイクメッセージを暗号化してもよい。以下、これらの実施形態の一例について、図6を参照しながら説明する。
いくつかの実施形態では、セキュリティプロキシ531は、コンテキスト情報の少なくとも一部として、ターゲットエンティティ511から「ハロー」メッセージ(「第1のハローメッセージ」とも称される)を受信してもよい。第1のハローメッセージは、ハンドシェイクを開始するためにソースエンティティ521に向けられることがある。ターゲットエンティティ511がクライアントの場合、第1のハローメッセージは、クライアントハローメッセージであってもよい。第1のハローメッセージは、ターゲットエンティティ511とセキュリティプロキシ531間のハンドシェイクシーケンスを暗号化するための鍵交換情報を含んでいてもよい。例えば、第1のハローメッセージは、少なくとも、セキュリティプロキシ531との鍵交換のためのパラメータを示す鍵共有エントリを含んでよい。
ターゲットエンティティ511から第1のハローメッセージを受信すると、セキュリティプロキシ531は、第1のハローメッセージを鍵マネージャ541に送信してもよい。また、いくつかの実施形態では、セキュリティプロキシ531は、第1のハンドシェイクメッセージを生成するために必要な情報の一部を予め用意しておいてもよい。セキュリティプロキシ531は、第1のハローメッセージを受信する前に、ソースエンティティ521が関与する履歴ハンドシェイクの履歴コンテキスト情報(例えば、図4に示されるような履歴コンテキスト情報460など)を取得してもよい。履歴コンテキスト情報は、ソースエンティティ521からのハローメッセージ、ソースエンティティ521の証明書、ソースエンティティ521からの任意の関連するハンドシェイクメッセージを含んでよい。
履歴コンテキスト情報は、ソースエンティティ521が関与する任意の適切な履歴ハンドシェイクの間に取得されてもよい。一例として、履歴コンテキスト情報は、ソースエンティティ521が関与するハンドシェイクを、セキュリティプロキシ531が初めて提供するときに取得されてもよい。別の例として、履歴コンテキスト情報は、ソースエンティティ521が関与する最新のハンドシェイクの間に取得されてもよい。
いくつかの実施形態において、履歴コンテキスト情報は、履歴コンテキスト情報が取得されると、鍵マネージャ541に送信されてもよい。いくつかの実施形態では、履歴コンテキスト情報は、第1のハローメッセージとともに鍵マネージャ541に送信されてもよい。これらの実施形態の一例について、図7を参照して以下に説明する。
セキュリティプロキシ531からコンテキスト情報を受信515すると、鍵マネージャ541は、少なくともコンテキスト情報に基づいて、第1のハンドシェイクメッセージを生成520する。第1のハンドシェイクメッセージは、セキュリティプロキシ531の第1の秘密鍵(不図示)で署名される。秘密鍵は、例えば、図4に描かれているような秘密鍵450に対応してもよい。例えば、鍵マネージャ541は、第1の秘密鍵に基づいてセキュリティプロキシ531の署名を生成することができ、その署名を第1のハンドシェイクメッセージに含めることができる。
コンテキスト情報としてソースエンティティ521から第2のハンドシェイクメッセージを受信した上記実施形態において、鍵マネージャ541は、第2のハンドシェイクメッセージおよび第1の秘密鍵に基づいて、第1のハンドシェイクメッセージを生成520してもよい。例えば、鍵マネージャ541は、第2のハンドシェイクメッセージにおけるソースエンティティ521の署名を、セキュリティプロキシ531の署名に置き換えてもよい。
また、ターゲットエンティティ511とセキュリティプロキシ531間で使用されるハンドシェイク鍵が鍵マネージャ541に送信される場合、鍵マネージャ541は、ハンドシェイク鍵で第1ハンドシェイクメッセージを暗号化してもよい。
コンテキスト情報としてターゲットエンティティ511から第1のハローメッセージを受信515した上記実施形態において、鍵マネージャ541は、第1のハローメッセージおよび履歴コンテキスト情報に基づいて、第1のハンドシェイクメッセージを生成520してもよい。また、鍵マネージャ541は、第1の秘密鍵に基づいてセキュリティプロキシ531の署名を生成してよく、かかる署名を第1のハンドシェイクメッセージに含んでもよい。これらの実施形態において、第1のハローメッセージは、ターゲットエンティティ511に関する情報を提供することができ、一方、履歴コンテキスト情報は、ソースエンティティ521に関する情報を提供することができる。
また、ターゲットエンティティ511とセキュリティプロキシ531間で使用されるハンドシェイク鍵を決定するためのパラメータのセットがセキュリティプロキシ531から鍵マネージャ541に送信される場合、鍵マネージャ541は、パラメータのセットおよび第1のハローメッセージに基づいてハンドシェイク鍵を決定してもよい。例えば、パラメータのセットは、セキュリティプロキシ531によって決定された鍵共有エントリを含んでよく、第1のハローメッセージは、ターゲットエンティティ511によって決定された別の鍵共有エントリを含んでもよい。ハンドシェイク鍵は、これらの鍵共有エントリに基づいて決定されてもよい。そして、鍵マネージャ541は、ハンドシェイク鍵で第1のハンドシェイクメッセージを暗号化してもよい。
鍵マネージャ541は、第1のハンドシェイクメッセージを生成520した後、第1のハンドシェイクメッセージをセキュリティプロキシ531に送信525する。そして、セキュリティプロキシ531は、第1のハンドシェイクメッセージをターゲットエンティティ511に送信530する。鍵マネージャ541から受信した第1のハンドシェイクメッセージがハンドシェイク鍵で暗号化されている場合、セキュリティプロキシ531は、第1のハンドシェイクメッセージを直接ターゲットエンティティ511に転送530してもよい。鍵マネージャ541から受信した第1のハンドシェイクメッセージがハンドシェイク鍵で暗号化されていない場合、セキュリティプロキシ531は、まず、第1のハンドシェイクメッセージをハンドシェイク鍵で暗号化することができ、暗号化された第1のハンドシェイクメッセージをターゲットエンティティ511に送信530してもよい。
図5に示すように、ソースエンティティ521とターゲットエンティティ511間のハンドシェイクは、後続の手順で継続される。例えば、ターゲットエンティティ511とセキュリティプロキシ531間のハンドシェイクシーケンスが実行535されてよい。ソースエンティティ521とセキュリティプロキシ531間のハンドシェイクシーケンスが実行540されてもよい。
本開示の実施形態では、セキュリティプロキシが秘密鍵を保存、管理、および保護する必要はない。セキュリティプロキシの秘密鍵は、コンテナインスタンスに配布されることなく、一元的に保存され得る。そのため、秘密鍵の漏洩リスクを低減することができ、さらには回避することができる。そのため、より安全なクラウド環境を実現することができる。また、一元管理することで、セキュリティプロキシの更新や管理も鍵マネージャが行うことができる。このように、セキュリティプロキシの秘密鍵の更新および管理が容易になる。
上述したように、いくつかの実施形態では、ソースエンティティ521からの第2のハンドシェイクメッセージがコンテキスト情報として使用され得る。ここで、図6を参照する。図6は、本開示のいくつかの実施形態による秘密鍵管理のための例示的なプロセス600を示す図である。プロセス600は、プロセス500の1つの可能な実装として考慮され得る。図6に示すように、プロセス600は、ターゲットエンティティ611と、セキュリティプロキシ631と、鍵マネージャ641と、ソースエンティティ621とを含み得る。これらの構成要素は、図4に示すように、ターゲットエンティティ410、セキュリティプロキシ430、鍵マネージャ440、およびソースエンティティ420にそれぞれ対応してもよい。本開示の範囲に関して限定することなく議論の目的でのみ、プロセス600において、ソースエンティティ621はサーバであり、ターゲットエンティティ611はクライアントであり、第1および第2のハンドシェイクメッセージはCVメッセージである。
図6に示すように、ターゲットエンティティ611は、ターゲットエンティティ611とソースエンティティ621間のハンドシェイクを開始するために、セキュリティプロキシ631にクライアントハローメッセージ(「第1のクライアントハローメッセージ」とも称される)を送信605してもよい。第1のクライアントハローメッセージは、少なくとも、セキュリティプロキシ631との鍵交換のためのパラメータを示す鍵共有エントリ(「第1の鍵共有エントリ」とも称される)を含んでよい。第1のクライアントハローメッセージは、他の鍵交換情報、例えば、プロトコルバージョン、暗号アルゴリズム、をさらに含んでもよい。
セキュリティプロキシ631は、ソースエンティティ621との鍵交換のためのパラメータを示す別の鍵共有エントリ(「第2の鍵共有エントリ」とも称される)を決定610してもよい。セキュリティプロキシ631は、第1の鍵共有エントリを第2の鍵共有エントリに置き換えることによって更新されたクライアントハローメッセージ(「第2のクライアントハローメッセージ」とも称される)を生成することができ、第2のクライアントハローメッセージをソースエンティティ621に送信615することができる。
第2のクライアントハローメッセージを受信すると、ソースエンティティ621は、応答としてサーバハローメッセージ(これは「第1のサーバハローメッセージ」とも呼ばれる)をセキュリティプロキシ631に送信620することができる。第1のサーバハローメッセージは、少なくとも、セキュリティプロキシ631との鍵交換のためのパラメータを示す鍵共有エントリ(「第3の鍵共有エントリ」とも称される)を含んでいてもよい。
セキュリティプロキシ631は、ターゲットエンティティ611との鍵交換のためのパラメータを示す別の鍵共有エントリ(「第4の鍵共有エントリ」とも称される)を決定625してもよい。セキュリティプロキシ631は、第1および第4の鍵共有エントリに基づいて、ターゲットエンティティ611とセキュリティプロキシ631間で使用される第1のハンドシェイク鍵、ならびに第2および第3の鍵共有エントリに基づいて、ソースエンティティ621とセキュリティプロキシ631間で使用される第2のハンドシェイク鍵を決定630してもよい。セキュリティプロキシ631は、ターゲットエンティティ611に別のサーバハローメッセージ(「第2のサーバハローメッセージ」と称される)を送信635してもよい。第2のハローメッセージは、少なくとも第4の鍵共有エントリを含んでいてもよい。
ソースエンティティ621は、第1のサーバハローメッセージをセキュリティプロキシ631に送信620した後、ソースエンティティ621の証明書(この例ではサーバ証明書)をセキュリティプロキシ631に送信640してもよい。そして、セキュリティプロキシ631は、サーバ証明書をターゲットエンティティ611に転送645してもよい。
ソースエンティティ621は、さらに、サーバ証明書を検証するためのメッセージ(「オリジナルCVメッセージ」とも称される)をセキュリティプロキシ631に送信650してもよい。セキュリティプロキシ631は、少なくとも、オリジナルのCVメッセージをコンテキスト情報として鍵マネージャ641に送信655してもよい。いくつかの実施形態では、セキュリティプロキシ631は、さらに、ターゲットエンティティ611とセキュリティプロキシ631間で使用される第1のハンドシェイク鍵を鍵マネージャ641に送信してよい。セキュリティプロキシ631は、他の関連するコンテキスト情報を鍵マネージャ641に送信してもよい。
その後、鍵マネージャ641は、オリジナルのCVメッセージおよび秘密鍵(不図示)に基づいて、新しいCVメッセージを生成660することができる。秘密鍵は、例えば、図4に描かれているような秘密鍵450に対応してよい。例えば、新しいCVメッセージは、秘密鍵に基づいて生成された署名を含んでよい。第1のハンドシェイク鍵が鍵マネージャ641にも送信される場合、鍵マネージャ641は、秘密鍵で新たなCVメッセージを暗号化することができる。
そして、鍵マネージャ641は、新しいCVメッセージをセキュリティプロキシ631に送信665してよい。セキュリティプロキシ631は、新しいCVメッセージをターゲットエンティティ611に転送670してもよい。図6に示すように、ソースエンティティ621とターゲットエンティティ611間のハンドシェイクは、後続の手順で継続される。例えば、ターゲットエンティティ611とセキュリティプロキシ631間のハンドシェイクシーケンスは、実行675されてもよい。ソースエンティティ621とセキュリティプロキシ631間のハンドシェイクシーケンスは、実行680されてもよい。
ソースおよびターゲットエンティティ、例えばTLSサーバおよびTLSクライアントは、基本的に変更されない場合があり、したがって、ハンドシェイク間の唯一の違いは、鍵交換用のパラメータ、例えば、鍵共有エントリであることが認識されてきた。したがって、いくつかの実施形態では、第1のハンドシェイクメッセージを生成するために必要な情報の一部は、事前に準備されてもよい。
図7は、本開示のいくつかの実施形態による秘密鍵管理のための例示的なプロセス700を示す図である。プロセス700は、プロセス500の別の可能な実装として考慮されてもよい。図7に示すように、プロセス700は、ターゲットエンティティ711、セキュリティプロキシ731、鍵マネージャ741、およびソースエンティティ721を含み得る。これらの構成要素は、図4に示すように、ターゲットエンティティ410、セキュリティプロキシ430、鍵マネージャ440、およびソースエンティティ420にそれぞれ対応してもよい。範囲を限定しない議論のためのみに、プロセス700において、ソースエンティティ721はサーバであってもよく、ターゲットエンティティ711はクライアントであってもよく、第1および第2のハンドシェイクメッセージはCVメッセージであってもよい。
図7に示すように、セキュリティプロキシ731は、ソースエンティティ721を含む履歴ハンドシェイクの履歴コンテキスト情報(例えば、図4に描かれたような履歴コンテキスト情報460など)を取得705してもよい。この例では、履歴コンテキスト情報は、ソースエンティティ721からのサーバハローメッセージ(「以前のサーバハローメッセージ」とも称される)、およびソースエンティティ721のサーバ証明書(「以前のサーバ証明書」とも称される)を含み得る。例えば、セキュリティプロキシ731は、セキュリティプロキシ731が、ソースエンティティ721が関与するハンドシェイクを初めて提供するとき、またはソースエンティティ721が関与する最新のハンドシェイクの間に、ソースエンティティ721から以前のサーバハローメッセージと以前のサーバ証明書を受信してもよい。
セキュリティプロキシ731は、履歴コンテキスト情報を鍵マネージャ741に送信710してもよい。鍵マネージャ741は、履歴コンテキスト情報を、例えば、キャッシュまたは任意の適切な記憶装置に格納715してもよい。
いくつかの実施形態では、セキュリティプロキシ731は、ソースエンティティ721およびターゲットエンティティ711との鍵交換のためのパラメータを示す鍵共有エントリを予め決定してもよい。例えば、ソースエンティティ721との鍵交換のためのパラメータを示す第5の鍵共有エントリと、ターゲットエンティティ711との鍵交換のためのパラメータを示す第6の鍵共有エントリは、予めセキュリティプロキシ731によって準備されてもよい。さらに、セキュリティプロキシ731は、準備した鍵共有エントリを鍵マネージャ741に送信してもよい。
このように、セキュリティプロキシ731および鍵マネージャ741は、ターゲットエンティティ711とソースエンティティ721との間のハンドシェイクのために準備されてもよい。図7に示すように、ターゲットエンティティ711は、ターゲットエンティティ711とソースエンティティ721間のハンドシェイクを開始するために、セキュリティプロキシ731にクライアントハローメッセージ(「オリジナルのクライアントハローメッセージ」とも称される)を送信720してもよい。オリジナルクライアントハローメッセージは、少なくとも、セキュリティプロキシ731との鍵交換のためのパラメータを示す第7の鍵共有エントリを含んでいてもよい。
ターゲットエンティティ711からオリジナルのクライアントハローメッセージを受信720すると、2つのサブプロセス701および702を実行することができる。図7では、サブプロセス701および702が順番に描かれているが、これは単に図示を簡単にするためであり、701および702は並行して実行することができる。サブプロセス701において、セキュリティプロキシ731は、オリジナルのクライアントハローメッセージを鍵マネージャ741に直接送信725してもよい。鍵マネージャ741は、秘密鍵(不図示)で署名された第1のCVメッセージを生成730してもよい。秘密鍵は、例えば、図4に描かれているような秘密鍵450に対応してもよい。例えば、第1のCVメッセージは、オリジナルのクライアントハローメッセージ、以前のサーバハローメッセージ、および以前のサーバ証明書に基づいて生成されてもよい。第1のCVメッセージは、第1の秘密鍵に基づいて生成されたセキュリティプロキシ731の署名を含んでいてもよい。
いくつかの実施形態において、ターゲットエンティティ711との鍵交換のためのパラメータを示す第6の鍵共有エントリが鍵マネージャ741に送信される場合、鍵マネージャ741は、オリジナルのクライアントハローメッセージ内の第6の鍵共有エントリおよび第7の鍵共有エントリに基づいて、ターゲットエンティティ711とセキュリティプロキシ731間で使用されるハンドシェイク鍵(「第3のハンドシェイク鍵」とも称される)を決定してもよい。鍵マネージャ741は、第1のCVメッセージを第3のハンドシェイク鍵で暗号化してもよい。次に、鍵マネージャ741は、第1のCVメッセージをセキュリティプロキシ731に送信735してもよい。
図7に示すように、ターゲットエンティティ711からオリジナルのクライアントハローメッセージを受信720すると、セキュリティプロキシ731は、オリジナルのクライアントハローメッセージ内の第6の鍵共有エントリおよび第7の鍵共有エントリに基づいて第3のハンドシェイク鍵を決定740してもよい。いくつかの実施形態において、セキュリティプロキシ731は、オリジナルのクライアントハローメッセージに対する応答として、サーバハローメッセージ(「第2のハローメッセージ」と称されることがある)を生成してもよい。このサーバハローメッセージは、以前のサーバハローメッセージに基づいて生成されてよく、予め準備された第6の鍵共有エントリを含んでもよい。そして、セキュリティプロキシ731は、このサーバハローメッセージをターゲットエンティティ711に送信745してもよい。また、セキュリティプロキシ731は、第1のCVメッセージと以前のサーバ証明書をターゲットエンティティ711に送信750してもよい。
次に、サブプロセス702を説明する。ターゲットエンティティ711からオリジナルのクライアントハローメッセージを受信720すると、セキュリティプロキシ731は、オリジナルのクライアントハローメッセージおよび予め準備された第5の鍵共有エントリに基づいて、新たなクライアントハローメッセージを生成してもよい。新たなクライアントハローメッセージは、オリジナルのクライアントハローメッセージ内の第7の鍵共有エントリを第5の鍵共有エントリに置き換えることによって生成されてよい。そして、セキュリティプロキシ731は、新しいクライアントハローメッセージをソースエンティティ721に送信755してもよい。
ソースエンティティ721は、応答として、セキュリティプロキシ731にサーバハローメッセージを送信760してもよい。このサーバハローメッセージは、セキュリティプロキシ731との鍵交換のためのパラメータを示す第8の鍵共有エントリを含んでいてもよい。セキュリティプロキシ731は、第5の鍵共有エントリおよび第8の鍵共有エントリに基づいて、ソースエンティティ721とセキュリティプロキシ731間で使用されるハンドシェイク鍵を決定765してもよい。その後、ソースエンティティ721は、新しいサーバ証明書を送信770してよく、新しいCVメッセージをセキュリティプロキシ731に送信775してもよい。いくつかの実施形態では、このサーバハローメッセージおよび新しいサーバ証明書は、履歴コンテキスト情報を更新するために使用されてもよい。例えば、新しいサーバ証明書は、以前のサーバ証明書を置き換えてもよい。このように、サブプロセス702は、完了したと考えることができる。
図7に示すように、ソースエンティティ721とターゲットエンティティ711間のハンドシェイクは、サブプロセス701および702の両方が完了した後、後続の手順で継続される。例えば、ターゲットエンティティ711とセキュリティプロキシ731間のハンドシェイクシーケンスは、実行780されてよい。ソースエンティティ721とセキュリティプロキシ731間のハンドシェイクシーケンスは、実行785されてよい。
そのような実施形態では、ターゲットエンティティ711とセキュリティプロキシ731間のサブプロセス701に示すようなハンドシェイクシーケンスは、以前のサーバハローメッセージおよび以前のサーバ証明書によって実行されることができる。セキュリティプロキシ731は、ソースエンティティ721からの新しいサーバハローメッセージおよび新しいCVメッセージを待つ必要がないようにしてもよい。このようにすることで、ハンドシェイクに要する時間を短縮することができ、ハンドシェイクの効率を向上させることができる。
図8は、本開示のいくつかの実施形態による例示的な方法800のフローチャートを描いている。例えば、方法800は、図4に示されるように、セキュリティプロキシ430において実施されてもよい。方法800はまた、追加のブロック(不図示)を含んでよく、もしくは図示されたブロックを省略してよく、またはその両方であってよいことが理解されるであろう。本明細書で説明される本開示の範囲は、この態様に限定されない。
ブロック810において、セキュリティプロキシ430は、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報を取得する。ブロック820において、セキュリティプロキシは、鍵マネージャにコンテキスト情報を送信する。鍵マネージャは、セキュリティプロキシの第1の秘密鍵を保持する。ブロック830において、セキュリティプロキシは、鍵マネージャから第1のハンドシェイクメッセージを受信する。第1のハンドシェイクメッセージは、少なくともコンテキスト情報に基づいて生成され、第1の秘密鍵で署名される。ブロック840において、セキュリティプロキシ430は、第1のハンドシェイクメッセージをターゲットエンティティに送信する。
いくつかの実施形態において、セキュリティプロキシは、コンテキスト情報の少なくとも一部として、ソースエンティティから第2のハンドシェイクメッセージを受信してよい。第2のハンドシェイクメッセージは、ターゲットエンティティに向けられてよく、ソースエンティティの第2の秘密鍵で署名されてよい。例えば、ソースエンティティからのCVメッセージは、コンテキスト情報の少なくとも一部として受信されてよい。いくつかの実施形態では、セキュリティプロキシは、さらに、セキュリティプロキシとターゲットエンティティ間で使用されるハンドシェイク鍵を鍵マネージャに送信してよい。第1のハンドシェイクメッセージは、ハンドシェイク鍵で暗号化されてもよい。
いくつかの実施形態では、セキュリティプロキシは、コンテキスト情報の少なくとも一部として、ターゲットエンティティから第1のハローメッセージを受信してよい。第1のハローメッセージは、ハンドシェイクを開始するためにソースエンティティに向けられる。いくつかの実施形態において、セキュリティプロキシは、さらに、ソースエンティティが関与する履歴ハンドシェイクの履歴コンテキスト情報を取得してよく、履歴コンテキスト情報を鍵マネージャに送信してもよい。例えば、履歴コンテキスト情報は、ソースエンティティからのサーバハローおよびサーバ証明書を含んでよい。これらの実施形態において、第1のハンドシェイクメッセージは、履歴コンテキスト情報および第1のハローメッセージに基づいて生成されてもよい。
いくつかの実施形態では、セキュリティプロキシは、さらに、履歴コンテキスト情報に基づいて、第1のハローメッセージに対する応答として第2のハローメッセージを決定してもよい。セキュリティプロキシは、第2のハローメッセージをターゲットエンティティに送信してもよい。
いくつかの実施形態では、セキュリティプロキシは、さらに、セキュリティプロキシとターゲットエンティティ間で使用されるハンドシェイク鍵を決定するためのパラメータのセットを鍵マネージャに送信してもよい。これらの実施形態では、第1のハンドシェイクメッセージは、パラメータのセットおよび第1のハローメッセージに基づいて決定されたハンドシェイク鍵で暗号化されてもよい。
図9は、本開示のいくつかの実施形態による例示的な方法900のフローチャートを示す図である。例えば、方法900は、図4に示されるような鍵マネージャ440などの鍵マネージャで実施されてもよい。方法900はまた、追加のブロック(不図示)を含んでよく、もしくは図示されたブロックを省略してもよく、またはその両方であってよいことを理解されたい。本明細書に記載された本開示の範囲は、この態様に限定されない。
ブロック910において、鍵マネージャは、セキュリティプロキシからソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報を受信する。ブロック920において、鍵マネージャは、少なくともコンテキスト情報に基づいて、ターゲットエンティティに向けられた第1のハンドシェイクメッセージを生成する。第1のハンドシェイクメッセージは、鍵マネージャによって保持されるセキュリティプロキシの第1の秘密鍵で署名される。ブロック930において、鍵マネージャは、第1のハンドシェイクメッセージをセキュリティプロキシに送信する。
いくつかの実施形態では、鍵マネージャは、コンテキスト情報の少なくとも一部として、セキュリティプロキシから第2のハンドシェイクメッセージを受信してもよい。第2のハンドシェイクメッセージは、ターゲットエンティティに向けられてよく、ソースエンティティの第2の秘密鍵で署名されてもよい。例えば、CVメッセージは、コンテキスト情報の少なくとも一部として受信されてもよい。いくつかの実施形態では、鍵マネージャは、さらに、セキュリティプロキシとターゲットエンティティ間で使用されるハンドシェイク鍵をセキュリティプロキシからさらに受信してもよい。鍵マネージャは、ハンドシェイク鍵で第1のハンドシェイクメッセージを暗号化してもよい。
いくつかの実施形態では、鍵マネージャは、コンテキスト情報の少なくとも一部として、セキュリティプロキシから第1のハローメッセージを受信してよい。第1のハローメッセージは、ハンドシェイクを開始するためのソースエンティティに向けられることがある。いくつかの実施形態では、鍵マネージャは、さらに、セキュリティプロキシから、ソースエンティティが関与する履歴ハンドシェイクの履歴コンテキスト情報を受信してもよい。例えば、履歴コンテキスト情報は、ソースエンティティからのサーバハローおよびサーバ証明書を含んでよい。鍵マネージャは、履歴コンテキスト情報および第1のハローメッセージに基づいて、第1のハンドシェイクメッセージを生成してよい。
いくつかの実施形態では、鍵マネージャは、さらに、セキュリティプロキシから、セキュリティプロキシとターゲットエンティティ間で使用されるハンドシェイク鍵を決定するためのパラメータのセットを受信してよく、パラメータのセットおよび第1のハローメッセージに基づいてハンドシェイク鍵を決定してもよい。鍵マネージャは、第1のハンドシェイクメッセージをハンドシェイク鍵で暗号化してもよい。
本開示の実施形態による秘密鍵管理またはセキュリティプロキシ/鍵マネージャの処理は、図1のコンピュータシステム/サーバ12によって実装され得る。
ここで図10を参照すると、例えばプロセス800および900を含む本開示の様々な態様を実行するように構成され得る例示的なコンピュータシステム1000のハイレベルブロック図が示されている。例示的なコンピュータシステム1000は、本開示の実施形態に従って、本明細書に記載の方法またはモジュール、および任意の関連する機能または動作の1または複数を実施する際に(例えば、コンピュータの1または複数のプロセッサ回路またはコンピュータプロセッサを含むプロセッサのセットを使用して)使用されてもよい。プロセッサのセットによって実行される動作は、単一のプロセッサ、プロセッサのグループのうちの1つ、プロセッサのグループのすべて、またはその間の任意の量によって実行されてもよい。いくつかの実施形態では、コンピュータシステム1000の主要構成要素は、1または複数のCPU1002、メモリサブシステム1008、端末インタフェース1016、ストレージインタフェース1018、I/O(入力/出力)デバイスインタフェース1020、およびネットワークインタフェース1022を含んでよく、これらのすべては、メモリバス1006、I/Oバス1014、およびI/Oバスインタフェースユニット1012を介して構成要素間で通信可能に直接的または間接的に結合され得る。
コンピュータシステム1000は、1または複数の汎用プログラマブル中央処理装置(CPU)1002を含んでよく、その一部または全部は、1または複数のコア1004A、1004B、1004C、および1004Dを含んでよく、ここでは一般的にCPU1002と称される。いくつかの実施形態では、コンピュータシステム1000は、比較的大規模なシステムに典型的な複数のプロセッサを含んでもよいが、他の実施形態では、コンピュータシステム1000は、代替的に、単一のCPUシステムであってもよい。各CPU1002は、メモリサブシステム1008に格納された命令をCPUコア1004上で実行してもよく、1または複数レベルのオンボードキャッシュを含んでいてもよい。
いくつかの実施形態では、メモリサブシステム1008は、データおよびプログラムを格納するためのランダムアクセス半導体メモリ、記憶装置、または記憶媒体(揮発性または不揮発性のいずれか)を含んでよい。いくつかの実施形態では、メモリサブシステム1008は、コンピュータシステム1000の仮想メモリ全体を表してよく、コンピュータシステム1000に結合された、またはネットワークを介して接続された他のコンピュータシステムの仮想メモリも含んでよい。メモリサブシステム1008は、概念的に単一のモノリシックな実体であってもよいが、いくつかの実施形態では、メモリサブシステム1008は、キャッシュおよび他のメモリデバイスの階層など、より複雑な配置であってもよい。例えば、メモリは、複数のレベルのキャッシュに存在してもよく、これらのキャッシュは、1つのキャッシュが命令を保持し、別のキャッシュが1または複数のプロセッサによって使用される非命令データを保持するように、機能によってさらに分割されてもよい。メモリは、様々ないわゆる不均一メモリアクセス(NUMA)コンピュータアーキテクチャのいずれかにおいて知られているように、さらに分散されて異なるCPUまたはCPUのセットに関連付けられることがある。いくつかの実施形態では、主記憶またはメモリサブシステム804は、CPU1002によって使用されるメモリの制御および流れのための要素を含んでよい。これは、メモリコントローラ1010を含んでもよい。
メモリバス1006は、図10において、CPU1002、メモリサブシステム1008、およびI/Oバスインタフェース1012間の直接通信経路を提供する単一のバス構造として示されているが、メモリバス1006は、いくつかの実施形態において、階層的、スターまたはウェブ構成におけるポイントツーポイントリンク、複数の階層的バス、並列および冗長経路、または他の適切なタイプの構成など、種々の形態のいずれで配置してもよい複数の異なるバスまたは通信経路を含む場合がある。さらに、I/Oバスインタフェース1012およびI/Oバス1014は単一のそれぞれのユニットとして示されているが、コンピュータシステム1000は、いくつかの実施形態において、複数のI/Oバスインタフェースユニット1012、複数のI/Oバス1014、または両方を含んでいてもよい。さらに、複数のI/Oインタフェースユニットが示されているが、これは、I/Oバス1014を様々なI/Oデバイスに走る様々な通信経路から分離するが、他の実施形態では、I/Oデバイスの一部または全部が1または複数のシステムI/Oバスに直接接続されてもよい。
いくつかの実施形態では、コンピュータシステム1000は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、または、直接的なユーザインタフェースをほとんどまたは全く持たないが他のコンピュータシステム(クライアント)からの要求を受信するサーバコンピュータまたは同様のデバイスであってよい。さらに、いくつかの実施形態では、コンピュータシステム1000は、デスクトップコンピュータ、ポータブルコンピュータ、ラップトップまたはノートブックコンピュータ、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、モバイルデバイス、または任意の他の適切なタイプの電子デバイスとして実装されてもよい。
図10は、例示的なコンピュータシステム1000の代表的な主要構成要素を描写することを意図していることに留意されたい。しかしながら、いくつかの実施形態では、個々の構成要素は、図10に表されるよりも大きいまたは小さい複雑さを有してよく、図10に示される構成要素以外のまたはそれに加えて構成要素が存在してもよく、そのような構成要素の数、タイプ、および構成は異なってもよい。
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読プログラム命令が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。開示される実施形態の範囲および精神から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に開示される実施形態を理解できるようにするために選択された。
いくつかの実施形態では、メモリサブシステム1008は、データおよびプログラムを格納するためのランダムアクセス半導体メモリ、記憶装置、または記憶媒体(揮発性または不揮発性のいずれか)を含んでよい。いくつかの実施形態では、メモリサブシステム1008は、コンピュータシステム1000の仮想メモリ全体を表してよく、コンピュータシステム1000に結合された、またはネットワークを介して接続された他のコンピュータシステムの仮想メモリも含んでよい。メモリサブシステム1008は、概念的に単一のモノリシックな実体であってもよいが、いくつかの実施形態では、メモリサブシステム1008は、キャッシュおよび他のメモリデバイスの階層など、より複雑な配置であってもよい。例えば、メモリは、複数のレベルのキャッシュに存在してもよく、これらのキャッシュは、1つのキャッシュが命令を保持し、別のキャッシュが1または複数のプロセッサによって使用される非命令データを保持するように、機能によってさらに分割されてもよい。メモリは、様々ないわゆる不均一メモリアクセス(NUMA)コンピュータアーキテクチャのいずれかにおいて知られているように、さらに分散されて異なるCPUまたはCPUのセットに関連付けられることがある。いくつかの実施形態では、主記憶またはメモリサブシステム1008は、CPU1002によって使用されるメモリの制御および流れのための要素を含んでよい。これは、メモリコントローラ1010を含んでもよい。

Claims (23)

  1. セキュリティプロキシにおけるプロセッサのセットによって、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報を取得することと、
    前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記セキュリティプロキシから鍵マネージャに前記コンテキスト情報を送信することであって、前記鍵マネージャは前記セキュリティプロキシの第1の秘密鍵を維持する、送信することと、
    前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記鍵マネージャから第1のハンドシェイクメッセージを受信することであって、前記第1のハンドシェイクメッセージは、少なくとも前記コンテキスト情報に基づいて生成され、前記第1の秘密鍵で署名される、受信することと、
    前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記第1のハンドシェイクメッセージを前記ターゲットエンティティに送信することと、
    を含む、方法。
  2. 前記コンテキスト情報を取得することは、
    前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記コンテキスト情報の少なくとも一部として、前記ソースエンティティから第2のハンドシェイクメッセージを受信することであって、前記第2のハンドシェイクメッセージは、前記ターゲットエンティティに向けられ、前記ソースエンティティの第2の秘密鍵で署名される、受信すること
    を含む、請求項1に記載の方法。
  3. 前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記セキュリティプロキシと前記ターゲットエンティティ間で使用されるハンドシェイク鍵を前記鍵マネージャに送信することであって、前記第1のハンドシェイクメッセージは、前記ハンドシェイク鍵で暗号化される、送信すること
    をさらに含む、請求項2に記載の方法。
  4. 前記コンテキスト情報を取得することは、
    前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記コンテキスト情報の少なくとも一部として、前記ターゲットエンティティから第1のハローメッセージを受信することであって、前記第1のハローメッセージは、前記ハンドシェイクを開始するために前記ソースエンティティに向けられる、受信すること
    を含む、請求項1に記載の方法。
  5. 前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記ソースエンティティが関与する履歴ハンドシェイクの履歴コンテキスト情報を取得することと、
    前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記履歴コンテキスト情報を前記鍵マネージャに送信することであって、前記第1のハンドシェイクメッセージは、前記履歴コンテキスト情報および前記第1のハローメッセージに基づいて生成される、送信することと、
    をさらに含む、請求項4に記載の方法。
  6. 前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記履歴コンテキスト情報に基づいて、前記第1のハローメッセージに対する応答として第2のハローメッセージを決定することと、
    前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記ターゲットエンティティに前記第2のハローメッセージを送信することと、
    をさらに含む、請求項5に記載の方法。
  7. 前記セキュリティプロキシにおけるプロセッサの前記セットによって、前記セキュリティプロキシと前記ターゲットエンティティ間で使用されるハンドシェイク鍵を決定するためのパラメータのセットを前記鍵マネージャに送信することであって、前記第1のハンドシェイクメッセージは、パラメータの前記セットおよび前記第1のハローメッセージに基づいて決定された前記ハンドシェイク鍵で暗号化される、送信すること
    をさらに含む、請求項4に記載の方法。
  8. 鍵マネージャにおけるプロセッサのセットによって、セキュリティプロキシからソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報を受信することと、
    前記鍵マネージャにおけるプロセッサの前記セットによって、少なくとも前記コンテキスト情報に基づいて、前記ターゲットエンティティに向けられた第1のハンドシェイクメッセージを生成することであって、前記第1のハンドシェイクメッセージは、前記鍵マネージャによって維持される前記セキュリティプロキシの第1の秘密鍵で署名される、生成することと、
    前記鍵マネージャにおけるプロセッサの前記セットによって、前記セキュリティプロキシに前記第1のハンドシェイクメッセージを送信することと、
    を含む、方法。
  9. 前記コンテキスト情報を受信することは、
    前記鍵マネージャにおけるプロセッサの前記セットによって、前記コンテキスト情報の少なくとも一部として、前記セキュリティプロキシから第2のハンドシェイクメッセージを受信することであって、前記第2のハンドシェイクメッセージは、前記ターゲットエンティティに向けられ、前記ソースエンティティの第2の秘密鍵で署名される、受信すること
    を含む、請求項8に記載の方法。
  10. 前記鍵マネージャにおけるプロセッサの前記セットによって、前記セキュリティプロキシと前記ターゲットエンティティ間で使用されるハンドシェイク鍵を前記セキュリティプロキシから受信することをさらに含み、
    前記第1のハンドシェイクメッセージを生成することは、前記鍵マネージャにおけるプロセッサの前記セットによって、前記第1のハンドシェイクメッセージを前記ハンドシェイク鍵で暗号化することを含む、
    請求項9に記載の方法。
  11. 前記コンテキスト情報を受信することは、
    前記鍵マネージャにおけるプロセッサの前記セットによって、前記コンテキスト情報の少なくとも一部として、前記セキュリティプロキシから第1のハローメッセージを受信することであって、前記第1のハローメッセージは、前記ハンドシェイクを開始するために前記ソースエンティティに向けられる、受信すること
    を含む、請求項8に記載の方法。
  12. 前記鍵マネージャにおけるプロセッサの前記セットによって、前記セキュリティプロキシから、前記ソースエンティティが関与する履歴ハンドシェイクの履歴コンテキスト情報を受信することをさらに含み、
    前記第1のハンドシェイクメッセージを生成することは、前記鍵マネージャにおけるプロセッサの前記セットによって、前記履歴コンテキスト情報および前記第1のハローメッセージに基づいて、前記第1のハンドシェイクメッセージを生成することを含む、
    請求項11に記載の方法。
  13. 前記鍵マネージャにおけるプロセッサの前記セットによって、前記セキュリティプロキシから、前記セキュリティプロキシと前記ターゲットエンティティ間で使用されるハンドシェイク鍵を決定するためのパラメータのセットを受信することと、
    前記鍵マネージャにおけるプロセッサの前記セットによって、パラメータの前記セットおよび前記第1のハローメッセージに基づいて、前記ハンドシェイク鍵を決定することと、
    をさらに含み、
    前記第1のハンドシェイクメッセージを生成することは、前記鍵マネージャにおけるプロセッサの前記セットによって、前記第1のハンドシェイクメッセージを前記ハンドシェイク鍵で暗号化することを含む、
    請求項11に記載の方法。
  14. プロセッサと、
    前記プロセッサと通信するメモリとを含み、前記メモリは、前記プロセッサによって実行されるとき、前記プロセッサに、
    セキュリティプロキシにおいて、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報を取得することと、
    前記セキュリティプロキシから鍵マネージャに前記コンテキスト情報を送信することであって、前記鍵マネージャは前記セキュリティプロキシの第1の秘密鍵を維持する、送信することと、
    前記鍵マネージャから第1のハンドシェイクメッセージを受信することであって、前記第1のハンドシェイクメッセージは、少なくとも前記コンテキスト情報に基づいて生成され、前記第1の秘密鍵で署名される、受信することと、
    前記第1のハンドシェイクメッセージを前記ターゲットエンティティに送信することと、
    を実行させるよう構成されるプログラム命令を含む、
    システム。
  15. 前記コンテキスト情報を取得することは、前記コンテキスト情報の少なくとも一部として、前記ソースエンティティから第2のハンドシェイクメッセージを受信することであって、前記第2のハンドシェイクメッセージは、前記ターゲットエンティティに向けられ、前記ソースエンティティの第2の秘密鍵で署名される、受信すること
    を含む、請求項14に記載のシステム。
  16. 前記CPUは、さらに、前記セキュリティプロキシと前記ターゲットエンティティ間で使用されるハンドシェイク鍵を前記鍵マネージャに送信することであって、前記第1のハンドシェイクメッセージは、前記ハンドシェイク鍵で暗号化される、送信すること
    を行うように構成される、
    請求項15に記載のシステム。
  17. 前記コンテキスト情報を取得することは、前記コンテキスト情報の少なくとも一部として、前記ターゲットエンティティから第1のハローメッセージを受信することであって、前記第1のハローメッセージは、前記ハンドシェイクを開始するために、前記ソースエンティティに向けられる、受信すること
    を含む、請求項14に記載のシステム。
  18. 前記CPUは、さらに、
    前記ソースエンティティが関与する履歴ハンドシェイクの履歴コンテキスト情報を取得することと、
    前記履歴コンテキスト情報を前記鍵マネージャに送信することであって、前記第1のハンドシェイクメッセージは、前記履歴コンテキスト情報および前記第1のハローメッセージに基づいて生成される、送信することと、
    を行うように構成される、
    請求項17に記載のシステム。
  19. 前記CPUは、さらに、
    前記履歴コンテキスト情報に基づいて、前記第1のハローメッセージに対する応答として第2のハローメッセージを決定することと、
    前記ターゲットエンティティに前記第2のハローメッセージを送信することと、
    を行うように構成される、
    請求項18に記載のシステム。
  20. 前記CPUは、さらに、
    前記セキュリティプロキシと前記ターゲットエンティティ間で使用されるハンドシェイク鍵を決定するためのパラメータのセットを前記鍵マネージャに送信することであって、前記第1のハンドシェイクメッセージは、パラメータの前記セットおよび前記第1のハローメッセージに基づいて決定された前記ハンドシェイク鍵で暗号化される、送信すること
    を行うように構成される、
    請求項17に記載のシステム。
  21. プロセッサと、
    前記プロセッサと通信するメモリとを含み、前記メモリは、前記プロセッサによって実行されるとき、前記プロセッサに、
    鍵マネージャにおいて、ソースエンティティとターゲットエンティティ間のハンドシェイクのコンテキスト情報をセキュリティプロキシから受信することと、
    前記鍵マネージャにおいて、少なくとも前記コンテキスト情報に基づいて、前記ターゲットエンティティに向けられた第1のハンドシェイクメッセージを生成することであって、前記第1のハンドシェイクメッセージは、前記鍵マネージャによって維持される前記セキュリティプロキシの第1の秘密鍵で署名される、生成することと、
    前記鍵マネージャにおいて、前記セキュリティプロキシに前記第1のハンドシェイクメッセージを送信することと、
    を実行させるよう構成されるプログラム命令を含む、
    システム。
  22. 前記プログラムがコンピュータ上で実行されるとき、請求項1~7のいずれか1項に記載の方法ステップを実行するように適合されたプログラムコードを含む、コンピュータプログラム。
  23. 前記プログラムがコンピュータ上で実行されるとき、請求項8~13のいずれか1項に記載の方法ステップを実行するように適合されたプログラムコードを含む、コンピュータプログラム。
JP2023528265A 2020-11-18 2021-11-04 秘密鍵管理 Pending JP2023549598A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/950,993 2020-11-18
US16/950,993 US11968293B2 (en) 2020-11-18 2020-11-18 Private key management
PCT/CN2021/128729 WO2022105617A1 (en) 2020-11-18 2021-11-04 Private key management

Publications (1)

Publication Number Publication Date
JP2023549598A true JP2023549598A (ja) 2023-11-28

Family

ID=81588064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023528265A Pending JP2023549598A (ja) 2020-11-18 2021-11-04 秘密鍵管理

Country Status (6)

Country Link
US (1) US11968293B2 (ja)
JP (1) JP2023549598A (ja)
CN (1) CN116491101A (ja)
DE (1) DE112021005237T5 (ja)
GB (1) GB2615676B (ja)
WO (1) WO2022105617A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10666640B2 (en) * 2017-12-20 2020-05-26 Cisco Technology, Inc. Semi-active probing framework to gather threat intelligence for encrypted traffic and learn about devices

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657390A (en) * 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
JP3595109B2 (ja) * 1997-05-28 2004-12-02 日本ユニシス株式会社 認証装置、端末装置、および、それら装置における認証方法、並びに、記憶媒体
US7065642B2 (en) * 2000-12-19 2006-06-20 Tricipher, Inc. System and method for generation and use of asymmetric crypto-keys each having a public portion and multiple private portions
US20020116637A1 (en) * 2000-12-21 2002-08-22 General Electric Company Gateway for securely connecting arbitrary devices and service providers
US20040218762A1 (en) 2003-04-29 2004-11-04 Eric Le Saint Universal secure messaging for cryptographic modules
US8601566B2 (en) * 2001-10-23 2013-12-03 Intel Corporation Mechanism supporting wired and wireless methods for client and server side authentication
US8028329B2 (en) * 2005-06-13 2011-09-27 Iamsecureonline, Inc. Proxy authentication network
US8316429B2 (en) * 2006-01-31 2012-11-20 Blue Coat Systems, Inc. Methods and systems for obtaining URL filtering information
US9055107B2 (en) 2006-12-01 2015-06-09 Microsoft Technology Licensing, Llc Authentication delegation based on re-verification of cryptographic evidence
US8862889B2 (en) 2011-07-02 2014-10-14 Eastcliff LLC Protocol for controlling access to encryption keys
US9264892B2 (en) * 2013-07-03 2016-02-16 Verizon Patent And Licensing Inc. Method and apparatus for attack resistant mesh networks
US10178181B2 (en) * 2014-04-02 2019-01-08 Cisco Technology, Inc. Interposer with security assistant key escrow
US9184911B2 (en) * 2014-04-08 2015-11-10 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
KR101563562B1 (ko) 2014-07-11 2015-10-27 숭실대학교산학협력단 Ssl/tls 인증 장치 및 방법
US9854000B2 (en) * 2014-11-06 2017-12-26 Cisco Technology, Inc. Method and apparatus for detecting malicious software using handshake information
CN109302369B (zh) 2017-07-24 2021-03-16 贵州白山云科技股份有限公司 一种基于密钥验证的数据传输方法及装置
CN110247803B (zh) 2019-06-20 2022-05-20 成都积微物联集团股份有限公司 一种针对网络管理协议SNMPv3的协议优化架构及其方法
CN113595967A (zh) * 2020-04-30 2021-11-02 深信服科技股份有限公司 数据识别方法、设备、存储介质及装置

Also Published As

Publication number Publication date
WO2022105617A1 (en) 2022-05-27
GB2615676A (en) 2023-08-16
GB2615676B (en) 2024-01-03
CN116491101A (zh) 2023-07-25
US11968293B2 (en) 2024-04-23
US20220158824A1 (en) 2022-05-19
GB202306194D0 (en) 2023-06-14
DE112021005237T5 (de) 2023-08-24

Similar Documents

Publication Publication Date Title
US11991273B2 (en) Storage device key management for encrypted host data
US10764291B2 (en) Controlling access between nodes by a key server
US11563588B2 (en) Securing a path at a selected node
US10833860B2 (en) Shared key processing by a host to secure links
US10833856B2 (en) Automatic re-authentication of links using a key server
US11025413B2 (en) Securing a storage network using key server authentication
US11522681B2 (en) Securing a path at a node
US10567373B2 (en) Establishing security over converged Ethernet with TCP credential appropriation
US11038671B2 (en) Shared key processing by a storage device to secure links
US11082413B2 (en) Secure network connections
US20180309738A1 (en) Data access levels
US12088567B2 (en) Distribution of private session key to network communication device for secured communications
US20200296089A1 (en) Validating containers on a microservice framework
US11924179B2 (en) API based distribution of private session key to network communication device for secured communications
US20230119304A1 (en) Post Quantum Secure Ingress/Egress Network Communication
US10182121B2 (en) Cookie based session timeout detection and management
WO2024032312A1 (en) Distribution of a cryptographic service provided private session key to network communication device for secured communications
WO2022105617A1 (en) Private key management
US11032073B2 (en) Seamless abort and reinstatement of TLS sessions
US20240048373A1 (en) Distribution of private session key to a network communication device for secured rdma communications
WO2023213168A1 (en) Access configuration in hybrid network environments

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230616

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230724

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240411