Localisation & sécurité
AirTag et consort

21 septembre 2025

Nous avons vu comment localiser physiquement, et que des tags sont proposés pour réaliser cette localisation. Mais il va falloir le faire de manière sécurisée pour protéger notre vie privée.


Ben oui, ça m'énerve

Menaces

En matière de sécurité, on commence par définir les menaces et leur importance. Toujours.

Nota : par pure fainéantise, méchanceté et pour être clair, j'utiliserai les termes :

  • AirTag pour désigner le tag
  • iPhone pour désigner le smartphone
  • Apple pour désigner le fournisseur

Mais le lecteur attentif aura compris qu'il s'agit de n'importe quel tag de localisation, et de n'importe quel dispositif qui le suivra à l'aide d'une application ad-hoc qu'il aura fallu charger à l'avance (et elles ne sont pas toutes pareilles, évidemment).


Je prendrai souvent Apple comme cible, mais vous trouverez des liens permettant d'approfondir les concurrents. Et je reconnais qu'Apple est souvent pris comme souffre-douleur, vu l'argent qu'ils se font sur le dos de leurs clients.

Ceci dit, on trouve souvent des gens qui trouvent des vulnérabilités, et qui en déduisent des attaques possibles. Cela permet de définir de nouvelles menaces.

En ce qui concerne la gravité de la menace, je vous laisse juger vous-même, et dites-vous bien que c'est du côté d'Apple que ce jugement est fait et la menace éventuellement prise en compte, parce l'importance de votre avis perso...

Menace 1 : suivi malveillant

Détection d'AirTag sans être le propriétaire :

  • On pourrait alors le suivre, et connaitre mon lieu de résidence, savoir ce que je fais...
  • On pourrait alors me voler encore plus facilement les clés qui sont attachées à mon AirTag
  • Voire le faire sonner sans mon accord (et ça peut potentiellement arriver si vous n'êtes plus en contact avec votre AirTag, par exemple en arrêtant le Bluetooth de votre iPhone, car l'AirTag se croira perdu...)

C'est une menace basique, qui montre immédiatement qu'il va falloir utiliser de la cryptographie.

Menace 2 : perte ou vol

Si je perd mon AirTag, ou qu'on me le vole :

  • Est-ce qu'on peut l'effacer et s'en resservir ?
  • Est-ce qu'on peut en extraire des informations privées comme mon nom ou mes identifiants ?
  • Est-ce qu'on peut en extraire ses dernières localisations ?

Une différence avec la menace précédente est que le malandrin a un accès physique à l'AirTag, alors qu'avant tout se faisait à distance. Les attaques matérielles sont souvent sous-estimées par les concepteurs.

Menace 3 : déclaré « perdu »

Il est possible de déclarer mon AirTag « perdu », ce qui permet à d'autres iPhone de le détecter et de recevoir un message.

  • Peut-on déclarer mon AirTag « perdu » à ma place ?
  • Est-ce que ce mode permet d'identifier et localiser l'AirTag perdu, donnant des informations me concernant ?

Parce que si je le déclare « perdu » alors qu'il est chez moi...

Menace 4 : autorisation de détection usurpée

Il est possible de donner l'autorisation de localisation de mon AirTag à d'autres personnes (par exemple mon mari, ma femme pour suivre un bagage).

  • Est-il possible d'obtenir cette autorisation sans l'accord de son propriétaire ?
  • Est-ce que la personne autorisée peut donner d'autres autorisations ? Sous la menace ou la contrainte, cela permettrait de retrouver l'AirTag sans que son propriétaire s'en rende compte.

Menace 5 : suivi à mon insu

Deux méthodes :

  • Un malandrin pose un AirTag dans mon sac ou l'aimante sur ma voiture, ce qui lui permet de me suivre, de savoir où j'habite... c'est très commode pour un harceleur. Comment savoir qu'un AirTag non propriétaire me suis ?
  • Est-il possible de remonter à l'iPhone localisateur d'un AirTag déclaré « perdu » ? Le malandrin pourrait alors perdre à desseins un AirTag pour localiser le bon samaritain. Un peu comme si on trouve une clé USB sur un parking, on croit que c'est une aubaine, et finalement c'est un piège...

Il ne faudrait pas qu'une alerte soit générée par n'importe quel AirTag de mon environnement. Dans un aéroport, pour récupérer ses bagages, ça ferait désordre. Du coup, s'il suffit à un malveillant d'être assez proche pour ne pas déclencher d'alarme, cela offre un contournement possible dans n'importe quelle configuration... Ce n'est pas gagné d'avance.

Notez qu'il n'y a pas besoin spécialement d'un AirTag pour cette histoire de suivi, ça se fait aussi très bien avec une balise GPS à l'ancienne. C'est juste que cela a l'air encore plus facile, discret et relativement peu cher avec un AirTag.

Menace 6 : détection de l'antivol

Un malandrin me vole un objet avec mon AirTag (éventuellement caché, pour qu'il ne l'enlève pas).

  • Est-ce que le malandrin peut détecter que l'objet est piégé ?

