Bluetooth Meshのセキュリティとプライバシー:信頼できるIoTネットワークの構築
パート1と2でBluetooth Meshのアーキテクチャとメッセージフローを探りました。今日のハイパーコネクテッドな世界では、セキュリティはオプションではなく、Meshを活用したあらゆるIoTソリューションの不可欠な基盤です。
Bluetooth SIGはすべてのMeshデバイスにセキュリティ実装を義務付けており、無効化は禁止されています。一方、従来のBLEポイントツーポイント接続では、開発者が選択すればセキュリティなしで動作できます。
デバイスをMeshに追加するプロビジョニングプロセスと、その後のすべてのデータ交換は、セキュリティを最高優先事項として設計されています。
- プロビジョニング中の楕円曲線Diffie-Hellman(ECDH)鍵交換により、Man-in-the-Middle攻撃を阻止
- メッセージごとのシーケンス番号により、リプレイ攻撃を防止
- キー更新(ブラックリスト)手順により、廃棄デバイスからの「ごみ箱攻撃」を無効化
Meshトポロジーは、各スタックレイヤーを保護する必須キーに依存します。主要なセキュリティとプライバシーメカニズムを詳しく見ていきましょう。
プロビジョニング:未プロビジョニングデバイスをMeshネットワークに追加
Meshデバイスはプロビジョニングされるとノードになります。プロビジョニングを実行するデバイス(プロビジョナー)は通常スマートフォンです。プロビジョナーはネットワークを作成し、ネットワークキーを割り当て、必要なキーを配布します。未プロビジョニングMeshノードは起動後に自己をアドバタイズします。プロビジョナーはこれらのビーコンをスキャンし、標準のBLE接続(今日のデバイスではPB-GATTを使用)を確立してECDH経由で鍵を交換します。
セッションキーが導出されると、それがネットワークキー、デバイスキー、IVインデックス、ユニキャストアドレスを暗号化し、ノードに送信されます。プロビジョニング成功後、ノードは設定フェーズに入り、プロビジョナーがノードの能力を検出し、アプリケーションキーを割り当てます。ノードは複数のアプリケーションキーを保持でき、各キーは特定のMeshモデルにバインドされるため、意図したデバイスのみがアプリケーションペイロードを復号できます。
図1は、CYBT-213043-MESH評価キットを使用した調光電球の完全なプロビジョニングシーケンスを示しています。
click for larger image
図1: 調光電球のプロビジョニングプロセス(出典:Cypress)
スマートフォンのMeshヘルパーアプリが未プロビジョニングリストから電球を選択すると、プロビジョニングハンドシェイクが開始されます。電球はサポートするElements、セキュリティアルゴリズム、OOBオプション、入出力メソッドなどの能力で応答します。これらに基づき、公開鍵がOOBまたはBLEリンク経由で交換され、認証が続きます。電球が認証されると、プロビジョナーが暗号化されたプロビジョニングデータ(ネットワークキー、デバイスキー、IVインデックス、ユニキャストアドレスなど)を送信します。ノードは完全にプロビジョニングされ、設定の準備が整います。
ネットワークキー、アプリケーションキー、デバイスキー
ネットワークキーにより、ノードはネットワークレイヤーまでメッセージを復号・認証でき、トラフィックのリレーが可能になります。アプリケーションキーは同様の機能を果たすノードのサブセット間で共有され、正しいアプリケーションキーを持つデバイスのみがペイロードを復号できます。デバイスキーはプロビジョニング時に割り当てられ、各プロビジョニング済みノードを一意に識別し、設定フェーズでのみ使用されます。
ネットワークキー:ノードは1つ以上のネットワークキーを保持でき、単一のMeshネットワーク内で複数のサブネットを作成できます。例えば、多層駐車場では各階を独自のサブネットに分離し、関連階のみにリレートラフィックを制限できます。
アプリケーションキー:通常、同じ目的を果たすデバイス間で共有されます——例えば、リビングのすべての照明が1つのキーを共有し、モーションセンサーやロックは別のキーを使用。適切なキーを持つデバイスのみが、照明状態変更メッセージを解釈できます。
デバイスキー:プロビジョニング時に割り当てられ、ノードを一意に識別し、設定フェーズでのみ使用されます。
ノード削除:キー更新とブラックリスト
侵害または廃棄されたノードが標的ネットワークに再参加するのを防ぐ——いわゆる「ごみ箱攻撃」シナリオ——ために、Mesh仕様はキー更新手順を定義しています。プロビジョナーはノードをブラックリストに登録し、ブラックリストにないすべてのデバイスに新しいネットワークキーとアプリケーションキーを発行します。古いキーではアクセスできなくなり、ネットワークを悪用から守ります。
プライバシー(メッセージ難読化)
プライバシーは、ネットワークキーから導出されるプライバシーキーによって実現されます。Meshプロトコルはこのキーを使用して、送信元アドレスなどのヘッダーフィールドを難読化し、盗聴者がメッセージの発信元を追跡できないようにします。
リプレイ攻撃
リプレイ攻撃は、正当なメッセージを取得して再送信し、ネットワークを混乱させるものです——例えば、ドアロックへの解除コマンドの再送信。MeshプロトコルはIVインデックスとシーケンス番号(SEQ)の2つの安全策でこれに対抗します。各メッセージは、パブリッシュごとにインクリメントされるSEQを搭載し、ノードは最後に有効な値以下のSEQを持つパケットを破棄します。IVインデックスも最後に処理された値以上でなければならず、そうでなければパケットは破棄されます。攻撃者がこれらのフィールドを変更するにはすべての関連キーが必要であり、成功するリプレイは非現実的です。
要約すると、Bluetooth Meshのプロビジョニングプロセスは、信頼できるデバイスのみがネットワークに参加することを保証し、MITM、リプレイ、ごみ箱攻撃から保護します。ネットワークキーでサブネット化を可能にし、アプリケーションキーで意図したデバイスのみがペイロードを解釈することを保証し、キー更新メカニズムで侵害ノードを安全に削除します。プライバシー機能で送信元アドレスを隠蔽し、シーケンス番号とIVインデックスでリプレイ攻撃を防ぎます。これらのメカニズムが一体となり、Bluetooth MeshをIoT展開のための高度に安全でプライベートなプラットフォームとして確立しています。
パート3では、特定のアプリケーションに適したBluetooth Meshデバイスの選び方について議論します。
埋め込み
- 不屈の成功:エイブラハム・リンカーンとメンテナンスリーダーシップに学ぶ粘り強さ
- Raspberry Piでホームセキュリティシステムを構築:PIRモーション検知+カメラメール通知
- Synopsys、マルチダイシステム向け完全HBM3 IPスイートを発表、帯域幅921GB/s達成
- Bluetooth Mesh設計の選択:モジュールかディスクリートデバイスか
- Cypress、デュアルモードBluetooth 5.0 MCU発表 – メッシュネットワーキングでIoTデバイスとスマートフォンを橋渡し
- Future ElectronicsとSilvair、Bluetooth Meshソリューション加速でグローバルパートナーシップ締結
- Contrinex 2020:クラウド対応センサ & Bluetoothライトカーテンで安全性向上
- Swissbit、it-saでIoTデバイス向け最先端ハードウェアセキュリティを展示
- ルネサスRX23W MCU、Bluetooth 5.0とTrusted Secure IPでIoTセキュリティを強化
- 自動テストとパフォーマンス監視でSaaS/クラウドセキュリティを強化
- セキュリティとプライバシーはIoT革命を阻害するか?