Der kontaktlose Kartenstandard MIFARE Classic wurde vor mehr als 20 Jahren entwickelt und ist trotz einer Reihe von Sicherheitslücken, die seitdem festgestellt wurden, immer noch weit verbreitet (insbesondere in Moskau und St. Petersburg). In diesem Artikel werden wir uns daran erinnern, welche Schwachstellen gefunden wurden, und beschreiben, wie diese behoben werden können.
Quelle: Instagram @ pro.ticketingTraditionell erinnern wir uns bei solchen Artikeln daran, dass Fälschungen und Ticketverkäufe in Russland gesetzlich verfolgt werden (Artikel 327 und 165 des Strafgesetzbuchs der Russischen Föderation), und fordern die Leser auf, auf der positiven Seite der Truppe zu bleiben.
MIFARE Classic Struktur
Der MIFARE Classic-Standard von NXP ist eine Kartenfamilie. Es enthält MIFARE Classic 1K, 4K, EV1 1K, EV1 4K, MIFARE ID und MIFARE Mini. Dieser Standard kann auch von anderen, neueren NXP-Karten (MIFARE Plus, JCOP und andere) emuliert werden.
Der Kartenbetrieb mit Lesegeräten basiert auf dem Standard ISO 14443A, Frequenz 13,56 MHz.
MIFARE Classic 1K-Karten bieten einen Speicherbereich, der in Sektoren von 64 Byte organisiert ist. Jeder Sektor ist in 4 Blöcke mit einer Größe von 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 Sektor-Trailer bezeichnet und enthält Schlüssel und Zugriffsparameter für den Sektor. Der Nullblock des Nullsektors ist ein spezieller Block, der zum Schreiben gesperrt ist und die Kennung und Informationen des Kartenherstellers enthält. Damit eine Karte mehrere unterschiedliche Anwendungen hat - zum Beispiel für eine soziale Karte mit Informationen zu Leistungen, U-Bahn- und Bahntickets -, wird in den verbleibenden Blöcken des Nullsektors aufgezeichnet, wie jeder Sektor verwendet wird - das
MIFARE Application Directory (MAD) .
Vor dem Zugriff auf den Sektor zum Lesen oder Schreiben muss eine Autorisierung mit einem 6-Byte-Schlüssel durchgeführt werden. Die Autorisierung erfolgt nach einem dreistufigen Protokoll ähnlich dem in Kapitel 5.2.2 beschriebenen. Norm ISO / IEC 9798-2: 1999. Der proprietäre Streaming-Verschlüsselungsalgorithmus CRYPTO1 wird verwendet:

- Der Leser sendet eine Autorisierungsanforderung, die die Nummer des Sektors angibt, für den die Autorisierung erfolgt.
- Die Karte liest den Zugriffsschlüssel aus dem internen Speicher, generiert eine zufällige Sequenz und gibt sie an den Leser zurück.
- Der Leser berechnet die Antwort mithilfe des Sektorzugriffsschlüssels und des CRYPTO1-Verschlüsselungsalgorithmus und sendet sie dann mit einer neuen generierten Zufallssequenz.
- Die Karte überprüft die vom Leser berechnete Antwort. Anschließend wird die Antwort auf den Anruf des Lesers berechnet und zurückgegeben.
- Der Leser überprüft die Antwort von der Karte.
Die weitere Übertragung der Inhalte der Sektoren erfolgt in verschlüsselter Form. Wenn Sie sich bei einem anderen Sektor anmelden müssen (der sogenannten sekundären 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.
MIFARE Classic Bekannte Sicherheitslücken
Die Kartenkryptographie ist gut erforscht. Die Schwachstelle der Implementierung der PRNG-Karte (Pseudo Random Number Generator) und die Schwachstelle des CRYPTO1-Algorithmus werden gefunden. In der Praxis werden diese Sicherheitsanfälligkeiten bei folgenden Angriffen verwendet:
- Dunkle Seite - Der Angriff nutzt die PRCH-Sicherheitslücke aus. Funktioniert mit MIFARE Classic-Karten bis zur Generation EV1 (in EV1 wurde die PRNG-Sicherheitsanfälligkeit bereits entfernt). Für einen Angriff benötigen Sie nur eine Karte, Sie müssen die Schlüssel nicht kennen.
- Verschachtelter Angriff nutzt die CRYPTO1-Sicherheitsanfälligkeit aus. Der Angriff erfolgt auf sekundäre Berechtigungen. Für einen Angriff müssen Sie also einen gültigen Kartenschlüssel kennen. In der Praxis verwenden sie für den Nullsektor häufig Standardschlüssel für die Arbeit mit MAD - sie beginnen damit. Funktioniert für alle Karten auf CRYPTO1 (MIFARE Classic und seine Emulation). Der Angriff wurde im Artikel „Sicherheitslücke der Flohsamenkarte: Sicherheitslücke in der Bodentransportkarte von St. Petersburg“ demonstriert.
- Angriff durch lauschenden Austausch - Der Angriff verwendet die Sicherheitsanfälligkeit CRYPTO1. Um anzugreifen, müssen Sie die primäre Berechtigung zwischen dem Leser und der Karte abhören. Dies erfordert spezielle Ausrüstung. Funktioniert für alle Karten auf CRYPTO1 (MIFARE Classic und seine Emulation). Der Angriff wurde im Artikel „Hacking Citycard-Transportkarten (Nischni Nowgorod)“ demonstriert.
All dies ermöglicht es Ihnen in der Praxis, Zugriffsschlüssel für alle Sektoren der Karte zu erhalten, wobei nur eine Karte zur Verfügung steht, die mit Zugriffsschlüsseln initialisiert wurde. Ferner kann ein Wiederholungsangriff auf den Inhalt der Karte ausgeführt werden oder ein Klon der Karte kann auf speziellen Rohlingen mit einer wiederbeschreibbaren Kartenkennung durchgeführt werden.
Darüber hinaus besteht eine Sicherheitsanfälligkeit in der Access Key-Infrastruktur. Da die Kryptografie auf CRYPTO1 auf der Seite eines Kartenlesers implementiert ist (CRYPTO1 ist nur in Hardware implementiert), folgen die Zugriffsschlüssel:
- entweder auf einen Leser übertragen, bevor mit der Karte gearbeitet wird,
- entweder auf dem Lesegerät selbst in einem sicheren Hardwarespeicher (z. B. MIFARE SAM ) gespeichert,
- entweder im Nur-Lese-Speicher des Lesegeräts gespeichert.
Wenn Sie in speziellen Geräten wie Informationsterminals oder Drehkreuzen einen sicheren Hardware-Schlüsselspeicher verwenden können, besteht bei Android-Anwendungen nur die Möglichkeit, Schlüssel zu übertragen und im Speicher des Geräts zu speichern. Dies ermöglicht das Abfangen dieser Schlüssel durch Hacken der Anwendung oder Analysieren des Anwendungsverkehrs. Was im Artikel „Untersuchung der Sicherheit der Troika-Karte“ demonstriert wurde.
Methoden zur Verwaltung von Sicherheitslücken MIFARE Classic
Zugriff auf Key Diversification
Diversifikation ist der Prozess des Erhaltens von Zugangsschlüsseln durch einen Hauptschlüssel unter Verwendung einiger Eingabedaten, die für die Karte eindeutig sind. Der Prozess zum Abrufen von Schlüsseln kann in einer Anwendungssoftware implementiert werden, die mit Lesegeräten zusammenarbeitet, oder mithilfe eines SAM-Moduls.
Dies könnte beispielsweise folgendermaßen funktionieren:
- Als Eingabe für die Diversifikation werden die Kartenkennung und die Sektornummer verwendet, der Schlüssel, den wir erhalten möchten.
- Diese Daten werden (im SAM-Modul oder in der Anwendungssoftware) mit einem Hauptschlüssel verschlüsselt, das Ergebnis wird auf 6 Byte gekürzt und als Zugriffsschlüssel für den entsprechenden Sektor verwendet.

Infolgedessen erhält jede Karte ihre eindeutigen Sektorzugriffsschlüssel. Selbst wenn die Schlüssel für bestimmte Karten kompromittiert werden, führt dies nicht zu einer massiven Verwendung dieser Schlüssel. Sie müssen jedoch verstehen, dass die Diversifizierung eine halbe Sache ist und einzelne Karten nicht vor dem Brechen und der Möglichkeit schützt, eine Android-Anwendung zu ändern, um diversifizierte Schlüssel abzufangen und zu verwenden.
Übergang zur Sicherheitsstufe MIFARE Plus und SL3
Um Schwachstellen in CRYPTO1 zu beheben, wurde die Kartenfamilie MIFARE Plus entwickelt. Karten in ihrer Struktur ähneln MIFARE Classic, nur die Kryptographie von Karten wird aktualisiert. Sie können in zwei Modi arbeiten:
- MIFARE Classic-Emulationsmodus (dieser Betriebsmodus wird als Sicherheitsstufe 1 oder SL1 bezeichnet), mit dem Sie sie in Ihrer vorhandenen Infrastruktur für Kartenleser verwenden können und keine Änderungen an der Software erforderlich sind, die mit Karten funktioniert.
- SL3-Modus (Security Level 3), der die Autorisierung von Sektoren und die Verschlüsselung des Datenaustauschs mithilfe des AES-Algorithmus mit der optionalen Hinzufügung einer Sicherheitseinfügung erfordert.
Die PRNG-Sicherheitsanfälligkeit wurde auf diesen Karten beseitigt. Daher sind diese Karten im SL1-Modus weiterhin anfällig für Angriffe auf CRYPTO1, und 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 dieser Funktion können Sie sich über den Android-Client vor dem Abfangen von Schlüsseln schützen. Dazu muss der Server eine Autorisierung und Verschlüsselung durchführen. Dann verlassen die Schlüssel den Server nicht und der Android-Client überträgt einfach Anfragen und Antworten von der Karte. Dazu muss die Anwendung eine Verbindung zum Internet herstellen, was unpraktisch sein kann. Sie können die Karte so konfigurieren, dass der Sektor mit einem Schlüssel und der Datensatz mit einem anderen Schlüssel gelesen wird. Dann kann der Benutzer Informationen über die Karte anzeigen, während er offline ist, und er kann den Kontostand auffüllen oder Tickets nur online kaufen.
Vergessen Sie nicht, dass für AES-Schlüssel eine Diversifizierung erfolgen kann, indem der Algorithmus für Schlüssel mit einer Länge von 16 Byte geändert wird.
Bestehende Transportkarten, die auf MIFARE Plus SL1-Karten basieren, können in zwei Schritten in den SL3-Modus geschaltet werden:
- Die Infrastruktur von Geräten, die mit Karten arbeiten (Drehkreuze, Kassen, Verkaufsautomaten, Terminals), wird für die Arbeit mit MIFARE Plus vorbereitet. Die Software für Leser wird in Bezug auf die Arbeit mit Karten fertiggestellt.
- Bereits ausgestellte Transportkarten, die auf MIFARE Plus basieren, werden in den SL3-Modus übertragen. Dies kann während des normalen Gebrauchs der Karte auftreten, z. B. durch ein Drehkreuz oder durch Anbringen einer Karte am Informationsterminal. Der Kartenübertragungsprozess ist für den Passagier unsichtbar und dauert ca. 100 ms.
Wechseln Sie zu MIFARE DESFire
Die Kryptografie der MIFARE DESFire-Karte ähnelt der von MIFARE Plus. Vor der Arbeit mit der Anwendung erfolgt die dreistufige Autorisierung gemäß einem der Algorithmen zur Auswahl des Kartenausstellers: DES, 3DES, AES. Der weitere Austausch mit der Karte erfolgt in verschlüsselter Form mit optionalen Imitationseinsätzen.
Die Karte unterscheidet sich funktional von MIFARE Classic. Der Kartenspeicher ist in einem Dateisystem organisiert. Eine Karte kann mehrere Anwendungen enthalten, wobei jede Anwendung mehrere Dateien enthalten kann.

Die Arbeit mit der Karte beginnt mit der Auswahl des Antrags anhand seiner Kennung und seiner Berechtigung. Als nächstes folgt die Arbeit mit Dateien - Erstellen, Löschen, Lesen, Schreiben. Es gibt verschiedene Arten von Dateien, z. B. einen flachen Speicherbereich, eine Brieftaschenbilanz oder eine zyklisch wiederbeschreibbare Datei.
Die Hauptschwierigkeit des Übergangs besteht darin, dass Sie die Software aktualisieren müssen, die mit Karten funktioniert. Es ist notwendig, von der Verwendung von in Sektoren unterteiltem Speicher zu Anwendungen und Dateien überzugehen und dementsprechend die Autorisierungsreihenfolge von Sektoren zu Autorisierung für die Anwendung und / oder Dateien zu ändern. In Bezug auf die Hardware unterliegen Karten der gleichen Einschränkung für die Infrastruktur der Leser wie MIFARE Plus.
Der Vorteil gegenüber MIFARE Plus besteht darin, dass es einfacher ist, Multi-Branding-Karten basierend auf MIFARE DESFire zu implementieren - verschiedene Kartenkombinationen auf einem Medium: Troika-Strelka, Troika-Podorozhnik, soziale Karten 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 benötigten Anwendung arbeiten und weiß möglicherweise nicht, dass sich andere Anwendungen auf der Karte befinden. Der zweite Vorteil besteht darin, dass Sie mit zusätzlichen Dateitypen einige spezielle Szenarien implementieren können, z. B. um das Brieftaschenguthaben mit einem Zugriffsschlüssel aufzufüllen und Geld vom Guthaben für das andere auszugeben oder den ausgegebenen Betrag zurückzuerstatten.
Heute verfügen SIM-Kartenhersteller (STM, Gemalto, G & D, Oberthur) über handelsübliche SIM-Karten und integrierte Sicherheitsfunktionen mit MIFARE DESFire-Emulation.
Die Oyster-Karte (London Public Transport Transport Card) wurde 2009 an MIFARE DESFire übertragen, seit 2010 werden keine MIFARE Classic-Karten mehr verwendet. Die SUBE-Transportkarte (Argentinien) wird derzeit auf MIFARE Plus SL3 umgestellt. In Dublins öffentlichen Verkehrsmitteln wurden drei Arten von Karten: Luas (Straßenbahn), Dublin Bus und DART (S-Bahn) auf Basis von MIFARE Classic gebaut und bereits auf Basis von MIFARE DESFire durch eine Leap-Karte ersetzt. Moderne Transportlösungen basieren meist zunächst auf sicheren Medien.
Umstellung auf andere Transportkarten (CALYPSO, CIPURSE, FeliCa)
Unter Sicherheitsgesichtspunkten ähneln diese Karten MIFARE Plus- und DESFire-Karten - AES-basierte Kryptografie, dreistufige Autorisierung, Arbeiten mit Simulationen, sicherer Hardwarespeicher -
Secure Access Module (SAM) , eine Reihe von Karten können MIFARE Classic emulieren. Sie arbeiten auch auf der Grundlage der Norm ISO / IEC 14443A.
MIFARE - Champion
ABI Research Q1 2017Der Anteil der MIFARE-Karten am weltweiten Transport lag 2017 bei 75% und wird laut Prognosen bis 2021 nicht unter 70% fallen.
Der Anteil von MIFARE an der Welt wird hauptsächlich aufgrund des Wachstums anderer Karten reduziert, zu denen hauptsächlich Bankkarten (EMV) und Kartenvirtualisierung (Umstellung auf Smartphones) gehören, um die Ticketanbieterfunktion zu ersetzen. Bankkarten sind besser geschützt als Transportkarten - aber Sie müssen dafür bezahlen. Das Servieren von Bankkarten erfordert Online, Leser sind aufgrund der Anforderungen an die Bankzertifizierung teurer, der Transportunternehmer verliert den Cashflow durch das Auffüllen seiner Transportkarten. All dies schafft ein gewisses Kräfteverhältnis, dank dessen beide Standards (MIFARE und EMV) ihre Nischen finden und besetzen.
Das Volumen der Transportkarten auf anderen Standards als NXP (Calypso, CIPURSE) beträgt heute weniger als 5%. Grundsätzlich konzentrieren sich diese Technologien auf Länder, in denen sich Karten historisch entwickelt haben - Japan und Frankreich - und die bisher nicht überschritten wurden. Dies ist verständlich - die Schaffung eines lokalen Ökosystems für die Herstellung und Unterstützung von Karten ist nicht immer wirtschaftlich gerechtfertigt und sollte vom Markt unterstützt werden. Es ist möglich, dass Russland einer Reihe von Ländern beitritt, die diese Standards unterstützt haben. Hierzu ist zunächst eine politische Lösung erforderlich.
Klicken Sie auf die folgenden Links, um weitere Informationen zu Mifare Classic zu erhalten:
Fazit
Gerne beantworten wir Fragen in den Kommentaren zum Artikel und auf
instagram @ pro.ticketing . Im Januar 2019 eröffnete unser Unternehmen eine Reihe von
Stellenangeboten für ein neues Projekt im Transportbereich in Moskau, einschließlich der Möglichkeit,
Teams mit 3-4 Personen anzuziehen. Ein
Beschleuniger von Startups im Bereich neuer Technologien für die Bezahlung und Validierung von Reisen im öffentlichen Verkehr wurde eröffnet.