Freitag, 27. Mai 2011

Hintergründe und Einschätzungen zu Google Wallet

Gestern hat Google sein neues Bezahlsystem per NFC vorgestellt: Google Wallet. Googles offizielle Infoseiten dazu sind hier.
Prinzip: Man besitzt ein Handy, das NFC (Near Field Communication) beherrscht, einen Funkstandard, der nur über wenige Zentimeter überträgt – ein Kandidat ist hier zum Beispiel das Nexus S. Auf diesem Handy ist die App Google Wallet installiert. Per Knopfdruck kann man damit dann bezahlen, wenn der Händler über entsprechende Möglichkeiten verfügt.
Update: Laut TechCrunch soll es für Handys ohne NFC-Funktion bald Aufkleber geben, die die Funktion zumindest teilweise nachrüsten: Statt beliebiger Karten sollen die Aufkleber eine einzelne Karte repräsentieren, die schon beim Kauf festgelegt ist. Der Aufkleber beinhaltet also gewissermaßen die Karte.
Wie das funktionieren soll, ist mir aber nicht ganz klar. Der Aufkleber selbst kann natürlich RFID-ähnlich ohne eigene Stromversorgung mit dem NFC-Terminal kommunizieren; eine entsprechende aktiv-passiv-Kommunikation ist bei NFC (neben aktiv-aktiv-Kommunikation zwischen zwei Handys oder Terminal und Handy) jedenfalls spezifiziert. Die Frage ist, wie die Google-Wallet-App mit dem Aufkleber kommunizieren soll, bzw. ob das überhaupt vorgesehen ist, und wenn nein, wie dann die Bezahlung authentifiziert werden soll. PIN-Eingabe am Terminal statt am Handy, vielleicht? Dann könnte man aber das Handy gleich weglassen, und der TechCrunch-Artikel behauptet ja auch, dass Google Wallet sich irgendwie mit dem Aufkleber austauschen soll. Aber welche Funk-Standards, die ein normales Handy beherrscht, könnten dafür verwendet werden? Man darf gespannt sein, was Google da noch aus dem Hut zaubert.
Anscheinend verfügt ein gewisser „PayPass“ von MasterCard bereits über NFC-Technik, jedenfalls wird die Bezahlung per Handy in den USA überall dort möglich sein, wo dieser PayPass akzeptiert wird.
Bislang ist das Ganze beschränkt auf das Nexus S 4G bei Sprint, die Portierung auf weitere Geräte wird aber natürlich folgen.
Weiterhin kann man über das System Gutscheine einlösen, die man via Google Offers bekommen hat – ein weiteres Google-System, das sich derzeit in der Betaphase befindet, und über das man gewissermaßen Gutscheine und Rabattmarken für eine bestimmte Region abonnieren kann.
Natürlich sollen neben Citi, MasterCard, Sprint und Google Offers in Zukunft weitere Partner hinzukommen, eine entsprechende API ist in Vorbereitung. Wann das Ganze auch außerhalb der USA verfügbar sein wird, ist noch unklar.

