Titelbild zum Artikel „Ticketvalidierung per QR: was an der Tür passiert“
Technologie

Ticketvalidierung per QR: was an der Tür passiert

5 Min. Lesezeit
QR-Code erstellen

Verkaufen Sie 300 Tickets, und jemand schickt einen Bildschirmabzug seines Tickets an eine Freundin weiter. Ticketbetrug bei kleinen und mittleren Veranstaltungen ist fast nie ein gefälschter Code, sondern derselbe echte Code, der zweimal an der Tür auftaucht. Sobald Sie wissen, was in einem Ticketcode tatsächlich steht, liegen die Gegenmaßnahmen offen, und ebenso, welche Sie sich sparen können.

Was wirklich im Code steckt

Bei den meisten Ticketsystemen enthält der Code eine einzige Sache: eine ID. Eine lange Zufallszeichenkette, die auf einen Datenbankeintrag mit Käufer, Tickettyp und einem Statusfeld verweist. Der Code selbst beweist nichts, und das ist Absicht. Jedes Handy kann jeden QR-Code dekodieren, im Code kann also nichts Geheimes mitfahren. Die gesamte Sicherheit lebt serverseitig, im Abgleich. Ein längerer oder dichter aussehender Code ist kein sichererer Code; was zählt, ist, was der Server tut, wenn diese ID eintrifft.

Die Variante ist eine signierte Nutzlast: die Ticketdaten plus eine kryptografische Signatur, sodass eine Scanner-App mit dem passenden öffentlichen Schlüssel die Echtheit ganz ohne Netz prüfen kann. Veranstaltungsorte mit Funklöchern nutzen das. Die Signatur beweist "wir haben das ausgestellt"; sie kann nicht beweisen "das wurde noch nicht benutzt", wofür weiterhin ein gemeinsamer Zustand nötig ist. Die meisten Veranstaltungen laufen auf dem reinen ID-Modell, und genau das implementieren Allzweck-Plattformen.

Die halbe Sekunde nach dem Scan

Die Validierung ist eine kurze, strenge Abfolge:

  1. Der Scanner dekodiert den QR-Code und extrahiert die Ticket-ID.
  2. Er fragt den Server ab, oder eine lokal synchronisierte Kopie der Ticketliste.
  3. Der Server prüft, ob das Ticket existiert und zu dieser Veranstaltung und diesem Datum passt.
  4. Er prüft den Status: Wurde das Ticket schon benutzt, wird der Bildschirm rot und zeigt, wann und an welchem Einlass der erste Scan passierte.
  5. Ist es gültig, markiert er das Ticket als benutzt und zeigt Grün. Dieser letzte Schreibvorgang ist das gesamte Sicherheitsmodell.

Alles, was einen Veranstalter interessiert (Tempo der Schlange, doppelte Eintritte, Offline-Verhalten), lebt in den Schritten 2 und 5.

Zwei Einlässe, ein Ticket: die Race Condition

Stellen Sie sich vor, Einlass A und Einlass B scannen Kopien desselben Codes innerhalb derselben Sekunde. Beide führen die Statusprüfung aus, beide sehen "unbenutzt", beide lassen herein. Die Lösung ist serverseitig: Statusprüfung und Als-benutzt-Markieren müssen als eine atomare Operation passieren, nicht als Lesen gefolgt von Schreiben. Gut gebaute Systeme tun das, und es ist eine faire Frage, die Sie jedem Ticketanbieter direkt stellen können.

Der Offline-Modus reißt das Loch wieder auf. Wenn Einlässe die Ticketliste zwischenspeichern und alle paar Minuten synchronisieren, kann ein duplizierter Code innerhalb eines Sync-Fensters an zwei verschiedenen Türen durchgehen. Die Gegenmaßnahmen sind organisatorisch, nicht kryptografisch: Fahren Sie einen einzigen Eingang, wenn die Besucherzahl es erlaubt, weisen Sie Tickettypen bestimmten Einlässen zu, und behandeln Sie das Restrisiko als das, was es ist, eine Handvoll möglicher Doppeleintritte statt eines Systemversagens.

Screenshots sind das Bedrohungsmodell

Eine gültige Ticket-ID ist eine lange Zufallszeichenkette, und eine zu erraten ist kein realistischer Angriff, Fälschung gegen servervalidierte Tickets ist also praktisch vom Tisch. Das realistische Problem ist Vervielfältigung: Ein Käufer teilt einen Screenshot mit Freunden oder verkauft dasselbe PDF an drei Personen weiter. Jede Kopie ist gleich echt. Der erste Scan gewinnt, und die an der Tür abgewiesene Person ist manchmal der rechtmäßige Käufer, was aus einem Betrugsproblem einen Streit am Erstattungsschalter macht.