Et ainsi éviter de le prendre. Ce qui est plutôt favorable, les gens ne sont jamais contents.

Je ne parle même pas de la perte de l'AirTag, sa désactivation/destruction, il n'y a rien à faire contre ça.

Menace 7 : clones et malveillance

Un abruti, rien que pour m'enquiquiner, reproduit mon AirTag à des centaines de copies. Je n'arrive plus à retrouver mes clés, car j'obtiens un paquet de fausses réponses. Et la Terre entière me harcèle pour me rendre mon AirTag...

  • Est-il possible de cloner un AirTag ?

Mais bon, ça n'arrivera quasiment pas car ces AirTag sont quand même assez chers. Sauf si l'imitation est un iPhone hacké...

Menace 8 : fausse localisation

Si un malandrin arrive cloner ou extraire l'identité de mon Airtag, il pourrait alors le détruire, puis générer des fausses localisations à destination des serveurs Apple, et ainsi me faire perdre du temps pour rien.

Un malandrin qui reçoit un signal d'AirTag perdu pourrait modifier sa localisation GPS et ainsi envoyer d'autres fausses localisations.

Menace 9 : déni de service

Un signal Bluetooth concurrent suffisamment fort pourrait bloquer les communications de l'AirTag (jamming). Il deviendrait inopérant du point de vue de son propriétaire.

Menace 10 : détournement

Puisque les iPhones localisateurs envoient des données au serveur d'Apple, c'est qu'il est aussi possible d'envoyer ces données sur un autre serveur avec un cheval de Troie.


😱 J'espère que vous commencez à avoir peur, c'est un peu le but de cette liste non limitative des problèmes qui peuvent arriver avec les AirTags et autre SmartTags.

Prérequis : un accès sécurisé.

Dès que l'on parle de vie privée, cela implique l'existence d'un coffre-fort où vous pouvez planquer des secrets.

Je parle ici de clés cryptographiques, vos petits secrets, c'est de la gnognotte qui seront stockées dans une zone de mémoire que vous seul êtes capable de lire, généralement en donnant un mot de passe ou par la biométrie.

Pratiquement tous les smartphones ont un accès sécurisé pour l'ouvrir, et il faut impérativement mettre ces sécurités en action, sinon c'est la porte ouverte à tous. Car une fois le smartphone déverrouillé, alors le système considèrera que c'est vous, et donnera l'accès à TOUS vos secrets.

Il vous faudra connaitre les basiques en matière de chiffrement si vous voulez comprendre quelque chose.

Oui, des clés publiques et des clés privées, c'est cette panoplie qu'il faut mettre en œuvre, et pour ça, il faudra faire confiance à votre iPhone ou votre smartphone Android préféré, car il devra mettre en sécurité une clé privée personnelle, dont vous n'avez probablement jamais entendu parler parce que ça vous dépasse.

aie confiance

Et rassurez-vous, demandez même à un spécialiste de cybersécurité où se situe sa clé privée dans son téléphone et comment il peut la sauvegarder, et vous n'aurez pas grand-monde capable de vous répondre.

Apple a le bon goût d'expliquer ce qu'ils font et ça n'est pas toujours le cas. Ils ont construit dans leurs processeurs ce qu'ils appellent la « Secure Enclave ». Et c'est plutôt bien fait. Vous retrouverez l'équivalent sur Android en cherchant un peu.

La Secure Enclave chez Apple : un coffre-fort.

Dans la Secure Enclave, les clés de déchiffrement privées (le trousseau de clés Keychain) peuvent être utilisées si l'accès a été donné, et c'est le job des Face ID et Touch ID, qui peut remplacer les mots de passe, dessins secrets ou autres méthodes d'authentification. Une fois l'accès donné, tous les secrets seront accessibles... Donc sécurisez un maximum votre téléphone.

Je n'expliquerai pas plus ces choses-là. Consultez :

Sachez au moins qu'une procédure de récupération est toujours un problème en sécurité. Il faut qu'elle soit encore plus protégée.

Au passage, évidemment qu'on suppose que les algorithmes de chiffrement n'ont pas été cassés. C'est le cas jusqu'à présent.

Fonctionnement d'un tag

Vous venez d'acheter un AirTag, vous l'avez payé, il s'agit de VOTRE AirTag, il est personnel, il ne devrait pas être utilisable par une autre personne (ce qui peut arriver dans certains cas prévus).

