Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Analyzing IQOS BLE communication and capturing ...

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

Analyzing IQOS BLE communication and capturing BLE traffic on macOS | 129th Yurui Security Conference

Avatar for V V V

V V V

May 05, 2026

Other Decks in Technology

Transcript

  1. Profile Hikaru • Age ◦ 2002/06/07 23歳 • 所属 ◦

    慶應義塾大学環境情報学部 ◦ 早應AI株式会社 シニアエンジニア • Handle ◦ nil, nonnil, John Paul, 0day.is, VVX Supp, B0b Supp, 炒炒, mel0n • すき ◦ お酒、たばこ、ポーカー、コンピュータ、セキュリティ 3 @nonnil @nilpotent_ @unittype
  2. Daily Driver • Linux Distribution ◦ Fedora Workstation • Browser

    ◦ Orion Browser, Helium • Text Editor ◦ VSCode, Helix • Lang ◦ Rust, Go, Nim • Terminal ◦ Ghostty • keyboard ◦ HHKB Studio • Keyboard layout ◦ UK • VPN ◦ Mullvad 4
  3. IQOSアプリの問題 • Sessionのlifetimeが短い ◦ そのため頻繁に Signinをする必要がある • IQOSアカウントが必要 ◦ アカウント作成にあたって身分証明書による年齢確認を問われるが、

    オンラインだと認証プロセスが不安定でアカウントを作成できない事例が 多数観測される ↑ぼくはアカウント作成のために IQOS Shop横浜店まで行った • 接続時のloadが長い ◦ 設定をカスタムするまでに時間がかかりすぎる • 当然Internet接続がないと使えない 6
  4. BLE(Bluetooth Low Energy) Packet 解析の準備 (macOS篇) 事前準備 • Mac •

    Xcode 1. Apple Developerのダウンロードページから Additional Tools for Xcodeをダウンロードして Install時にPacket Loggerを選択 2. Apple DeveloperのProfiles and Logsから該当するデバイスの Profileをダウンロード 3. System Settings.appの”VPNとデバイス管理 ”でProfileをInstall 4. Packet Loggerを起動 8 簡単だね
  5. BLEの通信方法 9 Central(Client) Peripheral(Server) ここにおるよー Advertise どこにいる? Scan Connect •

    接続を開始する側 • データ要求(Read, Write, Subscribe)を送る • 接続を待ち受ける側 • データ(Service / Characteristic)を提供する
  6. BLEのデータ 10 Service • 機能単位のグループ • 複数のCharacteristicをまとめる Characteristic • 実際のデータを持つ最小単位

    • Value + Propertiesなどで構成される Connect/PairingしたあとにCentralはこれらを PeripheralからDiscoverする ServiceとCharacteristicはUUIDで識別される
  7. BLEにおけるデータアクセス 11 CharacteristicにRequestを送ることで実現 Requestの種類 • Read(値の取得) • Write(値の更新、応答あり) ◦ Write

    Without Response(応答なし) • Notify(非同期通知、ACKなし) • Indicate(非同期通知、ACKあり)
  8. Bluetooth Protocol Stack GAP(Generic Access Profile) • Advertise / Scan

    / Connectのrole管理 GATT(Generic Attribute Profile) • Service / Characteristicベースのデータモデル定義 • ATTを包含する ATT(Attribute Protocol) • GATTの通信手法 (Read/Write/Notify) • GATTに包含される 12
  9. IQOSへどのように書き込みを行うか 17 Offset 0 1 2 3 4 5 6

    7 8 Hex 0x00 0xC0 0x46 0x23 0x64 0x00 0x00 0x00 0x4F Padding Padding Padding Checksum フレーム 開始固定値 Target Sub Cmd ID 輝度値 Cmd ID C0: Stick C9: Holder 64: 100% 1E: 30% Char ID: e16c6e20-b041-11e4-a4c3-0002a5d5c51b
  10. 20