JP2023516130A - エンドポイント・インスタンスの間のセキュアなプライベート・キー分散 - Google Patents

エンドポイント・インスタンスの間のセキュアなプライベート・キー分散 Download PDF

Info

Publication number
JP2023516130A
JP2023516130A JP2022550148A JP2022550148A JP2023516130A JP 2023516130 A JP2023516130 A JP 2023516130A JP 2022550148 A JP2022550148 A JP 2022550148A JP 2022550148 A JP2022550148 A JP 2022550148A JP 2023516130 A JP2023516130 A JP 2023516130A
Authority
JP
Japan
Prior art keywords
instance
signing key
key
authorization
private
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
JP2022550148A
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 JP2023516130A publication Critical patent/JP2023516130A/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/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Abstract

プライベート署名キーを認可インスタンスの間に分散させるための、方法、コンピュータ・プログラム製品、及びシステム。本方法は、複数の認可インスタンスを構成ファイルに登録することと、認可インスタンスの各々によってホスト・インスタンス・キー・ペアを生成することとを含む。本方法はさらに、パブリック・ホスト・キーを共用データベースに格納することと、認可インスタンスのうちの1つを署名キー・リーダ・インスタンスになるように選ぶこととを含む。本法は、署名キー・リーダ・インスタンスにより、署名キー・ペアを生成することを含む。署名キー・ペアは、パブリック署名キー及びプライベート署名キーを含む。本方法はさらに、パブリック署名キーを共用データベースに格納すること、暗号化プライベート署名キーを、認可インスタンスのうちのリクエスト中の認可インスタンスへ送信することを含む。本方法はさらに、リクエスト中の認可インスタンスによって生成されたプライベート・ホスト・キーを用いて、暗号化プライベート署名キーを復号することを含む。

Description

