2 ポイント 投稿者 GN⁺ 2025-01-12 | 1件のコメント | WhatsAppで共有
  • go-haystackは、AppleのFind Myネットワークを通じて個人のBluetoothデバイスを追跡できるようにするGo/TinyGoベースのツール群
  • OpenHaystackとMacless-Haystackを併用してカスタムFind Myネットワークを構成し、Appleハードウェアなしで設定できる
  • TinyGoとTinyGo Bluetoothパッケージで書かれたビーコンファームウェアを提供し、nRF SoftDeviceボード、BBC Microbit、Seeed Studio XIAO nRF52840、ESP32補助プロセッサボード、RP2040 Pico-Wなどのハードウェアを対象とする
  • Bluetoothハードウェアを備えたLinuxでも同じビーコンコードを実行でき、Raspberry Piや組み込みシステムも対象に含まれる
  • ユーザーはApple IDとSMSベースの2FA、anisette-v3-server、Macless-Haystackサーバー、haystack CLIを用意したうえで、キー生成・ファームウェア書き込み・JSONアップロードの流れでデバイスを登録する

go-haystackの役割

  • go-haystackは、AppleのFind Myネットワークを通じて個人のBluetoothデバイスを追跡できるようにする
  • OpenHaystackMacless-Haystackを併用してカスタムFind Myネットワークを設定する
  • ツールはGo/TinyGoで書かれており、Appleハードウェアなしで利用できる

自作ビーコンを作る

LinuxビーコンとTinyScan

  • Bluetoothハードウェアを備えたLinuxでもビーコンコードを実行できる
    • Raspberry Piやほかの組み込みシステムが例として示されている
    • 組み込みLinux向けコードはマイクロコントローラ向けビーコンコードと同じで、リポジトリのfirmwareディレクトリにある
  • go-haystackにはローカルデバイス向けのハードウェアスキャナーであるTinyScanも含まれる
    • TinyScanはBluetoothと小型ディスプレイを備えた複数のマイクロコントローラボードで動作する
    • AdafruitとPimoroni製のボードが例として示されている
    • コードはtinyscanディレクトリにある

インストールに必要な構成要素

  • Apple IDが必要で、2FAが有効になっている必要がある
    • 2つ目の認証要素はSMS/テキストメッセージのみ対応
  • anisette-v3-serverをDockerで実行する
    • 例のコマンドではmh-network Dockerネットワークを作成し、dadoum/anisette-v3-serverコンテナを6969ポートで実行する
  • macless-haystackエンドポイントを対話モードで実行して設定する
    • 設定過程でApple ID、パスワード、2FAを入力する
    • serving at port 6176 over HTTPが表示されれば設定完了の状態
    • 設定後にプロセスを終了し、docker restart macless-haystackでサーバーを再起動する
  • go-haystack CLIは次のコマンドでインストールする
go install github.com/hybridgroup/go-haystack/cmd/haystack@latest

利用の流れ

  • ローカル範囲内のデバイスはhaystack scanでスキャンする
    • 出力にはBluetoothアドレス、信号値、識別子形式のデータ、バッテリー状態が含まれる
  • 新しいデバイスを追加するには、まずデバイス用のキーを生成する
haystack keys DEVICENAME
  • キー生成の結果として、DEVICENAME.keysファイルとHaystack設定用のDEVICENAME.jsonファイルが保存される
    • DEVICENAMEは実際のデバイス名に置き換えて使用する
  • ハードウェアにはTinyGoターゲットとデバイス名を指定して書き込む
haystack flash DEVICENAME nano-rp2040
  • このコマンドはTinyGoを使ってキーを含むファームウェアをコンパイルし、デバイスに書き込む
  • 最後に、そのデバイスのJSONファイルを実行中のmacless-haystackインスタンスにWeb UIからアップロードする
    • WebブラウザでMacless-Haystack Webアプリを開き、“Accessories”リンクと“+”ボタンからDEVICENAME.jsonファイルを選択する
    • このWebアプリはローカルデータのみを読み書きするシングルページアプリケーション

位置データの表示

  • デバイスがいずれかのiPhoneの範囲内に入ると、時間が経ってからMacless-HaystackデータがWeb UIに表示される
  • 最初のデータが表示されるまで時間がかかる場合がある

