🛩️ Tokens firmados y encriptados
Apuntes
- Una de las formas más efectivas de proteger su contenido y que no pueda ser alterado es tener mayor control de la firma y encriptación del token
Tokens Firmados y Encriptados
Firmar y encriptar es otra forma de limitar la exposición de datos
- Porque estamos agregando una capa adicional de seguridad
En Next Auth
⚠️ Genera un secreto (SHA) a partir de la configuración
- En el momento que la configuración cambie el secreto cambia
⚠️ A partir del secreto crea una llave HMAC para firmar el token. SHA512 por defecto
⚠️ El token no es encriptado. A256GCM por defecto
¿Qué cifrado elijo?
- Asimétrico (RSA)
- Dos tokens: privado (para el servidor) y público (para el cliente)
- Cuando no hay control de clientes que usan los tokens
- Auth0 utiliza tokens asimétricos
- Simétrico (HMAC)
- Cunado hay control
// Si quisiera otro algoritmo para firmar ...
jwt: {
verificationOptions: {
algoritms: ["HS256"]
},
}
// Si quisiera otro algoritmo para encriptar ...
jwt: {
// decryptionKey = encryptionKey
decryptionOptions: {
algoritms: ["A256GCM"]
},
}
// Si quisiera otro algoritmo para encriptar ...
jwt: {
async encode({secret, token, maxAge}){},
async decode({secret, token, maxAge}){},
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?