Qu'est-ce que la signature de cookies ?

La signature de cookies est une technique de sécurité qui ajoute une signature cryptographique aux valeurs des cookies, assurant ainsi leur intégrité et leur authenticité. Lorsqu'un serveur envoie un cookie à un navigateur, il y ajoute un code d'authentification de message basé sur un hachage (HMAC). Cette signature est créée à l'aide d'une clé secrète connue uniquement du serveur. Lorsque le navigateur renvoie le cookie, le serveur peut vérifier la signature pour confirmer que le cookie n'a pas été altéré.

Comment fonctionne la signature HMAC-SHA1 ?

HMAC (Hash-based Message Authentication Code) combine une fonction de hachage cryptographique avec une clé secrète pour produire une signature unique. Pour la signature de cookies, le processus fonctionne comme suit :

  1. Signature : La valeur du cookie d'origine est combinée avec une clé secrète à l'aide de l'algorithme HMAC-SHA1, produisant une signature. Le format final du cookie signé est valeur.signature, où la signature est codée en base64url.

  2. Vérification : Lors de la réception d'un cookie signé, le serveur extrait la valeur d'origine et la signature, recalcule la signature attendue à l'aide de la même clé secrète, puis les compare à l'aide d'une comparaison sécurisée contre les attaques par timing pour empêcher les attaques par timing.

Pourquoi utiliser des cookies signés ?

Les cookies non signés peuvent être facilement modifiés par les utilisateurs ou les scripts malveillants. Un utilisateur pourrait modifier son ID de session, son rôle d'utilisateur ou d'autres données sensibles stockées dans les cookies. Les cookies signés empêchent cela en rendant toute modification détectable - si la valeur change, la signature devient invalide.

Description de l'outil

Cet outil vous permet de signer et de désigner des valeurs de cookies à l'aide de signatures HMAC-SHA1, compatible avec le format du package npm populaire cookie-signature. Entrez votre valeur de cookie et votre clé secrète pour générer un cookie signé, ou collez un cookie signé pour en extraire et vérifier la valeur d'origine.

Exemples

Signature d'un cookie :

Entrée (non signée) Clé secrète Sortie (signée)
user123 my-secret-key user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4
session_abc app-secret session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A

Désignature d'un cookie :

Entrée (signée) Clé secrète Sortie (non signée)
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo password test

Détection de signature invalide :

Si vous essayez de désigner un cookie avec la mauvaise clé secrète ou une valeur modifiée, l'outil affichera une erreur "Signature invalide".

Fonctionnalités

  • Signature de cookies avec HMAC-SHA1 à l'aide de n'importe quelle clé secrète
  • Désignature et vérification de cookies signés pour extraire les valeurs d'origine
  • Comparaison sécurisée contre les attaques par timing pour empêcher les attaques par timing pendant la vérification
  • Format compatible avec le package Node.js cookie-signature
  • Traitement côté navigateur à l'aide de l'API Web Crypto - aucune donnée envoyée aux serveurs

Cas d'utilisation

  • Test des sessions Express.js : Vérifiez que vos cookies de session Express sont correctement signés et peuvent être décodés avec votre clé secrète
  • Débogage des problèmes d'authentification : Extrayez la valeur d'origine des cookies signés pour résoudre les problèmes de connexion ou de session
  • Audit de sécurité : Vérifiez que les signatures de cookies fonctionnent correctement dans votre application web
  • Apprentissage de la cryptographie : Comprenez comment fonctionne la signature de cookies basée sur HMAC en pratique
  • Test de migration : Assurez la compatibilité des cookies lors du changement de clés secrètes ou de la migration entre frameworks