Commencer gratuitement
Howard Poston / 3 min de lecture / 27 juill. 2023

Définition de HOTP

Qu'est-ce que HOTP ?

HOTP signifie « mot de passe à usage unique (OTP) fondé sur HMAC ». Il s'agit d'un algorithme de génération d'OTP fondé sur l'algorithme HMAC. Lors de la configuration de HOTP, le client et le serveur partagent une clé secrète. À l'aide de cette valeur et d'un compteur, les deux parties peuvent générer une séquence d'OTP pouvant servir dans un schéma d'authentification multifacteur (MFA).

Comment fonctionne HOTP ?

HOTP utilise un algorithme déterministe pour générer une séquence de valeurs. Le client et le serveur utilisent une clé secrète partagée comme point de départ et combinent cette clé à un compteur incrémentiel pour créer une série d'OTP. Puisque les deux parties utilisent le même algorithme et le même point de départ, elles peuvent générer la même séquence sans interaction après la configuration initiale.

HOTP fonctionne selon le processus suivant :

  • Initialisation : le client et le serveur établissent la clé secrète et la valeur du compteur.
  • Génération de l'OTP : la clé secrète partagée et la valeur du compteur sont hachées au moyen de l'algorithme HMAC.
  • Troncature : la valeur de hachage est tronquée pour donner le code de 6 à 8 chiffres affiché dans une application d'authentification.
  • Mise à jour du compteur : le compteur est mis à jour en vue de générer le prochain OTP.
  • Saisie : l'utilisateur saisit le code de 6 à 8 chiffres sur la page Web, qui l'envoie au serveur.
  • Validation : le serveur génère sa propre version de l'OTP en hachant le secret partagé et la valeur du compteur avec HMAC et en tronquant le résultat. Il compare ensuite les deux valeurs pour vérifier si elles correspondent et si l'utilisateur doit se voir accorder l'accès.

Puisque la valeur du compteur s'incrémente chaque fois que le client ou le serveur génère un OTP, ils peuvent se désaligner. Le protocole prévoit aussi une synchronisation si les compteurs du client et du serveur se désalignent.

Avantages et inconvénients de HOTP

HOTP est un protocole utile pour mettre en œuvre les OTP et la MFA. Parmi ses principaux avantages, on trouve :

  • Simplicité : HOTP est un protocole simple à mettre en œuvre. Chaque partie du protocole n'a qu'à conserver une copie de la clé secrète et du compteur, et à générer et tronquer périodiquement une valeur de hachage.
  • Sécurité : la sécurité de HOTP dépend de la sécurité de la clé secrète. Si celle-ci demeure confidentielle, le protocole est sécurisé.
  • Aucune synchronisation temporelle : l'OTP fondé sur le temps (TOTP) est une solution de rechange à HOTP qui exige que le client et le serveur aient la même heure d'horloge. HOTP n'exige pas d'horloges synchronisées.

Outre ces avantages, HOTP a aussi ses limites. Celles-ci comprennent :

  • Synchronisation des compteurs : HOTP exige la synchronisation des compteurs entre le client et le serveur. Cela peut être problématique si les compteurs se désynchronisent souvent et nécessitent des synchronisations fréquentes.
  • Attaques par rejeu : HOTP est vulnérable aux attaques par rejeu si l'attaquant peut intercepter un OTP et l'envoyer au serveur pour s'authentifier.

Conclusion

HOTP est un algorithme de génération d'OTP pour l'authentification multifacteur. Le client et le serveur conservent tous deux un secret partagé et un compteur incrémentiel qui leur permettent de générer une série synchronisée d'OTP. Ces OTP peuvent ensuite servir à l'authentification, mais — comme tous les OTP — ils sont potentiellement vulnérables aux attaques par rejeu.

Howard Poston



Howard Poston est un rédacteur, auteur et concepteur de cours possédant de l'expérience en cybersécurité et en sécurité des chaînes de blocs, en cryptographie et en analyse de maliciels. Il détient une maîtrise en cyberopérations, une décennie d'expérience en cybersécurité et plus de cinq ans d'expérience à titre de consultant indépendant.