BLEBoy
目的
トレーニングとテストに使用できるすべてのBLEペアリング方式(帯域外(OOB)ペアリングを含む)をサポートするBLEペリフェラルを作成します。ペリフェラルは設定可能で、市販のパーツを使用して簡単に再作成できるものでなければなりません。
概要
BLEBoyは、Adafruit nRF52 Featherボードを使用して実装されたBLEペリフェラルであり、Bluetooth仕様(https://www.bluetooth.com/specifications/bluetooth-core-specification)に記載されているすべてのBLEペアリング方式をサポートするように更新されています。BLEBoyを使用すると、GAPセキュリティパラメータ(LESC、OOB、MitM、IO機能など)をオンザフライで更新でき、ユーザーはさまざまなペアリング方式(および各方式が提供するセキュリティレベル)を試すことができます。また、シリアル経由でのOOBデータ送信もサポートしており、他のツールがOOBペアリング用のBLE OOB NFCレコードを構築できるようにします。
このツールは、「Training」フォルダにあるトレーニングモジュールと併用して、BLEセキュリティについて学習できます。
注意: このデバイスは、BLEセキュリティトレーニングでの使用を目的としています。セキュアなアプリケーションではコードを使用しないでください。コード内で使用されている乱数ジェネレータの一部は、暗号学的に安全とは見なされていません。必要に応じて、NRF52 Nordic SDKの新しいバージョンで提供されているセキュアなRNG APIをこの目的に使用できます。
要件
必要なハードウェア
注記:OOBおよびPasskey Entry(パスキーをペリフェラル側で入力する方式)のペアリングアソシエーションモデルを処理するには、Micro-USBケーブルをnRF52 Featherに接続し、シリアル通信(ボーレート9600)を待ち受ける必要があります。この同じシリアル接続は、ステータス情報やデバッグ情報の出力にも使用されます。
オプションのハードウェア
- OOB NFCの例を試す場合
- Featherへの電源供給にMicro-USBケーブルが不要になるLIPOバッテリー
- ソリューション用のハードケース。OLEDはかなり壊れやすく、鋭い圧力で簡単にひび割れる可能性があります。
必要なArduinoライブラリ
arduino-menusystemとBluefruit52Libは変更されているため、それらを除くすべてのライブラリは、それぞれのソースからインストールできます。変更されたライブラリの変更ログは、3rdPartyChanges.txtにあります。
あるいは、このプロジェクトの「libraries」フォルダに含まれるライブラリを使用して、開発時に使用されたライブラリと同じバージョンを使用することもできます。
ハードウェアのセットアップ
以下は、上記のセクションに記載されている必要なハードウェアを使用してBLEBoyを組み立てるためのセットアップ手順です。
- 各FeatherボードとFeatherwingにオスのピンヘッダをはんだ付けします。
- Joy Featherwingのボード底面を確認し、ピン27の前にあるOption Interrupt Pinパッドにはんだを盛ります。
- Triplerにメスのピンヘッダをはんだ付けします。
- 3つのFeatherボードすべてをTriplerに接続します(順序は任意ですが、簡単にするため、OLEDを一番上、nRF52を中央、Joyを一番下に配置しています)。
ソフトウェアのインストール
BLEBoyコードをnRF52 Featherにプログラムするには、次の手順に従います。
- Arduino IDEをインストールします。
- Arduino IDE内にAdafruit nRF52 Featherボードのリソースをインストールします(https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/arduino-bsp-setupを参照)。
- nRF52ボードバージョン0.6.0を使用して開発およびテストされています。他のバージョンでは正常に動作しない場合があります。
- サードパーティのArduinoライブラリをインストールします(上記の「必要なArduinoライブラリ」セクションに記載)。
- Adafruit Bluetooth52Libを、このリポジトリ内のBluetooth52Libフォルダに置き換えます。
- このリポジトリ内のlibrariesフォルダにある修正版のarduino-menusystemライブラリをインストールします。
- BLEBoyをnRF52 Featherにアップロードします。
- nRF52 Featherへのシリアル接続を設定します(ボーレート9600)。
- (オプション)OOB NFCペアリング用にPN532を設定します
DebianでのArduinoとAdafruit nRF52リソースのインストール
カスタムBluefruit52Libのインストール
- カスタムBluefruit52Libフォルダを次の場所にコピーします(はインストール環境によって異なります):
- OS X : ~/Library/Arduino15/packages/adafruit/hardware/nrf52/<version>/libraries
- Linux : ~/.arduino15/packages/adafruit/hardware/nrf52/<version>/libraries
- Windows: %APPDATA%\Local\Arduino15\packages\adafruit\hardware\nrf52\ <version> \libraries
サードパーティライブラリのインストール
- 「必要なArduinoライブラリ」に記載されているサードパーティライブラリをインストールします。
- BLEBoyのlibrariesフォルダからarduino-menusystemを、ユーザーのArduinoライブラリフォルダにコピーします。
または
- 「libraries」内のフォルダをユーザーのArduinoライブラリフォルダにコピーします。
- 通常は ~/Arduino/libraries または C:\Users\ <user> \Documents\Arduino\libraries にあります
(オプション)NFC経由のOOBペアリング用PN352のインストール