Interview

NFC-Payment: Wie sicher ist die Technik wirklich?

Anlässlich des bevorstehenden Chaos Communication Congress haben mit einem der Köpfe hinter dem Projekt NFCGate gesprochen und uns erklären lassen, warum NFC-Payment durchaus seine Sicherheitslücken aufweist.
AAA
Teilen (8)

Wir lassen uns die Technik hinter dem NFC-Hack erklärenWir lassen uns die Technik hinter dem NFC-Hack erklären Im Interview mit Max Maass klären unter anderem wir die Frage, wie sich NFC-Payment gezielt manipulieren lässt, damit ein Hacker mehrere hunderte Kilometer entfernt per NFCGate-App an der Kasse kontaktlos mit einer fremden NFC-Kreditkarte bezahlen kann – ohne dass der Betroffene zunächst etwas davon mitbekommt. Der Studenten der TU Darmstadt wird im Rahmen des Chaos Communication Congress in Hamburg (27. bis 30. Dezember) sein Projekt NFCGate der Öffentichkeit vorstellen.

Wie seid ihr auf die Idee gekommen und wie ist euer Team aufgestellt?

Max Maass: Wir sind vier Studenten von der TU Darmstadt: Max Maass, Uwe Müller, Tom Schons und Daniel Wegemer. Wir haben mit NFCGate im Rahmen eines Uni-Projekts angefangen. Dabei kam der ursprüngliche Themenvorschlag von der Arbeitsgruppe drahtloser Kommunikation (SEEMOO). Wir haben uns angesehen, was es im Bereich Android mit NFC gibt und festgestellt, dass Android eine Menge Features im Bereich NFC hat.

Und was genau ist eigentlich NFC?

NFC steht für Near-Field-Communiation (Nah-Feld-Kommunikation). Im Endeffekt handelt es sich dabei um ein System, bei dem man eine spezielle Karte auf ein Lesegerät legt und dann passiert dort drahtlose Kommunikation, um zum Beispiel etwas zu bezahlen. Das allgemein interessante an NFC ist, dass die Hersteller immer behaupten, es sei sicher. Schließlich würde es ja nur über eine Entfernung von wenigen Zentimetern funktionieren. Und wenn man weiter von dieser Kommunikation entfernt sei, bekomme man davon überhaupt nichts mit – also vollständig abhör­sicher. Doch das ist es jedoch nicht.

Stichwort NFC Payment: Wie lässt sich das System mit eurem Hack manipulieren?

Unser System lässt sich gut anhand von NFC-Payment (Anm. d. Red. kontaktloses Bezahlen) erklären. Im Beispiel möchte der Nutzer beim Discounter seiner Wahl per NFC bezahlen. Statt den Rechnungsbetrag jedoch mit einer NFC-Kreditkarte zu begleichen, hält der Nutzer sein Handy mit unserer App (Anm. d. Red. NFCGate) an das Bezahlterminal. Dieses Handy wiederum ist übers Internet mit einem anderen Smartphone verbunden, das mehrere hundert Kilometer entfernt sein kann. Dieses Zweithandy wird dann an eine eigene oder fremde NFC-Kreditkarte gehalten. Beispielsweise könnte ein Krimineller sein Handy also in der Bahn an die Hosen­tasche eines Fahrgastes halten, von dem er weiß, dass dieser eine entsprechende NFC-Kreditkarte besitzt.

Der Aufbau sieht schließlich wie folgt aus: Das Lesegerät beim Discounter wird mit unserer NFCGate-App auf dem Handy reden und ist über das Internet mit dem Smartphone des Kriminellen in der Bahn verbunden. Dieses zieht sich dann die Infos von der Kreditkarte des Betroffenen. Im Endeffekt würde also das Konto des Opfers in der Bahn belastet. Wenn die Daten übrigens nicht kryptographisch gegen Ver­änderungen geschützt sind, ist es dem Angreifer sogar möglich die Daten auf dem Weg zu manipulieren und er kann etwa die Transaktionssumme ändern oder die Kreditkartennummer fälschen. Allerdings gibt es eine Einschränkung: Das Lesegerät im Laden darf nicht gegen diese Art von Angriff gesichert sein.

Und wie funktioniert die Technik hinter NFCGate und auf welche Probleme seid ihr bei der Entwicklung gestoßen?

Zunächst hatten wir gedacht, dass es relativ einfach sein müsste. Android, hat schließlich eine Funktion um NFC-Karten zu emulieren. Das Problem ist, dass dieses Feature nur einen bestimmten Typ von Karte emuliert, der nicht sehr häufig ist. Anderseits haben diese Karten immer eine eindeutige Kennung, genannt Unique Identifier (UID). Diese UID kann man nicht im normalen Android-System emulieren, da Android immer eine zufällige UID abstrahlt. Einige Systeme achten auf diese UID, hier würde es also nicht gehen, die Informationen ohne Androidmodifikation per Remote weiterzuleiten – da es sofort auffallen würde. Daher haben wir im Android-Quellcode nachgesehen, was der Code im Einzelnen macht und Sicherheits­mechanismen entdeckt, die den von uns geplanten NFCGate-Hack eigentlich verhindern sollten.