J'ai fait ce que j'ai pu pour trouver comment ça marche, et les informations ne sont pas si faciles à trouver, et difficile à vérifier (je n'ai pas d'iPhone ni d'AirTag). Les spécialistes en chiffrement ont râlé car Apple n'a pas décrit tous les détails, et il a fallu deviner certaines choses, et les déductions ne sont pas toujours très justes. De plus, on trouve pas mal d'explications foireuses d'abrutis qui croient s'y connaitre, et pas mal de sites comportent des informations erronées, propagées par des auteurs se contentant de recopier d'autres sites à leur sauce. Je le sais, je le fais, mais comme je veux comprendre et pas uniquement superficiellement, je creuse et j'espère qu'au moins il n'y a pas trop d'âneries. D'ailleurs je n'irais pas vraiment dans les détails, c'est trop complexe pour la présente page où je veux simplement comprendre comment ça marche conceptuellement.

Cependant, Apple donne quelques détails concernant la sécurité de "Find My" :

Vous pouvez commencer par là si vous aimez les clés cryptographiques. Mais c'est pénible, et il n'y a finalement pas trop de détails. Il doit exister les mêmes explications chez Samsung et les concurrents. Mais pas avec les mêmes solutions techniques.

Pour ne pas arranger les choses, les gens se sont focalisés sur l'histoire du mode « perdu », car il implique les serveurs d'Apple. Et du coup ils oublient les informations basiques de démarrage au moment de l'appairage ce doit être évident pour eux.

Mais bon, j'ai trouvé un bon site, celui d'Adam Catley et je donne d'autres liens à la fin.

Premier constat au déballage : l'AirTag n'est manifestement pas alimenté car il faut retirer la languette pour activer la pile. Ce n'est pas surprenant, sinon :

  • La pile finirait par se vider... Il faudra la changer dans un an, environ.
  • Tous les AirTags en magasin affoleraient les iPhones en goguette pour s'appairer 😂

La première chose à faire avec un nouvel AirTag, c'est de l'appairer avec votre iPhone. Pour ça, vous allez le démarrer, et lancez l'application de personnalisation (ce qui se fera automatiquement sur un iPhone puisque c'est fait pour des gens stupides qui ne comprennent rien à rien pour faciliter la vie des utilisateurs).

C'est le moment critique !

Appairage Bluetooth

La norme Bluetooth propose un mécanisme d'appairage pour protéger les données privées, avec un mécanisme d'encryption. Cette opération est transparente pour l'utilisateur qui n'a pas besoin de créer de mot de passe, d'autant plus qu'Apple utilisera vos infos personnelles car vous avez ouvert votre iPhone, et donc il a l'autorisation de faire ce qu'il veut dans la Secure Enclave.

Pour l'instant, retenez que l'AirTag a reçu un petit nom (par exemple « clés ») et qu'a priori, uniquement l'iPhone qui a été appairé avec l'AirTag peut communiquer secrètement avec lui de manière chiffrée.

appairement bluetooth
Ça devrait marcher comme ça : l'appariement fait, personne d'autre ne peut accéder à l'AirTag, et l'écoute ne donnera rien, car les communications sont chiffrées.

