web-dev-qa-db-ja.com

Bluetooth Low EnergyGATTセキュリティレベル

GATTに関連するBluetoothLow Energy(BLE)で利用可能なセキュリティの種類を調査しています。より具体的には、異なるセキュリティレベル(低、中、高)が指定されたgatttoolを使用すると、どのような操作が実行されますか?私の理解では、BLEのSecurityManagerは4つの異なるセキュリティプロパティをサポートしています。

  • ペアリングなし
  • man-in-the-middle(MitM)保護をサポートしないアソシエーションモデルとのペアリング(JustWorks)
  • mitM保護とのペアリング(パスキー入力、数値比較、OOB)
  • LEセキュア接続のペアリング。

これらのセキュリティプロパティは、gatttoolで指定されたセキュリティレベルに関連していますか、それともBluetooth仕様を読んでいるときに見逃した他のセキュリティ機能がありますか?

編集:問題を明確にするために質問を拡張したいと思います。 4.2 Bluetoothスタックは、レガシーペアリングを使用するかどうかをどのように決定しますか?つまり、2つのBLE 4.2デバイスのペアリングのパケットキャプチャがある場合、レガシーペアリングが使用されているのか、ECDHを使用するペアリングのどちらが使用されているのかをどのように判断できますか? Secure Connectionsフラグは、レガシーペアリングを使用すべきではないことを示していますか、それともFIPS承認されたアルゴリズムが使用されることを保証する独自のモードですか?

9
1nc1n3rat0r

あなたは正しいですが、BLE通信における1つの主要な脅威を忘れています。ここに3つの基本的な脅威があります:

中間者(MITM)

MITMでは、攻撃者がメッセージを監視し、変更するか、通信チャネルに挿入する機能を備えている必要があります。

盗聴

パッシブ盗聴は、同意なしに他人のプライベートな通信を(スニッフィングデバイスを使用して)密かに聞いています。

プライバシー/アイデンティティの追跡

ほとんどのBluetoothLEアドバタイズメントおよびデータパケットには、データを送信しているデバイスの送信元アドレスがあるため、サードパーティのデバイスはこれらのアドレスをユーザーのIDに関連付け、そのアドレスでユーザーを追跡できます。

引用符は developer.bluetooth.org から来ています。

MitMと盗聴に対する保護についてはすでに説明しましたが、ID追跡の問題は依然として存在します。

ID追跡に対する保護は、時間の経過とともに同じデバイスにリンクできないMACアドレス、つまり変更されるMACアドレス(通常は15分ごと)を使用することです。 MACアドレスには次の4種類があります。

  1. パブリックアドレス:このアドレスは暗号化されておらず、会社の一意のIDとデバイスIDが含まれています。時間の経過とともに変化しないため、安全ではありません。
  2. ランダム静的アドレス:このアドレスはランダムであり(内部のフラグのおかげでランダムとして知られています)、暗号化されていません。変更されると、既に認識しているデバイスに再接続する機能が失われます。接続を最初からやり直す必要があります。
  3. ランダムに解決可能なプライベートアドレス:このアドレスは、デバイス間の共有シークレットであるIRKを認識しているデバイスによって解決できます。静的ランダムアドレスに関しては、頻繁に変更されますが、常に解決可能です。プライバシーを保護し、接続を復元できるため、これは最も一般的なオプションです。
  4. ランダムな解決不可能なプライベートアドレス:このアドレスは解決できません。コアスペックはそれについてあまり述べておらず、あまり一般的ではないようです。静的アドレスとの違いは、プライベートアドレスであるため保存されないことです(つまり、デバイスはプライベートアドレスデバイスとの接続を復元できることを期待していません)。

これは、BLE Core Spec 4.2Vol。 3パートC15.1.1Bluetoothデバイスのアドレスタイプ。

セキュリティレベルに関しては、gatttoolはわかりませんが、nRF Connect/Master ControlPanelやLightBlueに似ていると思います。ここに表示されるのは、おそらく各属性に関連付けられているセキュリティレベルです。 4つのセキュリティレベルがあり、属性ごとに異なる場合があります。

モード1レベル1

暗号化は必要ありません。この属性は、プレーンテキストの暗号化されていない接続でアクセスできます。

モード1レベル2

認証されていない暗号化が必要です。この属性にアクセスするには、接続を暗号化する必要がありますが、暗号化キーを認証する必要はありません(認証は可能ですが)。

モード1レベル3

認証付き暗号化が必要です。この属性にアクセスするには、認証されたキーで接続を暗号化する必要があります。

モード1レベル4

暗号化とペアリングされた認証済みLEセキュア接続。接続は、バージョン4.2以降にBluetoothLEで導入されたセキュア接続ペアリングを使用して暗号化する必要があります。

モード1レベル1〜3の定義は、Robert Davidson、Akiba、Carles Cufi、KevinTownsendによる「 Bluetooth低エネルギー入門 」に由来します。

デバイスは、Secure Connection Onlyと呼ばれるモードにすることもできます。このモードでは、モード1レベル1のサービスを除くすべてのサービスに、モード1レベル4でのみアクセスできます。

8
Tim

4.2 Bluetoothスタックは、レガシーペアリングを使用するかどうかをどのように決定しますか?つまり、2つのBLE 4.2デバイスのペアリングのパケットキャプチャがある場合、レガシーペアリングが使用されているのか、ECDHを使用するペアリングのどちらが使用されているのかをどのように判断できますか? Secure Connectionsフラグは、レガシーペアリングを使用すべきではないことを示していますか、それともFIPS承認済みアルゴリズムが使用されることを保証する独自のモードですか?

ペアリング機能の交換段階で、ペアリング要求およびペアリング応答PDUでセキュア接続(SC)フラグが設定されている場合、LE SCが使用されます。これは、両方のデバイスがLE SCをサポートし、それを使用することに同意したことを示します。

LE SCが使用されている場合、ログには、交換されている「ペアリング公開鍵」および「ペアリングDHキーチェック」PDUが表示されます。これらはLESCに固有です。

2
Preeti

はい、それは正しいですが、それらはまだ存在するセキュリティモード、LEセキュリティモード1およびLEセキュリティモード2であり、異なるセキュリティレベルによって組み合わされていることに注意してください。また、Bluetooth 4.2より前では、LEは安全ではありません。つまり、LE接続の開始直後に暗号化キーをスニッフィングできます。

1
Guo Xingmin