Eine Herausforderung ist auch, dass man beim Ändern des Android-Quellcodes ein komplettes Betriebssystem kompilieren und es dann umständlich auf dem Handy installieren muss. Wir wollten unser Ziel allerdings ohne große Modifikation erreichen, dabei half uns das Tool Xposed. Mit diesem kann man in das laufende System eingreifen und bestimmte Android-Funktionen modifizieren. Dieses Werkzeug verwenden wir konkret, um Programmcode in Hintergrundprozesse zu laden und so einen Teil der Sicherheitsmechanismen zu umgehen. Durch direkten Zugriff auf den NFC-Chip können wir so auch bestimmte UIDs setzen. Insgesamt hat die Entwicklung der App, die uns dies alles ermöglicht, etwa ein dreiviertel Jahr in Anspruch genommen.

Interessant. Doch um die App zu installieren, werden doch sicherlich IT-Kenntnisse vorausgesetzt, oder?

Es gibt auch eine APK-Datei, die man sich einfach installieren kann. Was zudem benötigt wird, ist eine Xposed-Installation auf dem Handy. Auf Android 4 reicht dafür ein gerootetes Gerät, bei Android 5 muss man dagegen etwas härtere Geschütze auffahren. Android 6 führt meines Wissens nach keine Veränderungen ein, die das Benutzen unserer App zusätzlich erschweren. Zudem benötigt man ein Smartphone, welches ein NFC-Modul von einem bestimmten Hersteller verbaut hat: Unser Hack funktioniert nur bei Chips von Broadcom, die etwa in den Nexus-Geräten verbaut sind. Andere Chips bieten unseres Wissens nach keinen Weg, die UID der Karte zu emulieren. Abschließend benötigt man noch einen Server, um die Daten dann über das Internet weiterzuleiten.

Ihr habt ja bereits ein Experiment durchgeführt, bei dem der NFCGate-Hack zwischen den Städten Hamburg und Darmstadt durchgeführt wurde: Beachtlich. Siehst du hier für den Alltag eine echte Gefahr? Sollen Nutzer also ab sofort nicht per NFC beim Discounter bezahlen?

Für den üblichen Nutzer ist es erstmal kein großes Problem, da sich ein Krimineller in der Nähe des Geldbeutels mit der bezahlfähigen NFC-Karte befinden und zur gleichen Zeit eine andere Person an der Discounter-Kasse stehen muss. Zudem darf das Lesegerät des Discounters nicht gegen diesen Typ Angriffe geschützt sein. Kritischer ist die Lage allerdings bei Sicherheitsfirmen einzuschätzen, die ein Zugangs­sicherheitssystem mit NFC verwenden. Besonders dann, wenn das System nur auf dem Identifier der Karte arbeitet. Wenn ein Angreifer einmalig Zugriff auf die Karte hatte, kann er diese UID einmal auslesen und kann danach den Identifier immer wieder simulieren. Er kann also zum Beispiel Türen öffnen, ohne weiterhin Zugriff auf die echte Karte zu haben.

Wie lautet deine Forderung an die Hersteller, um die Sicherheitslücke bei NFC auszumerzen?

Meine Aufforderung geht an die Gerätehersteller, die NFC-Systeme herstellen. Diesen muss klar sein, dass eine sogenannte Relay-Attacke überhaupt existiert. Und im zweiten Schritt könnten sie diese durch eine Änderung sehr leicht verhindern: Wenn ein NFC-Reader mit einer normalen Karte spricht, liegt die Kommunikations­dauer im Millisekunden-Bereich. Im Gegensatz dazu dauert die Kommunikation mit zwischengeschalteten Internet bei unserem NFCGate-Hack wesentlich länger. Es würde also ausreichen, wenn man die Reaktionszeit herabsetzen bzw. einen Timeout einführen würden. Meine Nachricht: Liebe Hersteller, passt auf so etwas auf. Wenn diese Timeout-Lücke allerdings beseitigt ist, wird der gesamte Angriff wirkungslos. Android-Entwickler hingegen können nicht wirklich etwas tun, schließlich lassen sich die Änderungen durch IT-Experten immer wieder rückgängig machen.

Wir haben unsere App für die Sicherheitsforschung und zur Sensibilisierung des Problems entwickelt. Relay-Angriffe sind seit langem bekannt, bedurften bisher jedoch Spezialhardware, die erst einmal beschafft werden musste und außerdem auffallen würde, wenn jemand mit Laptop und angeschlossener Spezialhardware sein Einkauf bezahlen möchte. Bezahlen per Handy wird jedoch immer verbreiteter und so fällt dem Kassenpersonal nicht auf, dass gerade etwas Schlimmes passiert. Möchte ein Sicherheitsforscher erfahren, was ein Lesegerät mit einer Karte spricht, benötigt er lediglich zwei Andoid-Handys. Danach kann er die Protokolle untersuchen und mit unseren Tools auch verändern und somit neue Hacks entwickeln.

Wo können sich Nutzer weiter informieren, wenn sie etwas zu dem NFCGate-Projekt erfahren möchten?

Ich werde am zweiten Kongresstag (Anm. d. Red. Montag, 28. Dezember) auf dem Chaos Communication Congress einen Lightning Talk um 13:25 Uhr mit dem Titel "NFCGate: NFC Hacking made easy" halten. Sowohl der Source Code als auch eine fertige Version unserer App findet man unter nfc.wtf. Für einen kurzen Eindruck, wie unsere App funktioniert, haben wir ein YouTube-Video erstellt und wer es ganz genau wissen will, kann einen Blick in unser wissenschaftliches Paper werfen.

Der diesjährige Chaos Communication Congress findet vom 27. bis 30. Dezember unter dem Motto "Gated Communities" in Hamburg statt.

Teilen (8)

Mehr zum Thema Sicherheit