本開示は、プライベート・キー分散に関し、より具体的には、アクセス・トークンを生成して検証するために用いられるエンドポイント・インスタンスの間のプライベート・キー分散を提供することに関する。
ウェブ・アプリケーション・プログラミング・インタフェース(API)は、そのサービス及びリソースに対するアクセス権を与える前に、ユーザに認可要件を課すことができる。ウェブAPIは、認可エンドポイントを用いて、検証済み証明(verified credentials)を有するユーザのためのアクセス・トークンを生成することができる。各々のその後のリクエストにおいて、ユーザは、ウェブAPIによって提供されるルート、サービス及びリソースへのアクセス権を得るために、アクセス・トークンを提供することができる。これらのアクセス・トークンは、ジャバスクリプト・オブジェクト・ノーテーション(JSON)ウェブ・トークン(JWT)の形式にすることができる。JWTは、ヘッダ、ペイロード、及び署名を含むことができる。ヘッダは、用いられているトークンのタイプに関するメタデータと、そのコンテンツを保護するために用いられる暗号化アルゴリズムとを含む。ペイロードは、許容されるべきパーミッションに関するステートメントである、1組のクレームを含むことができる。署名は、トークンが信頼できることを検証するため、及び、それらが改竄されていないことを保証するために、用いることができる。
サービス・クラスタは、サーバ・アプリケーションをサポートし、単一システムとして作動する一群のコンピュータである。ウェブAPIをサービス・クラスタ内にデプロイして、クラスタ内の種々のコンピュータの間にトラフィックを分散させることができる。トラフィックの分散は、負荷分散(load balancing)を促進し、高可用性を提供し、従来のサーバ実装よりも短いレイテンシを提供することができる。
本開示の実施形態は、認可インスタンス(authorization instance)の間にプライベート署名キーを分散させるためのコンピュータ実施の方法を含む。このコンピュータ実施の方法は、複数の認可インスタンスを構成ファイルに登録することを含む。認可インスタンスは、共通サービス(common service)に参加する。共通サービスは、アクセス・トークンの生成及び検証である。コンピュータ実施の方法は、さらに、認可インスタンスの各々によってホスト・インスタンス・キー・ペアを生成することを含む。ホスト・インスタンス・キー・ペアの各々は、パブリック・ホスト・キー及びプライベート・ホスト・キーを含む。コンピュータ実施の方法は、さらに、パブリック・ホスト・キーを共用データベースに格納することと、認可インタンスのうちの1つを署名キー・リーダ・インスタンスにするよう選ぶこととを含む。コンピュータ実施の方法は、署名キー・リーダ・インスタンスによって署名キー・ペアを生成することを含む。署名キー・ペアは、パブリック署名キー及びプライベート署名キーを含む。コンピュータ実施の方法は、さらに、パブリック署名キーを共用データベースに格納することと、認可インスタンスの共通サービス内で、暗号化プライベート署名キーをリクエスト中の認可インスタンスへ送信することを含む。暗号化プライベート署名キーは、リクエスト中の認可インスタンスに対応するパブリック・ホスト・キーを用いて暗号化される。コンピュータ実施の方法は、さらに、リクエスト中の認可インスタンスによって生成されたプライベート・ホスト・キーを用いて、暗号化プライベート署名キーを復号することを含む。
本開示のさらに別の実施形態は、プライベート署名キーを認可インスタンスの間に分散させるためのコンピュータ・プログラム製品であって、それにより具体化されるプログラム命令を有するコンピュータ可読ストレージ媒体を含むことができ、プログラム命令はプロセッサによって実行可能であり、プロセッサに方法を実行させるコンピュータ・プログラム製品を含む。その方法は、複数の認可インスタンスを構成ファイルに登録することを含む。認可インスタンスは、共通サービスに参加する。共通サービスは、アクセス・トークンの生成及び検証である。本方法はさらに、認可インスタンスの各々によってホスト・インスタンス・キー・ペアを生成することを含む。ホスト・インスタンス・キー・ペアの各々は、パブリック・ホスト・キー及びプライベート・ホスト・キーを含む。本方法はさらに、パブリック・ホスト・キーを共用データベースに格納することと、認可インスタンスのうちの1つを署名キー・リーダ・インスタンスにするように選ぶこととを含む。本方法は、署名キー・リーダ・インスタンスによって署名キー・ペアを生成することを含む。署名キー・ペアは、パブリック署名キー及びプライベート署名キーを含む。本方法はさらに、パブリック署名キーを共用データベースに格納することと、認可インスタンスの共通サービス内で、暗号化プライベート署名キーをリクエスト中の認可インスタンスへ送信することを含む。暗号化プライベート署名キーは、リクエスト中の認可インスタンスに対応するパブリック・ホスト・キーを用いて暗号化される。本方法はさらに、リクエスト中の認可インスタンスによって生成されたプライベート・ホスト・キーを用いて、暗号化プライベート署名キーを復号することを含む。
付加的な実施形態は、プライベート署名キーを認可インスタンスの間に分散させるための、上記の方法を実行するように構成されたプライベート・キー分散システムに向けられる。本概要は、本開示のあらゆる実施若しくはあらゆる実施形態又は両方の各々の態様を示すことを意図したものではない。
本開示のこれら及び他の特徴、態様、及び利点は、以下の説明、添付の特許請求の範囲、及び添付の図面に関連して、より良く理解されるであろう。
本開示の実施形態による、プライベート・キー分散システムを示すブロック図である。 本開示の実施形態による、認可インスタンスの間のプライベート・キー分散を示すデータ・フロー図である。 本開示の実施形態による、プライベート・キー分散プロセスのフローチャートである。 本開示の実施形態による、プライベート・キー・リクエスト・プロセスのフローチャートである。 本開示の実施形態による、本明細書で説明される方法、ツール、及びモジュール、並びに任意の関連機能の1つ又は複数を実装するのに用いることができる例示的なコンピュータ・システムを示す、高レベルのブロック図である。 本開示の実施形態による、クラウド・コンピューティング環境を示す。 本開示の実施形態による、抽象化モデル層を示す。
本開示には、種々の修正物及び代替的形態の余地があるが、その特定のものが例として図面に示されており、詳細に説明されることになる。しかし、本発明は、説明される特定の実施形態に限定されないことを理解されたい。逆に、本発明は本開示の範囲に入る全ての修正物、等価物及び代替物を包含する。添付の図面内で、類似の参照番号が類似の部分を示すために用いられている。
本開示は、プライベート・キー分散に関し、より具体的には、アクセス・トークンを生成して検証するために用いられるエンドポイント・インスタンスの間のプライベート・キー分散を提供することに関する。本開示は、必ずしもそのような応用に限定されないが、本開示の種々の態様は、このコンテキストを用いる種々の例の議論を通して認識することができる。
ウェブAPIは、1つ又は複数の公開されたエンドポイントからなるプログラマチック・インタフェースである。公開されたエンドポイントは、ウェブAPIにより、2つのシステムが互いに通信できるように、用いることができる。エンドポイントは、どのようにリソース又はサービスがアクセスされるかを示す。あるシステムが、別のシステムのリソースにアクセスしようとする場合、ウェブAPIによって提供される指定エンドポイントを通過する必要がある。
ウェブAPIは、アクセス・トークンを生成し、それらを、ウェブAPIへのアクセスを認められたシステムに分散させるために、認可エンドポイントを用いることができる。システムは、その後のリクエストにおいてウェブAPIによって提供されるリソース及びサービスへのアクセスが許可されるように、これらのアクセス・トークンを用いることができる。アクセス・トークンは、典型的には、JWTの信頼性を検証するデジタル署名を有するJWTの形式で提供される。これらの署名は、非対称暗号化法を用いて暗号化することができる。
非対称暗号化法は、キー・ペアを用いる暗号化システムである。キー・ペアは、パブリック・キー及びプライベート・キーを含む。パブリック・キーは、広く散在させることができ、プライベート・キーは、キーの所有者によってのみ保持される。この暗号化システムにおいて、いかなる個人又はシステムもパブリック・キーを用いて暗号化することができるが、その暗号化されたメッセージは、所有者のプライベート・キーによってのみ復号することができる。キー・ペアは、デジタル署名を作成するために用いることもできる。デジタル署名は、書類又はソフトウェアの信頼性を判断するのに用いられる、アルゴリムと暗号化保護のセットとすることができる。
エンドポイントは、サービス・クラスタ内で、ウェブAPIに入ってくるインターネット・トラフィックを分散させるように動作させることができる。サービス・クラスタは、インスタンスの間の負荷分散をもたらすことができ、ウェブAPIとアプリケーションとの間のレイテンシを小さくする。さらに、ウェブAPIは、サービス・クラスタによって提供される冗長性のために、高い可用性を有する。あるインスタンスがオフラインになるか又はシャットダウンする場合、別のインスタンスがリクエストされた作業の実行を継続することができる。
サービス・クラスタが認可エンドポイントとして用いられるとき、同じタスクを実行するために、幾つかの認可インスタンスが生成される。これらの認可インスタンスは、アプリケーションとウェブAPIとの間のレイテンシを低減させることを支援するために、ローカルに、領域的に、又はグローバルに分散させることができる。認可インスタンスが動作するためには、適切な証明書を有するJWTアクセス・トークンをアプリケーションに提供することができなければならない。これらのアクセス・トークンは、そのアクセス・トークンを検証する署名を含む。署名は、アクセス・トークンについてのセキュリティを提供し、有効性を保証する署名キー・ペアを用いて、暗号化される。プライベート署名キーを含む構成ファイルは、サービス・クラスタ内の各々の認可インスタンスに分散される。認可インスタンスは、プライベート署名キーを用いて、アクセス・トークンの署名部分を、認可されたアプリケーションに提供する前に暗号化することができる。
しかし、プライベート署名キーは、各々の認可インスタンスに構成ファイルで分散されるので、認可インスタンスのセキュリティには制限が残る。これらの構成ファイルは、持続性ストレージ内に格納される。ある攻撃者が認可インスタンスに侵入して、マシンの持続性ストレージへアクセスすることができる可能性がある。侵入すると、攻撃者は、構成ファイルを複製することができ、プライベート署名キーを抽出することができる。そうすると、攻撃者は、プライベート署名キーを用いて、アクセス・トークンを生成し、ウェブAPIによって提供されるリソースへアクセスすることができる。
本開示の実施形態は、上記及び他の問題を、プライベート署名キーを認可インスタンスの間に分散させるためのプライベート・キー分散システムを用いることによって、克服することができる。プライベート・キー分散システムは、共通サービスに参加する複数の認可インスタンスを含む。認可インスタンスによって行われる共通サービスは、アクセス・トークンを生成して、認可されたアプリケーションに提供することである。各々の認可インスタンスは、ホスト・インスタンス・キー・ペアを生成するように構成される。ある認可インスタンスが、署名キー・ペアを生成するように構成される署名キー・リーダ・インスタンスとして選ばれる。署名キー・リーダ・インスタンスは、リクエストされたときに、プライベート署名キーを認可インスタンスの各々に分散させるように、さらに構成される。署名キー・リーダ・インスタンスは、さらに、リクエスト中の認可インスタンスに対応するパブリック・ホスト・キーを用いてプライベート署名キーを暗号化するように、構成される。
より具体的には、本明細書で説明されるプライベート・キー分散システムは、認可インスタンスから、プライベート署名キーを生成及び分散させるための署名キー・リーダ・インスタンスを選ぶ。認可インスタンスは、署名キー・リーダ・インスタンスからプライベート署名キーをリクエストすることができる。リクエストを受け取ると、署名キー・リーダ・インスタンスは、そのリクエストを検証し、リクエスト中の認可インスタンスに送信する前に、プライベート署名キーを暗号化することができる。プライベート署名キーの暗号化及び復号のために用いられるホスト・インスタンス・キー・ペアは、各々の認可インスタンスに固有のものである。従って、リクエスト中の認可インスタンスのみがプライベート署名キーを復号することができる。このように、プライベート・キー分散システムは、プライベート署名キーを分散させるために構成ファイルを使用することを避ける。
さらに、又は代替的に、認可インスタンスがプライベート署名キーを取得すると、それは、メモリに格納され、持続性ストレージには格納されない。認可システムがシャットダウン及びリスタートされる場合、新しいホスト・インスタンス・キー・ペアを生成し、パブリック・ホスト・キーを共用データベースに提供することが必要となる。認可システムは次に、キーがシャットダウンにおいて失われたことになるので、署名キー・リーダ・インスタンスからプライベート署名キーをリクエストすることができる。
幾つかの実施形態において、署名キー・リーダ・インスタンスは、プライベート署名キーが送られる前に、リクエスト中の認可インスタンスを検証するための付加的な検証ステップを行う。リクエスト中の認可インスタンスは、共用データベースに格納されている新しいパブリック署名キーを検出することができ、対応するプライベート署名キーを、署名キー・リーダ・インスタンスからリクエストすることができる。リクエストが行われると、署名キー・リーダ・インスタンスは、そのリクエストを、リクエストのソース・インターネット・プロトコル(IP)アドレスを調べることによって検証することができる。そのIPアドレスが、リクエスト中の認可インスタンスの既知のIPアドレスに一致する場合、署名キー・リーダ・インスタンスは、プライベート署名キーを暗号化し、暗号化されたキーをリクエスト中の認可インスタンスへ送信することを進めることができる。
付加的に、又は代替的に、署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンスに関する登録証明(registration)を、その認可インスタンスの初期化の際に用いられた構成ファイルから取得することができる。登録証明は、実際の認可インスタンスのIPアドレスを含むことができる。次に署名キー・リーダ・インスタンスは、登録証明の中のIPアドレスを、リクエスト内に与えられたIPアドレスと比較することができる。このことは、攻撃者が、それらのアドレスを正当な認可インスタンスであるかのように偽造することを防止する助けとなり得る。
付加的に、又は代替的に、署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンスに関する登録証明を、その認可インスタンスの初期化の際に更新された構成ファイルから取得することができる。登録証明にあるホストネームを使用して、署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンスのホスト名を用いて暗号化プライベート署名キーを送信することができる。ホスト名への送信は、攻撃者が、全体のシステムに侵入することができる前に共用データベース及び構成ファイルの両方に侵入することが必要となるように、セキュリティの付加的な層を与える。
本開示の実施形態は、非アクティブな署名キー・リーダ・インスタンスの検出を含む。署名キー・リーダ・インスタンスは、共用データベースに格納されるキー・リーダ・ログに、連続的な間隔で書き込むことができる。認可インスタンスが、署名キー・リーダ・インスタンスがもはや応答しないか又はもはやキー・リーダ・ログに書き込まないことを検出した場合、新しい署名キー・リーダ・インスタンスを選ぶことができる。幾つかの実施形態において、新しい署名キー・リーダ・インスタンスが選ばれるとき、署名キー・ペアのロールオーバが行われる。従って、以前の署名キー・リーダ・インスタンスによって使用された署名キー・ペアはもはや有効ではなく、認可インスタンスは、新しい署名キー・リーダ・インスタンスから、新しいプライベート署名キーをリクエストすることが必要となる。
ここで、図1を参照すると、本開示の実施形態による、プライベート・キー分散システム100のブロック図が示される。プライベート・キー分散システム100は、エンドポイント110、共用データベース130、ネットワーク140、及び構成ファイル150を含む。エンドポイント110は、認可インスタンス120-1、120-2、120-N(まとめて、認可インスタンス120)を含み、ここでNは、可能な認可インスタンス120の任意の数を表す可変整数である。
エンドポイントは、本開示の実施形態による、サーバ側ウェブAPIと他の外部システムとの間の通信チャネルとして機能するように構成された、プライベート・キー分散システムの構成要素である。これらの外部システムは、クライアント、アプリケーション、ウェブ・ブラウザ、他のウェブAPIを含むが、それらに限定されない。
幾つかの実施形態において、エンドポイント110は、サービス・クラスタ内で動作する。クラスタは、共通サービスを達成するためにグループ化された複数のサーバからなり、単一のコンピュータとみなすことができる。これらのサーバ又はノードは、ユーザに、クラスタのノードであるネットワーク・リソースのセットを提供することができる。クラスタは、スケーラビリティを改善することができる特徴を提供し、高可用性を提供する。スケーラビリティについては、クラスタ内のサービス・ノードは、クラスタの処理能力を高めるために動的にマシンを追加することができる。高可用性については、クラスタ内のあるノードが故障した場合、このノード上で実行されていたサービスが他のサービス・ノードによって引き継がれ、従って、クラスタの高可用性が高められる。
クラスタ内のノードは、ノード・インスタンスとして定めることができる。ノード・インスタンスは、ノードのインスタンス化又は実際の出現を表すモデル要素である。ノード・インスタンスは、既存のノードに基づく。ノード・インスタンスは、システム環境内の特定の定義されたノードを表す。これらのインスタンスは、実行時間中に存在するリソースを表すために配備することができる。例えば、ノード・インスタンスは、ウェブ・サーバ、データ・サーバ、認可サーバなどを表すことができる。
認可インスタンス120は、本開示の実施形態による、ウェブAPIのためのサーバ・インスタンスとして動作するように構成された、エンドポイント110の構成要素である。認可インスタンス120は、認可サーバ、アプリケーション・サーバ、ウェブ・サーバ、リソース・サーバなどとして動作することができる。幾つかの実施形態において、認可サーバ120は、認可された資格証明を有するクライアントにアクセス・トークンを提供し、認可サーバとして動作する。アクセス・トークンは、クライアントに与えられたパーミッションを表す文字列である。これらのアクセス・トークンは、JWT形式で提供することができる。幾つかの実施形態において、認可インスタンスは、デジタル署名動作を行うように構成されたリソース・サーバとして動作する。
JWT形式は、ヘッダ、ペイロード、及び署名を含む。ヘッダは、アクセス・トークンのタイプ及びコンテンツを保護するために用いられた暗号化アルゴリズムに関するメタデータを含む。これらの暗号化アルゴリズムは、典型的には、キー付きハッシュ・メッセージ認証コード(HMAC)アルゴリズムである。HMACアルゴリズムとしては、それらに限定されないが、セキュア・ハッシュ・アルゴリズム2(SHA-2)、リベスト・シャミール・アデルマン(RSA)、及びJSONウェブ・アルゴリズム(JWA)が挙げられる。RSAアルゴリズムはさらに、JWTの署名部分を暗号化するために用いることができる。
ペイロードは、クレームのセットを含む。JWTの仕様書は、アクセス・トークンに共通して含まれる標準フィールドを定める。さらに、API特有の顧客クレームを含めることができる。署名は、アクセス・トークンを確実に検証するために用いられる。署名は、ヘッダ及びペイロードをBase64url暗号化を用いて暗号化し、それら2つをピリオド・セパレータで連結することによって、算出することができる。署名を暗号化するために、ヘッダ内で指定されたアルゴリズム及びプライベート署名キー125を用いることができる。
認可インスタンス120は、ホスト・インスタンス・キー・ペアを生成するように、さらに構成される。ホスト・インスタンス・キー・ペアは、プライベート・ホスト・キー127及びパブリック・ホスト・キー128を含む。パブリック・ホスト・キー128は、格納のために共有データベースへ送信することができる。ホスト・インスタンス・キー・ペアは、各々の認可インスタンス120に対して一意のものであり、プライベート・ホスト・キー127は、メモリに格納することができる。ホスト・インスタンス・キー・ペアは、非対称暗号化法において用いられるキー・ペアである。パブリック・ホスト・インスタンス・キー128は、メッセージ(例えば、プライベート署名キー125)を暗号化するために用いることができ、プライベート・ホスト・インスタンス・キー127は、メッセージを復号するために用いることができる。
認可インスタンス120は、署名キー・リーダ・インスタンスを選ぶようにさらに構成される。署名キー・リーダ・インスタンスは、署名キー・ペア・インスタンスを生成するようにさらに構成された認可インスタンス120の1つである。署名キー・ペアは、プライベート署名キー125及びパブリック署名キー126を含む。署名キー・ペアは、ホスト・インスタンス・キー・ペアに一意のものであり、クライアントのために生成されるアクセス・トークンを暗号化するために用いられる。プライベート署名キー125は、アクセス・トークン内の署名を暗号化するために用いることができ、パブリック署名キー126は、アクセス・トークンの有効性を検証するために用いることができる。
署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンス120に対応するパブリック・ホスト・キー128を用いてプライベート署名キー125を暗号化するように、さらに構成される。例えば、認可インスタンス120は、署名キー・リーダ・インスタンスからプライベート署名キー125をリクエストすることができる。リクエストを受け取ると、署名キー・リーダ・インスタンスは、リクエスト内の認可インスタンス120の、共有データベースに格納されているパブリック・ホスト・キー128を取得することができる。パブリック・ホスト・キー128を用いて、署名キー・リーダ・インスタンスは、プライベート署名キーを、リクエスト中の認可インスタンス120に送信する前に暗号化することができる。
幾つかの実施形態において、署名キー・リーダ・インスタンスは、共用データベース130に格納されているキー・リーダ・ログ129を、ある間隔で更新する。例えば、署名キー・リーダ・インスタンスは、キー・リーダ・ログ129を、30秒毎、1分毎、2分毎などに更新することができる。認可インスタンス120は、署名キー・リーダ・インスタンスがアクティブであり、プライベート署名キーを提供するために利用可能であることを判断するために、キー・リーダ・ログを読み取ることができる。
共用データベース130は、本開示の実施形態による、プライベート・キー分散システム100に関連する情報を格納するように構成された、プライベート・キー分散システム100の構成要素である。図1にはデータベースとして示されているが、共用データベース130は、マッピング、テーブル、ジャーナル、メタデータなどとすることができる。共用データベース130は、認可インスタンス120によって生成されたホスト・インスタンス・キー・ペア127からのパブリック・ホスト・インスタンス・キーを格納することができる。さらに、共用データベース130は、署名キー・リーダ・インスタンスによって生成されたパブリック署名キー、及びキー・リーダ・ログを格納することができる。
ネットワーク140は、クライアントとエンドポイント110との間の直接的な高速データ転送及び通信を容易にするように構成された、プライベート・キー分散システム100の構成要素である。ネットワーク140の例としては、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、ストレージ・エリア・ネットワーク(SAN)、インターネット、又はそれらの任意の組み合わせが挙げられる。
幾つかの実施形態において、ネットワーク140はインターネットである。インターネットは、伝送制御プロトコル(TCP)、ユーザ・データグラム・プロトコル(UDP)、及びTCP/IPインターネット・プロトコル群の中のインターネット・プロトコル(IP)のような共通通信プロトコルを使用する相互接続されたコンピュータ・ネットワーク及びデバイスのグローバル・システムを含む。
構成ファイル150は、本開示の実施形態による、認可インスタンス120に関連する情報を格納し提供するように構成された、プライベート・キー分散システム100の構成要素である。構成ファイル150は、プライベート・キー分散システム100内で初期化された認可インスタンス120の各々についての登録証明を格納することができる。幾つかの実施形態において、登録証明は、認可インスタンスの登録証明を変更することができないように、ソース・コードにハードコードされる。
図1は、プライベート・キー分散システム100の主要な代表的構成要素を示すことを意図したものであることに留意されたい。しかし、幾つかの実施形態において、個々の構成要素は、図1に示されるよりも高度の又は低度の複雑さを有することができ、図1に示された以外の構成要素又は追加の構成要素が存在してもよく、それら構成要素の数、タイプ、及び構成を変えることができる。
図2は、本開示の実施形態による、認可インスタンスの間のプライベート・キーの分散を示す、データ・フロー図200である。データ・フロー図200を示すために、図2は、図1のプライベート・キー分散システム100のコンテキストで示されているが、実施形態を限定するものではない。
動作210において、認可インスタンス120が初期化され、共通サービスを行うように構成される。初期化の際に、構成ファイル150は、プライベート・キー分散システム100によって初期化された各々の認可インスタンス120についての登録証明を格納することができる。登録証明は、認可インスタンス120のIPアドレスを含むことができ、認可インスタンス120の検証手段として機能する。幾つかの実施形態において、登録証明は、認可インスタンス120を初期化するソース・コードにハードコードされる。
動作220において、認可インスタンス120の各々は、ホスト・インスタンス・キー・ペアを生成することができる。ホスト・インスタンス・キー・ペアは、プライベート・ホスト・キー127及びパブリック・ホスト・キー128を含む。認可インスタンス120は、それらのパブリック・ホスト・キー128を共用データベース130に送信すること(222)ができる。署名キー・リーダ・インスタンスが選ばれていないことを検出すると、認可インスタンスは、初期化された認可インスタンスの内から署名キー・リーダ・インスタンスを選ぶこと(224)ができる。ある認可インスタンス120は、第1の認可インスタンス120がキー・リーダ・ログ129内にエントリを作成する(226)ためのものであることにより、署名キー・リーダ・インスタンスとして選ばれることができる。
動作230において、署名キー・リーダ・インスタンスが署名キー・ペアを生成する。署名キー・ペアは、プライベート署名キー125及びパブリック署名キー126を含む。生成されると、署名キー・リーダ・インスタンスは、パブリック署名キー126を共用データベース130に送信すること(232)ができる。パブリック署名キー126が共用データベース130内に格納されていることを検出すると、認可インスタンスは個々に、署名キー・リーダ・インスタンスからプライベート署名キーをリクエストする(234)。
動作240において、署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンス120によって送られたリクエストについての有効性チェックを行う(234)。このことは、リクエストのIPアドレスが、共通サービス内にあることが知られている認可インスタンス120のIPアドレスと一致することを検証することを含むことができる。有効性チェックはまた、送信されたリクエスト中の認可インスタンスへのコールバックの形式にすることができる。署名キー・リーダ・インスタンスは、リクエストに対してOK応答によって応答することができる。署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンス120のホスト名を構成ファイル150から取得することができ、ホスト名を用いて、暗号化プライベート署名キーを伴うコールバックを行うことができる。有効なリクエストとして検証されると、署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンス120に関するパブリック・ホスト・キー128をリクエストする(242)。共用データベース130は、リクエスト中の認可インスタンスに対応するパブリック・ホスト・キー128を、署名キー・リーダ・インスタンスへ送り返すこと(244)ができる。
動作250において、署名キー・リーダ・インスタンスは、共用データベース130から得られたパブリック・ホスト・キー128を用いてプライベート署名キー125を暗号化し、暗号化プライベート署名キーを、リクエスト中の認可インスタンス120に送信する(252)。動作260において、リクエスト中の認可インスタンス120は、それらのプライベート・ホスト・キー127を用いて、暗号化プライベート署名キー125を復号することができる。
図3は、本開示の実施形態による、プライベート署名キーを認可インスタンスの間に分散させるためのプロセス300のフロー図である。プロセス300は、ハードウェア、ファームウェア、少なくとも1つのプロセッサ上で実行されるソフトウェア、又はそれらの任意の組み合わせによって行うことができる。例えば、プロセス300のいずれか又は全てのステップは、1つ又は複数のコンピューティング・デバイス(例えば、図5のコンピュータ・システム500)によって行うことができる。プロセス300を示すために、図3は、図1のプライベート・キー分散システム100のコンテキストで記述されているが、実施形態を限定するためではない。
プロセス300は、共通サービスを行うように構成された各々の認可インスタンス120についての登録証明を構成ファイル150に加えることによって、開始する。このことはステップ310に示される。登録証明は、認可インスタンス120の各々に割り当てられたインスタンスの身分証明(identification)と、認可インスタンス120のIPアドレスとを含むことができる。インスタンスの身分証明若しくはIPアドレス又はこれらの両方は、認可インスタンス120をその後のリクエストにおいて検証するために用いることができる。
各々の認可インスタンス120は、ホスト・インスタンス・キー・ペアを生成する。このことはステップ320に示される。ホスト・インスタンス・キー・ペアは、共通サービスにおいて用いられるプライベート署名キーを暗号化及び復号に用いることができる。ホスト・インスタンス・キー・ペアは、非対称暗号化キー技術において用いることができる。これらのキー技術としては、限定されるものではないが、リベスト・シャミール・アデルマン(RSA)、ディッフィ・ヘルマン、楕円曲線ディッフィ・ヘルマン(ECDH)、セキュア・リモート・パスワード・プロトコル(SRP)、事前共有キー(PSK)、デジタル署名アルゴリズム(DSA)、楕円曲線DSA(ECDSA)、RC4、三重データ暗号化アルゴリズム(Triple DES)、先進的暗号化標準(AES)、国際データ暗号化アルゴリズム(IDEA)、データ暗号化標準(DES)、カメリア、ハッシュ・ベースドMD5、及び、セキュア・ハッシュ・アルゴリズム(SHA)ハッシュ関数が挙げられる。
さらに、ホスト・インスタンス・キー・ペアは、非対称キー・アルゴリズムを利用するプロトコルで用いることができる。このプロトコルとしては、限定されるものではないが、セキュア/多目的インターネット・メール拡張(S/MIME)、GNUプライバシ・ガード(GPG)、インターネット・キー交換、プリティ・グッド・プライバシ(PGP)、Z及びリアル・タイム・トランスポート・プロトコルから構成されるもの(ZRTP)、トランスポート・レイヤ・セキュリティ(TLS)、及び、セキュア・インターネット・ライブ・カンファレンス・プロトコル(SILC)が挙げられる。
パブリック・ホスト・インスタンス・キー128は、共用データベース130に格納される。このことはステップ330に示される。各々の認可インスタンス120は、それらのパブリック・ホスト・インスタンス・キー128を共用データベース130に送信する。これによって、プライベート・キー分散システム100の別の構成要素がパブリック・ホスト・インスタンス・キー128を取得して、対応する認可インスタンス120のみを復号することができるようにメッセージを暗号化することが可能になる。プライベート・ホスト・インスタンス・キー127は、認可インスタンス120のメモリに格納される。認可インスタンス120がシャットダウン、クラッシュ、又はリスタートした場合には、認可インスタンス120は、新しいホスト・インスタンス・キー・ペアを再生成し、それらのパブリック・ホスト・キー128を共用データベースへ再送することが必要となる。
署名キー・リーダ・インスタンスは、共通サービスを行う認可インスタンス120から選ばれる。このことはステップ340に示される。署名キー・リーダ・インスタンスは、第1の認可インスタンス120がキー・リーダ・ログ129内にエントリを作成するときに、選ぶことができる。署名キー・リーダ・インスタンスとして機能する一方で、認可インスタンス120は、キー・リーダ・ログを設定された間隔で更新することができる。例えば、署名キー・リーダ・インスタンスは、キー・リーダ・ログ129を1分毎に更新して、他の認可インスタンス120に、署名キー・リーダ・インスタンスが選ばれたこと及びプライベート署名キー125を他の認可インスタンス120に提供できることを通知することができる。
幾つかの実施形態において、署名キー・リーダ・インスタンスは、初めは、所定の認可インスタンス120である。例えば、構成ファイル150に登録される第1の認可インスタンス120を、第1の署名キー・リーダ・インスタンスとして選ぶことができる。署名キー・リーダ・インスタンス120がオフラインになる場合、別の認可インスタンス120を署名キー・リーダ・インスタンスとして選ぶことができる。
幾つかの実施形態において、署名キー・リーダ・インスタンスがキー・リーダ・ログ129の更新を停止するとき、別の認可インスタンス120が署名キー・リーダ・インスタンスとして選ばれる。例えば、署名キー・リーダ・インスタンスが3分を超えて署名キー・リーダ・ログ129を更新しない場合、署名キー・リーダ・ログ129に書き込む第1の認可インスタンス120が、新しい署名キー・リーダ・インスタンスとして選ばれる。新しい署名キー・リーダ・インスタンスが選ばれたことを他の認可インスタン120に通知する方法として、他の認可インスタン120が署名キー・リーダ・ログ129を読み取ることができる。
署名キー・リーダ・インスタンスは、署名キー・ペアを生成する。このことはステップ350に示される。署名キー・ペアは、プライベート署名キー125及びパブリック署名キー126を含む。認可インスタンス120は、クライアントのためのアクセス・トークンを生成するとき、署名を暗号化するために同じプライベート署名キー125を用いることができる。1つのプライベート署名キー125を有することにより、プライベート・キー分散システム100は、複数の署名キー・ペアを利用するときに起こり得るオーバーヘッドを最小にする。
署名キー・ペアは、種々のデジタル署名アルゴリズムで用いることができる。これらのアルゴリズムとしては、限定されるものではないが、RSA確率的署名スキーム(RSA-PSS)、ESDSA、エドワード曲線デジタル署名アルゴリズム(EdDSA)、EIGamal署名スキーム、ラビン署名アルゴリズム、及びアグリゲート署名が挙げられる。
パブリック署名キー126は、共用データベース130に格納される。このことはステップ360に示される。署名キー・リーダ・インスタンスは、生成されたパブリック署名キー126を共用データベース130に送信する。このことによって、ウェブAPI及びアプリケーションが、パブリック署名キー126を取得して、プライベート署名キーを用いて署名されたアクセス・トークンを検証することが可能になる。署名キー・リーダ・インスタンスが、パブリック署名キー126を格納する前にシャットダウン又はリスタートしたとすると、別の認可インスタンス120が選ばれて、新しい署名キー・ペアを生成するプロセスを繰り返し、新しいパブリック署名キー126を共用データベース130に格納することが必要となる。
署名キー・リーダ・インスタンスは、暗号化プライベート署名キーをリクエスト中の認可インスタンス120に送信する。このことはステップ370に示される。署名キー・リーダ・インスタンスは、共用データベース130に格納されたパブリック・ホスト・キー128を用いて、各々の対応する認可インスタンス120のためのプライベート署名キーを暗号化することができる。プライベート署名キー125についてのリクエストを受け取ると、署名キー・リーダ・インスタンスは、暗号化プライベート署名キー125をリクエスト中の認可インスタンス120へ送信することができる。リクエスト中の認可インスタンス120に対応するパブリック・ホスト・インスタンス・キー128を用いてプライベート署名キー125を暗号化することによって、リクエスト中の認可インスタンス120だけが、プライベート署名キー125を復号することができる。
図4は、本開示の実施形態による、暗号化プライベート署名キーを認可インスタンスへ送信する(例えば、図3のプロセス300のステップ370)ためのプロセス400のフロー図を示す。プロセス400は、ハードウェア、ファームウェア、少なくとも1つのプロセッサ上で実行されるソフトウェア、又はそれらの任意の組み合わせによって行うことができる。例えば、プロセス400のいずれか又は全てのステップは、1つ又は複数のコンピューティング・デバイス(例えば、図5のコンピュータ・システム500)によって行うことができる。プロセス400を説明するために、図4は、図1のプライベート・キー分散システム100のコンテキストで説明されるが、実施形態を限定するためではない。
ある認可インスタンス120が、共用データベース130に格納されているパブリック署名キー126を検出する。このことはステップ410に示される。共用データベース130内で検出されたパブリック署名キー126は、その認可インスタンス120に対して、プライベート署名キー125を署名キー・リーダ・インスタンスからリクエストできることを示すことができる。
幾つかの実施形態において、認可インスタンス120は、共用データベース130に格納されている新しいパブリック署名キー126を検出する。このことは、パブリック署名キー126を調べることにより、又は、新しいパブリック署名キー126が送られたとのキー・リーダ・ログ129に示された指示によって検出することができる。新しい署名キー・ペアは、しばしばキー・ロールオーバと呼ばれるが、アドミニストレータによって設定された所定の時間後に署名キー・リーダ・インスタンスによって生成され得る。例えば、キー・ロールオーバは、週毎、月毎、6週間毎などに生じ得る。幾つかの実施形態において、キー・ロールオーバは、新しい署名キー・リーダ・インスタンスが選ばれるときに生じる。
認可インスタンス120は、署名キー・リーダ・インスタンスからプライベート署名キー125をリクエストする。このことはステップ420に示される。認可インスタンスは、リクエスト中の認可インスタンス120のIPアドレスを含むリクエスト・コマンドを、署名キー・リーダ・インスタンスに送信する。
リクエストを受け取ると、署名キー・リーダ・インスタンスはリクエストを検証する。このことはステップ430に示される。幾つかの実施形態において、署名キー・リーダ・インスタンスは、リクエスト中の認可インスタンス120に関連する登録証明を、認可インスタンス120の初期化の際に用いられた構成ファイル150から取得する。登録証明は、認可インスタンス120の身分証明及びそれらのIPアドレスを含むことができる。署名キー・リーダ・インスタンスは、リクエストのソースIPアドレスが、登録証明にあるリクエスト中の認可インスタンス120の格納されたIPアドレスと一致することを検証することができる。
幾つかの実施形態において、署名キー・リーダ・インスタンスは、認可インスタンス120の初期化の際に用いられた構成ファイル150から、リクエスト中の認可インスタンス120に関する登録証明を取得する。署名キー・リーダ・インスタンスは、登録証明内で発見されたホスト名を配置することができる。署名キー・リーダ・インスタンスは、暗号化プライベート署名キーを、リクエスト中の認可インスタンス120のホスト名へ送信することができる。
リクエスト中の認可インスタンス120によって行われたリクエストが有効かどうかに関する決定が行われる。このことはステップ440に示される。署名キー・リーダ・インスタンスが、そのリクエストは検証できないと判断した場合、そのリクエストは拒絶される。このことはステップ450に示される。しかし、署名キー・リーダ・インスタンスがリクエストを検証できた場合、プロセス400はステップ460に進む。
プライベート署名キー・リーダ・インスタンスは、共用データベースから、リクエスト中の認可インスタンス120に対応するパブリック・ホスト・キー128を取得する。このことはステップ460に示される。次に、パブリック・ホスト・キー128を用いて、署名キー・リーダ・インスタンスは、プライベート署名キーを暗号化することができる。このことはステップ470に示される。暗号化されると、暗号化プライベート署名キーをリクエスト中の認可インスタンス120へ送信することができる。このことはステップ480に示される。
次に図5を参照すると、本開示の実施形態による、本明細書で説明される1つ又は複数の方法、ツール、及びモジュール、並びに関連する機能を実施する(例えば、コンピュータの1つ又は複数のプロセッサ回路又はコンピュータ・プロセッサを用いて)のに用いることができる例示的なコンピュータ・システム500(例えば、プライベート・キー分散ステム100)の高レベルのブロック図が示されている。幾つかの実施形態において、コンピュータ・システム500の主要な構成要素は、1つ又は複数のプロセッサ502、メモリ504、端末インタフェース512、I/O(入力/出力)デバイス・インタフェース514、ストレージ・インタフェース516、及びネットワーク・インタフェース518を備えることができ、これらの全ては、メモリ・バス503、I/Oバス508、及びI/Oバス・インタフェース510を介して、構成要素間通信のために、直接または間接に、通信可能に結合される。
コンピュータ・システム500は、本明細書では一般的にプロセッサ502と呼ばれる1つ又は複数の汎用プログラム可能中央処理ユニット(CPU)502-1、502-2、502-3、及び502-Nを含むことができる。幾つかの実施形態において、コンピュータ・システム500は、比較的大きいシステムに典型的な複数のプロセッサを含むことができるが、他の実施形態においては、コンピュータ・システム500は、代替的に、単一のCPUシステムとすることができる。各々のプロセッサ501は、メモリ504内に格納された命令を実行することができ、1つ又は複数のレベルのオン・ボード・キャッシュを含むことができる。
メモリ504は、ランダム・アクセス・メモリ(RAM)522又はキャッシュ・メモリ524などの揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム500は、さらに、他の取外し可能/固定、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含むことができる。単なる例として、ストレージ・システム526は、「ハード・ドライブ」などの固定、不揮発性磁気媒体から読み出し及びそれに書き込むために、備えることができる。図示されないが、取外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)から読み出し及びそれに書き込むための磁気ディスク・ドライブ、或いは、CD-ROM、DVD-ROM又は他の光学媒体などの取外し可能な不揮発性光ディスクから読み出し及びそれに書き込むための光ディスク・ドライブを備えることができる。また、メモリ504は、フラッシュ・メモリ、例えば、フラッシュ・メモリ・スティック・ドライブ又はフラッシュ・ドライブを含むことができる。メモリ・デバイスは、メモリ・バス503に、1つ又は複数のデータ媒体インタフェースによって接続することができる。メモリ504は、種々の実施形態の機能を実行するように構成された一組の(例えば、少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含むことができる。
メモリ・バス503は、図5には、プロセッサ502、メモリ504、及びI/Oバス・インタフェース510の間に直接通信パスをもたらす単一バス構造体として示されているが、メモリ・バス503は、幾つかの実施形態においては、階層型のポイント・ツウ・ポイント・リンク、スター又はウェブ構成、複数の階層型バス、並列及び冗長バス、又は任意の他の適切なタイプの構成などの種々の形態の何れかに配置することができる複数の異なるバス又は通信パスを含むことができる。さらに、I/Oバス・インタフェース510及びI/Oバス508は、単一のそれぞれのユニットとして示されているが、コンピュータ・システム500は、幾つかの実施形態において、複数のI/Oバス・インタフェース、複数のI/Oバス、又は両方を含むことができる。さらに、I/Oバス508を、種々の複数のI/Oデバイスへ走る種々の通信パスから分離する複数のインタフェース・ユニットが示されているが、他の実施形態においては、I/Oデバイスの幾つか又は全てを1つ又は複数のシステムI/Oバスに直接接続することができる。
幾つかの実施形態において、コンピュータ・システム500は、マルチ・ユーザ・メインフレーム・コンピュータ・システム、単一ユーザ・システム、又はサーバ・コンピュータ、或いは、類似の、ダイレクト・ユーザ・インタフェースを殆ど又は全く有しないが、他のコンピュータ・システム(クライアント)からリクエストを受け取る、デバイスとすることができる。さらに、幾つかの実施形態において、コンピュータ・システム500は、デスクトップ・コンピュータ、携帯コンピュータ、ラップトップまたはノートブック・コンピュータ、タブレット・コンピュータ、ポケット・コンピュータ、電話、スマートフォン、ネットワーク・スィッチ又はルータ、或いは任意の他の適切なタイプの電子デバイス、として実施することができる。
図5は、例示的なコンピュータ・システム500の代表的な主要構成要素を示すことを意図したものであることに留意されたい。しかし、幾つかの実施形態においては、個々の構成要素は、図5に示されるよりも高度の又は低度の複雑さを有することができ、図5に示されるもの以外の又は付加的な構成要素が存在することができ、そのような構成要素の数、タイプ、及び構成は変化し得る。
各々が少なくとも一組のプログラム・モジュール530を有する1つ又は複数のプログラム/ユーティリティ528をメモリ504内に格納することができる。プログラム/ユーティリティ528は、ハイパーバイザ(仮想機械モニタとも呼ばれる)、1つ又は複数のオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを含むことができる。各々のオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらのある組み合わせは、ネットワーキング環境の実施を含むことができる。プログラム528若しくはプログラム・モジュール530又は両方は、種々の実施形態の機能又は方法を一般的に実行する。
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書で列挙される教示の実装は、クラウド・コンピューティング環境に限定されないことが理解される。むしろ、例示的な実施形態は、現在知られているか又は将来開発される、任意の他のタイプのコンピューティング環境と組み合わせて実装することができる。
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つのデプロイメント・モデルを含むことができる。
特徴は以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないという点で位置とは独立しているといえるが、より抽象化レベルの高い位置(例えば、国、州、又はデータセンタ)を特定できる場合がある。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケールアウトし、迅速にリリースして素早くスケールインさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
サービス・モデルは以下の通りである。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイするために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをデプロイ及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図6を参照すると、例示的なクラウド・コンピューティング環境600が示される。図示のように、クラウド・コンピューティング環境600は、例えば、携帯情報端末(PDA)又は携帯電話620-1、デスクトップ・コンピュータ620-2、ラップトップ・コンピュータ620-3、もしくは自動車コンピュータ・システム620-4又はそれらの組み合わせなどのような、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる、1つ又は複数のクラウド・コンピューティング・ノード610を含む。ノード610は、互いに通信することができる。これらのノードは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる(図示せず)。このことは、クラウド・コンピューティング環境600が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のない、infrastructure as a service、platform as a service、もしくはsoftware as a service又はそれらの組み合わせを提供することを可能にする。図6に示されるコンピューティング・デバイス620-1~620-4のタイプは単に例示であることを意図し、コンピューティング・ノード610及びクラウド・コンピューティング環境600は、任意のタイプのネットワーク上でもしくはネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いる)上で又はその両方で、任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
ここで図7を参照すると、クラウド・コンピューティング環境600(図6)によって提供される機能抽象化層のセットが示される。図7に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層710は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、メインフレーム711と、RISC(Reduced Instruction Set Computer(縮小命令セットコンピュータ))アーキテクチャ・ベースのサーバ712と、サーバ713と、ブレード・サーバ714と、ストレージ・デバイス715と、ネットワーク及びネットワーク・コンポーネント716と、が含まれる。幾つかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア717と、データベース・ソフトウェア718とを含む。
仮想化層720は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ721、仮想ストレージ722、仮想プライベート・ネットワークを含む仮想ネットワーク723、仮想アプリケーション及びオペレーティング・システム724、並びに仮想クライアント725を提供することができる。
一例においては、管理層730は、以下で説明される機能を提供することができる。リソース・プロビジョニング731は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定732は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル733は、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理734、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行735は、SLAに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
作業負荷層740は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例として、マッピング及びナビゲーション741、ソフトウェア開発及びライフサイクル管理742、仮想教室教育配信743、データ分析処理744、トランザクション処理745、及び精密コホート分析746が挙げられる。
本発明は、システム、方法もしくはコンピュータ・プログラム製品又はそれらの組み合わせを、いずれかの可能な技術的詳細レベルで統合したものとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードもしくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、又はそれらの組み合わせを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コード又はオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路を個別化することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又は両方の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置もしくは他のデバイス又はその組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャートもしくはブロック図又は両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むようにすることもできる。
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生産し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図又は両方の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又は両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
本開示の種々の実施形態の説明は、例証の目的のために提示されたが、これらは、網羅的であること、又は開示した実施形態に限定することを意図するものではない。当業者には、説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場に見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。

