Aufmerksamen Lesern dürfte aufgefallen sein, dass wir für unsere bisherigen Untersuchungen, selbst für das Auslesen der Daten einer Postcard, keine PIN-Eingabe benötigt haben.
Die PIN wird nicht benötigt, um die Karte als echt zu authentifizieren, sondern um in einem Transaktions-Prozess den Karteninhaber als berechtigt auszuweisen. Dies geschieht bei der Postcard nach einem ehr eigenen Verfahren:
Neben dem schon erwähnten (schreibgeschützten) Datenbereich für die Karten-Authentifikation gibt es einen weiteren Datenbereich, in dem alle Transaktionen geloggt werden können, die mit der jeweiligen Postcard durchgeführt worden sind.
Dieser Bereich ist jedoch PIN-geschützt. Eine EFT/POS-Terminal authentifiziert einen Karteninhaber dadurch, dass es versucht, mittels der vom Kunden eingegebenen PIN, Zugriff auf diesen Speicherbereich zu erhalten. Ist dieser Zugriff auch nach einer PIN-Eingabe nicht möglich, "weiss" das Terminal, dass ein falscher PIN eingegeben worden ist und benachrichtigt den Anwender - "Falscher PIN".
Wichtig an dieser Stelle ist, dass das Terminal diese Verifikation auch offline durchführen kann. Es ist daher weder eine Online-Verbindung zur PostFinance, noch die Ablage der verschlüsselten PIN auf der Karte selbst notwendig (letzteres ist bis heute das übliche Authentifizierungsverfahren für Magnetstreifen-basierte Debit- und Bankkarten).
Wie wir schon wissen, liegt auf den Postcards der Transaktionsspeicher ab der Adresse 0x02F8. Um auf diesen Speicher zuzugreifen, müssen wir zuerst den Befehl zur PIN-Verifikation an die Karte absetzen. Dieser hat folgende Form:
BC 20 00 00 04 XX XX XX XX
|
Die letzten vier Byte des Befehls werden aus der vier-stelligen PIN abgeleitet. Dies geschieht nach folgendem Verfahren:
Die PIN - als Beispiel wählen wir "2137" - wird als erstes als BCD-kodierte Zahl notiert:
00 00 21 37
|
Diese Zahl wird jetzt um 14 Bitstellen nach links geschoben, wobei von rechts eine logische "1" nachfolgt. In unserem Beispiel erhalten wir:
08 4D FF FF
|
Dies sind jetzt die vier Bytes, die wir an das Ende des PIN-Befehles einfügen müssen. Schicken wir diesen Befehl (mit der richtigen PIN) und den Prüfbefehl an die Postcard, so können wir anschliessend auf den Transaktionsspeicher zugreifen.
Wird an einem Kartenterminal die falsche PIN eingegeben, ändert sich der ATR der Karte. Dies signalisiert dem Terminal beim nächsten Initialisieren, dass es PIN-Fehlversuche gegeben hat. Das letzte Byte des ATR beschreibt die Anzahl der Fehlversuche:
Wert | Bedeutung |
0x00 | Kein Fehlversuch registriert |
0x10 | Ein Fehlversuch registriert |
0x20 | Zwei Fehlversuche registriert |
0x40 | Drei Fehlversuche registriert, Karte gesperrt |
Wird bei einer noch nicht gesperrten Karte der korrekte PIN eingegeben, so wird der Fehlversuchszähler zurückgesetzt.
Postcard-Benutzer können an PostFinance-Automaten ("Postomat") die PIN ändern. Dabei wird sowohl die PIN (besser gesagt der PIN-Offset) auf dem Magnetstreifen als auch der PIN für den Chip geändert. Nach einer PIN-Änderung werden folgende Informationen ausgegeben:
ATR: Die Karte meldet nach dem Reset einen geänderte Identifikation:
3F 65 35 10 02 04 6C 90 00 |
3F 65 35 10 02 04 EC 90 00 |
|
Vorher | Nachher | |
Fuses: Die Fuses, die im Statusbereich der Karte liegen, werden "re-initialisiert". Wie bei einer völlig unbenutzten Karte wird der Anfang der Liste so gesetzt, dass von den zwei Bits der Fuse nur das niederwertigste Bit gesetzt ist.
Zeiger-Liste: Der letzte Eintrag der Zeigerliste (Adresse 0x09FC
)
ändert sich:
1F CC |
9F CC |
|
Vorher | Nachher | |
Weitere Änderungen in den lesbaren Speicherbereichen wurde nicht festgestellt.