U2F, FIDO2, WEBAUTHN MODERNE AUTHENTIFIZIERUNGSSTANDARDS
Karol Babioch
Chemnitzer Linux Tage, 16. März 2019 VON P@SSW0RD ...... ZU TOKENS!
Quelle: Yubico ÜBER MICH
Open Source Enthusiast Security Engineer @ SUSE ❤ Kryptografie, IT-Sicherheit & Authentifizierung
YubiKey Maintainer (& Contributor) openSUSE Arch Linux
[email protected] 749A 65CD 479F 3215 kbabioch Karol Babioch Karol Babioch Karol Babioch karolbabioch kbabioch AKTUELLE RELEVANZ
Quelle: heise.de AGENDA
Grundlagen der Authentifizierung Passwörter & Multi-Faktor Authentifizierung Asymmetrische Kryptografie U2F / FIDO2 / WebAuthn Demonstration Fragen & Antworten RESSOURCEN
https://developers.yubico.com https://fidoalliance.org https://www.w3.org/TR/webauthn/ https://www.w3.org/TR/credential-management/ https://developer.mozilla.org https://duo.com/blog/ https://webauthn.io https://www.dongleauth.info Wikipedia 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? 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.) Beliebige Kombinationen möglich
→ Zweifaktor-Authentifizierung (2FA)
→ Multifaktor-Authentifizierung (MFA)
NEUE STANDARDS? 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 ...... 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 Quelle: Wikipedia Quelle: Wikipedia 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
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 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
Quelle: Yubico PHISHING & MITM SCHUTZ
Quelle: Yubico 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
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 Quelle: Mozilla 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) Quelle: Yubico 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 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.info Quelle: dongleauth.info ... 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
Demo #1 Demo #2 FRAGEN & ANTWORTEN