Bachelor Thesis BCLR-2018-102

BibliographyStötzner, Miles: Über die (Un-)Sicherheit des W3C-WebAuthentication-Entwurfs: Eine Beschreibung und Sicherheitsanalyse.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Bachelor Thesis No. 102 (2018).
81 pages, german.
Abstract

Viele Dienste im Internet authentifizieren ihre Nutzer aufgrund der Benutzerfreundlichkeit durch ein Passwort. Dieses Passwort kann leicht von einem Angreifer in Erfahrung gebracht werden. Eine Lösung für dieses Problem ist der Einsatz mehrerer Faktoren. WebAuthentication (WebAuthn) ist ein Entwurf eines Standards, der auf eine benutzerfreundliche Weise einem Nutzer ermöglicht, sich bei einer Relying Party mithilfe eines asymmetrischen Schlüsselpaares durch das Signieren einer von der Relying Party generierten Nonce, die sogenannte Challenge, unter Einsatz von mehreren Faktoren passwortlos zu registrieren und authentifizieren. Während einer Registrierung oder Authentifizierung ist jeweils eine Relying Party, ein WebAuthn Client und ein Authenticator beteiligt. Der Authenticator ist für das Generieren des asymmetrischen Schlüsselpaares und für das Bereitstellen von Signaturen zuständig. Dabei muss jede Aktion von dem Nutzer autorisiert werden. Der WebAuthn Client befindet sich zwischen der Relying Party und dem Authenticator und ist für die Authentifizierung der Relying Party zuständig, sodass keine Aktion im Namen einer anderen Relying Party durchgeführt werden kann. Hierfür wird ein sicherer Kontext benötigt - d.h. die Verbindung ist über HTTPS gesichert. Während einer Registrierung wird ein asymmetrisches Schlüsselpaar generiert, dessen öffentlicher Schlüssel bei der Relying Party hinterlegt wird. Indem eine Signatur über die Challenge mit dem zugehörigen privaten Schlüssel generiert wird, kann sich ein Nutzer daraufhin authentifizieren. Teil dieser Arbeit ist eine Implementierung einer Relying Party, die WebAuthn für die Authentifizierung ihrer Nutzer verwendet. Hierfür betrachten wir neben der Implementierung eines Severs die Verwendung der WebAuthentication API. In einer informellen Sicherheitsanalyse untersuchen wir die Sicherheit des Protokolls, indem wir aufführen, wieso die während einer Registrierung bzw. Authentifizierung durchzuführenden Überprüfungen der einzelnen Parteien notwendig sind und welche Auswirkungen das Verwenden verschiedener Optionen von WebAuthn hat. Des Weiteren untersuchen wir die Kommunikationskanäle im Hinblick auf einen Man-in-the-Middle (MitM) und welche Gefahr von diesem ausgeht. Während der Sicherheitsanalyse betrachten wir einen Angriff auf das Authentifizierungsverfahren und widerlegen die in der Spezifikation aufgeführte Behauptung, dass WebAuthn während einer Registrierung resistent gegenüber einem MitM sei, der den sicheren Kontext ignorieren kann. Beide Probleme wurden von den Autoren der Spezifikation anerkannt. Für den Angriff auf das Authentifizierungsverfahren wurde bereits eine Lösung gefunden. Wir diskutieren, wieso das Authentifizierungsverfahren (nach Beheben unseres Angriffes) unter bestimmten Annahmen sicher ist und verweisen auf Probleme bezüglich der Privatsphäre und der für eine Registrierung oder Authentifizierung notwendige Zustimmung eines Nutzers. Zu den Annahmen zählen, dass der WebAuthn Client und Authenticator des Nutzers sowie die Relying Party sich konform verhalten, dass die Verbindung zwischen WebAuthn Client und Authentictor sicher ist und dass während der Registrierung kein erfolgreicher Angriff stattgefunden hat.

Full text and
other links
Volltext
Department(s)Universität Stuttgart, Institut für Informationssicherheit und Kryptographie (ISC)
Superviser(s)Küsters, Prof. Ralf; Schmitz, Guido
Entry dateMay 21, 2019
   Publ. Computer Science