【文献】
東角芳樹 他,コンソーシアムチェーンにおける証明書管理に関する一考察,2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集,2017年 1月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
前記証明書失効リストに基づいて前記ブロックチェーン内の第3のトランザクション要求を検証するステップであって、前記第3のトランザクション要求が、第1のノードのグループと第2のノードのグループとの間でトランザクションを完了することを要求するために使用される、ステップと、
検証結果に基づいて前記第3のトランザクション要求に応答するかまたは前記第3のトランザクション要求を拒否するステップとをさらに含む請求項7に記載の方法。
前記ブロックチェーンに書き込まれる前記失効したデジタル証明書の前記レコードに基づいて証明書失効リストを構築するステップであって、前記証明書失効リストが、前記失効したデジタル証明書を記録するために使用される、ステップをさらに含む請求項11に記載の方法。
【発明を実施するための形態】
【0033】
本出願の目的、技術的な解決策、および利点をより明瞭にするために、以下で本出願の技術的な解決策を本出願の実装および対応する添付の図面を参照して説明する。明らかに、説明される実装は、本出願の実装のすべてではなく一部であるに過ぎない。創造的な努力なしに本出願の実装に基づいて当業者によって得られたその他の実装は、本出願の保護範囲内に入る。
【0034】
本出願の実装において提供される技術的な解決策が、添付の図面を参照して以下で詳細に説明される。
【0035】
実装1
図2は、本出願のこの実装によるデジタル証明書管理方法を示す概略的な流れ図である。
図2を参照すると、方法は、特に、以下のステップを含む。
【0036】
ステップ22: 認証局(CA)によって送信された第1のトランザクション要求を受信し、第1のトランザクション要求は、CAによってブロックチェーン内のノードに発行されたデジタル証明書をブロックチェーンに書き込むことを要求するために使用される。
【0037】
たとえば、
図3を参照すると、ブロックチェーン内のノード2が、CAにデジタル証明書を申し込む。CAは、ノード2にデジタル証明書を発行し、第1のトランザクション要求を開始することによってノード2のデジタル証明書をブロックチェーンに書き込むことを要求する。
【0038】
デジタル証明書は、バージョン、通し番号、署名アルゴリズムの種類、発行者情報、有効期間、発行者、発行された公開鍵、CAのデジタル署名、その他の情報などを含み得る。
【0039】
ステップ24: デジタル証明書に対してブロックチェーンによって実行される合意検証の合意結果を決定する。
【0040】
図3を参照すると、トランザクション要求を受信した後、ブロックチェーンは、ノード2のデジタル証明書に対して合意検証を実行する。検証の基準は、デジタル証明書内の情報に関連し、たとえば、有効期間が過ぎるかどうか、または通し番号が要件を満たすかどうかであることが可能である。代替的に、検証は、カスタマイズされた基準に基づいて実行され得る。たとえば、カスタマイズされた文字列Aが、デジタル証明書に追加され得る。検証は、文字列Aがデジタル証明書内に存在することをノードが検出する場合に成功する。検証は、文字列Aがデジタル証明書内に存在しない場合、失敗する。
【0041】
ステップ26: 合意結果に基づいて第1のトランザクション要求に応答するかまたは第1のトランザクション要求を拒否する。
【0042】
ブロックチェーンが、合意結果が「合意検証成功」である場合に第1のトランザクション要求に応答する、言い換えると、デジタル証明書が有効であると判定し、デジタル証明書がブロックチェーンに書き込まれることを許すことを理解することは、難しくない。証明書を申し込むノード(たとえば、
図3のノード2)がトランザクションを開始するとき、ノードのデジタル証明書は、正常に使用され得る。ブロックチェーンは、合意結果が「合意検証失敗」である場合に第1のトランザクション要求を拒否し、言い換えると、CAによって発行されたデジタル証明書が無効であると考え、デジタル証明書がチェーンにつながれることを拒否する。
【0043】
本出願のこの実装においては、CAがデジタル証明書を発行した後およびデジタル証明書がチェーンにつながれる前に、ブロックチェーンが、デジタル証明書に対して合意検証を実行し、検証結果に基づいてデジタル証明書の有効性を判定し、デジタル証明書がチェーンにつながれることを許す/拒否することが分かる。集中的なCAが証明書を発行し、証明書を直接チェーンにつなぐために使用される既存の技術の解決策と比較して、非集中的なCAは、本出願のこの実装においては、証明書を発行し、発行されたデジタル証明書をブロックチェーンに書き込むことを要求することのみが可能である。言い換えると、CAによって発行されたデジタル証明書は、チェーンにつながれる前は無効である。したがって、たとえCAが欠陥があり(たとえば、ハッキングされており)、デジタル証明書をランダムに発行するために悪意を持って使用されるとしても、発行されたデジタル証明書が無効であるので、ブロックチェーンのセキュリティは影響を受けない。したがって、本出願のこの実装においては、CAが欠陥があるとき、ブロックチェーンのセキュリティを改善するために、ブロックチェーン全体が、大きなセキュリティのリスクを負うことを効果的に防止され得る。
【0044】
実装2
この実装と実装1との間の違いは、ステップ24がこの実装においてはさらに制限されることである。
図4を参照すると、ステップ24における合意検証は、特に、以下のステップを含む。
【0045】
ステップ42: デジタル証明書に関する合意検証に参加するブロックチェーン内のノードの検証結果を決定する。
【0046】
たとえば、
図4を参照すると、CAが第1のトランザクション要求を使用することによってノード2に発行されたデジタル証明書をブロックチェーンに送信した後、ブロックチェーン内のノードが、デジタル証明書を検証する。
【0047】
ポイントツーポイントネットワークには比較的大きなネットワーク遅延が存在し、ノードによって観測されるトランザクションのシーケンスは一貫性がない可能性がある。したがって、合意メカニズムは、ノード上で発生するトランザクションのシーケンスに関して合意に達するために予め決められる必要がある。
【0048】
予め決められた合意メカニズムに基づいて、ブロックチェーン内のノードは、デジタル証明書に関する合意検証を順次実行する。各ノードは、ノードの検証結果およびCAのトランザクション要求を別のノードに通知するために、合意検証を完了した後にアナウンスをブロードキャストする。それから、合意検証に参加するノードの検証結果が、各ノードによってブロードキャストされたアナウンスに基づいて決定される。加えて、各ノードは、複数の署名および認証を完了するために、デジタル証明書を検証するとき、デジタル証明書に署名することができる。
【0049】
予め決められた合意メカニズムは、プルーフオブワーク(proof of work)メカニズム、プルーフオブステーク(proof of stake)メカニズムなどであることが可能である。
【0050】
ステップ44: 合意検証に参加するノードの中の第1のノードの数および/または第2のノードの数を決定し、第1のノードは、検証結果が「合意検証成功」であるノードであり、第2のノードは、検証結果が「合意検証失敗」であるノードである。
【0051】
第1のノードの数および第2のノードの数をカウントするために、合意検証に参加するノードが、合意検証に参加するノードの検証結果に基づいて分類されることを理解することは難しくない。
【0052】
ステップ46: 第1のノードの数および/または第2のノードの数に基づいて合意結果を決定する。
【0053】
合意結果を決定するための複数の方法が存在することに留意されたい。例は、以下の通りである。
【0054】
方法1: 第1のノードの数が第1の予め決められた閾値に達するときに、デジタル証明書に関する合意検証が成功すると判定する。
【0055】
第1の予め決められた閾値は、ブロックチェーン内のノードの総和に等しいか、またはブロックチェーン内のノードの総和未満であることが可能であり、それは、状況に応じて特に決定されることが可能である。第1の予め決められた閾値がノードの総和に等しい場合、第2のノードの数が0に等しくないとき、デジタル証明書に関する合意検証が失敗すると判定される。
【0056】
方法2: 第1に、合意検証に参加するノードの数が、たとえば、600に設定され、言い換えると、最初に合意検証を完了するノードであるブロックチェーン内の600個のノードに設定される。それから、600個のノードの中の第1のノードの割合が、リアルタイムで決定される。割合が第2の予め決められた閾値に達するときに、デジタル証明書に関する合意検証が成功すると判定する。
【0057】
方法3: 第1に、合意検証の継続時間が、たとえば、2sに設定される。それから、2s以内に合意検証を完了する第1のノードおよび第2のノードの数がカウントされ、そして、第1のノード/第2のノードの割合が計算される。デジタル証明書に関する合意検証が成功するかどうかは、第1のノード/第2のノードの割合または数に基づいて判定される。
【0058】
本出願のこの実施形態においては、達せられた合意結果を決定するために、合意検証を完了した後にノードによってブロードキャストされた検証結果に基づいて各ノードの検証結果が決定されることが分かる。ブロックチェーン内のノードの半分よりも多くまたはさらにはすべてが、合意検証プロセスに参加し、合意検証プロセスを完了する。したがって、合意結果は、ノードのほとんどまたはさらにはすべてが同時にハッキングされない限り影響を受けない。したがって、本出願のこの実装においては、ブロックチェーンのセキュリティが、さらに改善され得る。
【0059】
実装3
図5は、本出願の実装3によるデジタル証明書管理方法を示す概略的な流れ図である。
図5を参照すると、方法は、特に、以下のステップを含む。
【0060】
ステップ52: 認証局(CA)によって送信された第2のトランザクション要求を受信し、第2のトランザクション要求は、証明書失効リストをブロックチェーンに書き込むことを要求するために使用され、証明書失効リストは、失効したデジタル証明書を記録するために使用される。
【0061】
ステップ54: 証明書失効リストに対してブロックチェーンによって実行される合意検証の合意結果を決定する。
【0062】
図6を参照すると、証明書失効リストがチェーンにつながれる前に、ブロックチェーンは、CAによって送信された証明書失効リストがCAがハッキングされた後にCAによって送信された正しくない証明書失効リストであることを防止するために、失効リストに対して合意検証を実行する必要があることに留意されたい。検証方法に関しては、実装1に記録された関連する内容を参照されたい。デジタル証明書の検証基準が証明書失効リストの検証基準と同じであることが可能であり、または異なることが可能であることを理解することは、難しくない。例として、カスタマイズされた検証方法が使用される。2つの対応する検証基準は、それぞれ、文字列Aであることが可能であり、またはそれぞれ、文字列Aおよび文字列Bであることが可能である。これは、本明細書において特に限定されない。
【0063】
ステップ56: 合意結果に基づいて第2のトランザクション要求に応答するかまたは第2のトランザクション要求を拒否する。
【0064】
合意検証が成功した後、ブロックチェーンは、ブロックチェーンのピアネットワークおよび合意アルゴリズムを使用することによって、証明書失効リストをブロックチェーン内の各ノードと同期することができることに留意されたい。言い換えると、ブロックチェーンは、各ノードに証明書失効リストをブロードキャストする。そして、ノードは、証明書失効リストをローカルの台帳に記憶することができる。
【0065】
それから、第3のトランザクション要求がブロックチェーンにおいて発生するとき、ブロックチェーンは、両方のトランザクションの当事者のデジタル証明書のパーミッションを調べるために、ローカルの台帳の中の証明書失効リストに基づいてブロックチェーン内の第3のトランザクション要求を検証することができ、第3のトランザクション要求は、第1のノードのグループと第2のノードのグループとの間でトランザクションを完了することを要求するために使用され、ブロックチェーンは、検証結果に基づいて第3のトランザクション要求に応答するかまたは第3のトランザクション要求を拒否することができる。
【0066】
第1のノードのグループおよび第2のノードのグループは、それぞれ、少なくとも1つのノードを含む。加えて、一方のノードのグループは、トランザクション開始ノードのグループであり、他方のノードのグループは、トランザクション受信ノードのグループである。
【0067】
図6を参照すると、以下の検証方式が、ノード2がトランザクション開始ノードであり、ノード1がトランザクション受信ノードである例を使用することによって説明される。
【0068】
方式1: ノード1がノード2によって開始されたトランザクションを受信するとき、ノード1は、ノード2のデジタル証明書を取得するためにトランザクションを解析し、それから、ローカルの台帳から証明書失効リストを抽出し、ノード2のデジタル証明書を証明書失効リストに記録されたそれぞれの失効したデジタル証明書と比較する。ノード2のデジタル証明書が証明書失効リストに属する場合、ノード1は、ノード2のデジタル証明書が関連するトランザクションのパーミッションを持たないと判定し、ノード2によって開始されたトランザクション要求を拒否する。ノード2のデジタル証明書が関連するトランザクションのパーミッションを有する場合、ノード1は、2つのノードの間のトランザクションを完了し、トランザクションをチェーンにつなぐために、ノード2によって開始されたトランザクション要求に応答する。
【0069】
方式2: ノード1は、ノード2によって開始されたトランザクションを受信し、トランザクションデータをフィードバックするために、ノード2のデジタル証明書に関する検証が成功することを比較によって知った後、トランザクションに応答する。ノード2は、ノード1によってフィードバックされたトランザクションデータ内で運ばれるノード1のデジタル証明書を検証し、検証が失敗する場合、トランザクションを拒否し、または検証が成功する場合、トランザクションを完了し、トランザクションをチェーンにつなぐ。
【0070】
加えて、トランザクションを開始する前に、ノード2およびノード1は、互いのデジタル証明書を取得するためにまず「ハンドシェイク」を行い、それから、それらのノードのそれぞれのローカルの台帳から証明書失効リストを抽出し、互いのデジタル証明書を検証することができる。ノード2は、両方の検証が成功する場合にトランザクションを開始する。
【0071】
トランザクションの規則がトランザクションの特徴によって変わることを理解することは、難しくない。したがって、証明書失効リストの中のデジタル証明書と開始ノードのグループおよびトランザクション受信ノードのグループの中のデジタル証明書との間の比較の結果に対応する様々な種類の検証が存在し得る。たとえば、第1の種類のトランザクションは、以下の通りである。トランザクションの開始者が、ノードAのみを含み、トランザクションの受信者が、複数のノードを含む。トランザクションの規則は、両方のトランザクションの当事者のノードのすべてのデジタル証明書がトランザクションのパーミッションを有する必要があるということであることが可能である。トランザクションは、ノードAのデジタル証明書およびトランザクションの受信者のうちの少なくとも1つのノードのデジタル証明書がトランザクションのパーミッションを有する限り、実行され得る。ノードAは、トランザクションの受信者のうちのトランザクションのパーミッションを有するノードとのトランザクションを実行することができる。
【0072】
トランザクションの規則は、ユーザのニーズに基づいて決定されることが可能であり、本明細書において限定されない。
【0073】
トランザクションは、資産(asset)転送情報を含み得る。情報は、売り手(転送者)のアイデンティティ、買い手(受信者)のアイデンティティ、トランザクションの資産もしくは値、トランザクションの時間、および(または)潜在的な契約条項を含む。
【0074】
この実装において、失効した証明書は、変わり得る。たとえば、1つまたは複数のデジタル証明書が追加される場合、CAは、追加される失効したデジタル証明書の関連情報を更新情報として使用し、証明書失効リストに関する更新情報をブロックチェーンに書き込むことを要求するために、更新情報を第4のトランザクション要求の形態でブロックチェーンに発給する。それから、ブロックチェーン内のノードが、合意結果に関する更新情報に対して合意検証を実行する。そして、ノードは、合意結果に基づいて第4のトランザクション要求に応答し、更新情報をブロックチェーンに書き込むか、または合意結果に基づいて第4のトランザクション要求を拒否する。
【0075】
さらに、検証プロセスに関しては、前述の実装に記録された関連する内容を参照されたい。詳細は、本明細書において再度説明されない。
【0076】
ブロックチェーン内のノードは、新しく追加された失効したデジタル証明書を証明書失効リストに追加する。
【0077】
この実装においては、証明書失効リストがブロックチェーンに発給され、したがって、トランザクション要求を受信するとき、ノードは、ローカルの台帳から証明書失効リストを直接読み、トランザクション開始ノードのデジタル証明書が失効したデジタル証明書であるかどうかを検証することが分かる。ノードがトランザクション開始ノードのデジタル証明書をCAに送信し、CAが記憶された失効リストに基づいてデジタル証明書のパーミッションを検証し、検証結果をノードに返す既存の技術の技術的な解決策と比較すると、本出願のこの実装においては、CAの検証サービスを遠隔で要求する必要がない。したがって、デジタル証明書の検証のコストが、効果的に削減されることが可能であり、トランザクションの効率が、改善されることが可能である。
【0078】
さらに、本出願のこの実施形態においては、ブロックチェーン内のノードが、証明書失効リストの有効性を検証するために、証明書失効リストがチェーンにつながれる前に証明書失効リストに関する合意検証を実行し、証明書失効リストに署名し、それによって、CAがハッキングされた後にCAによって送信された正しくない証明書失効リストを防止する。その上、証明書失効リストは、ローカルの台帳に記憶される。したがって、たとえCAがハッキングされるとしても、既存の技術的な解決策における以下の問題が起こらない。CAがハッキングされることが原因で、証明書失効リストがランダムに修正され、その結果、ノードのデジタル証明書のパーミッションがランダムに失効させられ、したがって、トランザクションが正常に実行され得ないか、またはブロックチェーン全体のセキュリティさえも影響を受ける。
【0079】
実装4
図7は、本出願の実装4によるデジタル証明書管理方法を示す概略的な流れ図である。
図7を参照すると、方法は、以下のステップを含む。
【0080】
72. 認証局(CA)によって送信された第5のトランザクション要求を受信し、第5のトランザクション要求は、CAによって失効させられたデジタル証明書のレコードをブロックチェーンに書き込むことを要求するために使用される。
【0081】
74. 失効したデジタル証明書のレコードに対してブロックチェーンによって実行される合意検証の合意結果を決定する。
【0082】
76. 合意結果に基づいて第5のトランザクション要求に応答するかまたは第5のトランザクション要求を拒否する。
【0083】
ブロックチェーンは、レコードに対する合意検証が失敗する場合、第5のトランザクション要求を拒否する。ブロックチェーンは、レコードに対する合意検証が成功する場合、第5のトランザクション要求に応答し、ブロックチェーンに書き込まれる失効したデジタル証明書のレコードに基づいて証明書失効リストを構築する。証明書失効リストは、失効したデジタル証明書を記録するために使用される。
【0084】
そして、その後ブロックチェーンに書き込まれるレコードは、証明書失効リストを更新するための更新データとして使用される。
【0085】
ブロックチェーンに書き込まれた後、レコードが各ノードにブロードキャストされることを理解することは、難しくない。したがって、各ノードは、ローカルの台帳内で証明書失効リストを構築する。
【0086】
この実装は、実装3と同様であることに留意されたい。したがって、レコード検証方法、証明書失効リストを使用することによってトランザクションに参加するノードのデジタル証明書のパーミッションに対して実行される検証などに関しては、実装3の関連する記録を参照されたい。
【0087】
この実装において、CAは、証明書を発行する、証明書を失効させることなどしかできず、証明書失効リストの構築、記憶、および保守は、ブロックチェーン内のノードによって完了されることが分かる。したがって、トランザクション要求を受信するとき、ノードは、ローカルの台帳から証明書失効リストを直接読み、トランザクション開始ノードのデジタル証明書が失効したデジタル証明書であるかどうかを検証することができる。ノードがトランザクション開始ノードのデジタル証明書をCAに送信し、CAが記憶された失効リストに基づいてデジタル証明書のパーミッションを検証し、検証結果をノードに返す既存の技術の技術的な解決策と比較すると、本出願のこの実装においては、CAの検証サービスを遠隔で要求する必要がない。したがって、デジタル証明書の検証のコストが、効果的に削減されることが可能であり、トランザクションの効率が、改善されることが可能である。
【0088】
実装5
図8は、本出願の実装5によるデジタル証明書管理方法を示す概略的な流れ図である。
図8を参照すると、この実装は、CAによって実行され、方法は、特に、以下のステップを含む。
【0089】
82. ブロックチェーン内のノードによって送信された申し込み要求を受信し、申し込み要求は、デジタル証明書をノードに発行するように認証局(CA)に要求するために使用される。
【0090】
84. 申し込み要求に応じてノードにデジタル証明書を発行する。
【0091】
86. ブロックチェーンに第6のトランザクション要求を送信し、第6のトランザクション要求は、ブロックチェーンがデジタル証明書に対して合意検証を実行し、合意結果に基づいて第6のトランザクション要求に応答するかまたは第6のトランザクション要求を拒否するように、ブロックチェーンにデジタル証明書を書き込むことを要求するために使用される。
【0092】
図3を参照すると、たとえば、ノード2が、CAに証明書申し込み要求を送信する。要求は、ノード2の関連情報、たとえば、ノード2の識別子を含む。そして、CAが、ノード2の関連情報を検証し、検証が成功する場合、ノード2にデジタル証明書を発行し、ノード2のデジタル証明書をブロックチェーンに書き込むための要求を開始する。
【0093】
この実装および前述の実装は互いに対応するので、一部のステップは、再度詳細に説明されない。詳細に関しては、前述の実装の対応する部分を参照されたい。
【0094】
本出願のこの実装においては、デジタル証明書をノードに発行した後、CAがデジタル証明書をチェーンにつなぐようにブロックチェーンに要求することが分かる。ブロックチェーンは、デジタル証明書の有効性を検証し、デジタル証明書をチェーンにつなぐべきかどうかを判定する。CAがデジタル証明書をノードに発行し、チェーンにつなぐためにブロックチェーンにデジタル証明書を直接書き込む既存の技術の解決策と比較して、本出願のこの実装のCAは、集中的な証明書の管理、証明書の記憶、および証明書のチェーンへの連結を実行することができず、デジタル証明書を発行することのみが可能である。したがって、CAが攻撃されるリスクが、減らされることが可能であり、CAの安定性およびセキュリティが、改善されることが可能である。
【0095】
説明を簡潔にするために、前述の方法の実装が、一連のアクションの組合せとして表される。しかし、当業者は、一部のステップが本開示の実装に従ってその他の順序で実行されるかまたは同時に実行されることが可能であるので、本開示の実装が説明されたアクションの順序に限定されないことを理解するはずである。さらに、当業者は、本明細書において説明されたすべての実装が実装の例であり、言及されたアクションが本開示の実装に必須であるとは限らないことも理解するはずである。
【0096】
実装6
図9は、本出願の実装6によるデジタル証明書管理装置を示す概略的な構造図である。
図9を参照すると、装置は、受信ユニット91、決定ユニット92、および応答ユニット93を含む。
【0097】
受信ユニット91は、認証局(CA)によって送信された第1のトランザクション要求を受信するように構成され、第1のトランザクション要求は、CAによってブロックチェーン内のノードに発行されたデジタル証明書をブロックチェーンに書き込むことを要求するために使用される。
【0098】
決定ユニット92は、デジタル証明書に対してブロックチェーンによって実行される合意検証の合意結果を決定するように構成される。
【0099】
応答ユニット93は、合意結果に基づいて第1のトランザクション要求に応答するかまたは第1のトランザクション要求を拒否するように構成される。
【0100】
図3を参照すると、たとえば、ノード2が、CAに証明書申し込み要求を送信する。CAは、ノード2の要求に応答し、ノード2にデジタル証明書を発行し、発行されたデジタル証明書をチェーンにつなぐようにトランザクションの形態で要求する。受信ユニット91は、CAによって送信されたトランザクション要求を受信し、トランザクション要求を決定ユニット92に転送する。決定ユニット92は、デジタル証明書の有効性を判定するために、デジタル証明書に対してブロックチェーンによって実行される合意検証の合意結果を決定する。それから、決定ユニット92は、決定された合意結果を応答ユニット93に送信する。応答ユニット93は、合意結果を分析し、合意結果が「検証成功」であることを分析によって知る場合に、CAのトランザクション要求に応答し、デジタル証明書がチェーンにつながれることを許すか、または合意結果が「検証失敗」であることを分析によって知る場合に、CAのトランザクション要求を拒否し、デジタル証明書がチェーンにつながれることを拒絶する。
【0101】
この実装において、決定ユニット92の合意検証原理は、以下を含む。
【0102】
デジタル証明書に関する合意検証に参加するブロックチェーン内のノードの検証結果が、決定される。好ましくは、ノードがデジタル証明書に対して合意検証を実行した後にノードによって発給されるアナウンスが、決定される。アナウンスは、トランザクション要求およびノードの検証結果を別のノードにブロードキャストするために使用される。合意検証に参加するすべてのノードの検証結果が、各ノードのアナウンスに基づいて決定される。
【0103】
合意検証に参加するすべてのノードの中の第1のノードの数が、決定される。第1のノードは、検証結果が「合意検証成功」であるノードである。
【0104】
合意結果は、第1のノードの数に基づいて決定される。好ましくは、デジタル証明書に関する合意検証は、第1のノードの数が第1の予め決められた閾値に達するとき、または合意検証に参加するすべてのノードの中の第1のノードの割合が第2の予め決められた閾値に達するときに成功すると決定される。
【0105】
本出願のこの実装においては、CAがデジタル証明書を発行した後およびデジタル証明書がチェーンにつながれる前に、ブロックチェーンが、デジタル証明書に対して合意検証を実行し、検証結果に基づいてデジタル証明書の有効性を判定し、デジタル証明書がチェーンにつながれることを許す/拒否することが分かる。集中的なCAが証明書を発行し、証明書を直接チェーンにつなぐために使用される既存の技術の解決策と比較して、非集中的なCAは、本出願のこの実装においては、証明書を発行し、発行されたデジタル証明書をブロックチェーンに書き込むことを要求することのみが可能である。言い換えると、CAによって発行されたデジタル証明書は、チェーンにつながれる前は無効である。したがって、たとえCAが欠陥があり(たとえば、ハッキングされており)、デジタル証明書をランダムに発行するために悪意を持って使用されるとしても、発行されたデジタル証明書が無効であるので、ブロックチェーンのセキュリティは影響を受けない。したがって、本出願のこの実装においては、CAが欠陥があるとき、ブロックチェーンのセキュリティを改善するために、ブロックチェーン全体が、大きなセキュリティのリスクを負うことを効果的に防止され得る。
【0106】
実装7
図10は、本出願の実装7による電子デバイスを示す概略的な構造図である。
図10を参照すると、ハードウェアの観点から見て、電子デバイスは、プロセッサと、内部バスと、ネットワークインターフェースと、メモリと、不揮発性メモリとを含み、もちろん、別のサービスによって必要とされるハードウェアをさらに含み得る。プロセッサは、不揮発性メモリからメモリに対応するコンピュータプログラムを読み込み、それから、論理的なレベルでデジタル証明書管理装置を形成するためにコンピュータプログラムを実行する。もちろん、ソフトウェアの実装に加えて、本出願は、別の実装、たとえば、論理デバイスまたはハードウェアとソフトウェアとの組合せを除外しない。言い換えると、以下の処理手順の実行主体は、論理ユニットに限定されず、ハードウェアまたは論理デバイスであることも可能である。
【0107】
ネットワークインターフェース、プロセッサ、およびメモリは、バスシステムを使用することによって相互に接続され得る。バスは、業界標準アーキテクチャ(ISA)バス、周辺装置相互接続(PCI: Peripheral Component Interconnect)バス、拡張業界標準アーキテクチャ(EISA)バスなどであることが可能である。バスは、アドレスバス、データバス、制御バスなどに分類され得る。指示を容易にするために、
図10において、バスは、ただ1つの両方向矢印を使用することによって示される。しかし、それは、ただ1つのバスまたはただ1種類のバスが存在することを意味しない。
【0108】
メモリは、プログラムを記憶するように構成される。特に、プログラムは、プログラムコードを含むことが可能であり、プログラムコードは、コンピュータ動作命令を含む。メモリは、読み出し専用メモリおよびランダムアクセスメモリを含むことが可能であり、プロセッサのための命令およびデータを提供する。メモリは、高速ランダムアクセスメモリ(RAM)を含むことが可能であり、少なくとも1つの磁気ディスクメモリなどの不揮発性メモリ(non-volatile memory)をさらに含むことが可能である。
【0109】
プロセッサは、メモリに記憶されたプログラムを実行し、特に、以下の動作、すなわち、認証局(CA)によって送信された第1のトランザクション要求を受信する動作であって、第1のトランザクション要求が、CAによってブロックチェーン内のノードに発行されたデジタル証明書をブロックチェーンに書き込むことを要求するために使用される、動作と、デジタル証明書に対してブロックチェーンによって実行される合意検証の合意結果を決定する動作と、合意結果に基づいて第1のトランザクション要求に応答するかまたは第1のトランザクション要求を拒否する動作とを実行するように構成される。
【0110】
デジタル証明書管理装置またはマスタ(Master)ノードによって実行され、本出願の
図2、
図4、および
図9に示された実装において開示された前述の方法は、プロセッサに適用されるかまたはプロセッサによって実施されることが可能である。プロセッサは、集積回路チップであることが可能であり、信号処理能力を有する。実施のプロセスにおいて、前述の方法のステップは、プロセッサのハードウェアの集積論理回路を使用することによってまたはソフトウェアの形態の命令を使用することによって実施され得る。プロセッサは、中央演算処理装置(CPU)、ネットワークプロセッサ(NP)などを含む汎用プロセッサであることが可能であり、あるいはデジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは別のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理デバイス、またはディスクリートハードウェア構成要素であることが可能であり、本出願の実装において開示された方法、ステップ、および論理ブロック図を実施または実行することが可能である。汎用プロセッサは、マイクロプロセッサであることが可能であり、またはプロセッサは、任意の通常のプロセッサなどであることが可能である。本出願の実装を参照して開示された方法のステップは、ハードウェア復号プロセッサまたは復号プロセッサのハードウェアとソフトウェアモジュールとの組合せを使用することによって直接実行され、完了されることが可能である。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、またはレジスタなどの当技術分野の成熟したストレージ媒体に置かれることが可能である。ストレージ媒体は、メモリに置かれ、プロセッサは、メモリ内の情報を読み、プロセッサのハードウェアとの組合せで前述の方法のステップを完了する。
【0111】
デジタル証明書管理装置は、さらに、
図2の方法を実行し、マスタノードによって実行される方法を実装することができる。
【0112】
実装8
図11は、本出願の実装8によるデジタル証明書管理装置を示す概略的な構造図である。
図11を参照すると、装置は、受信ユニット111、決定ユニット112、および応答ユニット113を含む。
【0113】
受信ユニット111は、認証局(CA)によって送信された第2のトランザクション要求を受信するように構成され、第2のトランザクション要求は、証明書失効リストをブロックチェーンに書き込むことを要求するために使用され、証明書失効リストは、失効したデジタル証明書を記録するために使用される。
【0114】
決定ユニット112は、証明書失効リストに対してブロックチェーンによって実行される合意検証の合意結果を決定するように構成される。
【0115】
応答ユニット113は、合意結果に基づいて第2のトランザクション要求に応答するかまたは第2のトランザクション要求を拒否するように構成される。
【0116】
現在のブロックチェーン-CAシステムがアップグレードされた後、CAは、現在保有されている証明書失効リストをブロックチェーンに発給することに留意されたい。受信ユニット111が証明書失効リストを受信した後、証明書失効リストに対して合意検証が実行される。決定ユニット112は、合意結果を決定し、合意結果を応答ユニット113に送信する。応答ユニット113は、検証が成功することを応答ユニット113が知る場合、チェーンにつなぐことを許し、または検証が失敗する場合、チェーンにつなぐことを拒否する。
【0117】
さらに、チェーンにつなぐことは、特に、デジタル証明書のリストを各ノードのローカルの台帳に記憶することであることが可能である。そして、ノードが第3のトランザクション要求を受信するとき、応答ユニット113は、ローカルの台帳に記憶された証明書失効リストに基づいて第3のトランザクション要求を検証し、それから、検証結果に基づいて第3のトランザクション要求に応答するかまたは第3のトランザクション要求を拒否する。第3のトランザクション要求は、第1のノードのグループと第2のノードのグループとの間でトランザクションを完了することを要求するために使用される。
【0118】
この実装において、応答ユニット113の動作原理は、以下の通りである。
【0119】
第1のノードのグループおよび第2のノードのグループのノードのデジタル証明書が、証明書失効リストに記録された失効したデジタル証明書と比較される。検証結果は、トランザクションの予め決められたトランザクションの規則を参照して比較結果に基づいて決定される。
【0120】
この実装において、装置は、CAによって送信された第4のトランザクション要求を受信することであって、第4のトランザクション要求が、証明書失効リストの更新情報をブロックチェーンに書き込むことを要求するために使用される、受信することと、更新情報に対してブロックチェーンによって実行される合意検証の合意結果を決定することと、合意結果に基づいて第4のトランザクション要求に応答するかまたは第4のトランザクション要求を拒否するように構成された更新ユニットをさらに含む。
【0121】
この実装においては、トランザクション開始ノードによって開始されたトランザクションを受信するときに、ノードがローカルの台帳から証明書失効リストを直接読み、トランザクション開始ノードのデジタル証明書のパーミッションを検証するように、証明書失効リストがブロックチェーンに発給されることが分かる。CAの検証サービスを遠隔で呼び出す必要はない。したがって、検証のコストが、効果的に削減されることが可能であり、検証の効率が、改善されることが可能である。さらに、証明書失効リストがローカルの台帳に記憶されるので、たとえCAがハッキングされるとしても、深刻な結果にならない。
【0122】
実装9
図12は、本出願の実装9による電子デバイスを示す概略的な構造図である。
図12を参照すると、電子デバイスは、プロセッサと、内部バスと、ネットワークインターフェースと、メモリと、不揮発性メモリとを含み、もちろん、別のサービスによって必要とされるハードウェアをさらに含み得る。プロセッサは、不揮発性メモリからメモリに対応するコンピュータプログラムを読み込み、それから、論理的なレベルでデジタル証明書管理装置を形成するためにコンピュータプログラムを実行する。もちろん、ソフトウェアの実装に加えて、本出願は、別の実装、たとえば、論理デバイスまたはハードウェアとソフトウェアとの組合せを除外しない。言い換えると、以下の処理手順の実行主体は、論理ユニットに限定されず、ハードウェアまたは論理デバイスであることも可能である。
【0123】
ネットワークインターフェース、プロセッサ、およびメモリは、バスシステムを使用することによって相互に接続され得る。バスは、業界標準アーキテクチャ(ISA)バス、周辺装置相互接続(PCI)バス、拡張業界標準アーキテクチャ(EISA)バスなどであることが可能である。バスは、アドレスバス、データバス、制御バスなどに分類され得る。指示を容易にするために、
図12において、バスは、ただ1つの両方向矢印を使用することによって示される。しかし、それは、ただ1つのバスまたはただ1種類のバスが存在することを意味しない。
【0124】
メモリは、プログラムを記憶するように構成される。特に、プログラムは、プログラムコードを含むことが可能であり、プログラムコードは、コンピュータ動作命令を含む。メモリは、読み出し専用メモリおよびランダムアクセスメモリを含むことが可能であり、プロセッサのための命令およびデータを提供する。メモリは、高速ランダムアクセスメモリ(RAM)を含むことが可能であり、少なくとも1つの磁気ディスクメモリなどの不揮発性メモリ(non-volatile memory)をさらに含むことが可能である。
【0125】
プロセッサは、メモリに記憶されたプログラムを実行し、特に、以下の動作、すなわち、認証局(CA)によって送信された第2のトランザクション要求を受信する動作であって、第2のトランザクション要求が、証明書失効リストをブロックチェーンに書き込むことを要求するために使用され、証明書失効リストが、失効したデジタル証明書を記録するために使用される、動作と、証明書失効リストに対してブロックチェーンによって実行される合意検証の合意結果を決定する動作と、合意結果に基づいて第2のトランザクション要求に応答するかまたは第2のトランザクション要求を拒否する動作とを実行するように構成される。
【0126】
デジタル証明書管理装置またはマスタ(Master)ノードによって実行され、本出願の
図5および
図11に示された実装において開示された前述の方法は、プロセッサに適用されるかまたはプロセッサによって実施されることが可能である。プロセッサは、集積回路チップであることが可能であり、信号処理能力を有する。実施のプロセスにおいて、前述の方法のステップは、プロセッサのハードウェアの集積論理回路を使用することによってまたはソフトウェアの形態の命令を使用することによって実施され得る。プロセッサは、中央演算処理装置(CPU)、ネットワークプロセッサ(NP)などを含む汎用プロセッサであることが可能であり、あるいはデジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは別のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理デバイス、またはディスクリートハードウェア構成要素であることが可能であり、本出願の実装において開示された方法、ステップ、および論理ブロック図を実施または実行することが可能である。汎用プロセッサは、マイクロプロセッサであることが可能であり、またはプロセッサは、任意の通常のプロセッサなどであることが可能である。本出願の実装を参照して開示された方法のステップは、ハードウェア復号プロセッサまたは復号プロセッサのハードウェアとソフトウェアモジュールとの組合せを使用することによって直接実行され、完了されることが可能である。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、またはレジスタなどの当技術分野の成熟したストレージ媒体に置かれることが可能である。ストレージ媒体は、メモリに置かれ、プロセッサは、メモリ内の情報を読み、プロセッサのハードウェアとの組合せで前述の方法のステップを完了する。
【0127】
デジタル証明書管理装置は、さらに、
図5の方法を実行し、マスタノードによって実行される方法を実装することができる。
【0128】
実装10
図13は、本出願の実装10によるデジタル証明書管理装置を示す概略的な構造図である。
図13を参照すると、装置は、受信ユニット131、決定ユニット132、および応答ユニット133を含む。
【0129】
受信ユニット131は、認証局(CA)によって送信された第5のトランザクション要求を受信するように構成され、第5のトランザクション要求は、CAによって失効させられたデジタル証明書のレコードをブロックチェーンに書き込むことを要求するために使用される。
【0130】
決定ユニット132は、失効したデジタル証明書のレコードに対してブロックチェーンによって実行される合意検証の合意結果を決定するように構成される。
【0131】
応答ユニット133は、合意結果に基づいて第5のトランザクション要求に応答するかまたは第5のトランザクション要求を拒否するように構成される。
【0132】
実装8との違いは、この実装が再構築されたCAシステムに適用可能であることであることに留意されたい。再構築されたシステムにおいて、CAは、ブロックチェーンに第1の失効した証明書のレコードを発給することを要求する。CAの要求を受信した後、受信ユニット131は、要求を決定ユニット132に転送する。決定ユニット132は、レコードに対して合意検証を実行し、検証結果を応答ユニット133に送信する。応答ユニット133は、検証が成功することを応答ユニット133が知る場合、チェーンにつなぐことを許し、または検証が失敗する場合、チェーンにつなぐことを拒否する。
【0133】
加えて、ブロックチェーン内の各ノードが、通し番号などの失効したデジタル証明書についての情報を記憶するために、第1の失効した証明書のレコードに基づいてローカルの台帳内に証明書失効リストを構築することを理解することは難しくない。そして、それぞれの証明書失効リストが、ブロックチェーンにその後書き込まれるレコードに基づいて更新され、保守される。
【0134】
トランザクションに参加するブロックチェーン内のノードのデジタル証明書のパーミッションを証明書失効リストに基づいて検証するステップなどのステップは、実装8または対応する方法の実装のステップと同様であることに留意されたい。したがって、詳細は、本明細書において再度説明されない。詳細に関しては、対応する実装の関連する記録を参照されたい。
【0135】
この実装において、CAは、ノードが証明書失効リストを構築するように、失効した証明書のレコードをブロックチェーンに発給することが分かる。そして、トランザクション開始ノードによって開始されたトランザクションを受信するとき、ノードは、ローカルの台帳から証明書失効リストを直接読み、トランザクション開始ノードのデジタル証明書のパーミッションを検証する。CAの検証サービスを遠隔で呼び出す必要はない。したがって、検証のコストが、効果的に削減されることが可能であり、検証の効率が、改善されることが可能である。さらに、証明書失効リストがローカルの台帳に記憶されるので、たとえCAがハッキングされるとしても、深刻な結果にならない。
【0136】
実装11
図14は、本出願の実装11による電子デバイスを示す概略的な構造図である。
図14を参照すると、電子デバイスは、プロセッサと、内部バスと、ネットワークインターフェースと、メモリと、不揮発性メモリとを含み、もちろん、別のサービスによって必要とされるハードウェアをさらに含み得る。プロセッサは、不揮発性メモリからメモリに対応するコンピュータプログラムを読み込み、それから、論理的なレベルでデジタル証明書管理装置を形成するためにコンピュータプログラムを実行する。もちろん、ソフトウェアの実装に加えて、本出願は、別の実装、たとえば、論理デバイスまたはハードウェアとソフトウェアとの組合せを除外しない。言い換えると、以下の処理手順の実行主体は、論理ユニットに限定されず、ハードウェアまたは論理デバイスであることも可能である。
【0137】
ネットワークインターフェース、プロセッサ、およびメモリは、バスシステムを使用することによって相互に接続され得る。バスは、業界標準アーキテクチャ(ISA)バス、周辺装置相互接続(PCI)バス、拡張業界標準アーキテクチャ(EISA)バスなどであることが可能である。バスは、アドレスバス、データバス、制御バスなどに分類され得る。指示を容易にするために、
図14において、バスは、ただ1つの両方向矢印を使用することによって示される。しかし、それは、ただ1つのバスまたはただ1種類のバスが存在することを意味しない。
【0138】
メモリは、プログラムを記憶するように構成される。特に、プログラムは、プログラムコードを含むことが可能であり、プログラムコードは、コンピュータ動作命令を含む。メモリは、読み出し専用メモリおよびランダムアクセスメモリを含むことが可能であり、プロセッサのための命令およびデータを提供する。メモリは、高速ランダムアクセスメモリ(RAM)を含むことが可能であり、少なくとも1つの磁気ディスクメモリなどの不揮発性メモリ(non-volatile memory)をさらに含むことが可能である。
【0139】
プロセッサは、メモリに記憶されたプログラムを実行し、特に、以下の動作、すなわち、認証局(CA)によって送信された第5のトランザクション要求を受信する動作であって、第5のトランザクション要求が、CAによって失効させられたデジタル証明書のレコードをブロックチェーンに書き込むことを要求するために使用される、動作と、失効したデジタル証明書のレコードに対してブロックチェーンによって実行される合意検証の合意結果を決定する動作と、合意結果に基づいて第5のトランザクション要求に応答するかまたは第5のトランザクション要求を拒否する動作とを実行するように構成される。
【0140】
デジタル証明書管理装置またはマスタ(Master)ノードによって実行され、本出願の
図7および
図13に示された実装において開示された前述の方法は、プロセッサに適用されるかまたはプロセッサによって実施されることが可能である。プロセッサは、集積回路チップであることが可能であり、信号処理能力を有する。実施のプロセスにおいて、前述の方法のステップは、プロセッサのハードウェアの集積論理回路を使用することによってまたはソフトウェアの形態の命令を使用することによって実施され得る。プロセッサは、中央演算処理装置(CPU)、ネットワークプロセッサ(NP)などを含む汎用プロセッサであることが可能であり、あるいはデジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは別のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理デバイス、またはディスクリートハードウェア構成要素であることが可能であり、本出願の実装において開示された方法、ステップ、および論理ブロック図を実施または実行することが可能である。汎用プロセッサは、マイクロプロセッサであることが可能であり、またはプロセッサは、任意の通常のプロセッサなどであることが可能である。本出願の実装を参照して開示された方法のステップは、ハードウェア復号プロセッサまたは復号プロセッサのハードウェアとソフトウェアモジュールとの組合せを使用することによって直接実行され、完了されることが可能である。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、またはレジスタなどの当技術分野の成熟したストレージ媒体に置かれることが可能である。ストレージ媒体は、メモリに置かれ、プロセッサは、メモリ内の情報を読み、プロセッサのハードウェアとの組合せで前述の方法のステップを完了する。
【0141】
デジタル証明書管理装置は、さらに、
図7の方法を実行し、マスタノードによって実行される方法を実装することができる。
【0142】
実装12
図15は、本出願の実装12によるデジタル証明書管理装置を示す概略的な構造図である。
図15を参照すると、装置は、受信ユニット151、応答ユニット152、およびトランザクションユニット153を含む。
【0143】
受信ユニット151は、ブロックチェーン内のノードによって送信された申し込み要求を受信するように構成され、申し込み要求は、デジタル証明書をノードに発行するように認証局(CA)に要求するために使用される。
【0144】
応答ユニット152は、申し込み要求に応答してデジタル証明書をノードに発行するように構成される。
【0145】
トランザクションユニット153は、第6のトランザクション要求をブロックチェーンに送信するように構成され、第6のトランザクション要求は、デジタル証明書をブロックチェーンに書き込むことを要求するために使用される。したがって、ブロックチェーンは、デジタル証明書に対して合意検証を実行し、合意結果に基づいて第6のトランザクション要求に応答するかまたは第6のトランザクション要求を拒否する。
【0146】
ノードによって送信されたデジタル証明書申し込み要求を受信した後、受信ユニット151は、要求を応答ユニット152に送信することに留意されたい。応答ユニット152は、要求に応答し、発行されたデジタル証明書をチェーンにつなぐことを要求する。
【0147】
本出願のこの実装においては、デジタル証明書をノードに発行した後、CAがデジタル証明書をチェーンにつなぐようにブロックチェーンに要求することが分かる。ブロックチェーンは、デジタル証明書の有効性を検証し、デジタル証明書をチェーンにつなぐべきかどうかを判定する。CAがデジタル証明書をノードに発行し、チェーンにつなぐためにブロックチェーンにデジタル証明書を直接書き込む既存の技術の解決策と比較して、本出願のこの実装のCAは、集中的な証明書の管理、証明書の記憶、および証明書のチェーンへの連結を実行することができず、デジタル証明書を発行することのみが可能である。したがって、CAが攻撃されるリスクが、減らされることが可能であり、CAの安定性およびセキュリティが、改善されることが可能である。
【0148】
実装13
図16は、本出願の実装13による電子デバイスを示す概略的な構造図である。
図16を参照すると、電子デバイスは、プロセッサと、内部バスと、ネットワークインターフェースと、メモリと、不揮発性メモリとを含み、もちろん、別のサービスによって必要とされるハードウェアをさらに含み得る。プロセッサは、不揮発性メモリからメモリに対応するコンピュータプログラムを読み込み、それから、論理的なレベルでデジタル証明書管理装置を形成するためにコンピュータプログラムを実行する。もちろん、ソフトウェアの実装に加えて、本出願は、別の実装、たとえば、論理デバイスまたはハードウェアとソフトウェアとの組合せを除外しない。言い換えると、以下の処理手順の実行主体は、論理ユニットに限定されず、ハードウェアまたは論理デバイスであることも可能である。
【0149】
ネットワークインターフェース、プロセッサ、およびメモリは、バスシステムを使用することによって相互に接続され得る。バスは、業界標準アーキテクチャ(ISA)バス、周辺装置相互接続(PCI)バス、拡張業界標準アーキテクチャ(EISA)バスなどであることが可能である。バスは、アドレスバス、データバス、制御バスなどに分類され得る。指示を容易にするために、
図16において、バスは、ただ1つの両方向矢印を使用することによって示される。しかし、それは、ただ1つのバスまたはただ1種類のバスが存在することを意味しない。
【0150】
メモリは、プログラムを記憶するように構成される。特に、プログラムは、プログラムコードを含むことが可能であり、プログラムコードは、コンピュータ動作命令を含む。メモリは、読み出し専用メモリおよびランダムアクセスメモリを含むことが可能であり、プロセッサのための命令およびデータを提供する。メモリは、高速ランダムアクセスメモリ(RAM)を含むことが可能であり、少なくとも1つの磁気ディスクメモリなどの不揮発性メモリ(non-volatile memory)をさらに含むことが可能である。
【0151】
プロセッサは、メモリに記憶されたプログラムを実行し、特に、以下の動作、すなわち、ブロックチェーン内のノードによって送信された申し込み要求を受信する動作であって、申し込み要求が、デジタル証明書をノードに発行するように認証局(CA)に要求するために使用される、動作と、申し込み要求に応答してデジタル証明書をノードに発行する動作と、第6のトランザクション要求をブロックチェーンに送信する動作であって、第6のトランザクション要求が、デジタル証明書をブロックチェーンに書き込むことを要求するために使用される、動作とを実行するように構成される。したがって、ブロックチェーンは、デジタル証明書に対して合意検証を実行し、合意結果に基づいて第6のトランザクション要求に応答するかまたは第6のトランザクション要求を拒否する。
【0152】
デジタル証明書管理装置またはマスタ(Master)ノードによって実行され、本出願の
図8および
図15に示された実装において開示された前述の方法は、プロセッサに適用されるかまたはプロセッサによって実施されることが可能である。プロセッサは、集積回路チップであることが可能であり、信号処理能力を有する。実施のプロセスにおいて、前述の方法のステップは、プロセッサのハードウェアの集積論理回路を使用することによってまたはソフトウェアの形態の命令を使用することによって実施され得る。プロセッサは、中央演算処理装置(CPU)、ネットワークプロセッサ(NP)などを含む汎用プロセッサであることが可能であり、あるいはデジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは別のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理デバイス、またはディスクリートハードウェア構成要素であることが可能であり、本出願の実装において開示された方法、ステップ、および論理ブロック図を実施または実行することが可能である。汎用プロセッサは、マイクロプロセッサであることが可能であり、またはプロセッサは、任意の通常のプロセッサなどであることが可能である。本出願の実装を参照して開示された方法のステップは、ハードウェア復号プロセッサまたは復号プロセッサのハードウェアとソフトウェアモジュールとの組合せを使用することによって直接実行され、完了されることが可能である。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、またはレジスタなどの当技術分野の成熟したストレージ媒体に置かれることが可能である。ストレージ媒体は、メモリに置かれ、プロセッサは、メモリ内の情報を読み、プロセッサのハードウェアとの組合せで前述の方法のステップを完了する。
【0153】
デジタル証明書管理装置は、さらに、
図8の方法を実行し、マスタノードによって実行される方法を実装することができる。
【0154】
装置の実装は、方法の実装と基本的に同様であり、したがって簡潔に説明される。関連する部分に関しては、方法の実装の部分的な説明を参照されたい。
【0155】
本開示の装置の構成要素において、構成要素は、実装される機能に基づいて論理的に分割されることに留意されたい。しかし、本開示は、これに限定されず、構成要素は、必要に応じて分割されるかまたは組み合わされることが可能である。
【0156】
実装14
同じ発明の創造に基づいて、本出願のこの実装は、コンピュータ可読ストレージ媒体をさらに提供する。コンピュータ可読ストレージ媒体は、1つまたは複数のプログラムを記憶する。1つまたは複数のプログラムが複数のアプリケーションプログラムを含む電子デバイスによって実行されるとき、電子デバイスは、実装1、3、4、および5において提供されるデジタル証明書管理方法を実行することができる。
【0157】
実装15
同じ発明の創造に基づいて、本出願のこの実装は、
図9、
図11、
図13、および
図15に対応する例において提供されたデジタル証明書管理装置のうちのいずれか1つまたは複数を含むデジタル証明書管理システムをさらに提供する。
【0158】
当業者は、本開示の実装が方法、システム、またはコンピュータプログラム製品として提供され得ることを理解するはずである。したがって、本開示は、ハードウェアのみの実装、ソフトウェアのみの実装、またはソフトウェアとハードウェアとの組合せによる実装の形態を使用し得る。さらに、本開示は、コンピュータが使用可能なプログラムコードを含む(磁気ディスクメモリ、CD-ROM、光学式メモリなどを含むがこれらに限定されない)1つまたは複数のコンピュータが使用可能なストレージ媒体上に実装されるコンピュータプログラム製品の形態を用いることができる。
【0159】
本開示は、本開示の実装に基づく方法、デバイス(システム)、およびコンピュータプログラム製品の流れ図および/またはブロック図を参照して説明されている。流れ図および/またはブロック図の各プロセスおよび/または各ブロックと、流れ図および/またはブロック図のプロセスおよび/またはブロックの組合せとを実装するためにコンピュータプログラム命令が使用され得ることを理解されたい。これらのコンピュータプログラム命令は、コンピュータまたは任意のその他のプログラミング可能なデータ処理デバイスのプロセッサによって実行される命令が流れ図の1つもしくは複数のプロセスおよび/またはブロック図の1つもしくは複数のブロックの規定された機能を実装するための装置を生成するようにマシンを生成するために汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または任意のその他のプログラミング可能なデータ処理デバイスのプロセッサのために提供され得る。
【0160】
これらのコンピュータプログラム命令は、コンピュータ可読メモリに記憶された命令が指示装置を含む製品を生成するように、規定された方法で働くようにコンピュータまたは任意のその他のプログラミング可能なデータ処理デバイスに命令し得るコンピュータ可読メモリに記憶されることが可能である。指示装置は、流れ図の1つもしくは複数のプロセスおよび/またはブロック図の1つもしくは複数のブロックの規定された機能を実装する。
【0161】
これらのコンピュータプログラム命令は、一連の動作およびステップがコンピュータまたは別のプログラミング可能なデバイス上で実行され、それによって、コンピュータによって実施される処理を生成するようにコンピュータまたは別のプログラミング可能なデータ処理デバイスにロードされ得る。したがって、コンピュータまたは別のプログラミング可能なデバイス上で実行される命令が、流れ図の1つもしくは複数のプロセスおよび/またはブロック図の1つもしくは複数のブロックの規定された機能を実施するためのステップを提供する。
【0162】
典型的な構成において、コンピューティングデバイスは、1つまたは複数のプロセッサ(CPU)と、入力/出力インターフェースと、ネットワークインターフェースと、メモリとを含む。
【0163】
メモリは、非永続的なメモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/またはコンピュータ可読媒体、たとえば、読み出し専用メモリ(ROM)もしくはフラッシュメモリ(フラッシュRAM)内の別の形態を含み得る。メモリは、コンピュータ可読媒体の例である。
【0164】
コンピュータ可読媒体は、任意の方法または技術を使用することによって情報を記憶することができる、永続的な媒体、非永続的な媒体、移動可能な媒体、および移動不可能な媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータであることが可能である。コンピュータストレージ媒体の例は、パラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別の種類のランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリもしくは別のメモリ技術、コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)もしくは別の光学式メモリ、カセット磁気テープ、磁気テープディスクメモリ、もしくは別の磁気式ストレージデバイス、またはコンピューティングデバイスによってアクセスされ得る情報を記憶するために使用されることが可能である任意のその他の非一時的媒体を含むがこれらに限定されない。本明細書の定義に基づいて、コンピュータ可読媒体は、変調されたデータ信号およびキャリアなどのコンピュータ可読一時媒体(transitory media)を含まない。
【0165】
用語「含む(include)」、「含む(contain)」、またはそれらの用語の任意のその他の変化形は、非排他的包含を含むように意図され、したがって、一連の要素を含むプロセス、方法、物品、またはデバイスは、それらの要素を含むだけでなく、明示的に挙げられていないその他の要素も含むか、またはそのようなプロセス、方法、物品、もしくはデバイスに固有の要素をさらに含むことにさらに留意されたい。「〜を含む」によって示される要素は、さらなる制約なしに、その要素を含むプロセス、方法、物品、またはデバイスに別の同一の要素をさらに含む。
【0166】
当業者は、本出願の実装が方法、システム、またはコンピュータプログラム製品として提供され得ることを理解するはずである。したがって、本出願は、ハードウェアのみの実装、ソフトウェアのみの実装、またはソフトウェアとハードウェアとの組合せによる実装の形態を使用し得る。さらに、本出願は、コンピュータが使用可能なプログラムコードを含む(磁気ディスクメモリ、CD-ROM、光学式メモリなどを含むがこれらに限定されない)1つまたは複数のコンピュータが使用可能なストレージ媒体上に実装されるコンピュータプログラム製品の形態を用いることができる。
【0167】
前述の実装は、本出願の実装であるに過ぎず、本出願を限定するように意図されていない。当業者は、本出願に様々な修正および変更を行うことができる。本出願の精神および原理から逸脱することなくなされたあらゆる修正、均等な置き換え、または改善は、本出願の請求項の範囲内に入る。
【0168】
図17は、本開示の実装によるデジタル証明書管理システムにおいてデジタル証明書を守るためのコンピュータによって実施される方法1700の例を示す流れ図である。明瞭に示すために、以下の説明は、この説明のその他の図の文脈で方法1700を全体的に説明する。しかし、方法1700は、必要に応じて、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステムと、環境と、ソフトウェアと、ハードウェアとの組合せによって実行されることが可能である。一部の実装において、方法1700の様々なステップは、並列に、組み合わせて、ループして、または任意の順序で実行されることが可能である。
【0169】
1702において、デジタル証明書管理システムが、ブロックチェーンネットワーク内のノードにおいて認証局からデジタル証明書を含むトランザクション要求を受信し、トランザクション要求は、ブロックチェーンネットワークに関連するブロックチェーンにデジタル証明書を書き込む要求であり、デジタル証明書は、ブロックチェーンネットワーク内のノードに発行される。認証局からのトランザクション要求は、デジタル証明書などの、トランザクションの要求を示す資産転送情報を含み得る。たとえば、資産転送情報は、売り手または転送者のアイデンティティ、(たとえば、受信されたノードに位置する)買い手または受信者のアイデンティティを含み得る。資産転送情報は、トランザクション情報の量を示すトランザクションの資産または値も含み得る。トランザクションの時間が要求され、1つまたは複数の潜在的な契約条項が要求された。トランザクション要求は、2者の間の支払いのためのものであるか、または2つの金融機関などの2者の間の支払いの要求であることが可能である。
【0170】
一部の実装において、トランザクション要求は、デジタル証明書を含み得る。デジタル証明書は、話をしている2者が信頼できる者であることを保証することができる。たとえば、デジタル証明書は、バージョン番号、通し番号、署名の種類、発行者情報、有効期間、発行者、発行された公開鍵、認証局のデジタル署名、およびトランザクション要求に関連するその他の情報を含み得る。1702から、方法1700は1704に進む。
【0171】
1704において、デジタル証明書管理システムが、トランザクション要求に関する合意検証の結果を決定し、合意検証の結果は、ブロックチェーンネットワーク内のノードによって生成される。一部の実装において、デジタル証明書管理システムは、合意検証を決定するために1つまたは複数の基準に依拠する。たとえば、1つまたは複数の基準は、たとえば、デジタル証明書が失効するまでにどれだけ長く有効であるのかに関する期限、またはデジタル証明書に対応する通し番号が2者の間の要件を満たすかどうかなどのデジタル証明書に関する情報を含む検証基準を含み得る。
【0172】
一部の実装において、ブロックチェーンネットワーク内の各ノードは、デジタル証明書に対する合意検証を順次実行する。たとえば、ブロックチェーンネットワークにおいて、ノードAが、第1の合意検証を実行し、それから、ノードAの合意検証の結果および認証局から受信されたトランザクション要求のアナウンスを別のノードBにブロードキャストする。このプロセスは、ノードBからZが受信されたトランザクション要求に対して合意検証をそれぞれ実行し、各ノードがあらゆるその他のノードの結果を知るまで継続する。最後に、各ノードが合意検証を実行した後、各ノードは、合意検証が完了したことを認証局に証明するためにデジタル証明書に署名する。
【0173】
一部の実装において、ブロックチェーンネットワーク内の各ノードは、合意検証を実行する。特に、ノードAなどのノードが、デジタル証明書を得るためにトランザクション要求を解析する。デジタル証明書が存在しない場合、ノードは、認証局からのトランザクション要求を拒絶する。デジタル証明書が存在する場合、ノードは、そのノードのメモリからローカルの台帳を抽出する。ローカルの台帳は、ノードによって実行されたトランザクションの各々のレコードおよび証明書失効リストを保有する。証明書失効リストは、ノードの各々および認証局によるアクセスを拒絶される証明書を追跡記録する。特に、ノードは、抽出されたデジタル証明書を証明書失効リスト内の各デジタル証明書と比較する。抽出されたデジタル証明書が証明書失効リスト内のデジタル証明書と一致する場合、ノードは、トランザクション要求を拒否する。抽出されたデジタル証明書が証明書失効リスト内のいかなるデジタル証明書とも一致しない場合、ノードは、そのノードに関するトランザクションを完了し、結果のアナウンスおよびトランザクション要求をブロードキャストする。トランザクション要求を完了することに応じて、ノードは、トランザクション要求をブロックチェーン内のローカルの台帳に追加する。その他の実装において、トランザクションは、ブロックチェーンネットワーク内の各ノードが合意検証を実行するまで完了しない。1704から、方法1700は1706に進む。
【0174】
1706において、デジタル証明書管理システムが、合意検証の結果を予め決められた閾値と比較する。ブロックチェーンネットワーク内の各ノードが合意検証を実行することに応じて、デジタル証明書管理システムは、合意検証の結果を予め決められた閾値と比較する。たとえば、デジタル証明書管理システムは、検証結果が成功である合意検証に参加するノードの数を分析する。デジタル証明書管理システムは、検証結果が失敗である合意検証に参加するノードの数も分析する。デジタル証明書管理システムは、合意検証が成功するノードの数を予め決められた閾値と比較する。数が予め決められた閾値を超えている場合、デジタル証明書管理システムは、デジタル証明書を記憶する。1706から、方法1700は1708に進む。
【0175】
1708においては、合意検証の結果が予め決められた閾値以上であるとデジタル証明書管理システムが判定することに応じて、デジタル証明書管理システムは、ブロックチェーンネットワークに関連するブロックチェーンにデジタル証明書を記憶する。特に、デジタル証明書管理システム(ノードのブロックチェーンネットワーク)は、デジタル証明書管理システムからの合意検証の結果が予め決められた閾値以上であることに応じて、デジタル証明書と、認証局からのトランザクション要求を特定するデータとを記憶する。デジタル証明書管理システムは、デジタル証明書と、トランザクション要求を特定するデータとを、ブロックチェーンネットワークのローカルの台帳またはブロックチェーンに記憶することができる。ノードの各々は、ローカルの台帳を読み、ローカルの台帳に書き込むために独自のノードにアクセスすることができる。さらに、各ノードは、デジタルローカル管理システム内の同じローカルの台帳またはブロックチェーンを有するべきである。デジタル証明書管理システムは、トランザクション要求の実行に関する日付および時間をログに記録する。デジタル証明書管理システムは、トランザクションが実行されたという指示を認証局に与える。1708の後、方法1700は停止する。
【0176】
本出願の特徴は、欠陥がある認証局による問題を取り除こうとする。たとえば、認証局によって送信されたトランザクション要求を受信することであって、トランザクション要求が、デジタル証明書をブロックチェーンネットワーク内のブロックチェーンに書き込むためのトランザクションデータおよびデジタル証明書を含む、受信することと、トランザクション要求に対してブロックチェーンネットワークによって実行される合意検証を決定し、合意検証の結果が予め決められた閾値よりも大きいと判定することに応じて、デジタル証明書をブロックチェーンネットワークのブロックチェーンに書き込み、認証局からのトランザクション要求を実行することとによる。デジタル証明書管理システムにおいて合意検証を実行することによって、トランザクションは、たとえ認証局が欠陥があるか、ハッキングされるか、またはデジタル証明書をランダムに発行するために悪意を持って使用されるとしても引き続き実行され得る。結局、ブロックチェーンネットワークは、ブロックチェーンネットワーク内のブロックチェーンのセキュリティを高めるために、欠陥のある認証局からの大きなセキュリティのリスクを取り除くことができる。
【0177】
本明細書に記載の実施形態および動作は、本明細書において開示された構造を含むデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、あるいはこれらのうちの1つまたは複数の組合せで実装されることが可能である。動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶された、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。データ処理システム、コンピュータ、またはコンピューティングデバイスは、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するための装置、デバイス、および機械を包含する可能性がある。装置は、専用論理回路、たとえば、中央演算処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含み得る。装置は、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(たとえば、オペレーティングシステムもしくはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0178】
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に好適なその他の単位としての形態を含む任意の形態で展開されることが可能である。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語の文書に記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行され得る。
【0179】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイスを含むか、またはこれらの大容量ストレージデバイスからデータを受け取るか、もしくはこれらの大容量ストレージデバイスにデータを転送するか、もしくはそれら両方を行うために動作可能なように結合される。コンピュータは、別のデバイス、たとえば、モバイルデバイス、携帯情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイスに組み込まれ得る。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、磁気ディスク、および光磁気ディスクを含む不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0180】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、モバイル電話(たとえば、スマートフォン)、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチおよびスマートグラス)、人体に埋め込まれたデバイス(たとえば、バイオセンサー、人工内耳)、またはその他の種類のモバイルデバイスを含み得る。モバイルデバイスは、(下に記載の)様々な通信ネットワークと(たとえば、無線周波数(RF)信号を使用して)ワイヤレスで通信することができる。モバイルデバイスは、モバイルデバイスの現在の環境の特徴を判定するためのセンサーを含み得る。センサーは、カメラ、マイクロフォン、近接センサー、GPSセンサー、モーションセンサー、加速度計、環境光センサー、湿度センサー、ジャイロスコープ、コンパス、気圧計、指紋センサー、顔認識システム、RFセンサー(たとえば、Wi-Fiおよびセルラー無線)、温度センサー、またはその他の種類のセンサーを含み得る。たとえば、カメラは、可動または固定レンズを有する前方または後方カメラ、フラッシュ、イメージセンサー、および画像プロセッサを含み得る。カメラは、顔および/または虹彩認識のための詳細を撮影することができるメガピクセルカメラであることが可能である。カメラは、データプロセッサ、およびメモリに記憶されるかまたは遠隔でアクセスされる認証情報と一緒に、顔認識システムを形成し得る。顔認証または1つもしくは複数のセンサー、たとえば、マイクロフォン、モーションセンサー、加速度計、GPSセンサー、もしくはRFセンサーが、ユーザ認証のために使用され得る。
【0181】
ユーザとのインタラクションを提供するために、実施形態は、ディスプレイデバイスおよび入力デバイス、たとえば、ユーザに対して情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、ならびにユーザがコンピュータに入力を与えることができるタッチスクリーン、キーボード、およびポインティングデバイスを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを行うためにさらに使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0182】
実施形態は、有線もしくはワイヤレスデジタルデータ通信の任意の形態もしくは媒体(またはそれらの組合せ)、たとえば、通信ネットワークによって相互に接続されたコンピューティングデバイスを使用して実装され得る。相互に接続されるデバイスの例は、通常は通信ネットワークを通じてインタラクションする、概して互いに離れているクライアントおよびサーバである。クライアント、たとえば、モバイルデバイスは、それ自体で、サーバと、またはサーバを通じてトランザクションを実行することができ、たとえば、購入、販売、供与、送付、または貸し付けのトランザクション、トランザクションの認可を実行する。そのようなトランザクションは、アクションおよび応答が時間的にごく近いようにリアルタイムである可能性があり、たとえば、人が、アクションおよび応答が実質的に同時に起こると知覚するか、人のアクションに引き続く応答に関する時間差が、1ミリ秒(ms)未満もしくは1秒(s)未満であるか、または応答が、システムの処理の制約を考慮に入れると意図的な遅延がない。
【0183】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、および広域ネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せのすべてまたは一部を含み得る。情報は、ロングタームエボリューション(LTE)、5G、IEEE 802、インターネットプロトコル(IP)、またはその他のプロトコルもしくはプロトコルの組合せを含む様々なプロトコルおよび標準に従って通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイスの間で音声、動画、生体、もしくは認証情報、またはその他の情報を送信することができる。
【0184】
別々の実装として説明された特徴が、単一の実装に組み合わせて実装される可能性があり、一方、単一の実装として説明された特徴が、複数の実装に別々にまたは任意の好適な部分的組合せで実装される可能性がある。特定の順序で説明され、主張された動作は、特定の順序が実行されなければならないことを要求とすると理解されるべきでなく、すべての示された動作が実行されなければならないことを要求するとも理解されるべきでない(一部の動作は任意であることができる)。必要に応じて、マルチタスクまたは並列処理(またはマルチタスクと並列処理との組合せ)が、実行され得る。