JP2024516389A - コンピューティング・ネットワークへの許可型ブロックチェーン・アクセスのためのシステムおよび方法 - Google Patents

コンピューティング・ネットワークへの許可型ブロックチェーン・アクセスのためのシステムおよび方法 Download PDF

Info

Publication number
JP2024516389A
JP2024516389A JP2023564192A JP2023564192A JP2024516389A JP 2024516389 A JP2024516389 A JP 2024516389A JP 2023564192 A JP2023564192 A JP 2023564192A JP 2023564192 A JP2023564192 A JP 2023564192A JP 2024516389 A JP2024516389 A JP 2024516389A
Authority
JP
Japan
Prior art keywords
network
host node
computing nodes
node
new host
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
JP2023564192A
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 JP2024516389A publication Critical patent/JP2024516389A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computer And Data Communications (AREA)

Abstract

コンピューティング・ノードのネットワークへのアクセスを提供するコンピュータ実施システム、方法およびコンピュータ・プログラム製品であって、クライアントによって、ネットワーク、好ましくは私設ネットワーク内のホスト・ノードへのアクセスをリクエストすること、デジタル証明書発行器を選択すること、デジタル証明書発行器によって、クライアントのトークンの識別を確認すること、証明書発行器によって、分散台帳にノンスを追加すること、およびネットワーク内のホスト・ノードへのアクセスをクライアントに許可することを含む、コンピュータ実施システム、方法およびコンピュータ・プログラム製品。一実施形態では、コンピューティング・ノードがCPU容量に基づいてランク付けされ、最も高いCPU容量ランクを有するコンピューティング・ノードが、ノンスに対する解を見つけるプルーフ・オブ・キャパシティ・コンセンサスに参加するように選択される。

Description

