検索
連載

Threadネットワークに参加するプロセス(前編)IoT時代の無線規格を知る【Thread編】(6)(3/3 ページ)

ホームネットワーク向け無線規格として注目を集める「Thread」を解説する本連載。今回は、ユーザーがThread製品を購入してきた際に、自身のThreadネットワークに参加させるプロセスである「コミッショニング」について、前後編に分けて紹介する。前編では、コミッショニングに関連する用語と、システムトポロジー、セキュリティの基礎について解説していく。

Share
Tweet
LINE
Hatena
前のページへ |       

セキュリティの基礎

認証と鍵の合意

 Threadネットワークで使われる基本のセキュリティは、楕円曲線を使ったJ-PAKEで、NIST P-256楕円曲線を使用する。原理的には、楕円曲線ディフィーヘルマンで鍵を合意し、パスフレーズを基に二者間の共通秘密を生成する。お互いを認証するために、シュノア署名をゼロ知識証明メカニズムとして用いる。ホワイトペーパーの著者により、J-PAKEシュノア署名について、2つのドラフトがWeb上に発行されている。

 J-JPAKE向けにTLS(Transport Layer Security)1.2のハンドシェークが開発され、TLSおよびDTLS双方で使用できるようなるかもしれない。DTLSはTLSの変形で、不確実なデータグラムベースのトランスポート(例えば、UDP:User Datagram Protocol)を使用した場合に最適となるよう、追加のフィールドがレコードに加えられている*)

*)一方、TLSはTCPのような信頼できるとランポートを前提とする。

ネットワーク内共有鍵

 Threadネットワークは、ネットワーク内共有鍵で保護されており、802.15.4MACのデータフレームを保護するためにMAC層にて使われる。これは、簡易な盗聴やネットワーク内共有鍵の知識を持たないThreadネットワーク外部からの崩壊の標的とされることから守る手段としては基礎的な方法である。ネットワーク内共有鍵なので、いかなるThreadデバイスでの妥協は、暗号鍵を明かしてしまうリスクが生じる。

 そのため、Threadネットワークでは、ネットワーク内共有鍵を唯一の防御方法として使うことはない。参加のプロセスの観点からは、認証および承認されたデバイスとジョイナー(初期状態)は区別する。ネットワーク内共有鍵は他のネットワークパラメータとともに、KEK(鍵を暗号化する鍵)で守ってジョイナーに安全に届けられる。

認証

 ジョイナーは、セキュリティの保たれたネットワークに外部から参加を試みる行為を行う。そのため、信頼することはできず、一般的な方法として、ジョイナーが適格であると検証できるかを確認する何らかの警備機能を持つ。また、同時にThreadネットワークへの参加を試みる悪党が影響を与えることを制限する。

 Threadネットワークでは、ジョイナーがジョイナールーターを見つけ、ジョイナールーターとポイント間通信形式で個別にコミュニケーションする。ジョイナールーターは、ジョイナーとの全てのデータトラフィックを警備し、制御された方法でコミッショナーにデータを転送し、認証プロトコル(DTLSハンドシェーク)を実行する。

 コミッショナーがジョイナーと直接の通信相手でない場合、ジョイナールーターはコミッショナーとDTLSハンドシェークをリレーしなくてはならない。コミッショニングリレープロトコルは、DTLSハンドシェークのカプセル化の実施と、DTLSハンドシェークをジョイナーからコミッショナーにシンプルな方法でリレーする両方をサポートする。

メンテナンス

 コミッショナーは、コミッショニングプロトコルを使い、セキュアな通信セッションを保つ。例えば、ネットワーク名のようにネットワーク特定のパラメータも変更する。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る