Notez que vous ne pouvez pas cacher un émetteur Bluetooth (ni aucune émission radio d'une manière générale du reste).

Du coup, il est possible d'écouter les messages Bluetooth, et de les localiser avec plus ou moins de bonheur grâce à un récepteur Bluetooth, et puisque votre smartphone est justement Bluetooth, il vous suffit de télécharger une application comme « BLE Scanner » ou « Bluetooth BLE Device Finder ».

Le scanner va vous dire quels sont les émetteurs dans le coin, avec quelle puissance reçue, ce qui donne une indication grossière de la distance. Et si l'identification est émise en clair, vous saurez ce que c'est.

Cela peut être pratique si vous laissez tomber votre portable blanc dans la neige. S'il le Bluetooth était en marche.

Voilà qui devrait répondre à la première menace et partiellement à quelques autres. Mais le diable se cache dans les détails.


Puis vous attachez votre AirTag à vos clés de maison.

1 : appairer (+ donner un nom à l'AirTag) et accrocher vos clés

On se fiche royalement de l'AirTag lui-même, l'élément important ce sont les clés, il faut que l'AirTag soit solidement lié aux clés. C'est d'ailleurs le cas pour les Airpods que l'on met dans les oreilles, l'AirTag est intégré dedans à la construction.

Localisation hors réseau

Le propriétaire de l'iPhone peut réaliser, en l'absence de réseau, des opérations relativement élémentaires :

  • Émettre un son pour le retrouver
  • Certains modèles de tags possèdent un bouton (pas chez Apple) ce qui permet de faire émettre un son à l'iPhone, voire commander une porte de garage (en programmant correctement tout ça).

Mais ceci sera limité par la portée de l'AirTag, une centaine de mètres avec une pile neuve.

Opérations faisables avec l'application dédiée

Comme le son émis par l'AirTag n'est pas forcément très efficace, Apple a ajouté la localisation précise en demandant à l'AirTag d'émettre en UWB : la distance est déduite de la durée entre l'émission de l'ordre d'émettre et la réception du signal, en retranchant le temps fixe de traitement de l'AirTag.

En se déplaçant un peu, l'iPhone pourra même commencer à trianguler ce qui facilitera les retrouvailles, ceci restant transparent pour l'utilisateur.

Mais cette histoire-là ne marche que si on est dans la portée Bluetooth. Si on est hors portée, à plus de cent mètres environ, plus rien ne marche. Ce n'est jamais qu'une télécommande.

Hors portée

Vous pouvez programmer votre AirTag de manière à détecter s'il est hors portée. Pour cela, il faudra inévitablement que l'iPhone interroge l'AirTag pour voir s'il répond, et s'il ne répond pas, alors l'iPhone va hurler que vous avez oublié vos clés. La fréquence d'interrogation aura une incidence directe sur la durée de vie de la batterie puisque l'AirTag doit répondre.


Si on en restait là, il n'y aurait pas grand-chose à dire.

Mais Apple a jugé judicieux d'utiliser la flotte d'iPhones pour détecter un AirTag hors portée. Ils sont non appairés par définition, et donc l'AirTag devrait les ignorer ! Comment faire sans mettre les protections cryptographiques en vrac ?

Mode « perdu »

Vous avez égaré vos clés, et l'AirTag n'est plus à portée. L'iPhone vous propose alors de le déclarer « perdu ». L'idée consiste à faire émettre par l'AirTag un message sur Bluetooth qui sera entendu par les autres iPhones non propriétaires à portée :

2 : L'AirTag perdu annonce à tout va sur Bluetooth qu'il est perdu.

Le Bluetooth Low Energy BLE définit un mode d'émission qui économise l'énergie en imposant une longueur de 32 octets aux messages expédiés. Et il vaut mieux envoyer ces messages assez rarement pour économiser la pile —mais bon, si on veut le retrouver, il faut émettre assez souvent.
Apple a choisi toutes les deux secondes.

Or les autres iPhones, non propriétaires, connaissent leur position grâce à leur GPS intégré. Ils vont pourvoir transmettre un message du genre :

  • j'ai entendu l'AirTag « clés d'Alice » à {heure, longitude et latitude}.
😨 Mais ça va consommer de l'énergie, tous ces iPhones qui écoutent et relayent ?
🙄 Bof, c'est ridicule à côté du reste de son activité normale.
Tu peux toujours arrêter de le faire, mais alors la localisation ne marchera plus pour toi aussi.
Soit tu participes et tu peux avoir de l'information en retour, soit tu es exclu du service, telle est la politique d'Apple.

Ces messages sont transmis via le réseau cellulaire ou WiFi peu importe vers un serveur d'Apple spécialisé qui va les stocker :

3 : Les iPhones à portée relayent le message vers le serveur d'Apple.

Alice fait une demande au serveur d'Apple pour savoir où sont ses clés :

4 : Alice fait une demande polie à Apple.

En fait, comme Alice a déclaré cet AirTag perdu, Apple enverra un message dès qu'il recevra une position (ils ne sont pas aussi bêtes, quand même, ils peuvent anticiper la demande). Mais il est possible que l'iPhone d'Alice ne soit pas disponible pour une raison quelconque, et qu'Alice fasse une demande depuis un autre terminal.


Apple regarde dans ses fichiers, et retourne tout ce qu'il trouve à propos de l'AirTag d'Alice. L'iPhone d'Alice peut alors afficher non seulement la dernière localisation reçue, mais également tout le parcours.

5 : Apple retourne les positions GPS reçues.

Vous pouvez même donner un message à celui qui a retrouvé vos clés :

6 : Envoyer un message à celui qui a retrouvé vos clés.

Chiffrement requis

😨 Non mais attend ! Si ces messages sont envoyés en clair, le monde entier va savoir où sont mes clés !
C'est vrai.
Les malfrats n'existeraient pas, on pourrait réaliser un système aussi simple sans se pourrir la vie avec du chiffrement.

Vous avez deviné les problèmes 

  • L'AirTag doit dire qui il est (sinon comment le reconnaitre parmi les millions d'AirTags? )
  • L'iPhone localisateur doit transmettre sa position GPS et l'heure, et son identifiant (pour recevoir éventuellement un message)

Mais il faut que personne ne puisse obtenir ces informations excepté l'iPhone propriétaire.

Et c'est même pire que ce vous pourriez penser :

  • Les messages envoyés par l'AirTag et l'iPhone localisateur doivent être différents à chaque envoi, même si les données sont identiques.

Et je dirais même « surtout si les données sont identiques », car sinon, aussi sec, on sait qu'il s'agit du même AirTag et on pourra finir par le trouver. Ce qui est le cas s'il n'existe qu'un seul AirTag à portée, puisque justement, il est tout seul à émettre, mais bon, on espère que ça n'arrivera pratiquement jamais car là, il n'y a rien à faire.

Comment rendre les messages lisibles aux seuls ayant droit ?
😕 Et c'est facile à protéger ?
🤓 Il n'existe pas cinquante mille mécanismes possibles.
Il faut chiffrer l'identité de l'AirTag
Mais changer son nom à chaque fois !
Avec un algorithme tournant, par exemple un PRNG comme pour les OTP.
🤔 Et la localisation GPS ?
L'AirTag doit envoyer une clé de chiffrement publique pour que l'iPhone localisateur puisse chiffrer le contenu.
Et si l'iPhone localisateur doit recevoir un message, il faudra qu'il donne son identifiant !
Effectivement, à inclure dans le message chiffré.
🥴 Eh puis j'ai oublié que les serveurs d'Apple vont avoir toutes les positions de tous les AirTag de la Terre.
Il faut donc que les messages soient vraiment indéchiffrables par tout le monde, même Apple.
🤨 Mais il faudra bien qu'Apple puisse faire le tri dans les messages ?
Effectivement.
Cela existe déjà pour le stockage des mots de passe, ça ne semble pas insurmontable.

Mise en œuvre

Apple a mis en place des algorithmes de chiffrement particuliers pour protéger les informations, c'est ce qu'ils tentent d'expliquer dans leur page. Les concurrents utilisent d'autres algorithmes, mais la finalité est la même. Tous ont la contrainte des 32 octets des messages Bluetooth Low Energy.

Vous remarquerez que j'ai évité tous ces algorithmes jusqu'à présent pour expliquer le pourquoi, et ça n'est pas fréquent dans tous les tutos ou pages d'explications que vous pourrez parcourir... Mais bon, on va rentrer dans le dur, mais en survolant la question, si vous voulez creuser, libre à vous.

Clé maitre

Lors de l'appariement, du mariage entre l'AirTag et l'iPhone maitre, une clé de type courbe elliptique (EC P-224 pour les intimes) est établie sans l'échanger sur Bluetooth (c'est effectivement faisable).

Il s'agit d'une paire { clé publique p₀ et clé privée d₀ }.

Pour rappel, la clé publique peut chiffrer un message que seule la clé privée peut déchiffrer. La clé privée est le secret à conserver soigneusement caché, Apple la place dans le trousseau de clés de l'iPhone maitre. L'AirTag ne conserve pas la clé privée, car il n'a pas de coffre-fort, et ce n'est jamais bon de distribuer les clés ici et là.

Dérivation de clés

Pour éviter qu'un AirTag n'émette un message avec une partie fixe toujours identique, ce qui permettrait de le repérer, Apple a utilisé un algorithme de dérivation de clés (ANSI X.963 key derivation function (KDF) avec du SHA-256) qui permet de calculer de nouvelles paires de clés à partir de la précédente, en s'arrangeant pour qu'il n'existe aucun lien entre ces clés (on ne peut pas deviner l'ancienne ou la future clé à partir de l'actuelle).

{  p₀, d₀ } ⇒ dérivation de clés ⇒ {  p₁, d₁ }

L'AirTag calcule une clé éphémère toutes les 15 minutes, et c'est cette clé qui va être émise toutes les deux secondes quand il est perdu.

clé éphémère { pi , di }   (15 minutes de durée de vie)

L'Airtag va jeter la clé éphémère privée (il n'a pas de coffre, et il n'en n'a pas besoin). Notez que l'iPhone maitre, qui connait la clé privée maitre d₀ est capable de refaire les mêmes calculs. C'est d'ailleurs le seul au monde à pouvoir le faire.

Chiffrement par le localisateur

Un iPhone localisateur reçoit une trame Bluetooth d'un AirTag perdu : il sait que c'est un objet perdu car c'est écrit dessus, mais pas spécialement un AirTag du reste car d'autres objets peuvent aussi dire qu'ils sont perdus (par exemple un iPhone, une oreillette...). La trame contient une clé éphémère —c'est d'ailleurs la seule chose qu'elle contient.

L'iPhone localisateur a le bon goût de connaitre sa position GPS et l'heure (je désignerai ce couple par « localisation GPS »). Il va donc pouvoir transmettre ces informations, et l'espèce d'identifiant qu'est la clé éphémère, mais il faut faire cela de manière discrète, et que personne, même Apple, ne puisse déduire des informations en rassemblant tous les messages.

La localisation GPS sera chiffrée avec la clé éphémère et un algorithme à courbe elliptique un peu particulier.

localisation GPS ⇒ chiffrement avec pi ⇒ localisation GPS chiffrée

Pour les curieux, il s'agit de :

  1. Créer une nouvelle clé éphémère P-224 à partir de la clé reçue
  2. Faire un ECDH (Elliptic Curve Diffie-Hellmann) avec la clé privée éphémère et la clé reçue, ce qui crée un secret partagé
  3. Dériver une clé symétrique avec ANSI X.963 KDF avec le secret partagé et SHA-256 en fonction de hachage
  4. Utiliser les 16 premiers octets comme clé de chiffrement e'
  5. Utiliser les 16 derniers octets comme vecteur d'initialisation IV
  6. Chiffrer la localisation GPS avec e' et IV comme paramètre pour un AES-GCM

Ben vous voilà perdu, c'est normal, ça n'est pas si facile. Je vous avais dit que j'éviterai ça.

L'iPhone localisateur envoie la localisation GPS ainsi chiffrée, avec un haché (hash SHA-256) de la clé éphémère reçue au serveur Apple.

Envoi de : SHA-256(pi) et de la localisation GPS chiffrée

Serveur Apple

Le serveur Apple reçoit et stocke les messages des localisateurs, et ça peut en faire vraiment beaucoup.

Apple ne peut rien en déduire car tout est chiffré, sans aucun lien entre les messages provenant d'un même AirTag, et Apple ne possède pas les clés (enfin, il faut lui faire confiance sur ce point, bien évidemment). C'est véritablement un fatras d'informations, et à part les ranger dans l'ordre d'arrivée avec la date de réception (histoire d'éliminer les messages vraiment trop vieux), on ne peut rien en faire.

