Cifrar un cuerpo en lugar de firmarlo (con JWT por ejemplo)

1

¿Cuál sería el problema si cifro el "reclamo / cuerpo / datos" y lo envío al usuario, luego, cuando el usuario me envía este token cifrado, lo descifro, confío en él y opero los datos en (Si es descifrable usando una clave secreta). Básicamente, la misma idea que JWT solo no enviaré el encabezado y la firma, y el cuerpo estará cifrado.

¿Existe una vulnerabilidad conocida / implícita con esto?

    
pregunta Mehdi 24.04.2018 - 17:22
fuente

1 respuesta

3

TL; DR : no se recomienda. Si no desea usar criptografía de clave pública, puede usar HMAC.

El uso del cifrado puede funcionar hasta cierto punto, pero realmente deberías saber qué estás haciendo o esperar que tengas suerte.

Signature / MAC protege todo el mensaje para que no se modifique. El cifrado no impide el cambio, lo único que puede evitar es que el atacante sepa lo que está cambiando.

Ahora, si se conoce el formato, por ejemplo, él sabe dónde está (y tiene suerte) la identificación del usuario, puede cambiarla a una identificación diferente (aleatoria) a ciegas. Ahora esto puede o no ser útil para el atacante, pero trae muchos problemas.

Además, dependiendo del algoritmo de cifrado, el relleno (si corresponde) y otros factores, es posible que tenga problemas adicionales.

Por ejemplo, si no hay IV en el esquema, un atacante puede formar parte de un mensaje y parte de otro y mezclarlos. Así que digamos que intercepto dos mensajes. Uno te hace administrador y otro me hace usuario. Es posible que pueda tomar el nombre de mi mensaje y el rango (administrador) de su masaje y hacerme administrador.

También como señala AndrolGenhald, con el modo CTR (AES o cualquier otro cifrado de bloque), el atacante puede cambiar completamente el mensaje cifrado siempre que sea de la misma longitud. Esto también puede ser posible con modos y / o cifrados menos conocidos.

PS: AES en modo GCM se puede usar para cifrar y autenticar datos, por lo que su uso previene todos los problemas mencionados anteriormente y es preferible, si se requiere confidencialidad de los datos. Sin embargo, todavía es necesario enviar el IV y el MAC con el cuerpo.

    
respondido por el Peter Harmann 24.04.2018 - 17:42
fuente

Lea otras preguntas en las etiquetas