Bluetoothメッシュネットワークに関するトピック(
最初のメモ 、
2番目のメモ )を締めくくり、今日はそのアーキテクチャとセキュリティについて簡単に説明します。
どういたしまして
建築
ネットワークアーキテクチャはOSIネットワークモデルに似ており、8層で構成されています。 それらをボトムアップで検討してください。
レベルBLE(Bluetooth Low Energy) -スタックの一番下にあります。 これは単なるアーキテクチャのレイヤーの1つではありませんが、実際には、ワイヤレスネットワークを提供するために必要な完全なBLEスタックです。 したがって、ネットワークはデバイス上のBLEスタックの可用性に完全に依存しています。
リンク層(ベアラー層) -PDUネットワークの処理の原則を定義します。 現在、2つのチャネルが定義されています。
- チャネルアドバタイジング(ベアラーアドバタイズ) -PDUパケットを送受信するために、invertirovaniyaおよびスキャンレベルBLEの機能を使用します。
- GATTチャネル(GATT Bearer) -Advertising Bearerをサポートしないデバイスが、プロキシプロトコルを使用してホストと通信できるようにします。 プロキシプロトコルは、特別に定義されたGATT特性を使用してGATT(Generic Attributes Profile)操作にカプセル化されます。 プロキシノードはこれらの特性を実装し、2種類のメディア間でメッセージを変換および送信できるように両方のチャネルをサポートします。
ネットワーク層 -さまざまな種類のメッセージアドレスとその形式を定義し、PDUパケットをトランスポート層からチャネル1に転送します。 レイヤーは複数のチャネルをサポートできます。各チャネルは、同じノードの一部である要素間の通信に使用されるローカルインターフェイスを含む複数のネットワークインターフェイスを持つことができます。 レイヤーは、どのネットワークインターフェイスがメッセージを送信する必要があるかも決定します。 リンク層から送信されるメッセージの場合、これらのメッセージをより高く配信する必要があるかどうかを判断するために、入力フィルターが適用されます。 出力メッセージは、以下の出力フィルターで処理され、以下の配信に対してのみ同じことを行います。 したがって、RelayおよびProxyノードの機能は、ネットワーク層によって実装できます。
下位トランスポート層 —上位トランスポート層からPDUを受信し、それらを別のデバイスの下位トランスポート層に送信します。 必要に応じて、パッケージのセグメンテーションとアセンブリが実行されます。 1つのトランスポートPDUの長さを超えるパケットの場合、レイヤーはセグメンテーションを実行し、パケットをいくつかのトランスポートPDUに分割します。 受信側は、これらのセグメントを1つの上位トランスポート層PDUに収集し、それをより高く送信します。
上位トランスポート層 -アクセスレベルを通過するアプリケーションデータの暗号化、復号化、認証を行います。
アクセスレベル -アプリケーションが上位トランスポートレベルを使用する方法を担当します。
- アプリケーションのデータ形式を決定します。
- 上位トランスポートレベルで実行される暗号化および復号化プロセスの管理。
- データを送信する前に、上位トランスポート層から受信したデータが現在のネットワークおよび特定のアプリケーションのものであることを確認します。
Foundation Models Layer-ネットワークの構成と管理に関連するモデルの実装を担当します。
モデルレベル(モデルレイヤー) -モデルを実装することにより、モデル仕様の定義に従って、動作、メッセージ、状態、状態バインディングなどを実現します。
安全性
BLEを使用すると、プロファイル作成者は、さまざまなペアリングアプローチから個々の特性に関連付けられた個々のセキュリティ要件まで、さまざまなセキュリティメカニズムを使用できます。 実際、BLEのセキュリティは絶対にオプションであり、単にデバイスを持つことが許可されています。 開発者またはデバイスの製造者は、脅威に対する責任を自ら負い、製品のセキュリティ要件を決定します。 ただし、Bluetoothネットワークで
は、ネットワークが機能するためのセキュリティは前提条件であり 、この条件を変更したり無効にしたりすることはできません。
セキュリティの基本的なコンポーネントをリストします。
- すべてのネットワークメッセージは暗号化および認証されます。
- ネットワークセキュリティ、アプリケーションセキュリティ、およびデバイスセキュリティはすべて、個別のコンポーネントと見なされます。
- セキュリティキーは、キーの更新手順を使用して、ネットワークの存続期間中に変更できます。
- メッセージを難読化すると追跡が難しくなり、機密性が確保されます。
- ネットワークにデバイスを追加するプロセスは、それ自体がセキュリティコンテキストのプロセスです。
- ネットワークからのノードの削除は、「ゴミ箱」タイプの攻撃を除外するような方法で行われます。
責任の分担
ネットワークセキュリティは、3種類のセキュリティキーに基づいています。 これらのキーは、ネットワークのさまざまな側面にセキュリティを提供するため、ネットワーク全体のセキュリティが向上します。
「責任の描写」という用語を理解するには、リレー機能(リレー)を備えた照明ランプを検討してください。 リレーとして、このネットワークの一部であるドアまたは窓のセキュリティシステムに関連するメッセージを処理できます。 ランプには、このようなメッセージの詳細にアクセスして処理する機能はありませんが、他のノードに送信する必要があります。 そのようなメッセージへのアクセスが確実に禁止されるように、ネットワークは異なるセキュリティキーを使用して、特定のアプリケーションに関連するデータの保護に使用されるものとは異なるネットワークレベルのメッセージを保護します。
ネットワーク内のすべてのノードには、ネットワークキー(NetKey)があります。 ただし、このキーにより、デバイスがホストおよびネットワークのメンバーになります。 ただし、暗号化キーと秘密キーはNetKeyキーから直接生成されます。
NetKeyキーを所有することにより、ノードはデータを復号化し、ネットワークスタックの「ネットワークレベル」に対して認証できるため、中継などの特定のネットワーク機能を実行できます。 しかし、それを所有していると、アプリケーションデータを復号化できません。
ネットワークはサブネットに分割でき、各サブネットには独自のNetKeyがあり、このサブネットはこのサブネットのメンバーであるノードにのみ属します。 このような機会は、たとえばホテルの各部屋など、特定の物理的領域を分離するために使用できます。
アプリケーション固有のデータは、正しいアプリケーションキー(「AppKey」)を持つノードによってのみ復号化できます。 このタイプの多数のキーはネットワーク内のノードを通過できますが、原則として、このアプリケーションを持つ限られた数のノードには特定のキーがあります。 たとえば、ランプとライトスイッチには照明アプリケーション用のAppKeyキーがありますが、サーモスタット、ラジエーターバルブなどのみが含まれる加熱システム用のキーはありません。
AppKeyキーは、アクセスレベルを渡す前にメッセージを復号化および認証するために、ネットワークスタックの上位トランスポートレイヤーによって使用されます。
AppKeyキーは、1つのNetKeyキーにのみ関連付けられています。 この関連付けは「キーバインディング」と呼ばれ、特定の「AppKey」を所有する特定のアプリケーションは1つの特定のネットワークでのみ動作し、ネットワークには複数の独立したアプリケーションを含めることができます。
最後のキーは、DevKeyデバイスキーです。 これは特別なタイプのアプリケーションキーです。 各ノードには一意のDevKeyがあり、ネットワークレジストラ(プロビジョニング担当者)の機能を備えたデバイスにのみ知られ、他の誰にも知られていません。 DevKeyは、プロビジョナーとホスト間の安全な通信を確保するための準備で使用されます。
ノードの削除、キーの更新、ゴミ箱攻撃
そのため、ノードにはさまざまなセキュリティキーが含まれています。 ノードが壊れて廃棄する必要がある場合、または所有者がノードを別の所有者に渡すことを決定した場合、デバイスとノードに含まれるキーを使用して、以前にメンバーであったネットワークへの攻撃を確立できないことが重要です。 このため、ネットワークからノードを削除する手順が決定されました。 プロビジョニングデバイス上のアプリケーションは、ノードをブラックリストに追加してから、キーリフレッシュ手順を開始します。 この手順により、ブラックリストのメンバーであるノードを除くネットワーク内のすべてのノードが、新しいネットワークキー、アプリケーションキー、および他のすべての派生データを受信します。 つまり、ネットワークおよびアプリケーションのセキュリティの基礎を形成するセキュリティキーのセット全体が置き換えられています。 したがって、ネットワークから削除され、古い「NetKey」と古いキーセット「AppKey」を含むノードは、もはやネットワークのメンバーではなく、脅威をもたらしません。
守秘義務
NetKeyから取得した秘密キーは、たとえば送信元アドレスなどのPDUヘッダーの値を難読化するために使用されます。 難読化により、デバイスやこれらのデバイスを使用する人々を追跡するために、ランダムで受動的なメッセージインターセプトを使用できなくなります。 難読化は、トラフィックベースの攻撃も困難にします。
リプレイベースの攻撃
この攻撃は、インターセプターデバイスが1つ以上のメッセージをインターセプトし、後で単に再送信して、受信者をだまして攻撃デバイスに許可されていないことを実行させる手法です。 例:車のキーレスエントリーシステムには、車の所有者と車の間でデータを傍受するリスクが常にあります。
Bluetoothネットワークには、このような攻撃に対する保護があります。 保護は、PDUパッケージの2つのフィールドの使用に基づいています。
- シーケンス番号(SEQ) メッセージを送信するたびにネットワークの要素は、SEQの値を増やします。 以前の有効なメッセージ以下のSEQ値を持つメッセージを受信したノードは、このメッセージがリプレイ攻撃である可能性が高いため、それをキャンセルします。
- 「IVインデックス」 -SEQと一緒に考慮されるフィールド。 この要素からのメッセージ内の値は、常にこの要素の最後の有効なメッセージのこのフィールドの値以上でなければなりません。
以上です。
提供された情報が新しい技術の完全な概要を提供することを願っています。
彼女をより深く知りたい人のために、3つの素晴らしい仕様があります:
-プロファイル仕様。
-モデルの仕様。
-デバイスの仕様。
それらはすべて
ここから入手でき
ます 。
ご清聴ありがとうございました。