Demande de recherche et localisation

L'iPhone propriétaire a perdu son petit AirTag. Il ne peut pas demander benoîtement où il est à Apple car Apple ne le sait pas.

Par contre, l'iPhone propriétaire connait la clé privée maitre d₀, elle est attachée à son trousseau de clés. Il peut alors reconstruire toutes les clés éphémères et calculer également le haché (hash SHA-256). Et demander au serveur Apple les messages contenant les hachés.

Le serveur d'Apple fait le tri dans son fatras de message et retourne ceux qui correspondent.

Alors oui, il faut que cette demande et la réponse soient également chiffrées. Il existe tout un cinéma rien que pour ça.

Pour chaque message reçu, comme l'iPhone propriétaire connait la clé éphémère qui a été utilisée comme point de départ pour chiffrer la localisation, il peut calculer de la même manière que le localisateur la clé symétrique, puis extraire la localisation GPS du message. Et il est le seul au monde à pouvoir le faire (sauf s'il a demandé que sa femme puisse aussi suivre cet AirTag... et là, ça devient intéressant).

Et obtenir la dernière position connue de son AirTag. Ouf.

Les informations de localisation comportent non seulement les coordonnées GSP et l'heure, mais aussi quelques informations supplémentaires pour améliorer la précision de la recherche. Des essais ont été effectués pour voir de quoi il retourne, vous pourrez chercher des papiers sur ce sujet. Celui d'Heinrich en parle.