Für die Sicherheit ist (zumindest theoretisch) gesorgt: Ähnlich dem Chip auf einer ec- oder HBCI-Karte gibt es auf dem Telefon ein sogenanntes „Secure Element“, das die Daten, z.B. die Kreditkartendaten, speichert. Es ist hardwaretechnisch völlig getrennt vom restlichen Telefon und dem Betriebssystem; die Daten liegen also nicht im normalen Speicherbereich.
Man kann sich die Kommunikation der Wallet-App mit dem Secure Element vorstellen wie die mit einem Server im Internet: Die App stellt Anfragen und erhält Antworten, aber nur, wenn sie die richtigen Schlüssel liefern kann.
Natürlich schützt das nicht vor dem Durchsuchen des Speichers, wenn die Wallet-App erst einmal die Daten vom Secure Element bekommen hat (was allerdings Root erfordert), und auch nicht vor Key Loggern (erfordern ebenfalls Root) oder bösartigen Tastatur-Programmen, die der User installiert hat, die alle Tastendrücke mitprotokollieren (so etwas ist bislang nicht bekannt, könnte aber programmiert werden). (siehe Update unten)
Ich vermute deshalb, dass Google, um die letzten beiden Möglichkeiten auszuschließen, das Secure Element nicht allgemein zugreifbar machen wird, d.h. nicht jedes Programm, das das Master-Passwort kennt, kann das Secure Element abfragen, sondern nur Programme, die wiederum von Google dazu authorisiert wurden und über einen entsprechenden Schlüssel verfügen. Update: Das ist tatsächlich der Fall, siehe die FAQ zu Google Wallet unter „Security and Privacy“.
Erstere Möglichkeit (Speicherdurchsuchung) ist ausgeschlossen, wenn das Telefon nicht gerootet wurde. Denkbar, dass Google ähnlich dem Musikdienst den Bezahldienst auf Telefone beschränkt, die nicht gerootet und/oder mit Custom ROMs versehen wurden.
Die App selbst ist natürlich nur mit PIN-Eingabe zugänglich.
Update: Der Kommentator unten hat recht: Solange mit dem Secure Element nur Transaktionen signiert werden, wie es etwa bei Kauf-Vorgängen der Fall ist (und auch beim Aufschließen, wo das Schloss sich vom Schlüssel einen zufälligen String signieren lässt, um sicherzugehen, dass der Schlüssel echt ist), haben Angreifer ziemlich schlechte Karten. Denn alles Speicherdurchsuchen hilft nichts, wenn da nur die Transaktion ist, die Google Wallet vom Kartenterminal bekommen hat, und später dann die Signatur dazu. Wenn so ein Terminal nicht dumm genug ist, dass es sich eine zwischendurch geänderte Transaktion unterschieben lässt (was hoffentlich nicht der Fall ist; vmtl. bekommt es nur die Signatur, nicht die signierte Transaktion zurück), ist der Angreifer selbst dann aufgeschmissen, wenn er Root und volle Zugriffsmöglichkeiten auf das Secure Element hat.
Außer es gibt Möglichkeiten, „Hersteller-Codes“, die das Secure Element dazu bringen, seine Private Keys rauszurücken. Das wird aber hoffentlich nicht der Fall sein – außer Speichern und Löschen geht hoffentlich gar nichts. Damit könnte der Angreifer dann nur Keys löschen und damit das Bezahlen verhindern. Selber Bezahlen könnte er nur, wenn er das Telefon gefunden hat und die PIN zu Google Wallet herausfindet, nicht als Programmierer eines Trojaners.
Angenommen, der Angreifer hätte vollen Zugang zum Secure Element erreicht. Natürlich könnte er sich beliebige Transaktionen signieren lassen. Aber was hilft ihm das, wenn er sie nirgendwohin übertragen kann? Das geschieht ja erst durch das Terminal beim Kauf, und das lässt sich ja nur die eigene Transaktion signieren.
Anders wäre es, wenn man das Secure Element ohne NFC einsetzen würde, etwa zum Online-Banking. Um das richtig sicher zu machen, bräuchte das Secure Element eine eigene Tastatur für die PIN-Eingabe. Vielleicht angeschlossen per NFC? :-) Mal sehen, was es da in Zukunft noch für Möglichkeiten geben wird.

Soweit zum Technischen.
Die eigentliche Frage aber ist: Will ich das?
Irgendwie klingt das Ganze ja schon recht praktisch. In 5-10 Jahren könnte es theoretisch so weit sein, dass man den Geldbeutel eigentlich zu Hause lassen kann und statt dessen alles mit dem Handy macht: Bezahlen natürlich, aber das Smartphone könnte dann auch Fahrkarte, Personalausweis, Reisepass und Führerschein sein – und Haus- und Autoschlüssel!
Das wäre schon super.
Um die Sicherheit mache ich mir nicht einmal große Gedanken – letztlich wäre das sicherer als ein Geldbeutel, weil vor all den Daten noch eine PIN steht, was ja für Kreditkarten, Personalausweise und erst recht für Fahrkarten, Bargeld und Schlüssel so nicht gilt. Sperren lassen kann man die Karten ja so oder so, und ich kann mir vorstellen, dass es dann auch die viel praktischere Lösung der Remote-Löschung des Wallet-Inhalts geben wird – als ersten Versuch mit Erfolgsbestätigung natürlich nur; denn wenn der Dieb das Handy vom Netz trennt, könnte er ja trotzdem damit bezahlen (falls er die PIN kennt), deshalb muss das ganz normale Sperren im Misserfolgsfall auf jeden Fall ebenfalls vollzogen werden.
Natürlich besteht immer die Möglichkeit, dass findige Hacker doch Möglichkeiten finden, irgendwie in das System einzudringen. Die hardwaretechnische Lösung verspricht aber zumindest, das sehr schwer zu machen – letztlich dürfte das Mitführen eines Geldbeutels tatsächlich gefährlicher sein.

