web-dev-qa-db-fra.com

Les lecteurs de la carte à puce "Mifare DESFire EV1" ont-ils vraiment besoin de connaître la clé secrète de la carte pour authentifier la carte?

J'essaie de comprendre la sécurité d'un système de carte à puce sans contact, utilisé pour le contrôle d'accès et le paiement. La carte est un Mifare DESFire EV1 implémentant ISO 14443 (voir - cette collection de documentation ).

J'ai lu des informations sur les attaques par canal latéral visant à extraire la clé privée de la carte à puce (voir Analyse par canal latéral des RFID cryptographiques avec démodulation analogique ). Ils ont réussi, mais semblent assez difficiles à réaliser.

Si je comprends bien le processus d'authentification de ces cartes, le lecteur et la carte doivent tous deux prouver leur connaissance de la clé secrète par une procédure de défi-réponse (le protocole n'est pas public mais a été rétro-conçu dans le document Cloning Cryptographic Cartes RFID pour 25 $ au chapitre 3.2.). Tous les appareils de lecture doivent donc également connaître la clé secrète. Mais il peut y avoir beaucoup de lecteurs de nombreux fournisseurs (par exemple des machines à café, de petits lecteurs USB aux caisses enregistreuses, des panneaux de contrôle d'accès…), tous ont-ils vraiment la clé secrète? Existe-t-il une norme sur la façon dont la clé doit être stockée? Il peut être possible dans certains cas que les cartes soient authentifiées sur le réseau, mais je sais que certains appareils fonctionnent hors ligne.

Je m'attendrais à ce qu'ils soient un vecteur d'attaque très prometteur, car les vendeurs de machines à café ne se soucient généralement pas beaucoup de la sécurité. Existe-t-il des articles décrivant une attaque réussie? Ou existe-t-il simplement une puce similaire dans l'un de ces lecteurs où la clé est stockée de la même manière?

19
Beat

MIFARE DESFire EV1 peut avoir plusieurs applications (28), et chaque application peut avoir plusieurs fichiers (32) de types différents (4). La carte elle-même possède une clé principale PICC plus entre 1 et 14 clés par application. Les clés de chaque application sont utilisées pour contrôler l'accès à ses fichiers.

Chaque service utilisé par votre carte peut être, et est probablement, une application différente. Si les clés de la machine à café sont compromises (application A), cela n'implique pas la compromission des clés de l'application de contrôle d'accès (application B) sur la même carte.

Considérons une application de machine à café sur la carte qui utilise une clé K1 pour déduire le crédit et une autre clé K2 pour ajouter du crédit à votre carte DESFire EV1. La machine que vous utilisez pour obtenir votre café et qui déduit le crédit de la carte n'a besoin que de la clé K1, elle n'a pas besoin d'avoir la clé K2 pour ajouter du crédit (ce qui se fait ailleurs). Donc, si vous compromettez la clé des machines à café, la seule chose que vous pouvez faire est de retirer de l'argent des cartes et de ne pas augmenter votre crédit. Pour ajouter du crédit, vous avez besoin des clés pour cela et cela peut être une procédure effectuée à un endroit différent dans un environnement plus sécurisé et peut-être même par un opérateur humain.

Il existe toujours un risque de compromis, mais il peut être atténué par une utilisation intelligente des clés et la séparation des services dans différentes applications. Peut-être que vous avez 200 machines à café réparties dans tout le bureau qui peuvent fonctionner hors ligne, mais que vous n'avez besoin que de 10 pour recharger la carte et peut-être que cela se fait même en ligne pour plus de sécurité.

La machine à café peut utiliser un module d'accès sécurisé pour stocker les clés. S'ils le font ou non, et s'ils en ont besoin, c'est une autre histoire.

3
Daniel

Modifié: OK. Comme il y a une demande de "réponse courte", voici le "résumé" ici:

Question: "Donc, tous les appareils de lecture doivent également connaître la clé secrète. Mais il peut y avoir beaucoup de lecteurs de nombreux fournisseurs (par exemple des machines à café, de petits lecteurs USB aux caisses enregistreuses, des panneaux de contrôle d'accès…), tous ont-ils vraiment la clé secrète? Existe-t-il une norme sur la façon dont la clé doit être stockée? "

Réponse: "Oui. Outre la communication à distance/initiée par le serveur avec la carte DESFire, tous les lecteurs doivent également connaître les clés secrètes. Et oui - il existe une norme sur la façon dont la clé doit être stockée - utilisation du module d'accès sécurisé - MIFARE SAM (actuellement le modèle AV2).

Tout le contenu ci-dessous peut être oublié s'il n'est pas intéressé;)

Il existe essentiellement deux familles de cartes MIFARE: MIFARE Classic et DESFire (et dérivés similaires). De plus, il y a MIFARE Plus, qui a été initialement ciblé sur les marchés MIFARE Classic (qu'il prend entièrement en charge, s'il est configuré pour le faire), a deux modes de fonctionnement de sécurité supplémentaires, qui ajoutent plus de sécurité aux infrastructures MIFARE Classic jusqu'à un niveau similaire à DESFire.

Il existe de nombreux protocoles d'authentification utilisés parmi ces familles MIFARE, certains sont assez similaires mais diffèrent parfois par de petits détails, ce qui peut conduire à ce que les infrastructures de lecture NE soient PAS capables de gérer un autre protocole même si elles semblent très similaires au début…

