WebAuthn en Passkey 101
Krijg een uitgebreid inzicht in WebAuthn, inclusief het concept, de workflow, redenen voor de populariteit ervan en bijbehorende uitdagingen.
WebAuthn behoort tot de veiligste authenticatiemiddelen in NIST AAL-normen. Geïntroduceerd in 2013, het is nu de favoriete keuze van bedrijven voor authenticatie. De adoptie ervan is echter nog niet wijdverbreid, wat leidt tot veel vragen over WebAuthn en Passkeys. Laten we duiken in wat je moet weten.
Concept: Wat is de relatie tussen WebAuthn, Passkey en FIDO?
FIDO Alliance | FIDO Alliance is een organisatie die open-source en veilige wachtwoordloze authenticatiestandaarden biedt, inclusief UAF, U2F en FIDO2. |
FIDO2 | FIDO2 is een set standaarden voor veilige online authenticatie ontwikkeld door FIDO Alliance. FIDO2 bestaat uit twee hoofdcomponenten: WebAuthn voor wachtwoordloze logins en CTAP voor veilige communicatie tussen apparaten. |
Passkey | Een passkey is een FIDO-gebaseerde, phishingbestendige referentie om wachtwoorden te vervangen.
|
WebAuthn | WebAuthn, een JavaScript API ontwikkeld door de W3C en FIDO Alliance, stelt web toepassingen in staat om te authenticeren volgens FIDO2-standaarden. Passkey is een van de authenticatiemethoden die WebAuthn ondersteunt. |
Stroom: Hoe werkt WebAuthn?
4 hoofdentiteiten van WebAuthn
In feite ken je misschien de 4 hoofdentiteiten die betrokken zijn bij de WebAuthn-stroom.
-
Gebruiker: De persoon die zich aanmeldt of authenticeert bij de webapplicatie met behulp van WebAuthn.
-
User Agent: De webbrowser die de WebAuthn API-aanroepen afhandelt en het authenticatieproces beheert tussen alle verschillende relying parties en authenticatoren.
-
Relying Party: Jouw webdienst of applicatie die de gebruiker probeert te benaderen. De gebruiker werkt samen met de Relying Party via de User Agent.
-
Authenticator: De hardwarecomponent die de gebruiker bezit voor het verifiëren van de identiteit van de gebruiker. Het kan verschillende vormen aannemen, afhankelijk van de mogelijkheden van het platform of de browser, zoals beveiligingssleutels (zoals Yubikeys), telefoons of tablets (verbonden via Bluetooth, NFC of USB), apparaatgebaseerde biometrie of pincodes, enz.
Workflows van WebAuthn
Asymmetrische cryptografie met openbare sleutels is het kernproces.
- Sleutelpaar generatie: De User Agent genereert een sleutelpaar van openbare en privé sleutels. De openbare sleutel wordt gedeeld met de Relying Party, terwijl de privésleutel veilig opgeslagen blijft in de Authenticator van de gebruiker.
- Authenticatie-uitdaging: Wanneer de gebruiker probeert in te loggen, stuurt de Relying Party een authenticatie-uitdaging naar de User Agent.
- Gebruikersverificatie: De User Agent stuurt de uitdaging naar de Authenticator, die met de gebruiker communiceert voor verificatie (bijvoorbeeld biometrie of een knop indrukken).
- Cryptografische handtekening: De Authenticator gebruikt zijn privésleutel om de uitdaging te ondertekenen en een cryptografische handtekening te maken.
- Verificatie en Toegang: De User Agent verifieert de handtekening met behulp van de openbare sleutel en informeert de Relying Party over een succesvolle authenticatie. Toegang wordt verleend.
Om het verder uit te werken, verdeel het in de registratie- en authenticatiefasen.
De WebAuthn-registratiestroom:
De WebAuthn-authenticatiestroom:
Voordelen: Waarom wordt WebAuthn een trend?
Meerdere authenticatoren
Je hebt de optie om te kiezen uit meerdere authenticatoren voor extra flexibiliteit. Deze authenticatoren zijn er in twee soorten, voor zowel lokaal als cloudgebruik, en je kunt er een of beide inschakelen voor jouw dienst.
Platform authenticator (Interne authenticator)
De platform authenticator is verbonden met een enkel en specifiek apparaat OS, zoals een computer, laptop, telefoon of tablet, waarmee de gebruiker inlogt. Het werkt exclusief op het apparaat voor autorisatie met methoden zoals biometrie of een apparaat toegangscode. Het is een snelle manier om te authenticeren, vooral met biometrie, en kan de noodzaak voor handmatige invoer van wachtwoorden vervangen. Echter, als de gebruiker het apparaat verliest, kan het een barrière voor toegang worden. Bijvoorbeeld:
- MacOS en iOS: iCloud Sleutelhanger geverifieerd door Touch ID, Face ID of apparaat toegangscode.
- Windows: Windows Hello geverifieerd door gezichtsherkenning, vingerafdruk of vriendelijke PIN.
- Android: Google Password Manager ondersteunt ook gezichtsherkenning of vingerafdruk om wachtwoorden automatisch in te vullen om apparaten te autoriseren.
Roaming authenticator (Externe authenticator, Cross-platform authenticator)
De roaming authenticator is een apart, draagbaar apparaat of softwaretoepassing, zoals een hardware beveiligingssleutel of een smartphone. Het moet het apparaat verbinden via USB of NFC of Bluetooth actief houden. De roaming authenticator is niet beperkt tot een enkel apparaat of browser, waardoor meer flexibiliteit wordt geboden. Bijvoorbeeld:
- Beveiligingssleutels: ook wel Hardware tokens genoemd, zoals Yubikey.
- Mobiele smartphone: zoals een cloudgebaseerd Google-account gebruiken op Android, of een iCloud-account op iPhone. Belangrijk is dat voor cross-device-authenticatie ook verbinding met Bluetooth, NFC of USB nodig is om ervoor te zorgen dat de authenticator van de gebruiker in de buurt is. Mobiele authenticatoren vereisen vaak QR-code-scanning om ze met desktopapparaten te koppelen. (Android-telefoons kunnen met name Persistent Linking gebruiken om naadloos te koppelen met de Chrome-browser voor eenmalige autorisatie zonder de noodzaak van QR-code-scanning.)
Hoge zekerheid van beveiliging
Hoge zekerheid van beveiliging is essentieel voor het beschermen van bedrijfsmiddelen. Dit wordt bereikt door de volgende maatregelen:
- Bescherming van privacy sleutels: Privacy sleutels worden nooit gedeeld met derde-partij websites (Rely Party), wat helpt om wachtwoordinbreuken en phishingpogingen te voorkomen.
- Apparaatnabijheidsvereiste: Apparaten vereisen ofwel "Platformauthenticatie voor een enkel apparaat" of "Roamingauthenticator beperkt door USB, Bluetooth of NFC" om in de nabijheid van de gebruiker te zijn, waardoor aanvallen op afstand worden voorkomen.
- Domeinbinding: WebAuthn is strak gebonden aan het specifieke domein van de website waarop de gebruiker zich heeft geregistreerd, wat bescherming biedt tegen phishingaanvallen van ongeautoriseerde websites.
Wrijvingsloze gebruikerservaring voor MFA & 1FA
WebAuthn verhoogt de beveiliging terwijl het de wachtwoordloze verificatie-ervaring van de gebruiker verbetert:
- Natuurlijke ervaring en biometrische efficiëntie: WebAuthn adopteert specifieke authenticatiemethoden die zijn afgestemd op verschillende platformen en apparaten, met inachtneming van gebruikersgewoonten. Biometrische authenticatie elimineert de noodzaak van handmatige invoer, waardoor het verificatieproces aanzienlijk wordt versneld.
- Directe MFA overslaan van 1FA: WebAuthn wordt vaak gebruikt voor MFA (Multi-Factor Authenticatie). Vanwege zijn robuuste beveiliging kunnen gebruikers, als de relying party het gebruik van WebAuthn in de browser al heeft geregistreerd, de stap van 1FA (Single-Factor Authenticatie) overslaan en direct inloggen met passkey-verificatie.
- Passkey vervangt wachtwoord: Passkeys kunnen ook dienen als alternatief voor traditionele wachtwoorden voor de 1FA. Gebruikers kunnen hun passkey invoeren voor of na het invoeren van hun account, waarbij alleen wachtwoordverificatie vereist is wanneer passkey-authenticatie niet beschikbaar is.
Uitdaging: Waarom wordt WebAuthn niet wijdverbreid geadopteerd door gebruikers?
Beperkingen van browser of platform
Sommige browsers of platforms ondersteunen WebAuthn geheel niet of bieden geen ondersteuning voor roaming authenticators. Terwijl de huidige statistieken van Caniuse behoorlijke ondersteuning laten zien, met 97,37% desktop- en 96,3% mobiele platformdekking, bestaan er nog steeds variaties tussen verschillende browserversies en besturingssystemen. Bijvoorbeeld, Desktop Linux biedt geen ondersteuning voor platform authenticators, Android ondersteunt WebAuthn alleen volledig op Chrome, en Internet Explorer op MacOS ondersteunt WebAuthn niet. Dit vereist dat beheerders leden vragen om specifieke browser- of OS-keuzes af te dwingen, of andere alternatieve MFA-methoden te configureren.
Risico op verlies van apparaten
Vooral voor gebruikers die afhankelijk zijn van "Dit apparaat" platform authenticators kan verlies van het apparaat leiden tot verlies van toegang tot hun accounts. Accountherstel kan een omslachtig proces zijn. Om dit risico te verminderen, is het raadzaam dat gebruikers gelijktijdig andere back-upauthenticatiemethoden koppelen wanneer ze WebAuthn instellen.
Beperkte ondersteuning van websites en apps
Veel diensten en applicaties bieden nog geen ondersteuning voor passkeys. Gebruikers hebben vaak geen vertrouwdheid met verschillende authenticatiemethoden en begrijpen mogelijk niet volledig de verschillen en beperkingen tussen Platform authenticatoren en Roaming authenticatoren. Echter, grote systemen, browsers en SaaS-diensten adopteren steeds meer WebAuthn, waardoor het een groeiende trend wordt die zowel bedrijven als gebruikers beginnen te omarmen.
Conclusie
Logto bereidt zich voor om de MFA (Multi-Factor Authenticatie) in november te lanceren. De initiële fase zal drie verificatiemethoden ondersteunen: Authenticator app TOTP, WebAuthn (Passkey) en Back-upcodes, die een uitgebreide inlog- en aanmeldoplossing bieden. We zullen doorgaan met het ontwikkelen van geavanceerde functies met betrekking tot WebAuthn. We kijken uit naar jouw ervaring en nodigen je uit om op de Product Hunt voor de komende MFA-release te blijven volgen.