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

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

▶ ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-03
(54)【発明の名称】DoS攻撃に対抗する計算パズル
(51)【国際特許分類】
   H04L 9/32 20060101AFI20220224BHJP
   G06F 21/55 20130101ALI20220224BHJP
【FI】
H04L9/32 200A
H04L9/32 200E
G06F21/55
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021562440
(86)(22)【出願日】2020-01-30
(85)【翻訳文提出日】2021-07-05
(86)【国際出願番号】 JP2020004445
(87)【国際公開番号】W WO2020202780
(87)【国際公開日】2020-10-08
(31)【優先権主張番号】19305427.7
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.UNIX
3.BLUETOOTH
4.ZIGBEE
5.Mac OS
(71)【出願人】
【識別番号】503163527
【氏名又は名称】ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィ
【氏名又は名称原語表記】MITSUBISHI ELECTRIC R&D CENTRE EUROPE B.V.
【住所又は居所原語表記】Capronilaan 46, 1119 NS Schiphol Rijk, The Netherlands
(74)【代理人】
【識別番号】100110423
【弁理士】
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【弁理士】
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100122437
【弁理士】
【氏名又は名称】大宅 一宏
(74)【代理人】
【識別番号】100147566
【弁理士】
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【弁理士】
【氏名又は名称】吉田 潤一郎
(72)【発明者】
【氏名】ロレ、ロマン
(57)【要約】
コンピュータネットワークにおいてデータを送信する方法が提供され、方法は、ネットワークの第1のノードにおいて、第1のノードと異なるネットワークのパズルサーバノードからコンピューティングパズルを受信することと、パズルサーバノードと異なるネットワークの第2のノードにメッセージを送信するためのパズルの1つの解を求めることと、データを第2のノードに送信することであって、送信されるデータは、メッセージと、パズルの求められた解とを含むこと、とを含む。
【特許請求の範囲】
【請求項1】
コンピュータネットワークにおいてデータを送信する方法であって、前記コンピュータネットワークの第1のノードにおいて、
前記第1のノードと異なる前記コンピュータネットワークのパズルサーバノードからコンピューティングパズルのノンスを受信することと、
前記パズルサーバノードと異なる前記コンピュータネットワークの第2のノードにメッセージを送信するための前記コンピューティングパズルの少なくとも1つの解を、前記ノンスを使用して求めることと、
データを前記第2のノードに送信することであって、送信されるデータは、メッセージと、前記コンピューティングパズルの求められた解とを含むことと、
を含む、方法。
【請求項2】
コンピュータネットワークにおいてデータを受信する方法であって、前記コンピュータネットワークの第2のノードにおいて、
前記第2のノードと異なる前記コンピュータネットワークのパズルサーバノードからコンピューティングパズルのノンスを受信することと、
前記パズルサーバノードと異なる前記コンピュータネットワークの第1のノードからデータを受信することであって、前記受信されるデータは、メッセージと、前記コンピューティングパズルの解とを含むことと、
受信された前記コンピューティングパズルの解が有効であるか否かを受信されたノンスに基づいて判断することと、
受信された前記コンピューティングパズルの解が有効であると判断すると、受信されたメッセージに含まれる要求を処理することと、
を含む、方法。
【請求項3】
受信された前記コンピューティングパズルの解が有効でないと判断すると、受信されたメッセージを廃棄することを更に含む、請求項2に記載の方法。
【請求項4】
前記メッセージは前記コンピューティングパズルの解を含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記ノンスはノンス値を含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記ノンス値は、前記コンピューティングパズルの送信時刻に基づいている、請求項5に記載の方法。
【請求項7】
新たなコンピューティングパズルが、既定の周期に従って周期的に受信される、請求項6に記載の方法。
【請求項8】
前記ノンス値は、時刻同期メッセージに含まれるタイムスタンプ情報に基づいている、請求項6又は7に記載の方法。
【請求項9】
前記コンピュータネットワークにおいて時刻同期情報に基づいて取得される時刻値が、受信された前記ノンスとともに、前記コンピューティングパズルのパラメータとして使用される、請求項1~8のいずれか1項に記載の方法。
【請求項10】
受信された前記コンピューティングパズルの解が前記コンピュータネットワークのいずれかのノードから既に受信されたものであるか否かを判断することを更に含む、請求項2~9のいずれか1項に記載の方法。
【請求項11】
データストリーム識別子が、受信された前記ノンスとともに、前記コンピューティングパズルのパラメータとして使用される、請求項1~10のいずれか1項に記載の方法。
【請求項12】
請求項1~11のいずれか1項に記載の方法を実行するように構成されるコンピュータネットワークにおけるネットワークノードのプロセッサ。
【請求項13】
プロセッサと、前記プロセッサに作動的に結合されたメモリと、コンピュータネットワーク内で通信するネットワークインターフェースとを備える装置であって、請求項1~11のいずれか1項に記載の方法を実行するように構成される、装置。
【請求項14】
コンピュータ可読媒体内に有形に具現されるコンピュータプログラムコードを含むコンピュータプログラムであって、前記コンピュータプログラムコードは、コンピュータシステムに与えられ、実行されると、前記コンピュータシステムに、請求項1~11のいずれか1項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【請求項15】
請求項14に記載のコンピュータプログラムを圧縮又は符号化を通じて表すデータセット。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信ネットワークにおけるデータ通信の分野に関し、詳細には、産業バスネットワーク(例えば、OPC-UAネットワーク)等の産業ネットワークにおけるデータ通信の分野に関する。
【背景技術】
【0002】
産業フィールドバスネットワーク等のコンピュータネットワークにおけるデータ通信メカニズムは、ネットワークの2つのノードの間でタイムクリティカル分散制御データを含むデータを送信及び/又は受信することを可能にする。このデータ通信におけるプロトコルは、多くの場合、独自仕様であるとともに対象とする使用ケースに明確に限定して構成されている。
【0003】
産業ネットワークは、従来のクローズドなネットワークであったが、近年では、インターネット等の公衆ネットワークに接続された管理ノード又はネットワーク間通信ノード等のノードを含むように発展してきている。例えば、インターネットに接続されたPCオペレーティングシステムを動作させるパーソナルコンピュータプラットフォームとして実施される運用管理(O&M:operation and management)ノードは、これまでのクローズドなネットワークに接続され、ネットワークの運用を管理することがある。別の例として、インターネットに接続されたPCオペレーティングシステムを動作させるパーソナルコンピュータプラットフォームが、地理的に異なるサイト上のクローズドな産業ネットワークのセットアップを制御するのに使用されることがある。
【0004】
非セキュアコンピュータに接続されたノードを含む産業ネットワークは、そのため、公衆ネットワークに接続されたそれらのノードを通じてサービス妨害(DoS:Denial of Service:サービス拒否)攻撃等のコンピュータ攻撃の対象となる場合がある。DoS又は枯渇攻撃(depletion attack)とは、攻撃者が非常に多くの要求を特定のデバイス(例えば、サーバ)に送信して、そのリソースを枯渇させ、これによって、そのデバイスが正当な要求にサービス提供することをできなくする攻撃のことである。
【0005】
重要なシステムにおけるDoS攻撃は、より大きな影響を与えるおそれがある。なぜならば、それらの重要なシステムでは、正当な要求への処理遅延が非常に急速に発生する可能性があるからである。例えば、リアルタイム分散制御に使用される産業フィールドバスシステムは、産業プロセスが良好に機能することを保証するために、各受信メッセージが制限時間内に処理されなければならないというタイムクリティカルなシステムである。予期しないメッセージの受信を受信した場合、誘発される処理は、重要なメッセージの処理を遅延させ、全体の処理の機能不全又は大幅な性能悪化をもたらすおそれがある。さらに、産業コンピュータネットワークには、通常、(デバイスが展開される環境、製品寿命及びコストのために)計算リソースが限られているハードウェアに基づくデバイスを有することが非常に多いので、DoS攻撃に対して非常に敏感である可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
したがって、当技術分野における従来の技術の上述した欠点及び短所のうちの少なくとも幾つかに対処する、改善されたデータ通信方式及びこのデータ通信方式を実施するネットワークノードを提供する必要がある。
【課題を解決するための手段】
【0007】
本主題開示の目的は、改良されたデータ通信方式と、このデータ通信方式を実施する装置とを提供することである。
【0008】
本主題開示の別の目的は、従来の方式の上述した欠点及び短所を軽減する、コンピュータネットワーク、特にノード間でタイムクリティカルなデータ通信を実行するように構成されたコンピュータネットワーク、における改良されたデータ送信方式と、このデータ送信方式を実施する装置とを提供することである。
【0009】
本主題開示の更に別の目的は、従来の方式の上述した欠点及び短所を軽減する、コンピュータネットワーク、特にノード間でタイムクリティカルなデータ通信を実行するように構成されたコンピュータネットワーク、における改良されたデータ受信方式と、このデータ受信方式を実施する装置とを提供することである。
【0010】
これらの目的及び他の利点を達成するために、本主題開示の目的に従って、本明細書において具体化され、広く説明されるように、本主題開示の1つの態様では、コンピュータネットワークでデータを送信する方法が提案される。この方法は、ネットワークの第1のノードにおいて、第1のノードと異なるネットワークのパズルサーバノードからコンピューティングパズルを受信することと、パズルサーバノードと異なるネットワークの第2のノードにメッセージを送信するためのパズルの解を求めることと、データを第2のノードに送信することであって、送信されるデータは、メッセージと、パズルの求められた解とを含むこと、とを含む。
【0011】
提案される方法は、産業ネットワークにおいてそのようなネットワークをDoS攻撃等の攻撃から保護するために使用することができる好適な方式を提供する。
【0012】
本主題開示の別の態様によれば、コンピュータネットワークにおいてデータを送信する提案される方法は、ネットワークの第1のノードにおいて、第1のノードと異なるネットワークのパズルサーバノードからコンピューティングパズルのノンスを受信することと、パズルサーバノードと異なるネットワークの第2のノードにメッセージを送信するためのパズルの少なくとも1つの解を、ノンスを使用して求めることと、データを第2のノードに送信することであって、送信されるデータは、メッセージと、パズルの求められた解とを含むこと、とを含む。
【0013】
本主題開示の更に別の態様によれば、コンピュータネットワークにおいてデータを受信する方法が提案される。この方法は、ネットワークの第2のノードにおいて、第2のノードと異なるネットワークのパズルサーバノードからコンピューティングパズルを受信することと、パズルサーバノードと異なるネットワークの第1のノードからデータを受信することであって、受信されるデータは、メッセージと、パズルの解とを含むことと、受信されたパズル解が有効であるか否かを受信されたパズルに基づいて判断することと、受信されたパズル解が有効であると判断すると、受信されたメッセージに含まれる要求を処理すること、とを含む。
【0014】
本主題開示の更に別の態様によれば、コンピュータネットワークにおいてデータを受信する方法が提案される。この方法は、ネットワークの第2のノードにおいて、第2のノードと異なるネットワークのパズルサーバノードからコンピューティングパズルのノンスを受信することと、パズルサーバノードと異なるネットワークの第1のノードからデータを受信することであって、受信されるデータは、メッセージと、パズルの解とを含むことと、受信されたパズル解が有効であるか否かを受信されたノンスに基づいて判断することと、受信されたパズル解が有効であると判断すると、受信されたメッセージに含まれる要求を処理すること、とを含む。
【0015】
データを受信するための提案される方法の1つ以上の実施の形態では、提案される方法は、受信されたパズル解が有効でないと判断すると、受信されたメッセージを廃棄することを更に含むことができる。
【0016】
提案される方法(データを受信する方法及び/又はデータを送信する方法のいずれであるかを問わない)の1つ以上の実施の形態では、コンピューティングパズルは、暗号パズルとすることができる。
【0017】
提案される方法(データを受信する方法及び/又はデータを送信する方法のいずれであるかを問わない)の1つ以上の実施の形態では、ノンスはノンス値を含むことができる。提案される方法(データを受信する方法及び/又はデータを送信する方法のいずれであるかを問わない)の1つ以上の実施の形態では、ノンス値は、パズルの送信時刻に基づくことができる。提案される方法(データを受信する方法及び/又はデータを送信する方法のいずれであるかを問わない)の1つ以上の実施の形態では、ノンス値は、時刻同期メッセージに含まれるタイムスタンプ情報に基づいている。
【0018】
提案される方法(データを受信する方法及び/又はデータを送信する方法のいずれであるかを問わない)の1つ以上の実施の形態では、新たなパズルを既定の周期に従って周期的に受信することができる。
【0019】
提案される方法(データを受信する方法及び/又はデータを送信する方法のいずれであるかを問わない)の1つ以上の実施の形態では、コンピュータネットワークにおいて時刻同期情報に基づいて取得される時刻値を、受信されたノンスとともに、パズルのパラメータとして使用することができる。
【0020】
データを受信する提案される方法の1つ以上の実施の形態では、方法は、受信されたパズル解がコンピュータネットワークのいずれかのノードから既に受信されたものであるか否かを判断することを更に含むことができる。
【0021】
提案される方法(データを受信する方法及び/又はデータを送信する方法のいずれであるかを問わない)の1つ以上の実施の形態では、データストリーム識別子を、受信されたノンスとともに、パズルのパラメータとして使用することができる。
【0022】
本主題開示の更に別の態様では、本主題開示において提案される方法を実行するように構成されるコンピュータネットワークにおけるネットワークノードのプロセッサが提案される。
【0023】
本主題開示の更に別の態様では、プロセッサと、プロセッサに作動的に結合されたメモリと、コンピュータネットワーク内で通信するネットワークインターフェースとを備える装置が提案される。装置は、本主題開示において提案される方法を実行するように構成される。
【0024】
本主題開示の更に別の態様では、実行されると、メモリに作動的に可能に結合されたプロセッサを備える装置に、本主題開示において提案される方法を実行させる実行可能命令で符号化される非一時的コンピュータ可読媒体が提案される。
【0025】
本主題開示の更に別の態様では、コンピュータ可読媒体内に有形に具現されるコンピュータプログラムコードを含むコンピュータプログラム製品であって、コンピュータプログラムコードは、コンピュータシステムに与えられ、実行されると、コンピュータシステムに、本主題開示において提案される方法を実行させる命令を含む、コンピュータプログラム製品が提案される。本主題開示の別の態様では、本明細書において提案されるコンピュータプログラムを、例えば、圧縮又は符号化を通じて表すデータセットが提案される。
【0026】
本発明は、限定はしないが、プロセス、装置、システム、デバイスとして、また、現時点で既知であるアプリケーション及び後に開発されるアプリケーションのための方法として含む、数多くの方法において実施し、利用できることは理解されたい。本明細書において開示されるシステムのこれらの特有の特徴、及び他の特有の特徴は、以下の説明及び添付の図面から、より容易に明らかになるであろう。
【0027】
添付の明細書とともに以下の図面を参照することによって、本主題開示がより深く理解され、その数多くの目的及び利点が当業者にとってより明らかになるであろう。
【図面の簡単な説明】
【0028】
図1a】1つ以上の実施形態による、使用することができる一例示的なハッシュベースのパズル方式を示す図である。
図1b】1つ以上の実施形態による、使用することができる一例示的なハッシュベースのパズル方式を示す図である。
図1c】クライアントとサーバとの間のクライアントサーバパズルプロトコルを示す図である。
図1d】デイジーチェーントポロジーネットワークにおいて破損したノードによって生成されるネットワーク輻輳を示す図である。
図2a】1つ以上の実施形態による、提案される方法を適用することができる一例示的なコンピュータネットワークを示す図である。
図2b】1つ以上の実施形態による、提案される方法を適用することができる一例示的なコンピュータネットワークを示す図である。
図3a】1つ以上の実施形態による一例示的なデータ送信方式を示す図である。
図3b】1つ以上の実施形態による一例示的なデータ受信方式を示す図である。
図4】1つ以上の実施形態による、パズル操作に使用することができる例示的なサイクルを示す図である。
図5a】1つ以上の実施形態による一例示的なデータ通信方式を示す図である。
図5b】1つ以上の実施形態による一例示的なデータ通信方式を示す図である。
図6】1つ以上の実施形態による一例示的なネットワークノードを示す図である。
【発明を実施するための形態】
【0029】
簡潔及び明確に例示するために、図面は構成の一般的な方法を示し、既知の特徴及び技法の説明及び細部は、本発明の説明される実施形態の論述を無用に分かりにくくするのを避けるために省略される場合がある。さらに、図面内の要素は必ずしも縮尺通りに描かれていない。例えば、図面内の要素のうちの幾つかの要素の寸法は、本発明の実施形態を理解しやすくするのを助けるために、他の要素に対して誇張される場合がある。現実世界の条件下であれば極めて対称性が低く、秩序正しくない可能性がある、直線、鋭い角度及び/又は平行な平面等を有する構造が示されるときのように、或る特定の図は、理解するのを助けるために理想的に示される場合がある。異なる図における同じ参照符号は同じ要素を表し、一方、類似の参照符号は、類似の要素を表す場合があるが、必ずしもそうとは限らない。
【0030】
さらに、本明細書における教示は、多種多様の形態において具現できること、及び本明細書において開示される任意の具体的な構造及び/又は機能は典型にすぎないことは明らかにすべきである。詳細には、本明細書において開示される態様を、任意の他の態様から独立して実施できること、及び幾つかの態様を種々の方法で組み合わせることができることは当業者には理解されよう。
【0031】
本開示は、1つ以上の例示的な実施形態による、方法、システム及びコンピュータプログラムの機能、エンジン、ブロック図及びフローチャートを参照しながら以下に説明される。ブロック図及びフローチャートの説明される各機能、エンジン、ブロックは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード又は任意の適切なその組み合わせにおいて実現することができる。ソフトウェアにおいて実施される場合には、ブロック図及び/又はフローチャートの機能、エンジン、ブロックは、コンピュータプログラム命令又はソフトウェアコードによって実施することができ、コンピュータプログラム命令又はソフトウェアコードは、コンピュータ可読媒体に記憶されるか、又はコンピュータ可読媒体を介して送信されるか、又は汎用コンピュータ、専用コンピュータ若しくは機械を作り出す他のプログラマブルデータ処理装置上にロードすることができ、それにより、コンピュータ又は他のプログラマブルデータ処理装置上で実行されるコンピュータプログラム命令又はソフトウェアコードが、本明細書において説明される機能を実施するための手段を生み出す。
【0032】
コンピュータ可読媒体の実施形態は、限定はしないが、1つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体及び通信媒体の両方を含む。本明細書において用いられるとき、「コンピュータ記憶媒体」は、コンピュータ又はプロセッサによってアクセスすることができる任意の物理的な媒体とすることができる。さらに、「メモリ」及び「コンピュータ記憶媒体」という用語は、限定はしないが、ハードドライブ、フラッシュドライブ若しくは他のフラッシュメモリデバイス(例えば、メモリキー、メモリスティック、キードライブ、SSDドライブ)、CD-ROM若しくは他の光記憶装置、DVD、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、メモリチップ、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、スマートカード、若しくはコンピュータプロセッサによって読み出すことができる命令若しくはデータ構造の形でプログラムコードを搬送又は記憶するために使用することができる任意の他の適切な媒体、又はその組み合わせ等の、任意のタイプのデータ記憶デバイスを含む。また、種々の形のコンピュータ可読媒体は、ルーター、ゲートウェイ、サーバ又は他の伝送デバイスを含むコンピュータに、有線(同軸ケーブル、ファイバ、ツイストペア線、DSLケーブル)で、又はワイヤレス(赤外線、無線、セルラ、マイクロ波)で、命令を送信又は搬送することができる。命令は、限定はしないが、アセンブリ、C、C++、Python、ビジュアルベーシック、SQL、PHP及びJAVA(登録商標)を含む、任意のコンピュータプログラミング言語からのコードを含むことができる。
【0033】
具体的に他に明示されない限り、以下の説明を通して、処理、コンピューティング、計算、決定等の用語を利用する論述は、コンピューティングシステムのレジスタ又はメモリ内の電子的な量等の物理的な量として表されるデータを操作するか、又は、このデータを、コンピューティングシステムのメモリ、レジスタ若しくは他のそのような情報記憶装置、伝送デバイス若しくは表示デバイス内の物理的な量として同様に表される他のデータに変換する、コンピュータ、又はコンピューティングシステム、又は類似の電子コンピューティングデバイスの動作又はプロセスを指していることは理解されたい。
【0034】
本明細書において用いられるとき、「備える」、「含む」、「有する」及び任意のその変形のような用語は、非排他的包含を含むことを意図しており、それにより、要素のリストを含むプロセス、方法、物品又は装置は、必ずしもそれらの要素には限定されず、そのようなプロセス、方法、物品又は装置に明記されないか、又は固有でない他の要素を含む場合がある。
【0035】
さらに、「例示的な」という言葉は、本明細書において、「一例、事例又は例示としての役割を果たすこと」を意味するように使用される。「例示的」として本明細書において説明される任意の実施形態又は設計は、必ずしも、他の実施形態又は設計より好ましいか、又は有利であると解釈されるべきではない。
【0036】
本主題開示において、「パズル」及び「コンピューティングパズル」という用語はそれらの派生語とともに、1つ以上のパラメータ(例えば、ノンス)を用いて定式化することができる問題であって、解くために、例えば、1つ以上のアルゴリズムをコンピュータ上で動作させることによって、プロセッサを備える機械又は装置によって実行される計算を必要とする問題、に関係したデータを示すために区別なく使用することができる。
【0037】
「ノンス」という用語は、本主題開示において、パズルの解を求めるために必要なコンピューティングパズルのパラメータとして使用されるデータを指定するのに使用される。好ましくは、ノンスは、パズルの解を求めるのに使用することができるプロセッサを備える任意の装置によって予測不能として選ばれる。例えば、提案される方法の一実施形態において使用される各ノンスは、ランダムな方法で少なくともその一部について、生成又は取得される。
【0038】
本主題開示において、「暗号パズル」、「プルーフオブワーク(proof of work)パズル」、「クライアントパズル」、「暗号文」という用語は、それらの派生語とともに、解を求めるのに暗号関数(例えば、暗号化関数、ハッシュ関数、圧縮関数)の使用が必要となる、パズルを示すために区別なく使用することができる。
【0039】
本主題開示において、「結合される」及び「接続される」という用語は、その派生語とともに、2つ以上の要素が互いに直接、物理的若しくは電気的に接触しているか、又は2つ以上の要素が互いに直接接触していないが、それでも依然として互いに協働するか、若しくは相互作用することを示すために、区別なく使用することができる。
【0040】
本主題開示において、「ペイロード」、「ペイロードデータ」、「メッセージ」、「パケット」、及び「データパケット」という用語は、区別なく使用することができ、ノード間若しくは局間又はネットワークにわたって転送又は送信することができるデータブロック、プロトコルデータユニット又は任意の単位のデータを含むことができる。パケットはビットのグループを含むことができ、グループは、例えば、1つ以上のアドレスフィールド、制御フィールド及びデータを含むことができる。データブロックは、任意の単位のデータ又は情報ビットとすることができる。
【0041】
本主題開示の場合に、「サーバ」という用語は、処理、データベース及び通信の設備を提供するサービス点を指すために、本明細書において使用される。一例であって、限定はしないが、「サーバ」という用語は、関連する通信、データ記憶及びデータベースの設備を備える、単一の物理的なプロセッサを指すことができるか、又はプロセッサ、並びに関連するネットワーク及び記憶デバイスと、サーバによって提供されるサービスをサポートするオペレーティングソフトウェア、並びに1つ以上のデータベースシステム及びアプリケーションソフトウェアとのネットワーク化された、又はクラスター化された複合体を指すことができる。サーバは、構成又は能力に関して大きく異なる場合があるが、一般的に、サーバは1つ以上の中央処理装置及びメモリを含むことができる。また、サーバは、1つ以上の大容量記憶デバイス、1つ以上の電源、1つ以上の有線若しくはワイヤレスネットワークインターフェース、1つ以上の入力/出力インターフェース、又はWindows Server、Mac OS X、Unix、Linux(登録商標)、FreeBSD等の1つ以上のオペレーティングシステムを含むこともできる。
【0042】
本主題開示の場合に、「コンピュータネットワーク」は、例えば、ワイヤレスネットワークを介して結合されるワイヤレスデバイス間を含む、デバイス間でデータ通信を行うことができるように、デバイス(本明細書において、「ノード」とも呼ばれる)を結合することができるネットワークを指すものと理解されたい。また、ネットワークは、ネットワーク接続型記憶装置(NAS)、ストレージエリアネットワーク(SAN)、又は例えば、他の形態のコンピュータ若しくは機械可読媒体等の大容量記憶装置を含む場合もあり、サーバを含むか、又はサーバに接続される場合がある。ネットワークは、インターネット、1つ以上のローカルエリアネットワーク(LAN)、1つ以上のワイドエリアネットワーク(WAN)、有線タイプ接続、ワイヤレスタイプ接続、事業者電話線等のセルラ、光ファイバ、同期光ネットワーク、同期デジタルハイアラーキリンク、電力線通信リンク(例えば、IEEE61334、IEEE P1901.2)、イーサネット、Bluetooth、Bluetooth Low Energy(BLE)若しくはBluetooth Smart、WiFi若しくはIEEE802.11xプロトコルに基づく任意の接続、ZigBee若しくはIEEE802.15.4プロトコルに基づく任意の接続、Z-Wave、6LowPAN(IPv6低電力ワイヤレスパーソナルエリアネットワーク)、Thread、Sigfox、Neul、LoRa、任意のNFC接続、2G(GSM/GPRS/EDGEを含む)/3G(UMTS/HSPAを含む)/4G(LTE及びLTEアドバンストを含む)/5Gセルラ、又はその任意の組み合わせを含むことができる。ネットワークにおいて使用される異なるアーキテクチャ又はプロトコルに対する相互運用能力を提供するために、種々のタイプのデバイス、例えば、ゲートウェイが利用可能である場合がある。本主題開示によれば、コンピュータネットワークにおいて、任意の数のノード、デバイス、装置、リンク、相互接続等が使用される場合がある。
【0043】
通信リンク又はチャネルは、例えば、アナログ電話回線、完全な、又は部分的なデジタル回線、衛星リンクを含むワイヤレスリンク、又は当業者に既知である場合がある等の他の通信リンク若しくはチャネルを含むことができる。
【0044】
ネットワークのコンピューティングデバイス、例えば、センサノード又はアクチュエータノードは、有線若しくはワイヤレスネットワークを介して等、信号を送信若しくは受信できる場合があり、及び/又はデータを処理及び/又は記憶できる場合がある。
【0045】
本主題開示の実施形態は、様々な適用例において使用される場合があり、限定はしないが、特に、潜在的に多数のセンサが異なる場所(例えば、工場又は原子力発電所施設)における物理的条件又は環境条件を協調してモニタリングする産業バス等の産業ネットワーク又はセンサネットワークにおいて使用される場合があることは理解されたい。本主題開示はこの点において限定されないが、本明細書において開示される方法は、例えば、任意のLLNネットワーク、任意のデイジーチェーントポロジーネットワーク、任意の車両バスネットワーク、任意のマルチホップシステム、例えば、メッシュネットワーク、任意のモノのインターネット(IoT)ネットワーク若しくはシステム、任意のマシンツーマシン(M2M)ネットワーク若しくはシステム、例えば、センサネットワーク等のスマートオブジェクトネットワーク、又はその任意の組み合わせ等の、種々のトポロジーを有する数多くのタイプのコンピュータネットワークにおいて使用される場合があり、例えば、根ノード、ゲートウェイノード、センサノード、アクチュエータノード等のコンピュータネットワークの任意のネットワークノード内、又はコンピュータネットワークに接続されるか、又はコンピュータネットワーク内に含まれる任意のサーバ内等の、数多くの装置内で使用される場合がある。
【0046】
提案される方法は、有利には、重要なタイミング制約及びセキュリティ制約を有する一方向データフローを移送する通信システムにおいて展開することができる。特に、メッセージ暗号化及び認証サポートを有するイーサネットに基づく新たに開発された産業制御ネットワーク(OPC-UA PubSub等)は、幾つかの潜在的なサービス妨害(Denial-of-Service)攻撃から保護を受ける必要がある。暗号化メカニズム及びメッセージ認証メカニズムが多数の脅威に対処しても、それらのメカニズムは、実施態様(ハードウェア及びソフトウェア)のためにDoS攻撃に依然として脆弱であり得る。実際、認証メカニズムは、コンピューティングリソースを必要とし、消耗攻撃を受け得る。本主題開示は、有利には、少ない計算リソースを用いてハードウェアプラットフォーム上でのDoS攻撃の緩和を可能にし、したがって、これによって、ネットワークセキュリティを維持しながらネットワークにおけるコスト削減が可能になる。
【0047】
クライアント暗号法パズルは、サービス妨害攻撃に対する対抗策としてコンピュータネットワークに導入されてきた。クライアント/サーバモデルでは、クライアントパズルは、クライアントからの要求の受信の際にサーバによってクライアントに提起される計算可能な暗号問題である。サーバがクライアントの要求を処理する条件として、クライアントは、この問題を解いて、解をサーバに提供しなければならない。サーバ側では、クライアントによって提供された解が最初に迅速に検証され、解が正しいか否かが確認され、受信された解が正しい場合にのみ、クライアントから以前に受信された要求が処理される。クライアント暗号法パズル方式の良好な効率性を確保するために、パズルは、通常、パズル問題を解くのに必要とされるリソース(計算リソース及びメモリリソース)が解の正しさを検証するのに必要とされるリソースよりもはるかに多くなるように設計される。したがって、正当なクライアントは、要求をサーバに提出するのに少量の追加計算しか経験しないのに対して、攻撃者は、十分な要求を生成するために多くの計算リソースにアクセスして、サーバの性能に大きな影響を与えるDoS攻撃を作成しなければならない。提起される問題は、通常、サーバのシークレット値又はノンス値、時刻、及び追加のクライアント固有情報を使用して定式化される。
【0048】
好ましくは、パズル解は、クライアント又は盗聴デバイスによるリプレイが可能でないように一意でなければならない。
【0049】
加えて、パズルは、クライアントが防御サーバから受信されるパズルを予測することができないように設計することができることが好ましい。このように、クライアントは、パズル解を前もって計算することができない。
【0050】
パズルの複雑度は、サーバのストレスに応じて、したがって、攻撃の強度に応じて調整することもできる。
【0051】
種々のクラス(タイプ)のパズルが、DoS攻撃等の攻撃に対処するために提案されている。その中で、CPUバウンドパズルのクラスは、クライアントパズルの最も大きなクラスである。
【0052】
例えば、いわゆる「ハッシュベースのパズル」の解を計算するには、通常、暗号ハッシュ関数を伴う計算の実行が必要とされる。
【0053】
ハッシュベースのパズル方式の1つの例によれば、ハッシュを逆変換したものの一部分をクライアントに提供することができ、クライアントがブルートフォースによって(すなわち、ランダムな試行を使用して)パズルを解くことができるように、すなわち、逆ハッシュの残りの部分を見つけることができるようにする。図1aに示すように、パズルPは、長さnビットのビットストリングXの一部分(n-kビット:X<k+1...n>)に、ビットストリングYとともに存在することができる。ここで、Yは、ビットストリングXのハッシュ値である。パズルPの解は、Xのハッシュ値がYに等しくなるように一意であると仮定することができるXの欠落しているkビット:X<1...k>に存在する。
【0054】
図1bに示すハッシュベースのパズル方式の別の例では、パズルPは、長さnビットのビットストリングXの一部分(n-kビット:X<k+1...n>)に存在することができ、ビットの数lは、ビットストリングYの先頭では0に等しい。ここで、YはビットストリングXのハッシュ値である。パズルPの解は、ハッシュ値Yの最下位ビットが0に等しいという条件に従いながらブルートフォースによって求めることができるXの欠落部分に存在する。
【0055】
図1cは、クライアント10とサーバ11との間の通常のクライアントサーバパズルプロトコルを示している。
【0056】
クライアントサーバクライアントパズルプロトコル方式では、クライアントは、パズルを受信するために最初にサーバと接触して要求を行い、この要求が処理される前にパズルを解かなければならない。図1cに示すように、クライアント10は、最初に、要求をサーバ11に送信する(12)。サーバ11は、要求を受信すると、パズルPを作成し(13)、パズルPをクライアント10に送信する(14)。クライアント10は、パズルPを受信すると、パズルPの解Sを計算し(15)、そのような解Sをサーバ11に送信する(16)。サーバ11は、解Sを受信すると、この解を確認し(17)、解Sが正しい場合には、サーバ11は、クライアント10から最初に受信された要求を実行する(18)。
【0057】
図1cを見てわかるように、クライアントサーバクライアントパズルプロトコル方式は、クライアントとサーバとの間の幾つかのパズルに関係したメッセージの交換を伴う。これによって、クライアント要求を実行するネットワークレイテンシーが増加する。加えて、クライアントサーバクライアントパズルプロトコル方式は、ブロードキャスト通信方式又はマルチキャスト通信方式等の幾つかの一方向通信方式には適用することができない。
【0058】
幾つかのコンピュータネットワーク(例えば、産業において使用される)は、それらのアーキテクチャ及びトポロジーに応じて、ネットワークの或る部分又はネットワークにおける幾つかの通信にブロードキャスト通信及び/又はマルチキャスト通信を使用する場合がある。
【0059】
加えて、フィールドバスシステム等の産業コンピュータネットワークは、タイムクリティカルなデータ通信に使用されるように構成される場合がある。例えば、産業バス又は自動車バスは、異なる計算能力の異種のデバイス(例えば、計算能力が非常に低いデバイスから計算能力が非常に高いデバイス)を混合する場合がある。したがって、計算能力が低いデバイスであっても、パケットを複製してパケットの内部で少数のバイトを変更するだけで、ネットワークインターフェース上で高速にパケットを送信する能力を有することができる。これは、任意のデバイスを破損させる攻撃者に、バスに接続された他の任意のデバイスに対するDoS攻撃をもたらす可能性を残す。
【0060】
さらに、幾つかの通信システムは、例えば、認証目的で送信前に送信ノードによって各メッセージに挿入されるコード(メッセージ認証コード(MAC:Message Authentication Code)と呼ばれる場合がある)を介して、暗号化及び認証(例えば、署名)されたデータフローを使用する。MACコードを運ぶメッセージを受信するネットワークのノードは、そのようなコードを使用して、メッセージが悪意のあるノード又は破損したノードによって送信されたものでないことを検証することができる。しかしながら、メッセージ認証コードの確認は、特に計算能力が低いノードにとっては、かなりのリソースを消費する動作である場合があり、これは、認証されたデータフローの使用を制限する。加えて、MACコードのそのような確認は、DoS攻撃を受ける場合がある。実際、受信機では、認証プロセスは、通常、署名されたデータ全体の処理を必要とし得る。したがって、攻撃者は、署名鍵にアクセスしていない場合であっても、誤った署名(すなわち、正しくないMACコード)を有する多数の破損したメッセージを生成することができる。各受信メッセージを検証するために、受信機は、依然として、受信メッセージのMACを確認するために各受信メッセージのMACを計算しなければならない。署名アルゴリズムの性能がデータリンク速度よりも遅い場合には、攻撃者は、受信機におけるリソースを枯渇させ、受信機が正当な要求、特にタイムクリティカルな正当な要求を実行することを妨げることができる可能性が高い。
【0061】
クライアントへのパズル提出の方式も、一般にクライアントとサーバとの間で特定のメッセージ交換を必要とするので、幾つかの問題を提起する。したがって、パズルを解いて検証するのに必要とされる計算リソースに加えて、クライアントパズルプロトコル方式は、或るネットワーク帯域幅を消費する。
【0062】
その上、ネットワークのトポロジー及びアーキテクチャに応じて、DoS攻撃を実行する攻撃者は、ネットワークの幾つかの部分にネットワーク輻輳を誘発することもできるし、中間ネットワークノードの正常な動作を乱すこともできる。例えば、産業フィールドネットワークバスは、図1dに示すように、デイジーチェーン型トポロジーに展開される場合がある。このトポロジーでは、各ネットワークノードは、隣のネットワークノードと直列に接続される。1つのノード(図1dにおけるノード21)が破損した場合に、そのノードは、チェーン内のその後に位置する任意のデバイス(図1dにおけるノード22及び23)をフラッドさせる場合がある。そのような状況の場合に、レート制限等のネットワークメトリックを使用したネットワークストリームポリシングに基づく防御ストラテジーは、効率性を欠く場合がある。なぜならば、そのような方法は、有効なメッセージとフラッディングメッセージとを区別することができないからである。したがって、そのような攻撃の脅威に対処するには、破損したノード21と攻撃を受けたノード23との間のパスでないデータパス内で破損したノード21に最も近い健全なネットワークノード20においてフラッディングメッセージを識別してフィルタリングする必要がある。
【0063】
図2a及び図2bは、1つ以上の実施形態による、提案される方法を適用することができる例示的なコンピュータネットワークを示している。
【0064】
図2aは、イーサネットリンクを介して複数のノード31~36及び外部でホストされるクラウド37に接続されたサーバ30を有するスタートポロジーネットワーク38を示している。ノード31は、製造実行システム機能及び/又はエンタープライズリソースプランニング(ERP:Enterprise Resource Planning)機能を実行することができ、ノード32は、製品ライン機能のモニタリング、制御及び監視(監視制御データ収集(Supervisory Control And Data Acquisition)、SCADA)を実行することができ、ノード33は、1つ以上のプログラマブルロジックコントローラ(PLC:Programmable Logic Controller)を通じて機械機能及びシステム機能の調整を実行することができ、1つ又は幾つかのノード34~36は、システムのセンサ及び/又はアクチュエータとのインターフェース機能を実行することができる。
【0065】
図2aに示すネットワーク38は、産業分野におけるデータ通信用に設計されたOPC-UAプロトコルを使用することができ、そのため、サーバをOPC-UAサーバとして構成することができ、他のノードをOPC-UAクライアントとして構成することができる。さらに、1つ以上のノードをOPC-UAパブリッシャー及び/又はOPC-UAサブスクライバーとして構成することができる。
【0066】
図2bは、一方向データフローを有するデイジーチェーントポロジーネットワークを示している。メッセージは、各ノード41~45から、図に矢印によって示すデータ通信パスの下流にある別のノードに送信することができる。
【0067】
図3aは、本主題開示の1つ以上の実施形態による一例示的なデータ送信方式を示している。
【0068】
図3aに示すように、提案されるデータ送信方式を実施するように構成される第1のネットワークノードは、パズルサーバノードからコンピューティングパズルを受信することができる(50)。
【0069】
1つ以上の実施形態では、コンピューティングパズルは、ノンスを用いて定式化することができ、そのため、第1のネットワークノードは、ノンスを受信することができ、パズルのノンスの受信を通じてパズルを受信したものとみなすように構成することができる。
【0070】
1つ以上の実施形態では、コンピューティングパズルは、暗号パズルとすることができ、その場合に、コンピューティングパズルは、ノンス値、すなわち、数値又はビットストリングを表すノンスデータを用いて定式化することができる。ノンス値は、以下に与えられた例において説明するように、通常、その一部又は全体をランダムに取り出すことができ、そのため、少なくともランダムなその一部分を含むことができる。
【0071】
1つ以上の実施形態では、コンピューティングパズルは、異なるタイプのものとすることができる。例えば、コンピューティングパズルは、プロセッサを備える機械又は装置によって解を求めることが、例えば、人工知能エンジンを使用したノンスデータ内の1つ以上のパターンの認識を伴うことがある問題に対応することができる。そのような場合に、パズルの定式化に使用されるノンスデータは、その一部又は全てが一組の画像内でランダムに選択された画像に対応することができ、コンピューティングパズルの解を求めることは、ノンスデータにおける既定のパターン(例えば、交通信号機、自動車、動物等)の認識を必要とし得る。
【0072】
1つ以上の実施形態では、第1のノードは、パズルサーバノードと異なるネットワークの別のノード(第2のノード)にメッセージを送信するのに使用されるパズルの少なくとも1つの解を、受信されたパズルに基づいて求めることができる(51)。幾つかの実施形態では、第1のノードは、パズルの解をパズルの受信されたノンスに基づいて求めることができる。
【0073】
パズルの解が求められると、第1のノードは、データを第2のノードに送信することができる(52)。このデータは、第2のノードに送信されるメッセージと、パズルの求められた解とを含む。
【0074】
幾つかの実施形態では、送信データは、送信メッセージとパズルの送信される解との間の関連付けの表示を含むことができ、この表示は、実施形態に応じて、暗黙的なものとすることもできるし、明示的なものとすることもできる。幾つかの実施形態では、第1のノードは、有利には、そのような表示を使用して幾つかのメッセージを第2のノードに送信することができる。各メッセージは、パズルの(好ましくは単一の)解に関連付けられている。例えば、幾つかの実施形態では、送信メッセージは、パズルの求められた解を含むことができる。そのような場合に、上記表示は、対応するメッセージにパズルの解を含めることを通じて暗黙的に伝達される。暗黙的な表示を使用することによって、有利には、パズル解が関連付けられたメッセージを示すデータを送信することを目的とした帯域幅の消費が回避される。
【0075】
パズル解とメッセージとの間の関連付けの表示が、例えば識別子を使用した明示的なものである実施形態では、表示を搬送するデータは、例えば、送信ノード(メッセージ、解及び表示を送信するノード)及び受信ノード(メッセージ、解、及び表示を受信するノード)にのみ知られている予測不能値を使用することによって(例えば、部分的又は全体的にランダムな値を使用することによって)、潜在的な攻撃から保護することができる。
【0076】
実施形態に応じて、パズルは、提案される方式を使用するネットワークのノードの計算能力に合わせて寸法決めされた計算パズルとすることができる。
【0077】
図3bは、本主題開示の1つ以上の実施形態による一例示的なデータ受信方式を示している。
【0078】
図3bに示すように、提案されるデータ送信方式を実施するように構成される第2のネットワークノードは、この第2のノードと異なるパズルサーバノードからコンピューティングパズルを受信することができる(53)。
【0079】
加えて、第2のネットワークノードは、メッセージ及びパズルの解を含むデータを第1のノード(同様にパズルサーバノードと異なる)から受信することができる(54)。
【0080】
第2のノードは、その後、受信されたパズルに基づいて、受信された解を確認することができ、すなわち、受信された解が有効であるか否かを判断することができる(55)。
【0081】
図3aに関して上述したように、1つ以上の実施形態では、コンピューティングパズルは、ノンスを用いて定式化することができ、そのため、第2のネットワークノードは、ノンスを受信することができ、パズルのノンスの受信を通じて、パズルの少なくとも1つの受信された解を確認するのに使用されるデータを受信したものとみなすように構成することができる。
【0082】
図3aに関して同様に上述したように、実施形態に応じて、コンピューティングパズルは、暗号パズルとすることもできるし、異なるタイプのパズルとすることもできる。
【0083】
受信された解が有効であると判断すると、第2のノードは、受信メッセージを処理することができる(56)。
【0084】
幾つかの実施形態では、ハッシュベースのパズル等の暗号法パズルを使用することができる。
【0085】
幾つかの実施形態では、受信データは、受信メッセージとパズルの受信される解との間の関連付けの表示を含むことができ、この表示は、実施形態に応じて、暗黙的なものとすることもできるし、明示的なものとすることもできる。
【0086】
例えば、幾つかの実施形態では、受信メッセージは、パズルの解を含むことができる。そのような場合に、上記表示は、対応するメッセージにパズルの解を含めることを通じて暗黙的に伝達される。
【0087】
したがって、提案されるデータ送信方式は、パズルがノードによって受信され、このパズルが、ノードがメッセージを別のノードに送信したい場合に使用されることを規定する。ノードは、パズルサーバノードから受信されたパズルを最初に解くことなくメッセージをネットワークの別のノードに送信せず、パズルの求められた解とともにメッセージをこの別のノードに送信するように構成することができる。
【0088】
提案されるデータ受信方式は、同様にパズルがノードによって受信され、このパズルが、ノードがメッセージを別のノードから受信する場合に使用されることを規定する。ノードは、送信メッセージに関して同じ送信ノードによって受信された解が有効であることを最初に確認することなしに、ネットワークの別のノードからの受信メッセージの受信も処理もしないように構成することができる。結果として、解の計算が解を確認することよりも計算的にはるかに高価であるパズルを使用することによって、有利には、送信ノードと受信ノードとの間のネットワーク帯域幅の使用及び双方のノードにおけるリソースの使用が制限されるとともに、コンピュータネットワークにおけるDoS攻撃のリスクが緩和される。受信メッセージに関連付けられたパズル解を確認するために必要とされ得る限られた量のコンピューティングリソースは、有利には、非常に限られた計算リソースを用いてメッセージを受信することしかできないノードを有するネットワークにおいて利用することができ、それでも、そのようなノードを攻撃から保護する効率的な解決策を提供することができる。
【0089】
幾つかの実施形態では、受信ノードは、受信メッセージが、受信されたパズルの解とともに受信されていない場合には、そのようなメッセージを廃棄するように構成することができる。幾つかの実施形態では、受信ノードは、受信メッセージが、受信されたパズルの無効な解とともに受信されている場合には、そのようなメッセージを廃棄するように構成することができる。
【0090】
送信ノードにおけるメッセージの送信、及び受信ノードにおけるメッセージの受信はともに、その場合に、例えば、ネットワークのパズルサーバノードから送信ノード及び受信ノードの双方によって受信されるパズルに基づいて条件付けすることができる。
【0091】
パズルは、メッセージが送信されるノードと異なるサーバノードから受信されるので、提案される方式は、有利には、提案される方式によって生成されるシグナリングオーバーヘッド及びネットワークレイテンシーを制限する。加えて、提案される方式は、有利には、ブロードキャスト通信方式又はマルチキャスト通信方式等の一方向通信方式に適用可能である。
【0092】
幾つかの実施形態によれば、本主題開示は、有利には、データ暗号化メカニズム及び認証メカニズムを用いてネットワークセキュリティを既に実施している重要な通信システムにおいて使用することができる、DoS攻撃を緩和する暗号方式を提案する。提案される方式は、有利には、例えば、いわゆる「パブリッシュ/サブスクライブ」モデルに基づく新たな産業フィールドバスプロトコルに使用されるマルチキャスト等の一方向データフロー用を含む多様なネットワークアーキテクチャ及びプロトコルに適用することができる。実際、この種のネットワークでは、利用可能な計算リソースの観点からデバイスが異種であるので、受信デバイスが、誤った署名を有する多量の一組の署名付きメッセージを送信することによって、攻撃者によって容易にフラッドさせられる場合がある。
【0093】
1つ以上の実施形態では、提案される方法は、別のノードへのメッセージの送信を所望するノードによる暗号パズルの解答を使用し、メッセージを送信する前に時間(及び計算リソース)を費やすように送信ノードに強制する。従来の方法と異なり、このことがメッセージ送達レイテンシー(重要なシステムにおいて重大である)に与える影響は非常に限られており、シグナリングオーバーヘッドはほとんど発生しない。また、これは、有利には、幾つかの実施形態において、任意の中間ノードにおける悪意のあるフラッディングトラフィックを識別しフィルタリングすることを可能にし、これによって、攻撃によって生じる可能性があるネットワーク輻輳の発生が防止される。さらに、提案される方式は、起こり得るリプレイ、事前計算又はなりすまし攻撃に対してレジリエント(resilient)であるように設計され、軽量のマイクロコントローラベースのデバイスにわたって容易に展開することもできる。
【0094】
提案される方式は、更に有利には、同期されたノード間のデジタル署名付き一方向データフローをサポートする幾つかの通信システムに適合した新たな暗号パズルプロトコル方式の現在の必要性にも対処する。
【0095】
産業通信バス、例えば産業オートメーションアプリケーション用に設計されている、例えば新たに開発された通信プロトコルOPC統一アーキテクチャ(OPC財団によって指定されている。頭字語「OPC」は「Open Platform Communication(オープンプラットフォーム通信)」を表す)は、クライアント/サーバベースのプロトコル(TCP/IPプロトコルスタック(インターネットエンジニアリングタスクフォース(IETF:Internet Engineering Task Force)によって指定されている)に依拠することができる)を含み、リアルタイム通信用のパブリッシュサブスクライブ(PubSub:publish-subscribe)方式を更に含む。これらのそれぞれは、イーサネットに依拠することができる。セキュリティ要件のために、OPC-UA PubSubプロトコルは、秘密署名鍵を使用してメッセージ内に収容され、メッセージの最後に追加されるデータにわたって計算されるメッセージ認証コード(MAC)を通じてあらゆるプロトコルメッセージの暗号化及び認証をネイティブに実施する。受信機側では、受信メッセージ内のMACが系統的に検証される。この動作は、かなり多くの計算リソースを必要とし、レイテンシーを追加する。
【0096】
同期されたノード間のデジタル署名された一方向データフローをサポートする通信システムの別の例は、一方向暗号化オーディオ/ビデオデータフローを伝達するIEEE802.1AVBに依拠するオーディオ/ビデオブロードキャストシステムである。
【0097】
幾つかの実施形態では、提案される方法は、ビットストリング解Xと、プロトコルによって提供される別のビットストリングZとを連結したもののハッシュ値のm個の最下位ビットが所定のビットストリームYに等しくなるような、すなわち、LSBm[H(X|Z)]=YとなるようなXを見つけることにその本質があるハッシュベースのパズルを使用することができる。
【0098】
1つ以上の実施形態では、事前計算攻撃を防止するために、パズルは、共通のノンス(例えば、ノンス値)を用いて定式化することができ、好ましくは、予測することができないように選ぶことができる。このノンスnは、特定のメッセージによって伝達することができる。この特定のメッセージは、例えば、「ノンスパズル制御」(NPC:Nonce Puzzle Control)メッセージと呼ばれ、例えば、ブロードキャストデータ送信及び/又はマルチキャストデータ送信を使用して、提案されるプロセスを使用するように構成されるネットワークのノードに提供することができる。NPCメッセージは、幾つかの実施形態では、マスタノードによってネットワークを介して所与の周波数を用いて周期的に送信することができる。
【0099】
幾つかの実施形態では、新たなパズルをパズルマスタノードによって繰り返し送信することができ、そのため、ノードによって受信される各パズルは、新たなパズルが受信されるまで、そのようなノードによる使用に有効であるとみなすことができる。幾つかの実施形態では、ノードは、新たなパズルを所定の時間周期で受信するように構成することができ、そのため、新たなパズルは、既定の周期に従ってノードによって周期的に受信することができる。提案される方法を使用したノードへのパズルの繰り返される送信、例えば周期的な送信によって、有利には、2つの連続するパズル送信の間の持続時間を、様々なネットワークパラメータに応じて、例えば、コンピュータネットワークにおける帯域幅制約に応じて選ばれた値に設定することが可能になる。例えば、2つの連続するパズル送信の間の持続時間は、ネットワークのノードへのパズル送信が、望ましくない多量のネットワーク帯域幅を消費することがないように十分に長いものを選ぶことができる。逆に、2つの連続するパズル送信の間の持続時間は、攻撃に対するより高いセキュリティを確保するために、ノードによって使用されるパズルが高頻度で更新されることを確保するように十分短いものを選ぶことができる。
【0100】
1つ以上の実施形態では、パズルをノードに送信するためにそのようなノードに送信されるノンス値は、このパズルの送信時刻に基づくことができる。幾つかの実施形態では、NPCメッセージの送信時刻を、本主題開示に従ってパズル解を計算又は検証するように構成される全てのネットワークノードが共通のノンス値として使用することができる。
【0101】
ノンス値を含むパズルが繰り返し送信される(例えば、所与の周期を有するブロードキャスト)幾つかの実施形態では、パズルの送信時刻に基づくノンス値は、このパズルの一部とすることができ、新たなノンス値が送信されるまで有効なものとすることができる。好ましくは、パズルの送信時刻に基づいてパズルを生成するように構成されるパズルサーバノードは、いずれのノード(特に攻撃者)も生成されたノンス値を予測することができないように構成することができ、これによって、有利には、パズル解の事前計算が回避される。そのために、幾つかの実施形態では、ノンス値の生成に使用される送信時刻は、他のノードがノンス値を予測することを妨げるランダムな部分をノンス値が必ず保持するように十分に高精度に(例えば、ナノ秒まで)選ぶことができる。
【0102】
ノードが時刻同期ネットワークに含まれる1つ以上の実施形態では、有利には、ノードのローカルクロックをネットワーククロックと同期させるのに使用される時刻同期プロトコルを、それらの送信時刻に基づいているノンス値を配信するのに使用することができ、それによって、パズルの配信に付随する帯域幅使用量が削減される。例えば、精密時刻プロトコル(IEEE1588標準規格に定義されている)がネットワークノードの時刻同期に使用される実施形態では、フォローアップ「FollowUp」PTPメッセージ内に示されるような「Sync」PTPメッセージの送信時刻を表すタイムスタンプデータを、Sync PTPメッセージ及びFollowUp PTPメッセージを受信するノードが共通のノンス値として使用することができる。したがって、時刻同期プロトコルのブロードキャストメッセージに含まれるデータは、時刻同期ネットワークのノードによって共通のノンス値として使用することができる。この提案されるパズル配信方式は、有利には、特定のメッセージを使用してパズルをネットワーク内のノードに配信することを回避し、これによって、ネットワークにおけるパズルの配信に付随する余分のネットワーク帯域幅の必要性が軽減される。
【0103】
当業者であれば、本明細書が、1つ以上の実施形態において使用することができる時刻同期プロトコルの一例としてPTPプロトコルを参照していても、例えば、コメント要求(RFC:Request for Comments)5905に記載されているようなIETFネットワークタイムプロトコル(NTP:Network Time Protocol)等の他の任意の適した時刻同期プロトコルをPTPプロトコルの代わりに使用することができることを理解するであろう。なお、NTPプロトコルは、一例として挙げられているにすぎない。
【0104】
1つ以上の実施形態では、コンピュータネットワークの対象ノード(送信ノード及び/又は受信ノード)によって使用されるパズルは、複数のパラメータを用いて定式化することができ、これらの複数のパラメータは、パズル配信方式に従って対象ノードによって取得されるノンスパラメータ(ノンスパラメータは、パズルサーバノード又は上述したようなネットワークの別のサーバノード(例えば、時刻同期サーバノード)によって提供することができる)と、ノンスパラメータの配信等に使用されるパズル配信方式とは無関係に対象ノードによって取得される1つ以上のパラメータとを含む。言い換えると、提案される方法を使用するように構成されるノードは、少なくともノンスパラメータ(パズルサーバノード又は時刻同期ネットワークに関して上述したような別のタイプのサーバノードから受信される)と、パズル配信に関係した機能以外の機能を実行する過程で取得される1つ以上のパラメータ(パズル配信方式の一部としてノードに分散されるものではないので「暗黙的」パズルパラメータと呼ばれる)とを用いて定式化されたパズルを使用することができる。
【0105】
例えば、幾つかの実施形態では、コンピュータネットワークにおける時刻同期情報に基づいて取得される時刻値を、受信されたノンス(パズルパラメータをノードに送信するパズル配信方式を通じて取得されるときは、暗黙的パズルパラメータではない)とともに、パズルの(暗黙的)パラメータとして使用することができる。他の暗黙的パズルパラメータを、時刻値暗黙的パズルパラメータ及びノンスパラメータと組み合わせて使用することができる。
【0106】
以下では、通信ノードが時刻同期され、共通のクロックを共有する時刻同期ネットワークに関してそのような時刻値をパズルの暗黙的パラメータとして使用する一例示的な実施形態が提供される。
【0107】
リプレイ攻撃(すなわち、攻撃者が単一のパズル解を使用して非常に多くのメッセージを送信する攻撃)に対してパズルを実施するために、パズルは、1つ以上の実施形態では、ノンスの一部でない時刻値を用いて定式化することができる。すなわち、送信ノードによって使用されるか又は受信ノードによって使用されるかを問わず、そのような実施形態に従って使用されるパズルは、ノンスパラメータ及び時刻値パラメータを含む幾つかのパラメータを有することができる。
【0108】
時刻同期コンピュータネットワークのノードがネットワーククロックと同期されたローカルクロックを有する幾つかの実施形態では、時間領域を既定の周期(「サイクル」とも呼ばれる)に基づいて分割することができ、そのため、時刻は、シーケンスにおけるサイクル番号(又はインデックス)によって特定することができる。換言すれば、時間領域は、所定の持続時間(例えば、100ms)のサイクルに分割することができ、そのため、時刻値は、インデックス付きサイクルシーケンスにおけるサイクルインデックスに対応することができる。
【0109】
したがって、提案される方法が、ノードが時刻同期されている時刻同期ネットワークにおいて使用される1つ以上の実施形態では、各ノードは、そのローカルクロックに基づいてサイクルインデックスを計算するように構成することができる。例えば、いずれのノードも、現在のサイクル番号を取得する(例えば、ネットワークから受信するか又は求める)ように構成することができる。現在のサイクル番号を求めることは、既定のサイクル持続時間による(ネットワーククロックと同期されたローカルクロックに基づく)現在の時刻の(例えば、整数)除算を計算することを伴うことができる。幾つかの実施形態では、提案される方法を使用するノードによって計算される現在のサイクルのインデックスは、パズルマスタによってパズルの一部としてノードに配信されるノンスに加えて、追加のパズルパラメータとして使用することができる。
【0110】
そのような実施形態では、提案される方法を使用するように構成されるノードは、取得されたサイクルインデックスを(送信ノードにおいて解を求め、及び受信ノードにおいて受信された解を確認するために)使用されるパズルの一部として使用するように構成することができ、そのため、単一のサイクル内で幾つかのメッセージを送信しなければならない送信ノードは、受信されたノンスとサイクルの取得されたインデックスとに基づいて同じパズルを解くように構成することができる。このように、生成された解は、有利には、各サイクルの間に一意とすることができる。幾つかの実施形態では、受信ノードは、パズル解を検証する前に、パズル解が現在のサイクルの間にまだ提供されていなかったことを確認するように構成することができる。結果として、幾つかの実施形態では、サイクルインデックスに対応する時刻値を、送信ノード及び受信ノードによって使用されるパズルの定式化において使用することができ、そのため、各サイクルがパズルを決定することができ、その直後に続くサイクルが別のパズルを決定する。サイクルインデックスは、したがって、パズルパラメータとして使用することができ、この追加のパラメータは、時刻同期ネットワークの各ノードにおいて計算することができるので、ノンスパラメータとしてノードに配信されないものとすることができるという利点がある。この方式は、有利には、パズルパラメータの数を増加させ、これによって、パズルの配信に付随する付加的なシグナリングオーバーヘッドを生成することなく攻撃に対するノードの保護が改善される。更に有利には、サイクルの持続時間は、短いものを選ぶことができ、そのため、パズルの有効性の持続時間も同様に短く、パズルは高頻度で更新される。
【0111】
図4は、本主題開示の実施形態によるパズル操作に使用することができるサイクルを示している。図4に示すように、パズルPのノンスを搬送するメッセージは、既定のノンスブロードキャスト周期で、コンピュータネットワークにおいて実質的に周期的にブロードキャストすることができる。そのようなメッセージの例が、ノンスパズル制御(NPC)メッセージNPC、NPCn+1、及びNPCn+2として図4に示されている。2つの連続するノンス配信メッセージの間の期間は、既定のサイクル持続時間のm+1個のサイクルCycle、Cycle、...、Cycleに分割することができる。NPCメッセージNPC(すなわち、サイクルCycleの開始部分において最後に受信されたNPCメッセージ)に対応する各サイクルCycleについて、提案される方法を使用するように構成されるノード(1つ以上のパズル解を求める送信ノード又は1つ以上の受信されたパズル解を確認する受信ノード)は、対応するNPCメッセージNPCにおいて受信されたノンスと、サイクルインデックスiとからパズルPn,iを導出することができる。
【0112】
図5aは、本主題開示の1つ以上の実施形態による一例示的なデータ通信方式を示している。
【0113】
図5aを参照すると、1つ以上の実施形態では、パズルサーバノードは、ノンス、例えば、ノンス値(例えば、予測不能な(部分的又は全体的にランダムな)値)を用いて定式化されたパズルPをネットワークの複数のノードのそれぞれに提供するように構成することができる。例えば、図5aに示すように、いわゆる「パズルマスタ」ノード60が、第1の送信ノード62、第2の送信ノード63、及びサービスノード61にパズルPのノンス値を送信する(64a、64b、64c)。
【0114】
1つ以上の実施形態では、別のノードに送信されたメッセージがそのような別のノードによる処理を受ける(例えば、別のノードに送信された要求がそのような別のノードによるサービス提供を受ける)には、有効なパズル解が、取得(例えば、計算)され、メッセージを送信するノードによって送信され、メッセージが処理されるように宛先ノードに提供されなければならない。例えば、幾つかの実施形態では、要求を完了するには、有効なパズル解が、要求をサービングノードに送信した任意の要求ノードによって計算されなければならない。
【0115】
1つ以上の実施形態では、送信ノードによって計算された解は、送信メッセージとともに送信することができる。幾つかの実施形態では、計算された解は、送信メッセージ内に組み込むことができる。
【0116】
幾つかの実施形態では、最後に受信されたパズルの解は、各送信メッセージに組み込むことができる。
【0117】
受信ノードにおいて、受信メッセージとともに受信されたパズル解は、このメッセージを処理する前に検証することができる。幾つかの実施形態では、解は、メッセージ認証がサポートされている場合にはメッセージ認証を含む他の任意の処理動作の前に受信ノードにおいて検証することができる。受信メッセージがパズルの解を含む場合には、このメッセージを最初に処理して、パズル解を抽出することができ、パズル解が有効であると判断されると、メッセージを更に処理することができる。
【0118】
ビットストリング解Xと、プロトコルによって提供される別のビットストリングZとを連結したもののハッシュ値のm個の最下位ビットが所定のビットストリームYに等しくなる(LSBm[H(X|Z)]=Yとなる)ようなXを見つけることにその本質があるハッシュベースのパズルが使用される実施形態では、署名検証、すなわち、パズルの受信された解の確認は、有利には、単にパズル解XとZとを連結したもののハッシュ値を計算することのみに存することができ、結果のm個の最下位ビットがYに対応するか否かを確認する。この動作は、通常、計算費用の観点からすると、パズルの解を計算することよりもはるかに軽く高速である。したがって、潜在的な攻撃者が非常に多くのメッセージを関連した解とともにネットワークの別のノードに送信することを抑止するが、そのような別のノードは、受信された解を確認することが計算的に安価であるので、そのようなDoS攻撃から自身を防御するための多くの計算リソースを必要としない。
【0119】
例えば、図5aに示すように、送信ノード#1 62は、パズルマスタ60から受信された(64b)パズルPの解Sを計算し、その後、パズルPの解Sとともに(場合に応じて、パズルPの解Sを含む)Request#1を含むメッセージMsg#1をサービングノード61に送信する(65)。同様に、送信ノード#2 63は、パズルマスタ60から受信された(64a)パズルPの解Sを計算し、その後、パズルPの解Sとともに(場合に応じて、パズルPの解Sを含む)Request#2を含むメッセージMsg#2をサービングノード61に送信する(67)。
【0120】
サービングノード61は、メッセージMsg#1及び解Sを受信すると、解Sを確認する(66)ように構成することができ、解Sが有効であると判断されると、Msg#1を処理して、例えば、Request#1にサービス提供することができる。同様に、サービングノード61は、メッセージMsg#2及び解Sを受信すると、解Sを確認する(68)ように構成することができ、解Sが有効であると判断されると、Msg#2を処理して、例えば、Request#2にサービス提供することができる。
【0121】
上述したように、提案される方法は、受信ノードシークレットを用いて定式化されるパズルに依拠していない。例えば、ビットストリング解Xと、プロトコルによって提供される別のビットストリングZとを連結したもののハッシュ値のm個の最下位ビットが所定のビットストリームYに等しくなる(LSBm[H(X|Z)]=Yとなる)ようなXを見つけることにその本質があるハッシュベースのパズルが使用される実施形態では、ビットストリングZは、送信ノードと受信ノードとの間で共有されるあらゆるシークレットを含まないものとすることができる。更に有利には、何らかのシークレットを得るために送信ノードと受信ノードとの間で幾つかの事前のメッセージ交換を行う必要がない。加えて、提案されるプロセスは、有利には、送信ノードと受信ノードとの間のメッセージ経路上の任意のノードが任意のメッセージによって伝達されるパズル解を確認することを可能にする。なぜならば、そのようなノードは、パズルマスタからパズルを受信していることになるからである。
【0122】
1つ以上の実施形態では、パズルPの解の一意性は、解の受信の際に、パズルPに関して既に使用及び検証されたパズル解を記憶するルックアップテーブルを使用して検証することができる。ルックアップテーブル(本明細書において「パズル解LUT」と呼ばれる)は、提案される方法をデータの受信に使用するように構成されるネットワークの各ノードに保持することができ、所与のノードについて、対応するパズルに対する異なるパズルに関して既に使用及び検証されたパズル解を記憶するのに使用することができる。パズル解LUTを管理するように構成されたノードは、少なくとも1つの所定のパズルパラメータの変化の際(例えば、ノード構成に応じて、ノンスパラメータの変化の際及び/又は時刻値パラメータの変化の際)にそのテーブルをクリアするように構成することができる。すなわち、パズル解LUTのフラッシュをトリガーするように構成されたパズルパラメータの変化の際に、ルックアップテーブルをクリアすることができ、そのため、他のパズルに再利用することができる。ルックアップテーブルは、受信された有効な各解によって順次記入することができる。受信ノードは、解を受信すると、同じ解がそのルックアップテーブルに既に記憶されているかについてこのテーブルを調べることによって、受信された解が一意であること、すなわち、既に受信されたものでないことを最初に検証することができる。受信ノードは、同じ解がテーブルに既に記憶されていると判断すると、メッセージとともに受信された解の有効性を更に確認することなく、メッセージを廃棄することができる。受信ノードは、テーブルに既に記憶されている解に同じものがないと判断すると、メッセージとともに受信された解の有効性の確認を進めることができる。本主題開示の実施形態による上述したような受信ノードにおける更なる動作を、その後、実行することができる。
【0123】
例えば、図5bに示すように、パズルマスタ60は、送信ノード62及びサービングノード61(受信ノード)に、周期nの間有効であるパズルPのノンスを搬送するNPCメッセージを送信することができる。送信ノード62は、パズルマスタ60から周期nの間に受信された(68a)パズルPの解S1,1を計算し(69)、その後、パズルPの解S1,1とともに(場合に応じて、パズルPの解S1,1を含む)メッセージMsg#1をサービングノード61に送信する(70)ことができる。
【0124】
サービングノード61は、メッセージMsg#1及び解S1,1を受信すると、その解テーブルにおいて解S1,1を調べて、解S1,1を既に受信しているか否かを確認する(71)ように構成することができる。解S1,1を解テーブルにおいて見つけることができない場合には、サービングノード61は、パズルマスタ60から周期nの間に受信された(68b)パズルPに基づいて解S1,1の有効性を確認することができ、解S1,1が有効であると判断されると、Msg#1を処理して、例えば、Msg#1に含まれる要求にサービス提供することができる。
【0125】
その間、同じ周期nの間に、送信ノード62は、別のメッセージをサービングノード61に送信するために、パズルマスタ60から周期nの間に受信された(68a)パズルPの別の解S1,2を計算する(72)ことができる。送信ノード62は、その後、パズルPの解S1,2とともに(場合に応じて、パズルPの解S1,2を含む)メッセージMsg#2をサービングノード61に送信する(73)ことができる。
【0126】
サービングノード61は、メッセージMsg#2及び解S1,2を受信すると、その解テーブルにおいて解S1,2を調べて、解S1,2を既に受信しているか否かを確認する(74)ように構成することができる。解S1,2を解テーブルにおいて見つけることができない場合には、サービングノード61は、パズルマスタ60から周期nの間に受信された(68b)パズルPに基づいて解S1,2の有効性を確認することができ、解S1,2が有効であると判断されると、Msg#2を処理して、例えば、Msg#2に含まれる要求にサービス提供することができる。
【0127】
その後、次の周期n+1に達することができ、この時点で、パズルマスタ60は、送信ノード62及びサービングノード61(受信ノード)に、現在の周期n+1の間有効であるパズルPのノンスを搬送する新たなNPCメッセージを送信することができる。
【0128】
データをサービングノードに送信したい送信ノード62は、最後に受信されたパズルを使用して、サービングノードに送信されるメッセージとともに送信するパズル解を計算するように構成することができる。送信ノード62は、その後、別のメッセージをサービングノード61に送信するために、パズルマスタ60から現在の周期n+1の間に受信された(75a)パズルPの解S2,1を計算する(77)ことができる。送信ノード62は、その後、パズルPの解S2,1とともに(場合に応じて、パズルPの解S2,1を含む)メッセージMsg#3をサービングノード61に送信する(73)ことができる。
【0129】
サービングノード61は、パズルPのノンスを受信すると、その解テーブルを空にする(例えば、その解テーブルに記憶された全てのパズル解をフラッシュする)ように構成することができ、そのため、サービングノードは、新たな現在の周期n+1の間に受信されたパズル解を管理する。サービングノード61は、メッセージMsg#3及び解S2,1を受信すると、その解テーブルにおいて解S2,1を調べて、解S2,1を既に受信しているか否かを確認する(79)ように更に構成することができる。解S2,1を解テーブルにおいて見つけることができない場合には、サービングノード61は、パズルマスタ60から周期n+1の間に受信された(75b)パズルPに基づいて解S2,1の有効性を確認することができ、解S2,1が有効であると判断されると、Msg#3を処理して、例えば、Msg#3に含まれる要求にサービス提供することができる。
【0130】
上述したように、1つ以上の実施形態では、コンピュータネットワークの対象ノード(送信ノード及び/又は受信ノード)によって使用されるパズルは、パズル配信方式に従って対象ノードによって取得されるノンスパラメータと、ノンスパラメータの配信等に使用されるパズル配信方式とは無関係に対象ノードによって取得される1つ以上のパラメータ(暗黙的パズルパラメータ)とを含む複数のパラメータを用いて定式化することができる。
【0131】
暗黙的パズルパラメータの別の例として、幾つかの実施形態では、データストリーム識別子を、受信されたノンスとともに、パズルの(暗黙的)パラメータとして使用することができる。
【0132】
データストリーム識別子の暗黙的パズルパラメータは、有利には、1つ以上の実施形態において、あらゆる種類の攻撃に対するパズルのレジリエンス(resilience)を強化するのに使用することができ、そのため、ノードは、別のアップストリームノードによって計算されたパズル解を「盗用」することができない。ストリーム識別子を含むパズルの使用は、中間の破損ノードが、着信するメッセージに対応するパズル解を盗用し、盗用したパズル解を用いて幾つかのフラッディングメッセージを送信するおそれがあるデイジーチェーントポロジーネットワークに特に有用である。
【0133】
イーサネットに基づく産業バスを使用する実施形態では、提案される方法に従って使用されるストリーム識別子は、レイヤ2のイーサネット送信元アドレス及び宛先アドレス、並びに場合に応じてVLANタグを連結したものを含むことができる。
【0134】
UDPレイヤによって伝達されるデータストリームの場合に、提案される方法に従って使用されるストリーム識別子は、UDP送信元アドレス、UDP宛先アドレス、UDP送信元ポート、及びUDP宛先ポートを連結したものを含むことができる。
【0135】
例えば、上述したような時刻値パラメータ等の他の暗黙的パズルパラメータをデータストリーム識別子パラメータ及びノンスパラメータと組み合わせて使用することができる。
【0136】
例えば、ビットストリング解Xと、プロトコルによって提供される別のビットストリングZとを連結したもののハッシュ値のm個の最下位ビットが所定のビットストリームYに等しくなる(LSBm[H(X|Z)]=Yとなる)ようなXを見つけることにその本質があるハッシュベースのパズルが使用される幾つかの実施形態では、ビットストリングZは、ノンス値(例えば、時刻同期プロトコルメッセージ(例えば、IEEE-1588プロトコルが使用されるときは「Sync」メッセージ)の送信時刻に対応する)、時刻値(例えば、時間サイクルシーケンス番号)、及びストリーム識別子を連結したものを含むことができる。例えば、Zは、次のように、すなわち、Z=TimeSync|CycleSN|StreamIDとして選ぶことができる。
【0137】
上述の式(LSBm[H(X|Z)]=Y)が使用される実施形態では、送信ノードは、ブルートフォースを使用して解を計算しなければならない。試行(tentatives)の数は、特定の値に設定される出力ビットの数に依存する。簡略化するために、出力予想値Yを0のビットストリングとして選ぶことができる。システムが、データストリーム識別子に安全に依拠することができる(すなわち、どのノードによっても偽造することができない)とき、ビット数は、高い計算リソースを有するノードほどそれよりも低いノードよりもパズルが複雑になるようにデータストリーム識別子に依存することができる。この有利に柔軟な方法は、ネットワークにおいて、必要とされるビットの数を0に設定することができる幾つかの高信頼ノードを定義するのに使用することもできる。
【0138】
ハッシュベースのパズルを使用する実施形態では、ハッシュ関数は、好ましくは、結果として得られる出力値を予測することができないように選ぶことができる。例えば、セキュアハッシュアルゴリズム(例えば、SHA-2ファミリー又はSHA-3ファミリーのもの)を、提案される方法をハッシュベースのパズルを用いて実施するのに使用することができる。
【0139】
1つ以上の実施形態では、ノンスベースのパズルをブロードキャストするのに使用されるメッセージは、例えば、認証方式を使用して保護することができる。幾つかの実施形態では、攻撃者が事前に計算されたパズル解のセットを使用することを可能にする起こり得るフェイクメッセージから保護するために、NPCメッセージ自体を認証することができる。
【0140】
加えて、起こり得るパケット損失から保護するために、ノンス値は、パズル解に挿入されるインデックスによって識別することができる。このインデックスは、NPCメッセージの周期性によって分割された現在の時刻とすることができる。その場合に、受信されたノンス値に反映された周期性のために、ノンス値を伝達するパケットの損失をノードによって容易に検出することができる。幾つかの実施形態に関して上述したように、送信ノードは、受信された最新のノンスをパズル解の計算に使用するように構成することができる。パズル解を検証するとき、受信ノードは、解に挿入されたインデックスによって識別されるノンスを使用するように構成することができる。幾つかの実施形態では、このノンスが(パケット損失のために)ノードにおいて利用可能でない場合には、パズル解を正しいとみなすことができる。他の実施形態では、ノンスが(パケット損失のために)ノードにおいて利用可能でない場合には、パズル解を正しいとみなさないことにすることができ、解に関連付けられたメッセージを上述したように廃棄することができる。
【0141】
IEEE1588プロトコルを時刻同期に使用する実施形態では、「SequenceId」フィールドを好ましくはノンスインデックスとして使用することができる。
【0142】
図6は、本主題開示の実施形態によるネットワーク送信及び/又はネットワーク受信の特徴を使用するように構成される一例示的なネットワークノード1を示している。
【0143】
ネットワークノード1は、制御エンジン2と、ネットワーク管理エンジン3と、データ通信エンジン4と、メモリ5と、電源(例えば、電池、プラグイン電源等)(図示されない)とを含む。
【0144】
図6に示されるアーキテクチャにおいて、ネットワーク管理エンジン3、データ通信エンジン4及びメモリ5は全て制御エンジン2を通して互いに作動的に結合される。
【0145】
1つの実施形態において、ネットワーク管理エンジン3は、本明細書で説明されたようなデータ送信及び/又はデータ受信の提案される方法の実施形態の種々の態様を実行するように構成される。
【0146】
1つの実施形態において、データ通信エンジン4は、データパケットを受信及び送信し、受信したパケットを処理するように構成される。
【0147】
制御エンジン2はプロセッサを含み、プロセッサは、任意の適切なマイクロプロセッサ、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号処理チップ、及び/又は状態機械、又はその組み合わせとすることができる。種々の実施形態によれば、コンピュータの1つ以上を、並列計算を提供するための複数のプロセッサを有するマルチプロセッサコンピュータとして構成することができる。また、制御エンジン2は、プロセッサによって実行されるときに、プロセッサに本明細書において説明される要素を実行させるコンピュータプログラム命令又はソフトウェアコードを記憶することができる、限定はしないが、メモリ5等のコンピュータ記憶媒体を備えることができるか、又はコンピュータ記憶媒体と通信することができる。さらに、メモリ5は、ネットワークノード1が属するコンピュータネットワークを表すデータ構造を記憶することができ、制御エンジン2に結合され、それに関連付けて記憶されるデータパケットの管理及び処理を容易にするためにデータ通信エンジン4及びネットワーク管理エンジン3とともに動作可能である、任意のタイプのデータ記憶コンピュータ記憶媒体とすることができる。
【0148】
本主題開示の実施形態において、ネットワークノード1は、本明細書において説明されたデータ送信及び/又はデータ受信方法を実行するように構成される。
【0149】
図6を参照しながら図示及び説明されるネットワークノード1は一例として与えられるにすぎないことは理解されたい。数多くの他のアーキテクチャ、動作環境及び構成が可能である。ノードの他の実施形態は、より少ない数、又はより多くの数の構成要素を含む場合があり、図6に示されるネットワークノード構成要素に関して説明された機能の幾つか又は全てを組み込む場合がある。したがって、制御エンジン2、ネットワーク管理エンジン3、データ通信エンジン4及びメモリ5がネットワークノード1の一部として示されるが、構成要素2~5の場所及び制御に関して制約は課せられない。詳細には、他の実施形態では、構成要素2~5は、異なるエンティティ又はコンピューティングシステムの一部とすることができる。
【0150】
提案されるパズル方法は、有利には、次の特徴、すなわち、時刻同期ネットワークノード(例えば、IEEE1588/PTPを使用する)、軽量デバイスが送信する可能性を伴う高データ速度(例えば、ギガビットイーサネット)、を有するシステムを含む多様なネットワーク通信システムにおいてDoS攻撃を緩和するのに使用することができる。
【0151】
本明細書において提供された提案される方法の様々な実施形態の利点は、次のものを含む。すなわち、一方向データフロー(例えば、パブリッシュサブスクライブ通信パターン/マルチキャストストリーム)がサポートされること、メッセージ暗号化及び認証ととともに使用可能なこと、追加のネットワークシグナリングが少ないこと(軽量のパズルクライアントプロトコル)、中間ノードがフラッディングメッセージを識別しフィルタリングすることができること(アップストリームフィルタリング)、リプレイ及び事前計算に対してレジリエントであること、パズルの解答に必要とされる計算が正当なノードに適合していること、並びに受信ノードにおける計算(パズル検証)の複雑度が低いことを含む。
【0152】
本発明は好ましい実施形態に関して説明されてきたが、添付の特許請求の範囲によって規定されるような本発明の趣旨又は範囲から逸脱することなく、本発明に対して種々の変更及び/又は修正を加えることができることは当業者には容易に理解されよう。
【0153】
本発明は或る特定の好ましい実施形態との関連で開示されてきたが、そのシステム、デバイス及び方法の或る特定の利点、特徴及び態様は種々の他の実施形態において実現される場合があることは理解されたい。さらに、本明細書において説明される種々の態様及び特徴は、別々に実践することができるか、互いに組み合わせることができるか、又は互いに代用することができること、並びに特徴及び態様の種々の組み合わせ及び部分的な組み合わせを行うことができ、それでも本発明の範囲に入ることを意図している。さらに、上記のシステム及びデバイスは、好ましい実施形態において説明されたモジュール及び機能の全てを含む必要はない。
【0154】
本明細書において説明される情報及び信号は、種々の異なる技術及び技法のいずれかを用いて表すことができる。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル及びチップは、電圧、電流、電磁波、磁界若しくは磁気粒子、光場若しくは光子、又はその任意の組み合わせによって表すことができる。
【0155】
実施形態によっては、本明細書において説明された方法のいずれかの或る特定の動作、イベント又は機能は、異なる順序において実行することができるか、追加されるか、統合されるか、又は全て除外される場合がある(例えば、方法を実践するために、説明される全ての動作又はイベントが必要とされるとは限らない)。さらに、或る特定の実施形態では、動作又はイベントは、順次にではなく、同時に実行される場合がある。
図1a
図1b
図1c
図1d
図2a
図2b
図3a
図3b
図4
図5a
図5b
図6
【手続補正書】
【提出日】2021-07-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータネットワークにおいてデータを送信する方法であって、前記コンピュータネットワークの第1のノードにおいて、
前記第1のノードと異なる前記コンピュータネットワークのパズルサーバノードからコンピューティングパズルのパラメータとして使用されるノンスを受信することと、
前記パズルサーバノードと異なる前記コンピュータネットワークの第2のノードにメッセージを送信するための前記コンピューティングパズルの少なくとも1つの解を、前記ノンスを使用して求めることと、
データを前記第2のノードに送信することであって、送信されるデータは、メッセージと、前記コンピューティングパズルの求められた解とを含むことと、
を含み、
前記ノンスはノンス値を含み、
前記ノンス値は、前記コンピューティングパズルの送信時刻に基づいており、
前記ノンス値は、時刻同期メッセージに含まれるタイムスタンプ情報に基づいている、方法。
【請求項2】
新たなコンピューティングパズルが、既定の周期に従って周期的に受信される、請求項に記載の方法。
【請求項3】
コンピュータネットワークにおいてデータを受信する方法であって、前記コンピュータネットワークの第2のノードにおいて、
前記第2のノードと異なる前記コンピュータネットワークのパズルサーバノードからコンピューティングパズルのパラメータとして使用されるノンスを受信することと、
前記パズルサーバノードと異なる前記コンピュータネットワークの第1のノードからデータを受信することであって、前記受信されるデータは、メッセージと、前記コンピューティングパズルの解とを含むことと、
受信された前記コンピューティングパズルの解が有効であるか否かを受信されたノンスに基づいて判断することと、
受信された前記コンピューティングパズルの解が有効であると判断すると、受信されたメッセージに含まれる要求を処理することと、
を含み、
前記ノンスはノンス値を含み、
前記ノンス値は、前記コンピューティングパズルの送信時刻に基づいており、
前記ノンス値は、時刻同期メッセージに含まれるタイムスタンプ情報に基づいている、方法。
【請求項4】
受信された前記コンピューティングパズルの解が有効でないと判断すると、受信されたメッセージを廃棄することを更に含む、請求項に記載の方法。
【請求項5】
受信された前記コンピューティングパズルの解が前記コンピュータネットワークのいずれかのノードから既に受信されたものであるか否かを判断することを更に含む、請求項3又は4に記載の方法。
【請求項6】
前記メッセージは前記コンピューティングパズルの解を含む、請求項1~のいずれか1項に記載の方法。
【請求項7】
前記コンピュータネットワークにおいて時刻同期情報に基づいて取得される時刻値が、受信された前記ノンスとともに、前記コンピューティングパズルのパラメータとして使用される、請求項1~のいずれか1項に記載の方法。
【請求項8】
データストリーム識別子が、受信された前記ノンスとともに、前記コンピューティングパズルのパラメータとして使用される、請求項1~のいずれか1項に記載の方法。
【請求項9】
請求項1~のいずれか1項に記載の方法を実行するように構成されるコンピュータネットワークにおけるネットワークノードのプロセッサ。
【請求項10】
プロセッサと、前記プロセッサに作動的に結合されたメモリと、コンピュータネットワーク内で通信するネットワークインターフェースとを備える装置であって、請求項1~のいずれか1項に記載の方法を実行するように構成される、装置。
【請求項11】
コンピュータ可読媒体内に有形に具現されるコンピュータプログラムコードを含むコンピュータプログラムであって、前記コンピュータプログラムコードは、コンピュータシステムに与えられ、実行されると、前記コンピュータシステムに、請求項1~のいずれか1項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【請求項12】
請求項11に記載のコンピュータプログラムを圧縮又は符号化を通じて表すデータセット。
【国際調査報告】