Bluetooth Mesh サブネット・ブリッジング
技術概要
リリース: | 1.0.0 |
文書バージョン: | 1.0 |
最終更新日: | 2023年9月19日 |
著者: |
マーティン・ウーリーBluetooth SIG |
Version |
Date |
Author |
Changes |
1.0.0 |
September 19, 2023 |
Martin Woolley, Bluetooth SIG |
Initial version |
注 Bluetooth Mesh プロファイル仕様は名称が変更され、現在は次のように呼ばれている。Bluetooth Mesh プロトコル仕様と呼ばれるようになった。本書と関連論文でバージョン1.1仕様を参照する場合はこの名称を使用するが,バージョン1.0仕様を参照する場合は引き続きBluetooth Mesh プロファイル仕様書仕様と呼ぶことにする。 |
1.背景
サブネット・ブリッジングは、Bluetooth® Mesh プロトコル仕様のバージョン1.1で導入された。Bluetooth Mesh サブネットブリッジングの機能と利点を十分に理解するためには、Bluetooth Mesh バージョン1.0のある側面を理解する必要がある。このセクションでは、Bluetooth Mesh サブネット・ブリッジング機能の検討に役立つ背景を説明します。
1.1 サブネット
Bluetooth® Mesh ネットワークは、すべてのユニキャストアドレスのアドレス空間を構成する。Bluetooth Mesh ネットワークは、この共通のアドレス空間を共有する1つまたは複数のサブネットで構成される。各サブネットには一意のネットワーク・キー(NetKey)があり、ノードのプロビジョニング時にこのNetKeyが提供された場合、そのノードはそのサブネットのメンバー 。
ノードは複数のNetKeyを持つことができ、したがって複数のサブネットのメンバー 。しかし、Bluetooth Mesh プロファイル仕様のバージョン1.0では、あるサブネットから別のサブネットにメッセージを渡す方法はなかった。サブネットは互いに完全に隔離されていました。
1.2 エリア・アイソレーション
ネットワークを複数の異なるサブネットに分割することで、ネットワークのある部分を別の部分から分離できることは、多くのメリットをもたらす。
1.2.1 エリアの隔離とセキュリティ
あるサブネット内のデバイスが他のサブネット内のデバイスと相互作用できないようにすることは、セキュリティ上の理由から有用であり、おそらく不可欠でさえある。ホテルの部屋を考えてみよう。部屋のスマート・デバイスは、同じ部屋の他のデバイスと通信することはできるが、部屋の外のデバイスと通信することはできない。ホテルの各部屋のデバイスを独自のサブネットに置くことで、各部屋のデバイスを他の部屋のデバイスから隔離し、ホテルの客室セキュリティ要件を満たすことができます。
図1-ホテルの客室とサブネットエリアの分離
1.2.2 エリア分離とネットワーク効率
サブネットはまた、ネットワーク・トラフィックを建物の1つのエリアに封じ込めるために使用することもできる。これは、メッセージが意図されたすべての宛先ノードに到達するために中継が必要で、Bluetooth Mesh マネージド・フラッディングが使用されている場合に特に便利です。サブネットは、デバイスのグループの周囲に境界を置き、メッセージが中継されてもその境界を越えることができないようにすることで、ターゲットとなるデバイスが存在しないネットワークの一部に無関係なメッセージを中継することを避けることができると考えることができます。
この技法は、オフィスのあるフロアと別のフロアを分離するためによく使われ、これを図2に示す。3階の照明スイッチから送信されたメッセージは、同じサブネットの一部であるため、その階の天井にある中継ノードによって中継されるが、スイッチからの送信を受信する可能性のある上下の階の中継ノードはすぐにそれを破棄するため、メッセージが階を越えて伝播することはない。
図2 - オフィス内のサブネット
1.3 リプレイ攻撃とシーケンス番号
悪意のあるデバイスが受動的にメッセージを受信し、それを後で再送信することで、おそらくネットワークに不正な変更を引き起こす可能性がある。このような攻撃はリプレイ攻撃と呼ばれる。Bluetooth® Mesh は、リプレイ攻撃を防ぐリプレイ保護メカニズムを定義している。
リプレイ・プロテクションでは、すべてのメッセージに関連するnonce値が設定される。このnonce値には24ビットのシーケンス番号(SEQ)が含まれ、送信元ノードは新しいメッセージを送信するたびにこの値をインクリメントしなければならない。仮にノードが5秒に1回メッセージを送信する場合、SEQ値は2年以上かけて一周する必要がある。しかし、これを防ぐために、SEQ値はネットワーク全体で共有される32ビットの初期化ベクトル(IV)値によって拡張される。IVは、SEQ値が枯渇する危険性があるたびに、IV更新手続きと呼ばれる手続きによって自動的に更新される。
32ビットのIV値そのものはメッセージには含まれない。その代わり、IVIと呼ばれる1ビットのフィールドが、ネットワークが一度に使用する可能性のある2つのIV値のうち、どちらがメッセージに関連するかを示す。
受信デバイスは、各ソース・アドレスから最後に正常に処理されたメッセージのIV値とSEQ値を追跡する。同じ送信元ユニキャストアドレスから最後に受信したメッセージよりも数値的に高いIV値とSEQ値の組み合わせを持たないメッセージを受信した場合、それはリプレイ攻撃の可能性が高いとして破棄される。
1.4Bluetooth® Mesh 1.0 におけるサブネットの評価
Bluetooth Mesh プロファイル仕様のバージョン1.0で定義されているサブネットは、セキュリティとネットワーク利用効率に優れた利点をもたらします。しかし、サブネットが課すエリア分離の絶対的な性質のために、満たすことが難しい要件もあります。また、利用効率上の理由から、ネットワーク内の無関係な部分へのメッセージの移動を制限するためにサブネットを使用する場合、ネットワーク計画者はその使用方法を慎重に考えなければなりません。インストーラーは、ネットワークを最初に作成する際に、必要なサブネットを設定しなければなりません。
Bluetooth Mesh ディレクテッド・フォワーディング(Bluetooth Mesh Directed Forwarding Technical Overview ペーパーを参照)は、ノード間のトラフィックの流れをネットワークの関連する部分に制限する優れたアプローチを提供します。サブネットでも似たような結果が得られることがありますが、サブネットのエリア分離は、Bluetooth Mesh メッセージの処理を選択したデバイスのみに限定するという点で、Directed Forwardingほど正確にターゲットを絞った方法では使用できません。Bluetooth Mesh Directed Forwardingは現在、ネットワーク利用効率の要求に対応する方法として推奨されています。
ネットワーク・セキュリティ・メカニズムとしてサブネットを使ったエリア・アイソレーションは強力な能力である。しかし、あるホテルが各客室にサブネット・エリア・アイソレーションを導入したとしよう。技術的にスマートなホテルの部屋ではデバイスやシステムを手動や自動でコントロールできるため、宿泊客は大喜びです。ホテルの経営陣は、ある部屋のデバイスが他の部屋のデバイスに干渉するために使用されることがないことに満足している。しかし、ホテル経営者は、各部屋のセンサーが稼働率データを報告できるゲートウェイを設置し、TCP/IPベースのGUIシステムに供給することで、部屋の清掃やランドリーサービスのスケジューリングをさりげなく行えるようにしたいと考えている。これは、Bluetooth® Mesh 1.0サブネットが使用されている場合、各ホテルの部屋にゲートウェイノードを設置しなければ実現できない。
2.サブネット・ブリッジについて
サブネットが提供するエリアの分離を損なうことなく、異なるサブネットにあるデバイス間の通信が必要なユースケースが時々あります。Bluetooth Mesh サブネット・ブリッジ機能はこれを可能にします。
2.1 能力とメリット
Bluetooth Mesh サブネット・ブリッジング機能により、ネットワークはサブネットを使用してエリアを分離するだけでなく、隣接する異なるサブネット内の特定のデバイス間の通信を選択的に許可することができます。
2.1.1 サブネットブリッジを有効にする
ネットワークプランナーは、ネットワーク内のどのノードをサブネットブリッジとして機能させ、隣接する2つのサブネット内の特定のノード間の制御された通信を可能にするかを決定する必要があります。ブリッジ・コンフィギュレーション・サーバー・モデルの存在は、Bluetooth Mesh サブネット・ブリッジングがノードによってサポートされていることを示す。
ノードをサブネットブリッジにするには、サブネットブリッジと呼ばれるステートの値をenabledに設定する必要があります。その後、Bluetooth Mesh ノードのサブネットブリッジ機能を設定するエントリを、ブリッジングテーブルと呼ばれるステートに入力する必要があります。
2.1.2 ブリッジテーブルの状態
ブリッジングテーブルは、Bluetooth Mesh サブネットブリッジングを実行するソースアドレスとデスティネーションアドレスを定義するエントリーを含むステートである。エントリは、あるアドレスからもう一方のアドレスへの一方向のみ、または両方向のブリッジングを定義する。どちらの場合も、2つのサブネットのネットワークキーのインデックス値も、 各ブリッジングテーブルエントリーに含まれる。Bluetooth® Mesh プロトコル仕様のセクション4.2.42に、ブリッジングテーブルエントリーの完全なフォーマットが記載されており、ここでも図3に繰り返し記載されている。
フィールド |
サイズ(ビット) |
Description(説明) |
道順 |
8 |
ブリッジされたトラフィックの許可された方向 |
NetKeyIndex1 |
12 |
最初のサブネットのNetKeyインデックス |
NetKeyIndex2 |
12 |
2番目のサブネットのNetKeyインデックス |
住所1 |
16 |
最初のサブネットのノードのアドレス |
住所2 |
16 |
第2サブネットのノードのアドレス |
図3 - ブリッジ・テーブル状態エントリーのフォーマット
Directionsフィールドは0x01または0x02の値を取る。
0x01は、ソース・アドレス(SRC)がAddress1ブリッジング・テーブル・エント リに等しく、宛先アドレス(DST)がAddress2に等しいメッセージに対して、一方 向のブリッジングのみが許可されることを意味し、メッセージが最初のサブネット から2番目のサブネットに転送されることを許可する。
0x02は、送信元アドレス(SRC)がAddress2に等しく、宛先アドレス(DST)がAddress1に等しいメッセージに対して、第2サブネットから第1サブネットへのブリッジングを含む、いずれかの方向にブリッジングが実行される可能性があることを意味する。
2.1.3 サブネット・ブリッジングとセキュリティ
サブネットは、ネットワークの異なる部分を互いに分離することを可能にし、あるサブネットのノードが別のサブネットのノードと通信するのを防ぐなど、シナリオによってはセキュリティ上の利点がある。
Bluetooth Mesh サブネット・ブリッジングはサブネットをまたいだ通信を可能にする。しかし、ブリッジングテーブルは、特定の送信元アドレスと宛先アドレスのペアと、特定のサブネットのペアの間でのみ通信が可能であることを保証する。たとえば、ホテルでは、宿泊客が、Bluetooth Mesh サブネットブリッジングとBluetooth Mesh ダイレクトフォワーディングを使用して、ホテル全体で自分の部屋が属するサブネットからハウスキーピングチームにメッセージを送信するボタンを押すことで、ハウスキーピングチームに自分の部屋を掃除してほしいことを知らせることができるかもしれません。しかし、宿泊客の部屋の他のデバイスは、そのサブネット外の他のノードと通信することはできません。Bluetooth Mesh サブネットブリッジングでは、サブネット間の通信を選択的かつ制御的に行うことができますが、それ以外ではエリア分離によるセキュリティ上の利点は維持されます。
サブネット・ブリッジは、デスティネーション・ノードと同じように、サブネット・ブリッジが処理するメッセージのソース・アドレスに対してIV値とSEQ値を追跡することで、リプレイ保護を実行する。IV値とSEQ値の組み合わせが、特定の送信元アドレスからブリッジング用に最後に受信したものより数値的に高くない場合、そのメッセージは破棄される。このようにして、サブネット・ブリッジは、サービス拒否攻撃から次のサブネットを保護することで、次のサブネットの宛先ノードの前にリプレイ保護を実行する。
2.1.4 サブネット・ブリッジングの動作
Bluetooth Mesh サブネット・ブリッジは、サブネット・ブリッジ・ノード内のネットワーク・レイヤで実行される。メッセージを受信すると、Address1とAddress2フィールドがメッセージの送信元アドレスと宛先アドレスに一致するエントリ、またはAddress2がメッセージのSRCアドレスを含み、Address1がメッセージのDSTアドレスを含み、Directionフィールドが双方向ブリッジングをサポートしていることを示すエントリがあるかどうか、ブリッジング・テーブルがチェックされる。さらに、メッセージ・ネットワーク PDU が送信元サブネットの NetKey で暗号化されていることを確認するためのチェックが行われる。これらの条件が満たされると、メッセージは送信元サブネットの NetKey で復号化され、宛先サブネットの NetKey で再暗号化された後、再送信される。サブネット・ブリッジ・ノードの適切なコンフィギュレーションが準備されていれば、メッセージは複数回再送信され、複数のサブネットにまたがることができる。
送信元アドレスと宛先アドレスが、片方向または双方向のブリッジング・エント リー形式のいずれかでブリッジング・テーブルにないメッセージは、他の サブネットに再送されない。中継またはBluetooth Mesh Directed Forwardingは、適切であれば、メッセージが現在のサブネット内で再送される原因になるかもしれない。
2.1.5 サブネット・ブリッジングとディレクテッド・フォワーディング
Bluetooth Mesh ディレクテッド・フォワーディング(Bluetooth Mesh Directed Forwarding Technical Overview Paperを参照)は、Bluetooth Mesh サブネット・ブリッジングとともに使用することができ、2つのノード依存関係を伴う。
第1の依存関係は、第1のサブネットのソース・ノードと、第2のサブネットのメンバー 、サブネット・ブリッジとの間に存在する。第2の依存関係は、第1のサブネットのサブネットブリッジ(メンバー )と第2のサブネットの宛先ノードとの間に存在する。
サブネット・ブリッジは、両方のノード依存関係においてサポート・ノードとして機能し、依存ノードに代わってパス発見と維持手続き、およびメッセージ転送を実行する。
3.閉じる
Bluetooth Mesh サブネット・ブリッジングは、クロスサブネットが必要とされるサブネットの使用を、セキュリティを損なうことなく、より柔軟に、より簡単に設定できるようにします。
Mesh エンハンスメント
技術概要
Mesh 機能強化の概要
技術概要