Este protocolo es vulnerable, pero ¿por qué?

1

Sé que el siguiente protocolo de autenticación es vulnerable, pero no entiendo por qué.

A and B share a secret key K (64 bits) 
R1 and R2 are two 64 bit numbers 

A-->B: I am A 
B-->A: R1 
A-->B: Hash((K+R1) mod 2^64), R2 
B-->A: Hash((K+R2) mod 2^63) 

Mi pensamiento es que los dos hash no se alinean, pero no sé que eso haría que este protocolo tuviera una vulnerabilidad importante.

    
pregunta user3830272 14.07.2014 - 22:41
fuente

2 respuestas

1

Lo más obvio, está sujeto a repetición.

Mallory puede sentarse en la línea y seguir viendo las autenticaciones R1 y grabando Hash ((K + R1) mod 2 ^ 64). Cada vez que aparece un R1 antiguo, puede reutilizar el hash que vio anteriormente.

De manera similar, si aparece R2 que se vio antes como R1, tiene un 50% de probabilidades de que Hash ((K + R2) mod 2 ^ 63) sea el mismo (es decir, si (K + R2) mod 2 ^ 64 tiene un bit más significativo de 0).

    
respondido por el Ari Trachtenberg 15.07.2014 - 01:55
fuente
1

Los hashes codificados tienen ataques conocidos, por ejemplo, H (m | K), H (K | m), H (K | m | K) todos tienen algunos ataques que al menos los debilitan. HMAC es una forma estándar de ir que resuelve muchos ataques que tienen la forma simplificada de H (K | H (K | m)), siendo la clave el doble hashing.

Puede buscar más sobre HMAC y la autenticación de mensajes basada en hash, pero el punto es que no es tan sencillo crear su propio algoritmo de autenticación a menos que sea un criptógrafo que sepa lo que están haciendo.

Las claves de 64 bits también son pequeñas, se recomienda utilizar claves más grandes. Tampoco está claro cuál es el algoritmo de hash utilizado, no todos son iguales. El R1, R2 supongo que son aleatorios.

Aparte de eso, esta es una técnica de autenticación básica, por lo que si tuviera que usar HMAC y claves más grandes no vería ningún problema. Tampoco soy un experto tanto para decir qué tan vulnerable es, sería interesante compartir por qué crees que es vulnerable en primer lugar.

El ataque de repetición mencionado es válido, aunque depende de la probabilidad de obtener el mismo azar, no debería serlo si usas un buen generador aleatorio.

    
respondido por el Michael 15.07.2014 - 03:42
fuente

Lea otras preguntas en las etiquetas