Comment ce chercheur a détourné le service Localiser d'Apple pour l'utiliser sous Linux
Un chercheur en sécurité connu sous le pseudonyme Zerotistic a analysé, protocole par protocole, la façon dont Apple distribue et déchiffre les positions partagées via Find My. Sans Mac ni iPhone, il est parvenu à faire fonctionner ce partage de localisation sous Linux.
L'idée de base était de pouvoir automatiser des alertes de géofencing à partir d'une position déjà partagée par un ami sur Find My. Il a fallu environ une semaine de rétro-ingénierie pour reconstituer l'ensemble de la chaîne technique d'Apple, laquelle se décompose en quatre étapes.
Le premier problème a été de se connecter au bon endroit. Un compte iCloud classique donne accès à ses propres appareils, mais pas à l'ancienne API qui gère le partage de position entre amis, baptisée Find My Friends. C'est parce que chez Apple, chaque service demande sa propre autorisation : se connecter à iCloud ne suffit pas à prouver qu'on a le droit d'utiliser Find My, un peu comme un badge d'entrée dans un immeuble qui n'ouvre pas automatiquement toutes les portes des bureaux à l'intérieur. Cette API porte encore ce nom en interne chez Apple (fmyf), un reste de l'époque où Find My Friends existait comme application séparée de Find My iPhone, avant leur fusion en 2019 sous l'app unique Find My, Localiser en français.
Pour obtenir la bonne autorisation, le chercheur est passé par GrandSlam, le système qu'utilise Apple pour vérifier l'identité d'un compte lors d'une connexion. Une fois connecté de cette manière, il a pu demander un accès à IDS, un service interne d'Apple qui reconnaît les appareils et leur permet d'échanger des messages chiffrés entre eux. IDS est le même système qui fait fonctionner iMessage. C'est en quelque sorte le carnet d'adresses privé qui dit à Apple quels appareils appartiennent à quel compte, et qui a le droit de parler à qui.
Avoir accès à IDS ne suffisait pas encore à être reconnu comme un véritable appareil Apple. Il a fallu obtenir un certificat signé par Apple, lequel prouve que la machine Linux est un appareil légitime. Pour cela il faut respecter un certain nombre de règles bien précises. Cela inclut la génération d'une clé de sécurité (RSA de 2048 bits) et d'une signature au format SHA-1, le tout emballé dans un fichier au format que les systèmes Apple utilisent en interne pour ce genre d'échange, un "plist", compressé pour l'occasion. Une fois ce certificat accepté, la machine Linux a encore dû s'enregistrer comme appareil "Find My", non pas pour un seul service, mais pour six fonctions liées à la localisation en même temps, regroupées par Apple sous une même famille de services.
3 - Convaincre l'appareil de l'ami de renvoyer sa clé secrète La partie la plus difficile a consisté à récupérer la clé qui permet de déchiffrer la position de l'ami, sans recréer le partage depuis le départ. Concrètement, quand deux personnes partagent leur position sur Find My, l'appareil qui envoie sa position détient une clé secrète, laquelle sert à protéger cette information. Le chercheur a envoyé à Apple une demande particulière, portant le nom "distributeKeys".
5News a agrégé ce résumé depuis le flux public du média. L'article complet, avec tout le contexte, est sur www.clubic.com — le contenu appartient à Clubic.