Extratouren: Magnetkarten lesen Der Geheimzahl auf der Spur Welche Daten verbergen sich auf dem schwarzen Magnetstreifen, den man auf Scheckkarten findet? Ein Lesegerät, ein C 64 und das geeignete Programm - und Sie finden es heraus. Ein Bastler berichsiert, welche Daten hier gespeichert sind? Die Firma DDM in Rottweil, spezialisiert auf die Herstellung von Lesegeräten für Loch- und Magnetkarten und Ausweisen, bietet ein Lesegerät speziell für Magnetkarten an. Kunden sind normalerweise große Firmen wie Banken, da verwundert es nicht, daß ein Lesegerät deutlich über 1000 Mark kostet. Wir haben aus einem alten Kontoauszug-Drucker einen solchen Leser ausgebaut und an den C 64 angeschlossen. Nikolaus Heusler Das Lesegerät ist etwa so groß wie das Netzteil des C 128. Seine Mechanik besteht aus einem Führungsschacht für die Karte, welche von zwei gekoppelten Gummirollen bewegt wird. Die Rollen sind an einen 12 Volt-Gleichstrommotor angeschlossen. Weitere Rollen und Lager sorgen für eine gleichmäßige schlupf- und erschütterungsfreie Führung der Karte. Zwei Mikroschalter signalisieren, daß die Karte eingelegt ist bzw. das hintere Ende des Lesers erreicht hat. Der Magnetstreifen wird an einem Lesekopf vorbeigeführt, der die Informationen abtastet. An beiden Seiten des Schachtes befinden sich Schlitze, durch den vorderen wird die Karte eingeführt und im Normalfall wieder zurückgegeben, den hinteren Schlitz wird man etwa in einem Geldautomaten zum »Einbehalten« einer als gefälscht erkannten Karte verwenden (diese Funktion nennt sich »Durchzug«). Der Motor wird von einer aus zwölf Transistoren aufgebauten Motorsteuerung kontrolliert, diese veranlaßt mikroschaltergesteuert das automatische Einziehen der Karte beim Einlegen sowie ggf. die Rückgabe nach dem Lesevorgang. Auf der zweiten Platine findet sich die Lese-Elektronik (vgl. Blockschaltbild), sie besteht im Wesentlichen aus einem Verstärker (Operationsverstärker RC4558) für die HF-Signale, die der Lesekopf liefert, einigen Filtern (RC-Glieder, Schmitt-Trigger 74LS14) sowie dem F2F-Decoder (siehe Bild), der aus den gelesenen Signalen ein Takt- und ein Datensignal für die serielle Übermittlung erzeugt. Die Daten vom Kopf sind impulslängen-moduliert, das heißt, je nachdem, ob die Frequenz, die der Kopf liefert, kurz oder lang andauert, wurde ein 1- oder 0-Bit gelesen. Dieses Prinzip kennt man von der Funk-Uhrzeitübertragung des DCF77-Senders. Der F2F-Decoder, er besteht aus einem Monoflop 74121 und zwei D-Flipflops 7474, hat die Aufgabe, daraus ein Takt- und ein Datensignal zu erzeugen. Das Lesegerät ist elektronisch über eine 20 polige Buchse zugänglich, hier werden die drei Betriebsspannungen (12 Volt für den Motor, +- 5 Volt für die Lese-Elektronik, Masse) sowie die acht logischen Signale zur Verfügung gestellt. Normalerweise erfolgt hier der Anschluß an den im Kontoauszugdrucker eingebauten Computer. Zur Fernbedienung des Lesers wurde ein »Exercicer« gebaut, im Prinzip ein Netzgerät, das die drei Betriebsspannungen zur Verfügung stellt sowie ein Interface, das die Signale zum Userport des C 64 weiterleitet. Besondere Anforderungen wurden wegen des hohen Motor-Stromverbrauchs an die Trafos und die Spannungsregler gestellt (siehe Blockschaltbild des Exercicers). Vier Steuerleitungen kontrollieren den Motor: Ein Low-Signal an »Motor Stop« stoppt den Motor in jedem Fall (Nothalt), ein Low an der Leitung »Eingabe Sperren« bringt den Motor zum Rückwärtslauf, eine Karte wird sofort ausgeworfen bzw. kann nicht eingeführt werden. Die Leitung »Ausgabe Sperren« ist ebenfalls low-aktiv, die Karte wird bis zum Endschalter in den Leser eingezogen und dort festgehalten. »Durchzug«: Ein Low an diesem Eingang zieht die Karte ganz ein und legt sie rückwärts ab. Hierbei handelt es sich um die schon erwähnte Einbehaltung falscher Karten. Wir können mit dem C 64 jetzt das Lesegerät bedienen. Über vier Userport-Ausgänge schalten wir die erwähnten vier Motorleitungen, vier Eingänge des Computers empfangen die Signale der beiden Mikroschalter, die jedoch auch schon in der Motorsteuerung ausgewertet werden, und die wichtigen Lesesignale. Die auf der Karte gespeicherte Information ist nach DIN 9781 (ISO 3554) genormt und für alle Karten vom Format her gleich, ob EC-Karte, Kundenkarte, Ausweis oder Casinokarte. Wir brauchen in einem Maschinenprogramm jetzt nur noch alle vier Motor-Steuerleitungen auf High zu setzen (dann wird die Karte beim Einlegen automatisch bis zum Ende des Lesers eingezogen und danach automatisch vorne zurückgegeben) und - nachdem der vordere Mikroschalter das Einlegen einer Karte gemeldet hat - die Leitungen DATA und CLOCK abfragen. In der Praxis sieht das so aus: Der Computer wartet, bis die Low-aktive Clock-Leitung auf Null gesetzt wird. Dann steht ein gültiges Datum an der Data-Leitung an, das wir in den Speicher übernehmen. Jetzt warten wir, bis Clock wieder high wird, und machen dann so lange weiter, bis der hintere Mikroschalter das Ende der Informationen signalisiert. Im Speicher stehen bei einer genormten Karte jetzt maximal 232 Bits, die wir nach DIN 9781 weiter auswerten. Auf einer Magnetkarte befinden sich drei parallele Spuren, von denen unser Gerät nur die mittlere liest. Es handelt sich um die am häufigsten genutzte Spur mit dem Namen »ABA«, mit einer Dichte von 75 bit pro Zoll werden hier 40 numerische Zeichen gespeichert (je fünf Bit pro Zeichen inklusive einem Paritätsbit). Erstaunlich ist, daß nur 40 Zeichen auf einer Magnetkarte gespeichert sind! Ein kleines Problem ist noch, daß wir nicht genau wissen, an welcher Stelle im Speicher die Daten der Karte beginnen, da aufgrund von Störungen beim Motoranlauf manchmal die ersten Clock-Signale zu früh kommen. Dazu durchsuchen wir ab dem zehnten Bit (Erfahrungswert) die gelesenen Daten im Speicher nach dem ersten gesetzten Bit, dieses markiert den Anfang der Daten. Die folgenden Bits werden in Fünfergruppen unterteilt, wobei die ersten vier Bit die Information darstellen, das fünfte Bit die Parität. Das Paritätsbit dient zur Erkennung von Fehlern: Es wird beim Beschreiben der Karte so gesetzt oder gelöscht, daß in der Fünfergruppe eine ungerade Anzahl gesetzter Bits vorhanden ist. Man spricht von »ungerader Parität«. Bei der Auswertung der gelesenen Daten zählen wir die gesetzten Bit in jeder Fünfergruppe. Sind nicht ein, drei oder alle fünf Bit gesetzt, sondern eine gerade Anzahl, haben wir die Karte falsch gelesen und können entsprechend eine Fehlermeldung ausgeben. Ansonsten wird den ersten vier Bit anhand einer Tabelle ein Hexadezimalzeichen von $0 bis $F (15) zugeordnet und dieses am Bildschirm ausgegeben (eine »Ziffer«). Auf der Karte sind die Bits in einer Fünfergruppe in der folgenden Reihenfolge gespeichert: LSB (Wert 1), Wert 2, Wert 4, MSB (Wert 8), Parität. Auf diese Weise werden alle 40 Ziffern, die sich nach DIN 9781 auf einer solchen Karte befinden können, angezeigt. Es soll noch einmal die Besonderheit dieser Anordnung betont werden: Damit lassen sich alle Magnetkarten auslesen und decodieren, nicht nur EC-Karten, Kunden- oder Kreditkarten. Jetzt ist die Arbeit des Computers erledigt, wir können uns an die Auswertung des Zahlensalates machen. Das fällt überraschenderweise nicht schwer, wenn man die Bildschirmzeile mit den auf der Karte abgedruckten Informationen wie Kontonummer, Bankleitzahl, Gültigkeitszeitraum vergleicht. Bei unseren Experimenten konnten wir folgendes herausfinden: Jede Karte beginnt mit dem Wert $B, er zeigt wohl den Beginn der Daten an. Danach folgen die Ziffern $6 für eine Eurocheque-Karte (könnte eine Kennung des Herkunftslandes sein, wir konnten leider keine ausländischen Karten auftreiben), $5 für eine Bank-Kundenkarte und die Eurocards, $0 für eine Kaufhaus-Kundenkarte, $3 für die Karte einer bekannten Autovermietung und eine American Express-Karte. Es ist wahrscheinlich, daß es hier noch weitere Möglichkeiten gibt. Bei der Kaufhaus-Kundenkarte folgt jetzt einfach die 12-stellige Kundennummer, die auch auf der Karte aufgedruckt ist. Die restlichen Ziffen sind mit Nullen aufgefüllt. Bei den EC-Karten beginnen die Daten mit der leicht verschlüsselten Bankleitzahl, danach folgen unverschlüsselt die Kontonummer (von links mit Nullen auf zehn Stellen aufgefüllt) mit Prüfziffer und der Gültigkeitszeitraum (z.B. 9212 für Dezember 1992). Danach folgen 13 Ziffern, über deren Bedeutung wir bisher nichts aussagen können. Offenbar ist hier die Kartennummer gespeichert, oder zumindest teilweise der Name des Kontoinhabers. Die berüchtigte Geheimzahl (PIN-Code) indes kann sich auf der Spur 2 nicht befinden. Grund: Bei zwei untersuchten EC-Karten zum selben Konto, die durchaus verschiedene PIN-Codes haben, trat nur bei zwei der 40 Ziffern ein Unterschied auf: Die Kartennummer. Wir vermuten daher, daß der PIN-Code, wenn überhaupt, auf der von uns nicht gelesenen Spur 1 oder 3 der Karte vermerkt ist. Viel wahrscheinlicher ist aber, daß etwa ein Geldautomat online an ein Rechenzentrum angeschlossen ist und von dort die Geheimzahl zu dieser Karte abruft. Für Hinweise aus unterrichteten Kreisen wäre der Autor nicht undankbar! Ähnlich ist das Format bei den Kundenkarten der Banken. Hier steht die Bankleitzahl unverschlüsselt am Beginn der Daten, danach die Kontonummer, gefolgt vom Gültigkeitszeitraum und den zehn Bytes, die uns bisher noch Rätsel aufgeben. Bei der Eurocard ist nur die 16-stellige Kartennummer gespeichert, dahinter folgt der Gültigkeitszeitraum. Als kleines Beispiel veröffentlichen wir hier die Daten einer Beispiel-Kundenkarte (Kontonummer 9123456780, Bankleitzahl 70070010, Karte gültig bis 12/94): B5970070010D91234567808D28094127900000F1 In diesem Format zeigt unser Programm die Daten auf dem Bildschirm an. Die folgende Zeile gehört zu einer Eurocheque-Karte (gültig bis 12/92) für exakt das selbe Konto: B6722722091234567802D92121010079010000F0 Wie man sieht, stimmt zwar die Kontonummer genau überein, jedoch wurde die Bankleitzahl 70070010 hier zu 7227220 codiert. Gemeinsam für alle Karten: Die einzelnen Datenfelder, zum Beispiel Kontonummer, Bankleitzahl sind durch das Zeichen $D voneinander getrennt. Am Ende der gespeicherten Daten folgt immer ein $F, dahinter eine Prüfsumme über den gesamten Karteninhalt (das LRC-Zeichen, »longitudinal redundancy check«). Würde man den Algorithmus kennen, könnte man hiermit die gelesenen Daten nochmals überprüfen. Interessant: Geldautomaten schreiben auch auf die Karten. Bei jeder Abhebung wird ein Vermerk auf die Karte geschrieben. Außerdem ist ein Versuchszähler vorhanden, der angibt, wie oft eine falsche Geheimzahl eingetippt wurde. Bei drei Fehlversuchen behält das Gerät die Karte ein (»Durchzug«). Und trotzdem ändert sich bei der C 64-Bildschirmanzeige, also auf Spur 2 des Magnetstreifens weder nach einer Abhebung noch nach Fehleingabe der Geheimzahl, gefolgt vom Einbehalten der Karte und Verhandlungen mit der Bank, etwas! Damit steht fest: Es muß auch mindestens eine der beiden Spuren 1 und 3 verwendet werden. Aus Platzgründen können wir das Thema hier leider nicht weiter vertiefen. Für den Fall, daß Sie noch an weiteren Informationen interessiert sind, steht Ihnen der Autor über die Redaktion zur Verfügung (bitte Rückporto beilegen!). Magnetkartenleser: Technische Daten Typ-Nr.: 831 0 21110 Preis zzgl. MWSt: DM 1.325,00 Kopfposition rechts unten Spurlage: Spur 2 (am gebräuchlichsten) Spur: (ABA) 5 Bit/Zeichen (inkl. Parity) 40 numerische Zeichen, insgesamt ca. 230 Bit Funktion: nur lesen Bitdichte: 75 BPI Version: Durchzug Abmessungen BxHxT: 100x96x126 mm Normierung: Kreditkarte »ID1« DIN 9781 (ISO 3554) Spannungsversorgung: ■ Motor: +12 V DC ±10% 1 A ■ Leseelektronik: + 5 V DC ± 5% 300 mA - 5 V DC ± 5% 100 mA Schreibverfahren: F2F-Decodierung (two frequency recording mode) Schreibfrequenz: 236 Hz Bitintervall: 4,23 ms +31% -25% Kartengeschwindigkeit: 80 mm/sec ±6% Kartendurchlauf: ca. 2 sec Ein/Ausgangssignale: TTL-Pegel Kartenabmessung: 54,03 ±0,1 x 85,72 -0,25 x 0,76 ± 0,08 mm Dicke Ausgangsstecker: Stiftleiste 16 polig (65483-69) Informationen: ddm GmbH, Heerstraße 44, 7210 Rottweil Zusatzinformationen zum Magnetkartenleser: ■ DIN-Normenverzeichnis Aufgeführt sind Normvorschriften im Zusammenhang mit Magnetkarten im Format ID1. Zur Nutzung sind die Urheberhinweise des DIN, Berlin zu beachten! Die kompletten Normungstexte findet man beispielsweise in Universitäts-Bibliotheken. BS 5374:1989 Spezifikation für Codes für Ländernamen BS 7106 Parts 2,4,5 Kennkarten; Aufzeichnungstechnik Magnetspur DIN 3166 ≡ ISO 3166 Codes für Ländernamen ISO 4217 Codes für Währungsbezeichnungen ISO 9564 PIN-Ausgabe, Verwaltung, Sicherheitsmerkmale DIN 9752 Magnetkarten: Begriffe, Einteilung DIN 9781 ID-Karten aus Kunststoff, Anforderungen an Echtheitsmerkmale DIN 32744 Magnetstreifen auf Sparbüchern DIN 32753 Teil 1 Prüfverfahren DIN 32786 Aufbau und Inhalt der Magnetspur DIN 33859 ID-Karten: Nationales Numerierungssystem DIN EN 24909 ≡ ISO 4909 Magnetspur: Aufbau und Inhalt der Spur 3 DIN EN 27810 ≡ ISO 7810 Verfahren zur Blockprüfung, phys. Eigenschaf. DIN EN 27811 ≡ ISO 7811 ID-Karten: Aufzeichnungstechnik DIN EN 27812 ≡ ISO 7812 Benummerungssystem für Kartenaussteller DIN EN 27813 ≡ ISO 7813 Karten für finanzielle Transaktionen ■ Datenaufzeichnungsformat Magnetkarten (DIN 27811 Teil 2) »Wechseltaktverfahren«: Schreiben von selbstgetakteten Daten. Die Daten enthalten zugleich Daten- und Taktbits. Ein (magnetischer) Flußwechsel zwischen zwei Taktflußwechseln zeigt ein Eins-Bit an, das Fehlen eines Flußwechsels zeigt ein Null-Bit an. Die Daten werden als synchrone Folge von Zeichen ohne Zwischenräume aufgezeichnet: t t t t t t _______ _______ _______ │ │ │ │ │ │ a) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─── ─────── ─────── ──── : 0 : 0 : 0 : 0 : 0 : t t t t t t ____ ____ ____ ____ ____ ____ │ │ │ │ │ │ │ │ │ │ │ b) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─── ──── ──── ──── ──── ──── : 1 : 1 : 1 : 1 : 1 : t t t t t t ____ _______ ____ _______ │ │ │ │ │ │ │ │ c) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─── ──── ──── ─────── ──── : 1 : 0 : 1 : 0 : 0 : Die t zeigen jeweils die Taktintervalle an. Im Lesegerät sorgt z.B. ein F2F-Decoder (ein Monoflop, zwei D-Flipflops) für die Aufbereitung dieser Daten, er erzeugt aus ihnen je ein Clock- und Data-Signal. Abstände zwischen aufeinanderfolgenden Flußwechseln: Spur 1: 0,121 mm ± 0,006 mm (± 5%) für eine NULL und 0,06 mm ± 0,004 mm (± 7%) für eine EINS Spur 2: 0,339 mm ± 0,010 mm (± 3%) für eine NULL und 0,169 mm ± 0,007 mm (± 4%) für eine EINS Spur 3: 0,121 mm ± 0,010 mm (± 8%) für eine NULL und 0,06 mm ± 0,006 mm (±10%) für eine EINS Bei einer Folge von Einsen entspricht die Dichte von 210 Bits je Zoll (Spur 2: 75 Bits je Zoll) nominell 16,5 (Spur 2: 6,0) Flußwechseln je mm (420 FW je Zoll, bei Spur 2: 150 FW je Zoll). Der Aufzeichnungswinkel muß rechtwinklig zur Bezugskante (nächstliegende zum Magnetstreifen parallele Kante) sein mit der Toleranz 0° ± 20'. Er wird durch Messung des Winkels bestimmt, bei dem das Maximum der Lesespannungsamplitude auftritt. Die drei Spuren: Sp. 1: IATA alphanum., nur lesen, 210 Bit/Inch, max. 79 Zch. Sp. 2: ABA numerisch, nur lesen, 75 Bit/Inch, max. 40 Zch. Sp. 3: THRIFT numerisch, lesen/schreiben, 210 Bit/Inch, max. 107 Zch. Bei der Bitanordnung für jedes Zeichen im Magnetstreifen wird das niederwertigste Bit zuerst und das Paritätsbit zuletzt geschrieben und gelesen. Gesehen auf die Kartenseite mit dem oben angeordneten Magnetstreifen beginnt die Aufzeichnung von rechts. Der Anfangsbereich vor dem ersten Datenbit wird mit Takt-Bits (Nullen) beschrieben, ebenso der Bereich hinter dem letzten Datenbit des LRC-Zeichens bis zum Ende der Aufzeichnung. Für numerische Spuren 2 und 3 des Magnetstreifens: Die gelesenen Bits werden in Fünfergruppen zusammengefaßt und als hexadezimale Nibbles (Halbbytes, vier Bit) ausgewertet: b1, b2, b3, b4 und ungerade Parität. Das Paritätsbit wird so geschrieben, daß die Gesamtzahl (inkl. Par.-Bit) der Eins-Bits für ein Nibble (eine Ziffer) ungerade ist (ungerade Parität, VRC-Prüfung, vertical redundancy check). Die Hexadezimalzeichen $0 bis $9 sind als die entsprechenden Dezimalziffern aufzufassen. Der Wert $b (11) zeigt den Beginn der Aufzeichnung an (Erkennungsmöglichkeit für manche Lesegeräte), ein $d (13) dient als Feldseparator (FS), der verschiedene Datenfelder der Aufzeichnung trennt, und $f (15) kündigt das Ende der Datei an, ihm folgt noch das LRC-Zeichen. Die Zeichen $a, $c und $e dürfen nicht verwendet werden. Bei einem für die alphanumerische Spur 1 gültigen Verfahren werden die Bits in Gruppen zu je 7 Bit aufgeteilt (ungerade Parität). Zur Zeichenwandlung gilt weitgehend der ASCII-Code, die Sonderzeichen werden wie folgt dargestellt: Start: $05, FS: $3e, Ende: $1f. Das LRC-Zeichen (Längs Redundanz Prüfung, longitudinal redundancy check) ist eine Art Prüfziffer über alle gespeicherten Daten, einschließlich FS, Start- und Stopzeichen. Es wird nach folgendem Verfahren berechnet: Der Wert (1 oder 0) jedes einzelnen Bits des LRC-Zeichens wird so festgelegt, daß die Gesamtzahl der geschriebenen Eins-Bits der Wertigkeit dieses LRC-Bits (1, 2, 4, 8) aller Zeichen der Datei einschl. des Start-, Ende-, FS- und LRC-Zeichens gerade ist. Anders ausgedrückt: Eine Exklusiv-Oder Verknüpfung aller gelesenen Daten einschl. LRC-Zeichen muß den Wert 0 (%0000) ergeben. Das Paritätsbit des LRC-Zeichens ist kein Paritätsbit für die einzelnen Paritätsbits des Datensatzes, sondern lediglich das Paritätsbit des LRC-Zeichens wie oben besprochen. Bei beiden Fehlerprüfungsverfahren werden die Taktbits nur zur Synchronisation verwendet und dürfen nicht als Datenzeichen betrachtet werden. ■ Inhalt der Spur 2 An die Spur 2, welche beispielsweise von Kontoauszugdruckern gelesen wird, werden hinsichtlich der Sicherheit keine großen Anforderungen gestellt. Hier finden sich keine Informationen über Geheimzahl (PIN) usw. Aufgrund eigener Experimente konnte folgender Aufbau der 40 Zeichen umfassenden Spur festgestellt werden: (Kleinbuchstaben: Dateninhalt, Großbuchstaben: Steuerzeichen, Ziffern: konstanter Inhalt) Beispiel 1: Eurocheque-Karte B6zzzzzzzkkkkkkkkkkcDvvvv????????dddddFe Beispiel 2: Bank-Kundenkarte B59bbbbbbbbDkkkkkkkkkkcDaaavvvv??dddddFe Beispiel 3: Eurocard (kurzes Format) B5232nnnnnnnnnnnnDvvvv101Fe------------- Beispiel 4: American Express BnnnnnnnnnnnnnnnDvvvvwwww?????Fe-------- Bedeutung der Buchstaben: a = Ländercode nach DIN 3166, z.B. aaa = 280 für Deutschland b = Bankleitzahl (uncodiert) c = PAN-Prüfziffer (ISO 7812, siehe unten) d = evtl. Dispositionskreditrahmen? e = LRC-Gesamtprümsumme (siehe oben) k = Kontonummer (PAN) n = Karten-Nummer v = Verfallsdatum im Format JJMM (z.B. 9412 = gültig bis DEZ 1994) w = Ausgabedatum (erste Gültigkeit) im Format JJMM z = Bankleitzahl (codiert) B = Code für Datenanfang $0B D = Trennzeichen (FS) $0D F = Code für Datenende bzw. LRC-Zeichen $0F ? = Bedeutung noch nicht geklärt - = nicht codiert Andere Karten, beispielsweise Kaufhaus-Kundenkarten, enthalten nur die Karten-Nummer und das LRC-Prüfzeichen. ■ Branchenverzeichnis (ISO 7812) Die erste Ziffer nach dem Startzeichen gibt die Branche des Kartenausgebers an: 0 - reserviert 1 - Fluglinien 2 - Fluglinien, reserviert 3 - Reise und Unterhaltung 4 - Finanzwesen/Handel 5 - Finanzwesen/Handel 59 - Bank Kundenkarten 6 - Handel, Banken (Eurocheque) 7 - Benzin 8 - reserviert 9 - reserviert ■ PAN-Prüfziffer (ISO 7812, Anh. C / DIN ISO 4909) Die Kontonummer (PAN, primary account number) wird von links mit Nullen auf eine Länge von zehn Digits aufgefüllt und von einer Prüfziffer begleitet. Diese wird nach dem Luhn-Verfahren (double-add-double) berechnet: von rechts beginnend werden die Zeichen abwechselnd mit 2 und 1 multipliziert und die Ergebnisse addiert. Bei Ergebnissen über 10 werden die Quersummen addiert. Das Zehnerkomplement des Ergebnisses ist die Prüfziffer. Ist das Ergebnis durch 10 teilbar, ist die Prüfziffer eine Null. Beispiel: Kontonummer 4992739871, Prüfziffer ist 6: 4 9 9 2 7 3 9 8 7 1 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 ─────────────────────────────────────────────── 4 + 1+8 + 9 + 4 + 7 + 6 + 9 + 1+6 + 7 + 2 = 64; 70 - 64 = 6 Bei Eurochequekarten werden nur die zehn Stellen der Kontonummer geprüft, bei Bank-Kundenkarten werden auch die acht Stellen der Bankleitzahl sowie das FS-Zeichen dazwischen zur Berechnung herangezogen. ■ Inhalt der Spur 3 (DIN ISO 4909) Bei Spur 3 handelt es sich um die dritte der drei Spuren, die der Magnetstreifen einer ID1-Karte (Kreditkartenformat) enthält. Dabei gibt es im wesentlichen zwei Aufzeichnungsformate 01 und 02. Die Kennung für den Spuraufbau steht in der zweiten und dritte Stelle. Datenfelder für Spuraufbau 01 und 02: Inhalt Stellen Format Startzeichen 1 Stelle $b Kennziffer 01 oder 02 für Spuraufbau 2 Stellen 01/02 PAN = erste Kontonummer, ggf. mit BLZ max. 28 Stellen FS = Feldseparator 1 Stelle $d Länderschlüssel nach ISO 3166 3 Stellen CCC Währungsschlüssel nach ISO 4217 3 Stellen Währungsexponent (Multiplikation 10 hoch x) 1 Stelle $0 bis $9 Limit pro Zyklusdauer 4 Stellen Restbetrag pro Zyklus 4 Stellen Zyklusbeginn 4 Stellen YDDD Zykluslänge 2 Stellen siehe Norm Fehlbedienungszähler (Fehleingabe der Geheimzahl) 1 Stelle $3 bis $0 Kontrollparameter für Geheimzahl (PIN) 6 Stellen AAVVVV Freizügigkeitsschlüssel 1 Stelle $0 bis $9 Kontenart, Benutzungseinschränkung 4 Stellen Verfalldatum 4 Stellen YYMM Kartenfolgenummer 1 Stelle Kartensicherungsnummer 9 Stellen MCCCCCCCC zusätzliche Kontonummer 1 max. 28 Stellen FS 1 Stelle $d zusätzliche Kontonummer 2 max. 28 Stellen FS 1 Stelle $d Nachrichtenbegrenzungshinweis 1 Stelle $0 bis $2 Gesamtsicherheitsprüfung 6 Stellen ggf. zusätzliche Daten, Format bei Aufbau 02: Datum der letzten Geldautomaten-Abhebung 4 Stellen YDDD Zusätzliche Prüfwerte 8 Stellen Alternative Kartenfolgenummer 3 Stellen NNN Internat. Netzkennummer 3 Stellen Daten des Kartenausgebers Textende 1 Stelle $f LRC-Zeichen 1 Stelle s. oben maximal Gesamt 107 Stellen Mit Hilfe der Zyklen kann beispielsweise vorgegeben werden, daß innerhalb von einem bestimmten Zeitraum (etwa ein Tag) nur ein bestimmter Betrag an Geldautomaten abgehoben werden darf. Beispiel: Es dürfen pro Tag maximal 400 Mark abgehoben werden. Das Limit pro Zyklusdauer beträgt 400, der Restbetrag pro Zyklus beträgt 400 Mark abzüglich dem am heutigen Tag schon abgehobenen Betrag (Null bedeutet daß keine Verfügung mehr zulässig ist), die Zyklusdauer ist mit $01 (ein Tag) codiert. Das Freizügigkeitsflag gibt an, inwieweit die Karte international verwendet werden darf, oder nur zu Testzwecken dient. Die Kartensicherungsnummer verknüpft Daten der Magnetspur mit den Eigenschaften der Karte. Der Nachrichtenbegrenzungshinweis ist ein Flag, das angibt, ob im Feld »zusätzliche Daten« Informationen zu übernehmen sind. Die Gesamtsicherheitsprüfung schafft eine sicherheitsmäßige Bindung von Daten auf Spur 3 und dem Magnetstreifen. Mit Hilfe der Kontrollparameter und ggf. der zusätzlichen Prüfwerte wird die eingegebene Geheimzahl kontrolliert. ■ Magnetkartenleser: Technische Daten Typ-Nr.: 831 0 21110 Kopfposition rechts unten Spurlage: Spur 2 (am gebräuchlichsten) Spur: (ABA) 5 Bit/Zeichen (inkl. Parity) 40 numerische Zeichen, insgesamt ca. 230 Bit Funktion: nur lesen Bitdichte: 75 BPI Version: Durchzug Abmessungen BxHxT: 100x96x126 mm Normierung: Kreditkarte »ID1« DIN 9781 (ISO 3554) Spannungsversorgung: ■ Motor: +12 V DC ±10% 1 A ■ Leseelektronik: + 5 V DC ± 5% 300 mA - 5 V DC ± 5% 100 mA Schreibverfahren: F2F-Decodierung (two frequency recording mode) Schreibfrequenz: 236 Hz Bitintervall: 4,23 ms +31% -25% Kartengeschwindigkeit: 80 mm/sec ±6% Kartendurchlauf: ca. 2 sec Ein/Ausgangssignale: TTL-Pegel Kartenabmessung: 54,03 ±0,1 x 85,72 -0,25 x 0,76 ± 0,08 mm Dicke Ausgangsstecker: Stiftleiste 16 polig (65483-69) Quelle: ddm-Prospekt 10.87 Version: (c) nh 01.93 von: N. Heusler »»»»»»»»»»» INTERN an: 64'er Red. Hans-Jürgen, zur Vorlage bei GK Datum: 9.04.92 Exposé 64'er Extratouren: EC-Kartenleser und C 64 Funktionsweise (mechanisch/elektronisch) eines Eurocheque-Kartenlesers Aufzeichnungsformat einer typischen (genormten) Magnetkarte Anschluß des Lesers an den C 64: Exercicer (Bauanleitung?) Auswerungssoftware Überlegungen, wie die Daten verschlüsselt sein könnten Bezugsquelle für das Lesegerät (Fa. ddm, Rottweil; über 1000 Mark!) Arbeitstitel: »Der Geheimzahl auf der Spur« Hinweis: Sollte Euch die Sache zu »heiß« sein, könnte man den Artikel vor allem um das Lesegerät aufbauen, es gibt ja nicht nur EC-Karten, und nur am Rande erwähnen, daß man damit auch Scheckkarten lesen und mit viel Glück decodieren kann. Die Überlegungen zum Code müßte man dann fallenlassen. Funktionsweise; Quelle: Original-Unterlagen der Firma ddm ■ mechanisch: Antrieb über Motor, 2 Mikroschalter, Gummiwalzen, Führungsschiene, Lesekopf ■ elektronisch: OP-Amp Kopfsignalverstärker, Signalaufbereitung und TTL-Wandlung mit Monoflop 74121, Flipflop 7474, Gatter 74 LS 14 dreifache Stromversorgung (± 5 Volt, 12 Volt), Motorsteuerung über Transistoren (Schaltplan, Schaltungsbeschreibung) ■ Anschluß über Steckverbindung (Stromversorgung; Eingänge: Karte einbehalten, Motor halt, vorzeit. Auswurf, Karte im Leser halten; Ausgänge: Lesetakt, Lesedaten, Kontakt vorn und hinten) ■ Überlegungen zum Aufzeichnungsformat der Magnetkarten (DIN 9781) Anschluß an den C 64 ■ Schaltplan eines Exercicers (quasi Fernsteuerung, 2 Trafos, 3 Reg- ler, 5 LEDs, 2 Kondensatoren, 2 Brückengleichrichter, einige Wid., Σ Baukosten ca. 20 Mark) ■ Bedienungsanleitung Exercicer ■ Signalbeschreibung am Leser-Ausgang ■ Zuführung der Ausgänge zum Userport Lesen von Magnetkarten ■ Abfrage des Userports (Maschinensprache, ggf. Programmlisting) ■ Anzeige der 232 Bytes, die auf einer solchen Karte gespeichert sind, als Bit-Kette am Bildschirm ■ nur für EC-Karten: Überlegung, welche Daten wie verschlüsselt ge- speichert sind, Vergleich mehrerer Scheckkarten Sonstiges ■ Bezugsquelle des Lesegerätes (Fa. ddm, Heerstr. 44, 7210 Rottweil, Preis: 1325 DM) ■ eigene Erfahrungen mit dem Leser ■ Ausblick, Anwendungsmöglichkeiten, rechtliche/Sicherheitshinweise ...und in Falle eines Falles: Eurocheque-Karte sperren: Tel. 0 69 / 74 09 87 Eurocard sperren: Tel. 0 69 / 79 33 19 10