Authentification à deux facteurs : qu’est-ce que c’est, comment ça marche et plus encore.

Imaginez que votre porte d'entrée ait deux serrures. L'une est votre clé (votre mot de passe), l'autre un code en constante évolution envoyé sur votre téléphone (votre second facteur). C'est l'essence de l'authentification à deux facteurs (2FA), un système de sécurité ajoutant une couche supplémentaire de défense contre les accès non autorisés à vos comptes en ligne.
OTP et 2FA : Sont-ils identiques ?
Bien que souvent utilisés de manière interchangeable, il existe une différence subtile entre OTP (mot de passe à usage unique) et 2FA :
- OTP : Un OTP est un code unique utilisé pour une seule tentative de connexion. Il peut être envoyé par SMS, email ou généré par une application. Considérez-le comme le code jetable de la puce de votre carte bancaire.
- 2FA : La 2FA est un système plus large qui repose sur deux facteurs pour l'authentification : quelque chose que vous savez (mot de passe) et quelque chose que vous possédez (téléphone, clé de sécurité) ou quelque chose que vous êtes (empreinte digitale, reconnaissance faciale). L'OTP est une méthode utilisée pour réaliser la 2FA, mais pas la seule.
Donc, Google Authenticator n'est pas meilleur que la 2FA elle-même. Google Authenticator est une application qui utilise la méthode TOTP (mot de passe à usage unique basé sur le temps) pour générer des codes OTP pour la 2FA. Les codes TOTP sont considérés comme plus sûrs que les OTP traditionnels envoyés par SMS car ils changent à intervalles réguliers (généralement toutes les 30 secondes) et ne dépendent pas des réseaux cellulaires.
Le concurrent le plus solide dans le domaine de la 2FA
Quand il s'agit de la méthode 2FA la « plus forte », cela dépend de la situation. Voici ce que nous savons :
Applications Authentificatrices :
- TOTP (mot de passe à usage unique basé sur le temps) : C'est le moteur qui alimente la plupart des applications d'authentification comme Google Authenticator ou Microsoft Authenticator. Il utilise une combinaison de :
- Clé secrète : Une clé secrète unique et partagée entre l'application et le service en ligne auquel vous vous connectez. Cette clé est généralement générée lors de la configuration initiale.
- Synchronisation temporelle : L'application et le serveur se basent sur la même référence temporelle (généralement basée sur UTC - Temps universel coordonné).
- La conjuration du code : L'application utilise un algorithme spécifique (comme HMAC-SHA1) pour combiner la clé secrète avec l'heure actuelle, générant un code unique qui change toutes les 30 secondes environ. Cela garantit que même si quelqu'un intercepte un code, il sera inutile après une courte période.
- La danse de la vérification : Lorsque vous saisissez le code généré lors de la connexion, le serveur effectue le même calcul en utilisant la même clé secrète et l'heure actuelle. Si les codes correspondent, l'accès est accordé.
Clés de sécurité :
- Cryptographie à clé publique : Les clés de sécurité comme les YubiKeys reposent sur la cryptographie à clé publique. Ce système implique deux clés mathématiquement liées : une clé publique et une clé privée.
- Clé publique (sur le serveur) : Cette clé est accessible publiquement et utilisée par le serveur pour chiffrer les défis.
- Clé privée (dans la clé) : Cette clé est stockée en toute sécurité dans la clé de sécurité elle-même et ne quitte jamais l'appareil. Elle est utilisée pour déchiffrer le défi et générer une signature numérique.
- Challenge-Réponse : Lors de la connexion, le serveur envoie un défi à la clé de sécurité. La clé utilise sa clé