Der Punkt, der mir weniger gefällt ist aber ein ganz anderer, zu dem ich allerdings ziemlich wenig Informationen gefunden habe: Was weiß Google über mich, was wissen die Verkäufer über mich, wenn ich das System benutze?
Schließlich sollen in Zukunft auch Rabattkarten a la Payback ihren Weg in den Google-Geldbeutel finden.
Ich vermute allerdings, dass das letztlich nicht viel anders sein wird als heute: Da Google Wallet in den USA mit bereits existierender Infrastruktur eingeführt wird, dürften wohl keine zusätzlichen Daten übertragen werden, d.h. was ich einkaufe, wird Google nicht mitbekommen. Das ist schon deshalb sehr wahrscheinlich, weil gerade große Ketten und Betreiber von Kartensystemen wie Payback mit Argusaugen darüber wachen werden, dass ihr Kapital, ihre Daten also, schön bei ihnen bleiben und nicht an Dritte weitergegeben werden – schon gar nicht an einen Riesen wie Google, der ihnen ganz schnell das Wasser abgraben könnte.
Das heißt: Einkaufen mit Google Wallet wird nie so anonym sein wie mit Bargeld, dürfte aber umgekehrt auch nicht mehr Daten an alle Beteiligten liefern als der Einkauf per ec- oder Kreditkarte.
Mit einem Unterschied: Neben dem Verkäufer, dem Betreiber des Kartenterminals, der Bank und ggfs. dem Kreditkartenunternehmen weiß auch Google, bei welchen Händlern ich wieviel Geld ausgebe. Und das ist verknüpft mit meinem Google-Konto.
Am Anfang habe ich mich gefragt, was Google eigentlich davon hat, denn laut FAQ verlangt Google weder von Händlern noch von Banken oder Kreditkartenunternehmen Geld für seine Leistung – nur das Interface für die API müssen die Partner selbst programmieren.
Natürlich kann Google damit Android pushen, aber das allein reicht sicher nicht als Grund, um eine derartige Infrastruktur aufzubauen. Zudem halte ich es ohnehin für ausgemacht, dass falls das iPhone 5 NFC-fähig sein wird, und falls Apple Google machen lässt, es auch eine Google Wallet für iOS geben wird, ebenso für andere mobile Betriebssysteme.
Nein – der Punkt ist, dass Google dann weiß, wo ich wieviel Geld ausgebe. Und entsprechend besser kann Google personalisierte Werbung schalten, entsprechend mehr Geld kann Google für die Werbung verlangen („zeige das Banner nur Leuten, die schon in einer unserer Filialen eingekauft haben“), entsprechend besser lassen sich Dienste wie Google Offers verkaufen, weil sie auch für den User interessanter werden, wenn an erster Stelle Gutscheine für Geschäfte erscheinen, in denen man auch wirklich regelmäßig einkauft.

Ja, da kann einem schon mulmig werden. Andererseits ist Google momentan das einzige Unternehmen, bei dem es für mich tatsächlich in Frage kommt, auch diese Daten noch hinzuzufügen – denn Google nutzt meine Daten, klar, aber bislang kenne ich keinen Fall, wo sie in irgendeiner Weise an Dritte weiterverbreitet wurden, wie etwa Facebook es gerne tut. Trotzdem, ein wenig Bauchweh bleibt bei der Vorstellung natürlich schon.
Bin gespannt, wie ich darüber denken werde, wenn Google Wallet hierzulande eingeführt wird, und ob ich dann teilnehmen werde.
Wir werden sehen.

P.S.: Kleiner Mindfuck am Rande: Es ist heute schon ziemlich doof, wenn beim Smartphone der Akku leer ist.
Aber wie wird das erst werden, wenn ich dann keine Fahrkarten mehr habe, nicht mehr bezahlen kann, mich nicht mehr ausweisen kann und nicht einmal mehr mein Auto benutzen kann oder in mein Haus hineinkomme?
Yay! X-)

Kommentare:

  1. Meines Wissens nach ist das Secure Element mehr als ein hardwaremäßig getrennter Speicherbereich im Telefon: Es ist eine komplett eigenständige, integrierte Smartcard, die kryptografische Operationen durchführen kann.
    Eigentlich ziemlich ähnlich wie der Chip auf einer EC- oder Kreditkarte, der dadurch ersetzt werden soll.

    Es bringt einem Trojaner erstmal nichts, die Smartcard auszulesen - man erhält so nämlich nicht den darin gespeicherten Private Key. Man kann der Karte nur eine Transaktion vorlegen, die genau diese eine Transaktion dann signiert und damit autorisiert.

    AntwortenLöschen
  2. Stimmt, das hatte ich nicht richtig durchdacht. Es ist noch sicherer, als ich geglaubt hatte. :-)

    Danke für den Hinweis, ich habs oben geändert.

    AntwortenLöschen