U2F, FIDO2, WebAuthn

Moderne Authentifizierungsstandards

Karol Babioch <karol@babioch.de>

Chemnitzer Linux Tage, 16. März 2019

Von p@ssw0rd ...

... zu Tokens!

YubiKey 5 Familie

Quelle: Yubico

Über mich

  • Open Source Enthusiast
  • Security Engineer @ SUSE
  • Kryptografie, IT-Sicherheit & Authentifizierung
  • YubiKey Maintainer (& Contributor)
    • openSUSE
    • Arch Linux

Aktuelle Relevanz

Aktuelle Meldung zu WebAuthn auf heise.de

Quelle: heise.de

Agenda

  • Grundlagen der Authentifizierung
  • Passwörter & Multi-Faktor Authentifizierung
  • Asymmetrische Kryptografie
  • U2F / FIDO2 / WebAuthn
  • Demonstration
  • Fragen & Antworten

Ressourcen

Grundlagen der Authentifizierung

Authentifizierung [...] ist der Nachweis [...] einer behaupteten Eigenschaft einer Entität, die beispielsweise ein Mensch, ein Gerät, ein Dokument oder eine Information sein kann, und die dabei durch ihren Beitrag ihre Authentisierung durchführt.

Quelle: Wikipedia

Kontext: Benutzer-Authentifizierung

Mit wem kommuniziere ich?

Authentisieren vs. Authentifizieren

Quelle: Wikipedia

Authentifizierung

  • Authentication, AuthN, A1, Au
  • → Wer bin ich?

Autorisierung

  • Authorization, AuthZ, AuthR, A2, Az
  • → Was darf ich?
  • Körperliches Merkmal (etwas, das man ist)
    • Biometrie, z.B. Fingerabdruck, Iris, Gesichtserkennung, Stimme, etc.
  • Wissen (etwas, das man weiß)
    • Geheimnisse, z.B. Passwörter, PINs, Antwort auf Fragen, etc.
  • Besitz (etwas, das man hat)
    • (Physikalische) Schlüssel
    • (Hardware) Tokens (Smartcard, Zertifikat, YubiKey, etc.)
Merkmale Authentifizierung

Beliebige Kombinationen möglich

→ Zweifaktor-Authentifizierung (2FA)

→ Multifaktor-Authentifizierung (MFA)

Magisches Dreieck Authentifzierung

Neue Standards?

Word cloud of existing authentication standards
Proliferation of Standards (XKCD)

Quelle: xkcd

Optionen und Alternativen:

  • Benutzer-Zertifikate
  • Smartcards
  • Kerberos
  • SAML, OAuth 2.0, OpenID Connect
  • ...

Bisher kein Standard im Web bzw. Internet, welcher Passwörter ersetzen kann, einfach zu bedienen und sicher ist.

Passwörter ...

... sind toll

  • Einfach zu verwenden
  • Einfach zu implementieren
  • Universell und überall verwendbar
  • Empfehlungen & Best-Practices (NIST, etc.)

... sind problematisch

  • „Ahnlungslose“ Benutzer
    • Schwache Passwörter
    • Passwort-Wiederverwendung
    • Phishing
  • „Inkompetente“ Anbieter
    • „Einbrüche“ bei Anbietern
    • Falsche Praktiken (Hashing, Salting, etc.)

... schwierig zu handhaben

  • Zufällige Passwörter:
    oN9ee8gaihieWuho
  • Gedächtnis
  • Passwort-Manager
  • Eingabe

... schützen nicht vor

  • Replay
  • Phishing
  • Man-in-the-Middle

... in der Realität

  • Fast täglich „Einbrüche“
  • Milliarden Passwörter im Umlauf
  • Falsches Verständnis (selbst von Experten)
  • Keine Besserung absehbar
    • Problem seit ~ 40 Jahren bekannt
    • 123456
      &
      password
      beliebteste Passwörter (2017)

Multifaktor ...

Google Authenticator

... erhöht die Sicherheit und

fühlt sich „cool“ an,

aber ...

löst viele Probleme nicht!

... Probleme

  • Unhandlich
  • Unsichere Recovery und Fallback Prozesse
  • Aktive Angriffe (MitM, Phishing, etc.)
  • Skaliert schlecht
  • Im Nachgang „aufgesetzte“ Sicherheit
    • → Fehlerhafte Implementierungen
  • Zumeist auf Basis geteilter Geheimnisse

Asymmetrische Kryptografie

  • auch bekannt als Public-Key Kryptografie
  • Kein gemeinsamer Schlüssel
    • vgl. klassische Verschlüsselung
  • Stattdessen Schlüsselpaar
    • Öffentlicher Schlüssel
    • Privater Schlüssel (geheim)

Neue und interessante Möglichkeiten

  • Verschlüsselung
  • Authentifzierung
  • Schlüsselvereinbarung
  • Digitale Signaturen
  • Mathematische Details sind komplex
  • Abstrakte Betrachtungsweise ausreichend
