Le nonce cryptographique qui empêche les attaques par rejeu
Cryptographie
Expert 4 min

Le nonce cryptographique qui empêche les attaques par rejeu

Ce nombre aléatoire unique garantissant la fraîcheur d'une transaction cryptographique

Le nonce est un nombre utilisé une seule fois dans les protocoles de sécurité pour empêcher la rejeu de données. Fonctionnement technique et utilité.

Le nonce est un nombre aléatoire ou pseudo-aléatoire généré pour être utilisé une seule fois dans un processus de communication ou de chiffrement. Il sert de marqueur temporel ou d’identifiant unique pour garantir que chaque opération est distincte de la précédente.

À RETENIR

Qu’est-ce qu’un nonce ?

  • Le terme provient de la contraction de number used once et désigne une valeur qui ne doit jamais être répétée dans un contexte donné.
  • Dans une transaction chiffrée, le nonce empêche un attaquant de capturer un message valide et de le renvoyer plus tard pour tromper le système.
  • La sécurité d’un nonce repose sur son unicité, si deux opérations utilisent le même nonce avec la même clé, la protection cryptographique s’effondre.
  • Il est omniprésent dans les protocoles réseau modernes comme TLS ou dans les systèmes de minage de cryptomonnaies pour valider des blocs.

Le nonce bloque les attaques par rejeu dans les flux chiffrés

Lorsqu’un client envoie une commande chiffrée à un serveur, un attaquant peut intercepter ce paquet de données. Sans nonce, il pourrait simplement retransmettre ce même paquet plus tard pour exécuter la même action sans connaître la clé secrète. Le serveur, voyant un message valide, l’accepterait comme une nouvelle demande légitime.

L’ajout d’un nonce change cette dynamique. Avant chaque échange, le système génère un nombre unique qui est intégré au calcul du chiffrement. Même si l’attaquant intercepte le message, le nonce qu’il contient est déjà marqué comme utilisé. Toute tentative de réutilisation immédiate est rejetée par le serveur qui vérifie l’unicité du nombre.

La gestion du compteur et de l’aléa

Il existe deux grandes manières de générer un nonce. La première utilise un compteur qui s’incrémente à chaque opération. Cette méthode est simple mais exige que les deux parties maintiennent une synchronisation parfaite de leur état interne. Si le compteur est réinitialisé par erreur, la sécurité est compromise.

La seconde approche repose sur des nombres aléatoires générés à la volée. Cette méthode est préférée dans les systèmes distribués où la synchronisation est complexe. Ici, la probabilité de générer deux fois le même nonce doit être statistiquement négligeable pour garantir que chaque session reste isolée et inviolable par rejeu.

Nonce et vecteur d’initialisation dans le chiffrement symétrique

Bien que les termes soient parfois utilisés de manière interchangeable, le nonce et le vecteur d’initialisation (IV) remplissent des rôles distincts selon le mode de chiffrement. Un IV est souvent utilisé pour garantir que le premier bloc de données chiffrées ne révèle pas de motifs répétitifs, tandis que le nonce sert spécifiquement à garantir l’unicité de la session ou du message.

CaractéristiqueNonce (Number used Once)Vecteur d’Initialisation (IV)
Objectif principalEmpêcher le rejeu (replay attacks).Casser les motifs répétitifs dans le texte.
Exigence d’unicitéAbsolue (ne doit jamais être réutilisé).Très élevée (combinée à l’aléatoire).
Usage typiqueProtocoles réseau, authentification.Chiffrement de blocs (ex: AES en mode CBC).
Risque de répétitionCompromission de la session entière.Fuite d’informations sur les données chiffrées.

Dans de nombreux protocoles, le nonce est utilisé pour dériver l’IV. Cette fusion permet de simplifier la gestion des clés tout en conservant une protection robuste contre les attaques par analyse fréquentielle. La confusion entre les deux est fréquente, mais le nonce est le garant de l’unicité temporelle alors que l’IV assure la diffusion statistique des données.

La réutilisation d’un nonce annule la protection cryptographique

La règle d’or du nonce est sa consommation unique. Si un générateur de nombres aléatoires est défectueux et produit deux fois la même valeur pour une même clé, le chiffrement devient vulnérable. Un attaquant peut alors comparer les deux messages chiffrés pour déduire des informations sur la clé ou sur le contenu original du message. Ce risque est particulièrement critique dans les systèmes embarqués ou les périphériques IoT qui disposent de peu de ressources pour générer du vrai hasard.

Que se passe-t-il si un nonce est réutilisé ?

La réutilisation d’un nonce avec la même clé permet à un attaquant de réaliser des analyses mathématiques pour retrouver le texte en clair. C’est une faille critique qui annule totalement l’effet du chiffrement.

Le nonce doit-il être secret ?

Non, le nonce n’a pas besoin d’être gardé secret. Il est souvent transmis en clair avec le message chiffré pour que le destinataire puisse l’utiliser pour déchiffrer les données.

Quelle est la différence entre un nonce et un sel ?

Un sel est utilisé pour empêcher les attaques par table arc-en-ciel lors du hachage de mots de passe, tandis qu’un nonce est utilisé pour garantir l’unicité d’une transaction dynamique en temps réel.