接続製品におけるBluetoothモジュールセキュリティの重要性
エンジニアが新製品向けにBluetoothモジュールを評価する際、通常は消費電力、通信距離、フォームファクターを重視します。セキュリティが議題に上がるのは、多くの場合プロトタイプが動作し始めた後です。しかし、BLEのセキュリティアーキテクチャはモジュールとファームウェアの選定段階でほぼ決まるため、後から修正すると高コストになるか、ハードウェアの改版なしには不可能な場合もあります。
BLEセキュリティアーキテクチャ:仕様が提供するもの
BLEセキュリティはリンク層とホスト層で動作します。主要なメカニズムは次のとおりです:
- ペアリングとボンディング:デバイス間で共有シークレット(LTK)を確立します。Just Works(MITM攻撃に脆弱)からPasskey Entry(MITM耐性あり)まで様々なペアリング方法があります。
- LE Secure Connections(LESC):BLE 4.2で導入。P-256曲線上のECDH鍵交換を使用し、フォワードシークレシーを提供します。BLE 5.0+では必須サポートです。
- プライバシー / Resolvable Private Addresses(RPA):デバイスが定期的にMACアドレスをローテーションし、第三者によるトラッキングを防止します。
- 属性暗号化と署名:GATT特性は暗号化リンクまたは署名済み書き込みを要求できます。
モジュール展開における一般的なセキュリティの欠陥
| 脆弱性 | 根本原因 | 攻撃による影響 |
|---|---|---|
| 本番環境でのJust Worksペアリング | SDKサンプルコードをそのまま使用 | MITM攻撃でセッションキーを傍受 |
| 暗号化されていないGATT特性 | GATTテーブル定義のパーミッションフラグ欠落 | 任意のスキャナーがデバイス状態を読み書き可能 |
| 固定MACアドレス | プライバシー/RPAが無効 | 受動的観察者によるデバイス位置追跡 |
| 平文OTAファームウェアペイロード | トランスポート暗号化なしのカスタムOTA | ファームウェアの抽出または悪意あるイメージへの置換 |
| ハードコードされたペアリングPIN | 固定値”000000″のPasskey Entry | 1秒以内にブルートフォース攻撃可能 |
実践的な設定チェックリスト
- □ LE Secure Connectionsに設定;Just Worksは無効化
- □ 機密データを含むすべてのGATT特性が暗号化リンクを要求
- □ プライバシー/RPAを有効化(ローテーション間隔≤15分)
- □ 本番プログラミングスクリプトでフラッシュ読み出し保護を有効化
- □ SDK設定でTRNGソースを確認
- □ OTAペイロードをファームウェア署名で検証してから適用
- □ PINはハードコードせず動的生成またはデバイスごとにプロビジョニング
- □ 本番ユニットのデバッグインターフェース(SWD/JTAG)をロック
このチェックリストを通過したBluetoothモジュールは、RF性能と同等のセキュリティ品質を持って出荷されます。セキュリティは後から追加する機能ではなく、最初のプロトタイプ段階での設計決定です。