Claims (20)

  1. プライベート署名キーを認可インスタンスの間に分散させる方法であって、
    登録証明を構成に与えることによって、共通サービスに参加する複数の認可インスタンスを前記構成ファイルに登録することと、
    前記認可インスタンスの各々についてのホスト・インスタンス・キー・ペアを生成することであって、前記ホスト・インスタンス・キー・ペアの各々はパブリック・ホスト・キー及びプライベート・ホスト・キーを含む、生成することと、
    前記パブリック・ホスト・キーを共用データベースに格納することと、
    前記認可インスタンスのうちの1つを、署名キー・リーダ・インスタンスになるように選ぶことと、
    前記署名キー・リーダ・インスタンスによって署名キー・ペアを生成することであって、前記署名キー・ペアはパブリック署名キー及びプライベート署名キーを含む、生成することと、
    前記パブリック署名キーを前記共用データベースに格納することと、
    前記認可インスタンスのうちのリクエスト中の認可インスタンスに暗号化プライベート署名キーを送信することであって、前記プライベート署名キーは前記リクエスト中の認可インスタンスに対応する前記パブリック・ホスト・キーを用いて暗号化される、送信することと、
    前記リクエスト中の認可インスタンスにより、前記リクエスト中の認可インスタンスによって生成された前記プライベート・ホスト・キーを用いて、前記暗号化プライベート署名キーを復号することと
    を含む方法。
  2. 前記暗号化プライベート署名キーを送信することは、
    前記リクエスト中の認可インスタンスにより、前記共用データベースに格納されている前記パブリック署名キーを検出することと、
    前記リクエスト中の認可インスタンスにより、前記署名キー・リーダ・インスタンスから前記プライベート署名キーをリクエストすることと、
    前記リクエストのソースIPアドレスを調べることによって、前記署名キー・リーダ・インスタンスに対して行われた前記リクエストを検証することと、
    前記リクエストを検証する際に、前記リクエスト中の認可インスタンスに対応する前記パブリック・ホスト・キーを前記共用データベースから取得することと、
    前記パブリック・ホスト・キーを用いて前記プライベート署名キーを暗号化することと、
    前記暗号化プライベート署名キーを前記リクエスト中の認可インスタンスへ送信することと
    を含む、請求項1に記載のコンピュータ実施の方法。
  3. 前記リクエストを検証することは、
    前記リクエスト中の認可インスタンスに関する登録証明を前記構成ファイルから取得することと、
    前記リクエストの前記ソースIPアドレスが、前記リクエスト中の認可インスタンスの前記登録証明に置かれた格納済みIPアドレスと一致することを検証することと
    を含む、請求項2に記載のコンピュータ実施の方法。
  4. 前記リクエスト中の認可インスタンスについての、前記リクエスト中の認可インスタンスのホスト名を含む登録証明を前記構成ファイルから取得することと、
    前記リクエスト中の認可インスタンスの前記ホスト名でのコールバックを介して、前記暗号化プライベート署名キーを提供することと
    をさらに含む、請求項1~請求項3のいずれか1項に記載のコンピュータ実施の方法。
  5. 前記署名キー・リーダ・インスタンスがもはや応答しないことを検出することと、
    前記認可インスタンスから新しい署名キー・リーダ・インスタンスを選ぶことと
    をさらに含む、請求項1~請求項4のいずれか1項に記載のコンピュータ実施の方法。
  6. 前記署名キー・ペアのロールオーバを行って新しい署名キー・ペアを生成することと、
    新しいパブリック署名キーを前記共用データベースに加えることと
    をさらに含む、請求項1~請求項5のいずれか1項に記載のコンピュータ実施の方法。
  7. 前記署名キー・ペアは、前記署名キー・リーダ・インスタンスのメモリに格納される、請求項1~請求項6のいずれか1項に記載のコンピュータ実施の方法。
  8. 非一時的コンピュータ可読ストレージ媒体であって、
    登録証明を構成に与えることによって、共通サービスに参加する複数の認可インスタンスを前記構成ファイルに登録することと、
    前記認可インスタンスの各々についてのホスト・インスタンス・キー・ペアを生成することであって、前記ホスト・インスタンス・キー・ペアの各々はパブリック・ホスト・キー及びプライベート・ホスト・キーを含む、生成することと、
    前記パブリック・ホスト・キーを共用データベースに格納することと、
    前記認可インスタンスのうちの1つを、署名キー・リーダ・インスタンスになるように選ぶことと、
    前記署名キー・リーダ・インスタンスによって署名キー・ペアを生成することであって、前記署名キー・ペアはパブリック署名キー及びプライベート署名キーを含む、生成することと、
    前記パブリック署名キーを前記共用データベースに格納することと、
    前記認可インスタンスのうちのリクエスト中の認可インスタンスに暗号化プライベート署名キーを送信することであって、前記プライベート署名キーは前記リクエスト中の認可インスタンスに対応する前記パブリック・ホスト・キーを用いて暗号化される、送信することと
    を行うようにコンピュータ・システムを制御するための命令が格納された
    非一時的コンピュータ可読ストレージ媒体。
  9. 前記暗号化プライベート署名キーを送信することは、
    前記リクエスト中の認可インスタンスにより、前記共用データベースに格納されている前記パブリック署名キーを検出することと、
    前記リクエスト中の認可インスタンスにより、前記署名キー・リーダ・インスタンスから前記プライベート署名キーをリクエストすることと、
    前記リクエストのソースIPアドレスを調べることによって、前記署名キー・リーダ・インスタンスに対して行われた前記リクエストを検証することと、
    前記リクエストを検証する際に、前記リクエスト中の認可インスタンスに対応する前記パブリック・ホスト・キーを前記共用データベースから取得することと、
    前記パブリック・ホスト・キーを用いて前記プライベート署名キーを暗号化することと、
    前記暗号化プライベート署名キーを前記リクエスト中の認可インスタンスへ送信することと
    を前記コンピュータ・システムに行わせる命令を含む、請求項8に記載の非一時的コンピュータ可読ストレージ媒体。
  10. 前記リクエストを検証することは、
    前記リクエスト中の認可インスタンスについての登録証明を前記構成ファイルから取得することと、
    前記リクエストの前記ソースIPアドレスが、前記リクエスト中の認可インスタンスの前記登録証明に置かれた格納済みIPアドレスと一致することを検証することと
    を前記コンピュータ・システムに行わせる命令をさらに含む、請求項9に記載の非一時的コンピュータ可読ストレージ媒体。
  11. 前記リクエスト中の認可インスタンスについての、前記リクエスト中の認可インスタンスのホスト名を含む登録証明を前記構成ファイルから取得することと、
    前記リクエスト中の認可インスタンスの前記ホスト名でのコールバックを介して、前記暗号化プライベート署名キーを提供することと
    を前記コンピュータ・システムに行わせる命令をさらに含む、請求項8~請求項10のいずれか1項に記載の非一時的コンピュータ可読ストレージ媒体。
  12. 前記署名キー・リーダ・インスタンスがもはや応答しないことを検出することと、
    前記認可インスタンスから新しい署名キー・リーダ・インスタンスを選ぶことと
    を前記コンピュータ・システムに行わせる命令をさらに含む、請求項8~請求項11のいずれか1項に記載の非一時的コンピュータ可読ストレージ媒体。
  13. 前記署名キー・ペアのロールオーバを行って新しい署名キー・ペアを生成することと、
    新しいパブリック署名キーを前記共用データベースに加えることと
    を前記コンピュータ・システムに行わせる命令をさらに含む、請求項8~請求項12のいずれか1項に記載の非一時的コンピュータ可読ストレージ媒体。
  14. 前記署名キー・ペアは、前記署名キー・リーダ・インスタンスのメモリに格納される、請求項8~請求項13のいずれか1項に記載の非一時的コンピュータ可読ストレージ媒体。
  15. プライベート署名キーを認可インスタンスの間に分散させるためのコンピュータ・システムであって、
    データ処理コンポーネントと、
    物理的メモリと、
    コンピュータ実行可能プログラム・コードが格納されたローカル・データ・ストレージと
    を備え、
    前記コンピュータ実行可能プログラム・コードは、前記データ処理コンポーネントによって実行されたときに、
    登録証明を構成に与えることによって、共通サービスに参加する複数の認可インスタンスを前記構成ファイルに登録することと、
    前記認可インスタンスの各々についてのホスト・インスタンス・キー・ペアを生成することであって、前記ホスト・インスタンス・キー・ペアの各々はパブリック・ホスト・キー及びプライベート・ホスト・キーを含む、生成することと、
    前記パブリック・ホスト・キーを共用データベースに格納することと、
    前記認可インスタンスのうちの1つを、署名キー・リーダ・インスタンスになるように選ぶことと、
    前記署名キー・リーダ・インスタンスによって署名キー・ペアを生成することであって、前記署名キー・ペアはパブリック署名キー及びプライベート署名キーを含む、生成することと、
    前記パブリック署名キーを前記共用データベースに格納することと、
    前記認可インスタンスのうちのリクエスト中の認可インスタンスに暗号化プライベート署名キーを送信することであって、前記プライベート署名キーは前記リクエスト中の認可インスタンスに対応する前記パブリック・ホスト・キーを用いて暗号化される、送信することと
    を前記データ処理コンポーネントに行わせる
    コンピュータ・システム。
  16. 前記暗号化プライベート署名キーを送信することは、
    前記リクエスト中の認可インスタンスにより、前記共用データベースに格納されている前記パブリック署名キーを検出することと、
    前記リクエスト中の認可インスタンスにより、前記署名キー・リーダ・インスタンスから前記プライベート署名キーをリクエストすることと、
    前記リクエストのソースIPアドレスを調べることによって、前記署名キー・リーダ・インスタンスに対して行われた前記リクエストを検証することと、
    前記リクエストを検証する際に、前記リクエスト中の認可インスタンスに対応する前記パブリック・ホスト・キーを前記共用データベースから取得することと、
    前記パブリック・ホスト・キーを用いて前記プライベート署名キーを暗号化することと、
    前記暗号化プライベート署名キーを前記リクエスト中の認可インスタンスへ送信することと
    を前記データ処理コンポーネントに行わせる、請求項15に記載のコンピュータ・システム。
  17. 前記リクエストを検証することは、
    前記リクエスト中の認可インスタンスについての登録証明を前記構成ファイルから取得することと、
    前記リクエストの前記ソースIPアドレスが、前記リクエスト中の認可インスタンスの前記登録証明に置かれた格納済みIPアドレスと一致することを検証することと
    を前記データ処理コンポーネントに行わせる、請求項16に記載のコンピュータ・システム。
  18. 前記リクエスト中の認可インスタンスについての、前記リクエスト中の認可インスタンスのホスト名を含む登録証明を前記構成ファイルから取得することと、
    前記リクエスト中の認可インスタンスの前記ホスト名でのコールバックを介して、前記暗号化プライベート署名キーを提供することと
    をさらに含む、請求項15~請求項17のいずれか1項に記載のコンピュータ・システム。
  19. 前記署名キー・リーダ・インスタンスがもはや応答しないことを検出することと、
    前記認可インスタンスから新しい署名キー・リーダ・インスタンスを選ぶことと
    をさらに含む、請求項15~請求項18のいずれか1項に記載のコンピュータ・システム。
  20. 前記署名キー・ペアのロールオーバを行って新しい署名キー・ペアを生成することと、
    新しいパブリック署名キーを前記共用データベースに加えることと
    をさらに含む、請求項15~請求項19のいずれか1項に記載のコンピュータ・システム。
