Über die Unsicherheit von EC-Karten
Mittlerweile hat sich der Presserummel wieder etwas gelegt. Zeit, zu beleuchten, was wirklich hinter den Schlagzeilen steckt.
Was wir vorgeführt haben, war eine eigentlich schon länger bekannte statistische Schwäche des EC-Kartensystems. Besonders Prof. Manfred Pausch hat in seinen Gerichtsgutachten, zuletzt am OLG Hamm, immer wieder darauf hingewiesen, daß durch den Mechanismus, mit dem aus dem Ergebnis der DES-Verschlüsselung die PIN errechnet wird, sich eine Ungleichverteilung ergibt. Zu den Details des Algorithmus siehe den ix-Artikel über EC-Karten, den jemand freundlicherweise abgetippt hat.
Worauf basiert nun diese Wahrscheinlichkeitsberechnung?
Markus Kuhn hat darüber ein Paper [PDF] geschrieben. Vereinfacht ausgedrückt, liegt das Problem darin, daß aus dem Ergebnis der DES-Verschlüsselung 4 Hexziffern genommen werden und vor der Weiterverarbeitung mittels modulo-10-Operation auf den Bereich von 0 bis 9 abgebildet werden. Dadurch ergibt sich in diesem Schritt eine Ungleichverteilung, die Ziffern 0 bis 5 sind doppelt so häufig wie die Ziffern 6 bis 9. Bei der Verschlüsselung mittels Institutsschlüssel ist das schon fast die PIN, es wird lediglich noch aus der ersten Stelle eine 1 gemacht, wenn da eine 0 stand. Bei der Verschlüsselung mittels einem der drei Poolschlüssel wird auf das DES-Ergebnis noch der Offset von Spur 3 ziffernweise modulo 10 aufaddiert, und es ergibt sich dieselbe PIN.
Wie geht man jetzt bei der Berechnung vor?
Man berechnet für alle möglichen PINs, wie groß die Gesamtwahrscheinlichkeit ist, indem man die Wahrscheinlichkeiten für die einzelnen Stellen berechnet und miteinander multipliziert. Die Wahrscheinlichkeit der Stellen errechnet man, indem man bei der ersten Ziffer für eine 1 4 Punkte, für eine 2 bis 5 2 Punkte, und für 6 bis 9 einen Punkt vergibt. Bei Stellen 2 bis 4 vergibt man jeweils für Werte von 0 bis 5 zwei Punkte und für 6 bis 9 einen Punkt. Zusätzlich vergibt man pro Offset wieder Punkte, diesmal für
((PIN - Offset) % 10)von 0 bis 5 zwei Punkte, von 6 bis 9 je einen Punkt. Dann muß man noch die Einzelpunktzahlen durch die Gesamtpunktzahl teilen, und erhält die Wahrscheinlichkeit.
Habe ich jetzt nicht so schnell verstanden...
Macht nichts. Unter cardread-1.0.tar.gz findet sich ein Linux-Programm im Source, das diese Berechnung durchführt. Ebenso beinhaltet es ein Leseprogramm für den in c't 1/94 beschriebenen Selbstbau-Magnetkartenleser, und ein perl-Skript, das die Spur 3 von EC-Karten auswertet.
Und, wie sehr hilft das jetzt?
Es reduziert die Wahrscheinlichkeit, daß man eine Karte in den Automaten schiebt, 3 PINs eingibt und dabei die richtige erwischt, von 1:3000 auf 1:210. Das bezieht sich auf die alten EC-Karten, bei denen übrigens nur Offset 1 und 3 im Einsatz sind. Theoretisch kann man, wenn man einen Automaten findet, der die EC-Karte offline ueberprüft, auch den Fehlbedienungszähler zurücksetzen, und mehr als 3 Versuche machen. Praktisch ist es eher schwierig, aus dieser Lücke Kapital zu schlagen, allerdings ist es nicht komplett ausgeschlossen. Die Mißbrauchsmuster bei den derzeitigen Fällen sprechen eher dafür, daß jemand den Poolschlüssel geknackt hat (daß das geht, hat mal wieder das Internet bewiesen, siehe die DESCHALL Home Page), oder jemand aus einem der ungefähr 1000 gestohlenen Geldautomaten in einen PIN-Tester umgewandelt hat. Bei letzterem hilft die Ungleichverteilung natuerlich, die Zeit zwischen Diebstahl der EC-Karte und erster Abhebung zu verkürzen.
Was ist mit neuen EC-Karten?
Gute Frage. Bei einigen Karten hatte ich gute Erfolge durch Anwenden derselben Methode, bei einigen Karten eher schlechte. Allerdings hatte ich bis jetzt zuwenig Testdaten, um da eine vernünftige Aussage machen zu können. Die Banken drücken sich mal wieder um die Dokumentation, und weigern sich auch nach wie vor, das Betriebsrisiko für EC-Karten zu tragen. Resultat: Lage nach wie vor unklar.