Authentification multifacteur dans ASP.NET Core

Effectué

Dans l’unité précédente, vous avez personnalisé et étendu ASP.NET Core Identity. Dans cette unité, vous découvrez l’authentification multifacteur et la façon dont elle est implémentée dans Identity.

Authentification multifacteur

L’authentification multifacteur (MFA) est un processus dans lequel un utilisateur est invité à fournir des formes d’identification supplémentaires lorsqu’il se connecte. Cette invite peut demander un code provenant d’une application, une valeur de jeton matériel ou un scan biométrique. Lorsque vous demandez un deuxième type d’authentification, la sécurité est améliorée.

La preuve nécessaire à l’authentification est classée en trois types :

  • Quelque chose que vous connaissez, comme un mot de passe ou la réponse à une question de sécurité.
  • Quelque chose que vous avez, comme un jeton matériel ou une application sur votre téléphone.
  • Quelque chose que vous êtes, comme une empreinte digitale ou un scan du visage.

L’authentification multifacteur doit en grande partie son efficacité à l’utilisation de différents types d’authentification. Une personne mal intentionnée risque d’être capable d’accéder à plusieurs choses que vous connaissez, comme votre mot de passe et votre surnom quand vous étiez enfant, mais il est plus difficile de compromettre quelque chose que vous connaissezet quelque chose que vous avez ou êtes.

Mot de passe à usage unique basé sur le temps

Le mot de passe à usage unique basé sur le temps (TOTP, Time-Based One-Time Password) est un algorithme bien connu qui génère des codes numériques uniques qui expirent au bout de 30 secondes. L’algorithme prend deux entrées, l’heure actuelle et une clé unique.

Lorsqu’il s’inscrit, l’utilisateur entre la clé dans une application compatible TOTP. Ces applications comprennent :

  • Microsoft Authenticator
  • Google Authenticator
  • LastPass Authenticator

L’entrée de la clé dans l’application peut être simplifiée avec un code QR. L’application utilise la clé et l’heure actuelle pour générer et afficher des codes uniques toutes les 30 secondes. Si le code généré par l’application correspond à ce que le serveur attend, l’authentification réussit. L’algorithme est conçu pour accepter de petites différences entre les horloges de votre appareil et du serveur.

En guise de forme de MFA, l’utilisateur est généralement invité à entrer un code TOTP en combinaison avec un mot de passe. Le mot de passe est quelque chose que vous connaissez, tandis que le code est une preuve de quelque chose que vous avez. En effet, la seule façon de générer le code est avec la clé stockée dans l’application.

Par défaut, les modèles de projet ASP.NET Core qui utilisent Identity incluent la prise en charge de l’authentification multifacteur pour les applications d’authentification TOTP. Le formulaire Configurer l’application d’authentification du modèle Razor Pages affiche une clé d’inscription de32 caractères pour amorcer la valeur du jeton. Toutefois, le modèle ne génère pas de code QR par défaut.

Remarque

Les codes envoyés par SMS sont une alternative courante au TOTP. Après tout, le téléphone recevant le SMS est quelque chose que vous avez. Toutefois, le SMS comme MFA est relativement facile à vaincre pour un adversaire. C’est pourquoi les codes SMS ne sont plus considérés comme une forme sécurisée de MFA.

Résumé

Dans cette unité, vous avez appris ce qu’est l’authentification multifacteur et comment elle est implémentée dans ASP.NET Core Identity par défaut. Dans la prochaine unité, vous pourrez personnaliser le formulaire Configurer l’application d’authentification existant pour fournir un code QR contenant la clé d’inscription.