Depuis quelques mois, j’ai eu l’occasion de récupérer une clef d’authentification FIDO2, plus précisément une Yubikey 5 NFC.
https://www.yubico.com/product/yubikey-5-nfc
Merci à toute l’équipe des Identity Days, événement où j’ai eu l’occasion de rencontrer Yubico et récupérer cette clef.
J’ai donc enfin pris le temps de configurer ma YubiKey comme facteur d’authentification sur mon compte Azure AD. Ce que nous allons voir dans le reste de ce post.
Mais avant de commencer, un grand merci à mon ami et professeur Christopher pour son aide et ses explications lors de mes tests.
L’environnement que j’utilise pour réalisé mes tests est licencié au niveau Azure AD P1.
Sommaire
Rappel sur l'authentification FIDO2
L’authentification FIDO2 est documentée sur le site Microsoft à l’adresse :
Le schéma ci-dessous décrit le fonctionnement de ce type d’authentification.
Je ne vais pas vous commenter tout le processus d’authentification FIDO2, nous allons plutôt nous pencher sur ce qui est important de noté dans ce processus d’authentification. Il n’y a aucune donnée de l’utilisateur qui est envoyé sur le réseau.
- Le code PIN permet de déverrouiller la clef et est utilisé uniquement en local sur le PC.
- En plus du PIN, une action physique est nécessaire pour déverrouiller la clef.
Ceux-ci signifie que même si un attaquant vient à se procurer le code PIN de la clef, il ne pourra pas accéder aux informations stockées sur celle-ci sans une action physique.
Quant aux échanges pour l’authentification, seul le token signé par la clef transite sur le réseau.
Note : Action physique sur la clef pour la déverrouiller signifie toucher le symbole “Y” de la clef avec son doigt.
Configuration initiale de la Yubikey
Depuis l'utilitaire YubiKey Manager
Dans un premier temps, nous allons commencer par configurer les options FIDO2 de cette nouvelle clef.
Se rendre sur le site Yubico, télécharger et installer l’utilitaire “YubiKey Manager”.
https://www.yubico.com/products/services-software/download/yubikey-manager/
Dès que cela est fait, lancer en tant qu’administrateur l’utilitaire.
La fenêtre d’accueil de l’utilitaire est assez sommaire et vous invite à connecter votre Yubikey.
Dès que votre clef est détectée, vous retrouvez quelques informations comme la version du Firmware et le numéro de série de celle-ci.
Notons que pour le moment et pour raison de sécurité, il n’est pas possible de réaliser une mise à jour du firmware de votre Yubikey.
https://support.yubico.com/support/solutions/articles/15000006434-upgrading-yubikey-firmware
La configuration de la partie FIDO2 se passe quant à elle dans le menue “Applications” –> “FIDO2“.
Dans ce nouveau menu deux options s’offre à nous “Set PIN” et “Reset FIDO“.
- Reset FIDO, comme son nom l’indique permet de remettre à zéro la configuration de votre clef. C’est-à-dire supprimer le code PIN (pratique en cas d’oubli) ainsi que supprimer l’ensemble des comptes stockés dans votre clef.
- Set PIN, permet de configurer le code PIN de la clef. Ce que nous allons faire.
Cliquer sur “Set PIN“.
La fenêtre suivante vous invite à rentrer le code PIN de votre clef.
Notons qu’une fois le code PIN configuré, il est possible de modifier ce code PIN à partir du même menu.
Ensuite se rendre dans le menu “Interface“.
Ce menu permet d’autoriser l’utilisation des différents protocoles d’authentification sur les interfaces de votre Yubikey (USB ou NFC).
Dans ce cas si, veiller à ce qu’a minima FIDO2 soit activé sur l’USB.
Votre Yubikey est prête pour être utilisé avec FIDO2
Depuis Windows
Windows 10 permet lui aussi nativement de gérer les clefs de sécurité. Certes moins d’options son disponible, mais il est possible sans installer d’utilitaire supplémentaire de reset votre clef ou de changer le PIN de celle-ci.
Se rendre dans le menu “Settings“.
Puis le souc-menu “Accounts“.
“Sign-in options” –> “Security Key” et cliquer sur “Manage“.
Dans cette dernière fenêtre, vous retrouvez 2 actions possibles :
- Changer le code PIN de la clef.
- Reset complet de la clef.
Les principales actions sont disponibles nativement sans ajout d’outil tiers. Ce qui s’avère très utile pour une utilisation end-user et quotidienne de la clef.
Dans un scénario d’entreprise, il est possible d’imaginer une première initialisation de la clef par le service Helpdesk via l’utilitaire Yubikey afin de restreindre les protocoles et interfaces disponible selon la politique de l’entreprise.
Et les actions (changement du PIN ou reset) du quotidien documentées et à charge de l’utilisateur final.
Rappelons le, même si la clef est distribuée par l’entreprise, le contenue de la clef appartient à l’utilisateur.
Configuration du tenant pour FIDO2
Au moment de la rédaction de cet article, la fonctionnalité d’authentification via FIDO2 est en preview. La configuration peut quelque peu varier lors du passage en GA.
Pour cette démonstration, j’ai utilisé deux groupes de sécurité Azure AD.
- AUTH_Allow_PreviewAuth : autorise les utilisateurs à accéder aux fonctionnalités d’authentification preview.
- AUTH_Grant_FIDO2 : autorise les utilisateurs à utiliser FIDO2.
Dans ces deux groupes, ajouter les utilisateurs souhaitant utiliser l’authentification FIDO2.
La configuration de l’authentification se passe quant à elle dans la partie “Security” de votre Azure AD.
Se rendre dans “Security” –> “Authentification methods”.
Plusieurs options d’authentifications vous sont présentés, nous allons configurer “FIDO Security Key”.
Passer cette option à “Enable” et dans les cibles sélectionner le groupe AD auquel vous souhaitez proposer l’authentification FIDO2.
Dans cet exemple le groupe est “AUTH_Grant_FIDO2”. Il est possible de proposer cette méthode d’authentification à tous les utilisateurs et donc de ne pas restreindre.
Ensuite nous allons autoriser les utilisateurs à accéder aux méthodes d’authentification en preview ainsi qu’à utiliser plusieurs méthodes d’authentification.
Cliquer sur le lien en haut de la page “Click here to enable users for the combined security info registration experience“.
Dans cette nouvelle page, nous allons autoriser les utilisateurs à accéder depuis leur portail à cette nouvelle fonctionnalité.
- User can use preview features for My Apps. –> Autorise les utilisateurs à accéder au nouveau portail (preview).
- User can use the combined security information registration experience. –> Autorise les utilisateurs à unifier leurs méthodes d’authentification, MFA et SSPR.
Sur ces deux options, j’autorise le groupes “AUTH_Allow_PreviewAuth”, il est aussi possible selon vos choix d’autoriser tous le monde.
Ne pas oublier de sauvegarder la configuration à chaque étape.
La configuration sur le tenant est terminée. Les options d’authentifications seront disponibles dans le portail utilisateur sous environ 15 minutes.
Enrôlement de la clef FIDO2
L’enrôlement de la clef doit être réalisé par l’utilisateur lui même depuis son compte AAD.
https://account.activedirectory.windowsazure.com/
ou plus directement :
https://mysignins.microsoft.com/security-info
S’authentifier de manière traditionnelle (ici l’utilisateur est b.nugues@teddycorp.net).
Se rendre dans son compte AAD en cliquant sur “View my account“.
Puis se rendre dans l’onglet “Security info“.
Vous serez redirigé sur la page : https://mysignins.microsoft.com/security-info
L’ajout des nouvelles méthodes d’authentifications est réalisé dans cette nouvelle page.
Cette nouvelle vue des méthodes d’authentifications est le résultat de l’activation de l’option “User can use the combined security information registration experience”.
Pour ajouter notre authentification via clef la Yubikey, cliquer sur “Add method“.
Sélectionner comme méthode d’authentification “Security key“.
La configuration par clef de sécurité, nécessite au préalable une authentification multi-facteur. Dans ce cas si, aucune autre méthodes d’authentification n’a été configurée sur le compte (authentification pas mot de passe uniquement). Nous sommes donc invité à mettre en place d’autres facteurs d’authentification avec de pourvoir enrôler notre clef.
Configuration des facteurs d’auhtnetification supplémentaires.
Par défaut :
- 1er facteur = SMS.
- 2nd facteur = Microsoft authentificator.
Le premier facteur qui est ici l’envoie d’un code OTP par SMS se configure en quelque secondes en :
- Saisir son numéro de GSM.
- Attendre la réception de l’OTP envoyé par SMS.
- Saisir le code OTP reçu.
Le second facteur est via l’application Microsoft Authentificator se configure lui aussi en quelque secondes :
- Installer depuis le store l’app “Microsoft authentificator” (Android ou iOS).
- Dans l’app, ajouter un nouveau compte de type professionnel ou edutiant “Work or school“.
- Scanner le QR code pour ajouter le nouveau compte.
- Valider la demande d’authentification depuis l’app.
Les nouvelles méthode d’authentification sont maintenant visible et manageable depuis l’interface “Security info“.
Cliquer sur “Add method” pour ajouter cette foie l’authentification par Clef de sécurité. Cette fois c’est la bonne.
Sélectionner comme méthode d’authentification “Security key“.
Sélectionner “USB device“.
Puis répondre aux différentes actions d’enrôlement demandés tel que les autorisations d’accès à votre Yubikey, le code PIN de la clef configuré à l’initialisation de la clef…
La clef de sécurité fraichement enrôlée est présente dans les méthodes d’authentification.
Note : selon la configuration de votre compte qui n’est pas nécessairement identique à celui utilisé. Il se peut que des facteurs d’authentifications tel que SMS ou App soient déjà configuré. Dans ce cas si, l’accès au blade “Security info” nécessitera une double authentification. De même lors de l’enrôlement de la clef, une seconde authentification peut vous être demandé en cours de processus.
Note : Il est possible d’enroler la clef via NFC plutôt qu’USB. Cette option peut être plus pratique pour les personnes qui utilisent un téléphone et qui souhaite s’authentifier avec leurs clef. Pour le moment, je n’ai pas testé cette fonctionnalité, mais j’ai pu constaté qu’il n’est pas possible pour l’instant d’enrôler deux fois la même clef sur le même compte une fois en USB et une seconde fois en NFC.
Authentification avec la clef FIDO2
Maintenant que notre tenant est configuré et que notre Yubikey est enrôlée, nous allons voir comment utiliser l’authentification par Clef de sécurité.
Direction n’importe quel portail Microsoft où vous devez vous authentifier (O365, Azure…).
Et plutôt que de saisir vos identifiants, cliquer sur l’option “Sign-in options“.
Cliquer sur l’option “Sign in with a security key“.
Déverrouiller votre clef à l’aide du code PIN.
Toucher le “Y” de la Yubikey afin de prouver votre présence physique.
Et pour finir, sélectionner l’identité stocké sur votre clef que vous souhaitez utiliser.
Comme vous pouvez le constater, ma clef possède déjà plusieurs identités.
Conclusion
Voilà, nous avons configuré le tenant AAD, initialisé une Yubikey, enrôlé celle-ci et testé l’authentification avec celle-ci.
Certes, l’enrôlement de la clef de sécurité comme l’ajout de méthodes d’authentification “optionnelles” ne sont pas encore naturels pour les utilisateurs traditionnels. Par contre, pour les personnes comme moi qui ont accès à plusieurs tenants et qui puisait avec des droits élevés, l’utilisation de la clef est une excellente méthode de stockage de ses identités. Sans oublier le plus important, la sécurité lors de l’authentification, car le code PIN saisi sert à déverrouiller votre clef et reste localement et même en cas d’utilisation de keylogger, le déverrouillage de la clef est couplé par une action physique sur celle-ci.
Une méthode d’authentification à mettre en place rapidement pour les comptes à privilèges. La cinquantaine d’euros déboursés pour une clef FIDO2 n’est rien par rapport au vol de l’identité d’un administrateur.
Comme indiqué au début de ce post, l’authentification FIDO2 et certains portails sont en preview.
il se peut les interfaces et les autorisations d’accès different lors du passage en GA.