précision d'un AirTag
En bleu le GPS d'une personne qui marche avec un AirTag. Les points noirs sont les données brutes de localisation, et en rouge la trajectoire déduite.

AirTag : faits marquants

Nota : observations de 2021. Ça peut largement avoir changé depuis, mais pas tant car les AirTag déjà fabriqués ne peuvent pas être mis à jour.

  • Se connecte avec le propriétaire toutes les secondes
  • Passe en mode perdu 3 jours après la perte de contact avec le propriétaire
  • Émet une trame Bluetooth toutes les 2 secondes lorsque le contact est perdu avec le propriétaire
  • Émet une sonnerie après 6 hours en mode perdu et si un mouvement est détecté
  • Adresse BLE et clé publique mise à jour chaque jour à 4 heures du matin
  • Dernier octet modifié aléatoirement toutes les 15 minutes
  • Échantillonne l'accéléromètre toutes les 10 secondes en attente
  • Échantillonne l'accéléromètre toutes les demi-secondes lorsqu'un mouvement est détecté, pendant 20 secondes
  • La mémoire flash de 32 Mo n'est pas chiffrée
  • L'interface de programmation nRF (SWD) est accessible et déverrouillable.

États

  • Non enregistré : AirTag neuf, remis à zéro, ou éliminé du réseau FindMy network. Attend une connexion et se signale toutes les 33 ms (avec un message particulier).
  • Initialisation : l'AirTag a été enregistré par un identifiant Apple, et un couple de clé publique/privée a été généré et partagé.
  • Connecté : l'AirTag est à portée du propriétaire, aucune émission n'est réalisée.
  • Déconnecté : l'AirTag est hors portée. Il émet une trame toutes les 2 secondes.
  • Désynchronisé : l'AirTag est séparé du propriétaire. Pareil que déconnecté, sauf que l'horloge interne n'est plus synchro avec le propriétaire, et son identité est remise à sa valeur initiale.
  • Perdu : après 3 jours de déconnexion ou de désynchronisation. Passe en « attente de mouvement » après 6 heures.
  • Attente de mouvement : Échantillonne l'accéléromètre toutes les 10 secondes. Si mouvement, l'échantillonnage passe à une demi-seconde.
  • Alerte sonore : sur demande du propriétaire. Dure 20 secondes maximum.
  • Localisation précise : sur demande du propriétaire en mode connecté, l'AirTag va émettre en UWB. L'alarme sonore s'arrête.

Trame Bluetooth

Voici le détail de la trame Bluetooth de 32 octets par Apple :

Octet Valeur Description
0 0x1E Longueur données : 31 (maximum possible)
1 0xFF Donnée spécifique fabriquant
2-3 0x004C Identifiant Apple
4 0x12 Indique une charge utile de type FindMy
5 0x19 Longueur Apple (31 - 6 = 25 = 0x19)
6 0x10 Octet d'état
7-29 variable Clé publique EC P-224. Change chaque jour.
30 0-3 Deux bits de poids fort du premier octer de la clé ECC
31 variable Compteur crypto; change aléatoirement toutes les 15 minutes
Attention : la définition des premiers octets peut varier suivant les auteurs...

La charge utile contient une clé publique de type NIST EC P-224. Elle devrait faire 28+1 octets, mais elle ne fait que 23+1 octets. Les octets manquants constituent l'adresse Bluetooth de l'Airtag, une astuce pour que la clé rentre dans la taille d'un seul envoi Bluetooth.


