Citibank würfelt nicht

Die Sicherheit des PIN/TAN-Verfahrens hängt davon ab, ob sich eine gültige TAN erraten lässt. Die Citibank macht es Betrüger dabei möglicherweise einfacher als nötig

In Pocket speichern vorlesen Druckansicht
Lesezeit: 7 Min.
Von
  • Felix "FX" Lindner
Inhaltsverzeichnis

Online Banking ist in Deutschland sehr beliebt. Nach Angaben des Zentralen Kreditausschusses (ZKA) wurden im Jahr 2004 33,2 Millionen Konten über das Internet geführt. Zum Schutz und zur Authentifizierung von Transaktionen verwenden deutsche Banken eine Kombination aus Übertragungssicherheit und dem so genannten PIN/TAN Verfahren.

Die Übertragungssicherheit, also das Verschlüsseln der Daten und Authentifizieren des Bankenservers, gewährleistet der Secure Socket Layer (SSL) im Rahmen des HTTPS-Protokolls. Die PIN wird zusammen mit der Kontonummer verwendet, um den Kunden gegenüber der Bank zu authentifizieren. Eine sechsstellige TAN (Transaktionsnummer) dient dabei als Ersatz für eine einmalige Unterschrift. Jede Transaktion erfordert eine neue TAN, die nur einmalig verwendet werden kann und danach wertlos ist. In der Regel stellen Banken ihren Kunden eine Liste mit mehreren TANs per Post zu. Der Kunde streicht eine TAN von der Liste sobald sie verwendet wurde.

Auch ohne höhere mathematische Weihen ist zu erkennen, dass die Werte den möglichen Werteraum nicht ausnutzen.

Banken weisen immer wieder darauf hin, dass sowohl die PIN als auch die TAN-Liste vom Kunden unbedingt sicher zu verwahren sei. Solange sich der Kunde daran hält sei das System sicher. Kommt es doch einmal zu einer nicht gewollten Überweisung, muss der Kunde für eine Erstattung des gestohlenen Betrages nachweisen, dass er tatsächlich seine TAN-Liste ausreichend geschützt hat. Diesen Nachweis zu erbringen gelingt in den seltensten Fällen, insbesondere bei den mittlerweile epidemischen Ausmaßen von Phishing-Attacken im Internet.

Ein Aspekt der Sicherheit des PIN/TAN Verfahrens ist, wie schwer eine gültige TAN vorherzusagen ist. Ein Betrüger hat bei einer sechsstelligen TAN von 000000 bis 999999 eine theoretische Wahrscheinlichkeit von 1 zu 1000000 eine gültige TAN zu erraten. Ist die Wahrscheinlichkeit eine TAN zu raten deutlich höher, so steigt das Risiko eines erfolgreichen Angriffs auf das Konto eines Kunden.

Im Vergleich zu Zufallszahlen ist die Verteilung der Abstände zweier TANs sehr systematisch.

Beim Betrachten einer TAN-Liste der Citibank aus dem Jahre 2005 fiel auf, dass die Zahlen alle mit der selben Ziffer begannen und aufsteigend geordnet waren. Eine TAN war zwischen 167 und 1348 größer als die vorherige in der gleichen Zeile. Der durchschnittlichen Abstand betrug 263. Bildet man die Differenzen zweier benachbarter TANs und trägt diese in ein Diagramm ein, so ergibt sich das folgende Bild:

Zum Vergleich der Verteilung wurde eine Liste von 200 zufälligen Werten mit einem Perl-Script (Listing 1) erzeugt und die Differenz benachbarter Werte in ein Diagram eingetragen. In unserer vorhandenen Liste fanden sich beispielsweise neun TAN-Pärchen mit dem Abstand 172. Für einen Bankkunden bedeutet dies, dass ein Betrüger mit Hilfe bereits verwendeter und ungültiger TANs, eine gute Chance hat, eine noch gültige TAN zu erraten. Ein Betrüger könnte einem Opfer beispielsweise über eine Phishing-Seite mehrere verwendete TANs entlocken:

Absender: Ihre Bank Empfänger: Max Mustermann Betreff: Missbrauch Ihres Kontos

Sehr geehrter Herr Mustermann,

wir ermitteln gerade in einem Fall von Online-Banking-Betrug. Ihr Konto war möglicherweise in den Fall verwickelt. Bitte nennen Sie uns auf unserer Webseite nach der Anmeldung ihre letzten 10 benutzten TANs. Stellen Sie bitte absolut sicher, dass Sie keine noch gültigen TAN an uns senden.

Mit freundlichen Grüßen Ihre Bank

Da ungültige TANs normalerweise nicht mehr vertraulich sind, gäbe es für das Opfer keinen Grund, einem solchen Wunsch nicht nachzukommen.