Schlüsselerzeugung Public-Key

Quelle: Wikipedia

Verschlüsselung Public-Key

Quelle: Wikipedia

Signatur Public-Key

Quelle: Wikipedia

Beispielanwendungen und -protokolle

  • SSL/TLS
  • SSH
  • PGP / OpenPGP / GnuPG
  • Bitcoin
  • Elektronischer Personalausweis (nPA)
  • u.v.a.m.

Mathematik funktioniert, aber ...

... Authentizität der Schlüssel ist die eigentliche Herausforderung!

U2F / FIDO2 / WebAuthn

  • Standards für Public-Key Kryptografie
  • Benutzer-Authentifizierung im Web-Umfeld
  • Ablösung von Passwörtern
  • Getrieben von FIDO Alliance & W3C
  • Ziele
    • Einfache Bedienung
    • Mehr Sicherheit
  • (Hardware-basierter) Authenticator

Hardware-basierte Tokens

Beispiel von Tokens

Quelle: youtube.com/watch?v=vv11XMG5UJg

  • Intuitive Verwendung (Touch)
  • Vgl. physikalischer Schlüssel
  • Verwendung setzt Besitz voraus
  • Schnittstellen
    • USB (HID)
    • NFC
    • Bluetooth Low Energy (BLE)
  • Kryptografie in sicherer Umgebung
    • Kein Zugriff auf Schlüsselmaterial
    • Kein Allzweck-Computer
    • Nur „kleiner“ Funktionsumfang
    • Schwierig zu „hacken“
    • Schwierig zu klonen
    • Schutz vor Keylogging

Universal 2nd Factor (U2F)

Übersicht

  • Entwickelt von Google, Yubico & NXP (2012)
  • An FIDO Alliance „gespendet“ → FIDO U2F (2013)
  • Erste finale Version U2F 1.0 (2014)
  • Zusätzlich zu Benutzername & Passwort
  • „Zweiter Faktor“
  • Erfordert Unterstützung im Browser

Innovatives Konzept

  • Eigener Public-Key für jeden Dienst
  • Kryptografie auf Basis von elliptischen Kurven
  • Beliebige Bitmuster als Schlüssel möglich
  • Schlüssel werden on-the-fly berechnet
  • Deterministische Berechnung in Abhängigkeit von
    • URL der Zielseite
    • gerätespezifischem Geheimnis
U2F Schüsselerzeugung

Quelle: Yubico

Vorteile

  • Skalierbarkeit für viele Dienste
  • Inhärenter Schutz vor Phishing
  • Keine Speicherung von Schlüsselmaterial
  • Keine Rückverfolgung zwischen Diensten
  • Anbieter speichert unkritische Informationen

Abläufe / Zeremonien

  1. Registrierung
  2. Authentifizierung
  3. (Account Wiederherstellung)

Registrierung

  • Hinterlegen von Informationen beim Anbieter
    • Public-Key
    • Key-Handle
    • Optional: Geräte-Beglaubigung
  • Benutzererfahrung: „Knopf“ drücken

Authentifizierung

  • Signieren einer Challenge
  • Benutzererfahrung: „Knopf“ drücken

Protokoll-Merkmale

  • Challenge-Response Protokoll
  • Eingebauter Phishing-Schutz → „Origin Binding“
  • Man-in-the-Middle Schutz → TLS Channel ID
  • Anwendungsspezifische Schlüssel
  • Schutz vor Klonen
  • Geräte-Beglaubigung (device attestation)

Challenge-Response

U2F Challenge-Response

Quelle: Yubico

Phishing & MitM Schutz

U2F Phishing & MitM Schutz

Quelle: Yubico

Schutz vor Klonen

U2F Schutz vor Klonen

Quelle: Yubico

Geräte-Beglaubigung

  • Optional
  • Kann vom Anbieter angefordert werden
  • Einschränkung auf bestimmte Hersteller & Geräte
  • U2F Gerät liefert ein X.509 Zertifikat aus
  • Signiert vom Hersteller des Tokens
  • Ermöglicht Tracking, da „konstant“
  • Kann ggf. vom Benutzer unterdrückt werden

Weiterentwicklung

FIDO2 Evolution

Quelle: FIDO Alliance

Weiterentwicklung

  • „Modularisierung“
    • Server-Client-Kommunikation → WebAuthn
    • Client-Authenticator-Kommunikation → CTAP
  • FIDO2

FIDO Alliance

  • Entstanden im Februar 2013
  • Fast IDentity Online
  • ~ 250 Mitglieder, unter anderem
    • Amazon
    • Google
    • MasterCard
    • PayPal
    • Yubico
    • u.v.a.m.
  • Ziel: Starke Authentifzierungs-Standards
  • Kompatibilität zwischen Software & Hardware
  • Zertifizierung von Hardware
  • Universal 2nd Factor (U2F)
  • Universal Authentication Framework (UAF)
  • Client to Authenticator Protocol (CTAP)
  • (Web Authentication (WebAuthn) → W3C)
  • FIDO2
  • Von besserer Authentifizierung profitieren alle
  • Weniger Spam
  • Weniger Betrug
  • Weniger Kosten
  • Mehr Vertrauen
  • usw.

Web Authentication

  • W3C Recommendation, 4. März 2019
  • Level 1 „final“
  • Erweiterung der Credential Management API
  • JavaScript-basierte Web API
  • Gute Browserunterstützung
  • Basiert auf vorheriger Arbeit der FIDO Alliance
  • Rückwärtskompatibel mit U2F
  • „Browser-zu-Server“ Teil von U2F
  • Server → Relying Party (RP)
    • Generiert und liefert JavaScript aus
  • Browser → Client
    • Führt JavaScript aus
    • Proxy zwischen Authenticator und Relying Party
  • Authenticator
    • Abstraktes Modell
    • Hardware token
      • USB
      • Bluetooth Low Energy (BLE)
      • NFC
    • Software bzw. Betriebssystem
      • Windows Hello

Abläufe / Zeremonien

  1. Registrierung
  2. Authentifizierung
WebAuthn Registrierung

Quelle: Mozilla

WebAuthn Authentifizierung

Quelle: Mozilla

Browser Unterstützung

  • Google Chrome 67
  • Mozilla Firefox 60
  • Microsoft Edge (build 17723)
  • Apple Safari (preview)
  • Opera

Kommunikation mit Authenticator erfolgt mittels Client to Authenticator Protocol (CTAP)

Client to Authenticator Protocol (CTAP)

  • Kommunikation Client ↔ Authenticator
  • Zwei Versionen: CTAP1 & CTAP2

CTAP1

  • „Umbenanntes“ U2F
  • Zweiter Faktor
  • „Knopf“ drücken → Physikalische Präsenz

CTAP2

  • „Neue“ Version für FIDO2
  • Ermöglicht mehr Anwendungsfälle
  • Passwortlose Authentifizierung
  • Einzelner Faktor, Zweiter-Faktor, Multi-Faktor
  • Verifizierung via PIN & Biometrie

FIDO2

  • FIDO2 = WebAuthn + CTAP
  • FIDO2 ermöglicht passwortlose Authentifizierung
  • Rückwärtskompatibel mit FIDO U2F (CTAP1)
  • Neue Betriebsmodi
    • Einzel-Faktor (ohne Passwort)
    • Zweiter-Faktor (2FA)
    • Mehr-Faktor (MFA)
FIDO2 Blöcke

Quelle: Yubico

FIDO2 Übersicht

Quelle: Microsoft

Benutzer-Verifizierung

  • Mit CTAP1 nur Überprüfung der Präsenz
  • Mit CTAP2 PIN & Biometrie möglich
  • Findet lokal am Authenticator statt
  • PIN vs. Passwort
  • Kein Transfer von biometrischen Daten
WebAuthn Ablauf

Quelle: Wikipedia

Passwortlose Authentifizierung

  • Einer (von mehreren) Betriebsmodi, optional
  • Wird durch „resident keys“ ermöglicht
  • Werden auf dem Authenticator gespeichert ...
  • ... anstatt auf dem Server (Relying Party)
  • → Kein Lookup (Key-Handle) notwendig
  • → Keine Angabe von Benutzername notwendig

Account Recovery

  • Im Fall von Verlust bzw. Defekt von Token
  • Keine verbindlichen Vorgaben
  • Idealerweise mehrere Tokens im Vorfeld
  • Ansonsten Fallback auf andere Mechanismen
  • Verlust von Token unkritisch (?)
    • Keine Zuordnung zu Benutzer (?)
    • Hilft nur bedingt bei Diebstahl

Verwendbarkeit ...

... für Benutzer

  • Google, GitHub, Facebook, Dropbox, ...
  • Nextcloud, privacyIDEA, Wordpress, ...
  • „Login mit ...“ (OAuth, etc.)
  • www.dongleauth.com
Example of dongleauth.com

Quelle: dongleauth.com

... für Anbieter, Entwickler & Administratoren

  • Module bzw. Plugins für Wordpress, Django, etc.
  • Selbst implementieren → developers.yubico.com
  • Authentifzierung an Dienstleister auslagern

Zusammenfassung

  • Passwörter sind nicht zeitgemäß
  • Hardware-Tokens erwerben
  • Benutzen & experimentieren
  • Erhöhte Sicherheit trotz einfacher Bedienung
  • Viele Anwendungsfälle, Optionen & Details
  • WebAuthn, U2F & FIDO2 sind verwandt
  • U2F „obsoleter“ Vorgänger
  • FIDO2 = WebAuthn + CTAP
  • FIDO2 ist rückwärtskompatibel mit U2F (CTAP1)
  • CTAP2 ermöglicht neue Anwendungsfälle, z.B.
  • passwortlose Authentifizierung

Demonstration

Fragen & Antworten