メディア
連載
» 2018年09月05日 11時00分 公開

Bluetooth mesh入門(3):デバイスの管理 〜Bluetooth meshネットワークへの追加と削除 (2/3)

[Martin Woolley(Bluetooth SIG),EDN Japan]

ネットワークへのデバイス追加

 デバイスをネットワークに追加するには、ネットワーク上の他のノードが持つものと同じネットワークキーをデバイスに渡します。もちろん、悪意あるデバイスがそのときに行われる通信を傍受してNetKeyを盗むことのないように、追加プロセスそのものがセキュアである必要があります。

 新しく購入したデバイスを既存のBluetooth meshネットワークに追加するには、デバイスのメーカーからの指示に従い、プロビジョナーで追加作業を行います。こうして、デバイスはBluetooth meshネットワークのメンバー、つまりノードとなります。

 次のフローチャートに示すように、このプロセスはいくつかのステップから構成されます。

図2 プロビジョニングのプロセス

【ステップ1. ビーコニング】

 Bluetooth meshのネットワーク仕様で、いくつかのGAP ADタイプが新しく導入されました。meshビーコンADタイプ*2)もその一つです。

*2)「GAP」「ADタイプ」について:GAPはGeneric Access Profileを指します。Bluetooth LEアーキテクチャの一部で、Bluetoothデバイスがコネクションレスモードでも、「アドバタイジング」でデータをブロードキャストし、「スキャニング」を通してデータを受信できるようにするものです。「ADタイプ」とは、アドバタイジングデータタイプのことで、アドバタイジングパケットに入れることのできるデータ項目を指します。GAPおよびADタイプについては、Bluetoothコア仕様書およびコア仕様書の追補で詳しく定められています。

 デバイスは、meshビーコンADタイプを使用することで、自分がプロビジョニングされていないデバイスであることをアドバタイジングし、プロビジョニング可能であることを示します。場合によってはユーザーが、特定のボタンを組み合わせて押したりボタンを長押ししたりするなど、メーカーから指示された手順で、新しいデバイスのアドバタイジングを開始する必要があります。

 ユーザーは、プロビジョナーで「デバイスのネットワーク追加」のプロセスも開始します。このプロセスが開始されると、プロビジョナーは、ビーコニングしているデバイスからのアドバタイジングパケットを受信します。

 通常、プロビジョナーの役割を果たすのはスマートフォンまたはタブレットのアプリであるため、具体的な手順としては、スマートフォンのロックを解除し、アプリを起動して、場合によってはアプリにログインし(セキュリティ強化のため)、アプリのUI(User Interface)を通してビーコニングしているデバイスの検出を開始することになります。こうして、プロビジョナーは新しいデバイスを検出し、プロビジョニングプロセスの次段階に進めるようになります。

【ステップ2. インビテーション】

 次にプロビジョナーは、プロビジョニング対象となるデバイスにインビテーション・メッセージを送ります。インビテーションは、プロビジョニングプロトコルのProvisioning Invite PDUで送ります。これに対する応答として、ビーコニングを行っているデバイスは、Provisioning Capabilities PDUで自身に関する情報を返します。

 Provisioning Capabilities PDUでは、デバイスのエレメント数、サポートしているプロビジョニング関連アルゴリズムなどの情報が送られます。また、デバイスが持つ入出力機能の種類も示します。この情報は認証ステップで使用されます。

【ステップ3. パブリックキーの交換】

 Bluetooth meshデバイスは、プロビジョナーを含め、FIPS P-256楕円曲線暗号アルゴリズムを採用しており、パブリックキーを必要とします。このアルゴリズムに基づいた非対称暗号を使用して作成したセキュアなチャネルで、以後のプロビジョニングのプロセスが実行されます。このため、プロビジョナーとデバイスとの間でパブリックキーの交換が行われます。デバイスは、QRコードなどのOut of Band(Bluetooth無線以外の伝達手段)を使用してパブリックキーを提供する場合もあります。

【ステップ4. 認証】

 プロビジョナーは、新しいデバイスの機能に関して得た情報に基づき、ボタンを押すなどのユーザーからのアクションに対し、1桁または複数桁の数値を出力するよう指示するメッセージをデバイスに送ります。

 どのような形で数値が出力されるかは、デバイスによって異なります。3桁の数値をLCDパネルに表示するデバイスもあれば、認証用の数値の数だけ赤のLED灯を点滅させるデバイスもあります。ユーザーはデバイスが出力する値を確認し、プロビジョナーのUIを通してその値をプロビジョナーに入力します。

 デバイスとプロビジョナーは、デバイスが出力したランダムな数値を含むデータから求められた暗号学的ハッシュを交換し、互いの認証を完了します。

【ステップ5. プロビジョニングデータの配布】

 認証が済むと、各デバイスのプライベートキーと、交換されたお互いのパブリックキーを使ってセッションキーが生成されます。セッションキーを使って、プロビジョニングのプロセスを完了するために必要なデータ配付のセキュリティを確保します。このデータにはNetKeyと、デバイスの一意のアドレスであるユニキャストアドレスが含まれます。

 プロビジョニングが完了すると、プロビジョニングされたデバイスはそのネットワークのNetKey、IVインデックスと呼ばれるセキュリティパラメータ、プロビジョナーが割り当てたユニキャストアドレスを持つことになります。こうして新しいデバイスは正式にノードとなり、そのBluetooth meshネットワークのメンバーとなります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.