JP2022550148A 2020-03-13 2021-02-10 エンドポイント・インスタンスの間のセキュアなプライベート・キー分散 Pending JP2023516130A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/818,534 US11121864B1 (en) 2020-03-13 2020-03-13 Secure private key distribution between endpoint instances
US16/818,534 2020-03-13
PCT/IB2021/051090 WO2021181176A1 (en) 2020-03-13 2021-02-10 Secure private key distribution between endpoint instances

Publications (1)

Publication Number Publication Date
JP2023516130A true JP2023516130A (ja) 2023-04-18

Family

ID=77665439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022550148A Pending JP2023516130A (ja) 2020-03-13 2021-02-10 エンドポイント・インスタンスの間のセキュアなプライベート・キー分散

Country Status (10)

Country Link
US (1) US11121864B1 (ja)
JP (1) JP2023516130A (ja)
KR (1) KR20220134572A (ja)
CN (1) CN115280718B (ja)
AU (1) AU2021235526B2 (ja)
CA (1) CA3166663A1 (ja)
DE (1) DE112021000340T5 (ja)
GB (1) GB2608570B (ja)
IL (1) IL295069A (ja)
WO (1) WO2021181176A1 (ja)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002013435A1 (en) * 2000-08-04 2002-02-14 First Data Corporation Method and system for using electronic communications for an electronic contact
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7523490B2 (en) * 2002-05-15 2009-04-21 Microsoft Corporation Session key security protocol
FR2842680A1 (fr) * 2002-07-19 2004-01-23 France Telecom Procede de signature de liste et application au vote electronique
US7860243B2 (en) 2003-12-22 2010-12-28 Wells Fargo Bank, N.A. Public key encryption for groups
JP4932033B2 (ja) * 2008-03-28 2012-05-16 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
EP2442253A1 (en) * 2010-10-12 2012-04-18 Research In Motion Limited A method for securing credentials in a remote repository
CN103460195B (zh) * 2011-02-11 2016-04-13 西门子医疗保健诊断公司 用于安全软件更新的系统和方法
US10333903B1 (en) 2015-06-16 2019-06-25 Amazon Technologies, Inc. Provisioning network keys to devices to allow them to provide their identity
EP3497878B1 (en) * 2016-09-06 2020-05-20 Huawei Technologies Co., Ltd. Apparatus and methods for distributed certificate enrollment
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10581595B2 (en) 2017-03-01 2020-03-03 International Business Machines Corporation Generating public/private key pairs to deploy public keys at computing devices to verify digital signatures
JP6910894B2 (ja) 2017-09-01 2021-07-28 キヤノン株式会社 情報処理装置、制御方法、およびプログラム
US10924289B2 (en) * 2018-07-13 2021-02-16 Visa International Service Association Public-private key pair account login and key manager
US11223485B2 (en) * 2018-07-17 2022-01-11 Huawei Technologies Co., Ltd. Verifiable encryption based on trusted execution environment
CN109600224A (zh) 2018-11-06 2019-04-09 卓望数码技术(深圳)有限公司 一种sm2密钥生成、签名方法、终端、服务器和存储介质
JP2020522034A (ja) 2019-03-26 2020-07-27 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 複数の鍵ペア署名を使用したプログラム実行およびデータ証明スキーム

