WebAuthn-APIs für die kennwortlose Authentifizierung unter Windows

Kennwörter können Ihre Kunden anfällig für Datenschutzverletzungen und Sicherheitsangriffe durch böswillige Benutzer machen.

Microsoft ist seit langem ein Verfechter der kennwortlosen Authentifizierung und hat die W3C/Fast IDentity Online 2 (FIDO2) Win32 WebAuthn-Plattform-APIs in Windows 10 (Version 1903) eingeführt.

Ab Windows 11 Version 22H2 unterstützen WebAuthn-APIs ECC-Algorithmen.

Was bedeutet dies?

Mithilfe von WebAuthn-APIs können Entwicklerpartner und die Entwicklercommunity Windows Hello- oder FIDO2-Sicherheitsschlüssel verwenden, um kennwortlose mehrstufige Authentifizierung für ihre Anwendungen auf Windows-Geräten zu implementieren.

Benutzer dieser Apps oder Websites können einen beliebigen Browser verwenden, der WebAuthn-APIs für die kennwortlose Authentifizierung unterstützt. Benutzer haben eine vertraute und konsistente Erfahrung unter Windows, unabhängig davon, welchen Browser sie verwenden.

Entwickler sollten die WebAuthn-APIs verwenden, um FIDO2-Authentifizierungsschlüssel auf konsistente Weise für Benutzer zu unterstützen. Darüber hinaus können Entwickler alle Transporte verwenden, die gemäß FIDO2-Spezifikationen verfügbar sind (USB, NFC und BLE), ohne den Interaktions- und Verwaltungsaufwand zu vermeiden.

Hinweis

Wenn diese APIs verwendet werden, haben Windows 10 Browser oder Anwendungen keinen direkten Zugriff auf die FIDO2-Transporte für FIDO-bezogene Nachrichten.

Das große Ganze

Das Client-zu-Authenticator-Protokoll 2 (CTAP2) und WebAuthn definieren eine Abstraktionsebene, die ein Ökosystem für stark authentifizierte Anmeldeinformationen erstellt. In diesem Ökosystem verwendet jeder interoperable Client (z. B. eine native App oder einen Browser), der auf einem bestimmten Clientgerät ausgeführt wird, eine standardisierte Methode für die Interaktion mit einem interoperablen Authentifikator. Interoperable Authentifikatoren umfassen Authentifikatoren, die in das Clientgerät integriert sind (Plattformauthentifikatoren), und Authentifikatoren, die über USB-, BLE- oder NFC-Verbindungen (Roamingauthentifikatoren) eine Verbindung mit dem Clientgerät herstellen.

Der Authentifizierungsprozess beginnt, wenn der Benutzer eine bestimmte Benutzergeste ausgibt, die die Zustimmung für den Vorgang angibt. Auf Anforderung des Clients erstellt der Authentifikator sichere kryptografische Schlüssel und speichert sie lokal.

Nachdem diese clientspezifischen Schlüssel erstellt wurden, können Clients Nachweise für die Registrierung und Authentifizierung anfordern. Der Typ der Signatur, die der private Schlüssel verwendet, spiegelt die Benutzergeste wider, die ausgeführt wurde.

Das folgende Diagramm zeigt, wie CTAP und WebAuthn interagieren. Die hellblauen gepunkteten Pfeile stellen Interaktionen dar, die von der spezifischen Implementierung der Plattform-APIs abhängen.

Das Diagramm zeigt, wie die WebAuthn-API mit den vertrauenden Seiten und der CTAPI2-API interagiert.

Beziehungen der Komponenten, die an der kennwortlosen Authentifizierung teilnehmen

