Contexte technique
L’article de Ryan Fahey décrit le format PDF417 utilisé sur les permis de conduire américains. Chaque code‑barcode encode les données du titulaire ainsi qu’une signature numérique destinée à garantir l’intégrité du flux de données lorsqu’il est lu par les systèmes de contrôle d’identité. Cette signature est générée à l’aide d’une clé privée détenue par l’autorité d’émission, mais la clé elle‑même n’est jamais incluse dans le code‑barcode, d’où le titre « Keys Not Included ». Le standard AAMVA précise que la signature doit être vérifiable avec la clé publique correspondante, généralement distribuée aux points de contrôle via des certificats X.509.
Méthodologie de récupération
L’auteur explique qu’il a collecté un grand nombre de barcodes provenant de différents États afin d’identifier des motifs récurrents dans les champs signés (nom, date de naissance, numéro de licence). En exploitant le fait que ces champs sont prévisibles, il a pu appliquer une attaque de texte clair connu sur l’algorithme de signature. Selon le texte, l’algorithme employé est un RSA avec un module de taille standard, ce qui rend la récupération possible dès que suffisamment de paires message‑signature sont disponibles. Fahey détaille le processus de reconstruction de la clé privée en résolvant le système d’équations dérivé des exposants RSA, sans recourir à une faille de génération aléatoire.
Analyse des risques
La récupération d’une clé privée de signature expose directement la chaîne de confiance des licences. Un acteur malveillant disposant de la clé peut créer des barcodes valides contenant des informations falsifiées, ce qui compromet les contrôles d’accès aux points de vente d’alcool, aux aéroports ou aux services de location de véhicules. L’article souligne que la vulnérabilité ne dépend pas d’une faille logicielle du lecteur de code‑barcode, mais d’une faiblesse conceptuelle : la même clé est réutilisée pour signer un volume important de documents dont le contenu partiel est prévisible. Cette réutilisation augmente la surface d’attaque, car chaque nouveau barcode ajoute une équation supplémentaire au problème de factorisation.
Limites et recommandations
Fahey précise que la méthode nécessite plusieurs centaines de barcodes pour atteindre une probabilité de succès acceptable, ce qui constitue une barrière pratique pour un attaquant isolé. De plus, il note que certains États utilisent déjà des algorithmes de signature basés sur ECDSA, où la récupération de la clé privée à partir de textes clairs connus est nettement plus difficile. En conclusion, l’auteur recommande de migrer vers des schémas de signature à usage unique (par exemple, des signatures basées sur des nonces) et de diversifier les clés privées entre les juridictions afin de réduire la corrélation entre les barcodes. Il suggère également la mise à jour des certificats publics distribués aux points de contrôle pour inclure des mécanismes de révocation rapide en cas de compromission.