Wo mehr als 20 Millionen Transportkarten in Russland anfällig sind: MIFARE Classic demontieren und entwickeln

    Der MIFARE Classic-Standard für kontaktlose Karten wurde vor mehr als 20 Jahren eingeführt und wird trotz einer Reihe von Schwachstellen, die seitdem festgestellt wurden, immer noch weit verbreitet (insbesondere in Moskau und St. Petersburg). In diesem Artikel erinnern wir uns daran, welche Schwachstellen gefunden wurden, und erklären Ihnen, wie Sie diese beheben können.


    Quelle: Instagram @ pro.ticketing

    Traditionell erinnern wir an solche Artikel, dass Fälschungen und Ticketverkäufe in Russland strafrechtlich verfolgt werden (Art. 327 und 165 des Strafgesetzbuches der Russischen Föderation), und fordern die Leser auf, auf der guten Seite der Macht zu bleiben.

    MIFARE Klassische Struktur


    Der NIFP MIFARE Classics Standard ist eine ganze Kartenfamilie. Es umfasst MIFARE Classic 1K, 4K, EV1 1K, EV1 4K, MIFARE ID, MIFARE Mini. Dieser Standard kann auch von anderen, neueren NXP-Karten (MIFARE Plus, JCOP und anderen) emuliert werden.

    Die Karte mit Lesegerät basiert auf dem Standard ISO 14443A, Frequenz 13,56 MHz.
    MIFARE Classic 1K-Karten bieten einen Speicherbereich mit 64 Bytes. Jeder Sektor ist in 4 Blöcke mit 16 Bytes unterteilt:



    Bei 4K-Karten sind die ersten 2048 Bytes in 32 Sektoren mit 64 Bytes und der Rest in 8 Sektoren mit 256 Bytes (oder 16 Blöcken) organisiert. Der letzte Block jedes Sektors wird als Sektoranhänger bezeichnet. Er enthält die Schlüssel und Parameter für den Zugriff auf den Sektor. Der Nullsegment-Nullblock ist ein spezieller Block, der zum Schreiben gesperrt ist und die Kennung und Informationen des Kartenherstellers enthält. Damit eine Karte über mehrere unterschiedliche Anwendungen verfügen kann, z. B. eine Sozialkarte mit Informationen zu Vorteilen, Fahrkarten für die U-Bahn und den Zug, wird in den verbleibenden Blöcken des Zero-Sektors aufgezeichnet, wie die einzelnen Sektoren verwendet werden - MIFARE Application Directory (MAD) .

    Vor dem Zugriff auf den Sektor zum Lesen oder Schreiben muss die Autorisierung mit einem 6-Byte-Schlüssel durchgeführt werden. Die Autorisierung erfolgt nach einem dreistufigen Protokoll, das dem in Kapitel 5.2.2 beschriebenen entspricht. ISO / IEC 9798-2: 1999. Es verwendet den proprietären Stream-Verschlüsselungsalgorithmus CRYPTO1:



    1. Der Leser sendet eine Autorisierungsanfrage mit der Nummer des Sektors, für den die Autorisierung erfolgt.
    2. Die Karte liest den Zugriffsschlüssel aus dem internen Speicher, generiert eine Zufallssequenz und gibt sie an den Leser zurück.
    3. Der Leser berechnet die Antwort mit dem Sektorzugriffsschlüssel und dem CRYPTO1-Verschlüsselungsalgorithmus und sendet sie mit einer neu generierten Zufallssequenz.
    4. Die Karte prüft die vom Leser berechnete Antwort. Anschließend wird die Antwort auf den Aufruf des Lesegeräts berechnet und zurückgegeben.
    5. Der Leser prüft die Antwort von der Karte.

    Die weitere Übertragung der Inhalte der Sektoren erfolgt verschlüsselt. Wenn Sie eine Genehmigung für einen anderen Sektor benötigen (die sogenannte sekundäre Autorisierung), wird eine erneute Autorisierung durchgeführt. Der Hauptunterschied besteht darin, dass der gesamte Austausch zuerst mit dem alten und dann mit dem neuen Schlüssel verschlüsselt wird.

    Bekannte Schwachstellen in MIFARE Classic


    Kryptographiekarten sind gut erforscht. Die Schwachstelle der Implementierung der Pseudo-Random Number Generator (PRNG) -Karte und die Schwachstelle des CRYPTO1-Algorithmus wurde gefunden. In der Praxis werden diese Sicherheitsanfälligkeiten bei den folgenden Angriffen verwendet:

    1. Dunkle Seite - Der Angriff nutzt die PRNG-Schwachstelle aus. Funktioniert mit MIFARE Classic-Karten der Generation bis EV1 (In EV1 wurde die PRNG-Schwachstelle beseitigt). Um anzugreifen, brauchen Sie nur eine Karte, Sie müssen die Schlüssel nicht kennen.
    2. Nested - Der Angriff nutzt die CRYPTO1-Schwachstelle aus. Der Angriff erfolgt über sekundäre Autorisierungen. Für einen Angriff müssen Sie einen gültigen Kartenschlüssel kennen. In der Praxis werden für den Nullsektor häufig Standardtasten für den Betrieb des MAD verwendet - sie beginnen damit. Funktioniert für beliebige Karten auf CRYPTO1 (MIFARE Classic und dessen Emulation). Der Angriff wurde in dem Artikel "Die Verwundbarkeit der Plantain-Karte: Freiflüge in St. Petersburger Bodentransport" demonstriert.
    3. Angriffsübergabeaustausch - Der Angriff verwendet die Sicherheitsanfälligkeit CRYPTO1. Um anzugreifen, müssen Sie die primäre Autorisierung zwischen Leser und Karte mithören. Dafür benötigen Sie eine spezielle Ausrüstung. Funktioniert für beliebige Karten auf CRYPTO1 (MIFARE Classic und dessen Emulation). Der Angriff wird in dem Artikel "Hacking Transport Cards" Citycard (Nischni Nowgorod) demonstriert.

    All dies ermöglicht Ihnen in der Praxis den Zugriff auf alle Sektoren der Karte, wobei nur die Karte mit den Zugriffstasten initialisiert wird. Dann kann ein Wiederholungsangriff auf den Inhalt der Karte ausgeführt werden oder ein Klon der Karte kann auf speziellen Rohlingen mit einem wiederbeschreibbaren Kartenidentifikator durchgeführt werden.

    Darüber hinaus besteht eine Sicherheitsanfälligkeit in der Access-Key-Infrastruktur. Da die Kryptographie auf CRYPTO1 auf der Seite des Kartenlesers implementiert ist (CRYPTO1 ist nur in Hardware implementiert), folgt daraus, dass die Zugriffsschlüssel:

    • entweder an den Leser übertragen, bevor Sie mit der Karte arbeiten,
    • entweder auf dem Lesegerät selbst im sicheren Hardwarespeicher (z. B. MIFARE SAM ) gespeichert werden ,
    • oder im Nur-Lese-Speicher gespeichert.

    Wenn Sie in speziellen Geräten wie Informationsterminals oder Drehkreuzen sichere Hardware-Schlüsselspeicherung verwenden können, bleibt bei einer Android-Anwendung nur die Möglichkeit, Schlüssel und Speicher im Gerätespeicher zu übertragen. Dadurch ist es möglich, diese Schlüssel abzufangen, indem die Anwendung gehackt oder der Anwendungsverkehr analysiert wird. Was wurde in dem Artikel "Das Studium der Sicherheit der Troika-Karte" demonstriert.

    Methoden zum Umgang mit Schwachstellen MIFARE Classic


    Schlüsseldiversifikation


    Diversifizierung ist der Vorgang des Abrufs von Zugriffsschlüsseln auf einem Hauptschlüssel unter Verwendung eindeutiger Eingabedaten für die Karte. Das Anfordern von Schlüsseln kann in der Anwendungssoftware implementiert werden, die mit Lesern arbeitet, oder mit dem SAM-Modul.

    Zum Beispiel könnte dies so funktionieren:

    1. Als Eingabe für die Diversifizierung wird die Karten-ID und die Sektornummer verwendet, der Schlüssel, zu dem wir gelangen möchten.
    2. Diese Daten werden (im SAM-Modul oder in der Anwendungssoftware) mit dem Hauptschlüssel verschlüsselt, das Ergebnis auf 6 Byte gekürzt und als Zugriffsschlüssel für den entsprechenden Sektor verwendet.



    Infolgedessen erhält jede Karte ihre eigenen Sektorzugriffsschlüssel. Selbst wenn die Schlüssel für bestimmte Karten gefährdet sind, führt dies nicht zum massiven Einsatz dieser Schlüssel. Wir müssen jedoch verstehen, dass Diversifizierung nur eine halbe Sache ist und keinen Schutz vor dem Hacken einzelner Karten und der Möglichkeit bietet, eine Android-Anwendung zu modifizieren, um verschiedene Schlüssel abzufangen und zu verwenden.

    Übergang zur Sicherheitsstufe MIFARE Plus und SL3


    Um die CRYPTO1-Sicherheitslücken zu lösen, wurde die MIFARE Plus-Kartenfamilie entwickelt. Die Karten sind ähnlich aufgebaut wie MIFARE Classic, nur die Kryptographie der Karten wurde aktualisiert. Sie können in zwei Modi arbeiten:

    1. MIFARE Classic-Emulationsmodus (dieser Modus wird Sicherheitsstufe 1 oder SL1 genannt), wodurch er in der vorhandenen Infrastruktur von Kartenlesegeräten verwendet werden kann und keine Änderungen an der mit den Karten kompatiblen Software erforderlich sind.
    2. Sicherheitsstufe 3 (SL3) -Modus, der die Autorisierung der Sektoren und die Verschlüsselung des Datenaustauschs mithilfe des AES-Algorithmus mit optionaler Nachahmung erfordert.

    Diese Karten haben die PRNG-Schwachstelle beseitigt. Daher sind diese Karten im SL1-Modus immer noch anfällig für Angriffe auf CRYPTO1. Im SL3-Modus sind derzeit keine Angriffe bekannt.

    Im Gegensatz zu SL1 können Autorisierung und Verschlüsselung in SL3 in Software implementiert werden. Dank diesem können Sie sich durch den Android-Client vor wichtigen Interceptions schützen. Dazu muss der Server die Authentifizierung und Verschlüsselung durchführen. Dann verlassen die Schlüssel den Server nicht, und der Android-Client übermittelt lediglich Anforderungen und Antworten von der Karte. Dies erfordert, dass die Anwendung mit dem Internet verbunden ist, was unbequem sein kann. Sie können die Karte so konfigurieren, dass der Sektor mit einem Schlüssel gelesen und mit einem anderen Schlüssel beschrieben wird. Der Benutzer kann dann Informationen über die Karte anzeigen, während er offline ist, und kann nur das Guthaben auffüllen oder online Tickets kaufen.

    Vergessen Sie nicht, dass Sie für AES-Schlüssel eine Diversifizierung vornehmen können, indem Sie den Algorithmus der Schlüssel mit einer Länge von 16 Byte ändern.

    Bestehende Transportkarten, die auf MIFARE Plus SL1-Karten basieren, können in zwei Schritten in den SL3-Modus übertragen werden:

    1. Die Infrastruktur von Geräten, die mit Karten arbeiten (Drehkreuze, Fahrkartenstände, Automaten, Terminals), wird für die Verwendung mit MIFARE Plus vorbereitet. Die Software der Lesegeräte bei der Arbeit mit Karten wird finalisiert.
    2. Bereits ausgegebene Transportkarten, die auf MIFARE Plus basieren, werden in den SL3-Modus übertragen. Dies kann bei normalem Gebrauch einer Karte geschehen, z. B. beim Durchfahren eines Drehkreuzes oder beim Anbringen einer Karte an ein Informationsterminal. Das Übertragen der Karte ist für den Passagier unsichtbar und dauert etwa 100 ms.

    Übergang zu MIFARE DESFire


    Die Kryptographie der MIFARE DESFire-Karte ähnelt der von MIFARE Plus. Bevor mit der Anwendung gearbeitet wird, wird eine Autorisierung in drei Schritten durchgeführt, wobei ein Algorithmus zur Auswahl eines Kartenherausgebers verwendet wird: DES, 3DES, AES. Der weitere Austausch mit der Karte erfolgt verschlüsselt mit optionalen Nachahmungen.

    Die Karte unterscheidet sich funktional von MIFARE Classic. Die Speicherkarte ist in einem Dateisystem organisiert. Die Karte kann mehrere Anwendungen enthalten, jede Anwendung kann mehrere Dateien enthalten.



    Die Arbeit mit der Karte beginnt mit der Auswahl der Anwendung anhand ihrer Kennung und der Berechtigung dazu. Als nächstes kommt die Arbeit mit Dateien - Erstellen, Löschen, Lesen, Schreiben. Dateien können unterschiedlichen Typs sein, beispielsweise ein flacher Speicherbereich, eine Geldbörse und eine zyklisch wiederbeschreibbare Datei.

    Die Hauptschwierigkeit der Umstellung besteht darin, dass Sie eine Software aktualisieren müssen, die mit Karten funktioniert. Es ist notwendig, von der Verwendung von Speicher, aufgeteilt in Sektoren, zu Anwendungen und Dateien zu wechseln, und entsprechend die Berechtigungsreihenfolge von Sektoren auf Autorisierung für die Anwendung und / oder Dateien zu ändern. Aus Hardware-Sicht gelten für die Karten dieselben Einschränkungen für die Leserinfrastruktur wie für MIFARE Plus.
    Der Vorteil gegenüber MIFARE Plus ist, dass es auf Basis von MIFARE DESFire einfacher ist, Mehrmarken-Karten zu implementieren - verschiedene Kombinationen von Karten auf einem Träger: Troika-Arrow, Troika-Plantain, Sozialkarten mit der Möglichkeit, Tickets für den Transport aufzuzeichnen. Bei MIFARE Plus wird dies durch die administrative Zuordnung von Sektoren auf der Karte für verschiedene Anwendungen erreicht. Hier kann jedes System mit der Anwendung arbeiten, die es benötigt, und möglicherweise nicht wissen, dass sich auf der Karte einige andere Anwendungen befinden. Der zweite Vorteil besteht darin, dass Sie mit zusätzlichen Dateitypen einige spezielle Szenarien implementieren können, z. B. den Geldbeutel mit einem Zugriffsschlüssel auffüllen und mit einem anderen Zugriffsschlüssel Geld ausgeben oder den Betrag innerhalb des verbrauchten zurückgeben.

    SIM-Karten-Hersteller (STM, Gemalto, G & D, Oberthur) verfügen heute über kommerziell erhältliche SIM-Karten und eingebettete Sicherheitsfunktionen mit MIFARE DESFire-Emulation.

    Die Oyster Card (London Public Transport Transport Card) wurde 2009 an MIFARE DESFire übertragen, seit 2010 werden MIFARE Classic-Karten nicht mehr verwendet. Die SUBE-Transportkarte (Argentinien) befindet sich derzeit im Umstieg auf MIFARE Plus SL3. In den öffentlichen Verkehrsmitteln von Dublin wurden drei Kartentypen verwendet: Luas (Straßenbahnen), Dublin Bus und DART (S-Bahn) - wurden auf Basis der MIFARE Classic gebaut und durch eine Leap-Karte bereits auf der Grundlage der MIFARE DESFire ersetzt. Moderne Transportlösungen werden häufig zunächst auf geschützten Medien aufgebaut.

    Übergang zu anderen Transportkarten (CALYPSO, CIPURSE, FeliCa)


    In Bezug auf die Sicherheit ähneln diese Karten den MIFARE Plus- und DESFire-Karten: AES-basierte Kryptographie, dreistufige Autorisierung, Arbeiten mit Simulatoren, sicherer Hardwarespeicher ( Secure Access Module (SAM)) , eine Reihe von Karten können MIFARE Classic emulieren. Sie arbeiten auch auf Basis der ISO / IEC 14443A-Norm.

    MIFARE - Meister



    ABI Research Q1 2017

    Der Anteil der MIFARE-Karten am Weltverkehr betrug im Jahr 2017 75% und wird nach Prognosen bis 2021 nicht unter 70% fallen.

    Der Anteil von MIFARE an der Welt wird hauptsächlich durch das Wachstum von Other-Karten reduziert, zu denen vor allem Bankkarten (EMV) und Kartenvirtualisierung (Umstellung auf Smartphones) gehören, um die Funktion des Beförderers zu ersetzen. Bankkarten sind besser geschützt als Transportkarten - aber Sie müssen dafür bezahlen. Bankkarten-Service erfordert Online, Lesegeräte kosten aufgrund bankfachlicher Zertifizierungsanforderungen mehr, der Transportunternehmer verliert den Geldfluss durch das Auffüllen seiner Transportkarten. All dies schafft eine gewisse Machtbalance, dank derer beide Standards (MIFARE und EMV) ihre Nischen finden und besetzen.

    Das Volumen der Transportkarten für andere Standards als NXP (Calypso, CIPURSE) beträgt jetzt weniger als 5%. Grundsätzlich konzentrieren sich diese Technologien auf Länder, in denen sich Karten historisch entwickelt haben - Japan und Frankreich - und gehen bisher nicht darüber hinaus. Dies ist verständlich - die Schaffung eines lokalen Ökosystems für die Produktion und Unterstützung von Karten ist nicht immer wirtschaftlich durchführbar und muss durch einen Absatzmarkt unterstützt werden. Es ist möglich, dass Russland einer Reihe von Ländern beitreten wird, die diese Standards unterstützt haben. Dazu benötigen Sie zunächst eine politische Lösung.

    Die folgenden Links enthalten zusätzliche Informationen zu Mifare Classic:


    Fazit


    Fragen beantworten wir Ihnen gerne in den Kommentaren zum Artikel und zu instagram @ pro.ticketing . Im Januar 2019 eröffnete unser Unternehmen eine Reihe von Stellenangeboten für ein neues Projekt im Verkehrsbereich in Moskau, darunter die Möglichkeit, 3-4 Personen zu gewinnen . Die Beschleunigung von Start-ups im Bereich neuer Technologien für die Bezahlung und Validierung von Reisen im öffentlichen Verkehr wurde eröffnet .


    Jetzt auch beliebt: