Skip to content

Kontaktloses Bezahlen: Die Angriffe, Teil 2

Nach der Beschreibung der Grundlagen des kontaktlosen Bezahlens mit Smartphone oder NFC-fähiger Zahlkarte und der Beschreibung der wenig aussichtsreichen Angriffe darauf geht es nun um die mehr Erfolg versprechenden Relay-Angriffe.

Der Ablauf eines Relay-Angriffs

Wie bereits erwähnt wurde der im Folgenden beschriebene Angriff von Jordi Van den Breekel auf der Black Hat Asia im März 2015 vorgestellt.

Für die Durchführung des Angriffs hat Jordi Van den Breekel folgende Ausrüstung verwendet:

  • Eine EMV Contactless Karte,
  • ein Nexus 7 von 2012 als Kartenleser,
  • ein Nexus 7 von 2013 als Kartenemulator,
  • einen Omnikey Contactless USB-Reader und ein Laptop, die zusammen das PoS-Terminal emulierten.

Er konnte dadurch die Transaktionen zwischen Karte und Terminal emulieren, ohne auf die Dienste einer Bank zurückgreifen zu müssen. Für die Karte sieht der Laptop mit dem USB-Reader wie ein PoS-Terminal aus.

Das als Kartenleser dienende Nexus muss sich in der Nähe der Karte befinden, so dass die NFC-Kommunikation mit der Karte möglich ist. Die Entfernung zum PoS-Terminal ist egal, da die Kommunikation zwischen den beiden Nexus über das Internet läuft. Das gleiche gilt sinngemäß für das als Kartenemulator dienende Nexus, das sich in NFC-Reichweite des PoS-Terminals (bzw. bei der Simulation des Angriffs in der dessen Emulators) befinden muss.

Ein echter Angriff würde dann so ablaufen (siehe auch Abb. 1):

  1. Ein Krimineller kauft irgend etwas ein und bezahlt mit EMV Contactless. Dazu hält er seine Brieftasche mit dem als Kartenemulator dienenden Nexus in die Nähe des PoS-Terminals.
  2. Das Terminal kommuniziert mit der "EMV Contactless Karte", die tatsächlich aber vom Nexus des Kriminellen nur emuliert wird.
  3. Das "Emulator-Nexus" leitet die Anfragen des Terminals über das Internet an das als Kartenleser dienende Nexus weiter.
  4. Das "Kartenleser-Nexus" hält ein zweiter Krimineller so nah an das Opfer, dass es mit dessen EMV Contactless Karte kommunizieren kann, um die Anfragen des PoS-Terminals an die Karte weiter zu leiten.
  5. Die Antworten der Karte werden dann vom "Kartenleser-Nexus" wieder über das Internet an das "Emulator-Nexus" geschickt, die sie an das Terminal weiterleitet. Das Händler-Terminal geht dabei davon aus, direkt mit der entfernten Karte zu kommunizieren. Durch die längere Laufzeit der Nachrichten könnte der Angriff theoretisch erkannt werden, s.u..
  6. Bei Beträgen bis 25€ erfolgt die Zahlung sofort, darüber muss der Kriminelle am PoS-Terminal die PIN des Opfers eingeben. Die muss dann zuvor ausgespäht worden sein, z.B. indem der zweiter Kriminelle sein Opfer zuvor irgendwo bei der Eingabe beobachtet hat.

Relay-Angriff auf EMV Contactless mit zwei Kriminellen
Abb. 1: Relay-Angriff auf EMV Contactless mit zwei Kriminellen (Klick für großes Bild)

Der Angriff fällt dem Opfer erst auf, wenn er die in seinen Augen unberechtigte Abbuchung des Händlers bemerkt. Der Händler kann den Angriff selbst nicht erkennen, er geht ja davon aus, dass der zu zahlende Betrag von der Karte seines Kunden (d.h. des ersten Kriminellen, der an seiner Kasse stand) beglichen wurde. Dass die Kommunikation zwischen seinem PoS-Terminal und der Karte über das Internet weitergeleitet wurde und tatsächlich eine Karte irgendwo auf der Welt belastet wurde kann er nicht merken.

Das dauert heute ja mal wieder...

Der Relay-Angriff verrät sich durch die längere Dauer der Transaktionen. Während normalerweise die Karte am PoS auf dessen Anfragen antwortet, werden die Anfragen beim Relay-Angriff über das Internet zum zweiten Nexus weitergeleitet werden, dass sie seinerseits an die angegriffene Karte sendet, um dann deren Antwort über die Internetverbindung zum die Karte emulierenden Nexus zu schicken. Das dauert natürlich deutlich länger - 1153 bis 1336ms statt normalerweise 330 bis 637ms. Aber das ist kein Problem, da eine Transaktion maximal 52 Sekunden(!) dauern darf.

Es geht auch schneller!

Es liegt also nahe, Relay-Angriffe an Hand dieser Verzögerung zu erkennen - alles, was erkennbar länger als normal dauert, ist ein Relay-Angriff. Das schützt aber nicht zuverlässig vor einem Angriff, wie Jordi Van den Breekel gezeigt hat. Durch Optimierungen lässt sich die Dauer der Transaktionen in unverdächtige Bereiche drücken. So sind viele Nachrichten in einer Transaktion statisch, also für jede Transaktion mit der gleichen Karte identisch. Der Angreifer kann diese Daten also cachen und muss sie nicht bei jeder Transaktion bei der angegriffenen Karte abfragen. Dadurch müssen nur noch 2 statt 16 Nachrichten weitergeleitet werden. Andere Nachrichten müssen gar nicht an die Karte weitergeleitet werden, sondern können vom als Kartenleser agierenden Nexus unabhängig vom PoS-Terminal selbst erzeugt werden.

Außerdem lässt sich das Ganze noch weiter beschleunigen, aber darum geht es in der nächsten Folge.

Carsten Eilers

>
        </div>
                
        <footer class= Kategorien: Grundlagen

Trackbacks

Keine Trackbacks