1 ポイント 投稿者 GN⁺ 2024-12-29 | 1件のコメント | WhatsAppで共有
  • ESP32はCCHだけでもおそらく数千台使われるほど一般的だが、中核となるWi‑Fiスタックはクローズドソースで、修正や監査が難しい
  • 38c3のセッションでは、Wi‑Fi周辺機能のリバースエンジニアリングから出発し、オープンソースのWi‑Fiスタックを作る過程を扱う
  • 目標は単なる代替実装ではなく、機密データを扱いうるソフトウェアを自分で検証し修正できるようにすること
  • 新しいスタックが定着すれば、ESP32は一般的なIoT SoCを超えて、研究や実験のための低コストな無線プラットフォームへと拡張できる
  • 機能が十分に開放されれば、ペンテストツール、B.A.T.M.A.N.メッシュルーター、AirDropクライアントのような活用が可能になる

クローズドなWi‑Fiスタックを開く理由

  • ESP32の既存Wi‑Fiスタックは動作するものの、クローズドな実装であるため、内部動作を確認したり必要に応じて修正したりするのが難しい
  • オープンソースのWi‑Fiスタックの核心的な目標は、機密データを扱う可能性のある領域を修正・監査できるようにすること
  • CCHにはおそらく数千台のESP32があり、すべてがこのようなクローズドなWi‑Fiスタックを動かしているという点が問題意識を強めている

リバースエンジニアリングから新しいスタックへ

  • このプロジェクトは、ESP32の独自Wi‑Fiスタックをリバースエンジニアリングすることから始まった
  • その後、ESP32のWi‑Fi周辺機能を直接扱うオープンソースWi‑Fiスタックの実装へとつながった
  • この過程では、Wi‑Fi、ESP32、一般的なリバースエンジニアリング、そしてこの種のプロジェクトへのアプローチ方法もあわせて扱われる

ESP32が開放されたときの活用

  • ESP32は機能が完全に開放されれば、研究ツールおよびIoT SoCとして、より多様な役割を担えるようになる
  • 想定される活用例は次のとおり
    • ペンテストツール
    • B.A.T.M.A.N.メッシュルーター
    • AirDropクライアント

セッション情報と公開条件

  • 登壇者はFrostie314159とJasper Devreker
  • 38c3のHardware & Makingトラック、Saal 1で行われた38分のセッションで、日付は2024-12-27
  • 映像と音声はMP4、WebM、MP3、Opus形式で提供される
  • 資料はhttp://creativecommons.org/licenses/by/4.0の条件で公開されている