1件のコメント

 
GN⁺ 2025-01-12
Hacker News のコメント
  • 本当にすばらしい。こうした試みや Find My ネットワークには見るたびに驚かされるが、この方法を自分で使わない理由は、いつか Apple がこうしたネットワークへの相乗りを正式に受け入れるか、逆に関連する履歴のある Apple ID を禁止する可能性もあると思っているため。
    現時点で Apple はこれを認識していながら、どちらの立場も示していない。今後 Apple がより正式にサポートするか、自分の Apple ID/アカウントと直接結び付かない方法が出てくるまでは、見ているだけにするつもり。

    • 特定のタグの位置をリクエストするプロセスは Apple Account と結び付いていない。README の案内どおり、macless haystack にログインするときは単に捨てアカウントを使えばよい。
    • Apple がこれを黙認するポジティブな効果もあると思う。このネットワークが広がるほど採用も増えるし、P2P を上位の構造として見れば、特定ベンダーより大きな問題なので、何らかの形で採用が増えるのは受け入れられる妥協かもしれない。
      とくに Apple が自ら作業する必要がないので、今この採用を押さえ込むよりも、最終的にはメッシュ密度をもっと活用しようとする気がする。
  • 去年の夏、妻とポルトガルで休暇中だったのだが、空港へ向かう Uber の車に妻が財布を置き忘れた。運転手は財布を見つけたあと、20ドルといくつかのアクセサリーを抜き取り、財布を捨てた。その日の遅くに AirTag で廃駐車場まで追跡し、Location アプリで見つけた。
    それ以来、すべてのバッグに AirTag を入れ、電池もスケジュールどおり交換している。

    • 自分のバッグにも全部 AirTag を入れている。数年前、シドニー空港の遺失手荷物エリアで、航空会社と空港に何時間も問い合わせた末にそこにあると分かったバッグを待っていたことがある。
      そのとき別の男性も自分の荷物がそこにあると言っていた。1か月前、ニュージーランドで飛行機から避難する際に座席ポケットに iPad を置いて降りてしまい、Find My でシドニーまで追跡したのだという。彼は月に何度も国際線に乗るが、AirTag は自分が持っている物の中で最高だと言っていた。それ以来、すべての車とバッグ、そして盗まれそうな高価な物の中におとり用タグもいくつか隠して入れている。
    • それを運転手がやったことで、その後に乗せた別の乗客がやったことではないと、どうやって分かるの?
  • これを読んでもよく分からない。Apple AirTag と一緒に使えるものなのか、それとも独自の追跡デバイスを作る必要があるのか?

  • https://media.ccc.de/v/38c3-find-my-101

  • 将来的には、ビーコンの位置を1立方メートル以下の精度で分かるようになるといい。
    妻は ADD があり、物をよくなくす。Tile は音が大きくなく不安定で、私たちは iPhone を持っていないので AirTag も使えない。Bluetooth ビーコンの位置を見つけるのに必要な数学を身につけるには疲れすぎているが、できるものならやりたい。「小さな Bluetooth ボードを4つ追加するだけ」のようなソフトウェアプロジェクトがあればいいのだが、ほとんどのオープンソース開発者にとっては、そういう痒いところに手が届くテーマではないようだ。

    • AirTag と iPhone 11 以降なら、まさにこの問題を解決してくれる。AirTag を1フィート以内で見つけられる。
      Bluetooth の接続強度ではなく、**超広帯域(UWB)**で精密な位置を特定する。GPS のように光速の遅延を利用した飛行時間方式で動作する。Find My アプリを開くと AirTag までの正確な距離がすぐに分かり、歩き回りながら観測された位置変化から AirTag がどの方向にあるかも計算する。かなりすごい技術だ。Find My アプリでは「Play Sound」ではなく「Find」機能を使う必要があり、H1 超広帯域チップを搭載した iPhone 11+ が必要。家の中に複数の Bluetooth ボードを設置する費用と同じくらいかもしれず、はるかに正確だが、ハックする楽しさは少ない。
      https://en.wikipedia.org/wiki/Ultra-wideband#Real-time_locat...
    • 私たちも2人とも Android だけを使っているが、壊れた iPhone 11 か 12 mini を1台買って、AirTag の精密探索専用に置いておこうかと考えている。
      少なくとも、超広帯域の精密位置測位、入手しやすさ、適正な価格、安定性をすべて備えた同等の代替案はなさそうだ。一方で、一部の Android には Tile の UWB と連携できるかもしれない UWB 対応があるようだ: https://www.zdnet.com/article/how-to-enable-uwb-on-android-a...
    • 今後数年のうちに Bluetooth Channel Sounding がもっと広まるといい。すべての BLE デバイスに、UWB ほど正確ではないが似た距離推定機能を与えられるという。
      https://www.bluetooth.com/learn-about-bluetooth/feature-enha...
    • 自分も ADHD があり、物をしょっちゅうなくすが、Pebblebee タグは効果があった。鍵にはタグを、財布にはカードを入れていて、厚いレンガ壁のある古い家でも別の階から聞こえるくらい音が十分大きい。
    • ここで言う「必要な数学」は、固定ビーコンで位置を三角測量することを指しているのだと思う。Apple でさえ、受信したスマホの位置を送る方式なので、近所の子どもがバスで拾ったヘッドホンのせいで警察が間違った家に行くような話が起きる。
      以前ビーコンをいじったことがあるが、動かすこと自体はかなり簡単だった。ノートPCがビーコンのように動作する小さなプログラムを書き、スマホの適当な「Bluetooth tracker」アプリでそのビーコンまでのおおよその距離を見た。あとは距離を見ながら歩き回るだけでいい。
  • これでMacなしでも使えるようになったっぽい? だとしたらすごい。Appleのトラッカーは数ユーロしかしないし、もちろんサードパーティ製品の場合だけど

  • 自分だけかもしれないけど、この「探す」ネットワーク機能全体がセキュリティ上の悪夢に見える。有用性は理解できるが、特定の機関がAppleに要請して、セルラー圏外でもこの人がどこにいるか教えてほしい、と言えるのではないか?
    いずれにせよ、そのせいでAppleエコシステムから離れることにしたし、監視という観点では悪夢のように見える

    • このシステムは、まさにそうしたことを不可能にするよう設計されている。
      タグは自分の位置を知らず、自分のローテーション公開鍵だけをブロードキャストする。鍵はランダムに変わるため、正当な所有者であるあなたは予測できるが、第三者がタグを簡単に追跡するのは難しい。他のデバイスはその鍵を見て、自分の位置をタグの公開鍵で暗号化して共有する。そのためデータを取得するのはかなり難しく、Appleがシステムを再設計して悪意あるアップデートを配布するよう強制されない限り、事実上不可能だ。通常、そのレベルは一般的な召喚状で可能な範囲を超えていると見られる
    • 不可能。Appleは誰がどのタグを持っているかを知らない。プライバシー重視の設計で作られている。Appleがプライバシー保護を掲げつつも別の思惑があることは分かっているが、技術設計文書を見た限り、これはかなりよくできている。
      SamsungとGoogleが自社トラッカーでここまでやっているかは疑わしい
    • https://support.apple.com/guide/security/find-my-security-se...
    • 「探す」には、互いに異なる2つの「ネットワーク」があることは言っておく必要がある。1つは他のAppleデバイスが自分の持ち物を見つけてくれるネットワークで、もう1つは自分のデバイスが自らの位置をAppleに直接アップロードするネットワークだ。
      「探す」アプリはこの2つを組み合わせて最新の位置を表示する。私の見る限り、このプロジェクトが使っているのは前者だけのようで、こちらは設計上、明示的なバックドアが必要になる。ただし政府機関に対して防御したいのであれば、後者のネットワークのほうがより注意すべき部分である可能性が高い
    • セキュリティ上の悪夢かもしれないと心配なら、設定でオフにできる: Settings → your_name → Find My → device → toggle off
      これをオフにしても本当に無効化されるのか信じられないなら、所有しているあらゆる電子機器について深く考えるべきだ。Androidスマートフォンのファームウェアは信頼できるのか? オープンソースではないモデムチップは? Javaを実行するSIMカードは? テレビのリモコンに、気づいていないマイクが入っていないと言い切れるか? 実際、多くのリモコンには入っている。トースターにさえ、ネットワークにつながったDOS時代のコンピュータより強力なチップが入っている可能性が高い。うちのものもそうだ。それが近くのWi-Fiに接続して情報を送っていないと、どうやって分かるのか? China/iCloudの件以降、Appleを完全には信頼していないが、大手テック企業の中ではそれでも私が最も信頼している部類だ