C'est très différent de la version SmartTag / Samsung :

Byte # Value Description
0 variable Tag state
1-3 variable Compteur = (tagtime - 1593648000) / 900
4-11 0x4C Identifiant unique du SmartTag
12 variable Code région code, flag d'encryption + UWB
13-15 0x00 Réservé
16-19 variable Signature
20-31 Pas utilisé
  • Samsung emploie une clé symétrique (AES/CBC/PKCS7).
  • Remarquez l'identifiant unique.

Les protocoles Apple et Samsung sont une nette amélioration par rapport aux autres technologies de tags, trop simplistes et vulnérables.

Trame NFC Apple

Il est possible de communiquer avec un AirTag en NFC en mode lecture uniquement, comme un tag NXP MIFARE Plus (Type 4). Il répond avec une trame dépendant de son état, enregistré ou non :

  • Pas enregistré : numéro de série
  • Enregistré : probablement des bits relatifs à la clé publique, ça change toutes les 15 minutes.

Réponses aux menaces

Sur le papier, cette méthode de chiffrement élimine pas mal de menaces. Mais l'implémentation matérielle et software va s'en mêler.

Examinons les menaces :

Menace 1 : suivi malveillant

C'était la base qui justifie d'employer des outils cryptographiques, cette menace est éliminée, personne ne peut comprendre vos échanges entre l'AirTag et l'iPhone.

Mais rappelez-vous qu'en mettant un AirTag à vos clés, c'est comme si vous y mettiez un sifflet, sauf qu'il est radio. Tout seul dans son coin, on le retrouvera avec l'outil adapté, ici une application qui écoute le Bluetooth.
Tant que la pile sera chargée.

Menace 2 : perte ou vol

  • On peut effectuer un reset complet de l'AirTag.
  • Il n'y a aucune donnée privée dedans.
  • Il ne stocke aucune localisation.

Menace 3 : déclaré « perdu »

Perdu ou pas perdu, ça ne change rien, il n'y a pas de risque spécifique de ce côté-là. Ce mode ne fait que permettre l'envoi de données chiffrées de localisation par des tiers vers le serveur d'Apple que personne d'autre que le propriétaire peut déchiffrer. L'AirTag finira par se déclarer perdu tout seul, quand il est hors portée.

Menace 4 : autorisation de détection usurpée

Je n'ai pas abordé ni regardé ce sujet.

La logique voudrait que le propriétaire initial donne une copie de la clé maitre de chiffrement à un destinataire, mais il ne faut pas faire ça, c'est la porte ouverte aux problèmes, vous ne contrôlez plus rien.

