- 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
- Dieses Paket stellt Firmware bereit, die TinyGo und das TinyGo Bluetooth package nutzt
- Der Beacon-Code befindet sich im Verzeichnis firmware des Repositorys
- Als unterstützte Hardware werden folgende Geräte genannt
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
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.
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.
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.
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://github.com/hybridgroup/go-haystack?tab=readme-ov-fil...
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.
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...
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...
https://www.bluetooth.com/learn-about-bluetooth/feature-enha...
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.
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.
Ich bezweifle, dass Samsung und Google bei ihren eigenen Trackern so weit gegangen sind.
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 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.