(58)【調査した分野】(Int.Cl.,DB名)
自己が搭載しているネットワーク参加処理部と無線ノードが搭載しているノード参加処理部との協働により参加を求めた無線ノードを無線ネットワークに参加させるものであって、上記無線ネットワークを形成している無線ノードに関する情報を管理しているコーディネータにおいて、
通信データの暗号化や認証に利用する鍵情報を格納している鍵不揮発性記憶部と、
上記無線ネットワークを形成している無線ノードに関する情報を消失したことを認識したときに、上記鍵不揮発性記憶部に格納されている鍵情報を適用し、かつ、新規性を保証する時変パラメータを挿入して再参加要求メッセージを生成して放送送信させる再参加要求通知部と
を備えることを特徴とするコーディネータ。
上記再参加要求メッセージに挿入するセキュリティカウンタ値は、セキュリティカウンタ値が取り得る値域の最終値であることを特徴とする請求項2に記載のコーディネータ。
無線ネットワークの参加に伴い、通信データの暗号化や認証に適用する新しい鍵情報を上記コーディネータから取得して管理する鍵管理部をさらに備えることを特徴とする請求項6に記載の無線ノード。
自己における処理の状態をユーザに通知する処理通知手段をさらに備え、無線ネットワークへの再参加処理をユーザに通知することを特徴とする請求項6又は7に記載の無線ノード。
無線ネットワークを形成している無線ノードに関する情報を管理していると共に、通信データの暗号化や認証に利用する鍵情報を格納している鍵不揮発性記憶部を有するコーディネータに搭載されるコンピュータを、
上記無線ネットワークを形成している無線ノードに関する情報を消失したことを認識したときに、上記鍵不揮発性記憶部に格納されている鍵情報を適用し、かつ、新規性を保証する時変パラメータを挿入して再参加要求メッセージを生成して放送送信させる再参加要求通知部と、
無線ノードが搭載しているノード参加処理部との協働により参加を求めた無線ノードを無線ネットワークに参加させるネットワーク参加処理部と
して機能させることを特徴とするコーディネータにおけるネットワーク再構築プログラム。
【発明を実施するための形態】
【0017】
(A)第1の実施形態
以下、本発明による無線ノード、コーディネータ、無線ネットワーク及びネットワーク再構築プログラムの第1の実施形態を、図面を参照しながら説明する。
【0018】
なお、第1の実施形態の無線ネットワークの具体的な仕様などは、限定されるものではないが、第1の実施形態の無線ネットワークの仕様などがZIPに準じていても良い。
【0019】
(A−1)第1の実施形態の構成
図3は、第1の実施形態の無線ネットワーク(マルチホップ無線ネットワーク)の構成例を示す説明図である。
図2において、第1の実施形態の無線ネットワーク1は、コーディネータ200と、点在している複数(
図2では6個の例を示している)の無線ノード100(100−1〜100−6)とを有している。ある時点を捉えてみると、無線ネットワーク1は、無線ネットワークの構築処理により、論理的には、コーディネータ200をトップノードとしたツリー状のネットワークを構成している。
図2には、コーディネータ200から、エンドノードである無線ノード100−3へ、無線ノード100−2及び無線ノード100−3を経由する経路と、コーディネータ200から、エンドノードである無線ノード100−6へ、無線ノード100−4及び無線ノード100−5を経由する経路とを含む無線ネットワーク1が記載されている。
【0020】
コーディネータ200は、
図2に示すようなツリー状構成の情報や、各無線ノード100との通信で適用する暗号鍵や、無線ノード100が到来したフレームと同一のフレームが既に到来していたかの判断に用いる時変パラメータなどのコーディネータ管理情報を保有している。また、各無線ノード100は、経路上で上り方向に隣接する無線ノードの情報や、コーディネータ200との通信で適用する暗号鍵や、直近に到来したフレームに挿入されていた時変パラメータなどの情報を保有している。例えば、コーディネータ200からある無線ノード100−n(nは1〜6のいずれか)への下り方向のフレームには、宛先の無線ノード100−nへ至るまでに介在して中継する全ての無線ノードの識別情報が挿入されており、一方、無線ノード100−nからコーディネータ200への上り方向のフレームには、このフレームを中継する次の無線ノードの識別情報(なお、次のノードがコーディネータの場合にはコーディネータの識別情報)が挿入される。
【0021】
第1の実施形態は、以上のような前提を有する無線ネットワーク1におけるコーディネータ200の不慮な電源断などによる情報消失時の対応を特徴としている。第1の実施形態のコーディネータ200は、情報を消失してしまったことを電源の再投入後に検知し、各無線ノード100に対してそのことをセキュアに通知し、無線ネットワーク1を迅速に再構築させようとする。
【0022】
図1は、第1の実施形態の無線ノード100(100−1〜100−6)の機能的構成を示すブロック図である。
図1は、主に、コーディネータ管理情報の消失がコーディネータから通知されて実行される機能面から内部構成を示している。エンドノードの無線ノードも中継をも行う無線ノードも、上述した機能面からは、同様な内部構成を有する。第1の実施形態の無線ノード100は、ハードウェア的に各部を構成して接続して構築されたものであっても良く、また、その一部が、CPU、ROM、RAMなどを用いてプログラム(無線ノードにおけるネットワーク再構築プログラム)を実行することで該当する機能を実現するように構築されたものであっても良く、いずれの構築方法が適用された場合であっても、機能的には、
図1で表すことができる。
【0023】
図2は、第1の実施形態のコーディネータ200の機能的構成を示すブロック図である。
図2は、主に、コーディネータ管理情報の消失を無線ノードに通知する機能面から内部構成を示している。第1の実施形態のコーディネータ200は、ハードウェア的に各部を構成して接続して構築されたものであっても良く、また、その一部が、CPU、ROM、RAMなどを用いてプログラム(コーディネータにおけるネットワーク再構築プログラム)を実行することで該当する機能を実現するように構築されたものであっても良く、いずれの構築方法が適用された場合であっても、機能的には、
図2で表すことができる。
【0024】
図1において、無線ノード100は、受信部101、セキュアメッセージ取得部102、再参加判断部103、ネットワーク参加処理部104、鍵管理部105、処理通知部106及び送信部107を有する。
【0025】
図2において、コーディネータ200は、再参加要求通知部201、鍵不揮発性記憶部202、鍵更新部203、ノード参加処理部204、送信部205及び受信部206を有する。
【0026】
受信部101は、他の無線ノード100−m(mは1〜6;当該無線ノードを規定するnとは異なる)又はコーディネータ200から到来したフレームを受信し、フレームに挿入されているメッセージなどを取り出して該当する機能部へ与えるものである。例えば、受信部101は、取り出したセキュリティ処理されている通信データをセキュアメッセージ取得部102へ与え、取り出したネットワーク参加処理に関わるメッセージをネットワーク参加処理部104へ与え、新しい鍵情報を鍵管理部105へ与える。
【0027】
セキュアメッセージ取得部102は、セキュリティ処理されている通信データから、送信元若しくは中継元が送信しようとしている通信データを取得するものである。セキュリティ処理には、例えば、データ守秘のための暗号化や、データの完全性確認のための認証符号の付加や、データの新規性を確認するための時変パラメータの付加や照合などが含まれる。セキュアメッセージ取得部102は、鍵管理部105から与えられたデータ暗号化や認証のための鍵情報を利用して、受信部101から与えられた通信データを復号したり認証したりする。復号し認証に成功するメッセージの中には再参加要求メッセージもあり、セキュアメッセージ取得部102は、再参加要求メッセージを取得したときには再参加要求メッセージ(若しくは再参加要求メッセージを受信した旨;以下では再参加要求メッセージそのものを与えるとして説明する)を再参加判断部103へ与える。
【0028】
ここで、時変パラメータは、例えば、時刻情報やカウンタ値であり、セキュアメッセージ取得部102には、時変パラメータ管理部102aが含まれている。
【0029】
例えば、IEEE802.15.4においてはカウンタ値が利用されており、IEEE802.15.4に準拠している場合であればカウンタが時変パラメータ管理部102aに該当する。IEEE802.15.4では、無線ノード100が通信フレームの新規性確認のために管理すべきカウンタとして、送信フレームカウンタ(Outgoing Frame Counter)と受信フレームカウンタ(Incoming Frame Counter)とを規定している(なお、フレームカウンタは機能面から捉えてセキュリティカウンタと呼ばれることもある)。送信フレームカウンタは、当該無線ノード100において、セキュアな通信フレームを生成して送信する毎に1インクリメン卜されるものである。一方、受信フレームカウンタは、他の無線ノード100から受信したセキュアな通信フレームの新規性確認のために利用されるものである。各無線ノード100は、他の無線ノード毎に、過去に受け入れた通信フレームの最新のカウンタ値を管理しており、他の通信相手からセキュアな通信フレームを受信したときには、当該通信フレームに挿入されているカウンタ値が、自身が管理する最新のカウンタ値よりも新しいか否かを確認する。これにより、過去に到来済みのセキュアな通信フレームを検知することができ、再生攻撃などの不正行為を防ぐことができる。
【0030】
また、省電力のため、各無線ノード100がスリープ状態から間欠的にウェイクアップして受信処理を行う無線ネットワーク1であれば、全ての無線ノード100−1〜100−6とコーディネータ200とはそれぞれ同期したタイマを有する。この場合であればタイマが時変パラメータ管理部102aに該当する。送信元が通信フレームに時刻情報を挿入することにより、受信側で通信フレーム間の新旧を判断することができる。
【0031】
コーディネータ200から各無線ノード100に与えられる再参加要求メッセージは、後述するように、コーディネータ200が収容していた無線ノードの情報を消失した状態で送出されるメッセージであるため、コーディネータ200から全ての無線ノード100−1〜100−6へブロードキャストされるものである。ここで、再参加要求メッセージは、例えば、ネットワークへの再参加を指示するコマンドであっても良く、また、親への経路を消失したことを意味するコマンドであっても良い。再参加要求メッセージは、この第1の実施形態で初めて導入されたメッセージであり、そのフォーマットは限定されるものではない。例えば、RPL(IPv6 Routing Protocol for Lowpower and Lossy Network)に規定されるシーケンスカウンタのように、当該シーケンスカウンタが示す値によってシステムがリブートされたことを識別できるようにしても良い。また例えば、再参加要求メッセージ用に独自コマンドを定義して受信側で再参加要求メッセージを認識できるようにしても良い。さらに例えば、フレームがUDPフィールドを有する構成の場合であれば、UDPフィールドに挿入する番号として再参加要求メッセージ用の番号を規定して受信側で再参加要求メッセージを認識できるようにしても良い。
【0032】
再参加判断部103は、セキュアメッセージ取得部102から再参加要求メッセージが与えられたときに、当該無線ノード100がネットワークへ再参加処理する必要があることを認識し、無線ネットワーク1への再参加依頼をネットワーク参加処理部104へ与えるものである。また、再参加判断部103は、無線ネットワーク1への再参加の必要性を認識したときには、再参加開始メッセージを処理通知部106へ与えるものである。ここで、再参加判断部103は、セキュアメッセージ取得部102より再参加要求メッセージを与えられた後、特定の手順を経た上でネットワークへ再参加処理する必要があることを判断するようにしても良い。例えば、親ノード(ツリー状でトップノード側に隣接している無線ノード)への経路が消失したことを確認する手順や、コーディネータ200との接続を確認するなど、システムがリブートされたことを確認する手順を実行した上で、無線ネットワーク1への再参加の必要性を判断するようにしても良い。
【0033】
ネットワーク参加処理部104は、再参加判断部103から無線ネットワーク1への再参加依頼が与えられたときに、無線ネットワーク1への再参加処理を実行するものである。ここで、ネットワーク再参加処理は、送信部107及び受信部101を介して、当該無線ノード100が無線ネットワーク1に参加するための情報を交換する処理などである。再参加処理は限定されるものではなく、例えば、再参加処理として、無線ネットワーク1について規定されている通常の再参加処理をそのまま適用することができる。再参加処理には、例えば、ネットワークの探索、ネットワークアクセス認証、鍵交換、通信アドレスの取得、通信リンクの確立、経路情報の確立などが含まれる。ここで、再参加処理は、当該無線ノード100が無線ネットワーク1へ初めて参加する際の処理と同様であっても良い。ネットワーク参加処理部104は、再参加処理により新たに取得した鍵情報を鍵管理部105へ与える。また、ネットワーク参加処理部104は、再参加処理が完了したときには、再参加完了メッセージを処理通知部106へ与える。
【0034】
無線ノード100が無線ネットワーク1へ参加する際の手順については、例えば、参考文献『岡庭勝弘他著、「日本国内における920MHz帯のZigBee IP仕様」、OKIテクニカルレビュー第221号、Vol.80、No.1、pp.70−73、2013年5月発行』に記載されている。
【0035】
鍵管理部105は、セキュアメッセージの取得やセキュアメッセージの生成に利用する鍵情報を管理するものである。鍵管理部105は、ネットワーク参加処理部104から再参加処理で新たに取得した鍵情報が与えられたときにはその鍵情報を保管し、また、当該無線ノード100が無線ネットワーク1へ参加している状態で受信部101から与えられた新しい鍵情報を保管するものである。ここで、受信部101から与えられる新しい鍵情報は、暗号化や認証などのセキュリティ処理が施されていても良い。鍵管理部105は、セキュアメッセージ取得部102に対して現在利用中の鍵情報を与えるものである。
【0036】
処理通知部106は、無線ノード100の状態をユーザに通知するものである。処理通知部106は、ディスプレイやLEDやスピーカなどのハードウェア的な通知構成を備えて、これらを利用して適宜通知する。処理通知部106は、再参加判断部103から再参加開始メッセージを与えられたときに、再参加処理を開始した旨をユーザに通知する。また、処理通知部106は、ネットワーク参加処理部104から再参加完了メッセージを与えられたときに、再参加処理を終了した旨をユーザに通知する。通知方法として、例えば、LEDの点灯色や点灯パターンによる方法や、合成音声を発音出力する方法を挙げることができる。
【0037】
送信部107は、各種メッセージ(より正確に言えばメッセージを含むフレーム)を他の無線ノード100−mやコーディネータ200に送信するものである。送信部107が送信するメッセージの中には、ネットワーク参加処理部104が生成した無線ネットワーク1への再参加処理に関わるメッセージも存在する。
【0038】
次に、コーディネータ200における各処理部201〜206の機能について説明する。
【0039】
再参加要求通知部201には、コーディネータ200自体が再起動したことを表す信号が、コーディネータ200内の他の処理部(例えばリセット処理部)から与えられるようになされている。例えば、コーディネータ200が管理するネットワーク情報や参加している無線ノード100に関する情報が消失する程度に長い不慮の電源断(言い換えると瞬断を除く)があって当該コーディネータ200が再起動したときに、再起動したことを表す信号が再参加要求通知部201に与えられる。再参加要求通知部201は、再起動したことを表す信号が与えられたときには、全ての無線ノード100−1〜100−6に対して再参加要求メッセージを送出させるものである。再参加要求通知部201は、鍵不揮発性記憶部202から取得した鍵情報を利用して、セキュアな再参加要求メッセージを生成し、生成した再参加要求メッセージを送信部205へ与えるものである。
【0040】
再参加要求メッセージには、受信した無線ノード100−nが最新のものと判断できる時変パラメータが挿入されている。再参加要求通知部201は、時変パラメータが挿入された再参加要求メッセージを、鍵不揮発性記憶部202から取得した鍵情報を利用してセキュリティ処理するものであっても良く、時変パラメータが挿入されていない再参加要求メッセージを、鍵不揮発性記憶部202から取得した鍵情報を利用してセキュリティ処理した後に時変パラメータを挿入するようにしても良い。
【0041】
再参加要求メッセージを受信した無線ノード100−nが受信した再参加要求メッセージが最新のものと判断できる時変パラメータとして、以下の例のようなものを挙げることができる。
【0042】
時変パラメータとして、例えば、4バイトのフレームカウンタ値(セキュリティカウンタ値)を利用する場合であれば、フレームカウンタ値として取り得る最大値「0xFFFFFFFF」を利用するようにしても良い。IEEE802.15.4では、間欠的に鍵情報を更新するようになされており、鍵情報の更新時にはフレームカウンタ値がリセットされるため、フレームカウンタ値が最大値「0xFFFFFFFF」に到達することはまずあり得ない。なお、再参加要求メッセージが全ての無線ノード100−1〜100−6で受信できることの確実性を高めるため、再参加要求メッセージの送信を複数回繰り返しても良く、この場合であれば、フレームカウンタ値を送信毎に1インクリメン卜して送り直す仕様にしても良い。例えば、再参加要求メッセージの1回目の送信時には、再参加要求メッセージに挿入するフレームカウンタ値を「0xFFFFFFF1」とし、それ以降、再参加要求メッセージの送信回数が増える毎に、「0xFFFFFFF2」、「0xFFFFFFF3」、…と1インクリメントしていくようにしても良い。
【0043】
時変パラメータとして、例えば、巡回型のタイマの計時時刻情報を利用する場合であれば、タイマ値として取り得る値の最大値を利用するようにしても良い。
【0044】
鍵不揮発性記憶部202は、例えば、EEPROMなどの不揮発性メモリを有し、鍵情報を保存しているものである。例えば、不慮の電源断などで、コーディネータ100の内部への電源供給が停止してしまった場合でも、鍵情報は鍵不揮発性記憶部202より取り出すことができる。鍵不揮発性記憶部202は、保存している鍵情報を再参加要求通知部201へ適宜与える。また、鍵不揮発性記憶部202は、鍵更新部203から新しい鍵情報が与えられたときには、与えられた鍵情報を上書き保存するものである。
【0045】
不慮の電源断などでの情報消失による不都合を回避しようとした場合、コーディネータ200が管理するネットワーク情報や参加している無線ノード100に関する情報や時変パラメータなども不揮発性メモリに記憶させることも考えられる。しかしながら、不揮発性メモリとして代表的なEEPROMは、更新回数に制約が設けられていることが多く、更新頻度が大きい時変パラメータなどの格納には不向きである。そのため、再参加要求メッセージの生成や、再参加要求メッセージの無線ノード100−nによる受信を可能とする鍵情報だけを不揮発性メモリに保存することとしており、この点が、第1の実施形態の一つの特徴となっている。
【0046】
鍵更新部203は、無線ネットワーク1でセキュリティ処理に利用されている鍵情報を新しい鍵情報に更新するものである。鍵更新部203は、新しい鍵情報を生成し、又は、新しい鍵情報が図示しない上位装置などから与えられることにより、この新しい鍵情報を無線ネットワーク1に属する全ての無線ノード100−1〜100−6に送信部205を介して配送する。また、鍵更新部203は、無線ネットワーク1で新規にセキュリティ処理に利用することに決定した新しい鍵情報を、ノード参加処理部204、や鍵不揮発性記憶部202に与えるものである。
【0047】
ここで、鍵情報は、例えば、共通鍵暗号を用いた暗号化や認証符号生成に利用したり、鍵付きハッシュ関数を用いたハッシュ値生成に利用したりする任意長の鍵ビット列であり、通信データに対してセキュリティ処理するために利用されるものである。また、鍵情報には、任意長の鍵ビット列と共に、当該鍵ビット列の識別情報(鍵番号)を含んでいても良い。第1の実施形態の無線ネットワーク1は、全ての無線ノード100−1〜100−6とコーディネータ200とで同一の鍵情報を共有するものである。
【0048】
ノード参加処理部204は、無線ノード100−n(のネットワーク参加処理部104)との間で、無線ノード100−nの無線ネットワーク1への参加処理を実施するものである。ノード参加処理部204は、送信部205及び受信部206を介して、無線ノード100−nとネットワーク参加のための情報を交換するものである。ノード参加処理部204は、鍵更新部203から新しい鍵情報が与えられたときには、無線ノード100−nとのネットワーク参加認証処理の中で当該新しい鍵情報を共有するようにしても良い。
【0049】
送信部205は、各種メッセージを無線ノード100に送信するものである。送信するメッセージの中には、再参加要求通知部201から与えられた再参加要求メッセージがある。また、送信するメッセージの中には、ノード参加処理部204で生成された無線ノード100−nのネットワーク参加処理に伴うメッセージがある。送信部205は、鍵更新部203から与えられた新しい鍵情報を全ての無線ノード100−1〜100−nへ送信するものである。
【0050】
受信部206は、無線ノード100から与えられたメッセージを受信するものである。受信部206が受信するメッセージの中には、ネットワーク参加処埋に関わるメッセージがあり、ネットワーク参加処埋に関わるメッセージを受信したときには、受信部206は、受信したネットワーク参加処埋に関わるメッセージをノード参加処理部204へ与える。
【0051】
(A−2)第1の実施形態の動作
次に、上述したような構成を有する無線ノード100とコーディネータ200とを含む無線ネットワーク1の動作を説明する。以下では、コーディネータ200が管理するネットワーク情報や参加している無線ノード100に関する情報(コーディネータ管理情報)が消失した際に、無線ネットワーク1を再構築する場合の動作を説明する。
【0052】
図4は、第1の実施形態の無線ネットワーク1における動作例を示すシーケンス図である。
図4は、
図3とは異なり、無線ノードの数が3個の場合を示しているが(符号として100−1〜100−3を用いている)、無線ノードの数が3個以外の場合にも同様な動作が実行される。
【0053】
コーディネータ200がコーディネータ管理情報を消失した際に行う無線ネットワーク1を再構築する動作は、大きくは、3つのフェーズPH100、PH200、PH300に分けられる。
【0054】
第1の実施形態の場合、第1フェーズPH100の動作に特徴を有し、第2及び第3のフェーズPH200及びPH300の動作は、既存の動作と同様であっても良く、第2及び第3のフェーズPH200及びPH300の動作は、以下で説明する動作に限定されない。
【0055】
第1フェーズPH100:ネットワーク再参加要求メッセージの送信
不慮の電源断などによりコーディネータ管理情報が消失された際には、コーディネータ200は再起動する(ステップS101)。
【0056】
この再起動により、コーディネータ200の再参加要求通知部201によって、鍵不揮発性記憶部202から鍵情報が取得(回復)され、取得した鍵情報が適用されて再参加要求メッセージが生成される(ステップS102)。そして、生成された参加要求メッセージは、全ての無線ノード100−1〜100−3にブロードキャストされる(ステップS103−1〜S103−3)。生成された参加要求メッセージには、上述したように、メッセージの新規性を確認できるように操作された、フレームカウンタ値(セキュリティカウンタ値)や時刻情報などが該当する時変パラメータが挿入されている。
【0057】
なお、各無線ノード100においては、コーディネータ200がコーディネータ管理情報を消失しても、それに無関係に隣接する無線ノードの情報を保持しているので、コーディネータ200からの参加要求メッセージを直接受信できない無線ノードも他の無線ノードが中継処理した参加要求メッセージを受信することができる。
【0058】
無線ノード100−n(nは1〜3)においては、到来した再参加要求メッセージが受信部101で受信されてセキュアメッセージ取得部102に与えられ、セキュアメッセージ取得部102によって、鍵管理部105が保存している鍵情報が適用されてメッセージ若しくは通信データが認証されると共にその新規性が検証され、認証や検証に成功すると、再参加判断部103によって、当該無線ノード100−nが無線ネットワーク1へ再参加処理する必要があると判断され、無線ネットワーク1への再参加依頼がネットワーク参加処理部104へ与えられる(ステップS104−1〜S104−3)。また、通信データが暗号化されている場合には、上述した認証や検証を行う際に復号される。
【0059】
第2フェーズPH200:ネットワーク再参加処理
コーディネータ200の鍵更新部203によって新しい鍵情報が生成され(ステップS201)、生成された鍵情報が鍵不揮発性記憶部202に格納される(ステップS202)。
【0060】
再参加依頼の到来により、無線ノード100−nのネットワーク参加処理部104によって、無線ネットワーク1に対する参加処理が開始され、無線ノード100−nのネットワーク参加処理部104とコーディネータ200のノード参加処理部204の協働により、無線ノード100−nを無線ネットワーク1へ参加させる各種処理が順次実行される(ステップS203−1〜S203−3)。
【0061】
上述したように、参加処理には、例えば、ネットワークの探索、ネットワークアクセス認証、鍵交換、通信アドレスの取得、通信リンクの確立、経路情報の確立などが含まれる。
【0062】
無線ノード100−nのネットワーク参加処理が成功したときには、コーディネータ200のノード参加処理部204は、鍵更新部203から新しい鍵情報を取込んで無線ノード100−nと共有させるべく、無線ノード100−nに送信させる。この送信により、無線ノード100−nのネットワーク参加処理部104が新たに鍵情報を取得したときには、その鍵情報は鍵管理部105へ与えられて格納される。
【0063】
第3フェーズPH300:鍵情報の更新
以上のようにして再参加要求を受信した全ての無線ノード100−1〜100−3の無線ネットワーク1への参加(再参加)がなされた以降は、コーディネータ200の鍵更新部203において、定期的若しくは不定期に新しい鍵情報が生成され(ステップS301)、生成された新しい鍵情報が送信部205を介して全ての無線ノード100−1〜100−3へ送信される(ステップS302−1〜S302−3)。
【0064】
無線ノード100−nに新しい鍵情報が到来すると、受信部101によって受信されて、その鍵情報が鍵管理部105に与えられて保管される(ステップS303−1〜S303−3)。
【0065】
一方、コーディネータ200においては、生成された新しい鍵情報が鍵更新部203から鍵不揮発性記憶部202に与えられて鍵不揮発性記憶部202に記憶される(ステップS304)。
【0066】
このような無線ノード100−1〜100−3とコーディネータ200とで共有された新しい鍵情報が現在利用中の鍵情報に設定される。
【0067】
(A−3)第1の実施形態の効果
第1の実施形態によれば、コーディネータが電源断などにより有効に動作し得ない状態から電源投入などにより有効に動作し得る状態に復帰した際に、全ての無線ノードが受信、取得可能な再参加要求メッセージを全ての無線ノードに送出して再参加を促して、コーディネータ及び無線ノードが参加処理を実行するようにしたので、無線ネットワークを迅速に再構築することができる。
【0068】
すなわち、無線ノードがコーディネータに異常が発生して無線ネットワークが機能しなくなっていることを認識した後に参加処理を開始する場合と第1の実施形態で参加処理を開始する場合とを比較すると、前者では通信できなかったことなどに基づいて無線ノードが自律的に再参加の必要性を認識するのに対して、後者は正常に復帰したコーディネータが無線ノードに参加処理を促すので、後者の方が、参加処理を開始するまでの時間が短くなり、無線ネットワークの再構築を迅速に行うことができる。
【0069】
上述した効果を発揮するためには、全ての無線ノードが受信、取得可能な再参加要求メッセージを生成しなければならない。無線ノードが再参加要求メッセージを受信、取得可能とするためには、無線ノードが再参加要求メッセージを新規と捉えること、無線ネットワーク全体で共有されている鍵情報が再参加要求メッセージの生成に利用されていることを要する。無線ノードが再参加要求メッセージを新規と捉えるためには、再参加要求メッセージに挿入されている時変パラメータが最新であることを要する。
【0070】
そこで、コーディネータに異常が生じても、鍵情報及び時変パラメータが消失しないように鍵情報及び時変パラメータを不揮発性記憶部に格納しておくことが考えられる(本発明の他の実施形態となっている)。
【0071】
しかし、このようにした場合、コーディネータの信頼性を損なう恐れがあり、第1の実施形態のように、鍵情報だけを不揮発性記憶部に格納しておくことが好ましい。
【0072】
IEEE802.15.4通信規格のように、時変パラメータとして送信フレームカウンタ値(セキュリティカウンタ値)を利用する場合、当該送信フレームカウンタ値は、セキュアな通信データの生成毎に1インクリメントされる値であるため、更新毎に不揮発性記憶部に記憶するのは現実的ではない。不揮発性記憶部として一般的なEEPROMは更新回数に制約(動作を保証する上限回数)があり、高頻度の更新に適しておらず、送信フレームカウンタ値をも不揮発性記憶部に格納するようにした場合、更新回数がEEPROMの上限回数に達してコーディネータの動作を保証できないことも生じる。そのため、第1の実施形態のように、鍵情報だけを不揮発性記憶部に格納しておくことが好ましい。
【0073】
なお、コーディネータ及び無線ノード間の通信が数日(例えば、1日や1週間)に1回程度の無線ネットワークであれば、時変パラメータをも不揮発性記憶部に格納しておくようにしても、実際上、不都合が生じない。
【0074】
(B)他の実施形態
上述した第1の実施形態の説明においても、種々変形実施形態に言及したが、さらに以下に例示するような変形実施形態を挙げることができる。
【0075】
第1の実施形態の説明では、時変パラメータとして、値が大きいほど新しいと判断されるセキュリティカウンタ値を利用する場合や、現在の時刻情報を利用する場合に言及したが、時変パラメータはこれらに限定されるものではない。例えば、値が小さいほど新しいと判断されるセキュリティカウンタ値を時変パラメータとして利用するようにしても良い。
【0076】
第1の実施形態では、共通鍵を適用して再参加要求メッセージを認証する例を示したが、認証方法はこれに限定されるものではない。例えば、コーディネータの秘密鍵を用いてデジタル署名を作成し、無線ノードが対応する公開鍵を用いてデジタル署名を検証することで、再参加要求メッセージを認証するようにしても良い。
【0077】
上記説明では、無線ネットワークを構成する要素を「コーディネータ」、「無線ノード」と表現したが、他の呼び名を適用している無線ネットワークであっても同様な構成要素で構成されている場合には、本発明の技術思想を適用することができる。例えば、「コーディネータ」に相当する要素を「親局」、無線ノードに相当する要素を「子局」と表現している無線ネットワークに対しても本発明の技術思想を適用することができる。特許請求の範囲では、「コーディネータ」及び「無線ノード」を用いているが、他の呼び名を適用している場合も、特許請求の範囲に表現されているものとする。