FindMy Flipper — Émulateur d’AirTag et de SmartTag
(github.com/MatthewKuKanich)- FindMy Flipper est une app qui étend les fonctions Bluetooth du FlipperZero pour le faire agir comme un Apple AirTag, un Samsung SmartTag ou un Tile Tracker
- Elle diffuse un signal de SmartTag via la balise BLE du FlipperZero, et peut cloner des tags existants ou générer des paires de clés OpenHaystack pour s’intégrer au réseau Apple Find My
- La méthode de clonage d’un tag existant permet de récupérer l’adresse MAC et le payload d’un AirTag, d’un Samsung SmartTag ou d’un Tile Tracker afin de le suivre avec l’app native, mais sur un AirTag, si l’on remet la batterie, la clé peut tourner et rendre invalide la clé actuellement utilisée par le Flipper
- La méthode de génération de clés AirTag fonctionne sans véritable AirTag ni appareil Apple, mais nécessite Docker Desktop, Python et Git, et utilise un ordinateur ainsi qu’une authentification Apple ID pour recevoir les données de localisation
- L’app prend en charge l’exécution en arrière-plan ainsi que le réglage de l’intervalle de balise et de la puissance d’émission ; les utilisateurs doivent respecter les lois sur la vie privée liées aux dispositifs de suivi ainsi que la propriété des appareils d’origine
Une app pour utiliser le FlipperZero comme tag de suivi
- FindMy Flipper est une app qui permet au FlipperZero d’émuler un Apple AirTag, un Samsung SmartTag ou un Tile Tracker
- Elle utilise la balise BLE du FlipperZero pour diffuser un signal de SmartTag détectable par le réseau Find My
- Les objectifs fonctionnels sont les suivants
- Cloner un Apple AirTag, un Samsung SmartTag ou un Tile Tracker existant vers un FlipperZero
- Générer une paire de clés OpenHaystack pour le réseau Find My sans véritable AirTag
- Suivre en continu la position du FlipperZero
Fonctionnalités principales
-
Émulation de tag
- Possibilité de cloner l’adresse MAC et le payload d’un tag existant
- Possibilité de générer une paire de clés pour le réseau Find My sans posséder de véritable AirTag
-
Réglages utilisateur
- Possibilité d’ajuster l’intervalle de diffusion de la balise
- Possibilité de modifier la puissance d’émission afin d’arbitrer entre visibilité et autonomie
-
Fonctionnement en arrière-plan
- L’app est optimisée pour s’exécuter en arrière-plan
- Elle est conçue pour maintenir le suivi avec une faible consommation de batterie sans interrompre l’utilisation normale du FlipperZero
Modes d’installation
- L’installation est possible de deux manières
- Utiliser une release/un firmware FAP précompilé adapté à l’appareil
- Compiler soi-même le firmware avec
fbt/ufbt
- Actuellement, tous les firmwares devraient fonctionner depuis la branche main, icône comprise
Méthodes d’obtention des données SmartTag
- Il existe deux façons d’obtenir les données d’émulation de tag
-
Option A : cloner un tag existant
- Option B : générer des clés AirTag
-
-
Option A : cloner un tag existant
- Le clonage d’un tag existant est la méthode privilégiée et permet le suivi sans configuration supplémentaire
- Les tags Apple, Samsung et Tile peuvent être utilisés en clonant l’adresse MAC et le payload du tag physique
- Cette méthode permet le suivi via les apps natives comme Apple Find My, Samsung SmartThing ou Tile App
- La procédure de base est la suivante
- Appairer d’abord l’AirTag, le Samsung SmartTag ou le Tile Tracker avec l’appareil
- Éloigner le tag de l’appareil enregistré pendant environ 15 minutes afin qu’il passe en mode Perdu
- Utiliser nrfConnect sur Android ou un ESP32
- Pour nrfConnect, l’utilisation de la version Android est indiquée, car la version Apple n’affiche pas les données brutes nécessaires
- Avec un ESP32-WROOM ou un ESP32-S3, il est possible d’obtenir les données nécessaires sans Android
- L’outil associé ESP32-AirTag-Scanner peut être utilisé
- La procédure de scan consiste à exclure dans le filtre les éléments qui ne correspondent pas à la marque du tag, à régler le RSSI à -40 dBm, puis à attendre que le SmartTag apparaisse comme appareil « FindMy »
- Il faut retirer la batterie du tag immédiatement après avoir capturé le payload et l’adresse MAC
- Si l’on remet la batterie dans l’AirTag, les clés peuvent tourner avec les serveurs Apple
- Si les clés tournent, la clé actuellement utilisée par le Flipper devient invalide
- Pour continuer à l’utiliser sur le Flipper, il faut garder l’AirTag éteint ou retirer sa batterie
- L’AirTag et le Flipper ne peuvent pas être utilisés simultanément ; si nécessaire, il est possible de répéter le processus pour restaurer la fonctionnalité sur le Flipper
- Le payload et la MAC Address capturés sont saisis dans l’app FlipperZero
-
Option B : générer des clés AirTag
- La génération de clés AirTag est une méthode permettant d’émuler un AirTag sans appareil Apple ni AirTag
- Cette méthode fonctionne par génération de clés, et un ordinateur est nécessaire pour télécharger les données de localisation
- Les composants nécessaires sont les suivants
- Docker Desktop
- Python
- Git
- Après avoir cloné le dépôt, travailler dans le dossier
AirTagGeneration
git clone https://github.com/MatthewKuKanich/FindMyFlipper.git cd AirTagGeneration- Après avoir lancé Docker Desktop, configurer le serveur avec la commande suivante
docker run -d --restart always --name anisette-v3 -p 6969:6969 dadoum/anisette-v3-server:latest- Ce serveur émule un environnement qui trompe les serveurs d’authentification d’Apple
- Créer et activer un environnement virtuel Python, puis installer les dépendances
python3 -m venv venv pip3 install -r requirements.txtgenerate_keys.pygénère les clés nécessaires à l’AirTag et les enregistre dans un nouveau dossierkeys- Les fichiers
.keysgénérés peuvent être transférés vers le FlipperZero et importés dans l’app - Sélectionner « register tag » dans le menu config de l’app
- Choisir le type de tag
- Importer un fichier
.keysou.txt, ou saisir les données manuellement - En cas de saisie manuelle, entrer successivement la MAC et le payload
- Appuyer sur Enregistrer pour l’enregistrer
request_reports.pydemande des données de localisation en temps réel via une authentification avec Apple ID et mot de passe- Les identifiants Apple sont enregistrés dans un fichier auth afin de ne pas avoir à les ressaisir par la suite
RequestReport&Map.pyaffiche les données de localisation des dernières 24 heures sur une carte interactive- Demande les rapports de localisation à l’aide des clés publicitaires hachées du dossier
keys - Déchiffre les données avec la clé privée du même fichier
.keys - Affiche les données déchiffrées dans le terminal
- Affiche les coordonnées sur la carte et relie le trajet
- Affiche les métadonnées de localisation et enregistre le résultat dans un fichier HTML nommé d’après la date du rapport
Configuration et réglages de l’app FlipperZero
- Après avoir lancé l’app, il est possible d’utiliser
Import Tag From FileouRegister Tag Manuallydans le menu config - Les fichiers
.keyspeuvent être placés sur la carte SD du FlipperZero dans le dossierapps_data->findmyouAppsData/FindMyFlipperavant d’être importés - Les fichiers
.txtenregistrés avec nrfConnect peuvent aussi être placés dans le même dossier pour être importés - Les éléments réglables sont les suivants
- Beacon Interval : règle la fréquence à laquelle le FlipperZero diffuse sa présence
- Transmit Power : règle la puissance du signal afin d’équilibrer portée de suivi et autonomie de la batterie
Compatibilité, alternatives et responsabilité
- Les cibles compatibles sont les suivantes
- Appareils Apple pour le suivi d’AirTag via le réseau Find My
- Appareils et navigateurs web prenant en charge le suivi Samsung SmartTag
- Tile Tracker via Tile App
- Le suivi avec OpenHaystack nécessite macOS antérieur à 14
- Sur macOS 14 et versions ultérieures, il existe un problème de compatibilité avec le plug-in Mail
- macless-haystack est présenté comme alternative
- Même avec cette méthode, il faut uniquement utiliser
generate_keys.pydans le dossierAirTagGeneration - Le script de génération de clés de ce dépôt utilise un format de fichier de clés différent, tandis que les fichiers côté FindMy Flipper contiennent les données nécessaires à une importation correcte dans le FlipperZero
- Même avec cette méthode, il faut uniquement utiliser
- Cette app est destinée à un usage personnel et éducatif
- Les utilisateurs doivent respecter les lois sur la vie privée et réglementations locales relatives aux dispositifs de suivi
- Le clonage et l’émulation de tags de suivi doivent être utilisés de manière responsable, dans le respect de la propriété des appareils d’origine
- Ce projet n’est pas affilié à Apple Inc. ni à Samsung
1 commentaires
Commentaires Hacker News
Projet intéressant, mais l’une des dépendances sous-jacentes utilisées ici ne semble pas sûre par défaut :
https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
Cela ressemble à une bibliothèque d’authentification pour iCloud, et il semble qu’ils aient codé en dur un agent d’appareil MacBook pour associer la clé générée à un appareil
Comme pour tout service centralisé, je ne l’utiliserais pas avec un compte auquel sont rattachés beaucoup de services ou d’actifs numériques. Je ne serais pas surpris qu’Apple bloque les comptes utilisés de cette manière
Il y a un code
adsidunique nécessaire à la connexion, donc cela ne devrait pas être très difficile à repérerJe ne comprends pas pourquoi Apple ne le prend pas officiellement en charge. Je me demande si c’est pour pousser les ventes d’appareils iOS
J’ai pour environ 5 000 dollars de matériel Apple desktop/mobile, et pourtant j’ai dû acheter un iPhone d’occasion en plus juste pour enregistrer quelques AirTags, donc ça m’énerve
https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
En toute conscience, je n’intégrerais jamais de bibliothèque tierce. Aujourd’hui encore, je passe toutes les versions de
VenToydans un scanner antivirus, en attendant le moment où une vulnérabilité de type NZ apparaîtra réellementCe n’est pas tant à cause du flux de paiement d’Apple que du modèle d’abonnement. Si vous proposez gratuitement une fonctionnalité qu’Apple pourrait trouver intéressante, il faut être prudent. Apple peut fermer l’accès et commencer à faire payer les utilisateurs
Il faut être doublement prudent quand on énerve des geeks. Ces gens sont vraiment effrayants : ils se couchent furieux le vendredi soir, puis passent tout le week-end à analyser votre produit comme une boîte noire et à rendre son implémentation triviale
Ce concept semble aussi pouvoir servir à contourner les fonctions anti-harcèlement intégrées par Apple et d’autres
Par exemple, avec N tags donneurs et une rotation toutes les
24/Nheures, du point de vue d’Apple ou du suivi de l’appareil, la personne suivie ne semblerait pas être accompagnée longtemps par un seul et même tagAjoutez une grosse batterie et un simple circuit de minuterie, retirez le bippeur, et cela devient un excellent dispositif de suivi
Je me souviens que cela avait été évoqué dans le contexte du suivi de cargaisons contenant du matériel coûteux. Le transport peut prendre des mois ; l’AirTag est très économe en énergie, tient longtemps avec une grosse batterie, et les solutions GPS existantes n’étaient pas suffisantes
Ou bien utiliser un tag GPS qui n’utilise pas du tout le « réseau » AirTag, et qu’il n’est pas nécessaire de faire tourner
J’utilise encore Flipper plusieurs fois par semaine. J’attends avec impatience la prochaine version, avec le Wi-Fi et la prise en charge d’autres fréquences
Quelqu’un a-t-il testé la réaction de l’app « Find My » si elle voit le même tag à plus de deux emplacements ?
Je l’utilise et c’est excellent. La consommation est pratiquement négligeable
Ce serait bien de pouvoir aussi communiquer avec le réseau Find My Device de Google, mais ça fonctionne déjà très bien sur le réseau Apple
Ce serait bien de pouvoir porter ça sur un appareil BLE bon marché comme l’ESP32-C3. Utiliser un Flipper comme AirTag coûte un peu cher
Malheureusement, il faut un tag donneur à usurper, et ce tag ne peut pas être utilisé pendant qu’on utilise ceci. Sinon, il faut utiliser OpenHaystack, mais il faut un Mac pour récupérer les données
Dans
README.md, ce serait bien d’avoir un lien pour comprendre de quoi il s’agit : https://flipperzero.one/Quelle appli Android faut-il pour utiliser ça ? De préférence une appli qui ne nécessite pas Google Services
Mais avec quelle appli Android peut-on réellement le « trouver » ? Je n’ai ni iPhone ni appareil Samsung