(番外編)Nordic の評価ボードで Bluetooth LE のパケットをキャプチャする

Sniffering Bluetooth LE packets by Nordic nRF51-DK and Mac OS X.

通信プロトコルの理解には、Sniffer や Wireshark のようなプロトコルアナライザが大いに役立ちます。私もそのようなツールがなかったら、いまでも Ethernet や TCP/IP を十分に理解できていないと思います。これは Bluetooth LE でも状況は同じです。

先日、Nordic 社の nRF51-DK という評価ボードを購入した理由の一つが、このキャプチャ機能でした。通常の SoftDevice とは異なる専用のファームウェアが公開されていて、Wireshark と併用することでグラフィカルにパケット構造を表示することができるのです。(この評価ボードは、実際には BLE Nano のデバッグにも役立っているのですが、それはさておき。)

Nordic 社のウェブサイトを見ると、以下に Windows 版のキャプチャ方法が説明されているのですが、なんと Mac OS X 版を公開している人がいるので利用させて頂きました。

これを利用すると、例えばこんなふうに advertising パケットをキャプチャできます。

スクリーンショット 2015-03-25 16.16.35d

なお、各 BLE ペリフェラルのコネクション後の通信をモニタすることももちろん可能で、そのためには ble-sniffer-osx の Sniff Device ボタンを押してペリフェラルデバイスを選択し、Capture to Wireshark ボタンを押します。デバイスの仕様的に、(advertise でない)複数のデバイスのキャプチャはできないのではないかと思います。(advertising には特定の 3無線チャネルだけをモニタすれば良いので、advertise は同時にキャプチャできると思う。)

また、試してませんが passkey を与えることで暗号化通信の分析もできるようです。プロトコルの勉強が進んだら試してみようと思います。