Sdílet prostřednictvím


Rozhraní API WebAuthn pro ověřování bez hesla ve Windows

Hesla můžou vaše zákazníky ohrozit úniky dat a útoky na zabezpečení ze strany uživatelů se zlými úmysly.

Microsoft je již dlouhou dobu propagací ověřování bez hesla a v Windows 10 (verze 1903) zavedla rozhraní API platformy Win32 WebAuthn W3C/Fast IDentity Online 2 (FIDO2).

Od Windows 11 verze 22H2 podporují rozhraní API WebAuthn algoritmy ECC.

Co to znamená?

Pomocí rozhraní WebAuthn API můžou vývojáři a komunita vývojářů používat klíče zabezpečení Windows Hello nebo FIDO2 k implementaci vícefaktorového ověřování bez hesla pro své aplikace na zařízeních s Windows.

Uživatelé těchto aplikací nebo webů můžou k ověřování bez hesla použít libovolný prohlížeč, který podporuje rozhraní API WebAuthn. Uživatelé budou mít ve Windows známé a konzistentní prostředí bez ohledu na to, který prohlížeč používají.

Vývojáři by měli používat rozhraní API WebAuthn k konzistentní podpoře ověřovacích klíčů FIDO2 pro uživatele. Kromě toho můžou vývojáři používat všechny přenosy, které jsou k dispozici podle specifikací FIDO2 (USB, NFC a BLE), a zároveň se vyhnout režii interakce a správy.

Poznámka

Když se tato rozhraní API používají, Windows 10 prohlížeče nebo aplikace nemají přímý přístup k přenosům FIDO2 pro zasílání zpráv souvisejících s FIDO.

Celkový přehled

Protokol CTAP2 (Client to Authenticator Protocol 2) a WebAuthn definují abstraktní vrstvu, která vytváří ekosystém pro silně ověřené přihlašovací údaje. V tomto ekosystému každý interoperabilní klient (například nativní aplikace nebo prohlížeč), který běží na daném klientském zařízení, používá standardizovanou metodu pro interakci s jakýmkoli interoperabilním ověřovacím nástrojem. Mezi interoperabilní ověřovací objekty patří ověřovací objekty, které jsou integrované do klientského zařízení (ověřovatelé platformy), a ověřovatelé, které se připojují ke klientskému zařízení pomocí připojení USB, BLE nebo NFC (roamingové ověřovací rutiny).

Proces ověřování se spustí, když uživatel provede určité gesto uživatele, které značí souhlas s operací. Na žádost klienta ověřovací nástroj bezpečně vytvoří silné kryptografické klíče a uloží je místně.

Po vytvoření těchto klíčů specifických pro klienta můžou klienti požádat o ověření registrace a ověřování. Typ podpisu, který privátní klíč používá, odráží gesto uživatele, které bylo provedeno.

Následující diagram znázorňuje interakci CTAP a WebAuthn. Světle modré tečkované šipky představují interakce, které závisí na konkrétní implementaci rozhraní API platformy.

Diagram znázorňuje interakci rozhraní API WebAuthn s předávajícími stranami a rozhraním API CTAPI2.

Relace komponent, které se účastní ověřování bez hesla

Kombinovaný tanec WebAuthn/CTAP2 obsahuje následující přetypování znaků:

  • Klientské zařízení. Klientské zařízení je hardware, který je hostitelem daného silného ověřování. Příkladem klientských zařízení jsou přenosné počítače a telefony.

  • Předávající strany a klienti. Předávající strany jsou webové nebo nativní aplikace, které využívají silné přihlašovací údaje. Předávající strany běží na klientských zařízeních.

    • Jako předávající strana může nativní aplikace fungovat také jako klient WebAuthn a provádět přímá volání WebAuthn.

    • Jako předávající strana nemůže webová aplikace přímo komunikovat s rozhraním API WebAuthn. Předávající strana musí dohodu zprostředkovávat prostřednictvím prohlížeče.

    Poznámka

    Předchozí diagram nezobrazuje ověřování s jedním Sign-On (SSO). Dávejte pozor, abyste nezaměňovali předávající strany FIDO s federovanými předávajícími stranami.

  • Rozhraní API WebAuthn. Rozhraní API WebAuthn umožňuje klientům vytvářet požadavky na ověřovatele. Klient může ověřovacího uživatele požádat o vytvoření klíče, zadání kontrolního výrazu o klíči, možnosti sestavy, správu PIN kódu atd.

  • Platforma/hostitel CTAP2. Platforma (ve specifikaci CTAP2 označovaná také jako hostitel) je část klientského zařízení, která vyjednává s ověřovatelem. Platforma zodpovídá za bezpečné hlášení původu požadavku a volání rozhraní API CBOR (Concise Binary Object Representation) CTAP2. Pokud platforma nepodporuje CTAP2, přebírají větší zátěž samotní klienti. V tomto případě se komponenty a interakce zobrazené v předchozím diagramu můžou lišit.

  • Ověřovatel platformy. Ověřovací nástroj platformy se obvykle nachází na klientském zařízení. Mezi příklady ověřovatelů na platformě patří technologie rozpoznávání otisků prstů, která používá integrovanou čtečku otisků prstů na přenosném počítači a technologii rozpoznávání obličeje, která používá integrovanou kameru smartphonu. Multiplatformní přenosové protokoly, jako jsou USB, NFC nebo BLE, nemají přístup k ověřovatelům platformy.

  • Roaming authenticator. Roamingový authenticator se může připojit k více klientským zařízením. Klientská zařízení musí k vyjednávání interakcí používat podporovaný transportní protokol. Mezi příklady ověřování roamingu patří bezpečnostní klíče USB, aplikace pro smartphony s podporou BLE a bezkontaktní karty s podporou NFC. Ověřování roamingu může podporovat protokoly CTAP1, CTAP2 nebo oba protokoly.

