- go-haystack est un ensemble d’outils basé sur Go/TinyGo qui permet de suivre des appareils Bluetooth personnels via le réseau Find My d’Apple
- Il s’utilise avec OpenHaystack et Macless-Haystack pour mettre en place un réseau Find My personnalisé, configurable sans matériel Apple
- Il fournit un firmware de balise écrit avec TinyGo et le package TinyGo Bluetooth, pour du matériel comme les cartes nRF SoftDevice, la BBC Microbit, la Seeed Studio XIAO nRF52840, les cartes avec coprocesseur ESP32 et les RP2040 Pico-W
- Le même code de balise peut aussi s’exécuter sous Linux avec du matériel Bluetooth, y compris sur Raspberry Pi ou d’autres systèmes embarqués
- L’utilisateur prépare un Apple ID avec 2FA par SMS, anisette-v3-server, un serveur Macless-Haystack et la CLI
haystack, puis enregistre l’appareil via un flux de génération de clés, flash du firmware et envoi du JSON
Rôle de go-haystack
- go-haystack permet de suivre des appareils Bluetooth personnels via le réseau Find My d’Apple
- Il s’utilise avec OpenHaystack et Macless-Haystack pour configurer un réseau Find My personnalisé
- L’outil est écrit en Go/TinyGo et peut être utilisé sans matériel Apple
Créer soi-même une balise
- Ce package fournit un firmware utilisant TinyGo et le package TinyGo Bluetooth
- Le code de la balise se trouve dans le répertoire firmware du dépôt
- Le matériel indiqué comme pris en charge est le suivant
Balises Linux et TinyScan
- Le code de balise peut aussi s’exécuter sous Linux avec du matériel Bluetooth
- Raspberry Pi ou d’autres systèmes embarqués sont donnés en exemple
- Pour Linux embarqué, le code est identique à celui des microcontrôleurs et se trouve dans le répertoire
firmware du dépôt
- go-haystack inclut aussi TinyScan, un scanner matériel pour les appareils locaux
- TinyScan fonctionne sur plusieurs cartes microcontrôleurs dotées de Bluetooth et d’un petit écran
- Des cartes d’Adafruit et de Pimoroni sont citées en exemple
- Le code se trouve dans le répertoire tinyscan
Composants nécessaires à l’installation
- Un Apple ID est nécessaire, avec la 2FA activée
- Seul le second facteur par SMS/message texte est pris en charge
anisette-v3-server doit être exécuté avec Docker
- L’exemple de commande crée le réseau Docker
mh-network, puis lance le conteneur dadoum/anisette-v3-server sur le port 6969
- Il faut configurer un endpoint
macless-haystack en l’exécutant en mode interactif
- Pendant la configuration, il faut saisir l’Apple ID, le mot de passe et la 2FA
- Quand
serving at port 6176 over HTTP s’affiche, la configuration est terminée
- Une fois la configuration faite, le processus est arrêté puis le serveur est relancé avec
docker restart macless-haystack
- La CLI go-haystack s’installe avec la commande suivante
go install github.com/hybridgroup/go-haystack/cmd/haystack@latest
Flux d’utilisation
- Les appareils à portée locale peuvent être détectés avec
haystack scan
- La sortie inclut l’adresse Bluetooth, la puissance du signal, des données sous forme d’identifiant et l’état de la batterie
- Pour ajouter un nouvel appareil, il faut d’abord générer des clés pour celui-ci
haystack keys DEVICENAME
- La génération des clés enregistre un fichier
DEVICENAME.keys et un fichier DEVICENAME.json pour la configuration Haystack
DEVICENAME doit être remplacé par le vrai nom de l’appareil
- Le matériel est ensuite flashé en indiquant la cible TinyGo et le nom de l’appareil
haystack flash DEVICENAME nano-rp2040
- Cette commande compile avec TinyGo un firmware contenant les clés, puis le flashe sur l’appareil
- Enfin, le fichier JSON de l’appareil doit être envoyé via l’interface web à l’instance
macless-haystack en cours d’exécution
- Dans le navigateur, ouvrir la web app Macless-Haystack, puis sélectionner le fichier
DEVICENAME.json via le lien « Accessories » et le bouton « + »
- Cette web app est une application monopage qui lit et écrit uniquement des données locales
Affichage des données de localisation
- Lorsqu’un appareil entre dans la portée d’un iPhone, les données Macless-Haystack apparaissent dans l’interface web après un certain temps
- L’affichage des premières données peut prendre un moment
1 commentaires
Avis de Hacker News
Vraiment chouette. Ce genre d’initiative et le réseau Find My m’étonnent à chaque fois, mais si je ne l’utilise pas directement de cette façon, c’est parce que je pense qu’Apple pourrait un jour accepter officiellement ce parasitage du réseau, ou au contraire bannir les Apple ID ayant ce type d’historique
Pour l’instant, Apple en a connaissance, mais ne prend position ni dans un sens ni dans l’autre. Jusqu’à ce qu’Apple le prenne en charge plus officiellement, ou qu’une méthode n’implique pas de lien direct avec mon Apple ID/compte, je compte me contenter d’observer
D’autant qu’Apple n’a pas besoin de faire le travail elle-même : plutôt que de freiner l’adoption maintenant, elle finira probablement par chercher à exploiter davantage la densité du maillage
L’été dernier, j’étais en vacances au Portugal avec ma femme, et elle a oublié son portefeuille dans l’Uber qui nous emmenait à l’aéroport. Le chauffeur a trouvé le portefeuille, a pris 20 dollars et quelques bijoux, puis l’a jeté ; plus tard dans la journée, nous l’avons suivi avec un AirTag jusqu’à un parking désaffecté et l’avons retrouvé avec l’app Localiser
Depuis, je mets des AirTags dans tous nos sacs et je remplace aussi les piles selon un calendrier
À ce moment-là, un autre homme disait que ses affaires étaient là aussi : un mois plus tôt, en Nouvelle-Zélande, il avait laissé son iPad dans la pochette du siège en évacuant l’avion, et l’avait suivi jusqu’à Sydney avec Find My. Il prend l’avion à l’international plusieurs fois par mois et disait que l’AirTag était le meilleur objet qu’il possédait. Depuis, j’ai aussi caché quelques tags leurres dans toutes les voitures, les sacs et les objets de valeur susceptibles d’être volés
Même après lecture, je ne comprends pas bien. Est-ce que ça s’utilise avec un Apple AirTag, ou faut-il fabriquer son propre dispositif de suivi ?
https://github.com/hybridgroup/go-haystack?tab=readme-ov-fil...
https://media.ccc.de/v/38c3-find-my-101
J’aimerais qu’à l’avenir on puisse connaître la position d’un beacon avec une précision inférieure à 1 mètre cube
Ma femme a un TDA et perd souvent ses affaires. Tile ne sonne pas très fort et manque de fiabilité, et comme nous n’avons pas d’iPhone, nous ne pouvons pas utiliser d’AirTag. Je suis trop épuisé pour apprendre les maths nécessaires à la localisation de beacons Bluetooth, mais j’aimerais pouvoir le faire. J’aimerais qu’il existe un projet logiciel du type « ajoutez simplement 4 petites cartes Bluetooth », mais ce n’est apparemment pas le genre de problème qui démange la plupart des développeurs open source
La localisation précise ne se fait pas via la puissance du signal Bluetooth, mais par ultra wideband (UWB). Cela fonctionne par temps de vol, en utilisant le délai à la vitesse de la lumière, comme le GPS. Quand on ouvre l’app Find My, elle connaît très vite la distance exacte jusqu’à l’AirTag, puis, en se déplaçant, calcule aussi dans quelle direction se trouve l’AirTag à partir des variations de position observées. C’est une technologie assez impressionnante. Dans l’app Find My, il faut utiliser la fonction « Find », pas « Play Sound », et il faut un iPhone 11+ équipé de la puce ultra wideband H1. Le coût peut être comparable à l’installation de plusieurs cartes Bluetooth dans la maison, et c’est bien plus précis, même si c’est moins amusant à hacker
https://en.wikipedia.org/wiki/Ultra-wideband#Real-time_locat...
Au moins, je ne pense pas qu’il existe d’alternative équivalente combinant localisation de précision en ultra wideband, disponibilité à l’achat, prix raisonnable et fiabilité. En revanche, certains Android semblent prendre en charge l’UWB, qui pourrait fonctionner avec l’UWB de Tile : https://www.zdnet.com/article/how-to-enable-uwb-on-android-a...
https://www.bluetooth.com/learn-about-bluetooth/feature-enha...
J’avais bricolé avec des beacons à une époque, et les faire fonctionner était en soi assez simple. J’ai écrit un petit programme pour que mon ordinateur portable se comporte comme un beacon, puis j’ai utilisé n’importe quelle app « Bluetooth tracker » sur le téléphone pour voir la distance approximative jusqu’à ce beacon. Ensuite, il suffisait de marcher en observant la distance
Maintenant, on dirait qu’on peut l’utiliser même sans Mac ? Si c’est le cas, c’est impressionnant. Les traceurs Apple ne coûtent que quelques euros, bien sûr si l’on parle des produits tiers.
Je ne sais pas si je suis le seul, mais toute cette fonctionnalité du réseau Localiser me semble être un cauchemar de sécurité. Je comprends son utilité, mais une agence ne pourrait-elle pas demander à Apple de lui dire où se trouve cette personne, même sans couverture cellulaire ?
En tout cas, c’est pour cette raison que j’ai décidé de sortir de l’écosystème Apple, et du point de vue de la surveillance, ça ressemble à un cauchemar.
Le tag ne connaît pas sa position ; il ne fait que diffuser sa clé publique tournante. Comme la clé change de façon aléatoire, vous, en tant que propriétaire légitime, pouvez la prédire, mais il est difficile pour un tiers de suivre facilement le tag. Les autres appareils voient cette clé, chiffrent leur propre position avec la clé publique du tag, puis la partagent. Il est donc très difficile d’obtenir les données, et pratiquement impossible sauf si Apple est contrainte de reconcevoir le système et de déployer une mise à jour malveillante. On considère généralement qu’un tel niveau dépasse ce qu’une simple assignation peut obtenir.
Je doute que Samsung et Google soient allés aussi loin avec leurs propres traceurs.
L’app Localiser combine les deux pour afficher la position la plus récente. À mon avis, ce projet semble n’utiliser que le premier, et celui-ci nécessiterait par conception une porte dérobée explicite. Mais si l’objectif est de se protéger contre des agences gouvernementales, c’est probablement le second réseau qui mérite davantage d’attention.
Si vous ne croyez pas que le désactiver le désactivera réellement, alors il faut réfléchir sérieusement à tous les appareils électroniques que vous possédez. Faites-vous confiance au firmware de votre téléphone Android ? À la puce modem non open source ? À la carte SIM qui exécute Java ? La télécommande de votre téléviseur ne contient-elle pas un micro dont vous n’avez pas connaissance ? Beaucoup de télécommandes en ont effectivement un. Il est même probable que votre grille-pain contienne une puce plus puissante qu’un ordinateur de l’ère DOS connecté au réseau. Le mien, oui. Comment savoir qu’elle ne se connecte pas au Wi-Fi voisin pour envoyer des informations ? Depuis l’affaire Chine/iCloud, je ne fais pas entièrement confiance à Apple, mais parmi les grandes entreprises tech, c’est tout de même celle à laquelle je fais le plus confiance.