Eine zweite angefordete TAN-Liste bestätigte das Ergebnis der ersten Analyse. Es lag das gleiche Muster vor: Monoton steigene TANs aus einem begrenzten Zahlrenraum. Allerdings waren die Abstände zwischen den einzelnen Zahlen diesmal größer. Offenbar hat die Citibank das Verfahren oder den Algorithmus zum Erzeugen der TAN-Elemente nicht wesentlich verändert.

Zwar zeigte die zweite Liste eine höhere Varianz der Abstände auf, allerdings bewegt sich auch diese immer noch in einem viel zu kleinem Bereich.

Um die Zufälligkeit einer Reihe von Werten aussagekräftig darzustellen, verwendet man die so genannte differenzielle Analyse, in der die Abstände von Werten zueinander räumlich dargestellt sind. Ergibt sich eine gleichförmige Wolke, so handelt es sich um Zufallswerte. Resultiert die Darstellung allerdings in einem Muster oder treten Werte-Haufen auf, so gibt es eine Abhängigkeit zwischen den Punkten und man kann sie nicht mehr als zufällig ansehen.

Nach der differenziellen Analyse der zwei TAN-Listen sowie der Referenz-Perl-Zufallszahlen zeigte sich, dass bei den TANs wie vermutet, kaum von Zufallswerten gesprochen werden kann. Beide Zahlenmengen vereinen sich in einem sehr kleinen Bereich während die Menge der mit Perl generierten Zahlen eine recht hohe Entropie aufweist.

Während die mit Perl erzeugten Zahlen gleich verteilt sind, fallen die Werte der TAN-Listen jeweils auf einen sehr kleinen Bereich zusammen.

Zwar ist die Zufälligkeit der Ziffern der zweiten Liste etwas höher als die der ersten, im Vergleich zu den Zufallszahlen vom PC immer noch sehr viel einfacher vorhersagbar.

Erst beim Vergrößern der Darstellung zeigt sich, das die zweite TAN-Liste eine höhere Zufallskomponente aufwies, als die erste.

Einen genauen Rückschluß auf den von der Citibank verwendeten Algorithmus zum Erzeugen der TANs lässt sich aus den gewonnenen Daten nicht ziehen. Nach Aussage der Citibank dient während des Prozesses der Zahlengenerierung die Zeit als Zufallskomponte.

Das Problem wird zwar teilweise dadurch entschärft, dass man eine Transaktion theoretisch mit einer beliebigen TAN aus der Liste authorisiern kann. In der Praxis verwenden viele Anwender die TANs jedoch der Reihe nach -- schon um einen besseren Überblick zu behalten. Gelangt ein Betrüger wie auch immer an die letzten zehn benutzten TANs, so kann er mit guter Wahrscheinlichkeit davon ausgehen, dass es sich um zehn nacheinander auf der Liste folgende Nummern handelt.

Die Systematik hinter den TANs bedeutet allein noch keinen Dammbruch der Sicherheit des Homebankings der Citibank. Allerdings wird es Angreifern leichter gemacht als es nötig wäre. Zum besseren Schutz der Konten ihrer Kunden vor Missbrauch sollte die Citibank das Verfahren zur Erstellung der TAN-Listen überarbeiten.

Die TANs einer Liste sollten dabei im gesamten zur Verfügung stehenden Wertebereich gleichverteilt und voneinander unabhängig sein. Wichtig ist die Unabhängigkeit der TANs voneinander. Jede Systematik eröffnet die Möglichkeit, mit einer gewissen Wahrscheinlichkeit von bereits eingesetzten TANs auf gültige TANs zu schließen. Selbst eine mit einer gängigen Pseudo-Zufallszahlengeneratorfunktion erzeugte Zahlenmenge besitzt schon eine höhere Entropie als das aktuelle Verfahren der derzeit weltgrößten Bank.

Ein Ausweichen auf ein anderes Authentisierungsverfahren für Transaktionen ist derzeit bei der Citibank nicht möglich. Weder unterstützt die Citibank das als sicher geltende HBCI, noch bietet sie verbesserte TAN-Verfahren wie iTAN, mTAN oder eTAN, wie andere deutsche Banken. Citibank-Kunden, die sich vor möglichem Mißbrauch schützen wollen, sollten deshalb die Zufälligkeit selbst erhöhen, indem sie ihre TANs nicht der Reihe nach verwenden, sondern zufällig auswählen.

Felix "FX" Lindner betreibt SABRE Labs und ist auf professionelle Sicherheits-Dienstleistungen und -analysen spezialisiert.

#!/usr/bin/perl -w

srand( time() );
for ( $i = 0; $i < 200; $i++ )
{
$TAN[ $i ] = int( rand( 1000000 ) );
printf( "%06d\n", $TAN[ $i ] );
} (dab)