Firmador y desfirmador de cookies
Firmar y desfirmar valores de cookies HTTP usando HMAC-SHA256 para la gestión segura de sesiones y la verificación de la integridad de los datos
Entrada
Salida
Leerme
¿Qué es la firma de cookies?
La firma de cookies es una técnica de seguridad que agrega una firma criptográfica a los valores de las cookies, asegurando su integridad y autenticidad. Cuando un servidor envía una cookie a un navegador, agrega un código de autenticación de mensaje basado en hash (HMAC) al valor de la cookie. Esta firma se crea utilizando una clave secreta conocida solo por el servidor. Cuando el navegador envía la cookie de vuelta, el servidor puede verificar la firma para confirmar que la cookie no ha sido manipulada.
¿Cómo funciona la firma HMAC-SHA1?
HMAC (Código de Autenticación de Mensaje Basado en Hash) combina una función de hash criptográfico con una clave secreta para producir una firma única. Para la firma de cookies, el proceso funciona de la siguiente manera:
Firma: El valor original de la cookie se combina con una clave secreta utilizando el algoritmo HMAC-SHA1, produciendo una firma. El formato final de la cookie firmada es
valor.firma, donde la firma está codificada en base64url.Verificación: Al recibir una cookie firmada, el servidor extrae el valor original y la firma, vuelve a calcular la firma esperada utilizando la misma clave secreta y las compara utilizando una comparación a prueba de ataques de tiempo para evitar ataques de tiempo.
¿Por qué usar cookies firmadas?
Las cookies sin firmar pueden ser modificadas fácilmente por los usuarios o scripts maliciosos. Un usuario podría cambiar su ID de sesión, su rol de usuario u otros datos sensibles almacenados en las cookies. Las cookies firmadas evitan esto al hacer que cualquier modificación sea detectable: si el valor cambia, la firma se vuelve inválida.
Descripción de la herramienta
Esta herramienta permite firmar y desfirmar valores de cookies utilizando firmas HMAC-SHA1, compatible con el formato del paquete npm cookie-signature popular. Ingresa el valor de tu cookie y la clave secreta para generar una cookie firmada, o pega una cookie firmada para extraer y verificar su valor original.
Ejemplos
Firmar una cookie:
| Entrada (Sin firmar) | Clave Secreta | Salida (Firmada) |
|---|---|---|
user123 |
my-secret-key |
user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4 |
session_abc |
app-secret |
session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A |
Desfirmar una cookie:
| Entrada (Firmada) | Clave Secreta | Salida (Sin firmar) |
|---|---|---|
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo |
password |
test |
Detección de firma inválida:
Si intentas desfirmar una cookie con la clave secreta incorrecta o un valor manipulado, la herramienta mostrará un error de "Firma inválida".
Características
- Firmar cookies con HMAC-SHA1 utilizando cualquier clave secreta
- Desfirmar y verificar cookies firmadas para extraer los valores originales
- Comparación a prueba de ataques de tiempo para evitar ataques de tiempo durante la verificación
- Formato compatible con el paquete Node.js
cookie-signature - Procesamiento basado en el navegador utilizando la API Web Crypto - sin envío de datos a servidores
Casos de uso
- Probar sesiones de Express.js: Verifica que tus cookies de sesión de Express estén debidamente firmadas y puedan descifrarse con tu clave secreta
- Depurar problemas de autenticación: Extrae el valor original de las cookies firmadas para solucionar problemas de inicio de sesión o de sesión
- Auditoría de seguridad: Verifica que las firmas de cookies funcionen correctamente en tu aplicación web
- Aprender criptografía: Entiende cómo funciona la firma de cookies basada en HMAC en la práctica
- Probar migraciones: Asegura la compatibilidad de las cookies al cambiar las claves secretas o migrar entre marcos de trabajo