Plattform-Security: Sichere Authentifizierung und selbstsouveräne Nutzerprofile

Autor/Redakteur: Stefan Adolf, Developer Ambassador bei Turbine Kreuzberg/gg

Digitale Plattformen erfordern ein hohes Maß an Sicherheit und Datensparsamkeit, um das Vertrauen der Nutzer nicht zu verlieren. Wie können wir heute dennoch notwendige Profildaten sicher und unkompliziert austauschen? Von OAuth und JWT zu selbstsouveräner Identität.

Bild: Turbine Kreuzberg

Selbst populäre Handelsplattformen wie Wish oder Etsy bieten ihn inzwischen als Standard an: den Login-Knopf für Google, Facebook oder Apple, gemeinhin bekannt als “Single Sign On”, oder fachlich korrekt: föderalisierte Anmeldeverfahren. Zentral kontrollierte Nutzerprofile sind für alle Akteure vorteilhaft. Laut verschiedenen Umfragen geben mehr als 80 Prozent der Benutzer an, dass sie es als störend empfinden, auf Websites neue Konten erstellen zu müssen. Ein Drittel der Verbraucher bricht den Online-Einkauf ab, weil sie sich nicht an ihre Passwörter erinnern – so heißt es in einer Studie von MasterCard und der University of Oxford. Ein Login mit Hilfe eines Social Media Accounts kann also die Konversionsrate und Kundenbindung steigern. Aber es gibt auch eine Schattenseite: Vor etwa drei Jahren gab es bei Facebook eine massive Datenschutzverletzung, die sich auf mehr 50 Millionen Nutzer auswirkte. Sie legte jedes externe Konto offen, bei dem sich die Betroffenen mit Facebook angemeldet hatten. Eine Studie fand zudem bei einer Untersuchung von insgesamt 95 Web- und Mobil-Diensten zahlreiche Fehler bei der Implementierung von solchen Login-Verfahren. Seitdem haben Daten-Hacks und -Lecks eher zu- als abgenommen.

Um das Internet sinnvoll nutzen zu können, sind Authentifizierungsprozesse freilich notwendig. Wie sollte man sonst bequem sein Facebook-Profil updaten, seine Lieblingsmusik by Spotify hören oder eine Bestellung veranlassen? Die Datenschutzgrundverordnung verlangt von den Plattformbetreibern ein hohes Maß an Sicherheit und Datensparsamkeit ihrer Systemarchitektur. Sie sehen sich folglich mit einer Reihe von Fragen konfrontiert: Wie vermeidet man es, unnötig viele persönliche Informationen der Kunden auszutauschen oder zu speichern? Welche beteiligten Parteien können auf die Nutzerdaten zurückgreifen? Wer kann sie zu welchem Zeitpunkt im Klartext lesen, und wie lässt sich ein DSGVO-konformer Audit-Trail über die Zugriffe realisieren? Letztlich muss das Ziel sein, Anmeldedaten und Profilinformationen zu föderalisieren, ohne dabei sicherheitskritische Nutzerprofile zu sammeln. Im folgenden werfen wir einen Blick auf die gegenwärtigen Verfahren sowie ihre Vor- und Nachteile.

OAuth (Open Authorization)

Um nicht ständig ein neues Profil bei jedem Anbieter erstellen zu müssen, erfanden 2012 zunächst Facebook und Twitter für ihre Nutzer das Authentifizierungsprotokoll OAuth, heute auch bekannt als Internet-Standard RFC 6749, der die genannten “Login mit…”-Buttons ermöglicht. OAuth definiert, wie zwei einander bekannte Dienste im Namen der User auf die Ressourcen des jeweils anderen zugreifen können, ohne Anmeldeinformationen miteinander zu teilen. Wer ein Konto bei Facebook hat, kann es also zum Login bei anderen Diensten verwenden, ohne ihnen Passwort oder E-Mail-Adresse preiszugeben.

Man kann sich das Prinzip wie in einem Hotel vorstellen. Eine Kundin geht zur Rezeption, zeigt ihren Personalausweis und ihre Kreditkarte, und erhält dafür eine Schlüsselkarte, mit der sie ihre Zimmertür öffnen, ein Fahrrad leihen und im Restaurant bezahlen kann. Auf der Karte selbst stehen keinerlei Informationen über die Kundin; wichtig ist nur, dass sie die Karte besitzt. Online funktioniert es ähnlich: Möchte sich eine Kundin zum Beispiel mittels „Sign up with Google“ bei Etsy registrieren, leitet Etsy sie über einen individualisierten URL zu Googles Anmeldedienst weiter. Der URL enthält lediglich Informationen über die anfragende Plattform (Etsy), den generellen Anmeldewunsch sowie eine Liste von Freigaben auf bestimmte Bereiche (Scopes) des Google-Profils der Nutzerin. Google erkennt, dass die Anfrage von Etsy stammt, und zeigt der Nutzerin einen Dialog an, welche Informationen Etsy von ihr anfordert. Stimmt die Kundin dem Datenaustausch zu, sendet die Google-API ein einmaliges Grant-Token an den Etsy-Server, der wiederum mit einem nur zwischen ihm und Google bekannten Geheimnis antwortet. Im letzten Schritt stellt Google ein Access-Token zur Verfügung, das die Authentifizierung und Freigaben der Kundin repräsentiert. Dieses Access-Token ist die Analogie zur Schlüsselkarte: Wer es besitzt, handelt im Namen der Kundin und hat Zugriff auf die in ihm vermerkten Google-Ressourcen. Access-Tokens werden üblicherweise im Browser der Nutzerin gespeichert und müssen nach einiger Zeit erneuert werden.