セキュリティ・ネットワーク

BLEのセキュリティについて

この記事は約9分で読めます。
記事内に広告が含まれています。
スポンサーリンク

こんにちは、まっさん(@Tera_Msaki)です。

この記事は SIベンダーで28年あまりシステムエンジニアとして、
いろいろなシステムを開発してきた経験をもとにセキュリティについてまとめたものです。

IT分野における個の特定として用いられるMACアドレス
MACアドレスは、OSI7階層モデルのデータリンク層で扱われるネットワークインタフェースを識別するために使用する符号です。
無線LAN といえば Wi-Fi が有名ですが、BluetoothもWi-Fiと同じ無線通信技術のひとつであり、
MACアドレスを使用して通信しています。

Andoridアプリの開発で BLE(Bluetooth Low Energy)に触れる機会がありましたで、BLEのセキュリティについて、お話したいと思います。

こんな人にオススメ

・BLE(Bluetooth LE)の通信仕様について知りたい人
・Bluetoothのセキュリティについて知りたい人
・SwitchBot温湿度計を使ったアプリを開発したい人

この記事を読めば、BLEの仕様とセキュリティがわかります。

BLE(Bluetooth Low Energy)

近距離無線通信技術Bluetoothの拡張仕様で、極低電力で通信が可能なことが特徴です。
この特徴を生かして、電源の小型化、デバイスの小型化が進み、まさに IoTデバイスの中核をなす技術といえます。
従来のBluetoothのことをBluetooth Classic、Bluetooth LEは
BLEに対応していることを示すブランド名(Bluetooth Smart)と呼び、区別しています。

BLE通信

BLE通信では、データを受ける側(PCやスマホやゲートウェイ機器など)をセントラルといい、データを送る側(センサー機器)をペリフェラルと定義しています。
ペリフェラルは一定周期で BLE接続待ちの状態(
アドバタイズ)を送り、それを受け取ったセントラルはペリフェラルとBLE接続(GATT通信)を行います。
セントラルとペリフェラル間で機器を識別するために用いられるのが
MACアドレスです。

アドバタイズ

アドバタイズはブロードキャスト通信で不特定多数の相手にデータを送信する一方通行の通信方式です。
つまり、機器を識別するために使用される符号の
MACアドレスを送り続けています。
また、
アドバタイズにペリフェラルの名前や属性データを含めて発信することが出来ます。
セントラルはスキャンすることで
アドバタイズを受信、周囲にどんなペリフェラルがいるかを知ることができます。
さらにセントラルは
アドバタイズを受信したとき、受信した電波の強さ(RSSI:受信電波強度)からペリフェラルまでの距離を把握します。

ペリフェラルの名前や属性データ

AndoroidアプリのGPS位置情報中継アプリ MLSの検索結果の画面です。
アドバタイズの属性データのうち、機器名、MACアドレス、タイプを表示しています。

SwitchBot温湿度計の場合、アドバタイズの属性データに温度と湿度が含まれています。
つまり、
GATT通信しなくてもSwitchBot温湿度計がおかれている場所の温度と湿度がわかります。
ただし、データパケットはバイナリデータで、どこに情報が格納されている把握する必要があります。

SwitchBot温湿度計のデータパケット

Bluetooth接続で温度と湿度をインタフェースできるスマート家電です

GATT通信

セントラルはペリフェラルと1対1の通信接続をしたい相手を選び、接続要求を送信、セントラルとペリフェラルでデータリンクを確立します。
この1対1の接続通信のことを
GATT通信と呼びます。
GATT通信ではサービスとキャラクタリスティックという概念でデータ交換します。
サービスはペリフェラルがもつ機能、キャラクタリスティックはサービスを利用するための手順でセントラルに公開して共有するデータ構造です。
サービスやキャラクタリスティックにはUUIDとUUIDという 16バイトの一意な番号がつけられ、セントラル機器は UUIDを指定して、キャラクタリスティックのデータにアクセスします。
UUIDについては、Bluetoothの推進団体が標準的な
GATT通信のプロファイルを公開しています。

キャラクタリスティック

キャラクタリスティックには「Read」「Write」「Notify」の属性がり、セントラルからはペリフェラルに対して、属性に応じた「Read」「Write」を使用して、データの読み書きを行います。
「Notify」はペリフェラルからセントラルに変更を通知し、セントラルはデータを読み込みます。

BLEのセキュリティ対策

アドバタイズMACアドレスをブロードキャスト通信していることから、スキャンすることで機器のMACアドレスを収集することが可能です。
更に、
GATT通信で機器のもつサービス、キャラクタリスティックを使用して、通信が可能です。
BLEのセキュリティ対策としては、MACアドレスのプライベート化、Passkey Entry方式や Out of Band方式によるペアリング(またはボンディング)があります。

MACアドレスのプライベート化

実際のMACアドレスではなく、ランダムで生成したMACアドレスを使い通信を行います。
通信で使用するアドレスのことを
Private MACと呼びます。
Wi-Fi においては、
Private MACによるセキュリティ対策が主流です。
iOS14、Android10以降はデフォルトで有効、Windows10ではデフォルトでは無効ですが、設定で有効にできます。
Private MACにはデメリットがあり、MACアドレスが動的に変化することで、無線LANアクセスポイント、位置情報の特定、認証サーバなどMACアドレスを利用した機能に影響があり、対策が必要になります。

ペアリング

ペアリングとは、セントラルとペリフェラル間のデータ暗号化のための鍵の交換のことです。
その際に、正しい相手かを認証をするために、双方で番号を入れるなどチェックをします。
ボンディングは、ペアリングで交換した鍵を保存し、次回以降の通信では保存した鍵を使用して通信を行います。

Passkey Entry方式

4 ~ 6 桁の数字を入力するなどで認証をする方式です。
実際には
Passkeyは固定することが多く、ブルートフォースアタックに対して脆弱です。

Out of Band(OOB)方式

NFC等の他の手段で鍵を交換する方式です。
現在のところ、脆弱性は見つかっておらず、有効なセキュリティ対策です。

キャリアの基地局(または Wi-Fi スポット)において、電波の強さを測るアクセスポイントが 3点以上あれば、各点の受信電波強度から位置を特定することが可能となり、これがスマホや PC の位置を把握する仕組みとなっています。BLEにおいても、位置を把握する仕組みの実用化例が存在します。

今回はここまでです。

誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にある
コメントか、
こちら
から、お願いいたします♪


ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

ブログランキング・にほんブログ村へ

参考になったら、💛をポッチとしてね♪

スポンサーリンク
msakiをフォローする
スポンサーリンク

コメント欄

タイトルとURLをコピーしました