本出願は一般に、情報ハンドリングもしくはデータ処理ネットワークまたはその両方に関し、より詳細には、ネットワーク内でユーザを認証すること、およびコンピューティング・ネットワークへのアクセス(例えばリモート・アクセス)を、好ましくは改良された許可型ブロックチェーン・プロセス(permissioned blockchain process)を使用して提供することに関する。
セキュア・シェル(Secure Shell)またはセキュア・ソケット・シェル(Secure Socket Shell)としても知られるSSHは、セキュアでないネットワークを介してコンピュータにアクセスするセキュアな手段をユーザに提供する暗号ネットワーク・プロトコルである。SSHは、1台のコンピュータから別のコンピュータへのセキュアなリモート・ログインの方法であって、強力な認証を提供し、強力な暗号化を用いて通信を保護する方法である。セキュア・シェル(SSH)証明書は、コンピューティング・ネットワーク内の1つまたは複数のホストに対して多数のユーザを認証するスケーラブルな手段である。全てのホストは、認証局(Certificate Authority)の公開鍵によって署名された証明書を信用するように構成されている。認証局は伝統的に、単一のホストから発行される鍵対(公開鍵と秘密鍵)である。その単一のホストによる障害、例えばその単一のホストの停止がある場合には、ネットワークにサインインする試みが失敗に終わるという問題が生じる。言い換えると、その単一のホストがデジタル証明書(例えばサーティフィケート・オブ・オーソリティ(Certificate of Authority)(CA))を発行することができない場合には、クライアント/ピア・コンピューティング・デバイスはネットワークに加わることができず、したがって、1つの中心認証局を有することが、単一の、潜在的に破壊的な障害発生点となりうる。私有のCAサーバを使用することは、その唯一のサーバで何か不都合が生じたときには、サーバを稼働可能に戻すのにかかる時間の間、SSH認証が遮断されるため、リスクとなりうる。サーティフィケート・オブ・オーソリティ、例えばSSH証明書を発行する唯一の単一のコンピューティング・ノードを有することの不利益を克服するシステムもしくは方法またはその両方を有することは有利であろう。
さらに、唯一のサーバにサーティフィケート・オブ・オーソリティを発行させることは、ネットワークへオンボード中の新たな計算ノードの非効率なプロセスも提供する。ネットワークに新たなノードが追加されるたびに、その新たなノードが、CAサーバからの署名された証明書を受け取ることを可能にするため、いくつかのステップが必要となる。新たなノードごとに、サーティフィケート・オブ・オーソリティの公開鍵のアップロードおよびSSHD構成の変更が必要となる。これらのステップは、サーティフィケート・オブ・オーソリティ公開鍵を変更しなければならないときにも必要となる。単一のCAサーバを有することは、これらの全てのタスクをハンドリングする際に非効率でありうる。新たなノードがネットワークにアクセスすることを可能にするための全てのタスクをハンドリングする単一のサーバまたはコンピューティング・ノードを有することの不利益を克服するシステムもしくは方法またはその両方を有することは有益であろう。
本開示の理解を助けるため、本開示を限定する意図なしに、本開示の概要を示す。本開示は、当業者を対象としている。本開示のさまざまな態様および特徴は、いくつかの状況または例では別々に、あるいは他の状況または例では、本開示の他の態様、実施形態もしくは特徴またはそれらの組合せと組み合わせて、有利に使用することができることを理解すべきである。したがって、異なる効果を達成するため、これらのシステムもしくは方法またはその両方に変形および変更を加えることができる。この点に関して、本開示は、1つまたは複数の発明を提示および説明すること、ならびに複数の態様において、本発明は、特許請求項によって定義された数多くの発明を含むことが理解される。
コンピューティング・ノードのネットワーク、好ましくはコンピューティング・ノードのクローズド・ネットワークへのアクセスを提供するシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せが開示される。1つまたは複数の実施形態では、このシステム、方法もしくはコンピュータ・プログラムまたはこれらの組合せが、クライアントによって、ネットワーク、好ましくは私設ネットワーク内のホスト・ノードへのアクセスをリクエストすること、デジタル証明書発行器(digital certificate issuer)を選択すること、デジタル証明書発行器によって、クライアントのトークンの識別を確認すること、証明書発行器によって、分散台帳(distributed ledger)にノンス(nonce)を追加すること、およびネットワーク内のホスト・ノードへのアクセスをクライアントに許可することを含む。一実施形態では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せが、ネットワーク内のコンピューティング・ノードをランク付けすること、およびネットワーク内のコンピューティング・ノードのランクに従って、ノンスに対する解を見つけるプルーフ・オブ・キャパシティ・コンセンサス(proof-of-capacity consensus)に参加する1つまたは複数の(好ましくは少なくとも3つの)コンピューティング・ノードを選択することを含む。ネットワーク内のコンピューティング・ノードをランク付けすることは、コンピューティング・ノードの使用されていないCPU容量に基づくことが好ましい。一実施形態では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せがさらに、最も高いランクを有するコンピューティング・ノードをメイン・マイナー(main miner)として選択すること、およびメイン・マイナーによって、メイン・マイナー上にインストールされたプラグインからデッドラインを取り出すことを含む。一態様では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せがさらに、プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全てのコンピューティング・ノード上のノンス解ストア(nonce solution store)に、ノンスに対する可能な全ての解を格納することを含む。
一態様では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せがさらに、プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全てのコンピューティング・ノードによって、ノンスに対する解を見つけるプルーフ・オブ・キャパシティ・コンセンサスを計算することを含む。一態様では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せがさらに、ノンスに対する解を含むノードを、デジタル証明書発行器であるとして選択することを含む。追加の態様では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せがさらに、プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全てのコンピューティング・ノードによって、ノンスに対する解を見つけるプルーフ・オブ・キャパシティ・コンセンサスを計算すること、およびプルーフ・オブ・キャパシティ・コンセンサスに参加するように選択されたコンピューティング・ノードがいずれも、デッドラインまでにノンスに対する解を見つけなかったことに応答して、メイン・マイナーをデジタル証明書発行器として選択することを含む。
1つまたは複数の実施形態では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せがさらに、ネットワークに新たなホスト・ノードを追加することをさらに含み、ネットワークに新たなホスト・ノードを追加することは、ネットワーク上の全てのコンピューティング・ノードによって、新たなホスト・ノードが一組の定められたネットワーク特性を有するかどうかを判定すること、新たなホスト・ノードが一組の定められたネットワーク特性を有すると判定したことに応答して、新たなホスト・ノードから状態情報を取り出すこと、および状態情報を、ネットワーク上の全てのコンピューティング・ノードと共有することを含む。一態様では、ネットワークに新たなホスト・ノードを追加することが、分散台帳を新たなホスト・ノードと共有することをさらに含み、追加の態様では、新たなホスト・ノードが、コンピューティング・ノードと同じネットワークに追加されることを保証すること、新たなホスト・ノード上にプラグインをインストールすること、プラグインによってネットワークを検出すること、およびネットワークに新たなホスト・ノードが加わったことを、ネットワーク上の全てのコンピューティング・ノードに通知することを含む。一実施形態では、分散台帳を新たなホスト・ノードと共有することが、RAFTプロトコルを利用することを含み、RAFTリーダー・ノード内の分散台帳を含むデータベースが、新たなホスト・ノードと共有される。
命令を含む非一過性コンピュータ可読媒体であって、それらの命令が、少なくとも1つのハードウェア・プロセッサによって実行されたときに、上で論じたプロセスもしくはステップまたはその両方を実行するように、少なくとも1つのハードウェア・プロセッサを構成する、非一過性コンピュータ可読媒体も開示される。1つまたは複数の態様では、コンピューティング・ノードのネットワークを構成するためのコンピュータ実施システムもしくは方法またはその両方であって、コンピュータ実施システムもしくは方法またはその両方が、プログラム命令を格納したメモリ・ストレージ・デバイスと、コンピューティング・ノードのネットワークを構成するための前記プログラム命令を実行するための回路および論理を有するハードウェア・プロセッサとを含み、ハードウェア・プロセッサが、前記メモリ・ストレージ・デバイスに結合されており、前記プログラム命令を実行したことに応答して、上で論じたプロセスもしくはステップまたはその両方を実行するように構成されている、コンピュータ実施システムもしくは方法またはその両方が開示される。1つまたは複数の実施形態では、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せが、ネットワークに新たなホスト・ノードを追加し、このシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せが、新たなホスト・ノードが他のコンピューティング・ノードと同じネットワークに追加されるかどうかを判定すること、新たなホスト・ノードが他のコンピューティング・ノードと同じネットワークに追加されると判定したことに応答して、新たなホスト・ノード上にプラグインをインストールすること、プラグインによってネットワークを検出すること、ネットワークに新たなホスト・ノードが加わったことを、ネットワーク上の全てのコンピューティング・ノードに通知すること、および分散台帳を新たなホスト・ノードと共有することを実行するように構成されており、もしくはこれらのことを実行するための命令を含み、またはその両方を達成する。一実施形態では、このプラグインが、証明書発行器モジュール、ランク付けアルゴリズム・モジュール、ノンス生成器、分散台帳および状態情報を含むドキュメント・データベース、およびキーバリュー(Key-Value)・データベースを含む。
本発明の上記の目的、特徴もしくは利点またはこれらの組合せ、およびその他の目的、特徴もしくは利点またはこれらの組合せは、添付図面に示された本発明の下記のより詳細な説明および例示的な実施形態から明らかになる。添付図面では、同じ参照符号が一般に本発明の例示的な実施形態の同じ部分を表す。
ネットワークにホストを追加し、もしくはネットワーク、例えばノードのコンピューティング・ネットワーク内のノードにリモート・アクセスすることを、好ましくは許可型ブロックチェーン技術を使用してクライアントに許可し、またはこの両方を実行するシステムもしくは方法またはその両方、および一態様では、ノードを追加し、もしくはクローズド・ネットワーク内のノードにリモート・アクセスし、またはこの両方を実行するシステムもしくは方法またはその両方のさまざまな態様、特徴もしくは実施形態またはこれらの組合せは、提示された図ともに読んだときにより十分に理解されるであろう。これらのシステムおよび方法の態様、特徴もしくはさまざまな詳細またはこれらの組合せを示すため、これらの図には実施形態が提供されているが、特許請求項は、示された正確な配置、特徴、態様、実施形態、システム、モジュール、機能ユニット、プログラミング、命令、方法、プロセス、技術もしくはデバイスまたはこれらの組合せに限定されるべきではなく、示された配置、特徴、態様、実施形態、システム、モジュール、機能ユニット、プログラミング、命令、方法、プロセス、技術もしくはデバイスまたはこれらの組合せは、単独で、あるいは他の配置、特徴、態様、実施形態、システム、モジュール、機能ユニット、プログラミング、命令、方法、技術、プロセスもしくはデバイスまたはこれらの組合せと組み合わせて使用することができる。
本開示の一実施形態による、ピア・ネットワーク上で接続された2つのピア・デバイスを示す図である。 ネットワークを介して接続された1つのピア・グループ内の複数のピア・デバイスを示す図である。 ネットワークを介して他のピア・デバイスに接続可能な本開示による例示的なピア・デバイスを示す図である。 本開示の1つまたは複数の実施形態に従って接続可能ないくつかのピア・デバイスを有する例示的なピア・ネットワークを概略的に示す図である。 本開示の1つまたは複数の実施形態を実施するためのピア・デバイスまたはノードへのプラグインの概観図の一実施形態を概略的に示す図である。 本開示の1つまたは複数の実施形態による、図5のプラグインの部分としての証明書発行器モジュールを概略的に示す図である。 本開示の一実施形態による、ネットワークにコンピューティング・ノード、例えばホスト・ノードを追加する方法の概略フローチャートである。 本開示の一実施形態による、ノード、例えばクライアントがネットワーク内のノードの1つにアクセスする方法の概略フローチャートである。 本開示の一実施形態による、サーティフィケート・オブ・オーソリティ(CA)発行器を選択する方法の概略フローチャートである。 本開示の一実施形態による、ネットワーク内のノード間でデータを同期させる方法の概略フローチャートである。
以下の説明は、本発明の全体的な原理を示すためになされたものであり、以下の説明が、本明細書に記載された本発明の発想を限定することは意図されていない。以下の詳細な説明には、コンピューティング・ネットワーク内のノードもしくはピア・デバイスまたはその両方にセキュアにアクセスし、一態様ではノードを追加し、コンピューティング・ネットワークにリモート・アクセスする、本発明のシステム、方法もしくは技術またはこれらの組合せの理解を提供するために、数多くの詳細が記載されている。しかしながら、特定の詳細がなくても、本発明のシステムもしくは方法またはその両方の異なる数多くの実施形態を実施することができること、ならびに特許請求項および本開示は、本明細書に具体的に記載および図示された配置、システム、デバイス、モジュール、機能ユニット、プログラミング、命令、実施形態、特徴、態様、プロセス、方法、技術もしくは詳細またはこれらの組合せに限定されるべきでないことが当業者には理解される。さらに、本明細書に記載された特定の特徴、態様、実施形態、配置、システム、デバイス、モジュール、機能ユニット、プログラミング、命令、方法、プロセス、技術、詳細などを、さまざまな可能な組合せおよび置換の各々で、記載された他の特徴、態様、実施形態、配置、構造体、システム、デバイス、モジュール、機能ユニット、プログラミング、命令、技術、方法、プロセス、詳細などと組み合わせて使用することもできる。
当業者は、ネットワーク化されたコンピューティング環境、例えばコンピューティング・ノードのネットワークに、例えばSSHプロトコルを使用してセキュアにアクセスすることを含むネットワーク化されたコンピューティング環境を含む、コンピューティング環境に精通していると仮定される。さらに、当業者は、許可型ブロックチェーン技術にも精通していると仮定される。以下の議論では、コンピューティング・ネットワーク・アーキテクチャ、許可型ブロックチェーン技術、コンピュータ・ノードへのリモート・アクセス(例えばSSHリモート・アクセス)、およびそれらの動作を含む、当業者には明白であるはずのコンピューティング・ネットワークの従来の特徴は省き、または簡単にしか説明しない。符号が付けられた要素は、その要素が導入された図に従って符号付けされており、通常は、後続の図を通してその符号によって呼ばれることに留意されたい。
図1は、コンピューティング・ネットワーク30内で接続された、コンピューティング・ノードとも呼ばれる2つのピア・デバイス25Aおよび25Bを示している。ピア・デバイス25は、コンピュータ、仮想コンピュータもしくは仮想機械(VM)またはノードであることができる。2つのピア・デバイス25はいずれも、他方のピア・デバイスに対するホストまたはクライアントの役割を果たすことができる。図2は、コンピューティング・ネットワーク30内でネットワーク24を介して接続されたいくつかのピア・デバイス25を示している。コンピューティング・ネットワーク30内において、ピア・デバイス25はいずれも、他のピア・デバイスのホストまたはクライアントの役割を果たすことができる。ピア・デバイス25はノードとも呼ばれ、図示されているように、多くの形態、例えばコンピュータ32、ラップトップ33、スマート・フォン34、パーソナル・アシスタント35、端末36、仮想機械またはその他の形態をとることができる。
図3は、コンピューティング・ネットワーク内でノード25として使用することができる、本開示による例示的なコンピューティング・システムを示している。図示のコンピュータ・システムまたはコンピューティング・ノード25は、適当な電子コンピュータ・システムの一例に過ぎず、本発明の実施形態の使用または機能の範囲に関する限定を暗示することを意図したものではないことを理解すべきである。例えば、示されたシステムは、数多くの他の汎用または専用コンピューティング・システム環境または構成とともに動作することがある。図3に示されたシステムとともに使用するのに適していることがあるよく知られたコンピューティング・システム、環境もしくは構成またはこれらの組合せの例には、限定はされないが、メインフレーム・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、パーソナル・コンピュータ、ネットワーク化されたコンピュータ、ミニコンピュータ・システム、ハンドヘルドまたはラップトップ・デバイス、タブレット、スマート・フォン、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能なコンシューマ電子機器、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれることがある。
いくつかの実施形態では、コンピュータ・システムまたはノード25が、メモリ16に格納されたプログラム・モジュールまたはソフトウェア・プログラムとして実装された、コンピュータ・システムによって実行されているコンピュータ・システム実行可能命令の一般的な文脈で説明されることがある。一般に、プログラム・モジュールは、本発明に従って特定のタスクを実行し、ならびに/または特定の入力データおよび/もしくはデータ・タイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことがある。
コンピュータ・システム25のコンポーネントには、限定はされないが、1つまたは複数のプロセッサまたは処理ユニット12、メモリ16、およびメモリ16を含むさまざまなシステム・コンポーネントをプロセッサ12に動作可能に結合するバス14が含まれることがある。いくつかの実施形態では、プロセッサ12が、メモリ16からロードされた1つまたは複数のプログラム・モジュール15を実行することができ、これらのプログラム・モジュールは、本発明の1つまたは複数の方法実施形態をプロセッサに実行させるソフトウェア(プログラム命令)を実装する。いくつかの実施形態では、プログラム・モジュール15、例えばソフトウェア・プログラムを、プロセッサ12の回路にプログラムすること、およびメモリ16、ストレージ・デバイス18、ネットワーク24もしくはこれらの組合せ、またはこれらの組合せからロードすることができる。一般に、プロセッサ12は、集積回路を含む、プロセッサ12の動作を実行するための回路を含むことが理解される。
バス14は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィクス・ポート(accelerated graphics port)、およびさまざまなバス・アーキテクチャのうちの任意のバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造体のうちの任意の1つまたは複数のタイプのバス構造体を表しうる。例として、限定はされないが、このようなアーキテクチャには、インダストリアル・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バスおよびペリフェラル・コンポーネント・インターコネクツ(PCI)バスが含まれる。
コンピュータ・システム25は、さまざまなコンピュータ・システム可読媒体を含むことができる。このような媒体は、コンピュータ・システムによるアクセスが可能な使用可能な任意の媒体であることができ、揮発性媒体と不揮発性媒体の両方、および取外し可能媒体と非取外し可能媒体の両方を含むことができる。メモリ16(時にシステム・メモリと呼ばれる)は、ランダム・アクセス・メモリ(RAM)、キャッシュ・メモリもしくは他の形態のメモリまたはこれらの組合せなどの揮発性メモリの形態のコンピュータ可読媒体を含むことができる。コンピュータ・システム25はさらに、取外し可能/非取外し可能な揮発性/不揮発性の他のコンピュータ・システム・ストレージ媒体を含むことができる。単なる例として、非取外し可能な不揮発性磁気媒体(例えば「ハード・ドライブ」)から読み取るため、および非取外し可能な不揮発性磁気媒体(例えば「ハード・ドライブ」)に書き込むために、ストレージ・システム18を提供することができる。図示されてはいないが、取外し可能な不揮発性磁気ディスク(例えば「フロッピー(R)・ディスク」)から読み取るため、および取外し可能な不揮発性磁気ディスク(例えば「フロッピー(R)・ディスク」)に書き込むための磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROMもしくは他の光学式媒体などの取外し可能な不揮発性光ディスクから読み取るため、またはCD-ROM、DVD-ROMもしくは他の光学式媒体などの取外し可能な不揮発性光ディスクに書き込むための光ディスク・ドライブを提供することができる。このような例では、1つまたは複数のデータ媒体インターフェースによって各々をバス14に接続することができる。
コンピュータ・システム25はさらに、1つもしくは複数の外部デバイス26、例えばキーボード、ポインティング・デバイス、ディスプレイ28など;ユーザがコンピュータ・システムと対話することを可能にする1つもしくは複数のデバイス;またはコンピュータ・システムが他の1つもしくは複数のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えばネットワーク・カード、モデムなど)、あるいはこれらの組合せと通信することができる。このような通信は入力/出力(I/O)インターフェース20を介して実施することができる。
コンピュータ・システムまたはノード25は、ネットワーク・アダプタ22を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、私設ネットワーク、公衆ネットワーク(例えばインターネット)もしくはクローズド・ネットワークまたはこれらの組合せなどの1つまたは複数のネットワーク24と通信することができる。本開示では、コンピュータ・システム25がそれによって通信することになるネットワーク24のうちの1つまたは複数のネットワーク24が、ノード25を、ネットワーク内および一実施形態ではクローズド・ネットワーク内の他の1つまたは複数のノードに接続することになる。図示されているように、ネットワーク・アダプタ22は、バス14を介してコンピュータ・システムの他のコンポーネントと通信する。図示されてはいないが、このコンピュータ・システムとともに、他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方を使用することができることを理解すべきである。それらのコンポーネントの例には、限定はされないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク-ドライブ・アレイ、RAIDシステム、テープ・ドライブおよびデータ・アーカイバル・ストレージ・システムなどが含まれる。
1つまたは複数の実施形態では、高可用性SSH認証のために、ネットワーク内のコンピュータ・ノード間の許可型ピア・ツー・ピアSSH認証局認証が提供され、一態様では、ネットワーク内の全てのホストに、ネットワーク・ホストのいずれかにアクセスするため、例えばログインするために使用されるサーティフィケート・オブ・オーソリティ(CA)の署名に参加する許可が与えられる。1つまたは複数の実施形態では、ネットワークが、その識別の適当な確認の後であればネットワークに加わることを誰にでも許可する許可型ブロックチェーン技術を使用する。1つまたは複数の態様では、署名されたサーティフィケート・オブ・オーソリティをコンセンサスによって確認すること、共有台帳にアクセスすること、および署名されたサーティフィケート・オブ・オーソリティ(CA)のレコードを格納することを全てのホストに許可するために、許可型ブロックチェーン技術が使用される。一実施形態では、ネットワーク内のあらゆるノードが一緒に動作してサーティフィケート・オブ・オーソリティを発行する。そのため、単一のまたは唯一のノードに依存してサーティフィケート・オブ・オーソリティ(CA)を発行することが排除される。許可型ブロックチェーンを利用して、クライアント・ノードにリモート・ホストへSSHする資格を与え、それによって伝統的なCAアーキテクチャにおける潜在的な単一の障害発生点を回避することができる。
一実施形態では、ネットワーク内のノードのうちのいずれかのノードにアクセスすること、例えばSSHアクセスすることを望んでいるクライアントにサーティフィケート・オブ・オーソリティを発行する能力を保持した分散または共有ドキュメント(台帳)を、多数のノードが格納する。一態様では、ネットワーク内の全てのノードが、ブロックチェーン・コンセンサス・アルゴリズムを実行して、そのクライアントがネットワークへのアクセスを有することを確認したときに、サーティフィケート・オブ・オーソリティ(CA)が発行される。一実施形態によれば、クローズド・ネットワーク内のリモート・ホストのうちのいずれかのリモート・ホストへのアクセスを有する、アクセスを有していた、またはアクセスが拒絶されている全てのクライアントを格納するために共有台帳が使用される。一態様では、あらゆるホスト・ノードが、アクセスが許可された全てのノードのコピーを有し、このことは監査能力を向上させる。
追加の実施形態では、ブロックチェーン・コンセンサス・アルゴリズムを実行するために、ネットワーク内の計算ノードの使用されていないCPUが監視およびランク付けされる。ブロックチェーン・コンセンサス・アルゴリズムを解く際には、より使用されていない計算容量を有するノードが優先されることが好ましい。このようにすると、他の動作、例えばミッション・クリティカルな動作に利用されているCPUが、ブロックチェーン・プロセスによって妨害されたり、または停滞したりしない。1つまたは複数の実施形態では、システムもしくは方法またはその両方が、計算ノードを確認し、計算ノードが、容易にネットワークに加わりもしくはネットワークを去り、またはその両方を実行することを可能にするための一組のノード特性を使用する。
高可用性SSH認証のために、コンピューティング・ネットワーク内の計算ノード間の認証のための許可型ブロックチェーン用のシステム(例えばピア・ツー・ピアSSH認証局)が開示される。一実施形態では、全てのホストが、署名されたデジタル証明書をコンセンサスによって確認すること、署名されたデジタル証明書のレコードを格納すること(例えば、ネットワーク(例えばクローズド・ネットワーク)内のホストのうちのいずれかのホストへのアクセスを有する、アクセスを有していた、およびアクセスが拒絶されている全てのクライアントを格納すること)、ならびに共有分散台帳にアクセスすることができる。1つまたは複数の態様では、多数のノード、好ましくは使用されていない容量を有する多数のノードが、ネットワーク内のノードのうちのいずれかのノードにアクセス(例えばSSHアクセス)することを望んでいるユーザ(クライアント)にデジタル証明書を発行することができる。追加の態様では、多数のノードが共有分散台帳を格納しており、ネットワーク内のノードが、プルーフ・オブ・キャパシティ・コンセンサス・アルゴリズムを実行して、ノードもしくはネットワークまたはその両方にアクセスする許可をユーザ(クライアント)が受けていることを確認したときに、デジタル証明書が発行される。
図4は、ピア・ツー・ピア・デバイスとも呼ばれるコンピューティング・ノード25のコンピューティング・ネットワーク30を示している。1つまたは複数の実施形態では、ネットワーク30がクローズド・ネットワークであることが好ましく、図4では、ネットワーク30が、クローズド・リング・ネットワーク・トポロジを示している。例えば、それぞれのノード25は、コンピュータもしくは仮想機械またはその両方であることができる。それぞれのノードはホストまたはクライアントであることができる。ホストは通常、他のデバイス、例えばコンピュータに接続されたコンピュータ・ハードウェア・デバイスまたはソフトウェアであって、他のデバイス、例えばコンピュータに、データまたはサービスを、好ましくはコンピューティング・ネットワークを介して提供するコンピュータ・ハードウェア・デバイスまたはソフトウェアである。ネットワーク30上に接続されたあらゆるノード25(例えばコンピュータ)は、ネットワーク30上の他のピアまたはノード25に対するホストとして機能しうる。ホストは例えば、コンピュータ、仮想機械、ピア・デバイスもしくはノードまたはこれらの組合せであることができる。クライアントは通常、サーバまたはホストによって使用可能にされたサービスまたはデータにアクセスするコンピュータ・ハードウェア・デバイスまたはソフトウェアである。サーバまたはホストはしばしば、クライアントとは別の物理コンピュータ上に置かれており、クライアントは、データもしくはサービスまたはその両方にネットワーク経由でアクセスする。このホストは例えば、コンピュータ、仮想機械、ピア・デバイスもしくはノードまたはこれらの組合せであることができる。
ネットワーク30内のそれぞれのコンピュータ・ノード25は、オペレーティング・システム(O/S)ソフトウェア・プラグイン40を備える。1つまたは複数の実施形態では、それぞれの計算ノード25がプラグイン40をインストールし、プラグインは、好ましくはオペレーティング・システム(O/S)によって利用される適切なパッケージ・マネージャを使用してインストール、維持および更新される。1つまたは複数の実施形態では、プラグイン40が、ノード監視、ランク付けアルゴリズム、ノード情報捕捉、ブロックチェーン・プルーフ・オブ・キャパシティ・アルゴリズム、RAFTプロトコル、および非対称CA鍵の共有コピーを含む。例示的な一実施形態では、それぞれのプラグイン40が、図5に示されているように、ノンス解生成器42、ランク付けアルゴリズム・モジュール44、RAFTプロトコル・モジュール46、ドキュメント・データベース50、キーバリュー・データベース60、および証明書発行器モジュール70を含む。プラグイン40および開示されたモジュールは、一実施形態では、ネットワーク30にノード25、例えばホスト・ノードをセキュアに追加することをハンドリングするように、もしくは容易にするように、またはその両方を実行するように回路を動作させるため命令および論理を提供し、一態様では、クライアントがネットワーク30内のノード25の1つにセキュアにアクセスすること、例えばSSHリモート・アクセスすることをハンドリングするように、もしくは容易にするように、またはその両方を実行するように回路を動作させるための命令および論理を提供することが理解される。一実施形態では、クライアントがネットワーク内にある必要はないことを理解することができる。
ネットワーク30に加わる最初のノード25のプラグイン40は、ブロックチェーンのジェネシス・ブロック(例えば分散台帳)を生成する。ネットワーク30に加わる最初のノード25は、オンボード・ノードを確認するための必要な全ての構成および判定基準(例えば、サーティフィケート・オブ・オーソリティ構成、コンセンサスに必要なノードの最小数など)を生成もしくは作成し、または生成および作成する。オンボード・ノードを確認するための判定基準は、プラグイン40をダウンロードすることによって取得された構成ファイルに格納される。新たなノード25は、一組の特性を有していると成功のうちに確認された後にネットワーク30に加わることができる。これらの特性には、限定はされないが、ホスト名、新たなホストのドメイン・ネーム・システム(DNS)、新たなホストのサブネット、ネットマスク、新たなホストのネットワーク・インターフェース、インバウンド/アウトバウンド・ネットワーク帯域幅などが含まれうる。一実施形態では、ネットワークに加わっている他のノードが、ネットワークに加わる最初のノードの構成を自動的にピックアップする。
1つまたは複数の実施形態では、クライアントが、ネットワーク30内のいずれかのノード25(例えばリモート・ホスト)へのアクセスをリクエストしたときに、署名されたデジタル証明書を発行する1つのノード25が選択される。一態様では、共有サーティフィケート・オブ・オーソリティ(CA)鍵を用いてクライアントの公開鍵に署名するノードがランダムに選択される。一実施形態では、ネットワークへのアクセスがクライアントに許可される前に、リクエストの真正性を確認するために、使用可能なリソースを有するノードがコンセンサス・アルゴリズムを計算する。リクエストの真正性が確認されると、デジタル証明書(CA)に署名され、ブロックが生成され、署名されたデジタル証明書(例えばCA)がブロックとしてブロックチェーンに追加される(例えば分散台帳内に新たなエントリが作られる)。追加の実施形態では、署名されたデジタル証明書を発行するためおよびコンセンサス・アルゴリズムを計算するために計算ノードが使用することができるフリーの容量もしくは使用されていない容量またはフリーの使用されていない容量がどれくらいあるのかに基づいて、ネットワーク内の計算ノードがランク付けされる。一態様では、コンセンサス・アルゴリズムを実行してクライアント・リクエストの真正性を確認するのに、使用されていないコンピューティング容量もしくはフリーのコンピューティング容量または使用されていないフリーのコンピューティング容量を最も多く持っているノードが使用される。このようにすると、ブロックチェーン動作に使用されることによるミッション・クリティカルな動作用の計算リソースの消費を回避するために、ブロックチェーン動作に対して使用可能なリソースを有する計算ノードが、ブロックチェーン・セキュリティ・プロトコルを計算しもしくは解きまたは計算し解くために使用される。一実施形態では、ネットワーク内のそれぞれの計算ノードが、ブロックチェーン(分散台帳)の現在のコピーを格納している。
図5のプラグイン40の実施形態の詳細をさらに参照すると、図6でより詳細に説明される証明書発行器モジュール70は、デジタル証明書、例えばサーティフィケート・オブ・オーソリティ(CA)を生成および発行する。一実施形態では、証明書発行器モジュール70が、デジタル証明書を発行するように回路を動作させるための命令および論理を含む。1つまたは複数の実施形態では、1つのノードがサーティフィケート・オブ・オーソリティ(CA)を発行する代わりに、ネットワーク、例えばネットワーク30内のあらゆるノードがサーティフィケート・オブ・オーソリティ(CA)を発行することができる。一態様では、ランク付けアルゴリズム・モジュール42が、ノード25のCPU容量を決定もしくは計算または決定および計算し、最大CPU容量、例えば使用されていないコンピューティング・パワーを有するネットワーク30内のノード25を識別もしくはランク付けし、または識別およびランク付けする。一態様では、ランク付けアルゴリズム・モジュール42が、ブロックチェーン・コンセンサス問題を解くのにどのノードが参加し、デジタル証明書を発行することができるかを決定もしくは選択し、または決定および選択する。一実施形態では、ランク付けアルゴリズム・モジュール42が、ネットワーク30内のノード25のCPUコンピューティング・パワーを決定、計算、識別もしくはランク付けまたはこれらの組合せを実行するように回路を動作させるための命令および論理を有する。一態様では、それぞれのプラグイン40内のランク付けアルゴリズム42が、その対応するそれぞれのノード25のCPUコンピューティング・パワーを決定し、ネットワーク内の他のノードのCPUコンピューティング・パワーを受け取る。1つまたは複数の実施形態では、ミッション・クリティカルな動作を実行していないノードによって許可型ブロックチェーン動作を実行することができるように、ランク付けアルゴリズム・モジュール42が、ミッション・クリティカルなプロセスを実行していないノードを探している。
ノンス解生成器44は、ノンスに対する可能な解を生成し、それらの可能な解をノンス解ストア66に格納する。ノンスは、「ナンバー・オンリー・ユーズド・ワンス(number only used once)」の略であり、数学的暗号問題に対する解を表す。ノンスは、ブロックチェーン・マイナーがそれに対する解を探している数(例えばハッシュ)である。一実施形態では、ノンス解生成器44が、暗号ノンスを生成し、その解を見つけるように回路を動作させるための命令および論理を有する。ノンスに対する解を生成することができるどのノードであっても、そのノードは、ブロックチェーンへのブロックをマイニングし、デジタル証明書(CA)を生成するように選択される。ノンス解生成器は当技術分野でよく知られている。RAFTプロトコル・モジュール46は、ネットワーク内の全てのノードにわたってデータを同期させる。RAFTは、コンピューティング・ノードのクラスタ/ネットワークの全体にわたって状態機械を分散させるコンセンサス・アルゴリズムであり、クラスタ/ネットワーク内のそれぞれのノードが、同じ一連の状態遷移について合意に達することを保証する。RAFTプロトコル・モジュール46は、ネットワーク内の全てのコンピューティング・ノードにわたってデータを同期させるように回路を動作させるための命令および論理を含む。
プラグイン40はさらにドキュメント・データベース50を含み、ドキュメント・データベース50は、ブロックチェーン・データベース52および状態データベース54を含む。ブロックチェーン・データベース52は、ブロックチェーン、例えば発行されたサーティフィケート・オブ・オーソリティ(CA)の分散台帳を含む。状態データベース54は、ネットワーク30内の機械の状態、例えばノード情報、例えばメモリ、ストレージ、ワークロード(プロセス)、ホスト名、IPアドレスなどを含む。プラグイン40はさらにキーバリュー・データベース60を含み、キーバリュー・データベース60は、デッドライン・データベース62、ノンス採掘難易度(nonce difficulty)データベース64およびノンス解ストア66を含む。デッドライン・データベース62は、デッドライン、例えばマイナー(プルーフ・オブ・キャパシティ・アルゴリズムに参加しているノード)のいずれかがノンスに対する解を見つける時間を格納している。ノンス採掘難易度データベース64は、ノンスに対する解を提供する判定基準を含む。例えば、ノンス採掘難易度は、3つのゼロ(0)から始まる16桁のランダム数としてセットすることができる。ノンス解ストア66は、ノンスに対する全ての解(可能な推定)のリストを含む。
証明書発行器モジュール70は、図6に示されているように、証明書生成器(Certificate Generator)モジュール72、CA非対称鍵モジュール74、デジタル署名器(Digital Signer)モジュール75、認証提供器(Auth Provider)モジュール76、および識別確認モジュール78を含む。証明書生成器モジュール72は、デジタル証明書を生成するように回路を動作させるための命令および論理を有する。証明書生成器モジュール72は、ノードが暗号ノンスに対する解を見つけるときに呼び出される(例えばデジタル証明書を発行するノードを選択するプルーフ・オブ・キャパシティ・プロセス)。証明書生成器の出力はデジタル証明書である。
認証提供器76は、正当なユーザの認証を提供もしくは決定しまたは提供および決定するように回路を動作させるための命令および論理を有する。認証提供器モジュール76は、ユーザ、例えばリモート・アクセスしようとしているクライアントの識別を確認するために識別確認モジュール78から入力を受け取る。識別確認モジュール78は、ユーザ、例えばユーザのトークンの識別を確認するように回路を動作させるための命令および論理を有する。識別確認モジュール78は、認証提供器モジュール76からの認証提供器(例えばMicrosoft Active Directory、Google Suite、Okta、Tokens)およびクライアント・クレデンシャル(client credential)を受け入れる。識別確認モジュール78は、クライアントを成功のうちに認証することができるかどうかを示すブーリアン(例えば真/偽の指標)を出力する。クライアントは、ネットワーク内のノードへのSSHアクセスを試みる前にクレデンシャルおよび認証方法を指定する必要がある。
CA非対称鍵モジュール74は、ネットワーク内のそれぞれのノードの公開および秘密鍵を格納している。これらの2つの鍵は、デジタル署名器モジュール75への入力として使用される。デジタル署名器モジュール75は、サーティフィケート・オブ・オーソリティ(CA)に署名するように回路を動作させるための命令および論理を有する。デジタル証明書が生成されると、デジタル署名器モジュール75は、CA非対称鍵モジュール74から受け取った秘密鍵を用いてデジタル証明書に署名する。デジタル署名器モジュール75は、CA非対称鍵モジュール74から入力(秘密鍵)を受け取り、証明書生成器72からデジタル証明書(例えばCA)を受け取り、デジタル証明書(例えばCA)に秘密鍵を付加する。デジタル署名器モジュール75は、ブロックチェーンに追加する新たなブロック内のデータとして追加する署名されたデジタル証明書(例えばCA)を出力し、さらにこの証明書は、クライアントに返されて、ターゲット・ノードにログインする許可として使用される。ターゲット・ノードは、クライアントによって使用される証明書が正当なものであるかどうかを判断することができる。
プラグイン40、ならびにランク付けアルゴリズム42、ノンス解生成器44、RAFTプロトコル・モジュール46、ドキュメント・データベース50、キーバリュー・データベース60および証明書発行器モジュール70については、図7~10に関してさらに詳細に論じる。
図7は、一実施形態による、ネットワークにノードを追加する方法700を図示および説明する例示的なフローチャートであり、一態様では、この方法が、ネットワーク、好ましくはクローズド・ネットワーク内の一群のホストにホスト・ノードをセキュアに追加することを含む。方法700は、便宜上、本開示を限定する意図なしに、一連のステップもしくはいくつかのステップまたは一連のいくつかのステップを含むものとして説明されるが、プロセスが一連のステップとして実行される必要はなく、もしくはステップが、図7に関して示し説明する順序で実行される必要はなく、またはその両方であるが、プロセスを統合すること、または1つもしくは複数のステップを一緒に同時に実行すること、あるいはその両方を実行することができること、あるいは開示された順序でもしくは代替の順序でステップを実行することができることが理解される。
1つまたは複数の態様では、ネットワークに新たなノード、例えばホスト・ノードを追加する方法700が、705で、追加する新たなノードが、残りのノード、例えば残りのホスト・ノードと同じネットワーク上にあることをチェックもしくは確認またはチェックおよび確認することを含む。1つまたは複数の実施形態では、追加するノードが、同じプライマリ・ドメイン・ネーム・システム(DNS)、同じサブネットもしくは同じネットワーク・インターフェースまたはこれらの組合せ上にある/に対するものであるかどうかを判定するためにチェックが実施される。1つまたは複数の実施形態ではこのネットワークがクローズド・ネットワークである。710で、新たなノード上に、ソフトウェア・プラグイン、例えばプラグイン40をインストールする。720で、新たなノード、例えばノード25上のプラグインが、このネットワークを検出し、ネットワークに新たなノードが加わったことをネットワーク上の他のノードに通知する。730で、新たなノードが一組の定められたネットワーク特性を有するかどうかを、ネットワーク内の全てのノードが確認する。新たなノード、例えば新たなホスト・ノードがノードのネットワーク、例えばクローズド・ネットワークに加わり、許可型ブロックチェーン機能に参加することができるようにするためには、その前に、一組の定められた特性に対してその新たなノードを確認する必要がある。これらの特性には、限定はされないが、ホスト名、新たなノード(例えばホスト・ノード)のドメイン・ネーム・システム(DNS)、新たなノード(例えばホスト・ノード)のサブセット、ネットマスク、新たなノード(例えば新たなホスト・ノード)のネットワーク・インターフェース、インバウンド/アウトバウンド・ネットワーク帯域幅などが含まれうる。
プラグイン、例えばプラグイン40は、740で、新たなノードから状態情報を取り出し、ネットワーク、例えばネットワーク内の他のノードの各々と状態情報を共有する。一態様では、プラグイン40のドキュメント・データベース50内の状態データベース54から状態情報を取り出して、その状態情報をネットワーク内の他のノードに送信する。ネットワーク内で状態情報を分散させる方法および手法は、RAFTプロトコルを利用することを含み、一実施形態では、この方法および手法が、図10の方法1000およびフローチャートに記載されている。750で、ブロックチェーン、例えば分散台帳が新たなノードと共有される。一態様では、ネットワーク内の他のノードによって分散台帳が新たなノードに送られ、もしくはネットワーク内の他のノードから分散台帳が取得され、またはその両方が達成される。このようにして、1つまたは複数の実施形態では許可型ブロックチェーン機能を有するネットワーク、好ましくはクローズド・ネットワークに、新たなノード、好ましくはホスト・ノードが追加される。新たなノードは、分散型/共有台帳の全体、例えばブロックチェーンの全体のコピーを有することが好ましい。
図8は、ネットワーク内のノードにリモート・アクセスする、好ましくはネットワーク内のノードにセキュア・シェル(SSH)リモート・アクセスする方法800を説明する例示的なフローチャートである。方法800は、便宜上、本開示を限定する意図なしに、一連のステップもしくはいくつかのステップまたは一連のいくつかのステップを含むものとして説明されるが、プロセスが一連のステップとして実行される必要はなく、もしくはステップが、図8に関して示し説明する順序で実行される必要はなく、またはその両方であるが、プロセスを統合すること、または1つもしくは複数のステップを一緒に同時に実行すること、あるいはその両方を実行することができること、あるいは開示された順序でもしくは代替の順序でステップを実行することができることが理解される。
一実施形態では、方法800が、ネットワーク内のノードにリモート・アクセスすることを対象とし、一態様では、特に、ネットワークにセキュア・シェル(SSH)リモート・アクセスすることを対象とする。805で、クライアントが、ネットワーク内のノードへのリモート・アクセスをリクエストする。一実施形態では、クライアントが、ネットワーク内のノードへのセキュア・シェル(SSH)に対するリクエストを発行する。1つまたは複数の態様ではネットワークがクローズド・ネットワークである。810で、サーティフィケート・オブ・オーソリティ(CA)発行器を選択する。サーティフィケート・オブ・オーソリティ(CA)発行器を選択する実施形態が、図9のフローチャートおよび方法900に関してより詳細に記載されている。
815で、選択された証明書発行器が、クライアントのトークンの識別を確認する。この点に関して、ネットワーク内のノードにリモート・アクセスしたいクライアントは、そのクライアントのトークンを、プラグイン40内の選択された証明書発行器70に送る。クライアントのトークンは、クライアント・ノードで生成され、そこで、選択された認証提供器がクライアント・クレデンシャルを認証し、トークンを発行することが確立される。クライアントは、クライアントのクレデンシャルの組合せである。クライアントは、認証提供器モジュール76内の既存のクレデンシャルを有しているべきである。一実施形態では、815で、証明書発行器70内の識別確認モジュール78を使用して、クライアントのトークン(クライアントのクレデンシャル)を、認証提供器モジュール76の中に指定された認証提供器に対して確認する。すなわち、一態様では、815で、識別確認モジュール78によってクライアントの識別が確認される(識別確認モジュールが、クライアントのトークンが有効であるかどうかをチェックする)。820で、証明書発行器が、新たな証明書、前のブロックのハッシュ、タイムスタンプおよびノンスをブロックチェーンに追加する。ブロックチェーンは、ネットワーク、例えばクローズド・ネットワーク内の全てのノード上にインストールされたソフトウェア・プラグイン40のドキュメント・データベース50内のブロックチェーン・データベース52に格納されている。この情報を、プラグイン40のRAFTプロトコル・モジュールを使用してネットワーク内の他のノードと同期させる。825で、クライアントがノードにアクセスする。
一実施形態では、815~825で、クライアント/ユーザがネットワークにリモート・アクセスすることを許可するために、許可型ブロックチェーン・プロセスが実行される。一態様では、1つの単一のノードに依存してCAを発行することを排除するために、ネットワーク内のそれぞれのノードが一緒に動作して、認証局に署名し/認証局を発行する。ネットワーク内のあらゆるホストは、リモート・ホストのうちのいずれかのリモート・ホストへのアクセスが許可された全てのクライアントのコピーを有する。全てのホストは、ネットワーク内のリモート・ホストのうちのいずれかのリモート・ホストへのアクセスを有する、アクセスを有していた、またはアクセスが拒絶されている全てのクライアントを識別する共有台帳のコピーを有する。
図9は、証明書発行器を選択する、好ましくはネットワーク内のノードにセキュア・シェル(SSH)リモート・アクセスするために証明書発行器を選択する方法900を説明する例示的なフローチャートである。方法900は、便宜上、本開示を限定する意図なしに、一連のステップもしくはいくつかのステップまたは一連のいくつかのステップを含むものとして説明されるが、プロセスが一連のステップとして実行される必要はなく、もしくはステップが、図9に関して示し説明する順序で実行される必要はなく、またはその両方であるが、プロセスを統合すること、または1つもしくは複数のステップを一緒に同時に実行すること、あるいはその両方を実行することができること、あるいは開示された順序でもしくは代替の順序でステップを実行することができることが理解される。1つまたは複数の実施形態では、方法800の810で証明書発行器を選択するのに方法900が使用される。証明書発行器を選択する他の方法も企図される。
905で、ノード・ランク付けを使用して、どの1つまたは複数のノードが、プルーフ・オブ・キャパシティ・コンセンサス、例えばブロックチェーン・プルーフ・オブ・キャパシティ・コンセンサスに参加するのかを選択する。一実施形態では、プルーフ・オブ・キャパシティ・コンセンサスに参加する複数のノード、好ましくは奇数のノードが選択される。プルーフ・オブ・キャパシティ・コンセンサスは、暗号問題に対する解であり、この暗号問題を解くことは、暗号問題に対する解を計算するために、ノードのストレージ、例えばハード・ドライブ上の使用可能スペースを使用する。1つまたは複数の実施形態では、ランク付けアルゴリズム・モジュール42内で、ネットワーク内のノードのCPU容量が計算およびランク付けされる。905では、ノードCPU容量ランク付けを使用して、プルーフ・オブ・キャパシティ・コンセンサスを解くために使用される1つまたは複数のノード、好ましくは3つ以上のノードを選択する。
910で、最もランクの高いノードがメイン・マイナーとして選択される。915で、メイン・マイナーがプラグインからデッドラインを取り出す。すなわち、一実施形態では、915で、メイン・マイナーが、そのプラグイン40のキーバリュー・データベース60内のデッドライン・データベース62からデッドラインを取り出す。このデッドラインは、プルーフ・オブ・キャパシティ・コンセンサスを解くことに参加するように選択されたマイナー(例えばノード)の1つが、ノンスに対する解を見つけるためのマイナー(ノード)として選択されるまでに経過する時間、例えば秒で表された時間である。ノンス(ナンバー・オンリー・ユーズド・ワンス(number only used once))は、マイナーが、例えば推測のために、暗号問題に対する解として解を見つけている数である。この暗号問題は、(キーバリュー・データベース60内のノンス採掘難易度データベース64に格納された)ノンス解である。
920で、プルーフ・オブ・キャパシティ暗号コンセンサス問題を解くことに参加する全てのノードが、ノンスに対する可能な全ての解をノンス解ストア66に格納する。すなわち、920では、プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択されたそれぞれのノードが、そのノンス解ストア62に、ノンスに対する可能な全ての解を格納する。925で、プルーフ・オブ・キャパシティ・コンセンサスに参加するマイナーとして選択されたそれぞれのノードが、プルーフ・オブ・キャパシティ・コンセンサス・アルゴリズム計算を開始する。一実施形態では、ノンス解ストア66からの可能なそれぞれの解が、ノンスに対する解を生成するためのブロックチェーン・プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択されたそれぞれのノード(例えばマイナー)のそれぞれのノンス解生成器44によって使用される。930で、サーティフィケート・オブ・オーソリティを発行するために、デッドライン内のノンスに対する解を含む最初のノードが選択される。すなわち、930では、ノンスを解くノードが、新たなサーティフィケート・オブ・オーソリティを発行する。規定されたデッドライン時間内にノードがノンスの解を見つけなかった場合、940で、メイン・マイナーが、サーティフィケート・オブ・オーソリティを発行するノードとして選択される。1つまたは複数の実施形態では、実施中に、メイン・マイナーまたは他のノードによってノンスの解を見つける(推測する)必要はない。
図10は、ネットワーク、例えばクローズド・ネットワーク30のノード、例えばノード25にわたってデータを同期させる方法1000を説明する。例示的なフローチャートである方法1000は、便宜上、本開示を限定する意図なしに、一連のステップもしくはいくつかのステップまたは一連のいくつかのステップを含むものとして説明されるが、プロセスが一連のステップとして実行される必要はなく、もしくはステップが、図10に関して示し説明する順序で実行される必要はなく、またはその両方であるが、プロセスを統合すること、または1つもしくは複数のステップを一緒に同時に実行すること、あるいはその両方を実行することができること、あるいは開示された順序でもしくは代替の順序でステップを実行することができることが理解される。
1005で、RAFTプロトコル・モジュールに、ログもしくはデータベースまたはその両方がタイムスタンプとともに格納される。RAFT(リライアブル、リプリケーテッド、リダンダント、アンド フォールトトレラント(Reliable, Replicated, Redundant, and Fault-tolerant))は、コンピューティング・ノードまたはシステムのクラスタ/ネットワークの全体にわたって状態機械を分散させる手段を提供するコンセンサス・アルゴリズムである。一態様では、ノード25のプラグイン40のRAFTプロトコル・モジュール46内のログもしくはデータベースまたはその両方が、タイムスタンプとともに格納される。1010で、いずれかのノード上で事象が起こったことに応答して、もしくは事象が起こったときに、またはその両方で、その事象に関するデータがRAFTプロトコル・モジュール46に記録される。1015で、1つのノードがRAFTリーダーとして選択される。一実施形態では、それぞれのノードが交替で、好ましくはラウンド・ロビン方式でRAFTリーダーになるが、他の選択プロセスも企図される。1020で、RAFTリーダー・ノード内のデータベースが残りのノードと共有される。固定された期間もしくは動的期間においてノード上で事象が起こったことに応答して、またはノード上で事象が起こったときに、あるいは他の判定基準に従って、RAFTリーダー内のデータベースを共有することができる。RAFTプロトコルは当技術分野で知られており、ネットワークのノードにわたって状態機械を分散させる他の手段も企図される。
本発明は、統合化の可能な技術的詳細レベルにある、システム、方法もしくはコンピュータ・プログラム製品、またはこれらの組合せであることがある。このコンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことがある。
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および格納することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体を、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈すべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ、またはこれらの組合せを含むことができる。それぞれのコンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、もしくは集積回路用のコンフィギュレーション・データであってもよく、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同種のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部がリモート・コンピュータ上で実行されてもよく、または全体がリモート・コンピュータもしくはリモート・サーバ上で実行されてもよい。上記の最後のシナリオでは、リモート・コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施されてもよい。いくつかの実施形態では、本発明の態様を実行するために、例えばプログラム可能論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)またはプログラム可能論理アレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
本明細書では、本発明の態様が、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方の図を参照して説明される。それらのフローチャート図もしくはブロック図またはその両方の図のそれぞれのブロック、およびそれらのフローチャート図もしくはブロック図またはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解される。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/操作を実施する手段を作り出すべく、コンピュータまたは他のプログラム可能データ処理装置のプロセッサに提供されて機械を作り出すものであってよい。これらのコンピュータ可読プログラム命令はさらに、その中に命令が格納されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/操作の態様を実施する命令を含む製品を含むように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはこれらの組合せに特定の方式で機能するように指示するものであってもよい。
これらのコンピュータ可読プログラム命令はさらに、コンピュータ、他のプログラム可能装置または他のデバイス上で実行されるこれらの命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/操作を実施するように、コンピュータによって実施されるプロセスを生み出すために、このコンピュータ、他のプログラム可能データ処理装置または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
添付図中のフローチャートおよびブロック図は、本発明のさまざまな実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能および動作を示す。この点に関して、それらのフローチャートまたはブロック図のそれぞれのブロックは、指定された論理機能を実施する1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことがある。いくつかの代替実施態様では、ブロックに示された機能を、図に示された順序とは異なる順序で実行することができる。例えば、例えば、連続して示された2つのブロックが実際は実質的に同時に実行されること、または含まれる機能によってはそれらのブロックが時に逆の順序で実行されることもある。それらのブロック図もしくはフローチャート図またはその両方の図のそれぞれのブロック、ならびにそれらのブロック図もしくはフローチャート図またはその両方の図のブロックの組合せを、指定された機能もしくは操作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実行するハードウェアベースの専用システムによって実施することができることにも留意すべきである。
さらに、さまざまな実施形態によるシステムは、プロセッサ、プロセッサの機能ユニットまたはコンピュータ実施システム、およびこのシステム、プロセッサもしくは機能ユニットと統合された、またはこのシステム、プロセッサもしくは機能ユニットによって実行可能な、あるいはその両方である論地を含むことができ、この論理は、本明細書に記載されたプロセス・ステップのうちの1つまたは複数を実行するように構成されている。~と統合されているとは、一実施形態において、機能ユニットまたはプロセッサが、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのハードウェア論理として実装された論理を有することを意味する。機能ユニットまたはプロセッサによって実行可能は、一実施形態において、その論理が、ハードウェア論理;ファームウェア、オペレーティング・システムの部分、アプリケーション・プログラムの部分などのソフトウェア論理;などであること、または機能ユニットもしくはプロセッサによってアクセス可能であり、機能ユニットもしくはプロセッサによる実行時に機能ユニットもしくはプロセッサにある機能実行させるように構成された、ハードウェアもしくはソフトウェア論理のある組合せであることを意味する。ソフトウェア論理は、当技術分野で知られている任意のメモリ・タイプのローカル・メモリもしくはリモート・メモリまたはその両方に格納することができる。ソフトウェア・プロセッサ・モジュール、もしくはASIC、FPGA、中央処理ユニット(CPU)、集積回路(IC)、グラフィクス処理ユニット(GPU)などのハードウェア・プロセッサ、またはその両方など、当技術分野で知られている任意のプロセッサを使用することができる。
上記のシステムもしくは方法またはその両方のさまざまな特徴をさまざまに組み合わせて、以上の説明から、複数の組合せを生み出すことができることは明白である。サービスをオンデマンドで提供するために顧客のために展開されるサービスの形態で本発明の実施形態を提供することができることも理解される。
本明細書で使用されている用語は、特定の実施形態を記述することだけを目的としており、本発明を限定することを意図していない。本明細書において特に定義されていない限り、全ての用語には、本明細書から暗示される意味、ならびに当業者によって理解される意味もしくは辞書、学術論文などに定義された意味またはその両方を含む、その可能な最も幅広い解釈が与えられる。本明細書で使用されるとき、単数形「a」、「an」および「the」は、文脈からそうでないことが明らかでない限り、複数形も含むことが意図されている。本明細書で使用されるとき、用語「備える(comprises)」もしくは「備える(comprising)」またはその両方は、明示された特徴、完全体(integer)、ステップ、動作、要素もしくは構成要素またはこれらの組合せの存在を指定するが、他の1つもしくは複数の特徴、完全体、ステップ、動作、要素、構成要素もしくはこれらのグループ、またはこれらの組合せの存在または追加を排除しないことも理解される。特許請求の範囲に記載された全ての要素の対応する構造体、材料、動作および等価物は、特許請求の範囲に記載された他の請求の要素と組み合わせて機能を実行するための一切の構造体、材料または動作を含むことが意図されている。本発明の説明は例示および説明のために示したものであり、それらの説明が網羅的であること、または開示された形態に限定されることは意図されていない。当業者には、本発明の範囲を逸脱しない多くの変更および変形が明らかとなろう。実施形態および用語は、本発明の原理および実際的用途を最もうまく説明するため、ならびに企図された特定の使用に適したさまざまな変更を有するさまざまな実施形態に関して他の当業者が本発明を理解することを可能にするために選択し、説明した。

