Engineering
4 sept. 2024
Le guide simple pour comprendre TOTP et HOTP
Nous avons tous entendu parler des mots de passe traditionnels et de la manière dont ils ne sont pas aussi sûrs que nous le pensions autrefois. C'est ici que les mots de passe à usage unique (OTP) entrent en jeu. Ils offrent une méthode d'authentification des utilisateurs plus sécurisée et dynamique.
Aujourd'hui, nous allons plonger dans deux méthodes populaires d'OTP : le mot de passe à usage unique basé sur le temps (TOTP) et le mot de passe à usage unique basé sur HMAC (HOTP). Quelles sont les différences entre eux ? Et comment décider lequel convient le mieux à vos besoins ? Suivez le guide !
Comprendre les OTP
Tout d'abord, qu'est-ce qu'un OTP exactement ?
Un OTP est un mot de passe unique qui ne peut être utilisé qu'une seule fois pour une seule session de connexion ou transaction. Ces mots de passe sont généralement longs de six chiffres et sont utilisés dans les systèmes d'authentification à deux facteurs (2FA) et d'authentification multi-facteurs (MFA).
Le principal avantage des OTP est qu'ils sont dynamiques et de courte durée, ce qui les rend beaucoup plus sûrs que les mots de passe statiques. Pour plus d'informations, vous pouvez lire notre guide complet sur les OTP par SMS.
Maintenant, plongeons-nous dans les deux principaux types d'OTP.
Mot de passe à usage unique basé sur le temps (TOTP)
Comment fonctionne le TOTP ?
Le TOTP (Time based One Time Password) utilise un algorithme basé sur le temps où le facteur variable est le temps Unix actuel divisé par une valeur d'intervalle, généralement fixée à 30 ou 60 secondes. Cela signifie que l'OTP n'est valide que pendant une courte période, renforçant ainsi la sécurité.
L'algorithme TOTP fonctionne généralement comme suit :
Un secret partagé est établi entre le serveur et le client.
Le temps actuel est déterminé et divisé par l'intervalle de temps.
Cette valeur est combinée avec le secret partagé à l'aide d'une fonction de hachage cryptographique.
Le hachage résultant est tronqué pour créer un OTP lisible par un humain.
Avantages et inconvénients du TOTP
✅ Avantages :
Sécurité accrue en raison de la courte période de validité
Réduit la fenêtre pour les attaques potentielles
Auto-synchronisation (basée sur l'heure actuelle)
🚩 Inconvénients :
Nécessite une synchronisation horaire entre le dispositif de l'utilisateur et le serveur
L'OTP peut expirer avant l'entrée, ce qui peut être gênant
Sensible au décalage horaire sur les dispositifs
Mot de passe à usage unique basé sur HMAC (HOTP)
Comment fonctionne le HOTP ?
Le HOTP (HMAC-based one-time password) repose sur un algorithme basé sur des événements. Lorsque l'utilisateur demande un OTP, un compteur s'incrémente à la fois du côté client et du côté serveur. Ce compteur, associé à une clé secrète partagée (appelée "graine"), génère un OTP unique. Ce processus utilise la fonction de hachage HMAC-SHA-1.
L'algorithme HOTP fonctionne généralement comme suit :
Un secret partagé et une valeur de compteur initiale sont établis entre le serveur et le client.
Lorsqu'un OTP est demandé, la valeur actuelle du compteur est combinée avec le secret partagé à l'aide de HMAC-SHA-1.
Le hachage résultant est tronqué pour créer un OTP lisible par un humain.
Le compteur s'incrémente des deux côtés après utilisation.
Avantages et inconvénients du HOTP
✅ Avantages :
Flexible, car l'OTP n'expire pas tant qu'il n'est pas utilisé
Aucune synchronisation horaire requise
Peut être mis en œuvre hors ligne
🚩 Inconvénients :
Potentiellement moins sécurisé en raison de la durée de validité plus longue
Risque de désynchronisation si plusieurs OTP sont générés sans utilisation
Nécessite une gestion sécurisée des compteurs des deux côtés, client et serveur
Différences clés entre HOTP et TOTP
⏳ Expiration de l'OTP
Une des principales différences est la durée de validité de l'OTP. Les jetons HOTP n'expirent pas tant qu'ils ne sont pas utilisés, ce qui vous donne plus de flexibilité. En revanche, les jetons TOTP expirent après une période définie, généralement de 30 à 60 secondes, ce qui renforce la sécurité mais nécessite une entrée rapide.
🔐 Commodité vs. Sécurité
HOTP offre une expérience plus conviviale sans contraintes de temps mais est moins sécurisé en raison de la vulnérabilité de la fenêtre de validation. TOTP, bien qu'il nécessite une entrée rapide de l'OTP, est plus sécurisé en raison de son expiration basée sur le temps.
🪢 Complexité de mise en œuvre
HOTP est généralement plus facile à mettre en œuvre car il ne nécessite pas de synchronisation horaire. TOTP, en revanche, nécessite une synchronisation horaire précise, ajoutant une couche de complexité mais augmentant également la sécurité.

Choisir entre HOTP et TOTP
Votre choix entre HOTP et TOTP dépend de vos besoins et de vos circonstances spécifiques :
Exigences de sécurité : Si la sécurité est votre priorité absolue, TOTP est généralement le meilleur choix.
Expérience utilisateur : Si vous voulez éviter les contraintes de temps pour les utilisateurs, HOTP peut être plus adapté.
Synchronisation horaire : Si le maintien de la synchronisation des dispositifs est un défi, HOTP peut être une option plus pratique.
Ressources et mise en œuvre : Si vous recherchez quelque chose de rapide et facile à mettre en œuvre avec moins de ressources, HOTP est la voie à suivre.
Utilisation en ligne vs hors ligne : Pour les applications hors ligne, HOTP peut être plus adapté car il ne nécessite pas de communication serveur en temps réel.
Les deux HOTP et TOTP améliorent considérablement la sécurité par rapport aux mots de passe traditionnels en offrant des méthodes d'authentification dynamiques et à usage unique.
La nature basée sur le temps de TOTP le rend généralement plus sûr, ce qui en fait le choix préféré pour la plupart des applications en ligne modernes.
Lors de votre choix entre HOTP et TOTP, tenez compte de vos exigences de sécurité spécifiques, de vos objectifs d'expérience utilisateur et de vos contraintes de mise en œuvre. Quelle que soit la méthode choisie, la mise en œuvre de systèmes OTP robustes peut considérablement améliorer votre posture de sécurité, protégeant vos actifs numériques d'un accès non autorisé et assurant une expérience utilisateur plus sûre.
Vous cherchez à mettre en œuvre des solutions OTP sécurisées pour votre application ?
Chez Prelude.so, nous nous spécialisons dans la fourniture de vérification SMS TOTP avancée et d'infrastructure d'intégration mobile via un ensemble d'API unifiées.
Notre solution permet aux entreprises de :
Vérifier leurs utilisateurs à l'échelle mondiale à travers plusieurs canaux : SMS, WhatsApp, Viber ou RCS
Prévenir la fraude par SMS pumping pour protéger leurs utilisateurs (et leur budget)
Commencer la vérification des utilisateurs en moins d'une journée, avec des API conviviales et une documentation complète
Réduire leur budget de vérification grâce à des tarifs compétitifs et à une facturation transparente
Que vous soyez dans les médias sociaux, le dating, la fintech, l'e-commerce, ou tout autre secteur nécessitant la vérification des utilisateurs, Prelude peut vous aider à rationaliser vos processus d'authentification et à renforcer la sécurité.
Derniers Articles