Ein kombinierter WebAuthn/CTAP2-Tanz umfasst die folgende Besetzung von Charakteren:

  • Clientgerät. Das Clientgerät ist die Hardware, die eine bestimmte starke Authentifizierung hostet. Laptops und Telefone sind Beispiele für Clientgeräte.

  • Vertrauende Seiten und Clients. Vertrauende Seiten sind Web- oder native Anwendungen, die starke Anmeldeinformationen verwenden. Die vertrauenden Seiten werden auf Clientgeräten ausgeführt.

    • Als vertrauende Seite kann eine native Anwendung auch als WebAuthn-Client fungieren, um direkte WebAuthn-Aufrufe zu tätigen.

    • Als vertrauende Seite kann eine Webanwendung nicht direkt mit der WebAuthn-API interagieren. Die vertrauende Seite muss den Deal über den Browser vermitteln.

    Hinweis

    Das obige Diagramm zeigt keine SSO-Authentifizierung (Single Sign-On). Achten Sie darauf, vertrauende FIDO-Seiten nicht mit vertrauenden Partnerpartnern zu verwechseln.

  • WebAuthn-API. Mit der WebAuthn-API können Clients Anforderungen an Authentifikatoren senden. Der Client kann den Authentifikator anfordern, um einen Schlüssel zu erstellen, eine Assertion zu einem Schlüssel bereitzustellen, Funktionen zu berichten, eine PIN zu verwalten usw.

  • CTAP2-Plattform/-Host. Die Plattform (in der CTAP2-Spezifikation auch als Host bezeichnet) ist der Teil des Clientgeräts, der mit Authentifikatoren aushandelt. Die Plattform ist dafür verantwortlich, den Ursprung der Anforderung sicher zu melden und die CBOR-APIs (Concise Binary Object Representation) von CTAP2 aufzurufen. Wenn die Plattform nicht CTAP2-fähig ist, übernehmen die Kunden selbst eine größere Last. In diesem Fall können sich die im vorherigen Diagramm gezeigten Komponenten und Interaktionen unterscheiden.

  • Plattformauthentifikator. Ein Plattformauthentifikator befindet sich in der Regel auf einem Clientgerät. Beispiele für Plattformauthentifikatoren sind die Fingerabdruckerkennungstechnologie, die einen integrierten Laptop-Fingerabdruckleser und eine Gesichtserkennungstechnologie verwendet, die eine integrierte Smartphone-Kamera verwendet. Plattformübergreifende Transportprotokolle wie USB, NFC oder BLE können nicht auf Plattformauthentifikatoren zugreifen.

  • Roamingauthentifikator. Ein Roamingauthentifikator kann eine Verbindung mit mehreren Clientgeräten herstellen. Clientgeräte müssen ein unterstütztes Transportprotokoll verwenden, um Interaktionen auszuhandeln. Beispiele für Roaming-Authentifikatoren sind USB-Sicherheitsschlüssel, BLE-fähige Smartphoneanwendungen und NFC-fähige Näherungskarten. Roamingauthentifikatoren können CTAP1, CTAP2 oder beide Protokolle unterstützen.

Viele vertrauende Parteien und Clients können mit vielen Authentifikatoren auf einem einzelnen Clientgerät interagieren. Ein Benutzer kann mehrere Browser installieren, die WebAuthn unterstützen, und hat gleichzeitig Zugriff auf einen integrierten Fingerabdruckleser, einen angeschlossenen Sicherheitsschlüssel und eine ble-fähige mobile Anwendung.

Interoperabilität

Vor WebAuthn und CTAP2 gab es U2F und CTAP1. U2F ist die universelle Spezifikation der FIDO Alliance für den zweiten Faktor. Es gibt viele Authentifikatoren, die CTAP1 sprechen und U2F-Anmeldeinformationen verwalten. WebAuthn wurde entwickelt, um mit CTAP1-Authentifikatoren interoperabel zu sein. Eine vertrauende Seite, die WebAuthn verwendet, kann weiterhin U2F-Anmeldeinformationen verwenden, wenn die vertrauende Seite keine nur FIDO2-Funktionalität erfordert.

FIDO2-Authentifikatoren wurden bereits implementiert, und vertrauende WebAuthn-Seiten erfordern möglicherweise die folgenden optionalen Features:

Die folgenden Optionen können in Zukunft nützlich sein, wurden aber noch nicht in freier Wildbahn beobachtet:

  • Transaktionsgenehmigung
  • Benutzerüberprüfungsindex (Server können bestimmen, ob sich lokal gespeicherte biometrische Daten im Laufe der Zeit geändert haben)
  • Benutzerüberprüfungsmethode (der Authentifikator gibt die genaue Methode zurück)
  • Biometrische Leistungsgrenzen (die vertrauende Seite kann akzeptable Falschakzeptanz- und Falsche Ablehnungsraten angeben)

Microsoft-Implementierung