Claims (25)

  1. コンピューティング・ノードのネットワークへのアクセスを提供するコンピュータ実施方法であって、前記方法が、
    クライアントによって、前記ネットワーク内のホスト・ノードへのアクセスをリクエストすること、
    デジタル証明書発行器を選択すること、
    前記デジタル証明書発行器によって、クライアントのトークンの識別を確認すること、
    前記デジタル証明書発行器によって、分散台帳にノンスを追加すること、および
    前記ネットワーク内の前記ホスト・ノードへのアクセスを前記クライアントに許可すること
    を含むコンピュータ実施方法。
  2. 前記ネットワーク内の前記コンピューティング・ノードをランク付けすること、および前記ネットワーク内の前記コンピューティング・ノードのランクに従って、前記ノンスに対する解を見つけるプルーフ・オブ・キャパシティ・コンセンサスに参加する1つまたは複数のコンピューティング・ノードを選択することをさらに含む、請求項1に記載のコンピュータ実施方法。
  3. 前記ネットワーク内の前記コンピューティング・ノードをランク付けすることが、前記コンピューティング・ノードの使用されていないCPU容量に基づく、請求項2に記載のコンピュータ実施方法。
  4. 最も高いランクを有する前記コンピューティング・ノードをメイン・マイナーとして選択すること、および前記メイン・マイナーによって、前記メイン・マイナー上にインストールされたプラグインからデッドラインを取り出すことをさらに含む、請求項2に記載のコンピュータ実施方法。
  5. 前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記コンピューティング・ノード上のノンス解ストアに、前記ノンスに対する可能な全ての解を格納することをさらに含む、請求項4に記載のコンピュータ実施方法。
  6. 前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記コンピューティング・ノードによって、前記ノンスに対する解を見つける前記プルーフ・オブ・キャパシティ・コンセンサスを計算することをさらに含む、請求項5に記載のコンピュータ実施方法。
  7. 前記ノンスに対する前記解を含む前記ノードを、前記デジタル証明書発行器であるとして選択することをさらに含む、請求項6に記載のコンピュータ実施方法。
  8. 前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記コンピューティング・ノードによって、前記ノンスに対する解を見つける前記プルーフ・オブ・キャパシティ・コンセンサスを計算すること、および
    前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された前記コンピューティング・ノードがいずれも、前記デッドラインまでに前記ノンスに対する解を見つけなかったことに応答して、前記メイン・マイナーを前記デジタル証明書発行器として選択すること
    をさらに含む、請求項5に記載のコンピュータ実施方法。
  9. 前記ネットワークに新たなホスト・ノードを追加することをさらに含み、前記ネットワークに新たなホスト・ノードを追加することが、
    前記ネットワーク上の全ての前記コンピューティング・ノードによって、前記新たなホスト・ノードが一組の定められたネットワーク特性を有するかどうかを判定すること、
    前記新たなホスト・ノードが一組の定められたネットワーク特性を有すると判定したことに応答して、前記新たなホスト・ノードから状態情報を取り出すこと、および
    前記状態情報を、前記ネットワーク上の全ての前記コンピューティング・ノードと共有すること
    を含む、請求項1に記載のコンピュータ実施方法。
  10. 前記ネットワークに新たなホスト・ノードを追加することが、前記分散台帳を前記新たなホスト・ノードと共有することをさらに含む、請求項9に記載のコンピュータ実施方法。
  11. 前記ネットワークに新たなホスト・ノードを追加することが、
    前記新たなホスト・ノードが、前記コンピューティング・ノードと同じネットワークに追加されることを保証すること、
    前記新たなホスト・ノード上にプラグインをインストールすること、
    前記プラグインによって前記ネットワークを検出すること、および
    前記ネットワークに新たなホスト・ノードが加わったことを、前記ネットワーク上の全ての前記コンピューティング・ノードに通知すること
    をさらに含む、請求項10に記載のコンピュータ実施方法。
  12. 前記分散台帳を前記新たなホスト・ノードと共有することが、RAFTプロトコルを利用することを含み、RAFTリーダー・ノード内の前記分散台帳を含むデータベースが、前記新たなホスト・ノードと共有される、請求項10に記載のコンピュータ実施方法。
  13. 命令を含む非一過性コンピュータ可読媒体であって、前記命令が、少なくとも1つのハードウェア・プロセッサによって実行されたときに、
    クライアントによって、コンピューティング・ノードのネットワーク内のホスト・ノードへのアクセスをリクエストすること、
    デジタル証明書を発行する前記コンピューティング・ノードのうちの1つのコンピューティング・ノードを選択すること、
    前記デジタル証明書を発行する選択された前記コンピューティング・ノードによって、クライアントのトークンの識別を確認すること、
    前記デジタル証明書を発行する選択された前記コンピューティング・ノードによって、分散台帳にノンスを追加すること、および
    前記ネットワーク内の前記ホスト・ノードへのアクセスを前記クライアントに許可すること
    を実行するように、前記少なくとも1つのハードウェア・プロセッサを構成する、非一過性コンピュータ可読媒体。
  14. 少なくとも1つのハードウェア・プロセッサによって実行されたときに、
    前記ネットワーク内の前記コンピューティング・ノードをランク付けすること、および
    前記ネットワーク内の前記コンピューティング・ノードのランクに従って、前記ノンスに対する解を見つけるプルーフ・オブ・キャパシティ・コンセンサスに参加する1つまたは複数のコンピューティング・ノードを選択すること
    を実行するように前記少なくとも1つのハードウェア・プロセッサを構成する命令
    をさらに含む、請求項13に記載の非一過性コンピュータ可読媒体。
  15. 前記ネットワーク内の前記コンピューティング・ノードをランク付けすることが、前記コンピューティング・ノードの使用されていないCPU容量に基づき、使用されていない最も大きなCPU容量を有する少なくとも3つのコンピューティング・ノードが、前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択される、請求項14に記載の非一過性コンピュータ可読媒体。
  16. 少なくとも1つのハードウェア・プロセッサによって実行されたときに、
    前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記コンピューティング・ノード上のノンス解ストアに、前記ノンスに対する可能な全ての解を格納すること、
    前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記コンピューティング・ノードによって、前記ノンスに対する解を見つける前記プルーフ・オブ・キャパシティ・コンセンサスを計算すること、および
    前記ノンスに対する前記解を含む前記ノードを、前記デジタル証明書を発行する前記コンピューティング・ノードであるとして選択すること
    を実行するように前記少なくとも1つのハードウェア・プロセッサを構成する命令
    をさらに含む、請求項14に記載の非一過性コンピュータ可読媒体。
  17. 少なくとも1つのハードウェア・プロセッサによって実行されたときに、
    最も高いランクを有する前記コンピューティング・ノードをメイン・マイナーとして選択すること、
    前記メイン・マイナーによって、前記メイン・マイナー上にインストールされたプラグインからデッドラインを取り出すこと、
    前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記コンピューティング・ノードによって、前記ノンスに対する解を見つける前記プルーフ・オブ・キャパシティ・コンセンサスを計算すること、および
    前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された前記コンピューティング・ノードがいずれも、前記デッドラインまでに前記ノンスに対する解を見つけなかったことに応答して、前記メイン・マイナーを、前記デジタル証明書を発行する前記コンピューティング・ノードとして選択すること
    を実行するように前記少なくとも1つのハードウェア・プロセッサを構成する命令
    をさらに含む、請求項16に記載の非一過性コンピュータ可読媒体。
  18. 少なくとも1つのハードウェア・プロセッサによって実行されたときに、前記ネットワークに新たなホスト・ノードを追加するように前記少なくとも1つのハードウェア・プロセッサを構成する命令をさらに含み、前記ネットワークに新たなホスト・ノードを追加することが、前記少なくとも1つのハードウェア・プロセッサによって実行されたときに、
    前記ネットワーク上の全ての前記コンピューティング・ノードによって、前記新たなホスト・ノードが一組の定められたネットワーク特性を有するかどうかを判定すること、
    前記新たなホスト・ノードが一組の定められたネットワーク特性を有すると判定したことに応答して、前記新たなホスト・ノードから状態情報を取り出すこと、および
    前記状態情報を、前記ネットワーク上の全ての前記コンピューティング・ノードと共有すること
    を実行するように前記少なくとも1つのハードウェア・プロセッサを構成する命令
    を含む、請求項13に記載の非一過性コンピュータ可読媒体。
  19. 前記ネットワークに新たなホスト・ノードを追加することが、前記少なくとも1つのハードウェア・プロセッサによって実行されたときに、前記分散台帳を前記新たなホスト・ノードと共有するように前記少なくとも1つのハードウェア・プロセッサを構成する命令をさらに含む、請求項18に記載の非一過性コンピュータ可読媒体。
  20. 前記ネットワークに新たなホスト・ノードを追加することが、前記少なくとも1つのハードウェア・プロセッサによって実行されたときに、
    前記新たなホスト・ノードが他の計算ノードと同じネットワークに追加されるかどうかを判定すること、
    前記新たなホスト・ノードが他の計算ノードと同じネットワークに追加されると判定したことに応答して、前記新たなホスト・ノード上にプラグインをインストールすること、
    前記プラグインによって前記ネットワークを検出すること、および
    前記ネットワークに新たなホスト・ノードが加わったことを、前記ネットワーク上の全ての前記コンピューティング・ノードに通知すること
    を実行するように前記少なくとも1つのハードウェア・プロセッサを構成する命令
    をさらに含む、請求項19に記載の非一過性コンピュータ可読媒体。
  21. コンピューティング・ノードのネットワークを構成するためのコンピュータ実施システムであって、
    プログラム命令を格納したメモリ・ストレージ・デバイスと、
    前記コンピューティング・ノードのネットワークを構成するための前記プログラム命令を実行するための回路および論理を有するハードウェア・プロセッサと
    を備え、前記ハードウェア・プロセッサが、前記メモリ・ストレージ・デバイスに結合されており、前記プログラム命令を実行したことに応答して、
    クライアントによって、前記コンピューティング・ノードのネットワーク内のホスト・ノードへのリモート・アクセスをリクエストすること、
    デジタル証明書発行器としてコンピューティング・ノードを選択すること、
    前記デジタル証明書発行器によって、クライアントのトークンの識別を確認すること、
    前記証明書発行器によって、分散台帳にノンスを追加すること、および
    前記ネットワーク内の前記ホスト・ノードへのアクセスを前記クライアントに許可すること
    を実行するように構成されている、コンピュータ実施システム。
  22. 使用されていないCPU容量の量に従って、前記ネットワーク内の前記コンピューティング・ノードをランク付けすること、
    前記使用されていないCPU容量の量の前記ランク付けに基づいて、前記ノンスに対する解を見つけるプルーフ・オブ・キャパシティ・コンセンサスに参加する複数のコンピューティング・ノードを選択すること、
    前記ノンスに対する解を見つける前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記複数のコンピューティング・ノードによって、前記プルーフ・オブ・キャパシティ・コンセンサスを計算すること、および
    前記ノンスに対する前記解を含む前記ノードを、前記デジタル証明書発行器であるとして選択すること
    を実行するようにさらに構成されている、請求項21に記載のコンピュータ実施システム。
  23. 最も高いランクを有する前記コンピューティング・ノードをメイン・マイナーとして選択すること、
    前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された全ての前記コンピューティング・ノードによって、前記ノンスに対する解を見つける前記プルーフ・オブ・キャパシティ・コンセンサスを計算すること、および
    前記プルーフ・オブ・キャパシティ・コンセンサスに参加するように選択された前記コンピューティング・ノードがいずれも、デッドラインまでに前記ノンスに対する解を見つけなかったことに応答して、前記メイン・マイナーを前記デジタル証明書発行器として選択すること
    を実行するようにさらに構成されている、請求項22に記載のコンピュータ実施システム。
  24. 前記ネットワークに新たなホスト・ノードを追加するようにさらに構成されており、前記ネットワークに新たなホスト・ノードを追加することが、
    前記ネットワーク上の全ての前記コンピューティング・ノードによって、前記新たなホスト・ノードが一組の定められたネットワーク特性を有するかどうかを判定すること、および
    前記新たなホスト・ノードが一組の定められたネットワーク特性を有すると判定したことに応答して、前記新たなホスト・ノードから状態情報を取り出すこと、および
    前記状態情報を、前記ネットワーク上の全ての前記コンピューティング・ノードと共有すること
    を実行するように前記システムを構成することを含む、請求項21に記載のコンピュータ実施システム。
  25. 前記ネットワークに新たなホスト・ノードを追加することがさらに、
    前記新たなホスト・ノードが他のコンピューティング・ノードと同じネットワークに追加されるかどうかを判定すること、
    前記新たなホスト・ノードが他のコンピューティング・ノードと同じネットワークに追加されると判定したことに応答して、前記新たなホスト・ノード上にプラグインをインストールすること、
    前記プラグインによって前記ネットワークを検出すること、
    前記ネットワークに新たなホスト・ノードが加わったことを、前記ネットワーク上の全ての前記コンピューティング・ノードに通知すること、および
    前記分散台帳を前記新たなホスト・ノードと共有すること
    を実行するように前記システムを構成することを含み、前記プラグインが、証明書発行器モジュール、ランク付けアルゴリズム・モジュール、ノンス生成器、前記分散台帳および状態情報を含むドキュメント・データベース、ならびにキーバリュー・データベースを含む、
    請求項24に記載のコンピュータ実施システム。
