こんにちは。AndGoのハードウェア担当の片山です。毎週水曜日はAndGoのエンジニアが交代で技術に関するマニアックな記事を皆様にお送りしています。
今回はBluetooth Low Energy (BLE)についてお話していきます。BLEはBluetooth 4.0から追加された規格で,超低消費電力であるため,電池などの電源で長期間動作させる必要があるIoT機器に使用されています。身近な例としてはフィットネスデバイスやスマートキーなどがBLEを採用しています。
ハードウェアウォレットでもLedger Nano XやCoolWallet S,先日ご紹介したSecuX V20などもBLEに対応しています。Trezor Model One/TやLedger Nano Sは通信方法としてUSBを採用していますが,多くのスマートフォンはUSB接続に対応していませんし,BLEでワイヤレスで通信できることで利便性が高まります。一方で,電波で重要な情報を伝えるという意味では盗聴や改ざんなどの不安感も残ります。今回はBLEについて解説していきたいと思います。
BLEで使う電波
BLEは電波を使って通信を行います。様々な周波数の電波がありますが,BLEは2.400〜2483.5GHzの周波数帯を使用しています。この周波数帯はISMバンドといって世界中で比較的自由に使えるもので,Wi-Fiや電子レンジなど多くの電子機器ががこの周波数帯を使っています。
BLEはこの2.400〜2483.5GHzの周波数帯を40チャネル二分割して使っています。このようにすることで,他の電子機器と干渉した場合にはチャネルを切り替えることで干渉を避けることができます。
とくにこの中でも2.402,2.426,2.480GHzを含む3つのチャネルをアドバタイジング・チャネルといって,BLEを使っているデバイスを見つけるためのチャネルとして利用されています。
理論上の通信帯域はBluetooth 5で通信帯域2Mbps実質的にはオーバーヘッドを考慮すると,10kbps程度のスピードになってしまいます。たとえば5MBのファイルをダウンロードするのに1時間程度かかる計算になります。したがって,BLEは大きなファイルのやりとりには向かず,IoT機器で取り扱うような小さなデータのための規格です。もちろん,仮想通貨のトランザクション程度のデータであれば余裕です。
電波の到達距離ですがBluetooth 5で通信速度を押さえれば理論上は400mですが,実際には10m程度でしょう。さらに,設定次第で出力を抑えてしまえば到達距離を短くすることができますので,隣の家から傍受するようなことは物理的に難しいといえるでしょう。
ペアリング
ハードウェアウォレットのような周辺機器とスマートフォンのようなホストが接続する際には,周辺機器側がアドバタイジング・チャネルを使って,周辺機器に関する情報を定期的に発信します。例えば周辺機器の名前や電波の発信強度,サービスの種類を表すIDなどです。
ホスト側はアドバタイジング・チャネルをスキャンして,周辺機器を探します。iOSであればLightBlueのようなアプリをダウンロードすることで,身の回りでどのようなBLEデバイスがあるかスキャンすることができます。2021年10月20日の記事でもLightBlueを利用してSecuXをスキャンしています。実のところ,電波が到達できる範囲内でBLE対応機器があるかどうかそのものはわかってしまいます。