Single Sign-On (SSO) ist ein Schema zur Authentifizierung, durch welches sich Nutzer bei mehreren Applikationen und Websites anmelden können – und das mit den gleichen Zugangsdaten.
Lauritz Holtmann, Senior Consultant IT Security im usd HeroLab, hat sich wissenschaftlich und in zahlreichen Kundenprojekten mit den Sicherheitsaspekten von Single-Sign-On-Verfahren auseinandergesetzt. Wir haben ihn um seine Einschätzung zu Account- und Datensicherheit gebeten:
„Single Sign-On ist eine elegante Lösung: Praktikabel für die Anwender und auf den ersten Blick auch ein Sicherheitsgewinn: Durch die steigende Anzahl an Diensten, die wir tagtäglich privat wie beruflich nutzen, steigt auch die Anzahl an benötigten Passwörtern. Statt viele schwache Passwörter zu nutzen, die einfach zu merken sind, besteht bei diesem Verfahren die Möglichkeit, ein starkes Passwort gleich für mehrere Dienste zu nutzen.
In einem klassischen Set-up muss sich ein Nutzer bei jedem Dienst mit einem speziell für die Anwendung gewählten Benutzernamen und Passwort authentifizieren. Beim Single-Sign-On-Verfahren, aufgesetzt beispielsweise nach den Frameworks OAuth 2.0 oder OpenID Connect 1.0, wird eine dritte vertrauenswürdige Partei in den Prozess aufgenommen: der sogenannte Identity Provider. Dieser ist verantwortlich für das User Management und kommuniziert über standardisierte Protokolle mit dem sogenannten Service Provider auf unterschiedlichen Kanälen zwecks Authentifizierung („Wer ist der Nutzer?“) und/oder Autorisierung („Was darf der Nutzer?“). Identity Provider, die vermutlich jeder kennt, sind beispielsweise Microsoft Azure, Google und Facebook.
Aber blickt man etwas tiefer, so stecken die Tücken in den Details. Auf Protokollebene lassen sich kleine Fehler in der Konfiguration bereits ausnutzen. Dadurch fällt dem Identity Provider eine mächtige Position in dem Konstrukt zu: Sind in großen Unternehmen beispielsweise mehrere zentrale Anwendungen durch Single Sign-On indirekt miteinander verknüpft, kann eine Kompromittierung nicht nur eine, sondern potentiell mehrere Anwendungen betreffen.
Es gibt dabei viele verschiedene Angriffsszenarien – hier zwei Beispiele: Der Angreifer könnte über die Offenlegung von OAuth-Parametern einen kompletten End-Nutzer-Account auf einem Service Provider übernehmen. Kontrolliert der Angreifer eine Anwendung und setzt der Identity Provider das Zurückziehen von Tokens nicht korrekt um, so kann der Angreifer über das Framework möglicherweise unberechtigten Zugriff auf Nutzerdaten erlangen, selbst wenn der Nutzer die Applikation aus seinem Account bereits entfernt hat.
Um das Risiko eines erfolgreichen Angriffs auf eine Single-Sign-On-Lösung zu reduzieren, empfehlen wir, bereits bei der Implementierung des Frameworks verstärkt auf Sicherheitsaspekte zu achten und von Sicherheitsexperten getroffene Empfehlungen zu befolgen. Da sich Schwachstellen aber in manchen Fällen erst im Zusammenspiel der verschiedenen Parteien ergeben können und sich Angriffsmuster ständig weiterentwickeln, sollten auch danach regelmäßige Sicherheitsüberprüfungen erfolgen.
Meine Kollegen und ich haben bereits zahlreiche Single-Sign-On-Lösungen auf Sicherheitslücken getestet und unterstützen gerne bei einer vollumfänglichen Implementierungsprüfung. Unsere Analyse geht dabei über einen reinen Konfigurationscheck hinaus. Im Rahmen eines Greybox Pentest führen wir eine technische Analyse mit mehreren Tests auf Protokollebene durch. Nur so können wir unseren Kunden konkrete Schwachstellen und entsprechende Maßnahmenempfehlungen aufzeigen.
Single-Sign-On ist, wie bereits gesagt, eine elegante Lösung, die weiterhin vermehrt zum Einsatz kommen wird und Nutzern Komfort und ein Stück weit mehr Sicherheit bietet – aber nur, wenn man Einfallstore abseits der reinen Zugangsdaten bestmöglich reduziert.“
Sie möchten Ihre Single Sign-On Lösung nach OAuth oder OpenID Connect auf Schwachstellen testen lassen? Kontaktieren Sie uns, wir helfen gern.