1件のコメント

 
GN⁺ 2024-12-29
Hacker News のコメント
  • 関連記事: https://zeus.ugent.be/blog/23-24/open-source-esp32-wifi-mac/

    • オープンソース版がクローズドな API と互換になれば、かなりメリットが大きそう
      互換性があれば、ネット上にすでに蓄積されているヘルプやサンプルをそのまま活用でき、参入コストも下がる。MAC 層をほんの少しだけいじりたい人も、新しい API を覚える負担なしに従来どおり入って、必要な部分だけ手を入れられる
    • 筆者です。記事シリーズ全体も https://esp32-open-mac.be/ にあります
  • Espressif だけが WiFi モデムをかなりまともなマイクロコントローラに載せることに成功している、というのは今でもかなり不思議
    ST はこの分野では依然として大きく遅れている

    • ほかの例としては BK72xx 系列(BK7231T、BK7231N)、RTL87xx 系列(RTL8710BN、RTL8710BX)、RP2040 がある
      ただし RP2040 W ボードの WiFi は外付けモジュールのように見える。出典は https://esphome.io
    • Espressif は、低価格、入手しやすさ、扱いやすいハードウェア、扱いやすいソフトウェア、変なライセンス制限がない、という組み合わせをうまくそろえた
      どこでも 1 個単位で買え、USB 電源・プログラミングポートと表示済みのピンが付いた各種ブレイクアウトボードとして売られており、ドキュメント・サンプル・Arduino IDE・NodeMCU もよく整っている。Arduino も初期には似ていたが、低性能な AVR チップに長く留まりすぎ、中国製でないボードは高価で、WiFi もなかった。Raspberry Pi Pico は機能は良いが、初期は入手が難しかったし、それ以外は DigiKey のようなところで買う「ワンチップ」に近く、送料が高く、ドキュメントは 600 ページ超で、最初の ping を 1 つ送るだけでも 300 ページ以上が必要で、ボードにはんだ付けしなければならず、プログラミングにもたいてい高価な機材が必要になる
    • Nordic Semiconductor も Bluetooth と WiFi を備えたマイクロコントローラを持っている。ただし Espressif のソリューションよりはるかに一般的ではない
    • AliExpress の TuYa ベースのモジュールの大半は Beken
    • TI はほぼ 10 年前から WiFi+Bluetooth マイクロコントローラを持っていて、Cortex-M4 も提供している
  • まだ動画を見られていないので、すでに扱っていたら申し訳ないが、ESP32 の無線認証が公式のブラックボックス・ファームウェアに紐づいているのか気になる
    同じハードウェアでもオープンなファームウェアを使うと、FCC などの認証機関に再提出して適合性試験を受ける必要があるのだろうか?

    • そういう形で配布するならそうだが、エンドユーザーが自分で変更するなら違う
      CFR の条項はすぐには思い出せないが、FCC は誰でも少量の未認証デバイスを使用できることを明示的に認めている。そのデバイスが他の規則に違反すれば依然として違反だが、ハードウェアやソフトウェアを変更したという事実自体は禁止されていない
    • グレーゾーンだと思う。大きく外していなければ、認証では最悪条件での無線性能だけを試験して文書化し、その他の技術文書は PCB 製造ファイルやファームウェアのビルドスクリプトのような現代的な設計文書というより、上位レベルのブロック図と動作理論を含むかなり詳しいパンフレットに近い
      ファームウェアの存在はほとんど認められていないレベル。理由も一つある。WiFi のような認証済みの免許不要無線機器は、公共の利益のために改ざん防止が期待されているからだ。そのため FCC が WiFi ルーターの認証要件を議論したとき、脆弱なひどい WiFi ルーターすべてにセキュアブートを義務づける形でソフトウェアにまで拡張する案を検討したが、ひどい発想だったので廃案になった。現状では、生成されたファームウェアが明らかに規格外の放射を生まない限り、半分合法または半分違法に近いと思う。法律家ではない
    • その通り
  • https://github.com/esp32-open-mac

  • 以前、WiFi パスワードのプロビジョニングのアイデアがあった。パケット長を変調して SSID とパスワードを送信できる
    新しい IoT デバイスは当然パケットを復号できないが、長さは観測できる。Linux 向けのサンプル実装も作ったが、これを行うのに十分な低レベル PHY アクセスを提供する IoT チップを一つも見つけられなかった

    • TI の SmartConfig は長さフィールドを使ってそのように動作する。だから、それを実装した IoT チップを使えばよく、TI はそうしたチップをかなり多く提供している
    • https://www.keacher.com/xmas24/ はデータ通信に OOK を使い、WiFi 信号からエネルギーを収穫してバッテリー不要という利点がある
    • 最後の手段としてリバースエンジニアリングすればいいのでは、あるいは不可能なのだろうか?
    • 今なら普通に WPA3 を使う
  • 脇道の質問だが、発表者の一人が DECT 番号を公開していた。技術カンファレンスで使うために、今でも古い電話機を持ち歩いている人たちがいるということなのか?

    • イベント中の音声通信のために複数のネットワークを運用している。調べたところ、通常は DECT、SIP、GSM を併用している
      イベント中の指標を表示するステータスダッシュボードもある
      [1] https://events.ccc.de/2024/12/22/38c3-poc-isdn-version/
      [2] https://dashboard.eventphone.de/d/de7sgxz63vzeoe/38c3?orgId=...
    • その通り。ハッカーキャンプではかなり便利で、自分もまだ一台持っている
      特にキャンプエリアでは WiFi のカバレッジが不安定なことがあるので、トイレ棟や駐車場まで歩いて行っても電話を受けられる。独自の周波数を使うため、WiFi、Bluetooth、Zigbee が使う帯域をさらに混雑させることもない。アプリのようなものも使えるだろうが、DECT は非常に安定していて、到達距離も WiFi よりずっと良い。Nokia 8210 くらいの大きさの、まともな Siemens の端末を持っているので、レンガみたいなものを持ち歩く必要もない。今はバッテリーがほぼ死んでいるだろうが、当時のバッテリーらしく交換可能だ
  • ドイツの個人宅では、DECTはいまだに非常に人気がある
    WiFi上のVoIPよりはるかに堅牢

    • CCCの伝統だと思う
    • その通り。ただし GSMやSIP も使えるし、実際には最新のネットワークを使っていても番号空間が同じなので、よくDECT番号と呼ばれる
      DECTが先にあったため、内線電話網の一般名詞のように定着したもの
  • ハッキングがどれほど深いレベルなのか気になる。フレーム送信は単にいくつかのレジスタを設定して割り込みを待つだけのように見えるが、実際の作業をする別のファームウェア層と会話しているのではないかと思う
    Raspberry Pi Picoボードを思い出す。メインのRP2040 SoCはあるが、WiFiは独自のArmコアを持つ別のWiFi/BTモジュール(CYW43xx)である。WiFiモジュールの外部レジスタインターフェースも公開文書化されていないが、オープンソースドライバ(https://github.com/georgerobotics/cyw43-driver/tree/cf924bb0...)があるため、仕様を推測できる。しかしこのドライバも結局、モジュール内部のArmコアで動くソフトウェアと通信しており、そのコードはメーカーが巨大なファームウェアのバイナリblobとして提供している。そのblobは、リンク先リポジトリのfirmwareディレクトリ内のヘッダファイルに実際に入っている。今回のESP32ハックがこの構造とどう対応しているのか気になる

  • 発表者たちが本当に若く見えて印象的。あれほど若い年齢であの程度の技術知識を身につけている様子を見るのは興味深い

    • 今はあらゆるものが公開されている。子どもたちはますます若い年齢で、望むことを学べる
      チェスが完璧な例。昔は多くの知識が本にあり、しばしば外国語の本だった。今はすべてが公開されていて、ある程度の実力になればトップ100圏の相手とも気軽に対局できるので、成長速度がさらに速くなる
  • プロミスキャスモードをサポートするMicroPythonライブラリに一歩近づいた

    • なぜ? それはすでにESP SDKでサポートされている
  • ダウンロードせずに視聴: https://media.ccc.de/v/38c3-liberating-wi-fi-on-the-esp32/pl...