ID TECH
Kontakt
Alle technischen Beiträge

Technischer Beitrag

So dekodieren Sie MagStripe-Daten

Bis vor Kurzem war das Auslesen von Kreditkartendaten so einfach wie das Durchziehen einer Karte durch ein Lesegerät (beispielsweise eines der zahlreichen Lesegeräte von ID TECH) und das Weiterleiten der Spurdaten an eine Virtual-Terminal-App (oder andere Anwendungen), die diese direkt aus dem Lesegerät übernahm. Die entsprechenden Daten erschienen dabei schlicht als unverschlüsselte Tastatureingaben auf dem Bildschirm.

Das waren noch Zeiten!

Doch die Zeiten haben sich geändert. Heutige MagStripe-Lesegeräte geben Daten in der Regel verschlüsselt aus – über USB (häufig im HID-Modus statt im Tastaturbetrieb). Zudem müssen die meisten Kartenlesegeräte heute neben Magnetstreifenkarten auch Chipkarten verarbeiten. Chipkartendaten liegen in Form von TLVs (Tags, Längen, Werte) vor und unterscheiden sich erheblich von den „schlichten MagStripe-Daten" früherer Jahre. Außerdem sind sie ausnahmslos verschlüsselt.

In aktuellen Beiträgenhabe ich gezeigt, wie Kreditkartendaten mithilfe der branchenüblichen TDES- und AES-Verschlüsselungsalgorithmen in Verbindung mit dem standardisierten (ANSI X9.24) DUKPT-Schlüsselableitungsverfahren entschlüsselt werden können. Dabei haben wir jedoch nicht besprochen, wie dekodierte MagStripe-Daten überhaupt erst gewonnen werden. Wie sehen „Kreditkarten-MagStripe-Daten" heute aus? Wie lassen sie sich abrufen und dekodieren? Und woran erkennt man, welche Teile verschlüsselt sind?

Kartenlesegeräte geben Daten heute in der Regel verschlüsselt aus – über USB (häufig im HID-Modus statt im Tastaturbetrieb). Zudem müssen die meisten Kartenlesegeräte heute neben Magnetstreifenkarten auch Chipkarten verarbeiten.

Die Antwort auf die erste Frage – wie sehen MagStripe-Daten aus? – hängt stark vom eingesetzten Kartenlesegerät (Hersteller und Modell) sowie davon ab, ob die jeweilige Transaktion per Magnetstreifen, Chip (Kontakt-EMV) oder kontaktlos/NFC durchgeführt wurde. Im Allgemeinen geht es dabei um weit mehr als das bloße Auslesen roher Spurdaten. Es werden auch eine KSN (Key Serial Number) für die Entschlüsselung sowie verschiedene transaktionsbezogene Metadaten erfasst. Natürlich kann es sein, dass Sie lediglich die rohen Track-2-Daten benötigen – doch auf dem Weg dorthin müssen Sie sich zwangsläufig auch mit einer Vielzahl anderer Daten auseinandersetzen.

Sehen wir uns ein reales Beispiel anhand einer Starbucks-Geschenkkarte an, die mir ein schuldgeplagter Barista als Wiedergutmachung überreichte, nachdem der Mesopotamian Kumquat-Absinthe Latte unerwartet ausverkauft war. Wenn wir die Starbucks-Karte durch das Augusta-Kartenlesegerät von ID TECH im Tastaturbetrieb ziehen – bei geöffnetem Notepad-Fenster und aktivem Textcursor –, erscheinen in Notepad folgende Daten:

02ED01801F4C2800839B%*6010********8765^0254/SERVICERECOVERYUSD^*******************************?*;6010********8765=********************?*95025C86987E4F7DD07D58730EB79FDFB90AB7F23E6ECA6F4F04A67BF511EE13F950903BDE77624680C460E9C36C4F9136256BB93A38CB98F95626DCFAF9335CE0A213074CC1CD84CC911398E06756C464AB036B694228ADA7EC018F495A013AF8A04C976288FE2F80271E6E53D987DE19ACA2707BFF2C78000000000000000000000000000000000000000000000000000000000000000000000000000000003631335435333536313862994900750002A00308108E03

Dies ist weit mehr als nur „rohe Trackdaten". Sie können die maskierten Trackdaten erkennen (die mit B% beginnen, viele Sternchen enthalten und schließlich mit ?* enden), doch verbergen diese die primäre Kontonummer (PAN), die tatsächlich verschlüsselt ist. Der Großteil der hier sichtbaren Daten ist eine hexadezimale Darstellung der Binärdaten, die aus dem Lesegerät ausgegeben werden.

Die Analyse dieses umfangreichen Datenblocks ist unkompliziert, wenn man weiß wie. Der schnellste Weg zur Dekodierung ist, die Daten durch ID TECH's kostenloses Parsomatic -Tool zu verarbeiten – ein HTML-Formular, das alle Datenbestandteile übersichtlich darstellt.

Jedes Kartenlesegerät verfügt über eine eigene, herstellerspezifische Methode zur Darstellung von Kartendaten. ID TECH stellt Magnetstreifendaten in einem Format dar, das als Enhanced Encrypted MSR Format bekannt ist. Dieses Format umfasst 26 Datenfelder, die alle detailliert im Dokument P/N 80000502-001 beschrieben sind, ID TECH Encrypted Data Output.

Um einen Eindruck davon zu geben, welche Informationen auf der Karte gespeichert sind, betrachten wir die ersten 5 Bytes der Daten (02 ED 01 80 1F). Gemäß Parsomaticenthalten diese 5 Bytes folgende Informationen:

Das erste Byte (02) ist schlicht STX, das „Start"-Byte. Die nächsten beiden Bytes (ED 01) geben die Länge des gesamten Daten-Payloads in Hex an (Little-Endian: ED 01 entspricht tatsächlich 0x01ED bzw. 493 Bytes Daten). Der Card Encode Type ist 0x80, was (vereinfacht gesagt) bedeutet, dass unser Lesegerät diese Karte als Finanzkarte einstuft. Track Status (Wert: 0x1F) ist ein Statusbyte mit Acht-Bit-Flags, das angibt, welche Tracks auf dem Magnetstreifen vorhanden waren (es können bis zu 3 sein) und welche erfolgreich gelesen wurden. In diesem Fall wurden alle 3 physischen Tracks erfolgreich gelesen, jedoch sind Daten nur auf Track 1 und Track 2 vorhanden.

Werfen wir nun einen kurzen Blick auf die nächsten 5 Bytes. Gemäß Parsomaticlauten diese Bytes und ihre Bedeutungen wie folgt:

Bei einer Finanzkarte kann Track 1 bis zu 79 Bytes lang sein, Track 2 bis zu 40 Bytes und Track 3 bis zu 107 Bytes. In diesem Fall liegen 76 Bytes (hex 0x4C) Daten für Track 1 und 40 Bytes (0x28) für Track 2 vor. (Track 3 enthielt null Bytes.) Diese Längenangaben sind wichtig – nicht nur für die Analyse der maskierten Trackdaten, sondern auch zur Bestimmung der Längen der verschlüsselten Track-Versionen. Die verschlüsselte Länge unterscheidet sich von der tatsächlichen nativen Tracklänge, da Trackdaten auf eine Länge aufgefüllt werden müssen, die ein Vielfaches von 8 für TDES-Verschlüsselung bzw. ein Vielfaches von 16 für AES ergibt.

Woran erkennt man, ob die Daten TDES- oder AES-verschlüsselt sind? Diese Information ist in Bit 4 des Statusbytes „Clear/Mask Data Sent" enthalten (wie oben dargestellt). Es gibt außerdem ein Statusbyte „Encrypted/Hash Data Sent" (ebenfalls oben gezeigt), das angibt, ob verschlüsselte Track-Daten (und Validierungs-Hashes) vorhanden sind und ob ein KSN existiert.

Nun folgen die maskierten Daten von Track 1 und Track 2, anschließend die verschlüsselten Versionen davon, gefolgt von einigen Hash-Daten (in diesem Fall lauter Nullen) sowie weiteren Daten (unten beschrieben). Zu beachten ist, dass Parsomatic die ASCII-Track-Daten nachfolgend in eine Hex-Darstellung umgewandelt hat:

Beachten Sie, dass Parsomatic neben verschlüsselten Daten einen Link „Decrypt this data" einfügt (siehe oben). Ein Klick auf diesen Link führt Sie zum Encrypt/Decrypt Toolvon ID TECH, wo die betreffenden Daten in entschlüsselter Form eingesehen werden können.

Die abschließenden Datenfelder umfassen die Seriennummer des Lesegeräts, die Key Serial Number (KSN), einen LRC, eine Prüfsumme sowie ETX (End of Transmission). Der LRC ist ein einzelner Bytewert, der das XOR (exklusives ODER) aller Nutzdatenbytes darstellt, während die Prüfsumme eine arithmetische Ein-Byte-Summe aller Bytes im Nutzdatenbereich ist (ohne Überlaufberücksichtigung). Mithilfe von LRC und Prüfsumme lässt sich die Integrität der Nutzdaten überprüfen. (Sie sind etwas einfacher und schneller zu berechnen als ein vollwertiger CRC.)

Fazit

Wie Sie sehen, steckt hinter Magnetstreifendaten weit mehr als nur „Track-Daten". Dabei haben wir die Bedeutung einiger Datenfelder noch gar nicht angesprochen (vielleicht können wir das in einem zukünftigen Beitrag nachholen). Ebenso wenig haben wir uns mit EMV-Daten befasst – was definitiv einen eigenen Beitrag erfordert. Dennoch sollte Ihnen dieser Überblick den Einstieg erleichtern, wenn Sie Daten aus einem ID TECH-Kreditkartenlesegerät entschlüsseln möchten.

Weitere Informationen finden Sie – wie bereits erwähnt – in unserer technischen Dokumentation zum Enhanced Encrypted MSR-Datenformat: ID TECH Encrypted Data Output. ODER klicken Sie auf den nachstehenden Link, um den ersten Schritt zu reibungslosen Zahlungen zu machen!

Jetzt starten