低エネルギーBluetooth(BLE)アプリケーションのためのセキュアデザイン

低エネルギーBluetooth(BLE)は、低電力で短距離のワイヤレス通信技術として、さまざまなスマートデバイスやIoTシナリオで広く使用されています。しかし、BLEの特性により、さまざまなセキュリティ脅威にさらされる可能性があります。したがって、BLEアプリケーションを設計・開発する際には、セキュリティの問題に焦点を当て、通信データとユーザープライバシーを保護するための適切なセキュリティ対策を実装することが重要です。

まず、Bluetoothペアリングのためのセキュリティ対策

BLEデバイス間のペアリングプロセスでは、AES-CMACやP-256楕円曲線などのFIPS承認アルゴリズムを使用して、ペアリング情報のセキュリティを確保することが重要です。ペアリング情報は、悪意のある攻撃者から盗まれないように、デバイスのセキュアストレージに保存する必要があります。 認証と暗号化には、FIPS承認アルゴリズムを使用して、通信データの機密性と完全性を確保する必要があります。たとえば、AES-CCMアルゴリズムを使用すると、データの送信を暗号化し、メッセージの完全性を保証します。健康機器(例:スマートフォンと通信する健康リストバンド)では、AES-CCMアルゴリズムを使用してユーザーの健康データを暗号化し、その機密性を確保します。 パッシブな盗聴や中間者攻撃を防ぐために、ユーザー支援型のセキュアシンプルペアリングメソッドを使用できます。たとえば、ECDHEアルゴリズムを使用してシンプルセキュアペアリング(SSP)を実施し、パッシブな盗聴攻撃を防ぎ、ユーザー支援型デジタルメソッドのパスキーエントリーを用いて中間者攻撃を防ぎます。 Bluetoothシンプルセキュアペアリング(SSP)の実装例は以下の通りです:

デバイス準備

  • デバイスA(イニシエータ):スマートフォンなどのBluetoothデバイス
  • デバイスB(レスポンダ):BluetoothスピーカーなどのBluetoothデバイス

ペアリング手順

  1. デバイスAとデバイスBは、Bluetooth 2.1以上およびSSPをサポートしています。
  2. デバイスAとデバイスBは、いずれも発見可能モードでペアリングの準備が整っています。
  3. デバイスAはデバイスBにペアリング要求を送信し、デバイスBは要求を受信後、ペアリングプロセスを開始します。

ペアリングプロセス

  1. デバイスBはランダムな数値(Nonce)を生成し、デバイスAに送信します。
  2. デバイスAはランダムな数値を受信し、自分のランダムな数値(Nonce)を生成してデバイスBに送信します。
  3. デバイスAとデバイスBは、自分のランダムな数値と相手のランダムな数値を使用して、共有秘密鍵(Shared Secret)を計算します。
  4. デバイスAとデバイスBは、共有秘密鍵を使用してペアリング鍵(Pairing Key)を計算します。
  5. デバイスAとデバイスBは、ペアリング鍵を使用してお互いのID情報(Identity Information)を暗号化し、送信します。
  6. デバイスAとデバイスBはお互いのID情報を確認し、確認が成功した場合、ペアリングが完了します。

確認手順

  1. デバイスAとデバイスBはお互いのID情報を比較し、一致すれば確認が成功します。
  2. デバイスAとデバイスBはペアリング鍵をそれぞれのデバイスに保存し、今後の接続に備えます。

次に、Bluetoothプライバシーのためのセキュリティ対策

BLEデバイスのプライバシーを保護するためには、アドレスのランダム化がデバイスのセキュリティを向上させます。Bluetoothデバイスアドレスを頻繁に変更することで、攻撃者が長期間にわたってBLEデバイスを追跡する難易度が低くなります。さらに、既知のデバイスと再接続するためには、デバイスのプライベートアドレスが他のデバイスによって解決可能である必要があり、ペアリング中に交換されたデバイスID解決鍵を使用してプライベートアドレスを生成します。例えば、小売店のiBeaconシステムでは、iBeaconデバイスのBluetoothアドレスを頻繁に変更することで、ユーザー行動の悪意のある追跡を防ぎ、ユーザープライバシーを保護します。 以下は実装例です:

デバイスA(BLEデバイス)

  • ハードウェア:ランダムナンバージェネレータ(RNG)を搭載したBLEマイクロコントローラ
  • ソフトウェア:アドレスランダム化およびペアリングプロセス実装を備えたBLEスタック

デバイスB(セントラルデバイス)

  • ハードウェア:ランダムナンバージェネレータ(RNG)を搭載したBLEマイクロコントローラ
  • ソフトウェア:ペアリングプロセス実装およびデバイスID解決鍵の保存を備えたBLEスタック

アドレスランダム化プロセス

  1. デバイスAはRNGを使用して新しいランダムアドレス(RA)を生成します。
  2. デバイスAは新しいRAをBluetoothアドレスとして設定します。
  3. デバイスAはRAと対応するインデックス(例:カウンター)をメモリに保存します。

