
BLEBoy is a training tool to teach users about BLE security by providing a single BLE peripheral that can be used to experiment with each BLE pairing method and demonstrates GATT security concepts.
Create a BLE peripheral that supports all BLE pairing methods that can be used for training and testing, including out-of-band (OOB) pairing. The perpiheral must be configurable and easy to re-create using consumer parts.
BLEBoy is a BLE peripheral implemented using the Adafruit nRF52 Feather board, which has been updated to support all BLE pairing methods described in the Bluetooth specification (https://www.bluetooth.com/specifications/bluetooth-core-specification). BLEBoy allows on-the-fly GAP security parameters to be updated (LESC, OOB, MitM, IO capabilities, etc.) to allow users to experiment with the various pairing methods (and the level of security provided by each). It also supports the sending OOB data over serial to allow other tools to construct BLE OOB NFC records for OOB pairing.
This tool can be used with the training modules found in the "Training" folder to learn about BLE security.
NOTE This device is intended to be used for BLE security training. Do not use code in secure applications. There are several random number generators used in the code that are not considered to be cryptographically secure. Later versions of the NRF52 Nordic SDK provide secure RNG APIs that can be used for this purpose if needed.
Note: To handle OOB and Passkey Entry (where the passkey is entered on the peripheral) pairing association models, a Micro-USB cable will need to be connected to the nRF52 Feather and listen for serial communications (baud 9600). This same serial connection is used to print status and debug information.
All libraries can be installed from their respective sources, except for arduino-menusystem and Bluefruit52Lib that have been modified. A changelog of the modified libraries can be found in 3rdPartyChanges.txt.
Alternatively, users can use the libraries contained in the "libraries" folder of this project to ensure the same version of the libraries used during development is used.
The following are setup instructions for constructing BLEBoy using the required hardware listed in the sections above:
To program the nRF52 Feather with the BLEBoy code, follow these steps:
OR