Reto: ¿Cómo encontrar la clave secreta en el homebrew con clave / MAC: sha1 (key + cookie)?

3

Estoy intentando resolver un problema de seguridad en un sitio web.

Básicamente, el sitio web calcula sha1(key + cookie) para firmar una cookie para que el usuario no pueda cambiarla por sí mismo, y para lograr el objetivo debe encontrar el valor key .

Tengo dos ideas (no muy buenas) para encontrar el valor de la clave secreta:

  • 1: en línea (demasiado lento) intente todas las combinaciones del hash de autenticación con una cookie vacía (0 bytes): de esta manera, el sitio web computará sha1(key) solamente y dejará de mostrar un error cuando encuentre el valor correcto de la clave secreta.
  • 2: Desconectado (sigue siendo muy lento pero mejor ya que no necesita ninguna solicitud de red) ingrese al sitio web y obtenga {cookie, cookie_hash}. Intente calcular xxx + cookie para cada valor posible de xxx : cuando sha1(xxx + cookie) == cookie_hash , sé que xxx == clave secreta.

La cosa es, como notaste, que incluso el segundo método es de fuerza bruta y, por lo tanto, muy lento.

¿Crees que hay un método más rápido?

    
pregunta christophetd 21.09.2015 - 12:05
fuente

1 respuesta

3
  

y para lograr el objetivo tienes que encontrar el valor clave.

¿Usted realmente necesita recuperar la clave para lograr el objetivo?

El esquema que has descrito es vulnerable al clásico ataque de extensión de longitud en el que una función de hash se utiliza incorrectamente como autenticación de mensaje código. El ataque se describe muy bien en el artículo de Wikepedia, así que evitaré replicar el ejemplo aquí.

Con el ataque de extensión de longitud, puedes generar una firma válida sin conocer el valor de la clave real, que es presumiblemente suficiente para resolver el desafío.

    
respondido por el Ayrx 21.09.2015 - 16:06
fuente

Lea otras preguntas en las etiquetas