it-swarm-es.com

¿Cuáles son los problemas con los datos encriptados pero sin firmar?

En otra pregunta respuesta , d.w. escribió:

Asegúrese de que haya protección de autenticidad para los datos cifrados (por ejemplo, cifrar y luego firmar/MAC): necesitará tanto la confidencialidad como la protección de autenticidad. Un error muy común es cifrar, pero no firma; Este error puede introducir problemas de seguridad sutiles.

¿Qué son exactamente esos problemas de seguridad?

13

Un buen ejemplo es la falla en CBC, demostrada dentro de SSL y, en particular, para la recuperación de contraseña en una configuración IMAP-Over-SSL. Ver para más detalles . Hablando brevemente, SSL tiene una Mac, pero una pequeña parte de ella estaba haciendo cosas con los datos cifrados recibidos después de Descifrado pero Antes Verificación de la Mac. A saber, el sistema receptor se descifró los datos, lo que verificó que el relleno era correcto, informando un error al igual si ese no era el caso, y luego solo revisar la MAC. El mensaje de error fue diferente si la Mac estaba equivocada. Por lo tanto, el receptor (el servidor, en el caso de la recuperación de contraseña de IMAPS) se filtró un solo bit de información sobre si el relleno que se encuentra después de que la descifrado fue correcta o no. Sucede que SSL utiliza un relleno que es similar al descrito en PKCS # 5. Los detalles son sutiles (pero no matemáticamente, una vez que entienden que XOR es conmutativo y asociativo) pero permitió al atacante, modificando algunos bytes bien elegidos, para adivinar uno por uno la llanura Bytes de datos. Suponiendo un intento de conexión regular con contenido idéntico (típicamente, un Express Outlook, que verifica el servidor para un correo nuevo cada 5 minutos), el atacante tenía una posibilidad de que adivina un byte nuevo en cada conexión. Al final de la conexión. Al final de la Día, Voila! Una contraseña completa.

Este caso muestra lo que puede suceder en presencia de atacantes activos y no MAC, incluso cuando la parte "No MAC" es muy transitoria; Debido a que SSL tiene una MAC, solo se verificó demasiado tarde en el proceso. La corrección es siempre Revise la MAC, independientemente de si el relleno fue bueno o no, y para reportar un mal acolchado y Bad Mac con el mismo código de error. (Debe comprobar la Mac, ya que no lo hace cuando el relleno es incorrecto puede hacer que el servidor responda un poco demasiado rápido en ese caso, fugando el bit de información a través de la distribución). Sin esa corrección, el servidor gotea alguna información a través de su comportamiento, ya sea un mensaje de error distinto o incluso un ligero retraso (o falta de ella) al responder. Ese es un bit solo en cada intento. Sin embargo, basta con montar un ataque de recuperación de contraseña.

Ese ataque se publicó en 2002. Sin embargo, en 2010, el mismo error aún estaba presente en la forma en que maneja ASP cookies cifrados , lo que permite a un atacante activo secuestrar una sesión protegida en menos de un hora. El ataque se demostró como práctico en 2002; En 2010, se demostró como se practica en el campo.

No tenemos una lista exhaustiva de los ataques realizados por la falta de MAC. Entonces, la sabiduría común es que no existe una seguridad adecuada contra un atacante activo cuando no hay un control de integridad dedicado, y eso es una Mac. El error común es creer que en cualquier situación, los atacantes solo pueden ser pasivos. Las comunicaciones con cable y inalámbrico están sujetas rutinariamente a ataques activos por muchachos malos incluso de baja potencia (digamos, estudiantes aburridos en un cibercafés).

Al realizar el cifrado simétrico, la forma adecuada de agregar un Mac es usar un modo combinado de cifrado y MAC, como [~ # ~] GCM [~ # ~] o [~ # ~ ~] EAX [~ # ~] . Estos son modos que confían en un cifrado de bloque (típicamente AES). Hay otros modos de este tipo, pero algunos están patentados; Estos dos se cree que no sean.

Las firmas (a diferencia de MAC) son una materia totalmente distinta, en particular en su relación con la confidencialidad.

16
Thomas Pornin