Sicherheitsforscher haben Schwachstellen in der Kommunikation von elektronischen Bezahl-Terminals aufgedeckt, berichten Tagesschau und Süddeutsche Zeitung. Betroffen ist zum einen Poseidon, das Protokoll, über das das Terminal mit dem Zahlungsverkehrsdienstleister kommuniziert und seine Transaktionen abwickelt. Ein anderes Problem lauert in ZVT, einem Netzwerk-Protokoll, über das unter anderem Kassen mit einem Terminal sprechen.

Durch das Ausnutzen dieser Schwachstellen könnte ein Angreifer Magnetstreifendaten und PINs abgreifen (ZVT) oder Gutschriften im Namen des Terminal-Besitzers auf ein beliebiges Konto veranlassen (Poseidon), erklärte Karsten Nohl gegenüber heise Security. Den genaue Sachverhalt will er mit seinen Kollegen Fabian Bräunlein und Philipp Maier auf dem Chaos Congress am 27.12. in seinem Talk zu Shopshifting vorstellen.

Bezahl-Terminals sprechen mit der Kasse via ZVT und mit dem Bezahldienstleister via Poseidon. Beide Protokoll weisen Schwachstellen auf. (Bild: Nohl, SR-Labs)

Transaktionen

Mittelpunkt des Poseidon-Hacks ist die Terminal-ID, mit der sich ein POS-Terminal gegenüber dem Bezahldienstleister ausweist. Wie Nohl und seine Kollegen herausgefunden haben, kann ein Angreifer diese Terminal-ID nach einem Reset neu setzen. Kontaktiert er dann den Bezahldienstleister via Poseidon, kann er Aktionen im Namen des Inhabers des zugehörigen Terminals auslösen – etwa eine Gutschrift auf ein eigenes Konto. Diese Verbindungsaufnahme kann von einem beliebigen Internet-Anschluss und unter Umständen sogar völlig anonyme via Tor erfolgen.

Das ZVT-Protokoll erlaubt es einem Kassensystem unter anderem Bezahlvorgänge über das Terminal anzustoßen. Allerdings sind wichtige Kommandos wie das zum Einleiten einer PIN-Abfrage mit einem Message Authentication Code (MAC) und somit einem Geheimnis gesichert. Das Problem dabei: Dieses Geheimnis ist bei vielen Terminals identisch; es ist hart in einem HSM des Terminals codiert. Gelingt es einem Angreifer an einem Terminal den MAC zu knacken, kann er die jeweiligen Kommandos an jedes Terminal des gleichen Bezahldienstproviders senden, unabhängig vom Terminal-Modell. Genau das ist Nohls Team mittels eines Timing-Side-Channel-Angriffs offenbar gelungen.

Netzzugang

Für einen Angriff via ZVT muss sich der Angreifer im gleichen Netz wie die Bezahl-Terminals befinden. Das ist keineswegs eine unüberwindliche Hürde; es gibt reichlich dokumentierte Fälle, in denen die Kassensysteme und POS-Terminals nahezu ungeschützt im Netz von Supermärkten oder Hotels kommunizieren. Der Angreifer kann auf diesem Weg direkt die Magnetstreifendaten einer eingesteckten Karte abfragen. Er könnte auch eine PIN-Abfrage einleiten, doch die PIN sendet ihm das POS-Terminal nicht. Das ist jedoch kein großes Problem, kann er doch einen gefälschten PIN-Eingabe-Dialog initiieren, dessen Resultat ihm das Terminal dann liefert.

Nohl hat die Bezahldienstleister über diese Schwachstellen vorab informiert. Ob und wie man sie beseitigen kann, ist allerdings derzeit nicht klar. (ju)