J'espère que cela passe systématiquement par le propriétaire : le destinataire devrait obligatoirement demander à l'iPhone du propriétaire de lui transmettre les informations (et alors si l'iPhone propriétaire tombe en rade, plus personne n'a accès). Et le destinataire ne peut pas transmettre cette autorisation (mais peut se faire hacker, rien n'est jamais parfait).

Menace 5 : suivi à mon insu

C'est ce qui a fait couler beaucoup d'encre, et l'AirTag n'est qu'un autre moyen commode de le faire.

Apple a répondu à cette menace en :

  • en proposant une application spécifique pour les détecter
    (Tracker Detect)
  • en alertant l'iPhone qu'un AirTag perdu traine dans le coin
  • en faisant couiner un AirTag perdu avec plus ou moins de bonheur, mais c'est déjà ça. Les alertes sonores sont déclenchées après 3 jours de séparation, et seulement si l'AirTag bouge. Puis attend 6 heures pour recommencer le cycle. Ça laisse 3 jours pour réaliser le suivi... Et le malandrin peut dézinguer le haut-parleur avant.

C'est déjà ça. Mais ça n'est pas parfait. Car il ne faudrait pas avoir trop de faux positifs.

Les iPhones localisateurs, ceux qui aident à retrouver les AirTag perdus, ne transmettent que des données chiffrées, et aucune identification.

Menace 6 : détection de l'antivol

On peut toujours utiliser une application de détection Bluetooth pour voir s'il existe des émetteurs dans le coin. Encore faut-il y penser.

Menace 7 : clones et malveillance

Il est possible de cloner un AirTag. Et pas simplement d'en fabriquer d'autres, de faire émettre n'importe quel appareil équipé de Bluetooth comme un AirTag, à partir du moment qu'il est possible de le reprogrammer (ou le hacker). Voir plus loin dans les vulnérabilités.

Menace 8 : fausse localisation

On peut cloner. Et donc fabriquer de fausses localisations...

C'est même pire. Un iPhone localisateur, qui reçoit une clé publique d'un AirTag, peut, avec une reprogrammation adaptée, renvoyer des vraies fausses localisations au serveur ! Et difficile d'empêcher ça.

Menace 9 : déni de service

Il est facile de brouiller les signaux Bluetooth, et il n'existe pas de parade.

Menace 10 : détournement

À partir du moment où vous pouvez hacker un iPhone, tout est possible, on peut lui demander d'envoyer les messages de localisation non chiffrés sur un serveur pirate. L'operating system a la lourde charge de se regarder le nombril pour vérifier l'intégrité de ses composants...



Et cette liste est non limitative. On a supposé jusqu'à présent que l'implémentation matérielle et software étaient parfaites. Mais ça n'est jamais le cas, il existe toujours des vulnérabilités plus ou moins importantes.

Vulnérabilités

Elles sont pléthores, mais force est de constater que les AirTag fonctionnent relativement bien, ce qui implique quelque part que ces vulnérabilités ne sont pas trop critiques. À vous de juger.

Je ne vais pas rentrer dans les détails ici car c'est vraiment un dossier important. Je vais simplement donner quelques indices pour que vous puissiez vous inquiéter 😈

Reverse engineering

Évidemment que l'AirTag d'Apple s'est fait désosser, analyser et reprogrammer dès sa sortie, ce qui n'est guère rassurant du côté de la sécurité matérielle, normalement on ne peut pas reflasher un microcontrôleur —si on a armé le fusible de protection—. Un AirTag n'est pas un coffre-fort.

Apple ne peut pas les reprogrammer à distance pas de secure boot, c'est voulu, et donc aucune mise à jour n'est possible pour la flotte existante.

Clonage nRootTag

Il s'agit certainement de l'attaque qui a fait parler le plus d'elle. Elle est décrite en détail ici :

L'attaque se fait en 4 étapes :

  1. Un cheval de Troie est introduit dans votre PC, smartphone, ... et récupère son adresse Bluetooth
  2. Puis il contacte un serveur de l'attaquant qui va créer une clé qui correspondra à cette adresse
  3. Puis votre PC, smartphone commence à émettre comme un AirTag
  4. Qui se fait repérer par les iPhones environnant, et envoient sa localisation.

Pas besoin d'être à côté de la cible. Et vous saurez en peu de temps où la cible se situe...

Cette histoire permet de créer de nouveaux AirTags à partir d'autres matériels, par exemple :

Pas vraiment facile d'éviter cela surtout qu'Apple ne peut pas mettre les AirTags à jour, Apple a proposé des patches, mais vous pouvez toujours exécuter cela sur des appareils non mis à jour. Un bon exemple qui justifie une mise à jour de sécurité, non ?

Cette histoire montre qu'il est possible de créer des clones, et toutes les attaques qu'on peut associer. Les menaces 7 et 8 ci-dessus.

Vous trouverez des listes de vulnérabilités dans les papiers des chercheurs. Voici quelques points de départ (qui m'ont inspirés) :


Les chercheurs en sécurité proposent des améliorations, qu'Apple pourra éventuellement reprendre. Voici un exemple :

Et la police ?

Si les protections cryptographiques sont correctement mises en place, ni la police, ni Apple, ni personne ne peut casser le système. Accéder aux secrets reposent sur le coffre-fort de l'iPhone et seul son propriétaire connait le mot de passe, ou possède les traits biométriques pour le déverrouiller, l'AirTag est très secondaire dans l'histoire puisqu'il n'embarque pas de secret (uniquement de l'éphémère).

Ceci dit, Apple peut collaborer dans certains cas, par exemple le suivi à son insu, car dans ce cas on a en main l'AirTag et donc son numéro de série, et on pourra prouver qu'il est relié à tel iPhone.

Le serveur d'Apple peut être exploité pour prouver que deux iPhones sont dans le même secteur, simplement en regardant les corrélations lors des envois sur Internet d'informations de localisation ainsi que des demandes.

Vous pensez être suivi(e) : que faire ?

D'une manière générale

  • Il faudra charger l'application associée au tag. Et donc reconnaitre le type de tag, ce qui n'est pas toujours évident.
  • Utilisez une application de détection Bluetooth comme « BLE Scanner » ou « Bluetooth BLE Device Finder », et bonne chance dans vos recherches. Car sans la localisation précise, ça n'est pas si évident à trouver.

AirTag Apple

  • Vous avez un iPhone : théoriquement, votre iPhone devrait vous prévenir sans rien faire si un AirTag traine dans les parages SANS son propriétaire depuis un certain temps. Vous devriez même pouvoir le faire sonner pour le trouver. Mais bon, si ça marche...
  • Apple a répondu à cette menace en proposant une application spécifique pour les détecter (Tracker Detect)
  • Vous êtes sous Android : il faudra lancer une application pour détecter les tags dans le coin, BLE scanner et consorts.

Vous trouvez un tag dans vos affaires

  • Ne le détruisez pas chez vous ! Vu que sa dernière position sera remontée au propriétaire... Balancez-la dans un endroit sans relation avec vous, chez votre ennemi préféré, à la police, soyez imaginatif.
  • Il suffit d'enlever la pile pour désactiver le tag (qui peut être casse-pied à ouvrir).

Références


Résultat des courses : les paranoïaques comme moi ont du mouron à se faire.
Marvin, dans RED Retired Extremely Dangerous, avait raison.