Also Published As

Publication number Publication date
AU2021235526B2 (en) 2023-07-13
KR20220134572A (ko) 2022-10-05
CN115280718B (zh) 2023-10-24
IL295069A (en) 2022-09-01
GB202215019D0 (en) 2022-11-23
CA3166663A1 (en) 2021-09-16
US11121864B1 (en) 2021-09-14
WO2021181176A1 (en) 2021-09-16
CN115280718A (zh) 2022-11-01
GB2608570B (en) 2023-09-13
US20210288790A1 (en) 2021-09-16
AU2021235526A1 (en) 2022-08-25
GB2608570A (en) 2023-01-04
DE112021000340T5 (de) 2022-10-20

Similar Documents

Publication Publication Date Title
US11563588B2 (en) Securing a path at a selected node
US20200076585A1 (en) Storage device key management for encrypted host data
US10833860B2 (en) Shared key processing by a host to secure links
US10560476B2 (en) Secure data storage system
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
US11038671B2 (en) Shared key processing by a storage device to secure links
US11716206B2 (en) Certificate based security using post quantum cryptography
US10931453B2 (en) Distributed encryption keys for tokens in a cloud environment
US20200296089A1 (en) Validating containers on a microservice framework
JP2024501197A (ja) データをセキュア保護するためのハイブリッド鍵導出
US9906370B2 (en) Trust relationship management amongst racks in a data center
US10715318B2 (en) Lightweight cryptographic service for simplified key life-cycle management
US10972455B2 (en) Secure authentication in TLS sessions
US11606205B2 (en) Causal total order broadcast protocols using trusted execution environments
US20230016036A1 (en) Serverless identity management
US11032708B2 (en) Securing public WLAN hotspot network access
AU2021235526B2 (en) Secure private key distribution between endpoint instances
US20220311616A1 (en) Connection resilient multi-factor authentication
US11916890B1 (en) Distribution of a cryptographic service provided private session key to network communication device for secured communications
Esiner et al. DMZtore: A dispersed data storage system with decentralized multi-factor access control

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230721