Quâest-ce quâun nonce en cryptographie ? Définition et signification
Nombre aléatoire ou pseudo-aléatoire utilisé dans les protocoles de communication, un nonce permet de garantir la confidentialité des communications. Il sâagit dâun nombre arbitraire et généré de façon aléatoire qui ne peut être utilisé quâune seule fois et inclut souvent aussi un horodatage.Â
En cryptographie, un nonce contribue à éviter les attaques par relecture et empêcher que les anciennes communications soient réutilisées par les cybercriminels. Il est utilisé dans les protocoles dâauthentification, les fonctions de hachage cryptographique et les vecteurs dâinitialisation.
Quâest-ce quâun nonce cryptographique ?
Utilisé dans les services de transmission des données en direct, un nonce cryptographique est un nombre généré de manière aléatoire et conçu pour garantir la confidentialité des communications et se protéger contre les attaques par relecture. Ce terme vient de lâanglais « number once » et désigne, en cryptographie, un nombre arbitraire employé une seule fois dans une communication cryptographique.Â
Il inclut souvent un horodatage, ce qui signifie quâil nâest valide quâau cours dâune période précise afin dâéviter sa réutilisation. Sâil ne possède pas de variante horaire, le nonce doit être généré avec suffisamment de bits aléatoires pour garantir une probabilité quasi nulle de répétition dâune valeur préalablement générée.
Exemples de nonce
Un nonce peut être utilisé dans un protocole dâauthentification comme mesure de protection contre les attaques par relecture, en empêchant la réutilisation dâanciennes communications. Le nonce permet de prouver que le message reçu a été envoyé par lâexpéditeur prévu et nâa pas été intercepté et renvoyé par un cybercriminel. Idéalement, un nonce doit comporter une partie séquentielle et une partie aléatoire.
Voici quelques exemples dâutilisation dâun nonce :
- Protocoles dâauthentification â Un nonce peut être utilisé pour calculer le hachage MD5 du mot de passe dans lâauthentification dâaccès par digest HTTP. Chaque fois quâun code de réponse 401 est généré pour répondre à une demande dâauthentification, le nonce sera différent. Câest tout particulièrement utile pour les transactions commerciales en ligne, afin de confirmer leur légitimité.
Lâutilisation dâun nonce à des fins dâauthentification garantit que les anciennes communications ne sont pas réutilisées. Par exemple, un site dâe-commerce peut ajouter un nonce à chaque achat effectué par un client pour empêcher quâun cybercriminel nâutilise la commande initiale pour passer dâautres commandes avec les informations du client.
- Cryptographie asymétrique â Les valeurs nonce peuvent être utilisées dans la cryptographie à clé publique, par exemple lors de lâétablissement dâune liaison, ou handshake, SSL/TLS (Secure Socket Layer/Transport Layer Security), au cours duquel deux valeurs nonce uniques sont générées et échangées. Le client comme le serveur généreront une valeur nonce unique qui sera validée avec la paire de clés publique/privée.
- Signatures numériques â Un nonce peut servir à créer, comparer et vérifier des signatures numériques à lâaide dâoutils de signature électronique.
- Gestion des identités â Plusieurs fonctions de gestion des identités, dont le SSO (authentification unique), lâauthentification à deux facteurs et la récupération de comptes, peuvent utiliser des nonces.
- Hachage â Dans les systèmes de validation par preuve de travail, un nonce peut être utilisé pour varier les valeurs dâentrée dâune fonction de hachage cryptographique afin de satisfaire des conditions arbitraires avec le degré de difficulté requis.
- Initialisation â Utilisé pour le chiffrement des données, un vecteur dâinitialisation est un nonce puisquâil est souvent aléatoire ou pseudo-aléatoire et utilisé une seule fois par session.
- Cryptomonnaies â Un nonce peut servir à créer un hachage cryptographique qui se connecte à une blockchain du bitcoin. Lors du minage de bitcoins, un nonce peut être ajouté aux valeurs hachées afin de modifier le résultat de lâalgorithme de hachage.
Avantage dâun nonce cryptographique
Lâutilisation dâun nonce garantit lâunicité de la communication. Il permet dâéviter la réutilisation dâanciennes communications, ce qui est le cas lors des attaques par relecture.Â
Dans le cas dâune attaque par relecture, un cybercriminel intercepte une communication entre deux parties et utilise le message intercepté pour obtenir un accès non autorisé. Par exemple, lorsque vous envoyez une demande à un serveur, un cyberpirate peut lâintercepter et la renvoyer au serveur en se faisant passer pour vous. Les données semblent provenir de votre navigateur.Â
Par contre, si vous utilisez un nonce, la communication ne peut pas être réutilisée même si elle est interceptée puisque le serveur nâaccepte pas le message non autorisé. Le nonce nâétant utilisé quâune seule fois, toute tentative de réutilisation dâanciennes communications est invalidée et bloquée. Le caractère aléatoire du nonce, parfois associé à un horodatage, permet à une application de vérifier lâidentité dâun utilisateur et empêche les cybercriminels dâusurper lâidentité de clients légitimes.
Ressources supplémentaires
Le NIST (National Institute of Standards and Technology) a publié plusieurs ressources à propos des nonces, des bonnes pratiques et de leurs usages. Lors du minage de bitcoins, un « golden nonce » désigne une valeur de hachage inférieure à la valeur cible. Le Blockchain Council publie dâautres informations concerne les blockchains et lâapplication des nonces à celles-ci.
Références
Replay Attack. National Institute of Standards and Technology (NIST).
Nonce. National Institute of Standards and Technology (NIST).
What Is a Golden Nonce and What Is Its Usage in Blockchain? 2022. Blockchain Council.