Accueil du site > Vie de la recherche > Actualités scientifiques




Recherchez sur ce site


Passeport : la petite précision qui vous perdra

Retour de vacances, peut-être à l’étranger, vous avez une confiance absolue dans la protection de vos données bien abritées dans votre nouveau passeport biométrique. Cependant, de nouvelles failles cryptographiques sont régulièrement mises à jour, notamment si un hacker souhaite « traquer » une personne identifiée. Zoom sur une attaque possible sur votre vie privée, dévoilée par Stéphanie Delaune du Laboratoire Spécification et Vérification (LSV) (CNRS/ENS Cachan).

Depuis l’été 2006, les nouveaux passeports français sont électroniques. Ils contiennent en effet une puce RFID, capable de communiquer sans fil, et qui stocke les informations écrites sur le passeport et votre photo numérisée. Inconvénient de taille : une puce RFID ne possède pas de bouton on/off, elle est donc consultable en permanence, y compris à l’insu de son propriétaire. Bien entendu, des mécanismes de protection ont été déployés pour prévenir l’écoute des communications (eavesdropping) qui ont lieu par ondes wifi. Mais parfois le souhait de protection amène à donner trop d’informations… comme dans notre exemple.

La consultation d’un passeport biométrique se fait selon un protocole BAC précis (voir encadré ci-dessous) qui vise à générer une nouvelle clé à chaque utilisation du passeport. Cette clé sera utilisée pour chiffrer nos données personnelles lors des échanges ultérieurs. On aurait pu choisir de chiffrer les données avec une même clé à chaque fois, mais le but d’un tel design était (sans succès) de garantir la non-traçabilité du passeport. Par ailleurs, il est prévu que le passeport doive répondre à tous les messages qu’il reçoit, éventuellement avec un message d’erreur. Mais ces messages d’erreurs n’ont pas été précisés… Une implémentation différente selon les nations a donc été faite. Imaginons maintenant que vous êtes un fan harceleur de Jean Dujardin, et que vous voulez découvrir où il part en vacances de façon secrète. Lors d’une de ces sorties officielles, vous installez des « antennes espionnes » (capteurs RFID) à proximité de lecteurs légitimes, dans un aéroport par exemple. Vous enregistrez alors les échanges entre le lecteur et son passeport. Dès lors, il vous est possible d’identifier son passeport lors d’un de ses passages près d’une de vos antennes !

En effet, pour qu’un lecteur puisse accéder aux informations du passeport, il doit prouver qu’il y est autorisé. Pour cela, la première étape de vérification de la validité du lecteur vis-à-vis du passeport est un message de code d’authentification (MAC) qui est calculé en utilisant une des deux clés dérivées à partir des données situées en bas de la première page du passeport. Ce message MAC est donc spécifique au passeport d’une certaine personne, puisque lié à une clé uniquement visible à l’intérieur de celui-ci. Le hacker doit donc interroger tous les passeports qui passent à porter de ces antennes RFID et fournir ce message MAC préalablement enregistré auprès du passeport de la victime. Comme il s’agit d’un rejeu d’un message provenant d’une session précédente, le protocole BAC a été conçu pour ne pas accepter ce type de message, et un message d’erreur, indiquant que le protocole ne se déroule pas normalement, va donc être émis. Si le passeport répond par un code d’erreur indiquant que le message MAC n’est pas le bon, on en déduira que c’est une autre personne. Mais si le passeport répond avec un autre code d’erreur, cela signifie que la première étape de vérification a été validée et que le passeport appartient bien à la personne que l’on souhaite suivre ! Trop de précision dans les messages d’erreur donne donc un biais pour attaquer, quand un simple message d’erreur aurait suffi.

Cette attaque est une des dernières en date à avoir été découverte, et signalée aux autorités. Le travail d’amélioration des protocoles est continu : sur les passeports électroniques de 1ère génération en Belgique, il n’y avait par exemple aucun mécanisme de sécurité pour protéger les informations personnelles. Il était ainsi possible de récupérer la signature manuscrite du porteur en interrogeant le passeport à distance… En France, une autre attaque récente et découverte permettait de tracer également les déplacements d’une personne, mais cette fois-ci en fonction du nombre spécifique de paquets de données qu’envoie chaque passeport. À l’heure actuelle, il est impossible de savoir quelle est la version du passeport français en cours de production. Cela pour deux raisons : éviter de donner trop d’informations pour que les hackers ne puissent pas s’adapter de nouveau… et éviter que trop de monde demande à changer de passeport pour avoir la nouvelle version, si certains utilisateurs craignent des attaques sur leur version plus ancienne. Cependant, même si ces failles ne sont pas à négliger et que des contre-mesures doivent être mises en place, elles ne correspondent pas nécessairement à des attaques de grande ampleur. Et toutes les protections du monde ne servent plus à rien à partir du moment où chacun fournit volontairement la copie de l’intérieur de son passeport, comme par exemple à chaque fois que vous devez vous enregistrer dans un hôtel à l’étranger…

Détails du protocole BAC

Le lecteur reçoit par lecture optique les clés KE et KM à partir des informations qui sont stockées sur la première page du passeport.

  1. Le lecteur lance le protocole en envoyant une demande au passeport.
  2. Le passeport répond avec un nombre NP, c’est-à-dire une chaîne de bits aléatoires. Il a également généré une nouvelle clé aléatoire KP.
  3. Le lecteur crée ensuite son propre nombre aléatoire et une nouvelle clé aléatoire KR. Ceux-ci sont chiffrés avec la clé du passeport KE et envoyés au passeport. Un MAC (un message de code d’authentification) est calculé en utilisant la clé KM du passeport et envoyé avec le message.
  4. Le passeport reçoit ce message, vérifie le MAC, déchiffre le message et vérifie que son nombre aléatoire est le bon ; ce qui garantit au passeport que le message du lecteur n’est pas un rejeu d’un ancien message (comme dans l’exemple de l’attaque détaillée dans cet article).
    Le passeport envoie sa clé KP pour le lecteur dans un message similaire, à l’exception cette fois que l’ordre des nombres est inversé. Ainsi, bien que similaire, ce message est différent ce qui permet d’assurer que ce chiffrement et le MAC associé ont été calculés par quelqu’un en possession des clés KE et KM (c’est-à-dire du passeport).

Une fois les dernières vérifications effectuées à la réception de ce dernier message, le passeport et le lecteur rassemblent KP et KR et utilisent le résultat pour en dériver une clé de session. Cette clé de session est alors utilisée pour chiffrer vos données personnelles.