Mnoho předávajících stran a klientů může komunikovat s mnoha ověřovacími osobami na jednom klientském zařízení. Uživatel může nainstalovat více prohlížečů, které podporují WebAuthn, a může mít současně přístup k integrované čtečce otisků prstů, připojenému klíči zabezpečení a mobilní aplikaci s podporou BLE.

Interoperability

Před WebAuthn a CTAP2 existovaly U2F a CTAP1. U2F je univerzální specifikace druhého faktoru FIDO Alliance. Existuje mnoho ověřovatelů, kteří mluví protokolEM CTAP1 a spravují přihlašovací údaje U2F. WebAuthn byl navržen tak, aby byl interoperabilní s ověřovacími objekty CTAP1. Předávající strana, která používá WebAuthn, může i nadále používat přihlašovací údaje U2F, pokud předávající strana nevyžaduje funkci pouze FIDO2.

Ověřování FIDO2 už bylo implementováno a předávající strany WebAuthn můžou vyžadovat následující volitelné funkce:

Následující možnosti můžou být užitečné v budoucnu, ale ve volné přírodě ještě nebyly pozorovány:

  • Schválení transakcí
  • Index ověření uživatele (servery můžou určit, jestli se místně uložená biometrická data změnila)
  • Metoda ověření uživatele (ověřovací metoda vrací přesnou metodu)
  • Meze biometrického výkonu (předávající strana může určit přijatelnou míru nepravdivého přijetí a míry nepravdivého zamítnutí)

implementace Microsoft

Implementace Microsoft FIDO2 byla řadu let. Software a služby se implementují nezávisle jako entity vyhovující standardům. Od verze Windows 10 verze 1809 (říjen 2018) používají všechny komponenty Microsoft nejnovější verzi WebAuthn Candidate. Jedná se o stabilní verzi, u které se neočekává normativní změna, než bude specifikace konečně ratifikována. Vzhledem k tomu, že Microsoft je mezi prvními na světě, kteří nasadí FIDO2, některé kombinace oblíbených Microsoft komponent zatím nebudou interoperabilní.

Tady je přibližné rozložení umístění Microsoft bitů:

Diagram znázorňuje interakci rozhraní API WebAuthn s Microsoft předávajícími stranami a rozhraním API CTAPI2.

Microsoft implementace rozhraní API WebAuthn a CATP2

  • Předávající strana WebAuthn: Microsoft účet. Pokud nemáte zkušenosti s účtem Microsoft, jedná se o přihlašovací službu pro Xbox, Outlook a mnoho dalších webů. Přihlašovací prostředí používá JavaScript na straně klienta k aktivaci Microsoft Edge pro komunikaci s rozhraními API WebAuthn. Microsoft účet vyžaduje, aby ověřovací uživatelé měli následující charakteristiky:

    • Klíče se ukládají místně na ověřovacím serveru, nikoli na vzdáleném serveru.
    • Offline scénáře fungují (povolené pomocí HMAC)
    • Uživatelé můžou do stejného ověřovacího objektu vložit klíče pro více uživatelských účtů.
    • V případě potřeby můžou ověřovatelé k odemknutí čipu TPM použít pin kód klienta.

    Důležité

    Vzhledem k tomu, že účet Microsoft vyžaduje funkce a rozšíření, které jsou jedinečné pro ověřování FIDO2 CTAP2, nepřijímá přihlašovací údaje CTAP1 (U2F).

  • Klient WebAuthn: Microsoft Edge. Microsoft Edge dokáže zpracovat uživatelské rozhraní pro funkce WebAuthn a CTAP2, které popisuje tento článek. Podporuje také rozšíření AppID. Microsoft Edge může pracovat s ověřovacími moduly CTAP1 i CTAP2. Tento obor interakce znamená, že může vytvořit a používat přihlašovací údaje U2F i FIDO2. Microsoft Edge ale nemluví o protokolu U2F. Proto předávající strany musí používat pouze specifikaci WebAuthn. Microsoft Edge v Androidu nepodporuje WebAuthn.

    Poznámka

    Autoritativní informace o podpoře Microsoft Edge pro WebAuthn a CTAP najdete v dokumentaci pro vývojáře starší verze Microsoft Edge.

  • Platforma: Windows 10, Windows 11. Windows 10 a Windows 11 hostovat rozhraní API WebAuthn platformy Win32.

  • Roamingové ověřovací objekty. Můžete si všimnout, že neexistuje žádná Microsoft ověřovacího objektu pro roaming. Důvodem je to, že už existuje silný ekosystém produktů, které se specializují na silné ověřování, a každý zákazník (ať už společnosti nebo jednotlivci) má různé požadavky na zabezpečení, snadné použití, distribuci a obnovení účtu. Další informace o neustále se rozšiřujícím seznamu certifikovaných ověřovatelů FIDO2 najdete v tématu FIDO Certified Products. Seznam obsahuje předdefinované ověřovatele, roamingové ověřovatele a dokonce i výrobce čipů, kteří mají certifikované návrhy.

Reference pro vývojáře

Rozhraní API WebAuthn jsou zdokumentovaná v úložišti GitHubu Microsoft/webauthn. Pokud chcete pochopit, jak ověřování FIDO2 funguje, projděte si následující dvě specifikace: