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.