Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Hasła mogą narażać klientów na naruszenia danych i ataki bezpieczeństwa złośliwych użytkowników.
Microsoft od dawna jest zwolennikiem uwierzytelniania bez hasła i wprowadziła interfejsy API platformy W3C/Fast IDentity Online 2 (FIDO2) Win32 WebAuthn w Windows 10 (wersja 1903).
Począwszy od Windows 11, wersja 22H2, interfejsy API usługi WebAuthn obsługują algorytmy ECC.
Co to znaczy?
Korzystając z interfejsów API usługi WebAuthn, partnerzy deweloperów i społeczność deweloperów mogą używać kluczy zabezpieczeń Windows Hello lub FIDO2 do implementowania uwierzytelniania wieloskładnikowego bez hasła dla swoich aplikacji na urządzeniach z systemem Windows.
Użytkownicy tych aplikacji lub witryn mogą używać dowolnej przeglądarki, która obsługuje interfejsy API usługi WebAuthn na potrzeby uwierzytelniania bez hasła. Użytkownicy będą mieli znane i spójne środowisko w systemie Windows, niezależnie od tego, której przeglądarki używają.
Deweloperzy powinni używać interfejsów API usługi WebAuthn do obsługi kluczy uwierzytelniania FIDO2 w spójny sposób dla użytkowników. Ponadto deweloperzy mogą korzystać ze wszystkich transportów dostępnych według specyfikacji FIDO2 (USB, NFC i BLE), unikając interakcji i zarządzania obciążeniem.
Nota
Gdy te interfejsy API są używane, Windows 10 przeglądarki lub aplikacje nie mają bezpośredniego dostępu do transportu FIDO2 na potrzeby komunikatów związanych z fido.
Duży obraz
Protokoły Client to Authenticator Protocol 2 (CTAP2) i WebAuthn definiują warstwę abstrakcji, która tworzy ekosystem dla silnie uwierzytelnionych poświadczeń. W tym ekosystemie każdy klient współdziałający (taki jak natywna aplikacja lub przeglądarka), który działa na danym urządzeniu klienckim, używa standardowej metody do interakcji z dowolnym współdziałanym uwierzytelnianiem. Współdziałanie wystawców uwierzytelniania obejmuje uwierzytelnienia wbudowane w urządzenie klienckie (uwierzytelnienia platformy) i uwierzytelnienia łączące się z urządzeniem klienckim przy użyciu połączeń USB, BLE lub NFC (uwierzytelniania roamingu).
Proces uwierzytelniania rozpoczyna się, gdy użytkownik wykonuje określony gest użytkownika, który wskazuje zgodę na operację. Na żądanie klienta uwierzytelniacz bezpiecznie tworzy silne klucze kryptograficzne i przechowuje je lokalnie.
Po utworzeniu tych kluczy specyficznych dla klienta klienci mogą żądać zaświadczania o rejestrację i uwierzytelnianie. Typ podpisu używanego przez klucz prywatny odzwierciedla wykonany gest użytkownika.
Na poniższym diagramie przedstawiono sposób interakcji usług CTAP i WebAuthn. Jasnoniebieskie strzałki kropkowane reprezentują interakcje, które zależą od konkretnej implementacji interfejsów API platformy.
Relacje składników, które uczestniczą w uwierzytelnianiu bez hasła
Połączony taniec WebAuthn/CTAP2 obejmuje następującą obsadę postaci:
Urządzenie klienckie. Urządzenie klienckie to sprzęt, który hostuje dane silne uwierzytelnianie. Laptopy i telefony to przykłady urządzeń klienckich.
Jednostki uzależnionej i klienci. Jednostki uzależnionej to aplikacje internetowe lub natywne, które używają silnych poświadczeń. Jednostki uzależnionej działają na urządzeniach klienckich.
Jako jednostka uzależniona aplikacja natywna może również działać jako klient usługi WebAuthn w celu wykonywania bezpośrednich wywołań webauthn.
Jako jednostka uzależniona aplikacja internetowa nie może bezpośrednio wchodzić w interakcje z interfejsem API usługi WebAuthn. Jednostka uzależniona musi brokera transakcji za pośrednictwem przeglądarki.
Nota
Powyższy diagram nie przedstawia uwierzytelniania jednokrotnego Sign-On (SSO). Uważaj, aby nie mylić jednostek uzależnionych FIDO z federacyjnymi jednostkami uzależnionymi.
Interfejs API webauthn. Interfejs API webauthn umożliwia klientom wykonywanie żądań do wystawców uwierzytelniania. Klient może zażądać od wystawcy uwierzytelnienia utworzenia klucza, zapewnienia potwierdzenia dotyczącego klucza, możliwości raportu, zarządzania numerem PIN itd.
Platforma/host CTAP2. Platforma (nazywana również hostem w specyfikacji CTAP2) jest częścią urządzenia klienckiego, które negocjuje z uwierzytelnieniami. Platforma jest odpowiedzialna za bezpieczne raportowanie źródła żądania i wywoływanie interfejsów API zwięzłej reprezentacji obiektów binarnych (CBOR) CTAP2. Jeśli platforma nie jest świadoma CTAP2, sami klienci ponoszą większe obciążenie. W takim przypadku składniki i interakcje wyświetlane na powyższym diagramie mogą się różnić.
Uwierzytelnianie platformy. Uwierzytelnianie platformy zwykle znajduje się na urządzeniu klienckim. Przykłady uwierzytelniania platformy obejmują technologię rozpoznawania odcisków palców, która wykorzystuje wbudowany czytnik linii papilarnych laptopów i technologię rozpoznawania twarzy, która wykorzystuje wbudowany aparat smartfona. Międzyplatformowe protokoły transportowe, takie jak USB, NFC lub BLE, nie mogą uzyskać dostępu do uwierzytelniaczów platformy.
Uwierzytelnianie roamingu. Uwierzytelnianie roamingu może łączyć się z wieloma urządzeniami klienckimi. Urządzenia klienckie muszą używać obsługiwanego protokołu transportu do negocjowania interakcji. Przykłady uwierzytelniania roamingu obejmują klucze zabezpieczeń USB, aplikacje na smartfony z obsługą ble i karty zbliżeniowe z obsługą nfc. Uwierzytelnianie roamingu może obsługiwać protokoły CTAP1, CTAP2 lub oba protokoły.
Wiele jednostek uzależnionych i klientów może wchodzić w interakcje z wieloma wystawcami uwierzytelniania na jednym urządzeniu klienckim. Użytkownik może zainstalować wiele przeglądarek obsługujących usługę WebAuthn i jednocześnie mieć dostęp do wbudowanego czytnika linii papilarnych, podłączonego klucza zabezpieczeń i aplikacji mobilnej z włączoną funkcją BLE.
Interoperacyjności
Przed platformami WebAuthn i CTAP2 istniały U2F i CTAP1. U2F to uniwersalna specyfikacja drugiego czynnika FIDO Alliance. Istnieje wiele wystawców uwierzytelniania, które mówią CTAP1 i zarządzają poświadczeniami U2F. Usługa WebAuthn została zaprojektowana tak, aby współdziałać z uwierzytelnianiami CTAP1. Jednostka uzależniona korzystająca z usługi WebAuthn nadal może używać poświadczeń U2F, jeśli jednostka uzależniająca nie wymaga funkcji tylko fido2.
Uwierzytelnienia FIDO2 zostały już zaimplementowane, a jednostki uzależnione webAuthn mogą wymagać następujących opcjonalnych funkcji:
- Klucze dla wielu kont (klucze mogą być przechowywane na jednostkę uzależnioną)
- Numer PIN klienta
- Lokalizacja (uwierzytelnianie zwraca lokalizację)
- Klucz tajny kodu uwierzytelniania komunikatów oparty na skrótach (HMAC) (włącza scenariusze w trybie offline)
Następujące opcje mogą być przydatne w przyszłości, ale nie zostały jeszcze zaobserwowane w środowisku naturalnym:
- Zatwierdzanie transakcyjne
- Indeks weryfikacji użytkownika (serwery mogą określić, czy dane biometryczne przechowywane lokalnie ulegają zmianie w czasie)
- Metodaweryfikacjia
- Biometryczne ograniczenia wydajności (jednostka uzależniona może określić akceptowalne współczynniki fałszywej akceptacji i odrzucenia fałszu)
implementacja Microsoft
Implementacja Microsoft FIDO2 trwa od lat. Oprogramowanie i usługi są implementowane niezależnie jako jednostki zgodne ze standardami. Od wersji Windows 10, wersja 1809 (październik 2018 r.) wszystkie składniki Microsoft korzystają z najnowszej wersji WebAuthn Candidate. Jest to stabilna wersja, która nie powinna ulec zmianie normatywnie, zanim specyfikacja zostanie ostatecznie ratyfikowana. Ponieważ Microsoft jest jednym z pierwszych na świecie do wdrożenia FIDO2, niektóre kombinacje popularnych składników innych niż Microsoft nie będą jeszcze współdziałać.
Oto przybliżony układ miejsca, w którym znajdują się Microsoft bity:
implementacja interfejsów API WebAuthn i CATP2 Microsoft
Jednostka uzależniająca webAuthn: konto Microsoft. Jeśli nie znasz konta Microsoft, jest to usługa logowania dla konsoli Xbox, programu Outlook i wielu innych witryn. Środowisko logowania używa języka JavaScript po stronie klienta do wyzwalania Microsoft Edge w celu mówienia z interfejsami API usługi WebAuthn. Microsoft Konto wymaga, aby uwierzytelnienia miały następujące cechy:
- Klucze są przechowywane lokalnie na uwierzytelniaczu, a nie na serwerze zdalnym
- Scenariusze w trybie offline działają (włączone przy użyciu rozwiązania HMAC)
- Użytkownicy mogą umieszczać klucze dla wielu kont użytkowników w tym samym uwierzytelniaczu
- Jeśli jest to konieczne, wystawcy uwierzytelniania mogą użyć numeru PIN klienta do odblokowania modułu TPM
Ważne
Ponieważ konto Microsoft wymaga funkcji i rozszerzeń, które są unikatowe dla wystawców uwierzytelniania FIDO2 CTAP2, nie akceptuje poświadczeń CTAP1 (U2F).
Klient webauthn: Microsoft Edge. Microsoft Edge może obsługiwać interfejs użytkownika funkcji WebAuthn i CTAP2, które opisano w tym artykule. Obsługuje również rozszerzenie AppID. Microsoft Edge może wchodzić w interakcje zarówno z uwierzytelnianiami CTAP1, jak i CTAP2. Ten zakres interakcji oznacza, że może tworzyć i używać poświadczeń U2F i FIDO2. Jednak Microsoft Edge nie mówi protokołu U2F. W związku z tym jednostki uzależnionej muszą używać tylko specyfikacji WebAuthn. Microsoft Edge w systemie Android nie obsługuje usługi WebAuthn.
Nota
Aby uzyskać autorytatywne informacje o obsłudze usługi Microsoft Edge dla usług WebAuthn i CTAP, zobacz Dokumentacja dewelopera starszej wersji Microsoft Edge.
Platforma: Windows 10, Windows 11. Windows 10 i Windows 11 hostują interfejsy API WebAuthn platformy Win32.
Uwierzytelnianie roamingu. Możesz zauważyć, że nie ma Microsoft uwierzytelniania roamingu. Przyczyną jest to, że istnieje już silny ekosystem produktów, które specjalizują się w silnym uwierzytelnianiu, a każdy klient (korporacje lub osoby prywatne) ma różne wymagania dotyczące bezpieczeństwa, łatwości użycia, dystrybucji i odzyskiwania konta. Aby uzyskać więcej informacji na temat stale rosnącej listy certyfikowanych wystawców uwierzytelnień FIDO2, zobacz Certyfikowane produkty FIDO. Lista zawiera wbudowane uwierzytelnienia, uwierzytelnienia mobilne, a nawet producentów chipów, którzy mają certyfikowane projekty.
Dokumentacja dla deweloperów
Interfejsy API webauthn są udokumentowane w repozytorium gitHub Microsoft/webauthn. Aby zrozumieć, jak działają wystawcy uwierzytelniania FIDO2, zapoznaj się z następującymi dwiema specyfikacjami:
- Uwierzytelnianie internetowe: interfejs API umożliwiający uzyskiwanie dostępu do poświadczeń klucza publicznego (dostępny w witrynie W3C). Ten dokument jest znany jako specyfikacja usługi WebAuthn.
- Protokół CTAP (Client to Authenticator Protocol). Ten dokument jest dostępny w witrynie FIDO Alliance , na której zespoły ds. sprzętu i platformy współpracują ze sobą w celu rozwiązania problemu uwierzytelniania FIDO.