JP2023564192A 2021-04-29 2022-04-20 コンピューティング・ネットワークへの許可型ブロックチェーン・アクセスのためのシステムおよび方法 Pending JP2024516389A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/244,391 US11804963B2 (en) 2021-04-29 2021-04-29 System and method for permissioned blockchain access into a computing network
US17/244,391 2021-04-29
PCT/EP2022/060366 WO2022228960A1 (en) 2021-04-29 2022-04-20 System and method for permissioned blockchain access into a computing network

Publications (1)

Publication Number Publication Date
JP2024516389A true JP2024516389A (ja) 2024-04-15

Family

ID=81655018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023564192A Pending JP2024516389A (ja) 2021-04-29 2022-04-20 コンピューティング・ネットワークへの許可型ブロックチェーン・アクセスのためのシステムおよび方法

Country Status (4)

Country Link
US (1) US11804963B2 (ja)
JP (1) JP2024516389A (ja)
CN (1) CN117044166A (ja)
WO (1) WO2022228960A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251889B (zh) * 2023-11-13 2024-03-01 腾讯科技(深圳)有限公司 区块链共识方法、相关装置和介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56828B2 (ja) 1972-03-30 1981-01-09
US7383433B2 (en) 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US20050076203A1 (en) 2003-08-15 2005-04-07 Imcentric, Inc. Product for managing and monitoring digital certificates
BRPI0906863A8 (pt) * 2008-01-07 2018-10-30 Security First Corp sistemas e métodos para proteção de dados com o uso de dispersão chaveada por multifatorial
US8776192B2 (en) 2009-11-17 2014-07-08 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for automatically verifying and populating digital certificates in an encryption keystore
WO2013009621A1 (en) 2011-07-08 2013-01-17 Venafi, Inc. System for managing cryptographic keys and trust relationships in a secure shell (ssh) environment
US10003458B2 (en) 2011-12-21 2018-06-19 Ssh Communications Security Corp. User key management for the secure shell (SSH)
SG11201403482TA (en) 2011-12-21 2014-07-30 Ssh Comm Security Oyj Automated access, key, certificate, and credential management
KR101661930B1 (ko) 2015-08-03 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템
US10305872B2 (en) 2015-08-06 2019-05-28 Interactive Intelligence Group, Inc. System and method for key management and user authentication
KR101678795B1 (ko) 2015-11-30 2016-11-22 전삼구 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법
US10516538B2 (en) 2016-11-01 2019-12-24 Netcomm Inc. System and method for digitally signing documents using biometric data in a blockchain or PKI
US10990693B1 (en) * 2016-12-02 2021-04-27 Wells Fargo Bank, N.A. System of managing data across disparate blockchains
US10341327B2 (en) 2016-12-06 2019-07-02 Bank Of America Corporation Enabling secure connections by managing signer certificates
US10924466B2 (en) 2017-07-28 2021-02-16 SmartAxiom, Inc. System and method for IOT security
US10320843B1 (en) * 2017-12-08 2019-06-11 Symbiont.Io, Inc. Methods, systems, and devices for encrypted electronic storage and confidential network transfer of private data through a trustless distributed ledger technology system
US20190259007A1 (en) 2018-02-20 2019-08-22 Trivver, Inc. Systems and methods for facilitating a time varying cryptocurrency transfer over a decentralized network through smart contracts associated with cryptocurrency blockchain technology
US10243748B1 (en) 2018-06-28 2019-03-26 Jonathan Sean Callan Blockchain based digital certificate provisioning of internet of things devices
US20200082398A1 (en) * 2018-09-07 2020-03-12 Nebulas IO Limited Proof-of-Devotion Blockchain Consensus Algorithm
US10986501B2 (en) * 2019-01-08 2021-04-20 T-Mobile Usa, Inc. Secure telephone identity (STI) certificate management system
US11132403B2 (en) * 2019-09-06 2021-09-28 Digital Asset Capital, Inc. Graph-manipulation based domain-specific execution environment
US11228452B2 (en) 2019-09-16 2022-01-18 Cisco Technology, Inc. Distributed certificate authority
US20210091960A1 (en) * 2019-09-24 2021-03-25 International Business Machines Corporation Tracking and verification of physical assets
US11461312B2 (en) * 2020-03-28 2022-10-04 Wipro Limited Method and system for performing adaptive consensus in a distributed ledger network
US11489828B2 (en) * 2020-12-04 2022-11-01 Salesforce, Inc. Tenant aware mutual TLS authentication

Also Published As

Publication number Publication date
CN117044166A (zh) 2023-11-10
US20220353077A1 (en) 2022-11-03
WO2022228960A1 (en) 2022-11-03
US11804963B2 (en) 2023-10-31

Similar Documents

Publication Publication Date Title
JP6865850B2 (ja) 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること
US10567360B2 (en) SSH key validation in a hyper-converged computing environment
US10277409B2 (en) Authenticating mobile applications using policy files
US20210409403A1 (en) Service to service ssh with authentication and ssh session reauthentication
US11121876B2 (en) Distributed access control
US20220123950A1 (en) Multi-party cloud authenticator
CN113614691A (zh) 供传统虚拟交付器件使用的连接租用系统和相关方法
US20220006654A1 (en) Method to establish an application level ssl certificate hierarchy between master node and capacity nodes based on hardware level certificate hierarchy
US10791119B1 (en) Methods for temporal password injection and devices thereof
CN113615144A (zh) 用于验证虚拟会话请求的系统和方法
US9906370B2 (en) Trust relationship management amongst racks in a data center
JP2024516389A (ja) コンピューティング・ネットワークへの許可型ブロックチェーン・アクセスのためのシステムおよび方法
US10931662B1 (en) Methods for ephemeral authentication screening and devices thereof
WO2022206203A1 (en) Connection resilient multi-factor authentication
US20230016036A1 (en) Serverless identity management
AU2021235526B2 (en) Secure private key distribution between endpoint instances
CN115879080A (zh) 证书认证方法及装置
Banerjee et al. Token-Based Authentication Techniques on Open Source Cloud Platforms
US11520937B2 (en) NVMe over fabrics authentication system
EP3766221B1 (en) Relying party certificate validation when client uses relying party's ip address
Jacob et al. Security Enhancement of Single Sign on Mechanism for Distributed Computer Networks
CA3217688A1 (en) Multi-factor authentication using blockchain
Anitha Kumari et al. A Novel Triangle Centroid Authentication Protocol for Cloud Environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231227