Inhalt

Journey To Passwordless: FIDO2 Schlüssel einschränken & Fazit

Artikelübersicht

  1. Passwordless - Aber warum?
  2. Initiale Konfiguration
  3. Temporary Access Pass
  4. FIDO2 Security keys
  5. Windows 10 Device Onboarding und Windows Hello for Business
  6. Administrieren mit PowerShell und ohne Passwort
  7. Microsoft Authenticator app
  8. FIDO2 Schlüssel einschränken & Fazit

Erweiterte Einschränkungen

Im letzten Blogpost der Serie wird es noch ein wenig technischer. Denn für FIDO2 Security Keys als Anmeldemethode können einige zusätzliche Einstellungen im Azure Portal konfiguriert werden.

  • Allow self-service set up
  • Enforce attestation
  • Enforce key restrictions - Restrict specific keys (Allow/Block)

Allow self-service set up

Diese Einstellung muss Stand 07/2021 zwingend auf “Yes” bleiben. Wenn diese Einstellung auf “No” gestellt wird, ist es keinem Benutzer mehr möglich einen FIDO2 Security Key hinzuzufügen. Da es aber auch nicht möglich ist für den Benutzer einen Schlüssel zu registrieren, würde “No” den Einsatz von neuen Schlüsseln effektiv verhindern.

Enforce attestation

Wenn die Attestation erzwungen wird, muss sich der FIDO2 Schlüssel bei der initialen Registrierung sich gegenüber dem Azure AD (Relying Party) ausweisen.

Der Hersteller muss, damit der FIDO2 Schlüssel dies überhaupt unterstützt, bei der Zertifizierung ein metadata statement mit den Eigenschaften des FIDO2 Security Keys vorlegen, welches anschließend durch die FIDO2 Alliance verteilt wird. Der Hersteller vergibt für jedes Schlüsselmodell eine Authenticator Attestation Globally Unique ID welche das genaue Modell später identifiziert.

Während der eigentlichen Registrierung fordert das Azure AD mittels eines policy statement bestimmte Eigenschaften des Schlüssels an. Wenn kein entsprechender Security Schlüssel gefunden wird, ist eine Registrierung nicht möglich.

Unterstützt der Schlüssel alle Anforderungen, in diesem Fall attestation, sendet der FIDO2 Schlüssel zusätzliche Informationen an das Azure AD zurück. Dazu gehört neben der AAGUID auch eine Signatur, die mit dem privaten Schlüssel des Attestation Zertifikats erstellt wird. Dieser private Schlüssel wird vom Hersteller während der Produktion auf den FIDO2 Security Key geschrieben und wird auch bei einem Reset nicht gelöscht.

Das Azure AD kann anhand dieser Signatur prüfen, ob der FIDO2 Schlüssel wirklich dem angegebenen Modell entspricht und so verhindern, dass ein FIDO2 Schlüssel nur so tut als unterstütze er alle Anforderungen. Dazu nutzt das Azure AD die im metadata statement hinterlegten öffentlichen Schlüssel oder prüft ob die Signatur von einem im metadata statement angegebenen Zertifikat (trust chain) signiert wurde.

Authenticator Attestation GUID (AAGUID)

Die Authenticator Attestation Globally Unique ID ist ein eindeutiger Identifier mit einer Länge von 128-bit. Er wird vom Hersteller des Schlüssels vergeben, wobei es ausreicht, dass der Hersteller eine AAGUID pro Modellreihe definiert. Im Fall von Yubikey gibt es hier teilweise auch Dopplungen, da sich die AAGUID nicht auf das Interface des Schlüssels (z.B. USB-C oder USB-A) bezieht, sondern auf den verbauten Security Chip.

Das Format entspricht dem RFC4122 und wird als fünf hexadezimale Abschnitte, getrennt von einem Bindestrich dargestellt.

Beispiel: 0076631b-d4a0-427f-5773-0ec71c9e0279

Diese GUID kann an verschiedenen Stellen im Azure AD ausgelesen werden.

Security Info Portal

Jeder Anwender kann sich die AAGUID im Bereich Security Info selbst anzeigen lassen.

/journey-passwordless-restrict-fido2/images/AAGUID.png

Azure AD Portal