Große Veranstaltungsorte kontern mit rotierenden Barcodes: Die offizielle App erzeugt den Code etwa alle 15 Sekunden neu aus einem rotierenden Geheimnis (Ticketmasters SafeTix ist das bekannteste Beispiel), ein Screenshot veraltet also, bevor sein Besitzer den Einlass erreicht. Der Preis ist happig. Besucher brauchen die App, ein Konto, Akku und meist eine Verbindung, und Weitergaben funktionieren nur innerhalb der Plattform. In einer Arena mit 20.000 Plätzen lohnt der Tausch; auf einer Konferenz mit 200 Personen ist er Reibung ohne Gegenwert. Wo Vervielfältigung im Vergleich zu anderem QR-Missbrauch rangiert, zeigt der QR-Code-Sicherheitsüberblick.

Was eine kleine Veranstaltung wirklich braucht

Unter ungefähr 500 Besuchern lautet die ehrliche Antwort: eine Check-in-Liste und irgendein Handy. Generieren Sie einen eindeutigen Code pro Ticket, lösen Sie jeden Scan zu einem Besucherdatensatz auf, markieren Sie Ankünfte. Eine moderne Handykamera liest einen Code vom Bildschirm eines anderen Handys in etwa einer Sekunde, dedizierte Scanner-Hardware löst also ein Durchsatzproblem, das Sie nicht haben. QRollings Event-QR-Code-Generator deckt die gehostete Veranstaltungsseite ab, und die Massengenerierung in der Bezahlstufe erzeugt die Codes pro Ticket; eine Tabelle kann die Check-in-Liste sein, solange das Team klein bleibt. Halten Sie eine gedruckte Besucherliste an der Tür als Reserve; wenn ein Akku stirbt oder das Veranstaltungs-WLAN wegbricht, funktioniert Papier weiterhin.

Die Tür selbst (Personal, Schlangenfluss, WLAN-Rückfallebenen, was das Empfangsteam sagt, wenn ein Scan fehlschlägt) ist eine eigene Disziplin, und wir behandeln sie in Event-Check-in mit QR-Codes, erschienen parallel zu diesem Beitrag.

Besucherzahl, Namen auf dem Ticket und der Einlass

Die Versammlungsstättenverordnungen der Länder legen für größere Veranstaltungsräume eine höchstzulässige Besucherzahl fest, und der Betreiber muss sie einhalten. Ein Scansystem an der Tür liefert genau die Zahl, nach der die Behörde oder die Brandsicherheitswache fragt, und zwar laufend statt als Schätzung aus dem Vorverkauf. Wenn Sie sich darauf stützen wollen, muss der Zähler entweder Ausgänge kennen oder klar als Summe der Einlässe beschriftet sein. Ein Zähler, der Wiedereintritte nach der Pause doppelt zählt und als Anwesenheit ausgibt, ist im Zweifel schlechter als gar keiner.

Personalisierte Tickets erschweren den Weiterverkauf, haben hier aber zwei Nebenwirkungen. Der Name ist am Einlass für alle Umstehenden sichtbar, und die Scanprotokolle sagen, wer wann wo war. Erheben Sie deshalb nur, was die Kontrolle wirklich braucht, lassen Sie auf dem Prüfgerät möglichst nur ein grünes oder rotes Feld erscheinen statt eines vollständigen Datensatzes, und legen Sie vor dem Verkaufsstart fest, wie lange die Einlassprotokolle bleiben. Wenn Sie den Weiterverkauf beschränken wollen, gehört das in Bedingungen, die vor dem Kauf erreichbar sind, und nicht auf die Rückseite des Tickets, wo es niemand vor der Zahlung liest.

Und rechnen Sie mit Gästen ohne Smartphone, die es in jedem deutschen Publikum gibt. Ein ausgedrucktes Ticket muss am Einlass genauso funktionieren wie ein Bildschirm, ein Code auf Thermopapier muss auch nach einem Tag in der Jackentasche noch lesbar sein, und eine Liste auf Papier muss den Ausfall des Netzes überbrücken. Wer nur den Bildschirm vorsieht, baut eine Tür, an der ein Teil der zahlenden Gäste hängen bleibt, und diese Gäste stehen dann genau dort, wo die Schlange entsteht.

Erstattungen und Weitergaben müssen den alten Code entwerten

Eine Erstattung ist erst abgeschlossen, wenn der Server den Status dieses Tickets auf ungültig setzt; der Käufer hat das PDF weiterhin, und es muss ab diesem Moment rot scannen. Weitergaben laufen genauso: Der Empfänger bekommt eine frische Kennung, das Original wird entwertet, sonst erzeugt eine freundliche Weitergabe stillschweigend zwei funktionierende Kopien. Das ist auch das leise Argument gegen vollständig offline geprüfte signierte Tickets: Eines zu widerrufen heißt, eine Sperrliste an jeden Einlass zu verteilen.

Bevor bei Ihrer nächsten Veranstaltung die Türen öffnen, machen Sie den Zwei-Handy-Test: Nehmen Sie ein echtes Ticket, erstellen Sie einen Screenshot und versuchen Sie, mit beiden Handys einzuchecken. Zeigen beide Grün, haben Sie das Gespräch gefunden, das Sie mit Ihrem Ticketsystem führen sollten, solange es noch nichts kostet.

Diesen Artikel teilen