c't 16/2016
S. 126
Know-how
Mobile Payment: Technik-Check

Smartphone trifft Kreditkarte

Die Technik hinter Mobile Payment

Bei den neuen kontaktlosen Bezahlverfahren treffen zwei Systeme aufeinander, deren Sicherheit keinen guten Ruf genießt: Kreditkarten und Smartphones. Bringt man jedoch dem Smartphone bei, eine Kreditkarte zu sein, ist das Ganze besser gegen Missbrauch geschützt als die gute alte Plastikkarte.

Ohne Frage, moderne Bezahlverfahren à la Apple Pay oder Android Pay sind praktisch: Ohne Bargeld und Plastikkarte kann man damit an immer mehr Akzeptanzstellen mit dem Smartphone bezahlen. Doch in Zeiten von Kreditkartenbetrug und Handy-Trojanern fragt man sich, ob es denn wirklich eine gute Idee ist, das Smartphone auch noch als Geldbörse zu benutzen.

Die meisten der neuen, in den vorherigen Artikeln beschriebenen Bezahlverfahren fußen auf der bestehenden Kreditkarten-Infrastruktur. Kurz gesagt gibt sich das Smartphone als Kreditkarte aus; die Zahlung wird anschließend über die etablierten Kanäle abgewickelt. Hierzu mussten die Finanzdienstleister ein erhebliches Problem lösen: Das Smartphone ist eine offene Plattform, welche sie nicht im Griff haben. Der Kunde kann damit machen, was er will – zudem besteht das Risiko, dass er sich einen Trojaner eingefangen hat. Die Chips auf modernen Kreditkarten sind hingegen gegen Manipulation geschützt und deshalb vertrauenswürdig; es handelt sich um sogenannte Secure Elements. Auf den Chips sind geheime Krypto-Schlüssel gespeichert, mit deren Hilfe man zweifelsfrei dokumentieren kann, dass eine bestimmte Transaktion mit einer bestimmten Karte durchgeführt wurde. Der Chip ist über die Kontaktfläche der Karte ansteuerbar und immer häufiger auch kontaktlos über NFC.

Das Vertrauensproblem wird auf völlig unterschiedliche Weisen gelöst: Am naheliegendsten ist der Ansatz, das Smartphone mit einem Secure Element in Hardware-Form zu bestücken – zum Beispiel durch eine neue SIM-Karte, die neben den üblichen Funktionen auch als Secure Element für kontaktlose Bezahlvorgänge arbeitet. Auch wenn diese SIM-Karten missverständlich als NFC-SIM bezeichnet werden, können sie keinesfalls direkt über NFC mit dem Bezahlterminal kommunizieren. Stattdessen nutzen sie die NFC-Schnittstelle des Smartphones. Die Apple-Geräte sind seit dem iPhone 6 bereits mit einem Secure Element ausgestattet, welches von Apple Pay genutzt wird. Auch die Apple Watch ist vorbereitet.

Kreditkarte aus der Cloud

Bezahlvorgang mit NFC-SIM - Bezahlvorgang mit Cloud Based Payment

Technisch anspruchsvoller ist das sogenannte Cloud Based Payment, das ohne Secure Element beim Nutzer auskommt – und mit stark eingeschränktem Vertrauen gegenüber seiner Hardware. Die geheimen Krypto-Schlüssel lagern hier nicht beim Nutzer, sondern beim Betreiber des Bezahlsystems. Sie sind dort in Hardware-Sicherheitsmodulen (HSM) gespeichert, die sicherstellen, dass der Schlüssel zwar genutzt, aber keinesfalls ausgelesen werden kann. Das führt allerdings zu einem neuen Problem: Die Netzwerkanbindung des Smartphones ist zu unzuverlässig, um während des Bezahlvorgangs mit dem Secure Element in der Cloud zu kommunizieren. An vielen Orten, an denen Kreditkarten eingesetzt werden, gibt es sehr schlechten oder gar keinen Handyempfang – etwa in großen Möbelhäusern oder im Duty-Free-Shop des Kreuzfahrtschiffs. Zudem muss die Transaktion sehr schnell über die Bühne gehen.

Deshalb bekommt die App im Vorfeld aus der Cloud alle nötigen Daten, um eine bestimmte Anzahl Transaktionen offline durchführen zu können. Es handelt sich um Transaktions-Schlüssel, die etwa bei MasterCard-Zahlungen jeweils nur für eine Buchung genutzt werden – ähnlich wie die TAN beim Online-Banking. Die Bezahl-App Boon zum Beispiel hält fünf dieser Schlüssel vor. Die Übertragung erfolgt verschlüsselt, damit die Schlüssel nicht auf dem Transportweg mitgeschnitten werden können. Sind die vorgehaltenen Transaktions-Schlüssel verbraucht, muss die App neue vom Server des Betreibers abholen, ehe weitere Zahlungen möglich sind. Mithilfe dieser Schlüssel generiert die App das sogenannte Kryptogramm, das sie anschließend über NFC ans Terminal schickt. Die Gegenstelle kann die Transaktion damit zweifelsfrei verifizieren.

Android als Smartcard

Um die NFC-Kommunikation mit dem Terminal kümmert sich unter Android die mit Version 4.4 (Kitkat) eingeführte Host Card Emulation (HCE). Über diese Schnittstelle können sich Apps als NFC-Smartcards ausgeben – ganz gleich, für welchen Zweck. HCE ist kompatibel zum Standard EMV Contactless, den auch kontaktlose Kreditkarten nutzen. Die Schnittstelle liefert dem Terminal eine Liste der möglichen Kartenanwendungen – etwa Kreditkartenzahlungen über Mastercard oder Visa. In diese Liste tragen sich alle Apps ein, die eine Karte emulieren möchten. Anschließend wählt das Terminal eine Anwendung aus und die HCE leitet den Datenverkehr an die dazugehörige Android-App durch, die alles Weitere übernimmt.

Schutzmaßnahmen

Das Cloud Based Payment ist für den Betreiber nicht nur günstiger als der Einsatz von Plastikkarten, es ist in einigen Punkten auch sicherer: NFC-Kreditkarten verraten über Funk nämlich die Kreditkartennummer, das Ablaufdatum und zum Teil sogar den Namen ihres Besitzers. Bei manchen Karten wie der Miles & More Credit Card lassen sich sogar die letzten zehn Buchungen auslesen. Um die Daten einzusammeln, ist keine teure Spezialhardware nötig: Es genügt ein NFC-fähiges Android-Smartphone und eine Gratis-App wie „Scheckkarteleser NFC (EMV)“. Dieses Datenleck ist nicht theoretisch, die ARD-Sendung „Report München“ hatte es bereits im Jahr 2012 praktisch demonstriert. Ein Ganove kann mit den abgegriffenen Daten jedoch nicht ohne Weiteres bezahlen, da man bei kartenlosen Online-Zahlungen in der Regel auch den Sicherheitscode (Card Validation Code, CVC) benötigt, der auf der Rückseite der Karte steht. Dieser wird nicht via NFC preisgegeben.

Bei den simulierten Karten gibt es dieses Datenleck nicht. Sie übertragen niemals die tatsächliche Kreditkartennummer des Nutzers. Es kommt lediglich ein Token zum Einsatz, das wie eine Kreditkartennummer aussieht. Nur der Bezahldienstleister kann davon auf die Kreditkartennummer schließen. Um das Missbrauchsrisiko zu senken, sind mit den Token nur Transaktionen per Terminal erlaubt – wer ein Token abgegriffen hat, kann damit also nicht online einkaufen gehen.

Die vom Bezahldienst gelieferten Transaktions-Schlüssel sind auf dem Gerät unter anderem durch die Applikations-Sandbox von Android geschützt. Sie stellt sicher, dass eine App nicht auf die Anwendungsdaten einer anderen App zugreifen kann. Durch das Rooten lässt sich diese Schutzmaßnahme jedoch gezielt umgehen. Mit Root-Rechten kann eine Trojaner-App nicht nur die Krypto-Schlüssel auslesen, sondern auch die Eingabe der Zugangsdaten belauschen. Deshalb verweigern Bezahl-Apps wie Boon die Ausführung, wenn sie eine solche Modifikation erkennen. Die Kehrseite der Medaille ist, dass dadurch Nutzer ausgeschlossen werden, die ihr Gerät bewusst gerootet haben, um tiefgehende Änderungen am System vorzunehmen. Die Apps müssen sich nicht auf die Sandbox verlassen, sondern können die kritischen Daten zusätzlich verschlüsseln. Die Übertragung der Krypto-Codes ist durch die Transportverschlüsselung SSL/TLS geschützt. Darüber hinaus kann die App die Verbindung durch eine zusätzliche Verschlüsselungsschicht schützen.

PIN gegen Missbrauch

Die Cloud-Based-Payment-Spezifikation sieht vor, dass der Nutzer alle Transaktionen autorisiert, etwa durch PIN oder Fingerabdruck. Das ist gegenüber kontaktlosen Kreditkarten ein erheblicher Sicherheitsgewinn: Bei den Plastikkarten gehen kleinere Transaktionen bis 25 Euro hierzulande ohne Unterschrift oder PIN über die Bühne. Wer Zugriff auf die Karte hat, kann damit also auch zahlen. Zudem kann ein Angreifer die Funkstrecke zwischen Terminal und NFC-Kreditkarte verlängern. So kann er Transaktionen durchführen, während sich die Karte in der Geldbörse ihres Besitzers befindet. Und das ist keine Hexerei: Der Angreifer benötigt lediglich zwei NFC-fähige Android-Smartphones, auf denen für jedermann zugängliche Apps wie NFC Proxy laufen. Ein Smartphone wird an das Terminal gehalten, das andere an die kontaktlose Kreditkarte. Die Smartphones sind über WLAN miteinander verbunden und leiten den NFC-Datenverkehr einfach durch – die Funkstrecke wird so verlängert. Bei der Cloud-Kreditkarte fällt dieses Angriffsszenario flach, da ohne PIN-Eingabe oder Fingerabdruck keine Zahlung durchgeführt wird.

Am aussichtsreichsten ist ein Angriff über die Zugangsdaten des Nutzers, mit denen sich die Bezahl-App beim Dienstleister anmeldet. Damit kann ein Angreifer versuchen, die App einzurichten und anschließend Zahlungen vorzunehmen. Die Betreiber versuchen daher, die Identität des Nutzers über einen zweiten Faktor zu verifizieren. Boon etwa sendet einen Bestätigungscode per SMS, den die App automatisch ausliest. Um die App einzurichten, benötigt der Angreifer also auch die Kontrolle über die Handynummer seines Opfers. Zudem können die Betreiber einen digitalen Fingerabdruck des Smartphones nutzen, in den zum Beispiel Gerätemodell, Mobilfunk-Provider, Android-Version und Seriennummer einfließen. Ändert sich der Fingerabdruck, kann dies ein Indiz dafür sein, dass der Account missbraucht wird – etwa, wenn sich der Account plötzlich über einen Mobilfunk-Provider im Ausland einloggt und eine bisher nicht genutzte Gerätesprache eingestellt hat.

Sicher & Smart

Bisher sieht es so aus, als wäre die Kreditkarte im Smartphone eine gute Alternative zum Plastik im Portemonnaie. Virtuelle Kreditkarten sind komfortabel und den Plastikkarten beim kontaktlosen Bezahlen in puncto Sicherheit sogar überlegen. Man kann davon ausgehen, dass mit zunehmender Verbreitung auch die Motivation der Kriminellen wächst, die neuen Verfahren zu missbrauchen. Offensichtliche Schwächen scheint es momentan jedoch nicht zu geben. (rei@ct.de)