Valider un titre de transport dans le bus, utiliser un badge pour ouvrir une porte et même payer sans contact sont devenues des actions naturelles pour la plupart d’entre nous alors qu’elles n’existaient pas il y a encore quelques années. Ces gestes reposent sur la technologie de radio-identification qui peut sembler être une manière plus efficace de sécuriser un système puisqu’elle requiert la présence physique du badge pour s’identifier. Mais en réalité, aucun système, même protégé par RFID n’est réellement impénétrable et la difficulté à trouver une faille peut grandement varier selon le produit qui vous a été vendu.
Par Romain GARNIER et Lucas TORIELLO
Laboratoire (C+V)O / CNS – Laboratoire de Cryptologie et de Virologie Opérationnelles / Axe Confiance Numérique et Sécurité – ESIEA
Le contexte
La radio-identification (ou RFID de radio frequency identification) est une méthode de mémorisation et récupération de données à distance par transfert d’énergie électromagnétique de plus en plus répandue. Un système de radio-identification est constitué d’un tag, contenant des données et d’un lecteur, généralement associé à un logiciel de gestion pour utiliser ces données.
Lorsque le lecteur détecte la présence d’une carte, il envoie les informations qu’elle contient au logiciel de gestion qui s’occupe de les analyser et d’autoriser ou non l’accès.
Démocratisées dans les années 2000, les puces RFID apparaissent dans de nombreux domaines, allant du contrôle d’accès à des zones sécurisées au paiement sans contact en passant par le marquage de marchandise. Plus récemment, une société belge a proposé à ses employés de se faire implanter des puces RFID sous la peau pour remplacer les badges classiques, trop souvent perdus. Une utilisation future envisagée serait de se faire greffer une puce RFID contenant une partie de son dossier médical afin de faciliter la prise en charge dans les hôpitaux en cas de perte de conscience.
Au-delà des problèmes éthiques liés à la protection de la vie privée que soulève ce genre d’applications, il est nécessaire d’accorder une importance particulière à la sécurité des informations contenues dans ces puces et dans le système de gestion associé. Il faut distinguer deux risques liés aux failles de sécurité : d’abord l’accès aux informations contenues sur le tag, souvent peu, voire absolument pas protégées, puis les utilisations frauduleuses de ces informations.
Étude de cas – contexte
Dans le cadre de notre formation d’ingénieur à l’ESIEA, nous avons travaillé sur un projet consistant à tester les vulnérabilités des systèmes RFID. Une analyse de risque nous a été rapidement confiée. Nous savions qu’il était possible de récupérer les données d’une carte et de les copier sur une autre. On nous a donc demandé d’essayer de cloner la carte d’accès d’un club de tennis.
Étude de cas – première analyse
La première étape de la duplication consistait à analyser la carte pour pouvoir l’identifier. Nous avons utilisé un Proxmark3 pour collecter différentes propriétés de la carte, mais il existe aussi des applications Android permettant d’accéder à ces informations. Les plus intéressantes pour nous sont le type de carte et son « UID », c’est-à-dire son identifiant unique :
Ces premières informations nous indiquent que la carte est une « Mifare Classic 1K ».
Étude de cas – Présentation de la carte « Mifare Classic 1K »
Toutes les informations qui suivent proviennent de différentes sources Internet :
La « Mifare Classic 1K » est un tag développé par NXP Semiconductors qui a été largement diffusé dans le monde. Cette carte fonctionne sur la fréquence de 13,56 MHz. La mémoire est organisée en 16 secteurs de 4 blocs de 16 octets. Chaque secteur est sécurisé par deux clés A et B donnant différents droits : par exemple la clé A peut autoriser l’accès en écriture sur la carte tandis que la clé B n’autoriserait que l’accès en lecture. La seule exception réside dans le « Bloc 0 » du « Secteur 0 » qui contient les informations concernant la carte, comme son identifiant, l’identifiant du constructeur… Ce bloc n’est normalement pas modifiable.
L’algorithme de chiffrement CRYPTO1 utilisé par NXP pour protéger les données de la « Mifare Classic 1K » constitue une vulnérabilité puisqu’il a été cracké en 2008.
Étude de cas – analyse approfondie
Pour en revenir à notre cas, il n’a même pas été nécessaire de chercher à casser l’algorithme puisque nous nous sommes aperçus que, comme souvent, toutes les clés de chiffrement avaient été laissées par défaut : FF FF FF FF FF FF. Nous avons donc pu accéder à tous les secteurs mémoires et nous nous sommes aperçus qu’ils étaient tous vides à l’exception du premier. Cette information nous a permis de déduire le fonctionnement du logiciel gérant l’accès aux courts de tennis : le lecteur ne lit en fait que les informations contenues dans le « Bloc 0 » du « Secteur 0 » pour autoriser ou non l’accès.
Dump de la carte, on voit que les seules données sont sur
le « bloc 0 » du « secteur 0 »
À ce stade, nous avons obtenu toutes les informations dont nous avons besoin : architecture de la carte, fonctionnement du logiciel de gestion… On peut donc exploiter ces informations pour s’autoriser l’accès au court.
Étude de cas – copie
Nous n’avons pas cherché à savoir précisément quelles informations étaient réellement déterminantes pour authentifier la carte, nous nous sommes contentés de copier tout le « Bloc 0 » de la carte originale sur le « Bloc 0 » d’une autre carte Mifare. Comme dit précédemment, il est normalement impossible d’écrire sur ce bloc, mais il est très facile de se procurer sur Internet des cartes « backdorées » autorisant cette modification.
Finalement, le test de la carte copiée a été un succès : lorsque nous avons passé notre carte devant le lecteur, celui-ci a réagi comme s’il s’agissait de la carte originale et nous a autorisé l’accès au court.
Recommandations
La plupart des prestataires qui tenteront de vous vendre un système d’authentification par RFID utiliseront comme argument le fait qu’il est impossible d’utiliser une carte autre que celles fournies pour justifier la sécurité du système. Mais notre exemple montre qu’il est en réalité très simple de duper un système mal sécurisé. Si le système n’est là que pour contrôler l’accès à un court de tennis, cela n’est pas d’une importance vitale. Dans le cas où on chercherait à restreindre l’accès à des zones sensibles, il serait nécessaire d’avoir un système RFID bien plus sécurisé.
Bonnes pratiques :
– Ne surtout pas croire qu’un système RFID est inviolable sous prétexte qu’il repose sur une technologie récente et sans contact.
– Sensibiliser le personnel : le vol ou la perte d’une carte RFID peut constituer un risque pour la sécurité du système. Ce risque est parfois plus important qu’avec une clé traditionnelle, car il suffit de perdre la carte de vue pendant quelques secondes pour qu’elle soit copiée.
– Le logiciel de gestion des cartes RFID peut lui aussi présenter des failles : L’article de SecuriteOff « Méfiez-vous des badges RFID » de Nicolas CHAUVEAU donne un exemple d’erreur d’implémentation des données dans la carte.
– Identifiez la sensibilité des informations qu’on cherche à protéger pour en déduire le niveau de qualité et de sécurité du dispositif RFID associé.
Dans le cadre d’un audit de sécurité de votre système d’information, il est indispensable d’intégrer votre dispositif RFID dans le périmètre de l’audit. Une vulnérabilité dans le logiciel de gestion ou dans de choix de la carte ou du lecteur peut exposer les informations sensibles de l’entreprise ou de son personnel.