Ce qui est plus important pour votre question sur DESFire EV1: l'approche de base pour la sécurité côté lecteur est l'utilisation de ce que l'on appelle des "modules d'accès sécurisé" (SAM), qui sont des cartes à puce spécialisées, fournissant des fonctionnalités liées à la sécurité aux lecteurs/terminaux. Le SAM détient toutes les clés et dispose également d'un moteur pour mener des protocoles de sécurité, utilisé dans la communication sécurisée entre la carte et le lecteur. Il s'agit du point d'ancrage de la sécurité des lecteurs en termes d'utilisation de DESFire EV1. Les clés peuvent également être dérivées individuellement pour chaque carte, de sorte qu'elles n'utilisent PAS la même clé pour tous les protocoles d'authentification et de cryptage de la carte. La clé d'un module SAM peut être téléchargée en toute sécurité vers le champ SAM in en utilisant des protocoles chiffrés supplémentaires à partir de l'hôte OR par un téléchargement hors ligne par lots (à partir d'une clé USB par exemple).

Certains protocoles basés sur RSA sont également pris en charge pour la signature/vérification afin de garantir que certaines actions sont authentifiées sans utiliser de protocoles de clés partagées.

Le SAM est intelligemment planifié et assez solide en termes de sécurité, donc mettre un tel module SAM dans un distributeur automatique prend en charge toute la sécurité requise. Même une modification de carte DESFire, initiée par un hôte distant, peut être établie en toute sécurité car le SAM peut agir en tant que "proxy sécurisé" en établissant un canal sécurisé vers l'hôte et un autre vers la carte, fournissant un "proxy de rechiffrement" au milieu. Bien sûr, SAM est une carte standard "client" et tout échange de commandes, le lecteur doit donc prendre en charge ces protocoles en envoyant, recevant et transmettant des APDU entre les participants. Le SAM prend également en charge les connexions directes à la puce du lecteur, agissant comme un proxy transparent.

Il prend en charge 2DES, 3DES, AES, CRYPTO1, RSA et certaines variantes propriétaires d'algorithmes standard.

SAM a un concept encore plus intelligent de "compteurs d'opérations", qui aide à faire face à la menace de sécurité d'être volé et utilisé fréquemment: chaque opération diminue un compteur. Les compteurs doivent être périodiquement augmentés par une action initiée par l'hôte, en ligne ou hors ligne. Les "scripts" chiffrés et signés doivent être apportés au SAM d'une certaine manière (par exemple, une clé USB). Les clés peuvent également être versionnées pour prendre en charge le roulement sécurisé des clés pendant la durée de vie du système.

Le SAM lui-même dispose d'une logique de contrôle d'accès, basée sur une cryptographie solide, pour appliquer le modèle de sécurité conçu. Un système de gestion des clés soigneusement planifié et conçu, prend en charge la distribution sécurisée des clés entre les nombreux acteurs du système. Habituellement, le contenu SAM initial est distribué par une personnalisation SAM sécurisée et une livraison contrôlée à un participant désigné (comme un vendeur de distributeurs automatiques), qui possède déjà des clés d'authentification pour obtenir un accès initial aux opérations de carte SAM/DESFire autorisées. L'une des opérations typiques peut être l'échange de clés d'authentification SI ces clés ne sont attribuées qu'à un joueur en particulier.

Autre commentaire sur l'UID, son clonage et ainsi de suite: les produits MIFARE modernes prennent en charge des commandes distinctes pour accéder à un RandomUID, à utiliser dans les protocoles anti-collision, et un UID statique pour identifier la carte (éventuellement également protégé par des protocoles d'authentification et de chiffrement fournissant un "Canal sécurisé"). Cela donne aux concepteurs de systèmes les outils appropriés pour améliorer la protection contre le clonage ou l'émulation UID. Mais de nombreux "concepteurs de sécurité" sont de toute façon assez paresseux et n'utilisent pas ces possibilités même si elles existent…

5
DARc

La plupart des systèmes que je connais utilisent en effet une connexion réseau pour authentifier les cartes via challenge-response.

J'ai vu certains appareils hors ligne qui ne comparent que l'UID de la carte aux valeurs stockées. Ce n'est pas sûr, cependant, car vous pouvez copier ces identifiants en émulant un appareil RFID ou en faisant simplement clignoter une carte spéciale.

Je suis d'accord avec vous concernant les appareils hors ligne prometteurs. J'ai déjà réussi à tromper certains d'entre eux en envoyant simplement un UID connu. Je n'ai même pas eu à approfondir la pile de protocoles car l'UID est déjà transmis à la couche anti-collision.

Si vous souhaitez approfondir ce sujet, je recommanderais un périphérique matériel avec lequel jouer. C'est très amusant de voir ces choses en action :-)

La solution de pointe serait le PROXMARK http://hackerwarehouse.com/product/proxmark3-kit/

Ou une solution à petit budget si vous souhaitez simplement copier certaines cartes http://www.instructables.com/id/RFID-Emulator-How-to-Clone-RFID-Card-Tag-/

J'ai également vu des porte-clés pour moins de 20 $ sur eBay, mais je ne les trouve pas pour le moment.

3
fr00tyl00p