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

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

▶ アンドゥリル・インダストリーズ・インコーポレーテッドの特許一覧

<>
  • 特許-格子メッシュ 図1
  • 特許-格子メッシュ 図2
  • 特許-格子メッシュ 図3A
  • 特許-格子メッシュ 図3B
  • 特許-格子メッシュ 図3C
  • 特許-格子メッシュ 図3D
  • 特許-格子メッシュ 図4
  • 特許-格子メッシュ 図5A
  • 特許-格子メッシュ 図5B
  • 特許-格子メッシュ 図5C
  • 特許-格子メッシュ 図5D
  • 特許-格子メッシュ 図5E
  • 特許-格子メッシュ 図6
  • 特許-格子メッシュ 図7
  • 特許-格子メッシュ 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-10
(45)【発行日】2024-05-20
(54)【発明の名称】格子メッシュ
(51)【国際特許分類】
   H04L 9/08 20060101AFI20240513BHJP
   G06F 21/60 20130101ALI20240513BHJP
【FI】
H04L9/08 C
H04L9/08 F
G06F21/60 320
【請求項の数】 18
(21)【出願番号】P 2020564319
(86)(22)【出願日】2018-11-29
(65)【公表番号】
(43)【公表日】2021-09-30
(86)【国際出願番号】 US2018063148
(87)【国際公開番号】W WO2019240836
(87)【国際公開日】2019-12-19
【審査請求日】2021-01-08
【審判番号】
【審判請求日】2023-03-03
(31)【優先権主張番号】62/683,533
(32)【優先日】2018-06-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/201,873
(32)【優先日】2018-11-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520441626
【氏名又は名称】アンドゥリル・インダストリーズ・インコーポレーテッド
【氏名又は名称原語表記】ANDURIL INDUSTRIES INC.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】ニューマン・ジャレド
(72)【発明者】
【氏名】ブラウン・ライアン
(72)【発明者】
【氏名】シュインプ・ブライアン・ダブリュ.
(72)【発明者】
【氏名】ラッキー・パーマー・エフ.
(72)【発明者】
【氏名】ハマーシュタイン・ジュリアン
(72)【発明者】
【氏名】ウィタカー・トラビス・エム.
(72)【発明者】
【氏名】レビン・ジェイソン
(72)【発明者】
【氏名】チェン・ジョセフ
【合議体】
【審判長】林 毅
【審判官】打出 義尚
【審判官】吉田 美彦
(56)【参考文献】
【文献】特開2007-074393号公報(JP,A)
【文献】国際公開第2007/094036号(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C1/00-5/00
H04K1/00-3/00
H04L9/00-9/40
(57)【特許請求の範囲】
【請求項1】
格子メッシュ用システムであって、
ホストから登録リクエストを受信するように構成されたインタフェースであって、前記登録リクエストは、鍵、および前記ホストに関連する資産リストを含み、前記登録リクエストは、前記ホストがメッシュネットワークに加わるためのリクエスト含む、インタフェースと、
プロセッサであって、
前記鍵に署名して、資源局証明書を用いて資源局証明書署名鍵を生成し、
前記資源局証明書署名鍵を用いて資産データベースを更新し、
前記メッシュネットワークを通して前記資源局証明書署名鍵を分配し、
前記ホストに前記資源局証明書署名鍵を提供する
ように構成されたプロセッサと
を備え、
前記インタフェースおよび前記プロセッサはハブに属し、
前記ハブは資源局を含み、前記資源局は認証局を含む、
システム。
【請求項2】
請求項1に記載のシステムであって、グループ鍵、または、前記資産データベース内の前記資源局証明書署名鍵としてのホスト公開鍵を使用して前記ホストによりメッセージが符号化され、前記メッセージを符号化することは、前記グループ鍵を使用して前記メッセージを前記ホストが暗号化すること、または前記ホスト公開鍵を使用して前記メッセージに前記ホストが署名すること、を備えるシステム。
【請求項3】
請求項2に記載のシステムであって、前記メッセージは、別のノードに送信される、または符号化後に複数のノードに公開されるシステム。
【請求項4】
請求項1に記載のシステムであって、メッセージが、グループ鍵または前記資産データベース内のホスト公開鍵を使用して復号されるシステム。
【請求項5】
請求項4に記載のシステムであって、前記メッセージは、明確に1つのノードに送信された、または複数のノードに公開されたシステム。
【請求項6】
請求項1に記載のシステムであって、前記資源局は鍵ストアを含むシステム。
【請求項7】
請求項6に記載のシステムであって、前記鍵ストアは、ハードウェア・セキュリティ・モジュールに鍵を格納するシステム。
【請求項8】
請求項1に記載のシステムであって、前記資源局は、資産データベースを含むシステム。
【請求項9】
請求項1に記載のシステムであって、前記資源局は、ホストから要求へのマップを含むシステム。
【請求項10】
請求項1に記載のシステムであって、前記資源局は、資産データベース共有者を含むシステム。
【請求項11】
請求項1に記載のシステムであって、前記ホストは、ホストサービスを含むシステム。
【請求項12】
請求項11に記載のシステムであって、前記ホストサービスは、登録要求元を含むシステム。
【請求項13】
請求項11に記載のシステムであって、前記ホストサービスは、鍵ストアを含むシステム。
【請求項14】
請求項13に記載のシステムであって、前記鍵ストアは、ハードウェア・セキュリティ・モジュールに鍵を格納するシステム。
【請求項15】
請求項11に記載のシステムであって、前記ホストサービスは、資産データベースを含むシステム。
【請求項16】
請求項11に記載のシステムであって、前記ホストサービスは、資産データベース共有者を含むシステム。
【請求項17】
格子メッシュのための方法であって、
インタフェースを使用して、ホストから登録リクエストを受信するステップであって、前記登録リクエストは、ホスト公開鍵、および前記ホストに関連する資産リストを含み、前記登録リクエストは、前記ホストがメッシュネットワークに加わるためのリクエスト含む、ステップと、
プロセッサを使用して、前記鍵に署名して、資源局証明書を用いて資源局証明書署名鍵を生成するステップと、
前記資源局証明書署名鍵を用いて資産データベースを更新するステップと、
前記メッシュネットワークを通して前記資源局証明書署名鍵を分配するステップと、
前記ホストに前記資源局証明書署名鍵を提供するステップと
を備え、
前記インタフェースおよび前記プロセッサはハブに属し、
前記ハブは資源局を含み、前記資源局は認証局を含む、
方法。
【請求項18】
格子メッシュ用コンピュータプログラムであって、
インタフェースを使用して、ホストから登録リクエストを受信する機能であって、前記登録リクエストは、鍵、および前記ホストに関連する資産リストを含み、前記登録リクエストは、前記ホストがメッシュネットワークに加わるためのリクエスト含む、機能と、
プロセッサを使用して、前記鍵に署名して、資源局証明書を用いて資源局証明書署名鍵を生成する機能と、
前記資源局証明書署名鍵を用いて資産データベースを更新する機能と、
前記メッシュネットワークを通して前記資源局証明書署名鍵を分配する機能と、
前記ホストに前記資源局証明書署名鍵を提供する機能と
をコンピュータに実現させ、
前記インタフェースおよび前記プロセッサはハブに属し、
前記ハブは資源局を含み、前記資源局は認証局を含む、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、参照により本明細書に事実上組み込まれる、2018年6月11日に提出された、「AUTONOMOUS SENSOR SYSTEM ARCHITECTURE AND INTERFACE(自律センサ・システム・アーキテクチャおよびインタフェース)」と題する米国仮特許出願第62/683,533号明細書の優先権を主張する。
【背景技術】
【0002】
機器のネットワークは、典型的には安全であり、かつ所与のノードの破損による攻撃に脆弱ではないと考えられている。しかしながら、ノードは、この場合、危険にさらされると、次いでノードを通るデータトラフィックおよびノード上に記憶された他の情報をひそかに探ることができるときにネットワークセキュリティの問題になる。さらに、ネットワークはまた、典型的には、安定した通信を提供するように設計され、ネットワークトラフィックが失われる、または運ばれないという問題につながる。
【図面の簡単な説明】
【0003】
以下の詳細な記述および添付図面で本発明のさまざまな実施形態について開示する。
【0004】
図1】メッシュネットワークの実施形態を例示する構成図である。
【0005】
図2】ハブの実施形態を例示する構成図である。
【0006】
図3A】メッシュノードの実施形態を例示する構成図である。
【0007】
図3B】ホストノードの実施形態を例示する構成図である。
【0008】
図3C】収集シンクノード(collection sink node)の実施形態を例示する構成図である。
【0009】
図3D】ホストサービスの実施形態を例示する構成図である。
【0010】
図4】登録処理の実施形態を例示する流れ図である。
【0011】
図5A】メッシュネットワーク通信の実施形態を例示する構成図である。
【0012】
図5B】通信チャネルの実施形態を例示する図である。
【0013】
図5C】通信チャネルの実施形態を例示する図である。
【0014】
図5D】格子メッシュでの通信の実施形態を例示する図である。
【0015】
図5E】格子メッシュでの通信の実施形態を例示する図である。
【0016】
図6】メッシュネットワーク上で公開するための処理の実施形態を例示する流れ図である。
【0017】
図7】メッセージを受信するための処理の実施形態を例示する流れ図である。
【0018】
図8】メッセージを伝送するための処理の実施形態を例示する流れ図である。
【発明を実施するための形態】
【0019】
本発明は、処理として、装置として、システムとして、物質の構成物として、コンピュータ可読記憶媒体に組み込まれたコンピュータプログラム製品として、ならびに/またはプロセッサに連結したメモリに記憶される、および/もしくはプロセッサに連結したメモリにより提供される命令を実行するように構成されたプロセッサなどのプロセッサを含む、さまざまな方法で実装することができる。本明細書では、これらの実装形態、または本発明がとってよい任意の他の形態を技法と呼ぶことがある。一般に、開示する処理のステップの順序を本発明の範囲内で変えてよい。特に指定のない限り、タスクを遂行するように構成されていると記述されるプロセッサまたはメモリなどの構成要素は、所与の時間にタスクを遂行するように一時的に構成される一般的構成要素として、またはタスクを遂行するように製造された特殊な構成要素として実装されてよい。本明細書で使用するとき、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された1つもしくは複数の機器、回路、および/または処理コアを指す。
【0020】
本発明の原理を例示する添付図と共に、本発明の1つまたは複数の実施形態の詳細な記述を以下に提供する。そのような実施形態に関連して本発明について記述するが、本発明はどの実施形態にも限定されない。本発明の範囲は、特許請求の範囲だけにより限定され、本発明は、数多くの代替形態、修正形態、および均等形態を包含する。本発明を十分に理解できるように、以下の記述では数多くの特有の詳細について示す。これらの詳細は、例示するために提供され、本発明は、これらの特有の詳細の一部またはすべてが欠けている場合でも特許請求の範囲に従って実施してよい。明確にするために、本発明に関係がある技術分野で公知の技術的題材については、本発明を不必要に不明瞭にしないように、詳細には記述していない。
【0021】
格子メッシュ用システムについて開示する。システムは、インタフェースおよびプロセッサを備える。インタフェースは、ホストから登録リクエストを受信するように構成され、登録リクエストは、キー、およびホストが要求したいと望む1組の資産IDを含む。プロセッサは、鍵に署名して、資源局(resource authority、RA)証明書を用いてRA証明書署名鍵を生成し、RA証明書署名鍵を用いて資産データベースを更新し、ネットワークを通してRA証明書署名ホスト公開鍵を分配し、RA証明書署名鍵をホストに提供するように構成される。いくつかの実施形態では、システムは、プロセッサに連結された、命令をプロセッサに提供するように構成されたメモリをさらに備える。
【0022】
格子メッシュ用システムは、格子メッシュ内部で通信するための安全機構を含む。ポイント・ツー・ポイント・モードと、メッセージが複数の宛先を対象とすることができる公開機構の両方で対象宛先を有するメッセージのためのノード間通信が可能になる。通信のセキュリティは、ノードが危険にさらされると、危険にさらされたノードを使用してネットワークから重要なメッセージを取得できないようにするように設計される。さらに、ネットワークは、ネットワークリンクの性能が変化するにもかかわらずリアル・タイム・データを優先させる。ネットワークはまた、ポイント・ツー・ポイント権限付与を使用して安全なルーティングを確立することによりセキュリティを確実にする。ネットワークはまた、チャネルが利用可能であるときにデータを送信することができるように、ネットワーク内を流れるデータを戦略的にキャッシュする。
【0023】
格子メッシュは、改善されたセキュリティにより他のネットワークに比べて改善になっている。ネットワークは、不安定な通信リンク、およびノードが危険にさらされるようになる可能性を克服するように設計される。格子メッシュは、メッセージを安全にし、ルートを安全にし、かつネットワークを通って送信されるのを待つメッセージのバックフィリング(backfilling)を安全にするセキュリティシステムを使用して潜在的問題を克服する。
【0024】
図1は、メッシュネットワークの実施形態を例示する構成図である。図示する例では、メッシュネットワークは、複数のノード(たとえば、メッシュノード100、メッシュノード102、メッシュノード104、メッシュノード106、メッシュノード108、メッシュノード108、メッシュノード110、メッシュノード112、収集シンクノード114、メッシュノード116など)を含む。ホストノード118は、メッシュネットワークに加わるように要求している新しい機器またはセンサまたはタワーを備える。ホストノード118は、メッシュノード116を発見し、ネットワークに加わるように要求する。メッシュネットワークは、ホストノード118にハブのアドレスを通知する、またはホストノード118は、ハブのアドレスを事前にロードされている。ホストノード118は、ハブ120と連絡をとって、ハブ120上で動作する資源局に登録する。収集シンクノード114は、バックフィルデータベースを含むメッシュノードを備える。バックフィルデータベースは、ネットワークを通過するデータを記憶し、伝送を完了することができない場合にそのデータを記憶する。バックフィルデータベースは、ノード間でデータを後で提供することができるためのリポジトリの役割を果たす。
【0025】
図2は、ハブの実施形態を例示する構成図である。いくつかの実施形態では、図2のハブを使用して、図1のハブ120を実装する。図示する例では、ハブ200は、資源局202を含む。資源局(RA)202は、認証局(certificate authority、CA)204、鍵ストア206、資産データベース(database、DB)208、ホストから要求へのマップ210、および資産データベース共有者212を含む。資源局202は、ハブ200上で動作する。いくつかの実施形態では、ハブ200は、中央クラウドに基づくサーバまたは仮想機械上で動作する。CA204は、システム用の認証局の役割を果たし、新しい機器による登録リクエストに応答する。CA204はまた、サービスが機器を認証して、システムのメッシュネットワーク上で機器を許容するかどうかを検証できるようにする。CA204は、自己署名されることができる、またはより高いレベルの認証局から自身に権限を委任された信用を有することができる。鍵ストア206は、ネットワーク上で許容されたホストの公開鍵を保持し、固有数値のホストIDをホストに割り当てる。いくつかの実施形態では、鍵ストア206は、ハードウェア・セキュリティ・モジュール(hardware security module、HSM)214を使用して、鍵材料がソフトウェアに基づき危険にさらされるのを防止するだけではなく、物理的に危険にさらされたノードに耐タンパ性を提供する。いくつかの実施形態では、RA202については、クラウドベースのHSMを使用して鍵を記憶し、新しい資産DBおよびホスト証明書に署名することができる。資産DB208は、(たとえば、ホスト公開鍵→ホストID→資産IDのリストへの)ホストのマッピングを記憶する。さらにまた資産DB208を使用して、資産IDが全システムに固有であることを確実にする。いくつかの実例では、資産DB208はホストマップと呼ばれる。
【0026】
いくつかの実施形態では、資産DB208は、近隣の資産DBを使用すべきかどうかを安全に判断するために使用することができる、署名された単調増加バージョン番号を含む。たとえば、ホストは、近隣の資産DBのどのバージョン番号が、近隣が有するバージョン番号よりも大きいかを近隣に問い合わせることができる。ある近隣がより大きなバージョン番号の資産DBを有することに応答して、ホストノードは、近隣から自身へ資産DBを移送させて、ホストノードに現在記憶された、現在のより低いバージョンの資産DBの代わりにより高いバージョン番号の資産DBを記憶することができる。
【0027】
ホスト公開鍵→(ホストID,[資産ID])のマッピングは、RA202により署名され、名前付けおよびアドレス指定の目的でシステムの至る所で使用される。ホストから要求へのマップ210は、ホストとホストが行うことができる要求との間のマッピングを含む。中央ハブに至る無線通信リンク(たとえば、LTE、セルラー方式、WiFiなど)を利用できない場合でさえホストマップが利用できるように、資産データベース共有者212を使用して、システム内の他のノードに資産DBを安全に分配する、またはゴシップする。
【0028】
図3Aは、メッシュノードの実施形態を例示する構成図である。いくつかの実施形態では、メッシュネットワーク300を使用して、図1のメッシュノード(たとえば、メッシュノード100、メッシュノード102、メッシュノード104、メッシュノード106、メッシュノード108、メッシュノード110、メッシュノード112、収集シンクノード114、およびメッシュノード116)を実装する。図示する例では、メッシュノード300は、ドローン、観察ステーション(たとえば、タワー)、小型自律センサ(たとえば、センサ、「ほこり」センサなど)、ヘリコプタ、または任意の他の適切な数のメッシュネットワークを備えてよい。メッシュノード300はホストサービス302を含む。ホストサービス302は、プロセッサを使用してメッシュノード300上で動作し、RAの資産DBだけではなく、ネットワーク到達可能性およびサービス発見情報に関するホスト署名された表明も分配するルーティング・ゴシップ・サービスを取り扱う。ホストサービス302はまた、異なるタイプの資産(たとえば、メッシュネットワーク上の他のメッシュノード、サブネットワーク上のノードなど)からの、待ち時間に影響されやすい時間順序メッセージストリーム(ビデオデータを含む)を公開し、それに加入する。ホストサービス302は、単一のネットワークサービスを動作させ、自身を識別する固有の秘密鍵/公開鍵対を有する。RAは、許可された公開鍵ごとに固有数値のホストIDを割り当てる。メッシュノード300は、メッシュノード300にローカルに接続された1つまたは複数の資産を動作させてよく、この場合、メッシュノード300は、公開/加入およびHTTP/2プロキシへの(たとえば、ローカルホストまたは別のローカルサブネットを介した)ローカルにルーティング可能な接続を維持して、公開/加入リクエストを行い、1つまたは複数の安全な遠隔手続呼出(remote procedure call、RPC)を遂行する。資産は、関連する資産ID、および1組の資産特性(たとえば、ドローン、無人地上センサ(unattended ground sensor、UGS)、タワーなど)を有する。各資産特性は、提供されたRPCサービスおよび作り出された公開/加入話題名からなるリストに対応する。
【0029】
図3Bは、ホストノードの実施形態を例示する構成図である。いくつかの実施形態では、ホストノード310を使用して、図1のホストノード118を実装する。図示する例では、ホストノード310は、メッシュネットワークに加わって、メッシュノードになろうと試みているノードであり、ドローン、観察ステーション(たとえば、タワー)、小型自律センサ(たとえば、センサ、「ほこり」センサなど)、ヘリコプタ、または任意の適切な数のメッシュネットワークを備えてよい。ホストノード310は、ホストサービス312を含む。ホストサービス312は、プロセッサを使用してホストノード310上で動作し、RAの資産DBだけではなく、ネットワーク到達可能性およびサービス発見情報に関するホスト署名された表明も分配するルーティング・ゴシップ・サービスを取り扱う。ホストサービス312はまた、異なるタイプの資産(たとえば、メッシュネットワーク上の他のメッシュノード、サブネットワーク上のノードなど)からの、待ち時間に影響されやすい時間順序メッセージストリーム(ビデオデータを含む)を公開し、それに加入する。ホストサービス312は、単一のネットワークサービスを動作させ、自身を識別する固有の秘密鍵/公開鍵対を有する。RAは、許可された公開鍵ごとに固有数値のホストIDを割り当てる。ホストノード310は、ホストノード310にローカルに接続された1つまたは複数の資産を動作させてよく、この場合、ホストノード310は、公開/加入およびHTTP/2プロキシへの(たとえば、ローカルホストまたは別のローカルサブネットを介した)ローカルにルーティング可能な接続を維持して、公開/加入リクエストを行い、1つまたは複数の安全な遠隔手続呼出(RPC)を遂行する。資産は、関連する資産ID、および1組の資産特性(たとえば、ドローン、UGS、タワーなど)を有する。各資産特性は、提供されたRPCサービスおよび作り出された公開/加入話題名からなるリストに対応する。
【0030】
図3Cは、収集シンクノードの実施形態を例示する構成図である。いくつかの実施形態では、ホストノード320を使用して、図1の収集シンクノード114を実装する。図示する例では、ホストノード310は、メッシュネットワークに加わって、メッシュノードになろうと試みているノードであり、ドローン、観察ステーション(たとえば、タワー)、小型自律センサ(たとえば、センサ、「ほこり」センサなど)、ヘリコプタ、または任意の適切な数のメッシュネットワークを備えてよい。ホストノード310はホストサービス312を含む。ホストサービス312は、プロセッサを使用してホストノード310上で動作し、RAの資産DBだけではなく、ネットワーク到達可能性およびサービス発見情報に関するホスト署名された表明も分配するルーティング・ゴシップ・サービスを取り扱う。ホストサービス312はまた、異なるタイプの資産(たとえば、メッシュネットワーク上の他のメッシュノード、サブネットワーク上のノードなど)からの、待ち時間に影響されやすい時間順序メッセージストリーム(ビデオデータを含む)を公開し、それに加入する。ホストサービス312は、単一のネットワークサービスを動作させ、自身を識別する固有の秘密鍵/公開鍵対を有する。RAは、許可された公開鍵ごとに固有数値のホストIDを割り当てる。ホストノード310は、ホストノード310にローカルに接続された1つまたは複数の資産を動作させてよく、この場合、ホストノード310は、公開/加入およびHTTP/2プロキシへの(たとえば、ローカルホストまたは別のローカルサブネットを介した)ローカルにルーティング可能な接続を維持して、公開/加入リクエストを行い、1つまたは複数の安全な遠隔手続呼出(RPC)を遂行する。資産は、関連する資産ID、および1組の資産特性(たとえば、ドローン、UGS、タワーなど)を有する。各資産特性は、提供されたRPCサービスおよび作り出された公開/加入話題名からなるリストに対応する。
【0031】
図3Dは、ホストサービスの実施形態を例示する構成図である。いくつかの実施形態では、ホストサービス330を使用して、図3Aのホストサービス302、または図3Bのホストサービス312、または図3Cのホストサービス322を実装する。図示する例では、ホストサービス330は、登録要求元332、鍵ストア334、資産データベース336、および資産データベース共有者338を含む。登録要求元332は、最初に1つまたは複数のローカル・メッシュ・ノードを発見したことに応答して、またはホストサービスが動作しているノードに関連する新しい資産を追加もしくは削除したことに応答して、メッシュネットワークに登録リクエストを生じさせることができる。いくつかの実施形態では、RA公開鍵は、各ホストに事前にピン留めされ、登録のための適切なRAをホストノードが識別可能にする。鍵ストア334は、ネットワーク上で許可された、各ホストに固有数値のホストIDを割り当てる、ホストの秘密鍵を保持する。いくつかの実施形態では、鍵ストア334は、ハードウェア・セキュリティ・モジュール(HSM)340を使用して、鍵材料がソフトウェアに基づき危険にさらされるのを防止するだけではなく、物理的に危険にさらされたノードに耐タンパ性を提供する。いくつかの実施形態では、取外し可能なHSMをホストノードに取り付けて、秘密鍵材料を記憶および配布し、新しいホスト表明に署名することができる。資産DB336は、(たとえば、ホスト公開鍵→ホストID→資産IDのリストへの)ホストのマッピングを記憶する。さらにまた資産DB336を使用して、資産IDが全システムに固有であることを確実にする。資産DB336は、ホストマップと呼ばれる。ホスト公開鍵→(ホストID,[資産ID])のマッピングは、RAにより署名され、名前付けおよびアドレス指定の目的でシステムの至る所で使用される。中央ハブに至る無線通信リンク(たとえば、LTE、セルラー方式、WiFiなど)を利用できない場合でさえホストマップが利用できるように、資産データベース共有者338を使用して、システム内の他のノードに資産DBを安全に分配する、またはゴシップする。いくつかの実施形態では、資産ID共有者338は、ホストサービス330の一部として記憶された現在の資産DBよりも新しいバージョンの資産DBを近接ノードが有するかどうかを判断することができる。
【0032】
図4は、登録処理の実施形態を例示する流れ図である。いくつかの実施形態では、ホストノード(たとえば、図1のホストノード118)により図4の処理を使用して、メッシュネットワーク(たとえば、図1のメッシュノード、たとえば、メッシュノード100、メッシュノード102、メッシュノード104、メッシュノード106、メッシュノード108、メッシュノード110、メッシュノード112、収集シンクノード114、およびメッシュノード116などの複数のメッシュノードから構成されたメッシュネットワーク)に登録する。いくつかの実施形態では、攻撃者が、欺く機器をシステムに付加すること、またはノードを危険にさらすこと、および資産から、危険にさらされたノードへのトラフィックまたはノード間のトラフィックの向きを変えることを防止するために、ホストノードは、メッシュネットワークに加わるように要求するときに登録処理を注意深く調べなければならない。図示する例では、400で、メッシュネットワークに関する登録リクエストを受信する。たとえば(たとえばハブノードの)資源局は、メッシュネットワークに加わりたいと望むホストノードからリクエストを受信する。いくつかの実施形態では、ホストノードは、自身が識別することができるメッシュネットワークのローカルノードを発見し、ローカル・メッシュ・ノードの1つまたは複数を使用し、メッシュネットワークに加わるリクエストを適切な資源局に伝える。いくつかの実施形態では、登録処理は、ホストがリクエストを用いてRAに安全なRPCを行うことを伴う。いくつかの実施形態では、リクエストは、ホストに新しい資産を付加することによりトリガされる。いくつかの実施形態では、リクエストは、ホストに対して資産を削除することによりトリガされ、すなわちたとえば、ホスト資産は(たとえば、ソフトウェア更新、ハードウェア更新、資産のプラグを抜くなどに起因して)取り除かれる、またはユーザは、資産を取り除く権限を確認した後、資産を遠隔に取り除く。ホストに関連する資産に変化があると、新しい資産DBを分配する。402で、ホストノード公開鍵を受信する。たとえば、ホストノードは、(たとえば、資源局からの公開鍵のリクエストに応答して)資源局へのリンクが確立されると、メッシュネットワークに加わるリクエストの一部として、または別個の通信として提供する。404で、ホストノード公開鍵に署名する。たとえば、資源局は、RA証明書を使用してホストノード公開鍵に署名する。406で、ホストノードに関連する資産のリストを受信する。たとえば、資源局は、メッシュネットワークに加わるリクエストに関するホストノードに関連する、またはそのホストノードより要求される資産のリストを要求する、または資産のリストは、メッシュネットワークに加わるリクエストと共に受信される。408で、資産のリストの中の資産はDBに追加される。たとえば、資産のリストの中の資産の各々は、ホスト識別子に関連する資産DBに追加される。410で、メッシュネットワークを通して資産データベースを分配する。たとえば、ネットワークを通して資産データベースをゴシップする、または分配する。412で、RAにより署名されたホスト公開鍵を伴う証明書をホストに提供する。たとえば、証明書は、次いでホストにより受信され、ホストにより証明書を使用して、相互に認証されたTLS(transport layer security、トランスポート層セキュリティ)接続を使用してメッシュネットワークに接続することができる。署名された公開鍵、およびホストノードと資産データベースに追加されたホスト資産の両方を用いて、ホストノードは、メッシュネットワークの他のノードと安全なRPCを開始することができ、自身に配送されるメッセージを読むことができる。他のメッシュノードは、他のホストノードからの通信を受信するとき、ホストの公開鍵がRAにより署名されていることを確認して、ホストがメッシュネットワーク上で許可されていること、ならびに証明書の通し番号が資産データベース内の署名廃止リストに存在しないことを検証する。ホストノードに資産を追加するときはいつでも、登録処理は再開される。資産は、承認されると、(たとえば、ホスト公開鍵または任意の他の適切なホスト識別子に関連する)ホストに関連する資産データベースに追加され、資産データベースは、ゴシップまたは分配プロトコルを使用してメッシュネットワークを通して分配される。
【0033】
いくつかの実施形態では、資産データベース(DB)は、近隣の資産DBを使用すべきかどうかを安全に判断するために使用することができる、署名された単調増加バージョン番号を含む。たとえば、ホストは、近隣の資産DBのどのバージョン番号が、近隣が有するバージョン番号よりも大きいかを近隣に問い合わせることができる。近隣がより大きなバージョン番号の資産DBを有することに応答して、ホストノードは、近隣から自身に資産DBを移送させて、ホストノードに現在記憶されている、現在のより低いバージョンの資産DBの代わりにより高いバージョン番号の資産DBを記憶することができる。
【0034】
図5Aは、メッシュネットワーク通信の実施形態を例示する構成図である。いくつかの実施形態では、図5Aのメッシュノード(たとえば、メッシュノードA500、メッシュノードB502、およびメッシュノードC504)は、図1のメッシュノード(たとえば、メッシュノード100、メッシュノード102、メッシュノード104、メッシュノード106、メッシュノード108、メッシュノード110、メッシュノード112、収集シンクノード114、メッシュノード116)である。図示する例では、メッシュノードC504は、メッシュノードB502に第1のRPC506を送信して、通信を確立する。メッシュノードC504は、メッシュノードA500に第2のRPC508を送信して、通信を確立する。
【0035】
図5Bは、通信チャネルの実施形態を例示する図である。いくつかの実施形態では、図5Bに例示する通信チャネルは、図5AのメッシュノードC504とメッシュノードB502の間の通信で使用される。図示する例では、伝送制御プロトコル(transmission control protocol、TCP)通信は、2つのメッシュノード間の通信(たとえば、メッシュノードC→メッシュノードB)で使用される。通信は、相互に認証されたトランスポート層セキュリティ(transport layer security、TLS)接続をホスティングする。TLS接続の内部では、ストリーム指向マルチプレクサは、3種類のストリームを、すなわち、1)単一メッセージング・フレーミング・プロトコルを動作させる分配またはゴシップ/Pubsubトラフィック、2)ローカルに終端された1ホップRPCトラフィック用HC2(HTTP/2平文)、および3)マルチホップ・エンド・ツー・エンド暗号化RPC接続(たとえばメッシュノードC→メッシュノードAの通信)を容易にするためのTLSトラフィックの簡単なパケット転送を動作させる。マルチプレクサプロトコルでのヘッダは、サービス品質(quality of service、QoS)情報を包含し、マルチホップRPCについては、ヘッダは、意図する宛先に関するルーティング情報を含む。マルチホップ接続は、中間ノードが内容を盗聴することができないように、かつ各エンドポイントが相互に認証することができるように、エンド・ツー・エンドで暗号化される。これは、エンド・ポイント・ノードが、RAにより提供された証明書を使用して、TLS/AES-GCM(transport layer security advanced encryption standard Galois counter mode、トランスポート層セキュリティAESガロアカウンタモード)を確立することにより達成される。証明書は、ホストが互いになりすますことができないようにRA署名ホストIDを包含する。QoSを提供するために、各ホストは、単一TCP接続、または各ホストの次のホップピアへの迅速なユーザ・データグラム・プロトコル(user datagram protocol、UDP)インターネット接続(quick UDP internet connection、QUIC)を維持する。TCP接続は、TCP接続を介した複数のストリームを多重化して、ストリームレベルで粗い優先順位付けをできるようにする。
【0036】
図5Cは、通信チャネルの実施形態を例示する図である。いくつかの実施形態では、図5Cのメッシュノード(たとえば、メッシュノードA510、メッシュノードB512、およびメッシュノードC514)は、図1のメッシュノード(たとえば、メッシュノード100、メッシュノード102、メッシュノード104、メッシュノード106、メッシュノード108、メッシュノード110、メッシュノード112、収集シンクノード114、メッシュノード116)である。図示する例では、メッシュノードC514は、メッシュノードB512へのTCP接続516を有する。メッシュノードB512は、メッシュノードA510へのTCP接続518を有する。TLS接続522は、通信するためにメッシュノードC514およびメッシュノードB512を接続する。TLS接続520は、通信用にメッシュノードC514およびメッシュノードA510を接続する。
【0037】
いくつかの実施形態では、RAは、JSONウェブトークン(JSON web token、JWT)の形をとるベアラトークンを分配する。ベアラトークンは、システム内のサービスが、同期して中央局を確認する必要なしに、ある種の動作を行う許可をクライアントが有することを検証するための仕組みである。JWTは、base64で符号化された、RA証明書を使用して、暗号を使用して署名されたJSON(JavaScript Object Notation)フォーマットの1組の要求である。サービスは、RA証明書を使用してペイロード署名を確認することによりJWTでの要求を検証することができる。要求は、資源識別子(たとえば、資源/資産/abce1234)および動作(たとえば、pubsub:閲覧)または許可を備える。JWTは、登録中にハブにより与えられ、(ハブと、古いJWTを新しいJWTに交換することにより)周期的にリフレッシュされなければならない。
【0038】
いくつかの実施形態では、システムは、署名された資産DBおよびホスト表明を使用して、システムのための名前付けおよびアドレス指定を提供する。たとえば、3e.host.localは、ホストIDの3eにマッピングされ、5fe.asset.localは、資産IDの5feにマッピングされ、ptu.8b2.asset.localは、資産IDの8b2上で動作している特性「ptu」にマッピングされる。
【0039】
図5Dは、格子メッシュでの通信の実施形態を例示する図である。図示する例では、ノード3の加入者は、公開者から公開されたメッセージをノード3が受信することを要望することを公開者に要求する。加入リクエストは、ノード1の公開者に向けて、たとえば、ノード1に到達するルートに沿ったノード2に送信される。ノード2は、リクエストを受信し、ルートに沿ってノード1に転送する。いくつかの事例では、ルートに沿って公開者ノードの最終宛先にリクエストを中継する複数のノードが存在する。ノード1の公開者は、次いでリクエストを受信し、要求している加入者であるノード3が加入することを許されているかどうかを判断する(たとえば、資産DBに問い合わせて、ノード3の加入者がノード1から公開されたメッセージに加入することを許されているかどうかを確かめる、またはRAに問い合わせて、ノード3の加入者がノード1から公開されたメッセージに加入することを許されているかどうかを確かめる、または任意の他の適切な権限付与リストもしくは権限付与機構)。権限付与されたことに応答して、ルートに沿ったノード2を介してノード3の加入者にグループ鍵を提供する。ノード1の資産からデータストリームを受信する(たとえば、カメラがノード1にビデオストリームを提供する)場合、ノード1の公開者は署名をし、現在のグループ鍵を使用してメッセージ(たとえば署名され暗号化されたメッセージ(signed encrypted message、SEM))の中にデータストリームを暗号化する。グループ鍵は、周期的に更新される(たとえば、公開しているノード1で変更されるだけではなく、加入者ノードにも再分配される、または加入リクエストもしくは再加入リクエストに応答して加入者ノードにも提供される)ことに留意されたい。ノード1は、ノード2によりノード3の加入者に中継されるSEMを公開することにより加入者に提供される。ノード3の加入者は、ノードが公開者の公開ストリームに加入したときに受信したグループ鍵を使用して、公開されたSEMを解読する。
【0040】
図5Eは、格子メッシュでの通信の実施形態を例示する図である。図示する例では、ノード3の通信エンドポイントは、ノード3がノード間で直接通信することを要望することを通信エンドポイントであるノード1に要求する。ポイント・ツー・ポイント通信リクエストは、ノード1に向けて、たとえば、ノード1に到達するルートに沿ったノード2に送信される。ノード2は、リクエストを受信し、ルートに沿ってノード1に転送する。いくつかの事例では、ルートに沿って公開者ノードの最終宛先にリクエストを中継する複数のノードが存在する。ノード1は、次いでリクエストを受信し、要求しているノードであるノード3が通信することを許されているかどうかを判断する(たとえば、資産DBに問い合わせて、ノード3がノード1と通信することを許されているかどうかを確かめる、またはRAに問い合わせて、ノード3がノード1と通信することを許されているかどうかを確かめる、または任意の他の適切な権限付与リストもしくは権限付与機構)。権限付与されたことに応答して、ルートに沿ったノード2を介してノード3の加入者にホスト公開鍵を提供する。ノード1の資産からデータストリームを受信する(たとえば、カメラがノード1にビデオストリームを提供する)場合、ノード1の公開者は、署名し、現在のホスト公開鍵を使用してメッセージ(たとえば、署名され暗号化されたメッセージ(SEM))の中にデータストリームを暗号化する。ホスト公開鍵は、周期的に更新される(たとえば、ノード1で変更されるだけではなく、他のノードにも再分配される、または通信するリクエストに応答してノードにも提供される)ことに留意されたい。いくつかの事例では、ホスト公開鍵は、資産DB分配を介して分配される。ノード1のメッセージは、ノード2によりノード3の加入者に中継されるSEMを公開することにより加入者に提供される。ノード3は、鍵のデータベースを伝達および/または受信するように要求するときに受信したホスト公開鍵を使用して、公開されたSEMを解読する。
【0041】
図6は、メッシュネットワーク上で公開するための処理の実施形態を例示する流れ図である。いくつかの実施形態では、図6の処理を使用して、図1のメッシュノード(たとえば、メッシュノード100、メッシュノード102、メッシュノード104、メッシュノード106、メッシュノード108、メッシュノード110、メッシュノード112、収集シンクノード114、メッシュノード116)を通してメッセージを公開する。いくつかの実施形態では、マルチキャストを使用してpub/sub(公開/加入)メッセージを配送することを確実にするために(すなわち、メッセージは、メッセージ配送のために使用されるノードのグラフのエッジあたり一度だけ出現する)、中間のpub/subノードが他のノード行きのメッセージを解読することができることを要求するので、加入あたり別個のストリームを使用することはできない。これを達成するために、各pub/subメッセージは、話題用グループ鍵を用いて個々に解読される。グループ鍵を使用して、作り出されたメッセージを暗号化し、認証する。話題用グループ鍵を安全に獲得するために、クライアントpub/subノードは、RPCを介してサーバpub/subノードに1つのグループ鍵を要求する。RPCは、メッセージを解読するために使用する鍵Id、およびクライアントがアクセスできることを証明するベアラトークンを指定する。サーバは、次いでRA証明書を使用して要求を検証し、クライアントは、話題にアクセスすることを許されている場合、グループ鍵へのアクセス権を与えられる。グループ鍵は、(数10分のオーダーの)比較的短い生存期間を有しなければならず、ノードの、話題へのアクセス権を取り消すことによりノードが合理的時間で読出アクセス権を失うことを確実にするために、定期的に交替させられなければならない。グループ鍵は、メッセージデータを暗号化するためのAES-GCM暗号化モードに提供される共有秘密だけではなく、短命の鍵対の公開鍵も備える。AES-GCMは、HMACの役割を果たす「タグ」を作り出し、HMACは、この場合、否認防止の性質を提供するために、すなわち、グループ鍵へのアクセス権を有する他のホストがメッセージをねつ造するのを防止するために、鍵対の秘密鍵により署名される。いくつかの実施形態では、pub/subサービスの要求は、資源識別子「資源/資産/${資産Id}」およびパーミッション「許可/pubsub/閲覧」を使用する。
【0042】
図示する例では、600で、クライアントから公開グループに加わるリクエストを受信する。たとえば、生成ノードは、クライアントまたはメッシュノードから話題に関する公開グループに加わるリクエストを受信する。602で、グループ鍵を決定する。たとえば、RAにより最初に提供された権限付与に関して資産DBに問い合わせることにより、グループ鍵を決定する。604で、クライアントがグループの話題へのアクセス権を許可されているかどうかを判断する。たとえば、RAは、クライアントまたはメッシュノードが公開グループに関連する所与の話題への許可またはアクセス権を有するかどうかをデータベースに問い合わせる。クライアントがグループの話題へのアクセス権を許可されていないことに応答して、処理は終了する。クライアントがグループの話題へのアクセス権を許可されていることに応答して、606で、クライアントにグループ鍵を提供する。たとえば、クライアント、またはクライアントに伝送すべきメッシュノードにグループ鍵を提供する。608で、メタデータを含むグループメッセージを公開する。たとえば、クライアントまたはメッシュノードでメッセージを適切にフィルタ処理するために使用することができるメタデータを含むグループ鍵を使用して、グループメッセージを公開する。610で、トークンを交替させる時間であるかどうかを判断する。たとえば、トークンを頻繁に交替させて、アクセス特権の取消しに対する合理的時間応答を(たとえば、数10分で、時間で、数秒で、またはネットワークおよびネットワーク使用量に適合するように)可能にすべきである。トークンを交替させる時間であるという判断に応答して、制御を602に渡す。トークンを交替させる時間ではないという判断に応答して、612で、別のグループメッセージが存在するかどうかを判断する。別のグループメッセージが存在することに応答して、制御を608に渡す。別のグループメッセージが存在しないことに応答して、制御を610に渡す。
【0043】
いくつかの実施形態では、pub/sub要求は、資産レベルにあり、資産が作り出すすべての話題をベアラが読むことができるようにする。
【0044】
いくつかの実施形態では、資産は、話題から得られるメッセージのサブセットに加入することを望んでよい(たとえば、ドローンは、タワーから軌道に従うよう命令されてよい)。これを許可するためには、各メッセージは、フィルタ処理のために使用することができる、暗号化されていないメタデータをさらす。加入を開始するとき、メタデータは、メッセージに適用する1組のフィルタを指定することができる。メタデータは、1組の値への鍵のマップであり、フィルタは、鍵に対する正確な一致またはプレフィックス一致を可能にする。この枠組みを使用して、ジオハッシュ(geo-hash)を使用する基本ジオフィルタリングが可能である。メッセージに関連するメタデータは、固有鍵(たとえば、メッセージの作成者に関連する鍵、時間/日付スタンプに関連する鍵など)、メディアタイプ(たとえば、protobuf(Protocol Buffer、プロトコルバッファ)、blob(Binary Large Object)、ファイルタイプ、たとえば、ビデオファイル(MPEG(moving picture experts group)、MP4(MPEG-4)など)、テキストファイル、画像ファイル、pdfファイルなど)、および/またはタイムスタンプを含むことができる。画像に基づくメッセージについては、pub/subメッセージは、効率的転送および記憶のためにチャンキングされたMPEGストリームとして画像を符号化することができるべきである。
【0045】
いくつかの実施形態では、各ホストは、(RAおよびホストにより署名された)資産および(ホストだけにより署名された)特性からなる署名された表明リストを作り出す。特性は、RPCサービスおよび作り出された話題のグループ分けを記述する文字列である。ホスト表明リストでは、ホストはまた、システムの残りの部分により発見する目的で使用することができる文字列メタデータタグのリストを含むことができる。メッセージを公開するとき、資産は、話題名だけではなく、メッセージごとのメタデータタグのリストも含む。話題メタデータタグは、フィルタリングに有用な情報を包含することができる。複数の加入のルーティングに関与する中間ノードは、プレフィックス照合を使用して、複製された加入を組み合わせることができる。いくつかの実施形態では、準同形暗号化を使用して暗号化し、タグに対してプレフィックス照合を遂行して、中間ルーティングノードが、メタデータをフィルタ処理するときに盗聴することができる能力を取り除く。
【0046】
いくつかの実施形態では、pub/subサービスは、話題へのメッセージを公開することができ、この場合、話題は(話題ID,資産ID)のタプルである。いくつかの実施形態では、pub/subサービスは、話題(話題ID,資産ID)タプル、配送タイプ(たとえば、完全な/バックフィルされた最新の、最後のメッセージなど)、および開始すべき時点(たとえば、ストリームの開始から0スタートする、「今」から-1スタートする、指定した時間に、指定した時間からメッセージを開始するなど)を指定するとき、任意の話題に関するメッセージに加入することができる。いくつかの実施形態では、pub/subサービスは、(たとえば、さらにまたタプルである話題ID、資産IDを使用して指定された)任意の話題に関するメッセージへの加入をやめることができる。
【0047】
いくつかの実施形態では、pub/subサービスは、履歴問合せに答える(たとえば、過去の時間からストリーム送信または公開を開始する)ことができるようにデータを記憶する。いくつかの実施形態では、ハブノードは、データベースにすべてのデータを格納する。いくつかの実施形態では、システム内の他のノードは、データの各々を(たとえば、ハードドライブなどの固定記憶装置に)格納する。
【0048】
図7は、メッセージを受信するための処理の実施形態を例示する流れ図である。いくつかの実施形態では、図7の処理を使用して、プライベートメッセージまたは公開されたグループメッセージを受信する。図示する例では、700で、クライアントまたはポイント・ツー・ポイント通信リンクから公開グループに加わるリクエストを提供する。たとえば、クライアント、または資産データベースへのポイント・ツー・ポイント通信リンクから公開グループに加わるリクエストを資産データベースに提供する。702で、グループ鍵またはホスト公開鍵を受信する。たとえば、資産データベースからグループ鍵を受信する。704で、メッセージが受信されたかどうかを判断する。メッセージが受信されなかったという判断に応答して、制御は704に渡される。メッセージが受信されたという判断に応答して、705で、メッセージを送信し続けるべきかどうかを判断する。メッセージを送信し続けるべきであると判断されたことに応答して、712で、メッセージを送信し続け、714で、メッセージがホスト宛てであるかどうかを判断する。メッセージがホスト宛てであることに応答して、制御は706に渡される。メッセージがホスト宛てではないことに応答して、制御は708に渡される。メッセージを送信し続けるべきではないという判断に応答して、制御は706に渡される。706で、グループ鍵を使用してメッセージを復号する。708で、バックフィルデータベースにメッセージを格納すべきかどうかを判断する。たとえば、ノードが収集シンクノードである場合、バックフィルデータベースにメッセージを格納する。いくつかの実施形態では、ノードにはバックフィルデータベースがなく、メッセージを復号した後、制御は706から704に渡される。バックフィルデータベースに格納するという判断に応答して、710で、復号されたメッセージをバックフィルデータベースに格納し、制御は704に渡される。バックフィルデータベースに格納しないという判断に応答して、制御は704に渡される。通常のノードの場合、グループ鍵またはホスト公開鍵をメモリに記憶させ、固定記憶装置が危険にさらされた場合、記憶された鍵を用いて、符号化されたメッセージを復号することができないように、グループ鍵またはホスト公開鍵を固定記憶装置に記憶させない。いくつかの事例では、ノードは、データシンク(data sink)を備える。データシンクは、安全であると考えられているので選択される。
【0049】
図8は、メッセージを伝送するための処理の実施形態を例示する流れ図である。いくつかの実施形態では、図8の処理を使用して、プライベートメッセージまたは公開されたグループメッセージを送信する。図示する例では、800で、クライアントまたはポイント・ツー・ポイント通信リンクから公開グループに加わるリクエストを提供する。たとえば、クライアント、または資産データベースへのポイント・ツー・ポイント通信リンクから公開グループに加わるリクエストを資産データベースに提供する。802で、グループ鍵またはホスト公開鍵を受信する。たとえば、資産データベースからグループ鍵またはホスト公開鍵を受信する。804で、送信すべきメッセージが利用可能であるかどうかを判断する。送信すべきメッセージが利用可能ではないという判断に応答して、制御は804に渡される。送信すべきメッセージが利用可能であるという判断に応答して、806で、グループ鍵またはホスト公開鍵を使用してメッセージを符号化する。たとえば、メッセージは、グループ鍵を使用して暗号化される、またはホスト公開鍵を使用して署名される。グループ鍵とホスト公開鍵の間で留意すべき重要な違いは、グループ鍵は、メッセージを暗号化/復号するために使用する対称鍵であること、および周期的に交替させられることである。ホスト公開鍵は、ハードウェア・セキュリティ・モジュール上に格納される、決して交替させられることのない非対称鍵である(所与のホストは、製造時に単一のホスト公開鍵を割り当てられる)。(他のノードがメッセージを読もうと望むときにアクセスする)グループ鍵にアクセスできる他のノードがメッセージをねつ造することができないように、ホスト公開鍵を使用して、ホストが発するメッセージに署名する。808で、メッセージを送信し、制御は804に渡される。たとえば、メッセージは、ルーティングルートに沿って宛先に送信される、またはネットワークに公開される。生成ノードだけが公開グループに公開することができることに留意されたい。
【0050】
いくつかの実施形態では、システムは、単一ノードが危険にさらされた場合、攻撃者が他の構成要素にアクセスすることができないようにセキュリティを提供するように設計される。いくつかの実施形態では、システムは、ノードがノードを通してルーティングされている、他のノード宛てのメッセージ/RPCを読むことができないようにする。いくつかの実施形態では、システムは、ノードが別のノードを通してルーティングされている、他のノード宛てのメッセージ/RPCを検出不能に修正することができないようにする。いくつかの実施形態では、システムは、他のノード向けのメッセージ/RPCを任意の所与のノードに向きを変える(すなわち、ルーティングテーブルのエントリに影響を及ぼす)ことができないようにする。
【0051】
いくつかの実施形態では、システムは、任意のメッセージ/RPCが他のノード宛てである場合でさえ、ノードを通過する任意のメッセージ/RPCのためのサービスをノードが拒むことができるようにする。いくつかの実施形態では、システムが、ノード宛てのメッセージ/RPCをノードが傍受することができるようにする。いくつかの実施形態では、システムは、ノードになりすますメッセージをノードが送信することができるようにする。いくつかの実施形態では、システムは、ノードが見ることができるメッセージにノードが加入することができるようにする。いくつかの実施形態では、システムは、ノードを通過するすべてのメッセージ/PCの宛先をノードが詳しく調べることができるようにする。
【0052】
いくつかの実施形態では、鍵は、33バイトの圧縮公開鍵サイズおよび64バイトの署名サイズを有する米国国立標準技術研究所(National Institute of Standard and Technology、NIST)P-256曲線上で楕円曲線DSA(Elliptic Curve Digital Signature Algorithm、ECDSA)を使用する。
【0053】
いくつかの実施形態では、RAは鍵対を有し、各ホストは、RA公開鍵をピン留めし、この場合、ピン留めされた鍵は、ホストに物理的にアクセスすることによってだけ変更可能である。いくつかの実施形態では、各ホストは、ハードウェアの修正を行わない限り変更することができない、ハードウェアに基づく鍵対を製造時に割り当てられる。ホストは、公開鍵のホスト識別子としても知られる自身の公開鍵を使用して識別される。
【0054】
いくつかの実施形態では、RAは、権限を与えられたメンバーのホストIDの集中リストを維持する。このリストは、登録処理を通して更新され、ネットワークを通して分配される。ホストが害を与えるようになった(たとえば、ホストが危険にさらされたという指示を受信した)場合、RAは、そのホストから発せられた、活動状態の証明書を取り消すことができる。証明書の有効期限に到達するまで、取り消された証明書の通し番号は、署名されたホストリストの中に含まれる。各ホストは、ホストが有効期限と同時に、到達することができる他のホストに関する表明を広告する。表明は、ホストの秘密鍵により署名される。1つの署名された表明が存在するエッジは、「候補エッジ」と呼ばれる。2つの相互表明を伴うエッジは、「ルーティング可能なエッジ」と呼ばれる。ルーティング可能なエッジだけが、ネットワーク内で活動状態にある。
【0055】
いくつかの実施形態では、アーキテクチャは、害を与えるノードが引き起こす可能性がある損害を限定するように設計される。たとえば、害のあるノードは、できるだけ多くの候補エッジを生み出す可能性があり、しかしながら、他の適正なホストが害のあるノードに到達することができない場合、適正なホストは、害のあるノードの候補エッジに関する表明を生み出さず、ルーティング可能なエッジはまったく生み出されない。したがって、害のあるノードは、そのノードが到達することができる適正なノードを伴うエッジを生み出すことに限定される。
【0056】
いくつかの実施形態では、格子メッシュネットワーク内のルートは、相互到達可能性についての署名された表明により生み出される。ルーティングテーブルでリンクが生み出されるためには、リンクの両側は合意しなければならず、両側は署名されなければならない。リンクは、確立されると、ルーティングテーブルにローカルに記憶される。害のあるノードが負わせることができる、ルーティンテーブルへの損害は、害のあるノードが実際に直接到達することができるノードに限定される。その考えは、害のあるノードは、たとえば、ネットワーク内のあらゆるノードに直接接続されたことを広告することができず、その場合すべてのパケットを捨てることができず、その結果、ネットワークを破壊するということである。ノードが危険にさらされた場合、攻撃者は、ノード上で動作しているアプリケーションを依然として危険にさらすことがあることに留意されたい。しかしながら、標準的オペレーティングシステムのベストプラクティス(アプリケーションが最小特権の原理に従うユーザとして動作していることを確実にするなど)を使用してこれらの攻撃に対して保護されることがある。
【0057】
いくつかの実施形態では、ルーティング可能なエッジを伴うルーティングテーブルは、以下を備える。
T2→T1
T2→T3
T1→T2
T1とT2の間のリンクは、T1とT2の両方が相互到達可能性についての表明に署名しているのでルーティング可能なエッジである。T3は候補エッジである。ルーティングテーブルは、従来のルーティングテーブルが有するような、いくつかのホストの順序のエントリではなく、ネットワーク内のいくつかのエッジの順序のエントリを含む。
【0058】
いくつかの実施形態では、バックフィルは、履歴データが利用可能になるように、ノード上にデータをローカルに記録する処理を指すために使用される。この履歴データは、履歴データが他のノードにローカルにアクセス可能になるように、ネットワークのあちこちに移動させられる。バックフィルは、pub/subシステムに与える影響がまったくない、または少ないことが望ましい。存続するデータは、システムで優先され、バックフィルは、すべての存続するpub/sub加入を取り扱った後に残る帯域幅を使用して動作する。別のノードに移動させられた、ノードのデータは、ノードが危険にさらされた場合、ノードに記憶される。ノードBが、ノードAへのアクセス権を与えられ、ディスク上に暗号化されたデータを記憶している場合、ノードBがAからのデータを復号するために使用する鍵は、時間制限される。鍵はメモリに記憶される(たとえば、短命ではない記憶領域に記憶されない)。これは、攻撃者がノードBを危険にさらす場合、履歴データの時間制限された窓を見ることしかできないことを確実にする。pub/subマルチキャスト配送機構を使用して、バックフィルされたデータを配送する。複数のノードがバックフィルデータに関心がある場合、データをノード間の各エッジに沿って一度伝送する必要があるだけである。存続するpub/subを通して配送されたデータはまた、中間ノードにより記憶され、データは存続するpub/subのためにすでに伝送されているので、バックフィルのためにデータを再度伝送する必要がなくなる。機器上に記憶された履歴データは、任意の所与のノードの制御を支配する攻撃者により読み出すことができない。
【0059】
いくつかの実施形態では、最終的にデータがユーザに利用できるように、ディスパッチサーバは、バックフィリングを使用して、ネットワーク接続性が悪い、またはまったくない期間の間に発生した、ノードからのデータを回復する。いくつかの実施形態では、1つまたは複数のディスパッチサーバが、ネットワーク上で動作しており、ディスパッチサーバのいくつかは、ネットワークのエッジに向けて導入され、危険にさらされる可能性があることがある。
【0060】
いくつかの実施形態では、グローバルトラッカは、ネットワーク接続性およびサービス品質のデータを使用して、すべてのルートを大域的に精緻なものにする。グローバルトラッカは、信頼できないネットワークルートに直面してトラック融合を遂行する(たとえば、2つの別個のトラックを1つに組み合わせる)ことができる。
【0061】
いくつかの実施形態では、バックフィルトラフィックは、より低い優先度のそのpub/subを伴うRPCストリームとして、ネットワークを介してルーティングされる。RPCバックフィルサービスが提供するデータは、存続するpub/subネットワークを通して流れるのと同じデータ(たとえば、グループ鍵を使用して暗号化された、署名され暗号化されたメッセージ)である。これにより、中間ノードが、存続するpub/subデータを記憶して、そのデータを使用してバックフィル・データ・リクエストの要求を満たすことが可能になる。データは、グループ鍵を使用して暗号化され、署名されるので、ノードは、作成者への安全なRPCトンネルを要求するのではなく、他のノードに代わってバックフィルサービスRPCに答えることができる。
【0062】
いくつかの実施形態では、RAは、バックフィルデータにアクセスする必要がある、ネットワーク内のホストである1組の「収集シンク」を規定する。RAは、HostList(ホストリスト)(この場合、RAが署名する)内の1組の収集シンクを各ノードに割り当てる。すべてのノードは、(各収集シンクが受領者である)PGPまたは類似の枠組みを使用して、自身に割り当てられた収集シンク公開鍵を用いて休止時に暗号化された過去のグループ鍵を記憶する。この場合、PGP-暗号化グループ鍵は、すべてのノードに対するバックフィルサービスを通して利用可能になる。
【0063】
いくつかの実施形態では、ノードがハードウェア記憶モジュールを使用するときにかなりのスループットを確実にするために、収集シンクは、RAに登録するとき、別個の収集シンク公開鍵/秘密鍵対を生成し、(ハードウェア記憶モジュールに記憶された)機器の秘密鍵を使用して休止時に暗号化された公開鍵部分をディスク上に格納する。収集シンクは、RAに登録するとき、収集シンク公開鍵を提供する。次いで、この公開鍵を収集シンクの公開鍵としてHostListに列挙することができる。始動時、収集シンクは、収集シンク秘密鍵を解読し、これをメモリに記憶させ、これを使用してグループ鍵を解読して、バックフィルされたデータにアクセスすることができる。
【0064】
いくつかの実施形態では、取り込まれた機器上に記憶された履歴データは、攻撃者が、機器に割り当てられた収集シンクをさらにまた危険にさらさなければ、攻撃者にアクセスできない。攻撃者は、RAMから現在のグループ鍵を依然として読み出すことができるが、グループ鍵は最近交替させられたので、作り出されたデータを見るのを制限される。いくつかの実施形態では、当初の機器は、バックフィルされたデータにアクセスするためにアクセス可能である必要はなく、収集シンクの秘密鍵の1つへのアクセス権を必要とするだけである。これは、中間ノードが、暗号化されたグループ鍵だけではなく暗号化されたメッセージもキャッシュすることができるからである。いくつかの実施形態では、収集シンクは、事前に規定されていなければならず、これは、収集シンクは、追加されるとき、作成者ノードが自身のPGP受領者リストに収集シンクを含んでいなかったので、データをバックフィルすることができないことを意味する。いくつかの実施形態では、RAは、収集シンクの状況を常に把握することができる必要があり、ホストに収集シンクを割り当てて、収集シンクに関する鍵対を維持する。
【0065】
前述の実施形態について、理解を明確にするためにある程度詳細に記述してきたが、本発明は、提供した詳細に限定されない。本発明を実装する代替方法が多く存在する。開示する実施形態は例示的であり、制限的ではない。本発明は以下の適用例としても実現できる。
[適用例1]
格子メッシュ用システムであって、
ホストから登録リクエストを受信するように構成されたインタフェースであって、前記登録リクエストは、鍵、および前記ホストが要求したいと望む1組の資産IDを含むインタフェースと、
プロセッサであって、
前記鍵に署名して、RA証明書を用いてRA証明書署名鍵を生成し、
前記RA証明書署名鍵を用いて資産データベースを更新し、
前記ネットワークを通して前記RA証明書署名鍵を分配し、
前記ホストに前記RA証明書署名鍵を提供する
ように構成されたプロセッサと
を備えるシステム。
[適用例2]
適用例1に記載のシステムであって、グループ鍵、または、前記資産データベース内のホスト公開鍵を使用してメッセージが符号化され、前記メッセージを符号化することは、前記グループ鍵を使用して前記メッセージを暗号化すること、または前記ホスト公開鍵を使用して前記メッセージに署名すること、を備えるシステム。
[適用例3]
適用例2に記載のシステムであって、前記メッセージは、別のノードに送信される、または符号化後に複数のノードに公開されるシステム。
[適用例4]
適用例1に記載のシステムであって、メッセージが、鍵 グループ鍵または前記資産データベース内のホスト公開鍵を使用して復号されるシステム。
[適用例5]
適用例4に記載のシステムであって、前記メッセージは、明確に1つのノードに送信された、または複数のノードに公開されたシステム。
[適用例6]
適用例1に記載のシステムであって、前記インタフェースおよび前記プロセッサはハブに属するシステム。
[適用例7]
適用例6に記載のシステムであって、前記ハブは資源局を含むシステム。
[適用例8]
適用例7に記載のシステムであって、前記資源局は認証局を含むシステム。
[適用例9]
適用例7に記載のシステムであって、前記資源局は鍵ストアを含むシステム。
[適用例10]
適用例10に記載のシステムであって、前記鍵ストアは、ハードウェア・セキュリティ・モジュールに鍵を格納するシステム。
[適用例11]
適用例7に記載のシステムであって、前記資源局は、資産データベースを含むシステム。
[適用例12]
適用例7に記載のシステムであって、前記資源局は、ホストから要求へのマップを含むシステム。
[適用例13]
適用例7に記載のシステムであって、前記資源局は、資産データベース共有者を含むシステム。
[適用例14]
適用例1に記載のシステムであって、前記ホストは、ホストサービスを含むシステム。
[適用例15]
適用例14に記載のシステムであって、前記ホストサービスは、登録要求元を含むシステム。
[適用例16]
適用例14に記載のシステムであって、前記ホストサービスは、鍵ストアを含むシステム。
[適用例17]
適用例16に記載のシステムであって、前記鍵ストアは、ハードウェア・セキュリティ・モジュールに鍵を格納するシステム。
[適用例18]
適用例14に記載のシステムであって、前記ホストサービスは、資産データベースを含むシステム。
[適用例19]
適用例14に記載のシステムであって、前記ホストサービスは、資産データベース共有者を含むシステム。
[適用例20]
格子メッシュのための方法であって、
ホストから登録リクエストを受信するステップであって、前記登録リクエストは、ホスト公開鍵、および前記ホストが要求したいと望む1組の資産IDを含むステップと、
プロセッサを使用して、前記鍵に署名して、RA証明書を用いてRA証明書署名鍵を生成するステップと、
前記RA証明書署名鍵を用いて資産データベースを更新するステップと、
ネットワークを通して前記RA証明書署名鍵を分配するステップと、
前記ホストに前記RA証明書署名鍵を提供するステップと
を備える方法。
[適用例21]
格子メッシュ用コンピュータプログラム製品であって、前記コンピュータプログラム製品は、有形のコンピュータ可読記憶媒体の中に具体化され、
ホストから登録リクエストを受信するステップであって、前記登録リクエストは、鍵、およびホストが要求したいと望む1組の資産IDを含むステップ、
前記鍵に署名して、RA証明書を用いてRA証明書署名鍵を生成するステップ、
前記RA証明書署名鍵を用いて資産データベースを更新するステップ、
前記ネットワークを通して前記RA証明書署名鍵を分配するステップ、ならびに
前記ホストに前記RA証明書署名鍵を提供するステップ
のためのコンピュータ命令を備えるコンピュータプログラム製品。
図1
図2
図3A
図3B
図3C
図3D
図4
図5A
図5B
図5C
図5D
図5E
図6
図7
図8