ペアリングプロセス

  1. デバイスAとデバイスBは、標準BLEペアリングプロトコル(例:SMP)を使用してペアリングプロセスを開始します。
  2. ペアリングプロセス中に、デバイスAとデバイスBはそれぞれの公開鍵(PK_AおよびPK_B)を交換します。
  3. デバイスAとデバイスBは、公開鍵を使用して共有秘密鍵(SSK)を生成します(例:ECDHを使用)。
  4. デバイスAとデバイスBは、SSKを使用してデバイスID解決鍵(DIRK)を生成します。
  5. デバイスAとデバイスBは、DIRKをそれぞれのメモリに保存します。

プライベートアドレス生成

  1. デバイスAはRNGを使用してRAとDIRKに基づく新しいプライベートアドレス(PA)を生成します。
  2. デバイスAはPAを新しいBluetoothアドレスとして設定します。

再接続プロセス

  1. デバイスBがデバイスAに再接続したい場合、DIRKを使用してPAを生成します。
  2. デバイスBはPAに接続要求を送信します。
  3. デバイスAは接続要求を受信し、DIRKを使用してPAを確認します。
  4. 確認が成功した場合、デバイスAは接続要求を受け入れ、2つのデバイスは再接続します。

セキュリティの利点

  • Bluetoothアドレス(RA)の頻繁な変更により、攻撃者がデバイスを長期間追跡するのが困難になります。
  • DIRKを使用してPAを生成することで、認可されたデバイスのみがプライベートアドレスを解決し、デバイスに再接続できます。
  • プライベートアドレス(PA)は公開されないため、デバイスのプライバシーが保護されます。 この実装例は、アドレスランダム化とデバイスID解決鍵を使用したプライベートアドレス生成が、BLEデバイスのセキュリティとプライバシーをどのように向上させるかを示しています。

次に、Bluetoothサービス拒否攻撃のためのセキュリティ対策

Bluetoothサービス拒否攻撃の一般的な形態は、攻撃者がBluetoothデバイスに継続的に悪意のある接続やペアリングを試み、Bluetoothチャネルを占有して使用不可能にすることです。サービス拒否攻撃を防ぐためには、Bluetoothファイアウォールメカニズムを使用できます。サービス拒否攻撃に直面した場合、ホワイトリストメカニズムを有効にし、新しいペアリングの遅延時間を段階的に増やすことで、悪意のあるデバイスによる連続的なブルートフォース攻撃を防ぎます。遅延期間中は、ホワイトリスト内のデバイスのみが接続を許可され、Bluetoothサービスの可用性が確保されます。

たとえば、以下はiPhone 6Sのロック解除攻撃防止に触発された保護対策の例です。増加する遅延時間を使用してBluetoothサービスが利用不可になるのを防ぎます。接続やペアリングが成功すると、試行回数がリセットされます。

試行回数 新しい接続ペアリング実行遅延
1-4 なし
5-9 1分
10-14 10分
15 1時間
16-∞ 1時間(最大遅延)

最後に、Bluetoothリレー攻撃のためのセキュリティ対策

リレー攻撃は、攻撃者がリレーデバイスを使用して通信データを通信当事者間で中継し、機密情報を盗んだり、悪意のある操作を実行したりする一般的なBluetoothセキュリティ脅威です。BLEデバイス間の通信距離を制限することで、リレー攻撃を効果的に防ぐことができます。BLEデバイスの送信電力を制御したり、位置情報技術を使用したりすることで、通信当事者間の距離を制御可能な範囲に保ち、リレー攻撃の可能性を減らすことができます。

実装例: デバイスA(BLEデバイス)

  • ハードウェア:パワーアンプと距離測定ユニット(例:RSSIまたはTOF)を搭載したBLEマイクロコントローラ
  • ソフトウェア:送信電力制御および距離測定実装を備えたBLEスタック

デバイスB(BLEデバイス)

  • ハードウェア:パワーアンプと距離測定ユニット(例:RSSIまたはTOF)を搭載したBLEマイクロコントローラ
  • ソフトウェア:送信電力制御および距離測定実装を備えたBLEスタック

距離に基づくリレー攻撃防止

  1. デバイスAとデバイスBは、設定された最大通信距離を保証するために最低送信電力レベルで運用されます。
  2. デバイスAとデバイスBがペアリングすると、送信電力レベルおよび距離測定パラメータを交換します。
  3. 通信中、デバイスAとデバイスBは受信信号強度(RSSI)または飛行時間(TOF)を継続的に測定して、距離を推定します。
  4. 推定距離が事前定義のしきい値(例:2メートル)を超える場合、デバイスAとデバイスBは送信電力レベルを減少させて通信距離を最小化します。
  5. 推定距離がしきい値を超え続ける場合、デバイスAとデバイスBは接続を終了し、潜在的なリレー攻撃を防ぎます。

結論として、低エネルギーBluetooth(BLE)のセキュアデザインを適用するには、ペアリング、バインディング、認証、暗号化、メッセージの完全性、リレー保護、Bluetoothプライバシー、ファイアウォールなどのセキュリティメカニズムを包括的に考慮する必要があります。製品設計と開発の際にセキュリティを十分に考慮することで、潜在的なセキュリティ脅威を効果的に軽減し、ユーザーデータとプライバシーの保護が確保されます。