2 Punkte von GN⁺ 2025-01-12 | 1 Kommentare | Auf WhatsApp teilen
  • go-haystack ist eine Go/TinyGo-basierte Tool-Sammlung, mit der sich persönliche Bluetooth-Geräte über Apples Find My-Netzwerk verfolgen lassen
  • Zusammen mit OpenHaystack und Macless-Haystack wird ein eigenes FindMy-Netzwerk aufgebaut, das ohne Apple-Hardware eingerichtet werden kann
  • Es bietet Beacon-Firmware, geschrieben mit TinyGo und dem TinyGo-Bluetooth-Paket, und richtet sich an Hardware wie nRF-SoftDevice-Boards, BBC Microbit, Seeed Studio XIAO nRF52840, ESP32-Coprozessor-Boards und RP2040 Pico-W
  • Derselbe Beacon-Code kann auch unter Linux mit Bluetooth-Hardware ausgeführt werden; auch Raspberry Pi und Embedded-Systeme zählen zu den Zielplattformen
  • Nutzer bereiten Apple ID mit SMS-basierter 2FA, anisette-v3-server, Macless-Haystack-Server und die haystack-CLI vor und registrieren Geräte dann über den Ablauf Schlüssel erzeugen, Firmware flashen und JSON hochladen

Rolle von go-haystack

  • go-haystack ermöglicht das Tracking persönlicher Bluetooth-Geräte über Apples Find My-Netzwerk
  • Zusammen mit OpenHaystack und Macless-Haystack wird ein eigenes FindMy-Netzwerk eingerichtet
  • Die Tools sind in Go/TinyGo geschrieben und können ohne Apple-Hardware genutzt werden

Eigene Beacons bauen

Linux-Beacons und TinyScan

  • Auch unter Linux mit Bluetooth-Hardware kann der Beacon-Code ausgeführt werden
    • Raspberry Pi und andere Embedded-Systeme werden als Beispiele genannt
    • Der Code für Embedded Linux ist derselbe wie der Beacon-Code für Mikrocontroller und befindet sich im Verzeichnis firmware des Repositorys
  • go-haystack enthält außerdem TinyScan, einen Hardware-Scanner für lokale Geräte
    • TinyScan läuft auf verschiedenen Mikrocontroller-Boards mit Bluetooth und kleinem Display
    • Boards von Adafruit und Pimoroni werden als Beispiele genannt
    • Der Code befindet sich im Verzeichnis tinyscan

Für die Installation benötigte Komponenten

  • Eine Apple ID ist erforderlich, und 2FA muss aktiviert sein
    • Als zweiter Authentifizierungsfaktor wird nur SMS/Textnachricht unterstützt
  • anisette-v3-server wird per Docker ausgeführt
    • Der Beispielbefehl erstellt das Docker-Netzwerk mh-network und startet den Container dadoum/anisette-v3-server auf Port 6969
  • Der macless-haystack-Endpoint wird im interaktiven Modus gestartet und konfiguriert
    • Während der Einrichtung werden Apple ID, Passwort und 2FA eingegeben
    • Wenn serving at port 6176 over HTTP angezeigt wird, ist die Einrichtung abgeschlossen
    • Danach wird der Prozess beendet und der Server mit docker restart macless-haystack neu gestartet
  • Die go-haystack-CLI wird mit folgendem Befehl installiert
go install github.com/hybridgroup/go-haystack/cmd/haystack@latest

Nutzungsablauf

  • Geräte in lokaler Reichweite werden mit haystack scan gescannt
    • Die Ausgabe enthält Bluetooth-Adresse, Signalwerte, Daten in Form von Kennungen und Batteriestatus
  • Um ein neues Gerät hinzuzufügen, werden zunächst Schlüssel für das Gerät erzeugt
haystack keys DEVICENAME
  • Als Ergebnis der Schlüsselerzeugung werden eine Datei DEVICENAME.keys und eine Datei DEVICENAME.json für die Haystack-Konfiguration gespeichert
    • DEVICENAME wird durch den tatsächlichen Gerätenamen ersetzt
  • Auf die Hardware wird geflasht, indem TinyGo-Target und Gerätename angegeben werden