Als Administrator kann man auch in den Authentifizierungsmethoden des Anwenders, über View details die entsprechenden Informationen abrufen.

/journey-passwordless-restrict-fido2/images/AzureADFIDO2SecurityKeyDetails.png

Graph API

Und natürlich stehen diese Infos auch in der Graph API zu Verfügung.

https://graph.microsoft.com/beta/users/849189be-c4c1-4873-aabd-570604214c0a/authentication/methods

{
    "@odata.type": "#microsoft.graph.fido2AuthenticationMethod",
    "id": "3f0S9SVSIKt4Ti9ZtgFjSHf7ahkNN3js0FTPe5dPD4o1",
    "displayName": "FEITIAN AllinPass FIDO2",
    "creationDateTime": "2021-05-13T14:19:39Z",
    "createdDateTime": "2021-05-13T14:19:39Z",
    "aaGuid": "12ded745-4bed-47d4-abaa-e713f51d6393",
    "model": "Feitian BioPass FIDO USB/NFC/BLE",
    "attestationCertificates": [
        "4f94e8b002c79416507e9d9d390eca3153e1a5e8",
        "9e3808651ecfa53162772e9d2bc62bfe568350a9"
    ],
    "attestationLevel": "attested"
}

Bekannte AAGUIDs

Folgende AAGUIDs sind mir aktuell bekannt. Ich werde diese Liste, wenn ich noch weitere AAGUIDs finde, erweitern. Yubico bietet auch eine Übersicht auf seiner eigenen Webseite an.

Vendor Devicename FIDO2 AAGUID
FEITIAN FIDO Java card 2c0df832-92de-4be1-8412-88a8f074df4a
FEITIAN FIDO fingerprint card 8c97a730-3f7b-41a6-87d6-1e9b62bda6f0
FEITIAN MultiPass FIDO 310b2830-bd4a-4da5-832e-9a0dfc90abf2
FEITIAN iePass FIDO 6e22415d-7fdf-4ea4-8a0c-dd60c4249b9d
FEITIAN ePass FIDO 833b721a-ff5f-4d00-bb2e-bdda3ec01e29
FEITIAN ePass FIDO NFC ee041bce-25e5-4cdb-8f86-897fd6418464
FEITIAN BioPass K26/K27 77010bd7-212a-4fc9-b236-d2ca5e9d4084
FEITIAN BioPass K26/K27 Plus b6ede29c-3772-412c-8a78-539c1f4c62d2
FEITIAN BioPass K45 77010bd7-212a-4fc9-b236-d2ca5e9d4084
FEITIAN BioPass K45 plus b6ede29c-3772-412c-8a78-539c1f4c62d2
FEITIAN Allin Pass 12ded745-4bed-47d4-abaa-e713f51d6393
Yubico YubiKey 5 (USB-A, No NFC) cb69481e-8ff7-4039-93ec-0a2729a154a8
Yubico YubiKey 5 (USB-A, No NFC) ee882879-721c-4913-9775-3dfcce97072a
Yubico YubiKey 5 NFC fa2b99dc-9e39-4257-8f92-4a30d23c4118
Yubico YubiKey 5 NFC 2fc0579f-8113-47ea-b116-bb5a8db9202a
Yubico YubiKey 5 NFC FIPS c1f9a0bc-1dd2-404a-b27f-8e29047a43fd
Yubico YubiKey 5 Nano cb69481e-8ff7-4039-93ec-0a2729a154a8
Yubico YubiKey 5 Nano ee882879-721c-4913-9775-3dfcce97072a
Yubico YubiKey 5C cb69481e-8ff7-4039-93ec-0a2729a154a8
Yubico YubiKey 5C ee882879-721c-4913-9775-3dfcce97072a
Yubico YubiKey 5C Nano cb69481e-8ff7-4039-93ec-0a2729a154a8
Yubico YubiKey 5C Nano ee882879-721c-4913-9775-3dfcce97072a
Yubico YubiKey 5C NFC 2fc0579f-8113-47ea-b116-bb5a8db9202a
Yubico YubiKey 5C NFC FIPS c1f9a0bc-1dd2-404a-b27f-8e29047a43fd
Yubico YubiKey 5Ci c5ef55ff-ad9a-4b9f-b580-adebafe026d0
Yubico Security Key By Yubico f8a011f3-8c0a-4d15-8006-17111f9edc7d
Yubico Security Key By Yubico b92c3f9a-c014-4056-887f-140a2501163b
Yubico Security Key NFC 6d44ba9b-f6ec-2e49-b930-0c8fe920cb73
Yubico Security Key NFC 149a2021-8ef6-4133-96b8-81f8d5b7f1f5

