1. BlueTooth基礎知識
1.1. BlueToothの基礎知識
1.1.1. BlueToothとは
BluetoothとはIEEE802.15.1で規定された10m~100m以内の近距離で端末同士を1対1でワイヤレス接続することを想定して作られた近接無線通信技術である。
Ver3.0までのBluetooth Classic、Ver4.0以降のBLE(Bluetooth Low Energy)がある。
1.1.2. Bluetoothの通信方式
BluetoothはBluetooth Classicまでがユニキャスト通信に対応、BLEがユニキャスト通信とブロードキャスト通信に対応している。
- ユニキャスト通信
- ペリフェラル … 1対1通信を要求するAD(アドバタイズ)を送信。接続時は子機として動作
- 例) スマートウォッチやBlueToothイヤホンなど
- セントラル … 1対1接続要求アドバタイズをスキャンし接続。接続時は親機として動作
- 例) … スマホやタブレットなど
- ペリフェラル … 1対1通信を要求するAD(アドバタイズ)を送信。接続時は子機として動作
- ブロードキャスト通信
- ブロードキャスタ … ブロードキャスタ用アドバタイズを送信
- 例) 温度センサーや位置ビーコンなど
- オブザーバ … ブロードキャスト用アドバタイズのスキャン
- 例) 表示機器、スマホ
- ブロードキャスタ … ブロードキャスタ用アドバタイズを送信
ペリフェラルとセントラル
ペリフェラルとセントラルは双方向通信が可能となっており、一対一の対応関係確立後にデータ送信をする。 接続確立後はペアリングにて暗号化通信を行うことが可能。
ブロードキャスタとオブザーバ
ブロードキャスタとオブザーバは単方向通信のみ。 接続/ペアリングが行われないため暗号化通信はサポートしていない。
1.1.3. Bluetoothのセキュリティ
Bluetoothの認証/暗号化鍵交換
Bluetoothのセキュリティは認証/暗号化の鍵交換に関してペアリングとボンディングがある。
ペアリング
ペアリングはセントラルとペリフェラル間のデータ暗号化(AWS-CCMや楕円曲線暗号が用いられる)のための鍵交換を行うもの。 この仕組みにより一度相互に認証したデバイス同士は、次回から電源を入れるだけで自動的に接続できる。
特徴は以下の通り。
- 鍵は一時的にデータの暗号化に用いる
- 鍵は再利用しない
ペアリングの種類は認証の有無で分けると以下の2種類がある。
- 認証ペアリング … 中間者攻撃のリスクはないペアリング
- 未認証ペアリング … 中間者攻撃のリスクがあるペアリング
また鍵の種類で分けると以下のようになる。
- Bluetooth Classicのペアリング
- Simple Secureペアリング(Simple Secure Pairing) … ECDH(楕円曲線ディフィ・ヘルマン)アルゴリズムの公開鍵交換方式を利用し交換される
- PINペアリング … 数字で最大16桁の暗証コードを打ち込むことで認証する
- BLEのペアリング
- Legacyペアリング(LE Legacy Pairing) … BLE4.0で導入されたもので鍵(128Bit)は無線で平文交換される
- LESCペアリング(LE Secure Connections) … BLE4.2以降で導入。鍵は有線で公開鍵暗号方式を利用し交換される
ボンディング
ペアリングで交換した鍵を保存し次同じ相手と接続するときはペアリングせずに前回の鍵を再利用するもの。
1.2. BLEの基礎知識
1.2.1. BLEとは
Bluetooth Low Energy(BLE)は省電力で動作するBluetooth通信の規格。 バージョン4.0から実装された。
BLEはiPhoneをはじめとしたスマートフォンを筆頭に、その性能を活かし、ビーコンと呼ばれる小型のセンサーなどにも活用されている。 具体的にはスマートIoTデバイス、フィットネスモニター機器、キーボードなど、主にバッテリー駆動のアクセサリーなどでよく使われてる。
1.2.2. BLEの通信方式
BLEの各種パラメータは以下の通り。
パラメータ | 値 |
---|---|
標準規格 | Bluetooth 4.0以降 |
周波数帯 | 2.4GHz |
変調/拡散 | GFSK方式/周波数ホッピング |
チャネル | 2MHz帯40チャネル(一部のバージョンでは広告チャネルとデータチャネルが異なる) |
通信距離 | 一般的に数メートルから10メートル程度 |
通信速度 | 125Kbpsから2Mbps(データレートは選択可能) |
FSK … デジタル信号を搬送波の周波数偏移に変えて通信する方式
GFSK … 入力信号を正規分布型フィルタを十sて通信利用帯域を抑える方式
またBLEはユニキャスト通信とブロードキャスト通信に対応している。
1.2.3. BLEのセキュリティ認証手法
Legacy Pairingのフェーズ
鍵が交換されるLegacyペアリングのフェーズは以下の通り。
ペアリングの方法
LegacyペアリングではJust Works、PassKey、Out Of Bandのいずれか1つ、LESCペアリングでは下記4つのいずれか1つが使用可能となっている。
- Just Works … デバイスの選択のみで双方認証しないもの
- 特徴: 平文であるため盗聴により暗号鍵(STK)がわかる
最も一般的なペアリングの方法
- PassKey … セントラルが作成した6桁のランダム認証コード
- 特徴: PassKeyをデバイス側に入力させて認証する
- Out Of Band … BLE以外(RFIDなど)の通信手段で認証
- Numeric Comparison … 接続時に毎度ランダムな数字をセントラル/ペリフェラルで表示し同じであるならばボタンを押すなどして認証
- 特徴: デバイスに表示/入力機能がある場合に使用される
1.2.4. BLEのプロトコルスタック
BLEのアーキテクチャはアプリケーション層、ホスト層、コントローラ層に分けられる。
BLEのプロトコルにはATT、GAP、GATTがある。
またBLEでは属性(アトリビュート)という単位でデータを処理している。 属性は以下内容からなり、属性を複数組み合わせることでGATTデータベースを作成する。
- Attributeハンドル(2Byte) … 通し番号
- Attributeタイプ(2or16Byte) … UUIDでService,Characteristicを表す
- Attribute値(0~512Byte) … アプリケーションレイヤが使用するデータ
- Attributeパーミッション … Read,Writeの許可(permission)属性
ATT(アトリビュートプロトコル)
ATTは属性(アトリビュート)のやり取りを行うプロトコル。
GAP(汎用アクセスプロファイル)
GAPはアドバタイズメント、通信の役割(セントラル/ペリフェラルなど)など接続確立手順の内容(プロファイル)を表す。
GATT(汎用アクトリビュートプロファイル)
データベースにアクセスするプロトコル(ハッキングには最も重要となる)
1.2.5. GATT
GATTはChracateristicとServiceの関連する情報を送受するプロトコル。
- Chracateristic … READ, WRITE, NOTIFYなどセントラrに公開するデータ処理属性
- Service … Chracateristicをまとめたラベル(ユーザ利用サービス名)
- UUID … ChracateristicとServiceの識別番号(16Bit)
1.2.6. BLEのセキュリティ認証手法
Legacy Pairingのフェーズ
鍵が交換されるLegacyペアリングのフェーズは以下の通り。
Legacy Pairingのペアリングの方法
LegacyペアリングではJust Works、PassKey、Out Of Bandのいずれか1つ、LESCペアリングでは下記4つのいずれか1つが使用可能となっている。
- Just Works … デバイスの選択のみで双方認証しないもの
- 特徴: 平文であるため盗聴により暗号鍵(STK)がわかる
最も一般的なペアリングの方法
- PassKey … セントラルが作成した6桁のランダム認証コード
- 特徴: PassKeyをデバイス側に入力させて認証する
- Out Of Band … BLE以外(RFIDなど)の通信手段で認証
- Numeric Comparison … 接続時に毎度ランダムな数字をセントラル/ペリフェラルで表示し同じであるならばボタンを押すなどして認証
- 特徴: デバイスに表示/入力機能がある場合に使用される
1.2.7. BLEのセキュリティモードとレベル
BLEにはセキュリティモードが2つとそれぞれレベルが設定されている。
- セキュリティモード1 … ペアリングによる認証/暗号化の有無の組み合わせによる定義
- レベル1 … ペアリングせずセキュリティ機能なし
- レベル2 … 認証なしのペアリング/暗号化
- レベル3 … 認証ありのペアリング/暗号化
- レベル4 … ペアリングし鍵交換に楕円曲線ディフィー・ヘルマン鍵共有方式(ECDHE方式)を使用し暗号化
- セキュリティモード2 … データ署名による認証の有無の組み合わせによる定義
- レベル1 … 認証なしのペアリング/データ署名
- レベル2 … 認証ありのペアリング/データ署名
なおデータ署名は送信元が検証可能なパケットを送信元におくることを指す(ATTで実装される)
1.3. Bluetooth Classicの基礎知識
1.3.1. Bluetooth Classicとは
Bluetooth ClassicはBluetooth+HSとも呼ばれる24Mbpsの高速通信が可能となるBluetooth通信規格。 高速通信は無線LANの通信方式(PAL)を利用することによって実現している。
ペアリングやプロファイルなどは従来と同じBluetoothの仕様/プロトコル/周波数を用いており、必要に応じて下位のレイヤーを別の通信方式に切り替えるAlternate MAC/PHY(AMP)機能が搭載された。 内部的には低消費電力である従来のBluetoothとの連絡を保ちつつ、大量の通信が必要になった際にはIEEE 802.11無線LANに切り替えるようになっている。
主にワイヤレスヘッドホン、ワイヤレススピーカーなどのオーディオ分野で使用されている。
1.3.2. Bluetooth Classicの通信方式
Bluetooth Classic(Bluetooth HF)の各種パラメータは以下の通り。
パラメータ | 値 |
---|---|
標準規格 | IEEE802.15.1 |
周波数帯 | 2.4GHz |
変調/拡散 | GFSK方式/周波数ホッピング |
チャネル | 2MHz帯40チャネル(データ用: 0 |
通信距離 | Classic1: 約100m, Classic2: 約10m, Classic3: 約1m |
通信速度 | 125Kbps~24Mbps (実行速度は約10Kbps程度) |
またBluetooth Classicはユニキャスト通信に対応している。
1.3.3. Bluetooth Classicのセキュリティモードとレベル
Bluetooth Classicにはモードが4つとそれぞれレベルが設定されている。
- モード1 … セキュリティ無しのモード
- モード2 … データ通信時に必要に応じて認証・暗号化を行う
- モード3 … 接続時に認証・暗号化を行う
- モード4 … 使用状況に応じて認証・暗号化を行う
- レベル0 … セキュリティ無し、ユーザー操作なし
- レベル1 … セキュリティ無し、ユーザー操作あり
- レベル2 … 暗号あり、認証なし
- レベル3 … 暗号あり、認証あり
- レベル4 … 高強度暗号あり、認証あり
なおほぼ全ての Bluetooth classicの製品はモード4として実装されている。