WebAuthn-API's voor verificatie zonder wachtwoord in Windows
Wachtwoorden kunnen uw klanten kwetsbaar maken voor gegevensschendingen en beveiligingsaanvallen door kwaadwillende gebruikers.
Microsoft is al lang een voorstander van verificatie zonder wachtwoord en heeft de W3C/Fast IDentity Online 2 (FIDO2) Win32 WebAuthn-platform-API's geïntroduceerd in Windows 10 (versie 1903).
Vanaf Windows 11 versie 22H2 ondersteunen WebAuthn-API's ECC-algoritmen.
Wat betekent dit?
Door WebAuthn-API's te gebruiken, kunnen ontwikkelaarspartners en de ontwikkelaarscommunity Windows Hello- of FIDO2-beveiligingssleutels gebruiken om meervoudige verificatie zonder wachtwoord te implementeren voor hun toepassingen op Windows-apparaten.
Gebruikers van deze apps of sites kunnen elke browser gebruiken die Ondersteuning biedt voor WebAuthn-API's voor verificatie zonder wachtwoord. Gebruikers hebben een vertrouwde en consistente ervaring in Windows, ongeacht welke browser ze gebruiken.
Ontwikkelaars moeten de WebAuthn-API's gebruiken om FIDO2-verificatiesleutels op een consistente manier voor gebruikers te ondersteunen. Bovendien kunnen ontwikkelaars alle transporten gebruiken die beschikbaar zijn volgens FIDO2-specificaties (USB, NFC en BLE) terwijl ze de interactie en beheeroverhead vermijden.
Opmerking
Wanneer deze API's worden gebruikt, hebben Windows 10 browsers of toepassingen geen directe toegang tot de FIDO2-transporten voor FIDO-gerelateerde berichten.
Het grote geheel
Client to Authenticator Protocol 2 (CTAP2) en WebAuthn definiëren een abstractielaag die een ecosysteem maakt voor sterk geverifieerde referenties. In dit ecosysteem gebruikt elke interoperabele client (zoals een systeemeigen app of browser) die wordt uitgevoerd op een bepaald clientapparaat een gestandaardiseerde methode om te communiceren met een interoperabele verificator. Interoperabele verificators zijn verificators die zijn ingebouwd in het clientapparaat (platform authenticators) en verificators die verbinding maken met het clientapparaat via USB-, BLE- of NFC-verbindingen (roaming authenticators).
Het verificatieproces wordt gestart wanneer de gebruiker een specifieke gebruikersbeweging maakt die toestemming voor de bewerking aangeeft. Op verzoek van de client maakt de verificator veilig sterke cryptografische sleutels en slaat deze lokaal op.
Nadat deze clientspecifieke sleutels zijn gemaakt, kunnen clients attestations aanvragen voor registratie en verificatie. Het type handtekening dat door de persoonlijke sleutel wordt gebruikt, weerspiegelt de gebruikersbeweging die is gemaakt.
In het volgende diagram ziet u hoe CTAP en WebAuthn samenwerken. De lichtblauwe stippelpijlen vertegenwoordigen interacties die afhankelijk zijn van de specifieke implementatie van de platform-API's.
Relaties van de onderdelen die deelnemen aan verificatie zonder wachtwoord
Een gecombineerde WebAuthn/CTAP2-dans bevat de volgende cast van personages:
Clientapparaat. Het clientapparaat is de hardware die als host fungeert voor een bepaalde sterke verificatie. Laptops en telefoons zijn voorbeelden van clientapparaten.
Relying party's en clients. Relying party's zijn web- of systeemeigen toepassingen die sterke referenties gebruiken. De relying party's worden uitgevoerd op clientapparaten.
Als relying party kan een systeemeigen toepassing ook fungeren als een WebAuthn-client om directe WebAuthn-aanroepen te doen.
Als relying party kan een webtoepassing niet rechtstreeks communiceren met de WebAuthn-API. De relying party moet de deal via de browser afhandelen.
Opmerking
In het voorgaande diagram wordt geen verificatie met één Sign-On (SSO) weergegeven. Zorg ervoor dat u FIDO-relying party's niet verwart met federatieve relying party's.
WebAuthn-API. Met de WebAuthn-API kunnen clients aanvragen indienen bij verificators. De client kan de verificator vragen om een sleutel te maken, een verklaring over een sleutel op te geven, mogelijkheden te rapporteren, een pincode te beheren, enzovoort.
CTAP2-platform/host. Het platform (ook wel de host genoemd in de CTAP2-specificatie) is het deel van het clientapparaat dat onderhandelt met verificators. Het platform is verantwoordelijk voor het veilig rapporteren van de oorsprong van de aanvraag en voor het aanroepen van de CBOR-API's (CBOR) (CTAP2 Concise Binary Object Representation). Als het platform niet CTAP2-bewust is, nemen de clients zelf meer van de last op zich. In dit geval kunnen de onderdelen en interacties die in het voorgaande diagram worden weergegeven, verschillen.
Platform authenticator. Een platformverificator bevindt zich meestal op een clientapparaat. Voorbeelden van platform authenticators zijn vingerafdrukherkenningstechnologie die gebruikmaakt van een ingebouwde vingerafdruklezer van een laptop en gezichtsherkenningstechnologie die gebruikmaakt van een ingebouwde smartphonecamera. Platformoverschrijdende transportprotocollen, zoals USB, NFC of BLE, hebben geen toegang tot platformauthers.
Roaming authenticator. Een roaming authenticator kan verbinding maken met meerdere clientapparaten. Clientapparaten moeten een ondersteund transportprotocol gebruiken om te onderhandelen over interacties. Voorbeelden van roaming authenticators zijn USB-beveiligingssleutels, smartphonetoepassingen met BLE-functionaliteit en NFC-nabijheidskaarten. Roaming authenticators kunnen CTAP1, CTAP2 of beide protocollen ondersteunen.
Veel relying party's en clients kunnen communiceren met veel verificators op één clientapparaat. Een gebruiker kan meerdere browsers installeren die WebAuthn ondersteunen en heeft mogelijk tegelijkertijd toegang tot een ingebouwde vingerafdruklezer, een aangesloten beveiligingssleutel en een mobiele toepassing met BLE-functionaliteit.
Interoperabiliteit
Vóór WebAuthn en CTAP2 waren er U2F en CTAP1. U2F is de universele specificatie van de FIDO Alliance. Er zijn veel verificators die CTAP1 spreken en U2F-referenties beheren. WebAuthn is ontworpen om interoperabel te zijn met CTAP1 Authenticators. Een relying party die WebAuthn gebruikt, kan nog steeds U2F-referenties gebruiken als de relying party geen FIDO2-functionaliteit vereist.
FIDO2-verificators zijn al geïmplementeerd en Relying Party's voor WebAuthn hebben mogelijk de volgende optionele functies nodig:
- Sleutels voor meerdere accounts (sleutels kunnen per relying party worden opgeslagen)
- Clientpincode
- Locatie (de verificator retourneert een locatie)
- Hash-gebaseerde berichtverificatiecode (HMAC)-geheim (maakt offlinescenario's mogelijk)
De volgende opties kunnen in de toekomst nuttig zijn, maar zijn nog niet in het wild waargenomen:
- Transactionele goedkeuring
- Gebruikersverificatie-index (servers kunnen bepalen of biometrische gegevens die lokaal zijn opgeslagen, in de loop van de tijd zijn gewijzigd)
- Gebruikersverificatiemethode (de authenticator retourneert de exacte methode)
- Biometrische prestatiegrenzen (de relying party kan acceptabele percentages voor onjuiste acceptatie en valse afwijzing opgeven)
Microsoft implementatie
De Microsoft FIDO2-implementatie is al jaren in de maak. Software en services worden onafhankelijk geïmplementeerd als standaardenconforme entiteiten. Vanaf de release van Windows 10 versie 1809 (oktober 2018) gebruiken alle Microsoft onderdelen de nieuwste WebAuthn Candidate Release. Het is een stabiele release die naar verwachting niet normatief zal veranderen voordat de specificatie eindelijk is geratificeerd. Omdat Microsoft een van de eersten ter wereld is die FIDO2 implementeert, zijn sommige combinaties van populaire niet-Microsoft onderdelen nog niet interoperabel.
Hier volgt een geschatte indeling van waar de Microsoft bits naartoe gaan:
Microsoft implementatie van WebAuthn- en CATP2-API's
WebAuthn relying party: Microsoft-account. Als u niet bekend bent met Microsoft-account, is dit de aanmeldingsservice voor Xbox, Outlook en veel andere sites. De aanmeldingservaring maakt gebruik van JavaScript aan de clientzijde om Microsoft Edge te activeren om te communiceren met de WebAuthn-API's. Microsoft account vereist dat verificators de volgende kenmerken hebben:
- Sleutels worden lokaal opgeslagen op de verificator en niet op een externe server
- Offlinescenario's werken (ingeschakeld met behulp van HMAC)
- Gebruikers kunnen sleutels voor meerdere gebruikersaccounts op dezelfde verificator plaatsen
- Als dat nodig is, kunnen verificators een clientpincode gebruiken om een TPM te ontgrendelen
Belangrijk
Omdat Microsoft-account functies en extensies vereist die uniek zijn voor FIDO2 CTAP2-verificators, accepteert het geen U2F-referenties (CTAP1).
WebAuthn-client: Microsoft Edge. Microsoft Edge kan de gebruikersinterface verwerken voor de functies WebAuthn en CTAP2 die in dit artikel worden beschreven. Het ondersteunt ook de AppID-extensie. Microsoft Edge kan communiceren met zowel CTAP1- als CTAP2-verificators. Dit bereik voor interactie betekent dat U2F- en FIDO2-referenties kunnen worden gemaakt en gebruikt. Microsoft Edge spreekt echter niet het U2F-protocol. Relying party's mogen daarom alleen de WebAuthn-specificatie gebruiken. Microsoft Edge op Android biedt geen ondersteuning voor WebAuthn.
Opmerking
Zie documentatie voor verouderde Microsoft Edge-ontwikkelaars voor bindende informatie over Microsoft Edge-ondersteuning voor WebAuthn en CTAP.
Platform: Windows 10, Windows 11. Windows 10 en Windows 11 de WebAuthn-API's van het Win32-platform hosten.
Roaming authenticators. Mogelijk ziet u dat er geen Microsoft roaming authenticator is. De reden hiervoor is dat er al een sterk ecosysteem van producten bestaat dat gespecialiseerd is in sterke verificatie en dat elke klant (bedrijven of individuen) verschillende vereisten heeft voor beveiliging, gebruiksgemak, distributie en accountherstel. Zie FIDO-gecertificeerde producten voor meer informatie over de steeds groeiende lijst met FIDO2-gecertificeerde verificators. De lijst bevat ingebouwde verificators, zwervende verificators en zelfs chipfabrikanten die gecertificeerde ontwerpen hebben.
Verwijzingen voor ontwikkelaars
De WebAuthn-API's worden beschreven in de GitHub-opslagplaats Microsoft/webauthn. Als u wilt weten hoe FIDO2-verificators werken, bekijkt u de volgende twee specificaties:
- Webverificatie: een API voor toegang tot referenties voor openbare sleutels (beschikbaar op de W3C-site). Dit document staat bekend als de WebAuthn-specificatie.
- Client naar Authenticator Protocol (CTAP). Dit document is beschikbaar op de site van FIDO Alliance , waarop hardware- en platformteams samenwerken om het probleem van FIDO-verificatie op te lossen.