¿Qué tan rápido puede SHA-1 ser forzado brutalmente cuando se usa con un secreto?

0

En mi código calculo hashes para códigos conocidos y un secreto con SHA-1:

SHA-1(code + secret) = hash

Un atacante puede realizar un análisis estadístico en la base de datos y, por ejemplo, suponer que el código 03220 produce una salida específica.

SHA-1(03220 + secret) = f24647f6573032838969db0934c63f6aa99c6173

El secreto tiene una longitud de 120 bits y, por ejemplo, Wqj5ASoan1iCjnjLeO6fL .

Mi pregunta es cuánto tiempo le tomaría a un atacante a la fuerza bruta el secreto, cuando conoce el código usado y la salida del hash. ¿Es seguro?

    
pregunta John Smith 18.10.2016 - 08:23
fuente

2 respuestas

4

Es posible la fuerza bruta con 7 Giga SHA1 por segundo en un buen sistema. Cuando asumimos que su "secreto" se genera aleatoriamente (como parece) y tiene una longitud de 120 bits, podemos adivinar el tiempo necesario para encontrar una coincidencia:

  possibleCombinations = 2 ^ bitsOfPassword
  expectedTimeInSeconds = (possibleCombinations / triesPerSecond) / 2

Esto hace aproximadamente 3E18 años, por lo que el forzamiento de los brutos está claramente fuera de discusión. Como se mencionó, esto solo aplica para "secretos" realmente aleatorios. Si solo los hash SHA1 se almacenan en la base de datos, no debería haber forma de adivinar la "clave".

Me pregunto cuál es su intención, aunque hay mejores maneras de combinar una clave con un token (HMAC), o ¿se usa en el contexto del almacenamiento de contraseñas?

    
respondido por el martinstoeckli 18.10.2016 - 09:22
fuente
-1

Respuesta rápida:

Es NO seguro. SHA-1 fue desaprobado no solo por ser bastante fácil para las computadoras modernas con fuerza bruta (aún más con el ASIC desarrollado para calcular las operaciones SHA), sino por algunas debilidades matemáticas que lo hicieron más vulnerable y más fácil de romper.

Lea: enlace

También puede leer este artículo escrito EN 2012 : enlace

En lo que se ve, ya se consideraba débil, no por fuerza bruta, sino por debilidades que hacen que este algoritmo sea más fácil de romper (encontrar colisiones es mucho más fácil que tratar de fuerza bruta).

Para este año, se han desarrollado muchos ASIC (Circuitos Integrados Específicos de la Aplicación) para calcular los hashes SHA más rápidos (utilizados principalmente para la minería en criptomonedas como Bitcoin).

    
respondido por el KanekiDev 18.10.2016 - 08:43
fuente

Lea otras preguntas en las etiquetas