WebAuthn-API'er til godkendelse uden adgangskode på Windows
Adgangskoder kan efterlade dine kunder sårbare over for brud på datasikkerheden og sikkerhedsangreb fra ondsindede brugere.
Microsoft har længe været fortaler for godkendelse uden adgangskode og har introduceret W3C/Fast IDentity Online 2 (FIDO2) Win32 WebAuthn-platform-API'er i Windows 10 (version 1903).
WebAuthn-API'er understøtter ECC-algoritmer fra og med Windows 11 version 22H2.
Hvad betyder det?
Ved hjælp af WebAuthn-API'er kan udviklerpartnere og udviklersamfundet bruge Windows Hello- eller FIDO2-sikkerhedsnøgler til at implementere adgangskodeløs multifaktorgodkendelse for deres programmer på Windows-enheder.
Brugere af disse apps eller websteder kan bruge en hvilken som helst browser, der understøtter WebAuthn-API'er til godkendelse uden adgangskode. Brugerne får en velkendt og ensartet oplevelse på Windows, uanset hvilken browser de bruger.
Udviklere skal bruge WebAuthn-API'erne til at understøtte FIDO2-godkendelsesnøgler på en ensartet måde for brugerne. Derudover kan udviklere bruge alle de transporter, der er tilgængelige i henhold til FIDO2-specifikationerne (USB, NFC og BLE), samtidig med at de undgår at bruge interaktions- og administrationsomkostningerne.
Note
Når disse API'er er i brug, har Windows 10 browsere eller programmer ikke direkte adgang til FIDO2-transporterne for FIDO-relaterede beskeder.
Det store billede
CTAP2 (Client to Authenticator Protocol 2) og WebAuthn definerer et abstraktionslag, der opretter et økosystem for stærkt godkendte legitimationsoplysninger. I dette økosystem bruger enhver kompatibel klient (f.eks. en oprindelig app eller browser), der kører på en bestemt klientenhed, en standardiseret metode til at interagere med enhver kompatibel godkender. Interoperable godkendere omfatter godkendere, der er indbygget i klientenheden (platformgodkendelsesmaskiner) og godkendere, der opretter forbindelse til klientenheden ved hjælp af USB-, BLE- eller NFC-forbindelser (roaming-godkendere).
Godkendelsesprocessen starter, når brugeren foretager en bestemt brugerbevægelse, der angiver samtykke til handlingen. På anmodning af klienten opretter godkenderen sikkert stærke kryptografiske nøgler og gemmer dem lokalt.
Når disse klientspecifikke nøgler er oprettet, kan klienter anmode om attester for registrering og godkendelse. Den type signatur, som den private nøgle bruger, afspejler den brugerbevægelse, der blev foretaget.
I følgende diagram kan du se, hvordan CTAP og WebAuthn interagerer. De lyseblå stiplede pile repræsenterer interaktioner, der afhænger af den specifikke implementering af platform-API'erne.
Relationer for de komponenter, der deltager i godkendelse uden adgangskode
En kombineret WebAuthn/CTAP2-dans indeholder følgende karakterer:
Klientenhed. Klientenheden er den hardware, der er vært for en given stærk godkendelse. Bærbare computere og telefoner er eksempler på klientenheder.
Afhængige parter og klienter. Afhængige parter er webprogrammer eller oprindelige programmer, der bruger stærke legitimationsoplysninger. De afhængige parter kører på klientenheder.
Som afhængig part kan et oprindeligt program også fungere som en WebAuthn-klient til at foretage direkte WebAuthn-kald.
Som afhængig part kan et webprogram ikke interagere direkte med WebAuthn-API'en. Den afhængige part skal formidle aftalen via browseren.
Note
Det foregående diagram viser ikke SSO-godkendelse (Single Sign-On). Pas på ikke at forveksle FIDO-afhængige parter med afhængige parter i organisationsnetværket.
WebAuthn-API. WebAuthn-API'en gør det muligt for klienter at foretage anmodninger til godkendere. Klienten kan anmode godkenderen om at oprette en nøgle, angive en antagelse om en nøgle, rapportfunktioner, administrere en pinkode osv.
CTAP2-platform/-vært. Platformen (også kaldet værten i specifikationen for CTAP2) er den del af klientenheden, der forhandler med godkendere. Platformen er ansvarlig for sikkert at rapportere anmodningens oprindelse og for at kalde CTAP2 Concise Binary Object Representation (CBOR) API'er. Hvis platformen ikke er CTAP2-klar, klienterne selv påtager sig mere af byrden. I dette tilfælde kan de komponenter og interaktioner, der vises i det foregående diagram, variere.
Platformgodkender. En platformgodkendelsesenhed er normalt placeret på en klientenhed. Eksempler på platform autenticatorer omfatter teknologi til fingeraftryksgenkendelse, der bruger en indbygget bærbar fingeraftrykslæser og teknologi til ansigtsgenkendelse, der bruger et indbygget smartphonekamera. Transportprotokoller på tværs af platforme, f.eks. USB, NFC eller BLE, kan ikke få adgang til platformgodkendelsesmaskiner.
Roaming-godkender. En roaming-godkender kan oprette forbindelse til flere klientenheder. Klientenheder skal bruge en understøttet transportprotokol til at forhandle interaktioner. Eksempler på roaming-godkendere omfatter USB-sikkerhedsnøgler, BLE-aktiverede smartphone-programmer og NFC-aktiverede nærhedskort. Roaming-godkendere kan understøtte CTAP1, CTAP2 eller begge protokoller.
Mange afhængige parter og klienter kan interagere med mange godkendere på en enkelt klientenhed. En bruger kan installere flere browsere, der understøtter WebAuthn, og har muligvis samtidig adgang til en indbygget fingeraftrykslæser, en tilsluttet sikkerhedsnøgle og et MOBIL-program, der er aktiveret til ble-brug.
Interoperabilitet
Før WebAuthn og CTAP2 var der U2F og CTAP1. U2F er FIDO Alliances universelle andenfaktorspecifikation. Der er mange godkendere, der taler CTAP1 og administrerer U2F-legitimationsoplysninger. WebAuthn er designet til at være kompatibel med CTAP1 Authenticators. En afhængig part, der bruger WebAuthn, kan stadig bruge U2F-legitimationsoplysninger, hvis den afhængige part ikke kræver FIDO2-funktionalitet.
FIDO2-godkendere er allerede implementeret, og WebAuthn-afhængige parter kan kræve følgende valgfrie funktioner:
- Nøgler til flere konti (nøgler kan gemmes pr. afhængig part)
- Klientpinkode
- Placering (godkenderen returnerer en placering)
- Hashbaseret HMAC-hemmelighed (Message Authentication Code) (muliggør offlinescenarier)
Følgende indstillinger kan være nyttige i fremtiden, men er endnu ikke blevet observeret i naturen:
- Transaktionsgodkendelse
- Brugerbekræftelsesindeks (servere kan afgøre, om biometriske data, der er gemt lokalt, er blevet ændret over tid)
- Brugerbekræftelsesmetode (godkenderen returnerer den nøjagtige metode)
- Grænser for biometrisk ydeevne (den afhængige part kan angive acceptable falske accept- og falske afvisningsrater)
Microsoft implementering
Den Microsoft FIDO2 implementering har været år under udarbejdelse. Software og tjenester implementeres uafhængigt som enheder, der overholder standarder. Fra og med udgivelsen af Windows 10, version 1809 (oktober 2018) bruger alle Microsoft komponenter den nyeste WebAuthn Candidate Release. Det er en stabil udgivelse, der ikke forventes at ændre sig normativt, før specifikationen endelig er ratificeret. Da Microsoft er blandt de første i verden til udrulning af FIDO2, vil nogle kombinationer af populære ikke-Microsoft komponenter endnu ikke være kompatible.
Her er et omtrentligt layout af, hvor de Microsoft bits går:
Microsoft implementering af WebAuthn- og CATP2-API'er
WebAuthn-afhængig part: Microsoft konto. Hvis du ikke kender Microsoft-konto, er det logontjenesten til Xbox, Outlook og mange andre websteder. Logonoplevelsen bruger JavaScript på klientsiden til at udløse Microsoft Edge til at tale med WebAuthn-API'erne. Microsoft Konto kræver, at godkendere har følgende egenskaber:
- Nøgler gemmes lokalt på godkenderen og ikke på en fjernserver
- Offlinescenarier fungerer (aktiveres ved hjælp af HMAC)
- Brugerne kan placere nøgler til flere brugerkonti på den samme godkender
- Hvis det er nødvendigt, kan godkendere bruge en klientpinkode til at låse en TPM op
Vigtigt!
Da Microsoft konto kræver funktioner og udvidelser, der er entydige for FIDO2 CTAP2-godkendere, accepterer den ikke CTAP1-legitimationsoplysninger (U2F).
WebAuthn-klient: Microsoft Edge. Microsoft Edge kan håndtere brugergrænsefladen for funktionerne WebAuthn og CTAP2, som beskrives i denne artikel. Den understøtter også appID-udvidelsen. Microsoft Edge kan interagere med både CTAP1- og CTAP2-godkendere. Dette omfang for interaktion betyder, at det kan oprette og bruge både U2F- og FIDO2-legitimationsoplysninger. Men Microsoft Edge taler ikke U2F-protokollen. De afhængige parter må derfor kun bruge WebAuthn-specifikationen. Microsoft Edge på Android understøtter ikke WebAuthn.
Note
Du kan få autoritative oplysninger om Microsoft Edge-understøttelse af WebAuthn og CTAP i dokumentationen til Legacy Microsoft Edge-udvikler.
Platform: Windows 10, Windows 11. Windows 10 og Windows 11 vært for Win32 Platform WebAuthn-API'er.
Roaming-godkendere. Du vil måske bemærke, at der ikke er nogen Microsoft roaming-godkender. Årsagen er, at der allerede er et stærkt økosystem af produkter, der specialiserer sig i stærk godkendelse, og at hver kunde (uanset om det er selskaber eller enkeltpersoner) har forskellige krav til sikkerhed, brugervenlighed, distribution og kontogendannelse. Du kan få flere oplysninger om den stadigt voksende liste over FIDO2-certificerede godkendere under FIDO-certificerede produkter. Listen indeholder indbyggede godkendere, roaming-godkendere og endda chipproducenter, der har certificerede design.
Udviklerreferencer
WebAuthn-API'erne er dokumenteret i GitHub-lageret Microsoft/webauthn. Du kan få mere at vide om, hvordan FIDO2-godkendere fungerer, ved at gennemse følgende to specifikationer:
- Webgodkendelse: En API til adgang til legitimationsoplysninger for offentlige nøgler (tilgængelig på W3C-webstedet). Dette dokument kaldes specifikationen WebAuthn.
- CTAP (Client to Authenticator Protocol). Dette dokument er tilgængeligt på FIDO Alliance-webstedet , hvor hardware- og platformteams arbejder sammen om at løse problemet med FIDO-godkendelse.