Étude sur la sécurité des paiements de stationnement

Dans cet article, je veux parler de la sécurité des systèmes de paiement de stationnement automatisés. À peu près comme sur cette photo.

image

A l'entrée, un ticket de parking est émis, à la sortie il est repoussé dans le terminal. Fondamentalement, il existe deux types de coupons: papier avec code à barres / code QR et cartes sans contact en plastique, ces dernières seront discutées.

Comme d'habitude, je souhaite tout de suite faire une réserve pour que toutes les informations soient présentées à titre informatif uniquement et ne visent pas à parrainer le terrorisme et à établir une domination mondiale.

Une fois, en utilisant le parking d'un centre commercial métropolitain, j'ai été inspiré par des articles sur Troïka et Podorozhnik , ainsi que par pure curiosité, j'ai lancé l'application MifareClassicTool sur mon téléphone compatible NFC et j'ai essayé de lire le contenu de la carte. Il serait logique de supposer que la vérification du paiement est effectuée en ligne et que la carte est utilisée uniquement comme ID utilisateur. Dans ce cas, il n'y aurait rien à faire sans accès au réseau interne et cet article n'existerait tout simplement pas, mais la réalité s'est avérée plus intéressante. Mes yeux ont vu quelque chose comme ça:


La capture d'écran est légèrement réduite pour la commodité des lecteurs. La carte est un Mifare Classic 1K, divisé en 16 secteurs. Dans les secteurs 1 à 9, certaines informations sont enregistrées et leurs clés sont inconnues. Les autres sont vides et utilisent les clés par défaut. Très curieux. Heureusement pour nous, le protocole de chiffrement crypto1 propriétaire utilisé dans ces cartes est bien compris et présente des vulnérabilités.

Nous avons besoin d'un ordinateur portable, d'un lecteur de cartes sans contact tel que l'ACR122U et de l'application mfoc , qui vous permet de restaurer tous les autres avec une seule clé de n'importe quel secteur dans un délai raisonnable. Nous allons sauter l'étape d'assemblage et de configuration de ce truc, allons droit au but. Nous avons mis la carte sur le lecteur, exécuté le programme, laissé l'ordinateur portable dans la voiture et fait les courses, car pour cela nous sommes venus ici. Une heure s'est écoulée, toutes les clés ont été restaurées, nous essayons de relire la carte.


C'est devenu encore plus curieux, mais ce qui est écrit ici n'est pas très clair. Nous quittons le parking et rappelons immédiatement. Nous avons déjà les clés et vous pouvez immédiatement passer en revue la comparaison des décharges.


Il n'y a pas beaucoup de différences, mais à quoi ressemblent-elles? Oui, c'est l'heure d'entrée au format BCD, 11:25:47. À côté se trouve la date du 11/12/2018. Nous changeons la date il y a quelques jours, allons au terminal de paiement et il rapporte volontiers que nous lui devons beaucoup d'argent. Nous modifions la date, réglons l'heure actuelle et quittons le parking gratuitement.

En principe, cela pourrait être arrêté, mais l'amour de la recherche l'emporte sur la paresse, nous allons dans un autre centre commercial et y répétons l'opération. Les clés sont différentes, mais le format des données est similaire. Après avoir visité plusieurs centres commerciaux et une station et avoir mené plusieurs expériences, il devient clair ce qui est quoi. Dans le premier secteur, la période de validité de la carte est stockée, dans notre exemple c'est jusqu'au 31/12/2050. Dans le second - l'heure d'entrée, l'heure et le montant du paiement, l'heure jusqu'à laquelle le départ est autorisé. Les blocs du troisième secteur et des suivants doivent être lus comme 4 nombres en petit-boutien. Essayons de décrypter les données de notre exemple.


Les blocs avec une description des tarifs diffèrent entre les parkings, le premier bloc du secteur 3 est utilisé comme en-tête, mais son format n'était pas connu, la documentation n'a pas pu être trouvée dans le domaine public, et ce n'est pas si important.

Probablement, ici, il est nécessaire de tirer quelques conclusions. Les développeurs de systèmes pourraient utiliser la vérification en ligne, pourraient utiliser des types de cartes Desfire / Ultralight C qui n'ont pas de vulnérabilités connues, mais s'appuient sur la sécurité d'une technologie obsolète. En revanche, ce n'est pas une carte bancaire et la perte ici n'est pas importante, même si les chauffeurs de taxi de la gare seront ravis.

Source: https://habr.com/ru/post/fr431570/


All Articles