IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ イサラ コーポレイションの特許一覧

特許7454750複数の実体のルート証明書データブロックチェーンの構築
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-13
(45)【発行日】2024-03-22
(54)【発明の名称】複数の実体のルート証明書データブロックチェーンの構築
(51)【国際特許分類】
   H04L 9/08 20060101AFI20240314BHJP
   H04L 9/32 20060101ALI20240314BHJP
【FI】
H04L9/08 F
H04L9/32 200Z
H04L9/32 200B
H04L9/32 200E
【請求項の数】 26
(21)【出願番号】P 2023522790
(86)(22)【出願日】2021-01-27
(65)【公表番号】
(43)【公表日】2023-11-08
(86)【国際出願番号】 CA2021050081
(87)【国際公開番号】W WO2022077092
(87)【国際公開日】2022-04-21
【審査請求日】2023-04-13
(31)【優先権主張番号】17/071,451
(32)【優先日】2020-10-15
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】518220637
【氏名又は名称】イサラ コーポレイション
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【弁理士】
【氏名又は名称】鈴木 信彦
(74)【代理人】
【識別番号】100176418
【弁理士】
【氏名又は名称】工藤 嘉晃
(72)【発明者】
【氏名】山田 淳
【審査官】岸野 徹
(56)【参考文献】
【文献】米国特許出願公開第2019/0317924(US,A1)
【文献】特表2021-520167(JP,A)
【文献】特表2020-519039(JP,A)
【文献】米国特許出願公開第2019/0238525(US,A1)
【文献】国際公開第2020/019914(WO,A1)
【文献】特表2019-532603(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
検証実体によって実行される方法であって、
ルート認証機関コンソーシアムの各メンバー実体からジェネシスブロックデータエントリを受信することであって、各ジェネシスブロックデータエントリが、前記各メンバー実体の識別子および前記各メンバー実体の公開鍵を含む、前記受信することと、
前記各ジェネシスブロックデータエントリに関連付けられたデジタル署名の第1のセットを検証することであって、前記第1のセット内の各デジタル署名が、前記ジェネシスロックデータエントリのうちの各1つに関連付けられる、前記検証することと、
前記メンバー実体の前記ジェネシスブロックデータエントリを含んでいるジェネシスデータブロックを生成することと、
前記ジェネシスデータブロックを前記メンバー実体に送信することに応答して、前記各メンバー実体からデジタル署名の第2のセットを受信することであって、前記第2のセット内の各デジタル署名が、前記ジェネシスデータブロックに基づいて各メンバー実体によって生成される、前記受信することと、
前記ジェネシスデータブロックに基づいてジェネシスブロックを生成することであって、前記ジェネシスブロックを生成することが、前記デジタル署名の第2のセットを前記ジェネシスデータブロックに追加することを含む、前記生成することと、
前記ジェネシスブロックを含んでいるデータブロックチェーンを、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供することとを含む、方法。
【請求項2】
前記メンバー実体の各々が、前記ジェネシスブロックデータエントリのうちの1つに含まれる前記公開鍵に対応する秘密鍵を持ち、前記メンバー実体の各々の前記秘密鍵が、前記検証実体によってアクセス可能でない、請求項1に記載の方法。
【請求項3】
前記各メンバー実体からの前記ジェネシスブロックデータエントリが、前記検証実体によって並列に受信される、請求項1に記載の方法。
【請求項4】
前記各メンバー実体からの前記デジタル署名の第2のセットが、前記検証実体によって並列に受信される、請求項1に記載の方法。
【請求項5】
前記ジェネシスブロックを生成する前に、前記メンバー実体の前記デジタル署名の第2のセットを検証することをさらに含む、請求項1に記載の方法。
【請求項6】
前記デジタル署名の第1のセットが、前記各ジェネシスブロックデータエントリと共に前記検証実体によって受信され、前記第1のセット内の各デジタル署名が、前記メンバー実体の前記識別子および前記メンバー実体の秘密鍵に基づいて、前記メンバー実体のうちの各1つによって生成される、請求項1~5のいずれか1項に記載の方法。
【請求項7】
アクションブロックを前記データブロックチェーンに追加することをさらに含み、前記アクションブロックを追加することが、アクションデータブロックを構築することを含み、前記アクションデータブロックを構築することが、
前記ジェネシスブロックのハッシュを決定することと、
前記ハッシュをアクションブロックデータエントリに追加することとを含む、請求項1~5のいずれか1項に記載の方法。
【請求項8】
1つまたは複数のプロセッサと、
命令を格納しているメモリとを備えているコンピュータシステムであって、前記命令が、実行された場合に、前記1つまたは複数のプロセッサに、
ルート認証機関コンソーシアムの各メンバー実体からジェネシスブロックデータエントリを受信することであって、各ジェネシスブロックデータエントリが、前記各メンバー実体の識別子および前記各メンバー実体の公開鍵を含む、前記受信することと、
前記各ジェネシスブロックデータエントリに関連付けられたデジタル署名の第1のセットを検証することであって、前記第1のセット内の各デジタル署名が、前記ジェネシスロックデータエントリのうちの各1つに関連付けられる、前記検証することと、
前記ジェネシスブロックデータエントリを含んでいるジェネシスデータブロックを生成することと、
前記ジェネシスデータブロックを前記メンバー実体に送信することに応答して、前記各メンバー実体からデジタル署名の第2のセットを受信することであって、前記第2のセット内の各デジタル署名が、前記ジェネシスデータブロックに基づいて各メンバー実体によって生成される、前記受信することと、
前記ジェネシスデータブロックに基づいてジェネシスブロックを生成することであって、前記ジェネシスブロックを生成することが、前記デジタル署名の第2のセットを前記ジェネシスデータブロックに追加することを含む、前記生成することと、
前記ジェネシスブロックを含んでいるブロックチェーンを、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供することとを含む動作を実行させる、コンピュータシステム。
【請求項9】
前記メンバー実体の各々が、前記ジェネシスブロックデータエントリのうちの1つに含まれる前記公開鍵に対応する秘密鍵を持ち、前記メンバー実体の各々の前記秘密鍵が、証実体によってアクセス可能でない、請求項8に記載のコンピュータシステム。
【請求項10】
前記各メンバー実体からの前記ジェネシスブロックデータエントリが、証実体によって並列に受信される、請求項8に記載のコンピュータシステム。
【請求項11】
前記各メンバー実体からの前記デジタル署名の第2のセットが、証実体によって並列に受信される、請求項8に記載のコンピュータシステム。
【請求項12】
前記動作が、前記ジェネシスブロックを生成する前に、前記メンバー実体の前記デジタル署名の第2のセットを検証することをさらに含む、請求項8に記載のコンピュータシステム。
【請求項13】
前記デジタル署名の第1のセットが、前記各ジェネシスブロックデータエントリと共に証実体によって受信され、前記第1のセット内の各デジタル署名が、前記メンバー実体の前記識別子および前記メンバー実体の秘密鍵に基づいて、前記メンバー実体のうちの各1つによって生成される、請求項8~12のいずれか1項に記載のコンピュータシステム。
【請求項14】
前記動作が、アクションブロックを前記データブロックチェーンに追加することをさらに含み、前記アクションブロックを追加することが、アクションデータブロックを構築することを含み、前記アクションデータブロックを構築することが、
前記ジェネシスブロックのハッシュを決定することと、
前記ハッシュをアクションブロックデータエントリに追加することとを含む、請求項8~12のいずれか1項に記載のコンピュータシステム。
【請求項15】
検証実体によって実行される方法であって、
アクションブロックデータエントリを含んでいるアクションデータブロックを生成することと、
前記アクションデータブロックをブロックチェーンの既存のブロックに関連付けることであって、前記アクションデータブロックを前記既存のブロックに関連付けることが、前記既存のブロックに基づいてハッシュを生成することと、前記ハッシュを前記アクションデータブロックに含めることとを含む、前記関連付けることと、
前記アクションデータブロックを、ルート認証機関コンソーシアムのメンバー実体に送信することと、
前記アクションデータブロックを前記メンバー実体に送信することに応答して、前記各メンバー実体からデジタル署名のセットを受信することであって、前記セット内の各デジタル署名が、前記アクションデータブロックに基づいて各メンバー実体によって生成される、前記受信することと、
前記アクションデータブロックに基づいてアクションブロックを生成することであって、前記アクションブロックを生成することが、前記メンバー実体からの前記デジタル署名のセットを前記アクションデータブロックに追加することを含む、前記生成することと、
前記アクションブロックを含んでいる前記ブロックチェーンを、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供することとを含む、方法。
【請求項16】
前記アクションブロックデータエントリが、要求している実体から受信され、前記方法が、前記要求している実体のデジタル署名を検証することを含む、請求項15に記載の方法。
【請求項17】
前記要求している実体が、前記アクションブロックデータエントリ内の公開鍵に対応する秘密鍵を持ち、前記要求している実体の前記秘密鍵が、前記検証実体によってアクセス可能でない、請求項16に記載の方法。
【請求項18】
前記アクションブロックデータエントリが、アクションを識別するアクションタイプ識別子を含む、請求項15~17のいずれか1項に記載の方法。
【請求項19】
前記アクションが、新しいメンバーを前記ルート認証機関コンソーシアムに追加することを含み、前記アクションブロックデータエントリが、前記新しいメンバーの識別子、前記新しいメンバーの公開鍵、および前記新しいメンバーのデジタル署名を含む、請求項18に記載の方法。
【請求項20】
前記アクションが、
メンバーを前記ルート認証機関コンソーシアムから除去することと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵を更新することと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵を取り消すことと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵を置き換えることと、
前記ルート認証機関コンソーシアムのメンバーの追加の公開鍵を追加することと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵をキャンセルすることと、
前記チェーンの有効な状態をタイムスタンプ処理することと、
現在有効なすべての識別情報の要約を記録することと、
前記ブロックをフリーズすることと、
前記ブロックをフリーズ解除することとのうちの少なくとも1つを含む、請求項18に記載の方法。
【請求項21】
1つまたは複数のプロセッサと、
命令を格納しているメモリとを備えているコンピュータシステムであって、前記命令が、実行された場合に、前記1つまたは複数のプロセッサに、
アクションブロックデータエントリを含んでいるアクションデータブロックを生成することと、
前記アクションデータブロックをブロックチェーンの既存のブロックに関連付けることであって、前記アクションデータブロックを前記既存のブロックに関連付けることが、前記既存のブロックに基づいてハッシュを生成することと、前記ハッシュを前記アクションデータブロックに含めることとを含む、前記関連付けることと、
前記アクションデータブロックを、ルート認証機関コンソーシアムのメンバー実体に送信することと、
前記アクションデータブロックを前記メンバー実体に送信することに応答して、前記各メンバー実体からデジタル署名のセットを受信することであって、前記セット内の各デジタル署名が、前記アクションデータブロックに基づいて各メンバー実体によって生成される、前記受信することと、
前記アクションデータブロックに基づいてアクションブロックを生成することであって、前記アクションブロックを生成することが、前記メンバー実体からの前記デジタル署名のセットを前記アクションデータブロックに追加することを含む、前記生成することと、
前記アクションブロックを含んでいる前記ブロックチェーンを、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供することとを含む動作を実行させる、コンピュータシステム。
【請求項22】
前記動作が、
要求している実体から前記アクションブロックデータエントリを受信することであって、前記アクションブロックデータエントリが、前記要求している実体の識別子および前記要求している実体の公開鍵を含む、前記受信することと、
前記アクションデータブロックを前記メンバー実体に送信する前に、前記要求している実体のデジタル署名を検証することとを含む、請求項21に記載のコンピュータシステム。
【請求項23】
前記要求している実体が、前記アクションブロックデータエントリ内の公開鍵に対応する秘密鍵を持ち、前記要求している実体の前記秘密鍵が、証実体によってアクセス可能でない、請求項22に記載のコンピュータシステム。
【請求項24】
前記アクションブロックデータエントリが、アクションを識別するアクションタイプ識別子を含む、請求項21~23のいずれか1項に記載のコンピュータシステム。
【請求項25】
前記アクションが、新しいメンバーを前記ルート認証機関コンソーシアムに追加することを含み、前記アクションブロックデータエントリが、前記新しいメンバーの識別子、前記新しいメンバーの公開鍵、および前記新しいメンバーのデジタル署名を含む、請求項24に記載のコンピュータシステム。
【請求項26】
前記アクションが、
メンバーを前記ルート認証機関コンソーシアムから除去することと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵を更新することと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵を取り消すことと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵を置き換えることと、
前記ルート認証機関コンソーシアムのメンバーの追加の公開鍵を追加することと、
前記ルート認証機関コンソーシアムのメンバーの公開鍵をキャンセルすることと、
前記チェーンの有効な状態をタイムスタンプ処理することと、
現在有効なすべての識別情報の要約を記録することと、
前記ブロックをフリーズすることと、
前記ブロックをフリーズ解除することとのうちの少なくとも1つを含む、請求項24に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年10月15日に出願された米国特許出願第17/071,451号に対する優先権を主張し、この米国特許出願の開示は、参照によって全体的に本明細書に包含される。
【0002】
以下の説明は、暗号システムのための複数の実体のルート証明書データブロックチェーンに関連している。
【背景技術】
【0003】
暗号システムは、パブリックチャネルを経由して安全に通信するために使用される。例えば、一部の暗号システムは、メッセージを暗号化することによって機密性を実現し、一部の暗号システムは、デジタル署名によって信頼性を実現する。一部の暗号システムは、公開鍵、秘密鍵、および共有された秘密を使用して動作する。
【発明の概要】
【0004】
【図面の簡単な説明】
【0005】
図1A】例示的な通信システムの態様を示すブロック図である。
図1B図1Aのルート証明書データブロックチェーンとして使用され得る例示的なブロックチェーンの図である。
図2A】複数の実体のルート証明書データブロックチェーンのジェネシスブロックに関する例示的な署名プロセスの図である。
図2B】複数の実体のルート証明書データブロックチェーンのアクションブロックに関する例示的な署名プロセスの図である。
図3A】例示的なジェネシスブロック作成プロセスの態様を示すフロー図である。
図3B】メンバー実体から受信された例示的なデータエントリの図である。
図3C】ジェネシスブロックデータエントリに基づいて検証実体によって作成された例示的なジェネシスデータブロックの図である。
図3D図3Cのジェネシスデータブロックに基づいて検証実体によって作成された例示的なジェネシスブロックの図である。
図4A】アクションブロックを作成するための例示的なプロセスの態様を示すフロー図である。
図4B】要求している実体から受信された例示的なアクションブロックデータエントリの図である。
図4C図4Bのアクションブロックデータエントリに基づいて検証実体によって作成された例示的なアクションデータブロックの図である。
図4D図4Cのアクションデータブロックに基づいて検証実体によって作成された例示的なアクションブロックの図である。
図5A】アクションブロックを作成するための例示的なプロセスの態様を示すフロー図である。
図5B】例示的なアクションブロックデータエントリの図である。
図5C図5Bのアクションブロックデータエントリに基づいて検証実体によって作成された例示的なアクションデータブロックの図である。
図5D図5Cのアクションデータブロックに基づいて検証実体によって作成された例示的なアクションブロックの図である。
図6】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0006】
本明細書で説明される内容の一部の態様では、暗号システムにおいて使用するために、分散された複数の実体のルート認証機関(CA:Certificate Authority)システムが構築される。一部の例では、本明細書で説明されるシステムおよび技術の実装は、既存の技術を上回る技術的優位性または改良をもたらす。一例として、複数の実体のルートCAシステムを使用することによって、単一の実体のセキュリティ侵害(例えば、攻撃、技術的機能不良、または他のイベントから生じるセキュリティ侵害)からの損害が、封じ込められ得る。例えば、複数の実体のルートCAシステムは、ルートCAからのセキュリティを侵害された秘密鍵に対応する公開鍵を取り消すため、または場合によっては、問題のあるルートCAを完全に除去するためのプロトコルまたは別の正式なメカニズムを提供し得る。
【0007】
したがって、本明細書で説明されるシステムおよび技術の態様は、通信システム(例えば、データネットワークなど)、コンピュータシステム(例えば、ネットワーク接続されたコンピュータなど)、スマートデバイス(例えば、いわゆる「モノのインターネット」(IoT:Internet-of-Things)デバイスなど)、および他の種類の技術の動作を改良するために使用され得る。例えば、多種多様な最新の技術は、安全な動作のために、コンピュータによって実装された暗号システムに依存し、本明細書で説明される技術は、例えば、そのようなコンピュータによって実装された暗号システムを、より安全、より効率的にするか、または場合によっては、他の優位性を提供して、それらの暗号システムを改良することができる。
【0008】
公開鍵暗号は、安全な認証、秘密鍵の共有などを実現するために、さまざまな技術において広く展開されている。公開鍵を使用して、デジタル署名を検証し、通信している関係者の識別情報の妥当性を確認すること、またはメッセージを安全に暗号化するために共有された秘密を確立することができる。公開鍵暗号によって提供されるセキュリティは、通常、信頼できる方法で、正当な識別情報に安全に結び付けられている受信された公開鍵に依存する。そのような安全な結び付けがなければ、実体は、意図された関係者に成り済ましている悪意のある関係者の識別情報を、知らないうちに信用してしまうか、またはメッセージを、実際は敵対者である間違った受信者に送信する可能性がある。公開鍵において、正当な識別情報に結び付けられているという信用を確立するために、公開鍵基盤(PKI:Public Key Infrastructure)および信用の輪という2つの一般的な種類のシステムが使用されている。
【0009】
PKIは、暗号システムにおいて信用を確立するための、現在最も広く展開されているメカニズムである。従来、PKIシステムは、ルート認証機関(ルートCA)と呼ばれる信頼できる実体から生じる信用の階層木を構築する。標準的なPKIシステムでは、CAは、公開鍵が識別情報に属していることを確認し、これらの公開鍵および識別情報をデジタル署名に結び付け、この結び付けをデジタル証明書の形態で発行する。任意の関係者(「末端実体」)は、CAの公開鍵を使用して証明書でCAのデジタル署名の妥当性を確認することによって、公開鍵および識別情報の結び付けを検証することができる。この妥当性確認動作はCAの公開鍵を使用するため、CAの公開鍵も信頼されなければならない。したがって、署名された証明書を発行することによって、この公開鍵がCAに属していることを保証する、親CAが存在しなければならない。このようにして、証明書がルートCAに連結され、信用を構築する。そして、このチェーンは、どこかで終わらなければならない。チェーンにおける最後の証明書は、ルート証明書と呼ばれ、ルートCAに属する。ルート証明書は、保証を提供するための上位の第三者CAが存在しないため、自己署名される。したがって、ルート証明書は、異なる方法で信頼される。通常、ルート証明書を信用するために、公知または個人的な情報交換などの方法が使用される。
【0010】
従来のPKIシステムは、いくつかの技術的課題および脆弱性に直面している。ルートCAが単一障害点になり得るため、PKIシステムの最も重要な脆弱性のうちの1つは、ルートCAである。ルートCAがセキュリティを侵害された場合、システム全体のセキュリティの壊滅的な崩壊を引き起こす可能性がある。セキュリティを侵害されたルートCAの秘密鍵を持っている攻撃者は、ルート証明書によって検証可能な証明書を発行することができる。これは、攻撃者が、システム内の任意の実体に成り済ますことができ、システム全体のセキュリティおよび信用の壊滅的な崩壊を引き起こす可能性があるということを意味する。1つのルートCAの代わりに、複数のルートCAを含む信用木を構築する技術プラットフォームは、セキュリティおよび効率を改善することができ、例えば、単一の実体のセキュリティ侵害からの損害が封じ込められるか、または他の方法で軽減されることを可能にする。
【0011】
一部の状況では、ルートCA(従来のPKIにおける潜在的な単一障害点)のリスクおよび責任は、システムをセキュリティの脆弱性の危険にさらされたままにし、PKIの展開を妨げることがある。例えば、ピア組織(および場合によっては、競合する組織)のコンソーシアムために単一のPKIシステムを構築しようとする場合、セキュリティ障害に対する責任を負いたい組織が1つもなく、したがって、どのピア組織も、ルートCAの役割を進んで引き受けないということがあり得る。また、組織は、上位の機関が組織を管理することを望まないことがある。そのような場合、複数のピア実体のルートCAコンソーシアムを構築する技術プラットフォームは、セキュリティおよび効率を改善するためのPKIを構築するために、より魅力的であり、好ましい。
【0012】
ルート証明書を取り消す権限を与えられたルートCAより上位の信頼できる実体が存在しないため、従来のPKIシステムは、ルートCAの秘密鍵のセキュリティ侵害から生じる壊滅的な障害に対する準備が十分でないことがある。ルート証明書を取り消すための正式な標準的メカニズム、またはユーザが無効になったルート証明書を識別するためのメカニズムは存在しなかった。したがって、そのような従来のPKIシステムのユーザは、セキュリティを侵害されたルート証明書を識別するために、(例えば、「任意選択的な」ソフトウェアの更新を含む)公表および口伝えに頼っていた。ルート証明書を識別して取り消すための、より体系的な方法の確立を可能にする技術プラットフォームは、セキュリティおよび効率を改善する。
【0013】
公開鍵暗号を使用して信用を構築するための別の従来のメカニズムは、プリティグッドプライバシー(PGP:Pretty Good Privacy)などのシステム内で展開される信用の輪である。このメカニズムは、管理する機関を回避するように設計されており、したがって、信用の輪システムにはCAが存在しない。代わりに、信用の輪システム内のセキュリティは、ピアツーピアの信用に基づく。例えば、このメカニズムは、正体不明の誰かというような種類の、信用の「友人」ネットワークとして説明されてよく、このメカニズムでは、ある人が、その人がよく知っている人(「友人」)を信用し、友人のデジタル証明書にデジタル署名することによって、友人の公開鍵および識別情報の結び付けを保証する。実体が多くの友人を持っている場合、実体は、複数の署名を証明書に含めることができる。したがって、デジタル証明書での保証の量は、証明書上の署名の数(この文脈では、直接の友人の数を示す)、およびこの証明書に達するための、署名によって接続された証明書(例えば、友人)のチェーンのホップ数という、2つの基準によって測定され得る。例えば、自分は、自分の直接の友人の証明書に署名してよい。したがって、自分は、自分の署名が証明書上にあるため、この証明書を信用する。証明書が、自分の直接の友人の証明書でない場合、この証明書から、信用している誰か(直接の友人)に到達するまで、友人のホップをたどることができてよい。従来の信用の輪の注目すべき欠点のうちの1つは、十分な数の接続された経路を含むために、信用ネットワークがかなり大きくならなければならないということであり、そうしないと、チェーンを完了できないことがあり、これは、妥当性確認が失敗するということを意味する。十分に接続されたネットワークを構築するのには、時間がかかることがある。従来の信用の輪は、ピアツーピアの大きいパブリックネットワークに対して、および他の状況において、十分正しく機能することができる。しかし、信用の輪は、階層を許可しないため、階層構造を有する企業または他の組織などの組織に、常に適しているとは限らない。さらに、従来の信用の輪システムにおける証明書の取り消しは、証明書を取り消す機関が存在しないため、困難である可能性がある。通常、取り消しは、合意によって確立される。そのような取り消しプロセスは、完了するのに長い時間がかかる可能性が高く、ユーザは、このプロセスの間、危険にさらされたままになる。
【0014】
一部の実装では、複数の実体のルートCAシステムは、例えば、従来のPKIシステムおよび従来の信用の輪システムを上回る技術的優位性をもたらすことができる。例えば、複数の実体のルートCAシステムは、単一のルートCAを含まれないが、階層構造が構築され得る、信用メカニズムを提供できる。加えて、複数の実体のルートCAシステムは、セキュリティを侵害されたルートCA実体の公開鍵を取り消すための効率的なメカニズムを提供できる。
【0015】
複数の実体のルートCAシステムでは、例えば、単一のルートCAに属している単一のルート証明書の使用の代わりに、複数の実体のルート証明書セットが使用される。複数の実体のルート証明書セットは、データセット(例えば、複数の実体の識別情報および公開鍵を含んでいるデータブロックのチェーン)であることができ、またはデータセットを使用して表され得る。複数の実体のルートCAシステムは、メンバー実体のコンソーシアム(例えば、委員会、組織、または実体の他の関連性)を表してよく、メンバー実体は、ルートCAまたは末端実体(あるいは両方)として機能してよい。複数の実体のルートCAシステムは複数の異なるメンバー実体を含んでいるため、単一の実体が単一障害点になることができない。複数の実体のルート証明書データブロックチェーンは、(例えば、従来のルート証明書が使用されるように)暗号システムにおいて使用するために、(例えば、従来のルート証明書が公開されるか、ブロードキャストされるか、または配布されるように)公開されるか、ブロードキャストされるか、または配布されてよい。複数の実体のルート証明書データブロックチェーンは、例えば、コンソーシアム内の新しい実体を表す新しいデータブロックをチェーンに追加することによって、ルートCAコンソーシアムに対する動的な変更も可能にし、このようにして柔軟性を提供し、実体の取り消しも可能にする。加えて、複数の実体のルートCAシステムは、例えば、メンバー実体もルートCAとして機能し、そのためPKIの部分木を下に構築できる場合に、階層構造を可能にする。
【0016】
一部の実装では、複数の実体のルートCAシステムは、少なくともルートCAレベルが除去されるか、または置き換えられるため、従来のPKI手法から、階層の少なくとも1つの層を減らす。場合によっては、複数の実体のルート証明書システムは、メンバーCAより下位の層に展開された場合、層の数をさらに減らし得る。さらに、複数の実体のルートCAシステムは、複数の暗号方式を可能にし得る。その結果、コンソーシアムのメンバーは、1つまたは複数の署名方式を使用することができる。
【0017】
したがって、複数の実体のルート証明書セットは、動的であることができる。以下では、複数の実体のルートCA技術プラットフォームにおいて展開され得る、安全な方法で複数の実体のルート証明書データブロックチェーンを構築して維持するための例示的なメカニズムが、さらに説明される。
【0018】
例示的な実装の概要として、複数の実体のルート証明書データブロックチェーンのブロックのチェーンが、ジェネシスブロックから開始されてよい。ジェネシスブロックは、ルートCAコンソーシアムの創設メンバーによって確立された初期ルート証明書データブロックチェーンとして提供され得る。ジェネシスブロックは、次のように構築されてよい。例えば、創設メンバーは、最初に、ルート証明書データブロックチェーンを確立することに同意してよい。各創設メンバーは、公開鍵と秘密鍵の対を保有し、実体の公開鍵と秘密鍵の対は、暗号システムによって規定された通りに関連付けられた秘密鍵および対応する公開鍵を含む。秘密鍵は実体の秘密として保たれ、一方、公開鍵は公開され得る。創設メンバーのルートCAコンソーシアムが確立された後に、各創設メンバーは、識別情報および公開鍵の組み合わせにデジタル署名する。識別情報、公開鍵、およびデジタル署名を含んでいる創設メンバー実体ごとのデータのセットが、ジェネシスデータブロックを構築するために、検証実体によって収集される。次に、このジェネシスデータブロックは、完全性を保証するため、および承認の証拠を記録するために、創設メンバー実体によってデジタル署名されてよい。ジェネシスデータブロックに対するこれらの複数の署名および識別情報と公開鍵の対に対する個別の署名の組み合わせは、単一障害点を防ぐことにさらに貢献することができる。創設メンバー実体の複数の署名が追加されたこのジェネシスデータブロックは、ジェネシスブロックになる。以下では、例示的なジェネシスブロックの構築が、図3A~3Dに関してさらに詳細に説明される。
【0019】
ルートCAコンソーシアムに対する(例えば、ルートCAコンソーシアムのメンバーシップにおいて、または他の方法で)変更が発生するたびに、新しいブロックが連結され得る。そのような変更は、メンバー実体の追加または除去、既存のメンバー実体の公開鍵の更新、取り消し、置き換え、追加、またはキャンセル、あるいは別の種類の変更を含んでよい。変更の情報をデータエントリとして含んでいる新しいブロックは、暗号プロセスによって、ブロックの既存のチェーンに追加されることが可能であり、データの新しいブロックは、チェーンの内の最後かつ最新である前のブロックのハッシュを使用して連結され、この組み合わせが、コンソーシアムのメンバー実体によってデジタル署名される。一部の実装では、チェーンからのブロックの除去が許可されず、ブロックは、発生順に連結される。したがって、最新のものから順番にブロックを追跡することによって、ルートCAコンソーシアムのメンバーシップの現在の状態が、確定的に示されることが可能であり、識別情報に対する公開鍵の妥当性を確認できるようにする。
【0020】
コンソーシアムのメンバー実体は単一障害点ではないため、そのような実体の秘密鍵のセキュリティ侵害からの損害が、封じ込められ得る。例えば、そのようなセキュリティ侵害のリスクが、セキュリティを侵害されたメンバー実体の下のサブネットワークに制限されることが可能であり、他のメンバーの下のサブネットワークは、影響を受けないままである。また、単一の実体のセキュリティ侵害が、ブロックのチェーン内のメンバーシップデータを変更するのに十分でないように、各ブロック上で複数の実体の署名が提供され得る。このメカニズムは、または安全な体系的方法で、セキュリティを侵害された秘密鍵に対応する公開鍵の素早い取り消し、または問題のあるメンバーの除去も実現し得る。
【0021】
したがって、本明細書で説明されるシステムおよび技術の態様は、複数の実体のルートCAシステムの動作を改良するために使用され得る。一部の実装では、本明細書で説明される複数の実体のルートCAシステムは、単一障害点(例えば、セキュリティを侵害されたメンバー実体)を除去することによって、セキュリティリスクを軽減し得る。一部の実装では、説明される複数の実体のルートCAシステムは、ジェネシスブロックまたはアクションブロックの並列化されたより高速な構築を実行し得る。一部の実装では、本明細書で説明される複数の実体のルートCAシステムは、帯域幅の消費を減らし得る。
【0022】
図1Aは、例示的な通信システム100の態様を示すブロック図である。図1Aに示された例示的な通信システム100は、4つのノード(2つの実体ノード102、104、および2つのCAノード112、114)を含んでいる。これらのノードは、ネットワーク106を経由して互いに通信する。通信システム100は、追加の特徴または異なる特徴を含んでよく、通信システム内のコンポーネントは、図1Aに示されているように、または別の方法で、構成されてよい。
【0023】
一部の実装では、通信システム100内のノードは、サーバ/クライアントの関係を有する。例えば、サービスネットワーク内で、実体ノード102はサーバであることができ、実体ノード104はクライアントであることができ、この逆も同様である。一部の実装では、通信システム100内のノードは、ピアツーピアの関係を有してよい。例えば、実体ノード102、104は、サービスネットワーク、ピアツーピアネットワーク、または別の種類のネットワーク内のピアであることができる。ノードは、通信システム100内の別の種類の関係を有してよい。
【0024】
図1Aに示された例では、例示的な実体ノード102、104およびCAノード112、114は、他のノードと通信するために使用される計算リソース(例えば、ハードウェア、ソフトウェア、およびファームウェア)をそれぞれ含む。例えば、図1Aに示された通信システム100内のノードの各々は、図6に示された例示的なコンピュータシステム600またはそのコンポーネントとして実装されてよい。一部の実装では、通信システム100内のノードは、例えば、ラップトップ、デスクトップ、ワークステーション、スマートフォン、タブレット、パーソナルデジタルアシスタント、サーバ、サーバクラスタ、メインフレーム、および他の種類コンピュータシステムなどの、さまざまなシステム内で実装され得る。場合によっては、単一のデバイスは、実体ノードおよび認証機関ノードの両方として動作してよい。
【0025】
図1Aに示された例では、(実体ノード102、104のうちのどちらかによって表された)末端実体または(CAノード112、114のうちのどちらかによって表された)CA実体は、コンピューティングデバイス、コンピュータシステム、IPアドレスまたは他のネットワークアドレス、あるいは別の種類のコンピュータ可読の識別子またはコンピュータリソースの事例に対応してよい。それに応じて、各ノードの1つまたは複数のプロセッサまたは他の要素によって、各実体の計算および他の動作が実行されてよい。同様に、実体によって送信または受信された情報は、各ノードの要素(例えば、1つまたは複数のプロセッサ、メモリ、またはインターフェイス)によって送信または受信されてよい。
【0026】
例示的なネットワーク106は、データ通信ネットワークまたは別の種類の通信リンクのすべてまたは一部を含むことができる。例えば、ネットワーク106は、1つまたは複数の有線接続またはワイヤレス接続、1つまたは複数の有線ネットワークまたはワイヤレスネットワーク、あるいは他の通信チャネルを含むことができる。一部の例では、ネットワーク106は、ローカルエリアネットワーク(LAN:Local Area Network)、広域ネットワーク(WAN:Wide Area Network)、プライベートネットワーク、仮想プライベートネットワーク(VPN:Virtual Private Network)、パブリックネットワーク(インターネットなど)、ピアツーピアネットワーク、セルラーネットワーク、Wi-Fiネットワーク、パーソナルエリアネットワーク(PAN:Personal Area Network)(例えば、Bluetooth low energy(BTLE)ネットワーク、ZigBeeネットワークなど)またはマシン間(M2M:machine-to-machine)通信を含む他の短距離ネットワーク、あるいは別の種類のデータ通信ネットワークを含む。
【0027】
一部の例では、図1Aに示されたノードは、ジェネシスブロック、および場合によってはジェネシスブロックに連結された1つまたは複数のブロックのチェーンを含んでいる、複数の実体のルート証明書データブロックチェーンに基づいて、安全な方法で互いに通信する。例えば、ノードは、例示的なルート証明書データブロックチェーン120に基づいて信用が確立されている、暗号システムまたは別の種類のシステムを利用してよい。図1Aに示された例示的なルート証明書データブロックチェーン120は、ジェネシスブロック122および2つのアクションブロック124A、124Bを含んでいる。第1のアクションブロック124Aは、ジェネシスブロック122に連結され、第2のアクションブロック124Bは、第1のアクションブロック124Aに連結される。
【0028】
通常、複数の実体のルート証明書データブロックチェーンは、ジェネシスブロック122のみを含んでよく、または任意の数のアクションブロック124を含んでよい。ジェネシスブロック122は、ルートCAコンソーシアムによって、またはルートCAコンソーシアムのために生成されるチェーン内の最初のブロックであり、アクションブロック124A、124Bは、ルート証明書データブロックチェーン120またはルートCAコンソーシアムに関連する変更を表す。例示的なジェネシスブロックが図3Dに示されており、例示的なアクションブロックが図4Dおよび5Dに示されている。ルート証明書データブロックチェーン120は、場合によっては、追加の種類または異なる種類のブロックを含んでよい。
【0029】
一部の実装では、CAノード112、114は、複数の実体のルート証明書データブロックチェーン120に基づいてデジタル証明書を発行してよい。一例として、第1のCAノード112は、ルート証明書データブロックチェーン120(例えば、ジェネシスブロック122、またはアクションブロック124Aのうちの1つ、あるいはその両方)に含まれている公開鍵を持っているルートCAコンソーシアムメンバーを表してよく、第1のCAノード112は、ルート証明書データブロックチェーン120内の公開鍵を使用して妥当性を確認され得るデジタル証明書を発行してよい。それに応じて、他の実体は、ルート証明書データブロックチェーン120を使用して、第1のCAノード112によって発行されデジタル証明書における信用を確立してよい。一部の実装では、第2のCAノード114は、ルート証明書データブロックチェーン120(例えば、ジェネシスブロック122、またはアクションブロック124Aのうちの1つ、あるいはその両方)にやはり含まれている公開鍵を持っている別のルートCAコンソーシアムメンバーを表す。代替的または追加的に、第2のCAノード114は、第1のCAノード112によって発行されたデジタル証明書に基づいて他の実体によって信頼された下位のCAであることができる。
【0030】
一部の実装では、CAノード112、114によって発行されたデジタル証明書は、従来のルート証明書の代わりに、複数の実体のルート証明書データブロックチェーン120に対してデジタル証明書の妥当性が確認され得るということを除いて、従来のPKIシステムにおけるデジタル証明書の使用に類似する方法で、末端実体によって使用されてよい。一例として、末端実体は、CAノード112によって発行されたデジタル証明書を所有してよく、デジタル証明書は、末端実体の公開鍵およびCAのデジタル署名を含み、CAのデジタル署名は、デジタル証明書内のCAのデジタル署名を検証することによって、他の末端実体がこの末端実体の公開鍵を信頼することができるように、末端実体の公開鍵を末端実体の識別情報に暗号によって結び付ける。ここで、CAのデジタル署名は、ルート証明書データブロックチェーン120内の公開鍵を使用して検証されるため、信頼される。
【0031】
一部の例では、実体ノード102、104およびCAノード112、114は、ルート証明書データブロックチェーン120に基づいて信用を確立する暗号システムを使用して、ネットワーク106を経由して安全に通信することができる。例えば、暗号システムは、複数の実体のルート証明書データブロックチェーン120に基づいて信頼されるデジタル証明書を使用する暗号プロトコルを含んでよい。
【0032】
場合によっては、実体ノード102、104は、各ノードが他のノードから受信されたメッセージの信頼性の妥当性を確認することを可能にするデジタル署名方式を使用する。デジタル署名方式は、例えば、楕円曲線暗号(ECC:elliptic curve cryptography)に基づく署名方式、RSAに基づく署名方式、格子に基づく署名方式、ハッシュに基づく署名方式、多変量署名方式、または別の種類の暗号を使用する方式であることができる。署名者の公開鍵を使用してデジタル署名が検証される場合、検証者は、ルート証明書データブロックチェーン120に基づいて署名者の公開鍵における信用を確立してよい。
【0033】
場合によっては、実体ノード102、104は、各ノードが機密のメッセージを他のノードに送信することを可能にする暗号化方式を使用する。暗号化方式は、例えば、楕円曲線暗号(ECC)に基づく暗号化方式、RSAに基づく暗号化方式、格子に基づく暗号化方式、コードに基づく暗号化方式、または別の種類の暗号を使用する方式であることができる。受信者の公開鍵を使用して受信者のメッセージが暗号化される場合、送信者は、ルート証明書データブロックチェーン120に基づいて受信者の公開鍵における信用を確立してよい。
【0034】
図1Bは、図1Aのルート証明書データブロックチェーン120として使用され得る例示的なブロックチェーンの図である。図1Bに表された例示的なブロックチェーンは、例えば、コンソーシアムブロックチェーンプロトコルに従うブロック連鎖技術を使用して、次々と連結されたブロックを含んでいる。パブリックブロックチェーンプロトコル(例えば、ビットコインおよび他の形態の暗号通貨によって使用されるブロックチェーン技術)とは異なり、コンソーシアムブロックチェーンプロトコルは、新しいブロックを追加するためにマイニングに依存しない。代わりに、許可された実体によって、ブロックがチェーンに追加され、ブロックを連結するための暗号技術が、マイニングを利用するパブリックブロックチェーンプロトコルとはかなり異なることがある。
【0035】
図1Bに示された例では、ブロックのチェーンが、チェーンの最初のブロック(「Block_#0」)であるジェネシスブロック122から開始される。例示的なジェネシスブロック122は、データブロック(「データブロック番号0」)、およびデータブロックに対するデジタル署名を含んでいる。チェーンの各新しいブロックを形成するプロセスでは、ハッシュ関数を前のブロックに適用することによって、チェーン内の前のブロックのハッシュが計算され、このハッシュが新しいデータブロックに追加される。図1Bに示されているように、アクションブロック124A(「Block_#1」)がジェネシスブロック122から連結され、アクションブロック124Aは、新しいデータブロック(「データブロック番号1」)および前のブロックのハッシュ(Hash(Block_#0))を含んでいる。ジェネシスブロック122のハッシュは、Hash(Block_#0)を計算することによって生成される。ここで、Hash(・)は、暗号ハッシュ関数を入力値(例えば、「Block_#0」)に適用することによって生成された出力ハッシュ値を表す。一部の実装では、SHA-2ファミリー(例えば、SHA-256、SHA-512)またはSHA-3ファミリー内の1つまたは複数の従来のハッシュ関数が使用され得る。追加のハッシュ関数または異なるハッシュ関数が使用されてよい。
【0036】
チェーンの各新しいブロックを形成するプロセスでは、前のブロックのハッシュおよび新しいデータブロックの1つまたは複数のデジタル署名が生成され、これらのデジタル署名が、新しいデータブロックおよび前のブロックのハッシュに追加される。図1Bに示されているように、各デジタル署名は、新しいデータブロック(「データブロック番号1」)およびハッシュ(Hash(Block_#0))の連結に基づいて生成され、このデジタル署名が追加されて、アクションブロック124Aを形成する。通常、デジタル署名は、署名する実体の秘密鍵および署名されるメッセージを含んでいる入力(例えば、図1Bに示されているデータブロックおよびハッシュ)に対して動作するデジタル署名アルゴリズムによって生成される。デジタル署名は、任意の適切なデジタル署名アルゴリズム(例えば、RSA、DSA、ECDSA、格子に基づくデジタル署名アルゴリズム、ハッシュに基づくデジタル署名アルゴリズム、多変量デジタル署名アルゴリズムなど)に従って生成されてよい。
【0037】
チェーンのその後の各ブロックは、同様のプロセスを使用して生成されてよい。図1Bに示されているように、アクションブロック124B(「Block_#n」)が前のブロック(「Block_#(n-1)」)から連結され、アクションブロック124Bは、新しいデータブロック(「データブロック番号n」)および前のブロックのハッシュを含んでいる。やはり図1Bに示されているように、1つまたは複数のデジタル署名が、新しいデータブロック(「データブロック番号n」)およびハッシュ(「Hash(Block_#(n-1))」)の連結に基づいて生成され、このデジタル署名が追加されて、アクションブロック124Bを形成する。
【0038】
図1Bに示された例では、前のブロックのハッシュは、2つのブロック(例えば、ジェネシスブロック122およびアクションブロック124A)間のリンクを明確に指定し、デジタル署名が、新しいブロックおよび前のブロックからのリンクの完全性を保証する。図2A~2B、3A~3D、4A~4D、および5A~5Dの例、ならびに下の関連する説明によって示されているように、ブロックのチェーンを構築するための図1Bに表されたデータ構造および方法の種類は、複数の実体のルート証明書データブロックチェーンを構築するための基礎として使用されてよい。
【0039】
一部の実装では、(例えば、図3A~3D、4A~4D、および5A~5Dの例に従って)複数の実体のルート証明書データブロックチェーンを構築することによって、通信システム内のノードによって表された実体のネットワーク内の信用を構築する。例えば、ノードの各々は、CA実体または末端実体を表してよい。ノードを接続する通信チャネルは、セキュリティが適用されず、オープンかつパブリックであると仮定されてよい。ノードによって表された実体は、CA実体および末端実体に関して何らかの階層が存在し得るコミュニティを含んでよい。ルートCAコンソーシアムは、(例えば、コミュニティ内の、または別の方法での)メンバー実体のグループによって形成され、複数の実体のルートCAシステムを確立してよい。1つの例では、ルートCAコンソーシアムは、政府機関によって主導されてよい。別の例では、CAは、コンソーシアムを形成する同じ産業(例えば、自動車産業、銀行業界など)からのさまざまな製造業者またはサービスプロバイダ(例えば、競合するブランド)であってよい。場合によっては、コンソーシアムのメンバーは、例えば、さまざまな認証システムを有することがある異なる国での携帯電話の使用を可能にするために、さまざまな国の実体を含む。複数の実体のルートCAシステムを含むことによって、責任を負う単一のルートCAが存在しないため、これらおよび他の種類の認証の状況において解決策を提供することができる。さらに、新しい企業(または他の種類の実体)が確立されることがあり、既存の企業がビジネスをやめることがあり、これらが、コンソーシアムのメンバーシップに影響を与えることがある。このような状況も、静的ではなく、メンバーシップにおける変化と共に発達し得る複数の実体のルートCAシステムによって、対処される。
【0040】
一部の実装では、検証実体は、秘密鍵または対称鍵などの秘密情報を必要とする、どのような動作も実行しない。したがって、機密情報または秘密情報を漏洩するリスクがない。加えて、検証実体が実行する動作は、ルートCAコンソーシアムの、データブロックチェーンの動作に参加できる任意のメンバー、またはデータブロックチェーンを読み取ることのみが可能な加入者が同じ動作を実行できるという意味で、透明であることができる。この透明性は、改ざんの証拠を提供し、検証実体のセキュリティ侵害を非常に難しくする。すべてのメンバーによって、ジェネシスブロックを含んでいるデータブロックチェーンのコピーが維持されるため、データブロックチェーン内の署名を検証し、ブロックチェーンのコピーを他のメンバーと比較することによって、正常に動作していないか、または成り済ましている検証実体が、容易に捕らえられ得る。
【0041】
複数の実体のルートCAシステムのジェネシスブロックを構築する場合、図3Cに示されているように、データエントリ配列(すなわち、ジェネシスデータブロック)を形成するために、各創設メンバーからジェネシスブロックデータエントリが収集され得る。次に、この配列が、1つまたは複数のデジタル署名と連結される。したがって、ジェネシスブロックは、ジェネシスブロックデータエントリを含んでいるデータエントリ配列、およびコンソーシアムメンバーの複数のデジタル署名という構成要素で作られ得る。図3Dは、複数の実体のルート証明書データブロックチェーンの例示的なジェネシスブロック350の図である。場合によっては、別の種類のジェネシスブロックが使用されてよい。
【0042】
複数の実体のルートCAシステムにおいて連結されたブロック(例えば、アクションブロック)を構築するときに、1つまたは複数のアクションブロックデータエントリが収集され得る。次に、前の/既存のブロックのハッシュが、1つまたは複数のアクションブロックデータエントリと連結される。その後、連結されたデータが、1つまたは複数のデジタル署名とさらに連結される。したがって、連結されたブロックは、データエントリまたはデータエントリの配列、前のブロックのハッシュ、およびコンソーシアムメンバーの1つまたは複数のデジタル署名という構成要素で作られ得る。図4Dおよび5Dは、複数の実体のルート証明書データブロックチェーンのブロックの例示的なチェーンの図を示している。
【0043】
図2Aは、複数の実体のルート証明書データブロックチェーンのジェネシスブロックに関する例示的な署名プロセス200の図である。例示的な署名プロセス200は、図2Aに示されている検証実体204、および複数の創設メンバー実体(例えば、創設メンバー202-1、202-2、202-3、202-4、および202-n)を含んでいるルートCAコンソーシアムによって実行される。図2Aに示された例では、複数の実体のルート証明書データブロックチェーンを作成する時点で、創設メンバー実体がルートCAコンソーシアムを形成する。一部の例では、検証実体204は、創設メンバーとして、または独立したノードとして実装されてよい。場合によっては、伝達される内容に秘密情報が必ずしも存在しないため、創設メンバー202の各々と検証実体204の間で通信するために、オープンなパブリックチャネル206が使用されてよい。
【0044】
一部の例では、検証実体204は、図3A~3Dに示されているように、創設メンバー202からデータエントリを受信し、創設メンバー202の署名を検証し、ジェネシスデータブロックを生成して創設メンバーに送信し、創設メンバーからジェネシスデータブロックに対する署名を受信し、暗号システム内で1つまたは複数の末端実体によってルート証明書データブロックチェーンとして使用するために、ジェネシスブロックを生成する。検証実体204は、追加の動作または異なる動作を実行してよい。
【0045】
図2Bは、複数の実体のルート証明書データブロックチェーンのアクションブロックに関する例示的な署名プロセス210の図である。例示的な署名プロセス200は、検証実体204、および複数のメンバーを含んでいるルートCAコンソーシアムによって実行される。図2Bに示された例では、アクションブロックを追加する時点でのルートCAコンソーシアムは、メンバー208-1、208-2、208-3、208-4、および208-nを含んでいる。図2Bに示された例では、メンバー(208-1、...208-n)のうちの1つまたは複数は、図2Aからの創設メンバー(202-1、...202-n)でもある。
【0046】
一部の例では、検証実体204は、図4A~4Dに示されているように、要求している実体からデータエントリを受信し、要求している実体の署名の妥当性を確認し、アクションブロックを生成する。要求している実体は、現在の有効なメンバー、または複数の実体のルートCAコンソーシアム200に参加することを望んでいる新しい実体のうちの1つであってよい。例えば、検証実体204が、対応する秘密鍵の所有を証明するために、要求者の署名を必要とするため、(「新規」、「更新」、「置き換え」、または「追加」のアクションタイプに対応してよい)新しい公開鍵を追加するときに、要求している実体が必要とされることがある。一部の例では、図5A~5Dに示されているように、要求している実体が存在せず、検証実体204がアクションブロックを生成する。
【0047】
図3Aは、例示的なジェネシスブロック作成プロセス300の態様を示すフロー図である。一部の実装では、ジェネシスブロック作成プロセス300は、創設メンバー302-1、...302-n(例えば、前述のコンソーシアム内の実体)と検証実体304の間のデータの伝達を含む。図3Aに示された例では、創設メンバー実体がルートCAコンソーシアムを形成する。場合によっては、伝達される内容に秘密情報が必ずしも存在しないため、この情報を伝達するために、オープンなパブリックチャネルが使用されてよい。一部の例では、検証実体304は、創設メンバーとして、または独立したノードとして実装されてよい。ジェネシスブロック作成プロセス300は、図3Aに示された順序で、または別の順序で、あるいは場合によっては、直列または並列に、実行されてよい。
【0048】
一部の状況では、コンソーシアムの創設メンバー302のうちの1つが、ジェネシスブロックを作成するプロセスを実行するための検証実体304として識別され得る。例えば、創設メンバー302は、集まり、検証実体304としての役割を果たすジェネシスブロック作成タスクをメンバーのうちの1つに委任することに同意してよい。一部の状況では、(コンソーシアム創設メンバー302から独立している)独立した実体が、ジェネシスブロックを作成するプロセスを実行するための検証実体304として識別され得る。例えば、創設メンバー302は、集まり、検証実体304としての役割を果たすジェネシスブロック作成タスクを、独立した外部の実体に委任することに同意してよい。
【0049】
図3Aに示された例では、検証実体304が、コンソーシアムメンバー(創設メンバー302)からデータエントリを受信し、署名を検証し、ジェネシスブロックを組み立てる。さらに、検証実体304は、結果として得られたジェネシスブロックを、創設メンバー302のすべてに公開する。
【0050】
310で、検証実体304が、創設メンバー304が、創設メンバー302-1、...302-nからデータエントリを受信する。図3Bは、メンバー実体から受信された例示的なデータエントリ330の図である。図3Bに示された例では、対応する創設メンバー302から受信されたデータエントリ330が、ジェネシスブロックデータエントリ332および対応する創設メンバーの署名(Signature1_FM)を含んでいる。例示的なジェネシスブロックデータエントリ332は、対応する創設メンバーの識別情報(ID_FM)および公開鍵(Public_key_FM)を含んでいる。
【0051】
一部の例では、IDデータフィールド(ID_FM)は、創設メンバー302に関する識別情報を含む。公開鍵データフィールド(Public_key_FM)は、例えば、公開鍵が属しているドメインパラメータ含む暗号システム、公開鍵、および場合によっては、有効期限の時間または時間の他の表現(例えば、持続時間)を含んでよい、有効期限などの構成要素を含んでいる、データ構造を有してよい。デジタル署名データフィールド(Signature1_FM)は、例えば、署名者の識別情報、署名が生成されたドメインパラメータ含む暗号システム、デジタル署名、およびタイムスタンプなどの、構成要素を含んでよい。
【0052】
312で、検証実体304が、創設メンバー302から受信されたデータエントリ内の署名を検証する。検証実体304は、創設メンバー302によって署名されるジェネシスデータブロックを構築する前に、ジェネシスブロックデータエントリ332の各々に含まれる署名の妥当性を確認する。一部の例では、検証実体304は、署名検証アルゴリズムに基づいて署名を検証する。一部の例では、署名を生成するために使用されるデジタル署名アルゴリズムに対応する署名検証アルゴリズムは、実体の公開鍵を使用する。署名を検証できない場合(例えば、検証が失敗した場合)、形成時に、ジェネシスデータブロックエントリがジェネシスデータブロックから除外されてよい。
【0053】
314で、検証実体304がジェネシスデータブロックを形成する。創設メンバー302のすべての署名の検証後に、検証実体304は、ジェネシスブロックデータエントリの配列を含み得るジェネシスデータブロックを形成する。図3Cは、ジェネシスブロックデータエントリに基づいて検証実体によって作成された例示的なジェネシスデータブロック340の図である。図3Cに示された例では、創設メンバーごとのジェネシスブロックデータエントリ342A、342B、...342Cが連結されて、ジェネシスブロックデータエントリ342A、342B、...342Cの配列を含んでいるジェネシスデータブロック340を形成する。
【0054】
図3Cに示された例では、各ジェネシスブロックデータエントリ342A、342B、342Cは、ジェネシスブロックデータエントリによって表された創設メンバーの公開鍵を含んでいる。例えば、ジェネシスブロックデータエントリ342Aは、FM_0を表し、FM_0の公開鍵(「Public_Key_FM_0」)を含み、ジェネシスブロックデータエントリ242Bは、FM_1を表し、FM_1の公開鍵(「Public_Key_FM_1」)を含む、などとなる。公開鍵は、例えば、暗号システムにおいて使用するために(例えば、暗号システムによって指定された鍵生成方法に従って)生成された公開鍵と秘密鍵の対の公開鍵であることができる。
【0055】
316で、検証実体304が、ジェネシスデータブロック340を創設メンバー302に配信する。動作の一部の態様では、ジェネシスデータブロック340が、創設メンバー302のサブセット(例えば、1つ、一部、またはすべて)に送信されてよい。一部の実装では、検証実体304からジェネシスデータブロック340を受信した後に、創設メンバー302の各々が、ジェネシスデータブロック340にデジタル署名する。一部の実装では、創設メンバーのサブセットは、ジェネシスデータブロック340にデジタル署名する。一部の例では、デジタル署名は、対応する創設メンバーの秘密鍵を使用して生成され得る。一部の実装では、デジタル署名は、署名する実体の秘密鍵および署名されるメッセージを含んでいる入力(例えば、図3Cに示されているようなジェネシスデータブロック340)に対して動作するデジタル署名アルゴリズムによって生成される。デジタル署名は、任意の適切なデジタル署名アルゴリズム(例えば、RSA、DSA、ECDSA、格子に基づくデジタル署名アルゴリズム、ハッシュに基づくデジタル署名アルゴリズム、多変量デジタル署名アルゴリズムなど)に従って生成されてよい。
【0056】
図3Aに示された例示的なプロセス300では、検証実体304が、(316で)ジェネシスデータブロックが配信される前に、創設メンバーがセキュリティを侵害されたということを学習した場合、検証実体304は、ジェネシスデータブロック340が署名のために他の創設メンバー302に送信される前に、セキュリティを侵害された創設メンバーのジェネシスブロックデータエントリ332をジェネシスデータブロック340から除去してよい。
【0057】
318で、検証実体304が、創設メンバー302から署名を受信する。この例では、318で受信された署名は、創設メンバー302からの署名の第2のセットである。一部の例では、検証実体304は、任意に、創設メンバー302から受信された第2の署名を検証してよい。一部の例では、対応する創設メンバーの第2の署名を検証するために、対応する創設メンバーの公開鍵が使用される。一部の例では、検証実体304は、署名検証アルゴリズムに基づいて署名を検証する。署名検証アルゴリズムは、署名を生成するために使用されるデジタル署名アルゴリズムに対応してよく、実体の公開鍵を使用する。署名を検証できない場合(例えば、検証が失敗した場合)、プロセスが中断されてよい。一部の例では、第2の署名の署名検証プロセスが省略されてよい。
【0058】
320で、検証実体304がジェネシスブロックを形成する。図3Dは、図3Cに示されたジェネシスデータブロック340に基づいて検証実体によって作成された例示的なジェネシスブロック350の図である。検証実体304によって、創設メンバーの署名(Signature2_FM_1、Signature2_FM_2など)の第2のセットが、結合されてから、ジェネシスデータブロック340と連結され、ジェネシスブロック350を形成する。
【0059】
322で、検証実体304が、ジェネシスブロックを創設メンバー302に公開する。場合によっては、ジェネシスブロックが作成された後に、ジェネシスブロックを含んでいるデータブロックチェーンが、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供される。一部の実装では、ジェネシスブロック350は、創設メンバー302、末端実体、またはその両方によって格納されてよい。
【0060】
ジェネシスブロックが作成された後も、322の後に、チェーン内の追加のデータブロックが構築されてよい。複数の実体のルートCAコンソーシアムのメンバーの有効な識別情報および公開鍵は、ジェネシスブロックから生じるブロックのチェーンによって表されることが可能であり、複数の実体のルートCAコンソーシアムに対する任意の変更(例えば、コンソーシアム内のメンバーの追加または削除)が、連結されたブロックによって記録される。図4Aおよび5Aに示された例では、単一のブロックが、チェーンの前のブロックに一度に追加され、単一のスレッドチェーンを作成する。例えば、ブロックのチェーンは、追加専用のチェーンとして展開されることが可能であり、チェーンからのブロックの除去は許可されない。これは、ブロックが発生順に連結され、最後のブロックが最新であるということを意味する。したがって、ルートCAコンソーシアムに属していると主張するメンバーによる署名を検証するために、最後のブロックからチェーンをたどって、このメンバーの識別情報の最初の(例えば、最新の)出現を見つけ、メンバーCAの妥当性を決定すること、このメンバーが有効である場合、有効な公開鍵を見つけること、およびこの公開鍵を使用して署名の妥当性を確認することができる。
【0061】
図3Aに示された例示的なプロセス300を使用してジェネシスブロックを作成すると、この作成プロセスの速度が改善され得る。検証実体304と各創設メンバー302の間のハンドシェイク/通信は独立しており、検証実体304で、314でジェネシスデータブロック340が生成されるとき、および320でジェネシスブロック350が生成されるときの2回、同期が発生する。図3Aに示された例示的なプロセス300の他のステップは、並列に実行され得る。例えば、創設メンバー302のデータエントリは、検証実体304によって創設メンバー302から並列に受信されてよい。この例では、創設メンバーと検証実体の間のデータハンドシェイクごとの帯域幅の消費量は、図3Bに示されているように、ID、公開鍵、および署名を含んでいるデータエントリ330のサイズに制限され得る。したがって、帯域幅の全消費量は、創設メンバーの数と共に直線的に増加し、帯域幅の増加はスケーラブルであることができる。
【0062】
図4Aは、アクションブロックを作成するための例示的なプロセス400の態様を示すフロー図である。一部の実装では、アクションブロックを形成するためのプロセス400は、ルートCAコンソーシアムの有効なメンバー406-1、...、406-n、検証実体404、および要求している実体402の間のデータの伝達を含む。有効なメンバー406-1、...、406-nは、創設メンバーのうちの1つまたは複数、ルート証明書データブロックチェーンが作成された後に追加された1つまたは複数の他のメンバー、またはこれらの組み合わせを含んでよい。一部の例では(例えば、アクションタイプが「更新」、「置き換え」、または「追加」である場合)、要求している実体402は、ルートCAコンソーシアムのメンバー(例えば、創設メンバーまたはルート証明書データブロックチェーンが作成された後に追加された別のメンバー)である。一部の例では(例えば、アクションタイプが「新規」である場合)、要求している実体402は、ルートCAコンソーシアムのメンバーではなく、ルートCAコンソーシアムに参加することを望んでいる。場合によっては、伝達される内容に秘密情報が必ずしも存在しないため、この情報を伝達するために、オープンなパブリックチャネルが使用されてよい。一部の例では、検証実体404は、ルートCAコンソーシアムのメンバーとして、または独立したノードとして実装されてよい。プロセス400は、図4Aに示された順序で、または別の順序で、あるいは場合によっては、直列または並列に、実行されてよい。
【0063】
図4Aに示された例では、検証実体404が、要求している実体402からデータエントリを受信し、要求している実体402の署名を検証し、前のブロックのハッシュを取得し、アクションブロックを生成するために使用されるアクションデータブロックを組み立て、アクションブロックを完成させる。さらに、検証実体402は、結果として得られたアクションブロックを、コンソーシアムのメンバー406および要求している実体402と共有する。
【0064】
一部の実装では、要求している実体402は、例えば、公開鍵の追加または更新などの、特定のアクションを実行する必要があるコンソーシアムのメンバーのうちの1つであってよい。一部の他の実装では、要求している実体402は、ルートCAコンソーシアムに追加される新しいメンバーであってよい。
【0065】
一部の実装では、新しいブロック(例えば、アクションブロック)が追加されるたびに、(例えば、ハッシュ関数を直近に追加されたブロックに適用することによって)チェーンの前のブロックのハッシュが取得され、新しいデータエントリが、関連する情報を使用してルートCAコンソーシアムに関する情報を更新するために必要とされるアクションを識別するように、新しいデータエントリを含んでいる新しいデータブロックが生成され、新しいデータブロックエントリおよび前のブロックのハッシュの組み合わせ(例えば、連結)にデジタル署名することによって、新しいブロックが完成する。デジタル署名は、複数のメンバーによって生成されてよい。次に、検証実体404によって、新しいブロックがルートCAコンソーシアム406の一部またはすべてのメンバーに公開される。
【0066】
410で、検証実体404が、要求している実体402からデータエントリを収集する。一部の例では、要求している実体が既存のメンバーである場合、検証実体404に報告された要求している実体402からのデータエントリが、例えば、公開鍵の更新、置き換え、または追加などのアクションのためのデータを含んでよい。一部の例では、要求している実体402が既存のメンバーでない場合、検証実体404に報告された要求している実体402からのデータエントリが、例えば、新しいメンバーの追加などのアクションのためのデータを含んでよい。一部の例では、新しい公開鍵を持っている要求している実体402は、例えば、証明書署名要求規格(IETF RFC 2986 PKCS #10)で説明されている方法と同様の方法で、対応する秘密鍵の所有を証明するために、デジタル署名を提示する。
【0067】
図4Bに示された例では、要求している実体402(Data Entry_Req_Entity)から受信された例示的なデータエントリ430が、アクションブロックデータエントリ432および要求している実体402のデジタル署名434(Signature_Req_entity)を含んでいる。アクションブロックデータエントリ432は、アクションタイプ識別子、要求している実体402の識別情報(ID_Req_Entity)、および要求している実体402の公開鍵(Public_key_Req_Entity)を含んでいる。図4Bに示された例では、アクションデータブロック432が、新しいメンバーがルートCAコンソーシアムに追加されていることを示すアクションタイプ識別子(例えば、「新規」)、または別の種類のアクションブロック識別子を含んでよい。
【0068】
一部の例では、IDデータフィールド(ID_Req_Entity)は、要求している実体402に関する識別情報を含む。公開鍵データフィールド(Public_key_Req_Entity)は、例えば、公開鍵が属しているドメインパラメータ含む暗号システム、公開鍵、および場合によっては、有効期限の時間または時間の他の表現(例えば、持続時間)を含んでよい、有効期限などの構成要素を含んでいる、データ構造を有してよい。デジタル署名データフィールド(Signature_Req_entity)は、例えば、署名者の識別情報、署名が生成されたドメインパラメータ含む暗号システム、デジタル署名、およびタイムスタンプなどの、構成要素を含んでよい。
【0069】
412で、検証実体404が、要求している実体402の署名を検証する。一部の例では、署名を検証するために、要求している実体402の公開鍵が使用されてよい。一部の例では、検証実体404は、署名妥当性確認アルゴリズムに基づいて署名を検証する。一部の例では、署名を生成するために使用されるデジタル署名アルゴリズムに対応する署名検証アルゴリズムは、実体の公開鍵を使用する。
【0070】
414で、検証実体404がアクションデータブロックを形成する。図4Cは、図4Bのアクションブロックデータエントリ430に基づいて検証実体によって作成された例示的なアクションデータブロック440の図である。例示的なアクションデータブロック440は、アクションブロックデータエントリ432からのデータ(アクションタイプ識別子、要求している実体402の識別情報(ID_Req_Entity)、および要求している実体402の公開鍵(Public_key_Req_Entity))を含んでいる。例示的なアクションデータブロック440は、ブロックチェーンからの前のブロックのハッシュも含んでいる。前のブロックのハッシュは、Hash(前のブロック)を計算することによって生成される。ここで、Hash(・)は、暗号ハッシュ関数を入力値(例えば、「既存のブロック」)に適用することによって生成された出力ハッシュ値を表す。一部の実装では、SHA-2ファミリー(例えば、SHA-256、SHA-512)またはSHA-3ファミリー内の1つまたは複数の従来のハッシュ関数が使用され得る。別のハッシュ関数が使用されてよい。
【0071】
チェーンの新しいアクションデータブロックを形成するプロセスでは、既存のブロックのハッシュおよび新しいデータブロックのデジタル署名が生成され、このデジタル署名が、新しいアクションデータブロックエントリおよび前のブロックのハッシュに追加される。416で、検証実体404が、アクションデータブロックをルートCAコンソーシアムのメンバー406に配信する。動作の一部の態様では、アクションデータブロック440が、ルートCAコンソーシアムのメンバー406のサブセット(すなわち、1つ、一部、またはすべて)に送信される。一部の実装では、検証実体404からアクションデータブロック440を受信した後に、メンバー406の各々が、アクションデータブロックにデジタル署名する。一部の例では、デジタル署名は、対応するメンバーの秘密鍵を使用して生成され得る。一部の実装では、デジタル署名は、署名する実体の秘密鍵および署名されるメッセージを含んでいる入力(例えば、図4Cに示されているようなアクションデータブロック440)に対して動作するデジタル署名アルゴリズムによって生成される。デジタル署名は、任意の適切なデジタル署名アルゴリズム(例えば、RSA、DSA、ECDSA、格子に基づくデジタル署名アルゴリズム、ハッシュに基づくデジタル署名アルゴリズム、多変量署名アルゴリズムなど)に従って生成されてよい。
【0072】
418で、検証実体404が、ルートCAコンソーシアムのメンバー406からデジタル署名を受信する。一部の例では、検証実体404は、任意に、メンバー406から受信されたデジタル署名を検証してよい。一部の例では、検証実体404は、署名検証アルゴリズムに基づいて署名を検証する。一部の例では、署名を生成するために使用されるデジタル署名アルゴリズムに対応する署名検証アルゴリズムは、実体の公開鍵を使用する。一部の例では、デジタル署名のこの妥当性確認プロセスが省略されてよい。
【0073】
420で、検証実体404がアクションブロックを生成する。図4Dは、図4Cのアクションデータブロック440に基づいて検証実体によって作成された例示的なアクションブロック450の図である。図4Dに示されているように、新しいアクションブロック450を形成するために、検証実体が、アクションデータブロック440をルートCAコンソーシアムのメンバーのデジタル署名(Signature_M_1、Signature_M_2、...Signature_M_n)と結合する。
【0074】
422で、検証実体404が、アクションブロックを、ルートCAコンソーシアムのメンバー406、および現在ルートCAコンソーシアムに属している要求している実体402に公開する。場合によっては、アクションブロックが作成された後に、アクションブロックを含んでいるデータブロックチェーンが、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供される。一部の実装では、アクションブロックは、メンバー、末端実体、またはその両方によって格納されてよい。
【0075】
図4Aに示された例では、検証実体404は、(例えば、今回の)ブロックを連結するプロセスに先行するように構成される。連結されたブロックを作成するためのこの検証実体404は、図3Aに示されたようなジェネシスブロック作成プロセスにおいて使用される検証実体304と同じであるか、または異なってよい。また、場合によっては、異なるブロックに対して異なる検証実体が選択されてよい。これは、例えば、メンバーがルートCAコンソーシアムから除去される場合、または他の状況において、重要になることがある。一部の実装では、ブロックを構築するためのすべての通信が、オープンなパブリックチャネルを経由して実行されてよい。
【0076】
図4Aに示された例示的なプロセス400を使用してブロックを連結すると、アクションブロックを追加する速度が改善され得る。検証実体404とルートCAコンソーシアムのメンバー406の各々の間の通信は、独立しており、並列に実行され得る。例えば、416でのメンバー406へのアクションデータブロックの配信および418でのメンバー406のデジタル署名の受信は、並列に実行されてよい。
【0077】
図4A~4Dのデータエントリ内で識別され得る可能なアクションタイプ(および関連するアクションタイプ識別子)は、メンバーを追加すること(「新規」)、公開鍵を更新すること(「更新」)、取り消し後に公開鍵を置き換えること(「置き換え」)、公開鍵を追加すること(「追加」)、および場合によっては他のアクションタイプを含む。
【0078】
図5Aは、新しいブロックを既存のブロックのチェーンに追加することによってアクションブロックを作成するための例示的なプロセス500の態様を示すフロー図である。例示的なプロセス500は、ルートCAコンソーシアムの有効なメンバー502-1、...502-n(例えば、前述のルートCAコンソーシアム内の実体)および検証実体504によって実行される。有効なメンバー502-1、...502-nは、創設メンバーのうちの1つまたは複数、ルート証明書データブロックチェーンが作成された後に追加された1つまたは複数の他のメンバー、またはこれらの組み合わせを含んでよい。場合によっては、プロセス500の間に、実体間で伝達される情報は、必ずしも秘密情報を含まず、この情報を伝達するために、オープンなパブリックチャネルが使用されてよい。一部の例では、検証実体504は、メンバーとして、または独立したノードとして実装されてよい。プロセス500は、図5Aに示された順序で、または別の順序で、あるいは場合によっては、直列または並列に、実行されてよい。
【0079】
図5Aに示された例では、検証実体504が、アクションデータブロックをメンバー502に配信し、既存のブロックのハッシュを取得し、アクションデータブロックに対する署名をメンバー502から受信し、アクションブロックを生成する。さらに、結果として得られたアクションブロックは、検証実体504によってメンバー502に公開される。
【0080】
510で、検証実体504が、アクションデータブロックをルートCAコンソーシアムのメンバーに配信する。アクションデータブロックは、アクションブロックデータエントリに基づく。図5Bに示された例では、データエントリ520がアクションブロックデータエントリ522を含んでいる。アクションブロックデータエントリ522は、アクションタイプ識別子およびアクションタイプに関連付けられたデータを含んでいる。アクションタイプ識別子は、複数の実体のルート証明書データブロックチェーンに対する、ルートCAコンソーシアムによって要求されたアクションを指定する。図5Cは、図5Bのアクションブロックデータエントリ522に基づいて検証実体によって作成された例示的なアクションデータブロック530の図である。例示的なアクションデータブロック530は、アクションタイプ識別子に追加されたハッシュ、およびアクションブロックデータエントリ522からのアクションタイプに関連付けられたデータを含んでいる。
【0081】
図5A~5Dのデータエントリ内で識別され得る可能なアクションタイプ(および関連するアクションタイプ識別子)は、メンバーを除去すること(「除去」)、公開鍵を取り消すこと(「取り消し」)、古い公開鍵をキャンセルすること(「キャンセル」)、タイムスタンプ(「タイムスタンプ」)、既知のステータス(「ステータス)、フリーズ(「フリーズ」)、フリーズ解除(「フリーズ解除」)、および場合によっては他のアクションタイプを含む。
【0082】
場合によっては、他の種類のアクションが定義され、利用されてよい。ここで、上に示されたアクションタイプが定義されて利用され得る方法の例が説明される。これらおよび他のアクションタイプは、別の方法で実装されてよい。
【0083】
「新規」のアクションは、新しいメンバーを追加するために使用される。例えば、このアクションは、このメンバーがルートCAコンソーシアムに存在していなかったことを示す。したがって、新しい識別情報が、それに関連する公開鍵と共に、データエントリ内に出現する。
【0084】
「除去」のアクションは、メンバーをルートCAコンソーシアムから除去するために使用される。このアクションは、単に秘密鍵がセキュリティを侵害されたということではなく、メンバーが行動していないということを示すため、公開鍵を取り消すアクションより強力である。この場合、公開鍵の必要性は存在せず、不正を行っているメンバーの識別情報を含むことで十分である。
【0085】
「更新」のアクションは、公開鍵の期限が切れようとしているときに使用される。したがって、このアクションは、古い公開鍵の期限が切れるまで、同じセキュリティ強度を有する同じ暗号システムの2つの公開鍵が識別情報のために共存する猶予期間を可能にする。更新された公開鍵は、データエントリ内で指定され得る。
【0086】
「置き換え」のアクションは、公開鍵が取り消されたときに使用される。取り消された公開鍵の所有者は、取り消された公開鍵を代替の公開鍵に置き換えることができる。代替の公開鍵は、データエントリ内で指定され得る。
【0087】
「取り消し」のアクションは、公開鍵の即時の無効化を引き起こす。取り消された公開鍵は、データエントリ内で指定される。公開鍵が取り消された後に、この公開鍵の所有者は、「置き換え」アクションによって再び有効にされてよい。
【0088】
「追加」のアクションは、既存の識別情報のために、第2の公開鍵を追加することを可能にし、例えば、メンバーが2つの有効な公開鍵を同時に所有する状況を引き起こす。このアクションは、第2の公開鍵が異なる暗号システムに属するか、または同じ暗号システムに属するが、異なるセキュリティ強度を有するという移行の状況において役立つことができる。第2の公開鍵は、システムの移行先の新しい暗号システム、またはセキュリティ強度、あるいはその両方のためのものである。
【0089】
「追加」アクションによって開始された移行における古い公開鍵は、「キャンセル」アクションによって無効にされ得る。一部の実装では、「取り消し」は、この「キャンセル」アクションを示すために使用されてよい。
【0090】
「タイムスタンプ」アクションは、チェーンが最新であり、公開された日時に正しかったことを示すために使用されてよい。コンソーシアムは、「タイムスタンプ」ブロックを公開するための適切な間隔を自由に選択できる。一部の実装では、公開されたチェーン内の最近の「タイムスタンプ」ブロックの不在は、クライアントによって、チェーンの最新のブロックが保留されたか、または公開されなかったことの指示として解釈され得る。
【0091】
「ステータス」アクションは、現在有効なすべての識別情報の要約を記録するために使用されてよい。そのようなブロックは、前のブロックから計算できる情報を含むため、冗長であってよい。「ステータス」ブロックは、中間ジェネシスブロックと見なされ得る。消費者(特に、制約されたデバイス上の消費者)は、ステータスブロックの妥当性を、受信時に通常どおり確認することができる。未来のチェーンの妥当性確認は、チェーンの現在の末尾から、すでに妥当性が確認されたステータスブロックまで作業し、信用を検証するために必要とされる作業の削減を可能にする。完全な妥当性確認が望ましい場合、チェーン全体が依然として使用可能である。
【0092】
「フリーズ」アクションは任意選択的である。このアクションは、特定の時間の間、新しいブロックが更新されないということ、すなわち、アクションが実行されないということを示す。したがって、このアクションブロックは、フリーズされる期間の、期間または期限切れ時間を関連付けなければならない。この時間は、メンバーがブロックのチェーンを同期させることを可能にするために使用されてよい。また、任意に、時間が指定されず、ブロックのチェーンが無期限にフリーズされるということを示してよい。これは、例えば、チェーンを終了するために使用され得る。
【0093】
「フリーズ解除」アクションは任意選択的である。このアクションは、「フリーズ」アクションの偶然の使用または悪意のある使用が検出された場合にのみ使用される。このアクションは、そのような「フリーズ」アクションを取り消すことができる。
【0094】
一部の実装では、メンバーおよび公開鍵を管理するために上で導入されたアクションタイプは、新しい暗号システムに移行するための機能を提供し、暗号の敏しょう性を実現する。例えば、古い公開鍵アルゴリズムから新しい公開鍵アルゴリズムへの移行が必要とされる場合、これらのアクションタイプは、移行期間を作り出す、新しい識別情報のための第2の公開鍵の高速な追加、および移行が完了したときに、古い公開鍵を後で取り消すための定義された方法を可能にする。
【0095】
一部の実装では、各データエントリに対するデジタル署名に加えて、複数の実体のルート証明書データブロックチェーン内のブロック全体に対するデジタル署名が存在することが許可される。単一障害点を回避するために、複数の実体のルート証明書データブロックチェーン内の2つ以上のメンバーからのデジタル署名によって、各データエントリが保護されることが保証されてよく、そうしないと、1つのメンバーのセキュリティ侵害が、ルート証明書データを変更する可能性がある。
【0096】
場合によっては、複数の実体のルート証明書データブロックチェーンは階層構造を許可し、下位レベルの構造は自由である。例えば、複数の実体のルート証明書データブロックチェーンの下のレベルは、PKIサブシステムではなく、ブロックの別のチェーンであることができ、またはこれらの混合であってよい。このシステムは、PKIサブシステムおよびブロックのチェーンの層の混合を可能にする。場合によっては、複数の実体のルート証明書データブロックチェーンは、サブシステムを含まずに展開され得る。例えば、システムは完全に平坦であってよく、その場合、ルートCAコンソーシアム内のメンバーは、CAではなく末端実体である。
【0097】
図5Cに示されているように、例示的なアクションデータブロック530は、ブロックチェーンの既存のブロックのハッシュを含んでいる。この例では、アクションタイプ識別子および関連する情報フィールドが、ブロックチェーンの前のブロックのハッシュと結合されて(例えば、連結されて)、アクションデータブロック530を形成する。
【0098】
512で、検証実体504が、ルートCAコンソーシアムのメンバー502のデジタル署名を受信する。デジタル署名は、アクションブロックデータエントリ、アクションデータブロック全体、またはその両方に対して生成されてよい。デジタル署名は、対応するメンバーの秘密鍵を使用して生成され得る。一部の実装では、デジタル署名は、署名する実体の秘密鍵および署名されるメッセージを含んでいる入力(例えば、図5Cに示されているようなアクションデータブロック530)に対して動作するデジタル署名アルゴリズムによって生成される。デジタル署名は、任意の適切なデジタル署名アルゴリズム(例えば、RSA、DSA、ECDSA、格子に基づくデジタル署名アルゴリズム、ハッシュに基づくデジタル署名アルゴリズム、多変量署名アルゴリズムなど)に従って生成されてよい。
【0099】
514で、検証実体504がアクションブロックを生成する。メンバー(またはメンバーのサブセット)から受信されたデジタル署名は、結合され、アクションデータブロックに追加されて、アクションブロック(ブロックチェーンの新しいブロック)を形成することができる。図5Dは、図5Cのアクションデータブロック530に基づいて検証実体によって作成された例示的なアクションブロック540の図である。図5Dに示された例では、アクションブロック540は、アクションデータブロック530(アクションタイプ識別子、および関連する情報フィールド、ならびに前のブロックのハッシュを含んでいる)に追加された、メンバー502のデジタル署名(「Signature_M_1」、「Signature_M_2」...「Signature_M_n」)を含んでいる。場合によっては、ブロックに対する必要とされる署名の最小数は、特定のネットワークのメンバーにおける信用のレベルに依存する。
【0100】
516で、検証実体504が、アクションブロックをルートCAコンソーシアムのメンバー502に公開する。場合によっては、アクションブロックが作成された後に、アクションブロックを含んでいるデータブロックチェーンが、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供される。一部の実装では、アクションブロックは、メンバー、末端実体、またはその両方によって格納されてよい。
【0101】
本明細書において説明された動作の一部は、コンピュータ可読命令(例えば、コンピュータプログラム)を実行するコンピュータシステムまたはデータ処理装置によって実行される動作として実装され得る。
【0102】
図6は、データ処理装置および1つまたは複数のコンピュータ可読ストレージデバイスを含むコンピュータシステム600の例を示しているブロック図である。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、システムオンチップ、またはこれらのうちの複数のもの、あるいはこれらの組み合わせを含む、データを処理するためのあらゆる種類の装置、デバイス、ノード、および機械(例えば、プロセッサ610)を包含する。装置は、専用論理回路、例えば、FPGA(field programmable gate array:フィールドプログラマブルゲートアレイ)またはASIC(application specific integrated circuit:特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード(例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームの実行時環境、仮想マシン、またはこれらのうちの1つまたは複数の組み合わせを構成するコード)を含むこともできる。
【0103】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)(例えば、コンピュータプログラム624)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形態のプログラミング言語で記述されることが可能であり、コンピューティング環境における使用に適したスタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト、または他のユニットとしての形態を含む、任意の形態で展開されることが可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応してよいが、対応している必要はない。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語のドキュメントに格納された1つまたは複数のスクリプト)を保持しているファイルの一部に、プログラム専用の単一のファイルに、または複数の調整されたファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に、格納され得る。コンピュータプログラムは、1つのサイトに位置するか、または複数のサイトにわたって分散されて通信ネットワークによって相互接続された、1つのコンピュータ上または複数のコンピュータ上で実行されるように展開され得る。
【0104】
本明細書において説明されたプロセスおよび論理フローの一部は、入力データに対して動作して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサ(例えば、プロセッサ610)によって実行され得る。プロセスおよび論理フローは、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった専用論理回路によって実行されることも可能であり、装置は、専用論理回路として実装されることも可能である。
【0105】
コンピュータプログラムの実行に適したプロセッサの例としては、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータのプロセッサが挙げられる。通常、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリあるいはその両方(例えば、メモリ620)から命令およびデータを受信する。コンピュータの要素は、命令に従ってアクションを実行するプロセッサ、ならびに命令およびデータを格納する1つまたは複数のメモリデバイスを含むことができる。コンピュータは、データを格納するための1つまたは複数のマスストレージデバイス(例えば、磁気ディスク、光磁気ディスク、または光ディスク)を含むか、またはそのようなマスストレージデバイスとの間でデータを受信もしくは送信するように動作可能に結合されるか、あるはその両方であってもよい。しかし、コンピュータがそのようなデバイスを含む必要はない。さらに、コンピュータは、別のデバイス(例えば、電話、電子機器、携帯型オーディオまたはビデオプレーヤー、ゲーム機、全地球測位システム(GPS:Global Positioning System)受信器、あるいはポータブルストレージデバイス(例えば、ユニバーサルシリアルバス(USB:universal serial bus)フラッシュドライブ))に埋め込まれ得る。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、例えば、半導体メモリデバイス(例えば、EPROM、EEPROM、フラッシュメモリデバイスなど)、磁気ディスク(例えば、内部ハードディスク、取り外し可能なディスクなど)、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクなどの、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。場合によっては、プロセッサおよびメモリは、専用論理回路によって補完されるか、または専用論理回路に組み込まれ得る。
【0106】
例示的な電源ユニット640は、電力をコンピュータシステム600の他のコンポーネントに供給する。例えば、他のコンポーネントは、電圧バスまたは他の接続を介して電源ユニット640によって供給された電力に基づいて動作してよい。一部の実装では、電源ユニット640は、バッテリーまたはバッテリーシステム(例えば、充電式バッテリー)を含む。一部の実装では、電源ユニット640は、外部電力信号を(外部ソースから)受信し、外部電力信号を、コンピュータシステム600のコンポーネント用に調整された内部電力信号に変換するアダプタ(例えば、ACアダプタ)を含む。電源ユニット640は、他のコンポーネントを含むか、または別の方法で動作してよい。
【0107】
ユーザとの対話を提供するために、動作は、情報をユーザに表示するためのディスプレイデバイス(例えば、ディスプレイ650)(例えば、モニタ、または別の種類のディスプレイデバイス)、ならびにユーザが入力をコンピュータに提供するために使用できるキーボードおよびポインティングデバイス(例えば、マウス、トラックボール、タブレット、タッチ感応画面、または別の種類のポインティングデバイス)を含んでいるコンピュータ上で実施され得る。ユーザとの対話を提供するために、他の種類のデバイスも使用され得る。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であることができ、ユーザからの入力が、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ドキュメントを、ユーザによって使用されているデバイスに送信し、ユーザによって使用されているデバイスから受信することによって、ユーザと対話することができ、例えば、Webブラウザから受信された要求に応答して、Webページをユーザのクライアントデバイス上のWebブラウザに送信することによって、ユーザと対話することができる。
【0108】
コンピュータシステム600は、単一のコンピューティングデバイスまたは複数のコンピュータを含んでよく、複数のコンピュータは、近接して、または通常は互いにリモートで動作し、通常、通信ネットワークを介して(例えば、インターフェイス630を介して)情報をやりとりする。通信ネットワークの例としては、ローカルエリアネットワーク(LAN:local area network)および広域ネットワーク(WAN:wide area network)、インターネットワーク(例えば、インターネット)、衛星中継を含んでいるネットワーク、ならびにピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)が挙げられる。クライアントおよびサーバの関係は、各コンピュータ上で実行されている、互いにクライアント/サーバの関係を有しているコンピュータプログラムによって生じてよい。
【0109】
例示的なインターフェイス630は、他のシステムまたはデバイスとの通信を提供してよい。場合によっては、インターフェイス630は、例えば、特に、Bluetooth、Wi-Fi、近距離無線通信(NFC:Near Field Communication)、GSM音声通話、SMS、EMS、またはMMSメッセージング、ワイヤレス規格(例えば、CDMA、TDMA、PDC、WCDMA、CDMA2000、GPRS)などの、さまざまなワイヤレスプロトコルに従ってワイヤレス通信を提供するワイヤレス通信インターフェイスを含む。そのような通信は、例えば、無線周波数トランシーバまたは別の種類のコンポーネントを介して発生してよい。場合によっては、インターフェイス630は、例えば、キーボード、ポインティングデバイス、スキャナなどの、1つまたは複数の入力デバイス/出力デバイスに接続され得る有線通信インターフェイス(例えば、USB、イーサネット)、あるいは、例えばネットワークアダプタを介する、スイッチまたはルータなどのネットワークデバイスを含む。
【0110】
一般的な態様では、複数の実体のルート証明書データブロックチェーンは、暗号システム内の末端実体によって使用するために、生成されるか、または変更されて、提供される。
【0111】
第1の態様では、ジェネシスデータブロック(例えば、図3Cに示された例では340)が、検証実体(例えば、図3Aに示されているような検証実体304)によって生成される。ジェネシスデータブロックは、ルートCAコンソーシアムの各メンバー実体(例えば、図3Aに示されているような創設メンバー302-1、...、302-n)を表すジェネシスブロックデータエントリを含む。各ジェネシスブロックデータエントリは、ジェネシスブロックデータエントリによって表されたメンバー実体の識別子、ジェネシスブロックデータエントリによって表されたメンバー実体の公開鍵を含む。ジェネシスデータブロックエントリは、検証実体によって各メンバー実体から受信される。次に、(例えば、図3Aに示されているように、312で)ジェネシスデータブロックデータエントリに関連付けられたデジタル署名の第1のセットが検証される。ジェネシスブロックは、ジェネシスデータブロックに基づいて、ルートCAコンソーシアムの検証実体によって生成される。ジェネシスブロックを生成することは、(例えば、図3Aに示されているように、318で)ジェネシスデータブロックに基づいて、各メンバー実体からデジタル署名の第2のセットを受信することと、デジタル署名の第2のセットをジェネシスデータブロック(例えば、図3Dに示されているような350)に追加することとを含む。ジェネシスブロックを含んでいるブロックチェーンが、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして使用するために提供される。
【0112】
第1の態様の実装は、次の特徴のうちの1つまたは複数を含んでよい。メンバー実体の各々は、ジェネシスブロックデータエントリ内の公開鍵に対応する秘密鍵を持っている。メンバー実体の各々の秘密鍵は、どの他のメンバーまたは検証実体によってもアクセス可能ではない。ジェネシスブロックデータエントリおよび各メンバー実体からの署名の第1のセットが、検証実体によって並列に受信される。デジタル署名の第1のセット内の各デジタル署名が、メンバー実体の識別子およびメンバー実体の秘密鍵に基づいて、メンバー実体のうちの各1つによって生成される。ジェネシスデータブロックを生成することは、メンバー実体のデジタル署名の第1のセットを検証することをさらに含んでよい。各メンバー実体からのデジタル署名の第2のセットが、検証実体によって並列に受信される。
【0113】
第2の態様では、コンピューティングシステムは、1つまたは複数のプロセッサおよび命令を格納しているコンピュータ可読媒体を含み、命令は、1つまたは複数のプロセッサによって実行された場合に、第1の態様の1つまたは複数の動作を実行するように動作可能である。
【0114】
第3の態様では、非一過性コンピュータ可読媒体が、データ処理装置によって実行された場合に、第1の態様の動作を実行するように動作可能である命令を格納している。
【0115】
第4の態様では、アクションデータブロックが、検証実体によって取得される。アクションデータブロックが、ルートCAコンソーシアムのメンバー実体に配信される。アクションブロック(例えば、図4Dに示されているような450)が、アクションデータブロックおよびメンバーからの署名に基づいて、ルートCAコンソーシアムの検証実体によって生成される。アクションブロックを生成することは、(例えば、図4Aに示されているように、418で)ジェネシスデータブロックに基づいて、各メンバー実体からデジタル署名のセットを受信することと、(例えば、図4Dに示されているように)デジタル署名のセットをアクションデータブロックに追加することとを含む。セット内のデジタル署名の各々は、各メンバー実体によって、アクションデータブロックに基づいて生成される(例えば、Signature_M_1、Signature_M_2、...、Signature_M_n)。アクションブロックを含んでいるブロックチェーンが、1つまたは複数の末端実体によって暗号システム内のルート証明書データブロックチェーンとして(例えば、更新されたルート証明書データブロックチェーンとして)使用するために提供される。
【0116】
第4の態様の実装は、次の特徴のうちの1つまたは複数を含んでよい。場合によっては、アクションデータブロックエントリは、(例えば、図4A~4Dに示された例では)要求している実体から検証実体によって受信され、アクションデータブロックエントリは、要求している実体の識別子(例えば、ID_Req_Entity)および要求している実体の公開鍵(例えば、Public_key_Req_Entity)を含む。アクションデータブロックエントリに関連して、要求している実体のデジタル署名(例えば、Signature_Req_Entity)も受信され、検証実体は、要求者のデジタル署名を検証した後に、アクションデータブロックを生成する。アクションデータブロックを生成することは、ブロックチェーン内の前のブロックのハッシュを決定することと、このハッシュをアクションブロックデータエントリに追加することとを含んでよい。要求している実体は、アクションブロックデータエントリ内の公開鍵に対応する秘密鍵を持っている。要求している実体の秘密鍵は、どのメンバーまたは検証実体によってもアクセス可能ではない。アクションブロックデータエントリは、アクションタイプ識別子を含む。
【0117】
第4の態様の実装は、次の特徴のうちの1つまたは複数を含んでよい。場合によっては、アクションデータブロックエントリは、(例えば、図5A~5Dに示された例では)特定の要求している実体に関連付けられない。そのような場合、アクションデータブロックエントリは、要求している実体の識別子も要求している実体の公開鍵も含まず、要求している実体のデジタル署名が検証実体によって検証される必要はない。
【0118】
第5の態様では、コンピューティングシステムは、1つまたは複数のプロセッサおよび命令を格納しているコンピュータ可読媒体を含み、命令は、1つまたは複数のプロセッサによって実行された場合に、第4の態様の1つまたは複数の動作を実行するように動作可能である。
【0119】
第6の態様では、非一過性コンピュータ可読媒体が、データ処理装置によって実行された場合に、第4の態様の動作を実行するように動作可能である命令を格納している。
【0120】
本明細書は、多くの詳細を含んでいるが、それらは、請求され得る内容の範囲に対する制限と理解されるべきではなく、特定の例に固有の特徴の説明と理解されるべきである。別々の実装との関連において本明細書において説明されたか、または図面に示された特定の特徴は、組み合わせられることも可能である。反対に、単一の実装との関連において説明されたか、または示された個々の特徴は、複数の実施形態において別々に、または任意の適切な部分的組み合わせで、実装されることも可能である。
【0121】
同様に、図面では特定の順序で動作が示されているが、望ましい結果を達成するために、そのような動作が、示された特定の順序で、または連続的順序で実行される必要があると理解されるべきではなく、すべての示された動作が実行される必要があると理解されるべきではない。特定の環境では、マルチタスクおよび並列処理が有利であることがある。さらに、前述の実装におけるさまざまなシステムコンポーネントの分離は、すべての実装においてそのような分離を必要とすると理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムが、一般に、単一の製品内で一緒に統合されるか、または複数の製品にパッケージ化され得ると理解されるべきである。
【0122】
複数の実施形態が説明された。それにもかかわらず、さまざまな変更が行われ得るということが理解されるであろう。したがって、他の実施形態は、以下の特許請求の範囲内にある。
図1A
図1B
図2A
図2B
図3A
図3B
図3C
図3D
図4A
図4B
図4C
図4D
図5A
図5B
図5C
図5D
図6