published on in Creations

Onlinetickets der Deutschen Bahn

[Update: 2012 habe ich mir Tickets erneut angesehen.]

eh2010-bahn

Pünktlich zu Ostern wird es endlich Zeit, mal zu zeigen, was sich denn in den Barcodes der Onlinetickets der Bahn alles an Informationen findet und daraus abzuleiten, wie wohl deren System funktioniert.

Ganz dumm haben sie sich dabei nicht angestellt, sondern – und das war der unerwartete Teil – mal ausnahmsweise alles richtig gemacht: Die Ticketdaten werden zlib-komprimiert, dieser Blob dann DSA signiert und das alles mit dem „Aztec“ Matrixcode auf’s Ticket gebracht. Die mobilen Endgeräte prüfen (hoffentlich) die Signatur und speichern einen Kontrolldatensatz, der später mit der Datenbank abgeglichen wird, sodass sie zumindest erkennen, wenn stornierte Tickets oder das selbe Ticket mehrfach genutzt wurden (Quelle).

Letztendlich scheinen die mobilen Kontrollgeräte der vermutlich einzig verwundbare Punkt. Käme man an die Firmware ließen sich sicherlich Wege finden, diese trotz falscher Signatur von einem echten Onlineticket zu überzeugen. Ansatzpunkte wären beispielsweise Carrier-IDs die dem Gerät unbekannt sind, fehlerhafte ASN.1-codierte Signaturen oder gar Pufferüberläufe durch zu lange Payloads (Dank zlib-Kompression passt ja einiges in den Barcode).

Weitere Ressourcen: