2.2K Views
February 21, 23
スライド概要
次のイベントの講演資料です。
https://sciencepark.connpass.com/event/273450/
サイエンスパークの勉強会の資料を公開します。勉強会は2022/3現在、connpassで公開しています。 https://sciencepark.connpass.com
ミニWDDDS Bluetoothを診断してみよう SP2302-E28 2023/2/20 バグダス検証課 三浦秀朗
ミニWDDDS 目次. 1.はじめに 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ 3.Bluetooth診断に使うツール 4.機器の診断 5.最後に © SCIENCEPARK CORPORATION. 2
ミニWDDDS 1.はじめに - 自己紹介 サイエンスパーク株式会社 プラットフォーム開発部 バグダス検証課 兼 社長室 みうら ひであき 三浦 秀朗 ・各種OSでの様々なデバイスドライバの開発 ・Windows向けセキュリティ製品の立上げ・開発 ・Windows向けセキュリティSDKの立上げ・開発 ・デバイスドライバ向け開発ツールの翻訳・国内サポート ・ソフトウェアで実現するStackOverflow対策の研究開発 (米空軍 Award) ・WDMドライバの各種セミナー ・デバイスドライバ関連書籍の翻訳・監修 ・某ゲーム機のスタートアップ・Windowsクロス開発(約5年) ・電力・自動車向けIoT機器のペネトレーションテスト © SCIENCEPARK CORPORATION. 3
ミニWDDDS 1.はじめに 今やBluetoothの名を知らない方はおられないと思います。ヘッ ドフォンやマウス・キーボードから忘れ物タグまで、様々なデ バイスが販売されています。 USBやネットワークはなんとなく仕組みはわかるでしょうが、 Bluetoothはどうやって通信しているのでしょう?どんな危険性 があるのでしょう? そこでこのセミナーではBluetoothの攻撃例とセキュリティ対策 の実例をお見せし、無駄なIoT機器開発における手戻りなどを少 なくするための情報を、開発者目線でお伝えしていきたいと思 います。 © SCIENCEPARK CORPORATION. 4
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ Bluetoothを組み込むためには・・・ ・元々Bluetoothをサポートしている CPUとOSを使う(Androidなど) ・既存の組み込み機器にBluetoothを追加する Bluetoothスタックのソフトウェアと SPIなどで接続できるBluetoothチップを追加 ・電力や通信量に応じて、ClassicかLowEnergy のどちらかを選択 © SCIENCEPARK CORPORATION. 5
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ 前回セミナー: Bluetooth Classic 昔から使われている方式です。 今でも比較的大容量の通信に用いられ、若干消費電力が多いです。 セキュリティ機構がハードウェアに組み込まれているため、デバイス同士の接続にセ キュリティを入れ込むことが容易になっています。 しかし安全でないセキュリティが混在できるため、明確にサポートするセキュリティ レベルを定義する必要があります。 80分割された周波数を用い、接続開始の周波数が決まっていないため、盗聴(スニッ フィング)を行う機器が高価です。 © SCIENCEPARK CORPORATION. 6
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ 前回セミナー:Bluetooth LowEnergy (LE) 省電力が売りです。そのため小容量の通信に向いています。 消費電力を少なくしたい(スペックの低めの)機器で使われることが多いです。 セキュリティ機構はソフトウェア側で実装することになっています。 しかし上記の機器の特徴、及び省電力向けOSの制約のため、セキュリティ機構が実 装されないことが多く、攻撃が容易いデバイスが多いです。 40分割された周波数を用いますが、接続開始の周波数が3つしか無いため、安価な機 器でスニッフィングが可能です。 micro:bitという3,000円程度のデバイスを3つ用意し、BtleJackなどGitHubに公開され ているツールを使うと、簡単にスニッフィングを実施できます。 © SCIENCEPARK CORPORATION. 7
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ Bluetooth ClassicとLowEnergy ・Bluetooth 4.x以降は、ClassicとLowEnergyの 両方をサポートできますが、ロゴで使い分けて いるようですが・・・ ClassicとLowEnergyの両方をサポート LowEnergyだけをサポート © SCIENCEPARK CORPORATION. 8
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ Bluetooth LowEnergy ・Bluetooth 4.x以降でサポートされています。 ・マウス・キーボード・センサーなど、比較的 通信量の少ない用途で使用されます。 ・電力使用量は少ないです。 © SCIENCEPARK CORPORATION. 9
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ Bluetooth Classic ・Bluetooth 3.0までの仕様です。4.xや5.xでも この仕様は含まれています。機器に機能が含ま れるかは別です。 ・ヘッドフォン、スピーカーなど、オーディオ 系で多く使われています。 ・電力使用量は多いです。 © SCIENCEPARK CORPORATION. 10
ミニWDDDS Bluetoothとは ~ClassicとLowEnergyの仕組み~ ClassicとLowEnergyでは、同じ2.4GHz帯を使用しますが、 無線通信の帯域幅と分割数が違います。 Classic ・・・・・ 80分割、どのチャネルから通信が始まるかわからない →盗聴は80チャネル全部見張るので大変、アナライザも高価 LowEnergy ・・・ ・・・ ・・・ ・・・ 40分割、通信を開始する最初のチャネルは3つ→盗聴が楽、アナライザも安価 11
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ IoT機器ではどちらが多く使われる? Bluetooth LowEnergy(LE)が多い © SCIENCEPARK CORPORATION. 12
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ Bluetooth LEの予備知識 ・BTLE機器からの定期的なアドバタイズ通信から始まる ・Classicでは当然のようにあったペアリングという処理は可能 だが、行っていないデバイスが多い(ほぼ見たことない) →つまり平文通信がほとんど ・Classicではペアリングを含むセキュリティ機構がH/W内で実 装されていたが、BTLEではS/Wでの実装となった →マイコンの制約や煩雑さのため、ほとんどセキュリティ機構 が使われていない © SCIENCEPARK CORPORATION. 13
ミニWDDDS 2.Bluetoothとは ~ClassicとLowEnergyの仕組み~ Bluetooth LEのアドバタイズとは ③いますよ ①数秒置きに電源ON ④つないでいいですよ! ⑤つなぎま す! ②誰かいますか?(アドバタイズ) © SCIENCEPARK CORPORATION. 14
ミニWDDDS 2.Bluetoothの診断に使うツール Bluetooth LEの忘れ物ブザーをターゲットに、 ツールを使って盗聴とビープ音の制御をしてみましょう © SCIENCEPARK CORPORATION. 15
ミニWDDDS 3.Bluetoothの診断に使うツール 3.1 Bluetoothctl/btmgmt 3.2 gatt tool 3.3 BtleJack + micro:bit×3 © SCIENCEPARK CORPORATION. 16
ミニWDDDS 3.1 Bluetoothctl/btmgmt ・Bluetoothに対する様々なコマンドを入力できるツールです。 今回はBluetoothのホストコントローラの生存確認だけに使います。 © SCIENCEPARK CORPORATION. 17
ミニWDDDS 3.2 gatt-tool ・GATTという、BTLE上のプロトコルを発行できるツールです。 BTLEは基本的にGATTで通信することになりますので、重要な データは流さないことが基本です。 ※Classicではデバイス種別毎にプロトコルが用意されています アプリケーション GAP アドバタイズや接続時に 利用するプロトコル © SCIENCEPARK CORPORATION. GATT ATT 接続後に機器と通信する際 に使用するプロトコル (HTTPに相当) GATTが使うプロトコル (TCP/IPに相当) 18
ミニWDDDS 3.3 BtleJack + micro:bit×3 ・BluetoothLEの接続をモニター・ジャミング・乗っ取りを行え るツールです。 Ubuntu上で BtleJackを動作 © SCIENCEPARK CORPORATION. USB接続 19
ミニWDDDS 3.3 BtleJack + micro:bit×3 ・BtleJackは、pythonで動作するBTLEのスニファー(盗聴)です https://github.com/virtualabs/btlejack ・micro:bitはRF機能を搭載した教育用マイコンです。RF機能でBluetoothLEの 1チャネルを見張るので、3枚使います。 https://microbit.org/ja/ ※BtleJackでスニッフィングしたBTLEパケットをWiresharkでも表示できます。 https://www.wireshark.org/download.html © SCIENCEPARK CORPORATION. 20
ミニWDDDS 4.機器の診断 それでは、メルカリで買った中国製のBTLE Tagの動きを見てみましょう。 スマホと離れるとTagが ピーピー音を出します © SCIENCEPARK CORPORATION. 21
ミニWDDDS 5.最後に Bluetooth LowEnergy(BTLE)は実装は簡単ですが・・・ ・機密性の高いデータを流す場合は、 ペアリングによる経路の暗号化 平文データの暗号化 ・ペアリングを使用できない場合、例えば平文のGATT上でも、3WAYハンド シェイクのような、リプレイ不可な手順を実装してください ⇒ある程度までは開発者で守りましょう!! ⇒それでも不安なら弊社にご相談ください © SCIENCEPARK CORPORATION. 22
ミニWDDDS ご清聴ありがとうございました