it-swarm-es.com

Ataque de reproducción TLS: requisitos del servidor

Como todos saben, el protocolo SSL/TLS requiere que tanto el cliente como el servidor intercambien (en texto claro) un número aleatorio o un nonce. Es de suponer que se utiliza para evitar ataques de repetición.

No me queda claro cuál es el requisito de nonce del lado del servidor. ¿Debe ser simplemente único? ¿O también debe ser impredecible? ¿Cuáles serían las implicaciones si un atacante pudiera predecir los nonces generados en el lado del servidor, si los hubiera?

Doy la bienvenida a cualquier fuente de trabajo serio en torno a los ataques de reproducción que pueda ayudar a comprender mejor los requisitos de nonce del lado del servidor.

Gracias.

Luis

11
Louis

Dentro de SSL/TLS, los nonces se utilizan para generar claves simétricas y como parte de las firmas y comprobaciones durante el protocolo de enlace. Para todos esos usos, los nonces simplemente se concatenan (con algunos otros datos) y se hash. Suponiendo que las funciones hash se comporten como "oráculos aleatorios" (la mítica función hash perfecta), entonces los nonces únicos son suficientes.

Sin embargo, SSL/TLS hasta (e incluido) TLS 1.1 utiliza MD5 y SHA-1 como función hash, cuyas debilidades se han demostrado. No son oráculos al azar. No tengo conocimiento de ningún resultado sobre convertir estas debilidades en ataques contra SSL/TLS; sin embargo, es mejor prevenir que lamentar: use nonces impredecibles. Esto no perjudicará, y tanto el cliente como los servidores ya deben tener acceso a una fuente de alea criptográficamente segura, por lo que los nonces impredecibles no deberían ser un requisito demasiado pesado.

11
Thomas Pornin