JP5652556B2 - 通信ノード、通信制御方法、および通信ノードの制御プログラム - Google Patents
通信ノード、通信制御方法、および通信ノードの制御プログラム Download PDFInfo
- Publication number
- JP5652556B2 JP5652556B2 JP2013543992A JP2013543992A JP5652556B2 JP 5652556 B2 JP5652556 B2 JP 5652556B2 JP 2013543992 A JP2013543992 A JP 2013543992A JP 2013543992 A JP2013543992 A JP 2013543992A JP 5652556 B2 JP5652556 B2 JP 5652556B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- packet
- verification
- counter value
- mac
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004891 communication Methods 0.000 title claims description 63
- 238000000034 method Methods 0.000 title claims description 51
- 238000012795 verification Methods 0.000 claims description 200
- 238000012546 transfer Methods 0.000 claims description 110
- 238000012545 processing Methods 0.000 claims description 64
- 230000005540 biological transmission Effects 0.000 claims description 42
- 238000001514 detection method Methods 0.000 claims description 14
- 239000000284 extract Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/121—Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
- H04W12/122—Counter-measures against attacks; Protection against rogue devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/04—Arrangements for maintaining operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
本明細書に開示する技術は、通信ノード、通信制御方法、および通信ノードの制御プログラムに関する。
アドホックネットワークとは、無線又は有線通信によってリンクする自己構成型のネットワークの一種である。アドホックネットワークは複数のノードにより構成される。また、アドホックネットワーク内の各ノードは、マルチホップ通信によりパケットを送受信する。マルチホップ通信は、互いの通信圏内に存在しないノード同士が、各ノードの通信圏内に存在する別のノードを介して通信を可能にする技術である。
アドホックネットワークを利用したシステムとして、各家庭の電力メータに無線通信可能なノードを組み込むことにより、作業員が現地に出向くことなく、アドホックネットワーク経由でメータ検針などの業務を行うシステムがある。このようなシステムでは、アドホックネットワークにおいて各家庭の電力の使用量などの個人情報を扱うため、秘匿性、改ざん防止などの観点からセキュアな通信(暗号化技術を用いた通信)を行うことが要求される。
従来のアドホック通信システムとして、アドホックネットワーク内のノード間で送受信されるパケットを暗号化したり、パケットに対する符号情報の一種であるメッセージ認証コード(MAC)を添付することで、セキュアな通信の確保が行ったりする手法がある(例えば、下記特許文献1〜4参照)。
アドホックネットワークでは、アドホックネットワーク内に送信される正規パケットは誰でもキャプチャすることができる。そのため、攻撃者は、キャプチャした正規パケットをアドホックネットワーク内に再送することで、ネットワークを輻輳させる攻撃(再送攻撃)を容易に実行することができる。前述したパケットの暗号化やメッセージ認証コードの添付では再送攻撃を防ぐことができないため、アドホックネットワークでは、ネットワークとしての通信品質を確保するために、再送攻撃に備える必要がある。
そこで、ヘッダにパケットの送信時刻情報を保持し、ノードがそのパケットを受信した時刻とヘッダ内の送信時刻を比較し、その差が大きい場合には、再送攻撃が実行されたと見なして、そのパケットを破棄するという技術もあった。この技術の場合、再送攻撃が実行され、特定のノード付近に不正なパケットが集中すると、ノードの処理能力ではパケットの廃棄処理を大量に実行する必要がある。この結果、当該ノードで処理遅延が発生してしまい、アドホックネットワーク全体の処理遅延を発生させるという問題があった。この問題に対して、ノードが受信したパケットを別のノードに送信する際、ヘッダ検証やメッセージ認証コード検証を確率的に選択することで、ノードの負荷をアドホックネットワーク全体に分散させるという先行技術があった。
しかしながら、上述した先行技術では、複数回のホップを経ても検証されない不正なパケットが存在することとなり、アドホックネットワークの伝送効率の低下を招いていた。他方、毎ホップごとに検証される正規なパケットが存在することとなり、再送攻撃が実行されているという状況下では、無駄な検証を処理しているという問題も生じていた。
本発明は、上述した先願技術による問題点を解消するため、不正なパケットの検出処理をアドホックネットワークのノードに効率的に分散することを課題とする。
上述した課題を解決し、目的を達成するため、本発明の一観点によれば、ノードは、カウンタ値とパケットが不正か否かを検証する処理を実行するか否かを定めた検証情報とを対応づけて記憶する記憶部と、メッセージと、転送先アドレスおよびカウンタ値を含むヘッダと、パケットが不正か否かを検証するための符号情報とを含むパケットを受信すると、該受信したパケットに含まれるカウンタ値に対応する該メモリに記憶された該カウンタ値に対応付けられた該検証情報に基づき検証処理を実行するか否かを判断する判断部と、該検証処理を実行すると判別した場合に受信した該パケットの検証処理を実行してカウンタ値を初期値に変更したパケットを生成する生成部と、該転送先アドレスに該生成部で生成された該パケットを送信する送信部とを有する。
本発明の一観点によれば、不正なパケットの検出処理をアドホックネットワークのノードに効率的に分散することが可能になる。
以下に添付図面を参照して、この発明にかかる通信方法、ノード、およびネットワークシステムの実施の形態を詳細に説明する。
(実施例1)
[ネットワークシステム]
図1は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。ネットワークシステムは、管理サーバSと、シンクノードSNと、ノードNa〜Nhとを含む。管理サーバSとシンクノードSNとはインターネット、LAN、WANなどの通常ネットワーク101を介して接続されている。シンクノードSNとノードNa〜Nhとは、アドホックネットワーク100を介して接続されている。
[ネットワークシステム]
図1は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。ネットワークシステムは、管理サーバSと、シンクノードSNと、ノードNa〜Nhとを含む。管理サーバSとシンクノードSNとはインターネット、LAN、WANなどの通常ネットワーク101を介して接続されている。シンクノードSNとノードNa〜Nhとは、アドホックネットワーク100を介して接続されている。
シンクノードSNは、アドホックネットワーク100と通常ネットワーク101とを接続する中継機器である。シンクノードSNは、アドホックネットワーク100のプロトコルの形式の情報と通常ネットワーク101のプロトコルの形式の情報の両方を送受信可能であり、アドホックネットワーク100と通常ネットワーク101との間で情報をプロトコル変換することにより、通信の転送を行う。例えば、アドホックネットワーク100内の各ノードから管理サーバS宛に送信されたパケットは、シンクノードSNにてプロトコル変換され、通常ネットワーク101にパケットとして転送されて管理サーバSに到達する。また、管理サーバSやシンクノードSNからそれぞれのノード宛てに送信されたデータは、シンクノードSNにてプロトコル変換され、シンクノードSNからアドホックネットワーク100内の各ノードにパケットとして転送される。
なお、シンクノードSNは、各ノード間の通信の可否をルーティングテーブルにより把握しており、ルーティングテーブルの情報を元に、シンクノードSNは自律的にルーティングする。各ノードは、シンクノードSNのルーティングにより、マルチホップ通信を行う際の転送元と転送先が設定される。
アドホックネットワーク100内には、複数のノードが設けられている。図1では、代表としてノードNa〜Nhを示している。
各ノードは、所定の通信圏内で通信可能な他ノードとマルチホップ通信が可能な無線通信装置である。アドホックネットワーク100では、すべてのノードNa〜Nhが直接シンクノードSNと通信できる必要はなく、マルチホップを繰り返すことにより、最終的にすべてのノードNa〜NhがシンクノードSNと通信できればよい。このため、アドホックネットワーク100では、一部のノードがシンクノードSNと通信可能であればよい。図1では、シンクノードSNと直接通信可能なノードは、ノードNa,Ndである。
本実施例のネットワークシステムは、たとえば各家庭の電力やガスの使用量を収集するシステムに適用される。このようなシステムの場合、各ノードは、各家庭の電力やガスの使用量を検出するための各家庭の電力メータやガスメータに設置される。管理サーバSは、各ノードが検出した電力やガスの使用量を収集して、管理サーバSに送信することで、各家庭の電力やガスの使用量を収集することが可能になる。
具体的には、例えば、各家庭の電力メータやガスメータにそれぞれノードが組み込まれているとする。各ノードは、各ノードが検出した各家庭の電力やガスの使用量を、アドホックネットワーク100を介して管理サーバSに送信する。なお、各家庭の電力やガスの使用量は、各ノードが計測してもよく、また、各ノードが電力メータやガスメータから取得してもよい。シンクノードSNは、アドホックネットワーク100内の各ノードから受信した各家庭の電力やガスの使用量を、通常ネットワーク101を介して電力会社やガス会社のサーバ(例えば、管理サーバS)に送信する。これにより、作業員が現地に出向くことなく電力やガスの使用量を収集することができる。
また、本実施形態のネットワークシステムでは、暗号鍵を用いてパケットを暗号化する。あるいは、MAC鍵を用いてパケットに対するメッセージ認証コード(MAC)を生成・付加する。これにより、アドホックネットワーク100のセキュア通信(データ秘匿性、改ざん防止など)を確保する。
なお、図1の例では、アドホックネットワーク100内に1台のシンクノードSNを設ける構成としたが、一つのアドホックネットワーク100内に複数台のシンクノードSNを設ける構成としてもよい。
また、図1ではアドホックネットワーク100は一つであるが、複数のアドホックネットワークを含む場合もある。複数のアドホックネットワークを含む場合、複数のアドホックネットワークにはそれぞれ少なくとも一つのシンクノードが含まれており、管理サーバSは当該シンクノードと通常ネットワークを介して接続する。この構成により、管理サーバSと全てのノードとのデータ送受信が可能になる。
また、本ネットワークシステムは、電力、ガスの使用量の収集だけでなく、各ノードに温度,湿度,光量などを検知するセンサ機能を持たせて、例えば、環境などの調査に使用することも可能である。
図1では、アドホックネットワーク100を構成するノードNa〜Nhにより、4つの経路R1〜R4が設定されているものとする。具体的には、経路R1は、ノードNc→ノードNb→ノードNa→シンクノードSNというルート(逆方向の通信も可)である。経路R2は、ノードNe→ノードNd→シンクノードSN(逆方向の通信も可)である。経路R3は、ノードNg→ノードNf→ノードNd→シンクノードSNというルート(逆方向も可)である。経路R4は、ノードNh→ノードNf→ノードNd→シンクノードSNというルート(逆方向も可)である。なお、ノードNaやノードNdはシンクノードと直接通信するノードである。
シンクノードSNに近いノードを上流側のノードと呼ぶ。なお、アドホックネットワーク100の規模によっては、ノードNbやノードNeも上流側のノードとなる。
各ノードNa〜Nhは、各々検出されたデータをルーティングされた経路R1〜R4に従ってシンクノードSNに送信する。したがって、シンクノードSNに近い上流のノードほど、下流のノードの検出データをさらに上流に転送することとなる。すなわち、転送元のノードからのパケットを転送先に送信する頻度が高くなり、転送負荷が高くなる。
[本実施例の不正パケットの検出と破棄]
図2は、本実施の形態での不正パケットの破棄の説明図である。
図2は、本実施の形態での不正パケットの破棄の説明図である。
なお、不正パケットの検出には、種々の方式がある。例えば、MAC鍵を有さないノードからのパケットに対してMAC検証を実行すると、ノードはMAC検証に失敗する。このようなMAC検証で失敗するパケットを不正パケットと判定する。また、正当なパケットのコピーを大量に送付するような攻撃を受ける場合もある。このような場合、パケットはヘッダに当該パケットの送信時刻情報を保持させる。ノードがパケットを受信した時刻とヘッダに保持した送信時刻とを比較し、その差が大きい場合には、再送攻撃が実行されたと判定することも可能である。
本実施の形態では、アドホックネットワーク100内をマルチホップ通信により転送されるパケットは、経路上のノードにより、MAC鍵KによるMAC値の認証(MAC認証)をされる場合とされない場合がある。
例えば、本実施例の各ノードは、MAC認証を実施する確率(認証実施確率P)を50%と設定しておく。これにより、不正パケット群を受信したノードは、不正パケット群のうち半分(50%)の個数の不正パケットをMAC認証し、残余の半分の個数の不正パケットを転送先ノードに転送する。
また、パケットを受信したノードは、パケットのヘッダに格納されたカウンタ値を抽出し、当該カウンタ値が一定の値(本実施の形態では「3」)以上になった場合にMAC認証を実行する。このMAC認証をするか否かを決定する「一定の値」は、不正パケットを転送するために要する処理量とMAC検証を行うために要する処理量のバランスによって決定される。MAC認証をするか否かを決定する「一定の値」は、例えば、ネットワークの規模、アドホックネットワーク100のノードのホップ数、全パケットに対して存在する不正パケットの割合、ノードの負荷状況等に応じて適宜決定される。例えば、ノードの負荷が常に低い場合には、全ノードでMAC検証を行ってもよい。また、不正パケットの割合が低い場合、MAC認証をするか否かを決定する「一定の値」を大きくしてもよい。
このように、MAC認証の処理を実行するノードを分散させることにより、シンクノードSNやパケットを直接受信するノードにかかるMAC認証の処理の負荷が軽減される。この結果、アドホックネットワーク100の通信の効率化を図ることができる。
図2のアドホックネットワーク100は、ノードNa、Nb、Nc、Nd、NeとシンクノードSNとを含む。シンクノードSNのアドホックルーティングにより、パケットは、ノードNc→ノードNd→ノードNe→ノードNb→ノードNa→シンクノードSNの順序で、転送されるものとする。
各ノードNa〜Neは、メッセージを認証するためのMAC鍵、すなわちパケットが不正であるか否かを判別する際に使用するMAC鍵を共有する。各ノードNa〜Neは、パケットにMAC(Message Authentication Code;メッセージ認証子。以下、「MAC値」と称す。)を付けて転送する。
たとえば、ノードNcでデータが検出されると、ノードNcは検出データを含むメッセージを暗号化する。ここで、ノードNcが不正ノードからの100個の不正パケットを受信したとする。図2の例では各ノードの認証実施確率P=50%であるため、ノードNcは50個の不正パケットをMAC認証する。ノードNcは、残余の50個の不正パケットを転送先のノードNdに転送する。MAC認証をおこなう50個の不正パケットの各々から得られるMAC値は、ノードNcが有する認証鍵により生成されるMAC値とは異なる。したがって、MAC認証の対象となった50個の不正パケットはノードNcに破棄される。
各ノードが送信元になる場合、各ノードが有する暗号鍵によりメッセージを暗号化して、暗号化メッセージを生成する。図2の場合、ノードNcは暗号鍵Kc、ノードNdは暗号鍵Kd、ノードNeは暗号鍵Ke、ノードNbは暗号鍵Kb、ノードNaは暗号鍵Kaを有し、管理サーバSは、各ノードが有する暗号鍵Ke、Kd、Kc,Kb,Kaを有する。これら暗号鍵は異なる運用をすることも可能であるし、全て同じ鍵として運用することも可能である。本実施の形態では、パケットの送信元と送信先とが暗号鍵を有する。
暗号化したメッセージは暗号化メッセージという。 次に、ノードNcはパケットのヘッダを生成する。このときノードNcは、ヘッダのカウンタ値を初期値に設定する。ノードNcは暗号化メッセージとヘッダとからMAC値を生成し、ヘッダ、暗号化メッセージ、およびMAC値を含むパケットのヘッダを更新してノードNdに転送する。
ノードNdはノードNcから転送されてきたパケットをノードNeに転送する。ノードNdは、認証実施確率P=50%により、ノードNcからの50個の不正パケットのうち25個をMAC認証し、残余の25個の不正パケットを転送先となるノードNeに転送する。MAC認証をおこなう25個の不正パケットの各々から得られるMAC値は、ノードNdが有する認証鍵により生成されるMAC値とは異なる。したがって、MAC認証の対象となった25個の不正パケットはノードNdに破棄される。
また、ノードNdは、パケットのヘッダに格納されたカウンタ値を抽出し、当該カウンタ値が「3」以上のパケットについてMAC認証を実行する。図2の例では、ノードNdが受信した不正パケットのカウンタ値は、「0」となっている。したがって、ノードNdは、残余の不正パケットについてMAC認証を実施することなく転送する。なお、ノードNdは、不正パケットを転送する際、当該不正パケットのカウンタ値「0」を1だけインクリメントし「1」にする。
ノードNeは、認証実施確率P=50%により、ノードNdからの25個の不正パケットのうち13個をMAC認証し、残余の12個の不正パケットを転送先となるノードNbに転送する。MAC認証をおこなう25個の不正パケットの各々から得られるMAC値は、ノードNdが有する認証鍵により生成されるMAC値とは異なる。したがって、MAC認証の対象となった13個の不正パケットはノードNdに破棄される。
また、ノードNeは、パケットのヘッダに格納されたカウンタ値を抽出し、当該カウンタ値が「3」以上のパケットについてMAC認証を実行する。図2の例では、ノードNeが受信した不正パケットのカウンタ値は、「1」となっている。したがって、ノードNeは、残余の不正パケットについてMAC認証を実施することなく転送する。なお、ノードNdは、不正パケットを転送する際、当該不正パケットのカウンタ値「1」を1だけインクリメントし「2」にする。
ノードNbは、認証実施確率P=50%により、ノードNbからの12個の不正パケットのうち6個をMAC認証し、残余の6個の不正パケットを転送先となるノードNaに転送する。MAC認証をおこなう6個の不正パケットの各々から得られるMAC値は、ノードNbが有する認証鍵により生成されるMAC値とは異なる。したがって、MAC認証の対象となった6個の不正パケットはノードNbに破棄される。
また、ノードNbは、パケットのヘッダに格納されたカウンタ値を抽出し、当該カウンタ値が「3」以上のパケットについてMAC認証を実行する。図2の例では、ノードNbが受信した不正パケットのカウンタ値は、「2」となっている。したがって、ノードNbは、残余の不正パケットについてMAC認証を実施することなく転送する。なお、ノードNbは、不正パケットを転送する際、当該不正パケットのカウンタ値「2」を1だけインクリメントし「3」にする。
ノードNaは、認証実施確率P=50%により、ノードNbからの6個の不正パケットのうち3個をMAC認証する。
ノードNaは、パケットのヘッダに格納されたカウンタ値を抽出し、当該カウンタ値が「3」以上のパケットについてMAC認証を実行する。図2の例では、ノードNaが受信した不正パケットのカウンタ値は、「3」となっている。したがって、ノードNaは、残余の全ての不正パケットについてMAC認証を実施する。この結果、ノードNcで検出した全ての不正パケットは、ノードNaを通過することなく、破棄されることになる。
同様に、ノードNbでデータが検出されると、ノードNbは検出データに基づき暗号化メッセージを生成する。また、ノードNbはパケットのヘッダを生成する。ノードNbは暗号化メッセージとヘッダとからMAC値を生成し、ヘッダ、暗号化メッセージ、およびMAC値を含むパケットのヘッダを更新してノードNaに転送する。ノードNaはノードNbから転送されてきたパケットをシンクノードSNに転送する。
図2の場合、ノードNcが送信元となるパケットのカウンタ値は初期値として「0」に設定される。その後、マルチホップ通信が行われ、転送処理を実行するノードは、パケットについてMAC検証を実行しない場合、カウンタ値をインクリメントする。図2の場合、ノードNd,Ne,Nbが、パケットについてカウンタ値に基づくMAC検証を実行しないノードに相当する。
一方、パケットについてMAC検証を実行したノードは、カウンタ値を初期化する。図2の場合、ノードNaが、パケットについてMAC検証を実行するノードに相当する。
以上の構成にすることで、各ノードは、認証確率Pに基づきMAC認証を実施するとともにカウンタ値が一定値以上になったパケットについてMAC検証を実行すればよいため、アドホックネットワーク100全体でのMAC検証の処理量が低減する。また、カウンタ値が所定数以上のパケットについては必ずMAC検証が実行されるので、不正パケットの早期の除去が可能になる。
[パケットの構成]
図3は、実施の形態にかかるパケットの構成例を示す説明図である。
図3は、実施の形態にかかるパケットの構成例を示す説明図である。
パケット300は、アドホックデータ304、およびMAC305で構成される。アドホックデータ304はヘッダ303と暗号化メッセージ302とを含む。
ヘッダ303は、暗号化メッセージ302の送信元のアドレス、宛先のアドレス、転送元のアドレス、転送先のアドレス、およびカウンタ値の情報を含む。それぞれのアドレスは、例えば、送信元のノードのMAC(Media Access Control)アドレス、宛先のノードのMACアドレス、転送元のノードのMACアドレス、転送先のノードのMACアドレスが使用される。以降本実施例では、アドレスにMACアドレスを用いた場合を説明する。
ヘッダ303は、転送元MACアドレス311、転送先MACアドレス312、送信元MACアドレス313、宛先MACアドレス314、およびカウンタ値308を含む。
転送元MACアドレス311は、パケット300のマルチホップ通信元となるノードのMACアドレスである。転送先MACアドレス312は、パケット300のマルチホップ通信先となるノードのMACアドレスである。転送元MACアドレス311および転送先MACアドレス312は、マルチホップ通信により転送される都度、パケット300を受信したノードによって、転送先のノードからみた転送元および転送先のMACアドレスになるように書き換えられる。送信元MACアドレス313は、パケット300内のメッセージ301の検出元となるノードのMACアドレスである。宛先MACアドレス314は、パケット300内のメッセージ301の宛先となるノードのMACアドレスである。例えば、ノードが送信元となる場合、宛先MACアドレス314はシンクノードSNのMACアドレスまたは管理サーバSのMACアドレスとなる。
転送先MACアドレス312と宛先MACアドレス314が一致する場合、宛先MACアドレス314で特定されるノードにパケットが到達したこととなり、マルチホップ通信が終了する。
カウンタ値308は、MAC検証を行うか否かを判断するための情報である。本実施例のカウンタ値308は、過去にMAC検証が行われた以降に、パケット300がMAC検証をされずに通過したノードの数に相当する。カウンタ値は、ノードを通過する際にノードによって検証されなかった場合に、「1」増加される。一方MAC検証がなされると、カウンタ値は「0」に初期化される。
暗号化メッセージ302は、メッセージ301が暗号化されたものである。メッセージ301は例えば、送信元のノードがサーバに送信するデータである。送信元となるノードは、メッセージ301の秘匿性を確保するために、暗号鍵307を用いてメッセージ301を暗号化することで、暗号化メッセージ302を作成する。本実施例の暗号鍵307はノード毎に一意であるものとする。
MAC305は、メッセージ認証コード(MAC)の値である。MAC305は、アドホックデータ304を、アドホックネットワーク100の全ノードで共有するMAC鍵(MAC鍵306)で暗号化したメッセージ認証子である。送信元のノードは、あるいは転送元のノードは、アドホックデータ304に改竄がないことを転送先のノードで検証可能にするために、MAC鍵によってアドホックデータ304のMAC305を生成し、アドホックデータ304に生成したMAC305を付加したパケット300を生成する。
各ノードはパケット300を受信した場合、パケット300をアドホックデータ304とMAC305に分離し、アドホックデータ304に対してMAC検証を実行する。検証に失敗した場合には、パケット300を廃棄する。
[ルーティングテーブル]
図4は、各ノードが記憶するルーティングテーブルの一例を示す説明図である。図4の(A)は、ノードNaのルーティングテーブル320を示す。図4の(B)は、ノードNbのルーティングテーブル325を示す。なお、図4では、便宜上、ノードの符号をMACアドレスの代わりとして説明する。例えば、ルーティングテーブルに「Na」とある場合は、ノードNaのMACアドレスを示すものとする。
図4は、各ノードが記憶するルーティングテーブルの一例を示す説明図である。図4の(A)は、ノードNaのルーティングテーブル320を示す。図4の(B)は、ノードNbのルーティングテーブル325を示す。なお、図4では、便宜上、ノードの符号をMACアドレスの代わりとして説明する。例えば、ルーティングテーブルに「Na」とある場合は、ノードNaのMACアドレスを示すものとする。
ルーティングテーブルの1行目のレコードは、シンクノードSNへ向かう上り方向に転送する場合に用いるレコードであり、2行目のレコードは、末端へ向かう下り方向に転送する場合に用いるレコードである。2行目のレコードは、例えば、シンクノードSNからブロードキャストされた場合に適用される。
具体的には、ノードNaは、ルーティングテーブル320の転送元のMACアドレス321により特定されるノードからパケットが転送されてくると、ルーティングテーブル320を参照して、転送元のMACアドレス321に対応する転送先のMACアドレス322を特定する。そして、ノードNaは、受信したパケット300のヘッダ303の転送先MACアドレス312を、ルーティングテーブル320の転送先のMACアドレス322で特定されたMACアドレスに書き換える。また、ノードNaは、受信したパケット300のヘッダ303の転送元MACアドレス311を、ノードNaのMACアドレスに書き換える。
ノードNaは、転送元のMACアドレスが「Nb」、転送先のMACアドレスが「Na」のパケットが、ノードNbから転送されてくると、ルーティングテーブル320にしたがって、ヘッダ303の転送元MACアドレス311を「Nb」から「Na」に書き換え、転送先MACアドレス312を「Na」から「SN」に書き換える。
また、ノードNaは、転送元のMACアドレスが「SN」、転送先のMACアドレスが「Nb」のパケットが、シンクノードSNから転送されてくると、ルーティングテーブル320にしたがって、ヘッダ303の転送元MACアドレス311を「SN」から「Na」に書き換え、転送先MACアドレス312を「Na」から「Nb」に書き換える。
同様にノードNbは、ルーティングテーブル325の転送元のMACアドレス326により特定されるノードからパケットが転送されてくると、ルーティングテーブル325を参照して、転送元のMACアドレス326に対応する転送先のMACアドレス327を特定する。そして、ノードNbは、受信したパケット300のヘッダ303の転送先MACアドレス312を、ルーティングテーブル325の転送先のMACアドレス327で特定されたMACアドレスに書き換える。また、ノードNbは、受信したパケット300のヘッダ303の転送元MACアドレス311を、ノードNbのMACアドレスに書き換える。
ノードNbは、転送元のMACアドレスが「Ne」、転送先のMACアドレスが「Nb」のパケット300が、ノードNeから転送されてくると、ルーティングテーブル325にしたがって、ヘッダ303の転送元MACアドレス311を「Ne」から「Nb」に書き換え、転送先MACアドレス312を「Nb」から「Na」に書き換える。
また、転送元のMACアドレスが「Na」、転送先のMACアドレスが「Ne」のパケット300がノードNaから転送されてくると、ノードNbはルーティングテーブル325にしたがって、ヘッダ303の転送元MACアドレス311を「Na」から「Nb」に書き換え、転送先MACアドレス312を「Nb」から「Ne」に書き換える。
[ノードの機能説明]
図5は、本実施の形態にかかるノードの機能ブロック図である。
図5は、本実施の形態にかかるノードの機能ブロック図である。
ノードNは、アドホック通信部111、ヘッダ生成部102、MAC生成部103、暗号処理部104、検証判断部105、鍵情報記憶部106、送信先判定部107、MAC検証部108、記憶部113、および復号処理部109を含む。
アドホック通信部111は、送信部115及び受信部116を含む。送信部115は、アドホックネットワーク100を介して送信先のノードにパケット300を送信する。また、受信部116は、アドホックネットワーク100を介して送信元のノードからパケット300を受信する。本実施の形態では、特に記載がない限り、アドホック通信部111による送信は、送信部115によって行われており、アドホック通信部111の受信は、受信部116によって行われているものとする。
ヘッダ生成部102は、ヘッダ303を生成する。また、ヘッダ生成部102は暗号化メッセージ302にヘッダ303を付加することにより、アドホックデータ304を生成する。
MAC生成部103は、鍵情報記憶部106からMAC鍵306を取り出し、アドホックデータ304に対するMAC305を生成する。また、MAC生成部103は、アドホックデータ304に生成したMAC305を付加してパケット300を生成する。
暗号処理部104は、暗号鍵307を用いてメッセージ301を暗号化することで、暗号化メッセージ302を生成する。
検証判断部105は、ヘッダ303内のカウンタ値308に応じてパケット300を検証するか否かを判断する。また、検証判断部105は認証確率Pに基づきMAC認証をするか否かを判別する。
鍵情報記憶部106は、暗号鍵307、MAC鍵306、および復号鍵309を記憶する。
送信先判定部107は、ヘッダ303に基づき、自ノードが、受信したパケット300の最終的な送信先であるか否かを判定する。
MAC検証部108は、MAC鍵306を読み出し、アドホックデータ304に対するMAC305を検証する。
記憶部113は、ルーティングテーブル、基準テーブル、確率テーブルなどを記憶する。
復号処理部109は鍵情報記憶部106から復号鍵309を取り出し、暗号化メッセージ302を復号してメッセージ301を入手する。なお、システムによって、復号鍵309は暗号鍵307と同じ場合もある。また、送信元のノード毎の復号鍵を記憶する場合もある。
[データ検出〜パケット生成〜パケット送信処理]
次に、あるノード(ここではノードN1とする)がメッセージ301を送信する場合の処理を説明する。
次に、あるノード(ここではノードN1とする)がメッセージ301を送信する場合の処理を説明する。
図6は、アドホックネットワーク100に含まれるそれぞれのノードが実行する検出データの送信処理手順を示すフローチャートである。本処理では、ノードN1は、センサが検出したデータをシンクノードSNに送信するためのパケットを生成する処理を説明する。
まず、ノードN1は、センサ706により対象となるデータが検出されるのを待ち受け(S901:No)、データが検出されると(S901:Yes)、ノードNは、データを含む送信対象のメッセージ301を暗号処理部104に送信する。
暗号処理部104は、送信対象のメッセージ301を受信すると鍵情報記憶部106から暗号鍵307を読み出し、メッセージ301を暗号化して(S902)、暗号化メッセージ302を生成する。暗号処理部104は、生成した暗号化メッセージ302をヘッダ生成部102に送信する。
ヘッダ生成部102は、ヘッダ303の情報を生成する(S903)。ノードN1は、ヘッダ303の転送元MACアドレス311には自ノードのMACアドレスを設定し、転送先MACアドレス312には、ノードN1が記憶するルーティングテーブルに規定された転送先のMACアドレスのうち上り側(図4のルーティングテーブルの一行目のレコードに相当する)のMACアドレスを設定する。また、ノードN1は、ヘッダ303の送信元MACアドレス313には自ノードのMACアドレスを設定し、宛先MACアドレス314には、シンクノードSNのMACアドレスを設定する。
ヘッダ生成部102は、カウンタ値に初期値を設定する(S904)。その後、ヘッダ生成部102は暗号化メッセージ302に生成したヘッダ303を付加してアドホックデータ304を生成する。ヘッダ生成部102は、生成したアドホックデータ304をMAC生成部103に送信する。
MAC生成部103は鍵情報記憶部106からMAC鍵306を読み出し、受信したアドホックデータ304に対するMAC305を算出する(S905)。MAC生成部103は、アドホックデータ304に生成したMAC305を付加してパケット300を生成する。MAC生成部103は生成したパケット300をアドホック通信部111に送信する。
アドホック通信部111はMAC生成部103から受信したパケット300(すなわち、MAC付アドホックデータ)を、アドホックネットワーク100を介して転送先MACアドレス312宛に送信する(S906)。以上により、ノードN1の検出データの送信処理を終了する。
次に、あるノード(ノードN2とする)がパケット300を受信した場合の処理を説明する。
[パケット転送処理]
図7は、ノードN2によるパケットの受信時の処理のフローチャートである。図7において、ノードはアドホック通信部111によりパケット300を受信するのを待ち受け(S1001:No)、パケット300を受信した場合(S1001:Yes)、パケット300を送信先判定部107に送信する。
図7は、ノードN2によるパケットの受信時の処理のフローチャートである。図7において、ノードはアドホック通信部111によりパケット300を受信するのを待ち受け(S1001:No)、パケット300を受信した場合(S1001:Yes)、パケット300を送信先判定部107に送信する。
送信先判定部107は、受信したパケット300からアドホックデータ304とMAC305とを抽出する。送信先判定部107は、アドホックデータ304に含まれるヘッダ303を解析し(S1002)、自ノードN2が受信したパケット300の最終的な送信先であるか否かを判定する(S1003)。送信先判定部107は、自ノードN2が最終的な送信先であると判定した場合(S1003:Yes)、受信したパケット300が不正パケットか否かを判別するため、抽出したアドホックデータ304とMAC305をMAC検証部108に送信する。
MAC検証部108は、鍵情報記憶部106からMAC鍵306を読み出し、MAC鍵306と受信したアドホックデータ304とからMACを算出する(S1004)。MAC検証部108は、S1004で算出したMACと受信したパケット300に含まれるMAC305の値とが一致するか否かを判別する(以下、この一致または不一致の判定処理をMAC検証とする)(S1005)。
MAC検証に失敗した場合、すなわち両者のMAC値が一致しない場合(S1005:No)、MAC検証部108はパケット300を破棄する(S1006)。MAC検証に成功した場合、すなわちMAC値が一致する場合(S1005:Yes)、MAC検証部108は復号処理部109にアドホックデータ304を送信する。復号処理部109は、鍵情報記憶部106から復号鍵309を取り出し、暗号化メッセージ302を復号してメッセージ301を取得する(S1007)。
次に送信先判定部107は、自ノードN2が受信したパケット300の最終的な送信先ではないと判定した場合(S1003:No)、ノードN2はパケット300を宛先のノードに送信するための転送処理を行う。送信先判定部107は、アドホックデータ304とMAC305を検証判断部105に送信する。
検証判断部105はアドホックデータ304に含まれるヘッダ303内のカウンタ値308を抽出する(S1008)。検証判断部105は、抽出したカウンタ値308に応じてMAC検証を実行するか否かを判定する(S1009)。
なお、S1009では、検証判断部105は、カウンタ値308だけでなく、認証確率Pに基づきMAC検証を実行するか否かを判別してもよい。カウンタ値308によるMAC検証の実行の可否判断と認証確率PによるMAC検証の実行の可否判断は、どちらが先であってもよい。
また、検証判断部105は、認証確率PによりMAC検証を実行しないと判断したパケットについてのみカウンタ値によるMAC検証の実行の可否を判断してもよい。
[カウンタ値]
ここで、本実施の形態のノードN2におけるカウンタ値を用いたMAC検証の実行の有無の判定処理について説明する。
ここで、本実施の形態のノードN2におけるカウンタ値を用いたMAC検証の実行の有無の判定処理について説明する。
図8は、カウンタ値とMAC検証を実行するか否かの判定基準を定めた基準テーブル350である。各ノードは図8で示す基準テーブルを予め格納しているものとする。各ノードが予め格納する基準テーブルは、システムによっては全て同じでも良いし、別のシステムではノードごとに異なっていても構わない。基準テーブル350はカウンタ値と検証の有無を判定する情報とを含む。検証の有無を識別する情報は、カウンタ値に対応する情報であり、MAC検証を行うか否かを示す情報である。図8では、カウンタ値が「3」以上の場合に、ノードN2はMAC検証が実施することを示す。
図9は、判定処理のフローチャートである。検証判断部105は、S1008で抽出したカウンタ値308と基準テーブル350に基づき、MAC検証をするか否かを判断する(S1401)。具体的には、S1008で抽出したカウンタ値308に対応する基準テーブル350の該カウンタ値に対応付けられたMACの検証をするか否かの判定基準が検証処理を実行するか否かを特定する。判定基準が検証処理を実行することを示す場合(S1401:Yes)、検証判断部105は、MAC検証を実行すると決定する(S1402)。判定基準が検証処理を実行しないことを示す場合(S1401:No)、検証判断部105は、MAC検証を実行しないと決定する(S1403)。
例えばカウンタ値308が「1」である場合、基準テーブル350では「検証の有無を識別する情報」が検証を「しない」ことを示しているため、検証判断部105はMAC検証を実行しないと判定する。また、カウンタ値308が「4」である場合、「検証の有無を識別する情報」が検証を「する」とする基準が「3以上」であるため、検証判断部105はMAC検証を行うと判断する。
基準テーブル350の値は、各ノードで個別の値を設定することが可能である。したがって、処理能力の高いノードでは基準テーブル350の「検証の有無を識別する情報」の値を小さくすることで、多くのパケットについてMAC検証を実施し、処理能力の低いノードでは基準テーブル350の「検証の有無を識別する情報」の値を大きくすることで、MAC検証の実施の頻度を下げることが可能になる。この結果、より効果的なMAC検証の負荷の分散が可能になる。
[MAC検証]
S1009においてMAC検証を実行すると判断した場合(S1009:Yes)、検証判断部105はアドホックデータ304とMAC305をMAC検証部108に送信する。
S1009においてMAC検証を実行すると判断した場合(S1009:Yes)、検証判断部105はアドホックデータ304とMAC305をMAC検証部108に送信する。
MAC検証部108は、鍵情報記憶部106からMAC鍵306を読み出す。MAC検証部108はパケット300から抽出したアドホックデータ304と、読み出したMAC鍵306とからMACを算出する(S1012)。MAC検証部108は、具体的には、たとえば、MAC値を用いて、SHA1、SHA2などのハッシュ関数を使ったHMAC(Keyed−Hashing for Message Authentication Code)アルゴリズムによりMAC値を求める。また、共通鍵認証鍵暗号を使ったAES−CBC−MACアルゴリズムによりMAC値を求めてもよい。
MAC検証部108は、S1012で算出したMACとパケット300に格納されたMAC305とが一致するか否かを判別する(S1013)。MAC検証部108は、MAC値が一致しなかった場合、すなわちMAC検証に失敗した場合(S1013:No)、そのパケット300を破棄する(S1014)。MAC検証部108は、MAC値が一致した場合、すなわちMAC検証に成功した場合(S1013:Yes)、アドホックデータ304をヘッダ生成部102に送信する。
ヘッダ生成部102は、ヘッダ303のカウンタ値308の値を初期値に設定する(S1015)。ヘッダ生成部102は、ヘッダ303を新しいヘッダ323に変更する(S1016)。ヘッダ生成部102は、具体的には、パケット300の「転送元MACアドレス311」に対応するルーティングテーブルの「転送元」を特定し、特定したルーティングテーブルの「転送元」項目に対応する「転送先」項目から転送先のノードを特定する。ヘッダ生成部102は、転送先MACアドレス312に特定したノードのMACアドレスを設定する。ヘッダ生成部102は、転送元MACアドレス311には、自ノードN2のMACアドレスを設定する。
ヘッダ生成部102は、暗号化メッセージ302に新しいヘッダ323を付加することで新しいアドホックデータ324を生成する。ヘッダ生成部102は、生成した新しいアドホックデータ324をMAC生成部103に送信する。
MAC生成部103は、鍵情報記憶部106からMAC鍵306を読み出し、MAC鍵306を用いて新しいアドホックデータ324に対する新しいMAC315を生成する。MAC生成部103は生成したMAC315をアドホックデータ324に付加することで新しいパケット310を生成する。
MAC生成部103は、生成した新しいパケット310をアドホック通信部111に送信する。
アドホック通信部111はパケット310を、アドホックネットワーク100を介して送信先のノードに送信する(S1017)。
次にMAC検証が不要な場合の処理を説明する。MAC検証不要と判断された場合(S1009:No)、検証判断部105は、アドホックデータ304をヘッダ303と暗号化メッセージ302とに分割する。検証判断部105は暗号化メッセージ302をヘッダ生成部102に送信する。
検証判断部105は、自ノードでは検証を行うことなくパケットを転送するため、ヘッダ303のカウンタ値308の値をインクリメントする(S1018)。ヘッダ生成部102は、パケット300のヘッダ303を新しいヘッダ323に変更する。(S1010)。
ヘッダ生成部102は、暗号化メッセージ302に新しいヘッダ323を付加することで、新しいアドホックデータ324を生成する。ヘッダ生成部102は、生成したアドホックデータ324をMAC生成部103に送信する。
MAC生成部103は鍵情報記憶部106からMAC鍵306を読み出す。MAC生成部103は、読み出した新しいMAC鍵306を用いて新しいアドホックデータ324に対する新しいMAC315を生成する。
なお、MACを算出する対象のデータの範囲は、適宜変更可能である。例えば、送信元、送信先、暗号化メッセージを含む範囲でMACを算出するように構成すると、パケットを転送するのみの場合、MACは変わらない。よって、送信元、送信先、暗号化メッセージを含む範囲でMACを算出するシステムであって、MAC検証を実行することなくパケットを転送する場合、ノードは、パケットの転送元MACアドレス、転送先MACアドレス、カウンタ値を変更するだけでよい。この結果、MACを再計算することなく、転送可能になるため、転送を実行するノードの処理の負荷が軽減する効果がある。
MAC生成部103は生成したMAC315をアドホックデータ324に付加することで、新しいMAC315と新しいアドホックデータ324とを含む新しいパケット310を生成する。MAC生成部103は生成した新しいパケット310をアドホック通信部111に送信する。
図10は、新しいパケット310の構成例である。新しいパケットは、新しいアドホックデータ324と新しいMAC315を含む。新しいアドホックデータ324は、新しいヘッダ323と転送された暗号化メッセージ302を含む。
その後、アドホック通信部111はS1010で新しいヘッダ323を書き換えた後のパケット310を、アドホックネットワーク100を介して送信先のノード送信する(S1011)。これにより、S1006において転送対象に決定された場合のパケット転送処理を終了する。
[検証確率を使用した例]
図11は、カウンタ値とMAC検証を実行する確率とを対応付けた確率テーブル360である。確率テーブル360はカウンタ値と検証確率とを含む。検証確率は、カウンタ値に対応する情報であり、MAC検証を実行するか否かの確率を示す情報である。検証確率を使用する場合、図7のS1009の判断処理が変わる。以下、ノードN2における検証確率を用いたMAC検証の実行の有無の判定処理について説明する。各ノードは図11で示す確率テーブル360を予め格納しているものとする。各ノードが予め格納する確立テーブルは、システムによっては全て同じでも良いし、別のシステムではノードごとに異なっていても構わない。
図11は、カウンタ値とMAC検証を実行する確率とを対応付けた確率テーブル360である。確率テーブル360はカウンタ値と検証確率とを含む。検証確率は、カウンタ値に対応する情報であり、MAC検証を実行するか否かの確率を示す情報である。検証確率を使用する場合、図7のS1009の判断処理が変わる。以下、ノードN2における検証確率を用いたMAC検証の実行の有無の判定処理について説明する。各ノードは図11で示す確率テーブル360を予め格納しているものとする。各ノードが予め格納する確立テーブルは、システムによっては全て同じでも良いし、別のシステムではノードごとに異なっていても構わない。
図12は、検証確率を使用する場合の判定処理のフローチャートである。検証判断部105は、S1008で抽出したカウンタ値308と確率テーブル360に基づき、MAC検証を実行するか否かを判断する(S1501)。図11の確率テーブル360では、受信したパケット300のカウンタ値が「0」の場合、検証判断部105は0.5の検証確率でMAC検証を実行すると判断する。同様に、カウンタ値が「1」では0.65の検証確率で、カウンタ値が「2」では0.8の検証確率で、カウンタ値が「3以上」では1の検証確率で、検証判断部105はMAC検証を実行すると判断する。検証確率はカウンタ値308が大きくなるほど、大きくなるように設定している。このため、MAC検証をされずにマルチホップを繰り返したパケットはより高い確率でMAC検証が実行される。
MAC検証を実行する場合(S1501:Yes)、検証判断部105は、MAC検証を実行すると決定する(S1502)。MAC検証を実行しない場合(S1501:No)、検証判断部105は、MAC検証を実行しないと決定する(S1503)。
以上により、ノードは、パケット300のヘッダ303に含まれるカウンタ値308に基づき、あらかじめ設定された検証確率にしたがって、MAC検証部108による認証を実施するか、認証を実施せずに転送先にそのまま転送するかを決定する。このような処理をアドホックネットワーク100内の各ノードがパケットを受信する都度実行することで、シンクノードSNや不正パケットを直接受信したノードに負荷の集中を回避することで負荷分散が可能になる。この結果、アドホック通信の遅延やパケットの欠落が低減される。
確率テーブル360の検証確率は、各ノードで個別の検証確率を設定することが可能である。したがって、処理能力の高いノードでは基準テーブル350の「検証確率」の値を大きくすることで、多くのパケットについてMAC検証を実施し、処理能力の低いノードでは基準テーブル350の「検証確率」の値を小さくすることで、MAC検証の実施の頻度を下げることが可能になる。この結果、より効果的なMAC検証の負荷の分散が可能になる。
[ハードウェア構成]
図15は、アドホックネットワーク100を構成するノードのハードウェア構成例である。図15において、ノードは、CPU(Central Processing Unit)701と、RAM(Random Access Memory)702と、フラッシュメモリ703と、インターフェース(I/F)704と、暗号化回路705と、センサ706と、バス707とを備えている。CPU701〜センサ706は、バス707によってそれぞれ接続されている。
図15は、アドホックネットワーク100を構成するノードのハードウェア構成例である。図15において、ノードは、CPU(Central Processing Unit)701と、RAM(Random Access Memory)702と、フラッシュメモリ703と、インターフェース(I/F)704と、暗号化回路705と、センサ706と、バス707とを備えている。CPU701〜センサ706は、バス707によってそれぞれ接続されている。
CPU701は、ノードの全体の制御を司る。CPU701は、RAM702に展開されたプログラムを実行することにより、アドホック通信部111、ヘッダ生成部102、MAC生成部103、暗号処理部104、検証判断部105、鍵情報記憶部106、送信先判定部107、MAC検証部108、および復号処理部109などとして機能する。
RAM702は、CPU701のワークエリアとして使用される。フラッシュメモリ703は、プログラムや基準テーブル、確率テーブル、ルーティングテーブル、MAC鍵や暗号鍵などの鍵情報を記憶している。I/F704は、マルチホップ通信によりパケットを送受信する。
暗号化回路705は、データを暗号化する場合に暗号鍵によりデータを暗号化する回路である。暗号化をソフトウェア的に実行する場合は、暗号化回路705に相当するプログラムをフラッシュメモリ703に記憶させておくことで、暗号化回路705は不要となる。センサ706は、センサ706固有のデータを検出する。たとえば、温度、湿度、水位、降水量、風量、音量、電力使用量、ガス使用量、時間、時刻など、測定対象にあったデータを検出する。
以上の説明により、本実施例のノードは、負荷の高いノードでの作業を低減させるため、MAC検証の必要性の低いパケットについては、MAC検証を行わずに転送する。MAC検証の必要性の低いパケットは、過去に通過したノードでMAC検証がすでになされているものである。そこで、パケットにカウンタ値を含ませることにより、MAC検証が過去に行われているか否かを自ノードが検知できるようにした。この構成により、MAC検証を行うノードを分散することが可能になる。
(実施例2)
[ノードの負荷を考慮した判定処理]
次に、ノードの処理の負荷に応じて、MAC検証を実施するか否かを判別する処理を説明する。この処理では、ノード(ノードN3とする)は、MAC検証を行うか否かを、自ノードN3の処理の負荷の大きさによって決定する。なお、実施例1と同様の構成については、説明を省略する。
[ノードの負荷を考慮した判定処理]
次に、ノードの処理の負荷に応じて、MAC検証を実施するか否かを判別する処理を説明する。この処理では、ノード(ノードN3とする)は、MAC検証を行うか否かを、自ノードN3の処理の負荷の大きさによって決定する。なお、実施例1と同様の構成については、説明を省略する。
アドホックネットワークでは、パケットが特定のノードに集中する場合がある。
このような場合、パケットが集中したノードはパケットの転送、MAC検証等の処理の負荷が高いため、処理量を低減させることが望ましい。同じ経路上のノードには、MAC検証を行っても処理が遅延しないものも存在する場合がある。
そこで、各ノードに自ノードの負荷の検出機能を設け、自ノードの負荷が低い場合には、カウンタ値に関わらずMAC検証を実行し、自ノードの負荷が高い場合のみ、カウンタ値に基づきMAC検証の必要の有無を判断する。
この構成によれば、負荷に余裕があるノードがMAC検証を積極的に実行することでカウンタ値が初期化されるため、負荷に余裕が無いノードでMAC検証を実行しなければならないパケット数が減少する。
図13は、自ノードの負荷の検出を考慮した実施の形態にかかるノードの機能ブロック図である。
図13において、アドホック通信部111、ヘッダ生成部102、MAC生成部103、暗号処理部104、鍵情報記憶部106、送信先判定部107、MAC検証部108、および復号処理部109については、図5と同様であるため、説明を省略する。
負荷検出部112は、自ノードN3の現在の負荷の大きさを検出する。
検証判断部115は、パケットに含まれるカウンタ値および負荷検出部112で検出した自ノードの負荷の大きさに基づき、MAC検証の有無を判定する。
なお、本実施の形態において、アドホックネットワーク100の全ノードは、自ノードのMAC検証に要する負荷量および自ノードの処理能力が低下しない負荷量Aを測定あるいは計算により求められており、記憶部113に格納されているものとする。
図14は、ノードN3のMAC検証を実行するか否かを判別する処理のフローチャートである。本フローチャートは、図7のS1009に相当する。
負荷検出部112は、現在の負荷量を検出する(S1111)。
検証判断部115は、記憶部113に格納されたMAC検証に要する負荷量を記憶部113から読み出し、S1111で検出した現在の負荷量に加算することで仮想負荷量を算出する(S1112)。
検証判断部115は、S1112で算出した仮想負荷量が記憶部113に格納された負荷量Aを超えるか否かを判定する(S1113)。
仮想負荷量が負荷量Aを超える場合(S1113:Yes)、カウンタ値308を参照してMAC検証を実行するか否かを判定する(S1114)。MAC検証が必要な場合(S1114:Yes)、MAC検証を実施すると判定する(S1115)。MAC検証が不要な場合(S1114:No)、MAC検証を実施しないと判定する(S1116)。
仮想負荷量が負荷量Aを超えない場合(S1113:No)、MAC検証を実施すると判定する(S1115)。
以上の構成により、負荷のないノードでは積極的にMAC検証が実行されるため、より上流のノードでのMAC検証の要否判定の自由度が大きくなる。上流のノードでの負荷が分散可能になるため、アドホックネットワーク全体の処理の効率が上がる。
なお、検証判断部115は、S1112およびS1113において仮想負荷量により、要否判定をするのではなく、自ノードN3の負荷量が所定の閾値(例えば、負荷80%)を超えているか否かで判断することも可能である。
また、各ノードは自ノードの負荷に応じて異なる複数の基準テーブルを予め記憶しておき、ノードの負荷状況に応じた基準テーブルを使用することも可能である。
以上の説明により、各ノードは自ノードの負荷が高く且つカウンタ値が低い場合には、MAC検証を行わずに次のノードにパケットを転送する。一方、各ノードは自ノードの負荷が低い場合、あるいは、カウンタ値が高い場合には、MAC検証を行う。この構成により、処理の負荷に余裕のあるノードが優先してMAC検証を実行することが可能になる。
100 ネットワーク
108 MAC検証部
111 アドホック通信部
113 記憶部
115 検証判断部
300 パケット
303、323 ヘッダ
301 メッセージ
312 MACアドレス
101 通常ネットワーク
102 ヘッダ生成部
103 MAC生成部
104 暗号処理部
105 検証判断部
106 鍵情報記憶部
107 送信先判定部
108 MAC検証部
109 復号処理部
111 アドホック通信部
112 負荷検出部
113 記憶部
115 送信部
116 受信部
300 パケット
301 メッセージ
302 暗号化メッセージ
303 ヘッダ
304 アドホックデータ
305 MAC
306 MAC鍵
307 暗号鍵
308 カウンタ値
309 復号鍵
310 パケット
311 転送元MACアドレス
312 転送先MACアドレス
313 送信元MACアドレス
314 宛先MACアドレス
315 MAC
320 ルーティングテーブル
321 転送元のMACアドレス
322 転送先のMACアドレス
323 新しいヘッダ
324 新しいアドホックデータ
325 ルーティングテーブル
326 転送元のMACアドレス
327 転送先のMACアドレス
350 基準テーブル
360 確率テーブル
701 CPU
702 RAM
703 フラッシュメモリ
704 インターフェース
705 暗号化回路
706 センサ
707 バス
108 MAC検証部
111 アドホック通信部
113 記憶部
115 検証判断部
300 パケット
303、323 ヘッダ
301 メッセージ
312 MACアドレス
101 通常ネットワーク
102 ヘッダ生成部
103 MAC生成部
104 暗号処理部
105 検証判断部
106 鍵情報記憶部
107 送信先判定部
108 MAC検証部
109 復号処理部
111 アドホック通信部
112 負荷検出部
113 記憶部
115 送信部
116 受信部
300 パケット
301 メッセージ
302 暗号化メッセージ
303 ヘッダ
304 アドホックデータ
305 MAC
306 MAC鍵
307 暗号鍵
308 カウンタ値
309 復号鍵
310 パケット
311 転送元MACアドレス
312 転送先MACアドレス
313 送信元MACアドレス
314 宛先MACアドレス
315 MAC
320 ルーティングテーブル
321 転送元のMACアドレス
322 転送先のMACアドレス
323 新しいヘッダ
324 新しいアドホックデータ
325 ルーティングテーブル
326 転送元のMACアドレス
327 転送先のMACアドレス
350 基準テーブル
360 確率テーブル
701 CPU
702 RAM
703 フラッシュメモリ
704 インターフェース
705 暗号化回路
706 センサ
707 バス
Claims (12)
- マルチホップ通信によりパケットを送受信するアドホックネットワーク内のノードであって、
転送元のノードからのパケットを受信する受信部と、
パケットが不正か否かを検証する処理を実行するか否かを決定するために用いるカウンタ値と、カウンタ値ごとにパケットが不正か否かを検証する処理を実行するか否かを定めた検証情報とを対応づけて記憶する記憶部と、
メッセージと、転送先アドレスおよびカウンタ値を含むヘッダと、パケットが不正か否かを検証するために用いる符号情報とを含むパケットを前記受信部が受信すると、該受信したパケットに含まれるカウンタ値に対応する該記憶部に記憶された該カウンタ値に対応付けられた該検証情報に基づき検証処理を実行するか否かを判断する判断部と、
該検証処理を実行すると判別した場合に受信した該パケットの検証処理を実行してカウンタ値を初期値に変更したパケットを生成する生成部と、
該転送先アドレスに該生成部で生成された該パケットを送信する送信部と
を有することを特徴とする通信ノード。 - 該判断部は、該検証処理を実行しないと判断した場合、カウンタ値を変更したパケットを生成することを特徴とする請求項1に記載の通信ノード。
- 該検証情報は、該カウンタ値と検証処理を実行する確率とを関連付けた情報であることを特徴とする請求項1または請求項2に記載の通信ノード。
- 自ノードの負荷量を検出する検出部を更に有し、
該判断部は、該検出部で検出された該負荷量が所定量よりも高い場合に、カウンタ値に基づく検証処理を実行するか否かの判断を行なうことを特徴とする請求項1または請求項2に記載の通信ノード。 - マルチホップ通信によりパケットを送受信するアドホックネットワーク内のノードによる通信制御方法であって、
メッセージと、転送先アドレスおよびパケットが不正か否かを検証する処理を実行するか否かを決定するために用いるカウンタ値を含むヘッダと、パケットが不正か否かを検証するために用いる符号情報とを含むパケットを受信し、
カウンタ値に予め対応づけて記憶された、パケットが不正か否かを検証する処理を実行するか否かを定めた検証情報に基づき、該受信したパケットに含まれるカウンタ値で検証処理を実行するか否かを判断し、
該検証処理を実行すると判断した場合に受信した該パケットの検証処理を実行してカウンタ値を初期値に変更したパケットを生成し、
該転送先アドレスに生成した該パケットを送信する
ことを特徴とする通信制御方法。 - 該受信したパケットに含まれるカウンタ値で検証処理を実行するか否かを判断する際に、該検証処理を実行しないと判断した場合、カウンタ値を変更したパケットを生成することを特徴とする請求項5に記載の通信制御方法。
- 該検証情報は、該カウンタ値と検証処理を実行する確率とを関連付けた情報であることを特徴とする請求項5または請求項6に記載の通信制御方法。
- 該受信したパケットに含まれるカウンタ値で検証処理を実行するか否かを判断する際に、該検出された該負荷量が所定量よりも高い場合に、カウンタ値に基づく検証処理を実行するか否かの判断を行なうことを特徴とする請求項5または請求項6に記載の通信制御方法。
- マルチホップ通信によりパケットを送受信するアドホックネットワーク内のノードで処理を実行させるための制御プログラムであって、
該ノードに
メッセージと、転送先アドレスおよびパケットが不正か否かを検証する処理を実行するか否かを決定するために用いるカウンタ値を含むヘッダと、パケットが不正か否かを検証するために用いる符号情報とを含むパケットを受信し、
カウンタ値に予め対応づけて記憶された、パケットが不正か否かを検証する処理を実行するか否かを定めた検証情報に基づき、該受信したパケットに含まれるカウンタ値で検証処理を実行するか否かを判断し、
該検証処理を実行すると判断した場合に受信した該パケットの検証処理を実行してカウンタ値を初期値に変更したパケットを生成し、
該転送先アドレスに生成した該パケットを送信する
処理を実行させるための制御プログラム。 - 該ノードに、該受信したパケットに含まれるカウンタ値で検証処理を実行するか否かを判断させる際に、該検証処理を実行しないと判断した場合、カウンタ値を変更したパケットを生成させることを特徴とする請求項9に記載の制御プログラム。
- 該検証情報は、該カウンタ値と検証処理を実行する確率とを関連付けた情報であることを特徴とする請求項9または請求項10に記載の制御プログラム。
- 該ノードに、該受信したパケットに含まれるカウンタ値で検証処理を実行するか否かを判断させる際に、該検出された該負荷量が所定量よりも高い場合に、カウンタ値に基づく検証処理を実行するか否かの判断を行なわせることを特徴とする請求項9または請求項10に記載の制御プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/006447 WO2013072973A1 (ja) | 2011-11-18 | 2011-11-18 | 通信ノード、通信制御方法、および通信ノードの制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5652556B2 true JP5652556B2 (ja) | 2015-01-14 |
JPWO2013072973A1 JPWO2013072973A1 (ja) | 2015-04-02 |
Family
ID=48429089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013543992A Expired - Fee Related JP5652556B2 (ja) | 2011-11-18 | 2011-11-18 | 通信ノード、通信制御方法、および通信ノードの制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9510216B2 (ja) |
JP (1) | JP5652556B2 (ja) |
WO (1) | WO2013072973A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2445573A1 (en) * | 2001-04-27 | 2002-11-07 | Massachusetts Institute Of Technology | Method and system for micropayment transactions |
US9681407B2 (en) * | 2013-12-28 | 2017-06-13 | Qualcomm Incorporated | Time synchronization function rollover solution |
JP6448414B2 (ja) * | 2015-03-03 | 2019-01-09 | シャープ株式会社 | 無線テレメータシステム及び無線通信装置 |
JP6587507B2 (ja) * | 2015-11-04 | 2019-10-09 | シャープ株式会社 | 無線機及び無線テレメータシステム |
JP2017130787A (ja) * | 2016-01-20 | 2017-07-27 | 住友電工システムソリューション株式会社 | 無線通信機、及び制御装置 |
JP6260064B2 (ja) * | 2016-03-14 | 2018-01-17 | Kddi株式会社 | 通信ネットワークシステム及び車両 |
JP6707413B2 (ja) * | 2016-07-26 | 2020-06-10 | 住友電工システムソリューション株式会社 | 無線機、路側通信機、判定方法、及びコンピュータプログラム |
JP7077566B2 (ja) * | 2017-09-29 | 2022-05-31 | サクサ株式会社 | 無線通信端末及び遠隔検針システム |
JP6985601B2 (ja) * | 2018-01-25 | 2021-12-22 | 株式会社バッファロー | 無線lan装置を管理するコンピュータプログラム、および、無線lan装置 |
EP3753277A4 (en) | 2018-02-16 | 2021-03-31 | NEC Corporation | INTEGRITY PROTECTION FOR DATA AT USER LEVEL IN A 5G NETWORK |
WO2020165067A1 (de) * | 2019-02-11 | 2020-08-20 | Dspace Digital Signal Processing And Control Engineering Gmbh | Verfahren und wiedergabeeinheit zur wiedergabe von gesicherten nachrichten |
JP7306865B2 (ja) * | 2019-04-19 | 2023-07-11 | 日立Astemo株式会社 | 演算装置 |
JP2021144571A (ja) * | 2020-03-13 | 2021-09-24 | 富士通株式会社 | 情報処理装置、送信制御方法、および通信プログラム |
JP6994616B2 (ja) * | 2020-05-19 | 2022-01-14 | 住友電工システムソリューション株式会社 | 無線機、路側通信機、通信パケットの送信方法、及びコンピュータプログラム |
US11159546B1 (en) | 2021-04-20 | 2021-10-26 | Centripetal Networks, Inc. | Methods and systems for efficient threat context-aware packet filtering for network protection |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003069581A (ja) * | 2001-08-28 | 2003-03-07 | Nippon Telegr & Teleph Corp <Ntt> | 無線マルチホップネットワークの不正パケット防止方法及び防止装置 |
JP2010528496A (ja) * | 2007-03-30 | 2010-08-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 無線メッシュ及びセンサ・ネットワークにおける回復力のあるパケット逆探知のための方法及びシステム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003348072A (ja) | 2002-05-30 | 2003-12-05 | Hitachi Ltd | 自律分散網における暗号鍵の管理方法および装置 |
TWI249316B (en) * | 2004-02-10 | 2006-02-11 | Ind Tech Res Inst | SIM-based authentication method for supporting inter-AP fast handover |
JP4735157B2 (ja) | 2005-09-22 | 2011-07-27 | ソニー株式会社 | 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム |
CN101400105B (zh) | 2007-09-25 | 2013-04-10 | 株式会社Ntt都科摩 | 自适应网关发现方法及网关 |
JP5077186B2 (ja) | 2008-10-17 | 2012-11-21 | 富士通株式会社 | 通信装置、通信方法及び通信プログラム |
JP5240404B2 (ja) | 2010-03-29 | 2013-07-17 | 富士通株式会社 | ノード、転送方法、および転送プログラム |
US9077616B2 (en) * | 2012-08-08 | 2015-07-07 | International Business Machines Corporation | T-star interconnection network topology |
-
2011
- 2011-11-18 JP JP2013543992A patent/JP5652556B2/ja not_active Expired - Fee Related
- 2011-11-18 WO PCT/JP2011/006447 patent/WO2013072973A1/ja active Application Filing
-
2014
- 2014-05-12 US US14/275,119 patent/US9510216B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003069581A (ja) * | 2001-08-28 | 2003-03-07 | Nippon Telegr & Teleph Corp <Ntt> | 無線マルチホップネットワークの不正パケット防止方法及び防止装置 |
JP2010528496A (ja) * | 2007-03-30 | 2010-08-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 無線メッシュ及びセンサ・ネットワークにおける回復力のあるパケット逆探知のための方法及びシステム |
Non-Patent Citations (2)
Title |
---|
JPN6014043949; Sencun Zhu, et al.: 'An Interleaved Hop-by-Hop Authentication Scheme for Filtering of Injected False Data in Sensor Netwo' Proceedings of the 2004 IEEE Symposium on Security and Privacy , 2004, p.259-271 * |
JPN6014043951; Fan Ye, et al.: 'Statistical En-Route Filtering of Injected False Data in Sensor Networks' IEEE Journal on Selected Areas in Communications Vol.23, No.4, 200504, p.839-850 * |
Also Published As
Publication number | Publication date |
---|---|
US20140247786A1 (en) | 2014-09-04 |
WO2013072973A1 (ja) | 2013-05-23 |
US9510216B2 (en) | 2016-11-29 |
JPWO2013072973A1 (ja) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5652556B2 (ja) | 通信ノード、通信制御方法、および通信ノードの制御プログラム | |
Bohge et al. | An authentication framework for hierarchical ad hoc sensor networks | |
KR101174215B1 (ko) | 노드 장치, 노드 장치가 실행하는 방법 및 컴퓨터 판독가능한 기록 매체 | |
JP5240404B2 (ja) | ノード、転送方法、および転送プログラム | |
EP2329621B1 (en) | Key distribution to a set of routers | |
Chen et al. | Anonymous multipath routing protocol based on secret sharing in mobile ad hoc networks | |
Rajkumar et al. | Secure multipath routing and data transmission in MANET | |
Deng et al. | Multipath key establishment for wireless sensor networks using just-enough redundancy transmission | |
JP5839125B2 (ja) | ノードおよび通信方法 | |
JP5962750B2 (ja) | アドホックネットワークシステム、ノード、および通信方法 | |
Kohno et al. | Secure decentralized data transfer against node capture attacks for wireless sensor networks | |
Paik et al. | A3RP: anonymous and authenticated ad hoc routing protocol | |
JP5811809B2 (ja) | マルチホップ通信システム、通信装置及び通信プログラム | |
US20120216036A1 (en) | Encryption methods and systems | |
WO2013145026A1 (ja) | ネットワークシステム、ノード、検証ノードおよび通信方法 | |
JP5874823B2 (ja) | ネットワークシステム、ノード、および通信方法。 | |
JP6303426B2 (ja) | ノード装置、通信システム、通信方法および通信プログラム | |
Fusenig et al. | Acimn protocol: A protocol for anonymous communication in multi hop wireless networks. | |
Doraipandian et al. | An Efficient Key Management Scheme in Multi-Tier and Multi-Cluster Wireless Sensor Networks. | |
JP5018484B2 (ja) | 通信制御装置 | |
Sivakumar et al. | Improving the resiliency of Ariadne | |
Sandhya et al. | False data detection and dynamic selection of aggregator nodes with pair-wise key establishment in homogeneous wireless sensor networks | |
Taheri et al. | High secure routing protocol with authentication and confidentiality increased in wireless ad hoc networks | |
Santhi et al. | Randomized routing techniques for Ad-Hoc on-demand distance vector of wireless networks | |
Mansour et al. | Secure multihop key establishment protocols for wireless sensor networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141021 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141103 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5652556 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |