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) 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 , 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 60 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, , ... , 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