Enforce key restrictions - Restrict specific keys

Mit dieser Option kann man verhindern, das bestimmte Security Keys genutzt werden können. Dabei hat man die Wahl ob man eine Block oder eine Allow Liste pflegen will.

Eine Block-Liste macht in den meisten Fällen Sinn, wenn bekannt ist das bestimmte FIDO2 Schlüssel nicht verwendet werden sollen, weil diese z.B. nicht den gewünschten Sicherheitsansprüchen genügen.

Mittels einer Allow-Liste könnte z.B. der Einsatz von bestimmten von der Firma freigegebenen FIDO2 Schlüsseln erzwungen werden.

Während der Einrichtung bekommt der Anwender nichts von diesen Vorgaben mit. Erst im letzten Schritt bei der Einrichtung, nach der Vergabe eines Namens, wird der Schlüssel abgelehnt.

Warnung
We detected that this particular key type has been blocked by your organization. Contact your administrator for more details and try registering a different type of key.

/journey-passwordless-restrict-fido2/images/KeyNotAllowed.png

Im Azure AD Auditlog wird dies als Status clientError und der Begründung User failed to register Fido angezeigt.

/journey-passwordless-restrict-fido2/images/FIDOfailed.png

Fazit

Die in dieser Blogreihe betrachteten Einsatzszenarien von Passwordless zeigen, wie umfangreich dieses Thema im Microsoft Kosmos schon unterstützt wird. Gerade in Umgebungen, in denen die Anwender zu 100% mit Cloud-Diensten arbeiten, gibt es eigentlich keinen Grund mehr diesen Weg nicht einzuschlagen.

Neben den vielen Sicherheitsvorteilen bietet die Anmeldung mit FIDO Security Keys, gerade wenn Sie mit biometrischen Merkmalen entsperrt werden können, ein großes Plus beim Nutzungskomfort. Für den Anwender ist diese Art der Authentifizierung durch moderne Smartphones mittlerweile zum Standard geworden und kann nun auch endlich am Arbeitsplatz genutzt werden. Während Windows Hello for Business dies mit der Unterstützung von Kameras und Fingerabdruckssensoren schon seit längerem bietet, bringt der Einsatz von FIDO2 Schlüsseln Vorteile in Bereichen, in denen kein fester Arbeitsplatz genutzt wird und eher an einem Kiosk PC gearbeitet wird.

Bestimmte Einschränkungen, wie z.B. das es nicht möglich ist einen FIDO2 Key für einen Endanwender bereitzustellen, oder dass diese auf Smartphones noch nicht unterstützt werden, trüben den positiven Gesamteindruck etwas. Jedoch gibt es mit der Authenticator App auch hier eine gute Alternative.

In einer stark durch Windows 10 Clients geprägten Umgebung sind die Vorteile für den Anwender schon heute enorm. Verlässt man jedoch dieses Umfeld, muss man auf Apple oder Google hoffen und auf die dort verfügbaren Methoden der Anmeldung in ChromeOS und macOS zurückgreifen. Hier wird der Komfort für den Endanwender, besonders in den oben angesprochenen Kiosk PC Szenarien, geschmälert.

Was ich in dieser Reihe gar nicht betrachtet habe, ist das Arbeiten in einer hybrid Umgebung. Auch hier ist ein passwortloses Arbeiten schon heute möglich, jedoch ist der Planungs- und Implementierungsaufwand um einiges größer. Je nach Nutzungsszenario kann es hier schnell notwendig werden auch eine PKI Umgebung aufzubauen bzw. die vorhandene anzupassen. Das sind alles keine Hinderungsgründe, jedoch birgt die “schnelle” Implementierung einer PKI auch große Risiken.

Mein Ausflug in die Welt ohne Passwort kommt hiermit also nicht zum Ende, aber die nächsten Posts werden in einer eigenen Reihe erscheinen und nicht schon in den nächsten Wochen bereitstehen.