Ouvrir le menu principal

MacGeneration

Recherche

Le réseau Localiser détourné pour transmettre des messages arbitraires

Nicolas Furno

vendredi 14 mai 2021 à 18:00 • 34

Services

Le chercheur en sécurité Fabian Bräulein a trouvé un moyen de détourner le réseau Localiser mis en place par Apple. Son idée est astucieuse, mais ce n’est pas une faille de sécurité dangereuse, car son exploitation est compliquée. Le plus intéressant est de comprendre comment ce détournement peut fonctionner au sein de l’écosystème de localisation mis au point par l’entreprise de Cupertino.

La sortie des AirTags qui reposent sur le réseau Localiser pour être géolocalisés n’importe où dans le monde grâce aux appareils iOS qui passent à proximité a donné une idée à ce chercheur. Est-ce qu’il serait possible de détourner le mécanisme de localisation en transmettant une donnée arbitraire, comme du texte ? Pour y parvenir, il a simulé un AirTag en utilisant un microcontrôleur ESP32, un petit module que l’on peut trouver facilement pour quelques euros.

Schéma qui décrit le détournement : l’émetteur se fait passer pour un AirTag perdu qui est capté par les iPhone à proximité (gauche). Il transmet en Bluetooth sa position et un texte aux serveurs d’Apple (représentés par le nuage) et une app installée sur un Mac qui demande l’accès à la position récupère aussi le message (droite).

Un firmware maison est installé sur ce contrôleur pour diffuser en Bluetooth Low Energy le code transmis par un AirTag déclaré perdu. Lorsque l’on associe un AirTag à un iPhone, deux clés uniques — une publique et une privée — sont générées automatiquement. La clé publique est mémorisée dans le traqueur, la privée associée à votre compte iCloud. Les AirTags diffusent ensuite leur clé publique aux alentours et c’est elle qui est reconnue par les iPhone qui passeraient à proximité. Le cas échéant, cet appareil Apple récupère la clé, ajoute les coordonnées de sa position actuelle et transmet le tout aux serveurs d’Apple.

Le constructeur a pensé en priorité au respect de la vie privée, ce qui veut dire qu’elle ne dispose pas d’une base de données centralisées de tous les AirTags en circulation et de toutes leurs clés publiques. Cela veut dire que les serveurs d’Apple traitent toutes les requêtes, sans pouvoir vérifier qu’elles proviennent bien d’un AirTag légitime. Par ailleurs, l’information qui circule sur ses serveurs est chiffrée et seule la clé privée générée lors de l’association initiale de l’AirTag permet d’y accéder.

Grâce à ce mécanisme sophistiqué, seul le propriétaire d’un AirTag peut savoir où se trouve sa balise une fois déclarée perdue. Ni les iPhone qui passent à proximité ni Apple n’ont accès à l’information, ils n’ont que la clé publique de l’AirTag qui n’a aucun intérêt en soi, puisqu’elle ne permet pas de remonter au propriétaire du traqueur. C’est malin, mais c’est aussi ce qui a permis à Fabian Bräulein de détourner le réseau.

Puisqu’il n’est pas possible de vérifier une clé publique, il a eu l’idée d’y glisser du texte. La quantité de données qui peut transiter par ce biais est très faible, on parle de quelques octets à chaque fois, mais cela peut suffire pour transmettre quelques mots, comme le prouve cette vidéo de démonstration.

Vidéo de démonstration fournie par le chercheur en sécurité. Il parvient à récupérer un message diffusé par son faux AirTag, récupéré par un appareil iOS à proximité et transmis via les serveurs d’Apple.

La récupération se fait avec une app macOS développée pour les besoins de l’expérimentation et ce, pour une excellente raison. Même si vous parvenez à créer de faux AirTags qui diffusent un message de votre choix, ce n’est pas pour autant qu’un iPhone pourra y accéder. L’app Localiser fournie avec iOS est prévue pour récupérer uniquement la position de la balise, rien de plus, et le message additionnel sera oublié. Son app ignore au contraire les coordonnées et récupère le message stocké dans la clé publique.

C’est malin et puisque cela exploite le principe même du réseau Localiser, Apple ne peut rien faire pour bloquer entièrement ce détournement. Au mieux, le constructeur pourrait imposer des limites qui réduiraient son efficacité et c’est déjà le cas en quelque sorte, puisque l’on ne peut pas enregistrer plus de 16 AirTags par compte iCloud. Mais même si l’entreprise ne peut pas faire plus, ce n’est pas gênant, tant cette faille de sécurité ne peut pas faire de mal.

Au mieux, cette solution pourrait servir à transmettre un message discrètement dans un scénario d’espionnage. C’est amusant à imaginer, même si en pratique, ce ne sont pas les méthodes plus simples qui manquent aujourd’hui pour transmettre des messages chiffrés. Si l’idée vous intéresse, vous trouverez le code source pour le module ESP32 ainsi que celui de l’app macOS à cette adresse.

illustration magazine 25 ans

MacGeneration a 25 ans !

Participez à la fête et découvrez l’histoire de votre site favori en précommandant notre magazine exclusif.

Je précommande le magazine