haystack flash DEVICENAME nano-rp2040
  • Dieser Befehl kompiliert mit TinyGo die Firmware mit den enthaltenen Schlüsseln und flasht sie auf das Gerät
  • Abschließend wird die JSON-Datei des Geräts über die Web-UI in die laufende macless-haystack-Instanz hochgeladen
    • Im Webbrowser wird die Macless-Haystack-Web-App geöffnet; über den Link „Accessories“ und den „+“-Button wird die Datei DEVICENAME.json ausgewählt
    • Diese Web-App ist eine Single-Page-Anwendung, die nur lokale Daten liest und schreibt

Anzeige von Standortdaten

  • Wenn das Gerät in die Reichweite eines iPhones gelangt, erscheinen nach einiger Zeit Macless-Haystack-Daten in der Web-UI
  • Bis die ersten Daten angezeigt werden, kann es dauern

1 Kommentare

 
GN⁺ 2025-01-12
Meinungen auf Hacker News
  • Wirklich cool. Solche Versuche und das Find-My-Netzwerk beeindrucken mich jedes Mal, wenn ich sie sehe. Der Grund, warum ich so etwas nicht selbst nutze, ist aber, dass Apple irgendwann dieses Aufspringen auf das Netzwerk offiziell akzeptieren könnte – oder umgekehrt Apple IDs mit entsprechender Vorgeschichte sperren könnte.
    Im Moment weiß Apple davon, bezieht aber in keine Richtung Stellung. Bis Apple es künftig offizieller unterstützt oder es eine Methode gibt, die nicht direkt mit meiner Apple ID/meinem Account verknüpft ist, werde ich nur zuschauen.

    • Der Vorgang, den Standort eines bestimmten Tags abzufragen, ist nicht an einen Apple Account gebunden. Wie im README beschrieben, kann man beim Login bei macless haystack einfach einen Burner-Account verwenden.
    • Ich denke, es gibt auch positive Effekte, wegen derer Apple hier ein Auge zudrücken könnte. Je größer dieses Netzwerk wird, desto stärker wächst die Akzeptanz; wenn man P2P als übergeordnete Struktur betrachtet, ist das ein größeres Thema als ein einzelner Anbieter, und mehr Akzeptanz in irgendeiner Form könnte ein vertretbarer Kompromiss sein.
      Vor allem, weil Apple selbst nichts tun muss, vermute ich, dass sie am Ende eher die Mesh-Dichte stärker nutzen wollen, statt die Verbreitung jetzt abzuwürgen.
  • Letzten Sommer war ich mit meiner Frau in Portugal im Urlaub, und auf dem Weg zum Flughafen ließ sie ihre Geldbörse in einem Uber liegen. Der Fahrer fand die Geldbörse, nahm 20 Dollar und ein paar Schmuckstücke heraus und warf sie weg; später am selben Tag konnten wir sie per AirTag bis zu einem verlassenen Parkplatz verfolgen und mit der Wo-ist?-App finden.
    Seitdem stecke ich in jede Tasche einen AirTag und tausche die Batterien nach Zeitplan aus.

    • In all meinen Taschen steckt ebenfalls ein AirTag. Vor ein paar Jahren habe ich am Flughafen Sydney im Bereich für verlorenes Gepäck auf eine Tasche gewartet, von der ich nach stundenlangen Nachfragen bei Airline und Flughafen herausgefunden hatte, dass sie dort war.
      Damals sagte auch ein anderer Mann, seine Sachen seien dort: Einen Monat zuvor habe er in New Zealand bei einer Evakuierung aus dem Flugzeug sein iPad in der Sitztasche liegen lassen und es mit Find My bis nach Sydney verfolgt. Er fliegt mehrmals im Monat international und sagte, AirTag sei das Beste unter all seinen Besitztümern. Seitdem habe ich in allen Autos und Taschen sowie in teuren Dingen, die gestohlen werden könnten, auch ein paar Köder-Tags versteckt.
    • Woher weißt du, dass der Fahrer das getan hat und nicht ein anderer Fahrgast, der danach mitgefahren ist?
  • Auch nach dem Lesen ist mir nicht klar: Kann man das mit einem Apple AirTag verwenden, oder muss man ein eigenes Tracking-Gerät bauen?

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

  • Für die Zukunft fände ich es gut, wenn man den Standort eines Beacons mit einer Genauigkeit von unter 1 Kubikmeter bestimmen könnte.
    Meine Frau hat ADS und verliert häufig Dinge. Tile ist nicht laut und unzuverlässig, und da wir keine iPhones haben, können wir auch keine AirTags verwenden. Ich bin zu erschöpft, um mir die Mathematik anzueignen, die nötig ist, um Bluetooth-Beacons zu orten, aber ich wünschte, ich könnte es. Es wäre schön, wenn es ein Softwareprojekt nach dem Motto „Fügen Sie einfach vier kleine Bluetooth-Boards hinzu“ gäbe, aber für die meisten Open-Source-Entwickler scheint das nicht gerade der Juckreiz zu sein, den sie kratzen wollen.

    • AirTag und ein iPhone 11 oder neuer lösen genau dieses Problem. Man kann einen AirTag auf unter 1 Fuß genau finden.
      Die präzise Ortung erfolgt nicht über die Bluetooth-Signalstärke, sondern über Ultrabreitband (UWB). Es funktioniert wie GPS mit einem Time-of-Flight-Verfahren, das die Laufzeit bei Lichtgeschwindigkeit nutzt. Wenn man die Wo-ist?-App öffnet, kennt sie sehr schnell die genaue Entfernung zum AirTag, und während man herumläuft, berechnet sie anhand der beobachteten Positionsänderungen auch, in welcher Richtung sich der AirTag befindet. Ziemlich coole Technik. In der Wo-ist?-App muss man die Funktion „Suchen“ verwenden, nicht „Ton abspielen“, und man braucht ein iPhone 11+ mit H1-Ultrabreitband-Chip. Das könnte ähnlich viel kosten wie mehrere Bluetooth-Boards im Haus und ist deutlich genauer, macht aber weniger Spaß zum Hacken.
      https://en.wikipedia.org/wiki/Ultra-wideband#Real-time_locat...
    • Wir beide nutzen auch nur Android, überlegen aber, einfach ein kaputtes iPhone 11 oder 12 mini zu kaufen und es nur für die Präzisionssuche mit AirTags bereitzuhalten.
      Zumindest scheint es keine gleichwertige Alternative zu geben, die Ultrabreitband-Präzisionsortung, Verfügbarkeit, einen angemessenen Preis und Zuverlässigkeit vereint. Andererseits scheinen einige Android-Geräte UWB zu unterstützen, das möglicherweise mit Tiles UWB funktioniert: https://www.zdnet.com/article/how-to-enable-uwb-on-android-a...
    • Ich hoffe, dass sich Bluetooth Channel Sounding in den nächsten Jahren stärker verbreitet. Es soll allen BLE-Geräten eine ähnliche, wenn auch weniger genaue Entfernungsschätzung wie UWB ermöglichen.
      https://www.bluetooth.com/learn-about-bluetooth/feature-enha...
    • Ich habe ebenfalls ADHS und verliere ständig Dinge; Pebblebee-Tags haben bei mir funktioniert. An den Schlüsseln habe ich einen Tag, in der Geldbörse eine Karte, und selbst in einem alten Haus mit dicken Ziegelwänden sind sie laut genug, dass man sie aus einem anderen Stockwerk hört.
    • Mit der hier erwähnten „nötigen Mathematik“ ist wohl gemeint, die Position per Triangulation mit festen Beacons zu bestimmen. Selbst Apple sendet lediglich den Standort des empfangenden Telefons, was zu Geschichten führt, in denen die Polizei beim falschen Haus auftaucht, weil ein Nachbarskind im Bus gefundene Kopfhörer mitgenommen hat.
      Ich habe früher einmal mit Beacons herumgespielt, und sie überhaupt zum Laufen zu bringen war ziemlich einfach. Ich schrieb ein kleines Programm, das den Laptop wie einen Beacon agieren ließ, und sah mir mit irgendeiner „Bluetooth tracker“-App auf dem Handy die ungefähre Entfernung zu diesem Beacon an. Danach muss man nur noch herumlaufen und die Entfernung beobachten.
  • Es scheint jetzt auch ohne Mac nutzbar zu sein? Wenn ja, ist das großartig. Apple-Tracker kosten schließlich nur ein paar Euro – natürlich bezogen auf Drittanbieterprodukte.

  • Ich weiß nicht, ob es nur mir so geht, aber diese ganze Find-My-Netzwerkfunktion wirkt wie ein Sicherheitsalbtraum. Ich verstehe den Nutzen, aber könnte nicht irgendeine Behörde Apple auffordern, mitzuteilen, wo sich diese Person befindet – auch ohne Mobilfunkabdeckung?
    Jedenfalls habe ich mich deshalb entschieden, aus dem Apple-Ökosystem auszusteigen; aus Überwachungssicht wirkt das wie ein Albtraum.

    • Dieses System ist genau so konzipiert, dass so etwas unmöglich ist.
      Der Tag kennt seinen eigenen Standort nicht und sendet nur seinen rotierenden öffentlichen Schlüssel aus. Weil sich der Schlüssel zufällig ändert, kannst du ihn als rechtmäßiger Besitzer vorhersagen, für Dritte ist es aber schwierig, dem Tag einfach zu folgen. Andere Geräte sehen diesen Schlüssel und teilen ihren eigenen Standort, verschlüsselt mit dem öffentlichen Schlüssel des Tags. Dadurch ist es ziemlich schwer, an die Daten zu kommen, und praktisch unmöglich, solange Apple nicht gezwungen wird, das System umzubauen und ein bösartiges Update auszuliefern. Im Allgemeinen liegt ein solches Niveau wohl außerhalb dessen, was mit einer normalen Vorladung erreichbar ist.
    • Unmöglich. Apple weiß nicht, wer welchen Tag besitzt. Es wurde mit Privacy by Design entwickelt. Ich weiß, dass Apple Datenschutz betont und trotzdem eigene Interessen hat, aber ich habe die technischen Designdokumente gesehen, und das hier ist ziemlich gut gemacht.
      Ich bezweifle, dass Samsung und Google bei ihren eigenen Trackern so weit gegangen sind.
    • https://support.apple.com/guide/security/find-my-security-se...
    • Man sollte erwähnen, dass es bei Find My zwei unterschiedliche „Netzwerke“ gibt. Das eine ist das Netzwerk, in dem andere Apple-Geräte meine Sachen finden, und das andere ist das Netzwerk, in dem meine Geräte ihren eigenen Standort direkt an Apple hochladen.
      Die Find-My-App führt beides zusammen und zeigt den neuesten Standort an. Meiner Ansicht nach nutzt dieses Projekt wohl Ersteres, und dafür wäre konstruktionsbedingt eine explizite Backdoor nötig. Wenn man sich aber gegen Behörden schützen will, ist Letzteres wahrscheinlich der Teil, um den man sich eher Sorgen machen sollte.
    • Wenn du befürchtest, dass es ein Sicherheitsalbtraum ist, kannst du es in den Einstellungen abschalten: Settings → your_name → Find My → device → toggle off
      Wenn du nicht darauf vertraust, dass es dadurch wirklich deaktiviert wird, solltest du dir über alle elektronischen Geräte, die du besitzt, ernsthaft Gedanken machen. Vertraust du der Firmware deines Android-Smartphones? Dem nicht quelloffenen Modem-Chip? Der SIM-Karte, auf der Java läuft? Steckt in deiner TV-Fernbedienung vielleicht ein Mikrofon, ohne dass du es bemerkt hast? Tatsächlich haben viele Fernbedienungen eines. Selbst in deinem Toaster steckt wahrscheinlich ein Chip, der leistungsfähiger ist als ein mit dem Netzwerk verbundener Computer aus der DOS-Ära. Bei meinem ist es so. Woher weißt du, dass er sich nicht mit einem WLAN in der Nähe verbindet und Informationen sendet? Seit der China/iCloud-Sache vertraue ich Apple nicht vollständig, aber unter den großen Tech-Unternehmen ist es trotzdem dasjenige, dem ich noch am ehesten vertraue.