Die Microsoft FIDO2-Implementierung ist seit Jahren in der Erstellung. Software und Dienste werden unabhängig als standardskonforme Entitäten implementiert. Ab dem Windows 10, Version 1809 Release (Oktober 2018) verwenden alle Microsoft-Komponenten das neueste WebAuthn Candidate Release. Es handelt sich um ein stabiles Release, das sich nicht vor der endgültigen Ratifizierung der Spezifikation normativ ändern wird. Da Microsoft zu den ersten weltweit gehört, die FIDO2 bereitstellen, sind einige Kombinationen beliebter Nicht-Microsoft-Komponenten noch nicht interoperabel.

Hier ist ein ungefähres Layout, wo die Microsoft-Bits liegen:

Das Diagramm zeigt, wie die WebAuthn-API mit den vertrauenden Microsoft-Parteien und der CTAPI2-API interagiert.

Implementierung von WebAuthn- und CATP2-APIs durch Microsoft

  • WebAuthn-Vertrauende Seite: Microsoft-Konto. Wenn Sie mit dem Microsoft-Konto nicht vertraut sind, handelt es sich um den Anmeldedienst für Xbox, Outlook und viele andere Websites. Die Anmeldeoberfläche verwendet clientseitiges JavaScript, um Microsoft Edge für die Kommunikation mit den WebAuthn-APIs auszulösen. Microsoft-Konto erfordert, dass Authentifikatoren die folgenden Merkmale aufweisen:

    • Schlüssel werden lokal auf dem Authentifikator und nicht auf einem Remoteserver gespeichert.
    • Offlineszenarien funktionieren (aktiviert mithilfe von HMAC)
    • Benutzer können Schlüssel für mehrere Benutzerkonten auf demselben Authentifikator platzieren.
    • Wenn dies erforderlich ist, können Authentifikatoren eine Client-PIN verwenden, um ein TPM zu entsperren.

    Wichtig

    Da das Microsoft-Konto Features und Erweiterungen erfordert, die für FIDO2 CTAP2-Authentifikatoren eindeutig sind, werden keine CTAP1-Anmeldeinformationen (U2F) akzeptiert.

  • WebAuthn-Client: Microsoft Edge. Microsoft Edge kann die Benutzeroberfläche für die WebAuthn- und CTAP2-Features verarbeiten, die in diesem Artikel beschrieben werden. Außerdem wird die AppID-Erweiterung unterstützt. Microsoft Edge kann sowohl mit CTAP1- als auch mit CTAP2-Authentifikatoren interagieren. Dieser Interaktionsbereich bedeutet, dass sowohl U2F- als auch FIDO2-Anmeldeinformationen erstellt und verwendet werden können. Microsoft Edge spricht jedoch nicht das U2F-Protokoll. Daher dürfen vertrauende Seiten nur die WebAuthn-Spezifikation verwenden. Microsoft Edge unter Android unterstützt WebAuthn nicht.

    Hinweis

    Maßgebliche Informationen zur Microsoft Edge-Unterstützung für WebAuthn und CTAP finden Sie in der Legacydokumentation für Microsoft Edge-Entwickler.

  • Plattform: Windows 10, Windows 11. Windows 10 und Windows 11 hosten die WebAuthn-APIs der Win32-Plattform.

  • Roaming-Authentifikatoren. Möglicherweise stellen Sie fest, dass es keinen Microsoft-Roamingauthentifikator gibt. Der Grund dafür ist, dass es bereits ein starkes Ökosystem von Produkten gibt, die sich auf eine starke Authentifizierung spezialisiert haben und jeder Kunde (ob Unternehmen oder Einzelpersonen) unterschiedliche Anforderungen an Sicherheit, Benutzerfreundlichkeit, Verteilung und Kontowiederherstellung hat. Weitere Informationen zur ständig wachsenden Liste von FIDO2-zertifizierten Authentifikatoren finden Sie unter FIDO-zertifizierte Produkte. Die Liste enthält integrierte Authentifikatoren, Roaming-Authentifikatoren und sogar Chiphersteller, die über zertifizierte Designs verfügen.

Entwicklerreferenzen

Die WebAuthn-APIs sind im GitHub-Repository Microsoft/webauthn dokumentiert. Um zu verstehen, wie FIDO2-Authentifikatoren funktionieren, lesen Sie die folgenden beiden Spezifikationen: