日経エレクトロニクス2014年9月15日号のpp.86-91「運用上のトラブルを未然に防止、自己修復やセキュリティーが肝」を分割転載した後編です。前編はこちら

工場や発電所、交通、農業などさまざまな分野で、現場の状態を常に監視し管理や制御に応用するために、無線センサーネットワークへの期待が大きい。ただし、信頼性の高いネットワークを構築するには、センサーネットならではの要求仕様を理解し、構築の勘所を学ぶ必要がある。今回は、安全な無線センサーネットワークの構築で不可欠なセキュリティーの3原則について解説する。

 無線センサーネットワークを構築する目的は、センサー設置地点の正しい計測データを得ることにある。データはネットワーク所有者の所有物であり、第三者に漏洩すると業務上不都合なことが起き得る。例えば生産量や装置の状態は、競合相手には知られたくない場合がほとんどである。また、データは間違っていてはならず、外部から改ざんされると著しいダメージを受ける可能性がある。例えばデータセンターの温度管理の例では、外部から異なる温度情報を入力されると、サーバーの温度が異常に高くなって故障する事態に発展しかねない。

 幸い、情報ネットワークには図3に示すように既に確立したセキュリティーの3原則がある。これらに配慮することで安全な無線センサーネットを構築することは可能で、Dust社の製品も例外ではない。以下では、それぞれの原則の意味するところと、Dust社の製品での具体的な実装を説明する。

図3 セキュリティーの3原則
Dust Networks社の製品は、既に確立されたセキュリティーの3原則を忠実に守り、ネットワークを構成するノードに分散して実装している。
(1)機密性(Confidentiality)

 ネットワークで転送されるデータは、意図された受信者以外の誰も読めないことを保証する必要がある。そのためには図4に示すようなデータの暗号化が必要になる。Dust社の製品は暗号化アルゴリズムに米NIST(国立標準技術研究所)が最も安全な暗号化技術として標準化した128ビットのAES(Advanced Encryption Standard)を採用している。AESは、米NSA(国家安全保障局)によって最高機密文書の暗号化アルゴリズムにも指定されており、これまでこの方式の欠陥が理由で問題が生じたことは一度も報告されていない。

図4 共有鍵とノンスを用いて暗号化
送信元のモートは、128ビットのAES暗号を利用してプレーンテキストを暗号文に変換して送信する。暗号化には、秘密の共有鍵と、その鍵を使用中に2度と同じ数が現れないように設定された数字であるノンスを用いる。共有鍵を持っている者のみがプレーンテキストを復号できる。
[画像のクリックで拡大表示]
(2)完全性(Integrity)

 受信されたすべてのメッセージが送信されたメッセージと全く同一で、内容への追加、削除、変更がないことを完全性と言う。メッセージの完全性を保証するために用いるのがMIC(Message Integrity Code)であり、Dust社は数ある方式の中でも実績のあるCCMP(Counter mode with Cipher-block chaining Message authentication code Protocol)を利用して完全性を確認している。

 CCMP方式は、無線LANのセキュリティーを定めた国際標準規格「IEEE802.11i」が規定するWPA(Wi-Fi Protected Access)2の標準暗号化プロトコルである。WEP(Wired Equivalent Privacy)やWPAの暗号化プロトコルであるTKIP(Temporal Key Integrity Protocol)といった、RC4をベースとした暗号化プロトコルと比べて安全性が高い。CCMPでは、プレーンテキストを特定のブロック長に区切ってブロック暗号化を施し、その結果と次のブロックの排他的論理和をとるといった操作をテキスト全体に繰り返してMICを生成する。

(3)真正性(Authenticity)

 真正性とは、ある送信元から送信された(とされる)メッセージが、本当にその送信元から送信されていることを指す。真正性を保つためには、図5に示すようにCCMPに加えてノンス(Nonce)を使う手法がある。これにより、何者かによってコピーされたパケットが再度送信されたものかどうかを見分けることができる。

図5 2段階の鍵を仕様
Dust Networks社のシステムでは、エンドツーエンドのセッション鍵と、ホップごとのリンク鍵という2段階の鍵を使用している。中継を担うモートはデータを解読する鍵を持っておらず、プレーンテキストの内容を知り得ない。
[画像のクリックで拡大表示]