¿Se está descifrando la contraseña del enrutador con doble cifrado?

27

Noté en el html de mi enrutador este parámetro:

form.addParameter('Password', base64encode(SHA256(Password.value)));

Entonces, cuando escribo la contraseña passw , la obtengo a través de sslstrip :

2018-09-25 21:13:31,605 POST Data (192.168.1.1):
Username=acc&Password=ZTQ1ZDkwOTU3ZWVjNzM4NzcyNmM2YTFiMTc0ZGE3YjU2NmEyNGZmNGNiMDYwZGNiY2RmZWJiOTMxYTkzZmZlMw%3D%3D

¿Es fácil de descifrar este hash mediante bruteforce / dictionary? Todavía soy un principiante, pero eso me parece una doble encriptación. Además, ¿hay alguna forma más rápida de obtener esta contraseña que descifrarla?

    
pregunta MyWays 25.09.2018 - 21:18
fuente

4 respuestas

71

Es un hash sha256 base64 sin sal. No es un cifrado doble, sino simplemente una codificación innecesaria.

Un hash sin sal significa que es trivial simplemente buscar el hash en Google y probablemente encuentre el resultado.

    
respondido por el ThoriumBR 25.09.2018 - 21:25
fuente
84

I URL decodificada, entonces decodificado desde base 64, y luego se lo pasó a una base de datos de hash línea .

El resultado fue:

Hash                                                                Type    Result
e45d90957eec7387726c6a1b174da7b566a24ff4cb060dcbcdfebb931a93ffe3    sha256  passw

El hecho de que se trate de un hachís sin sal facilita la búsqueda. Toda la codificación es una comodidad para el servicio de inicio de sesión, no un control de seguridad.

Con una sal, no puedes simplemente buscarla, por lo que necesitarías fuerza bruta. Si conocía la sal, el éxito depende de la contraseña y la lista de palabras que utiliza. Existen métodos para hacer que la lista de palabras sea más eficiente para la fuerza bruta, pero en última instancia es una función del tiempo.

    
respondido por el schroeder 25.09.2018 - 21:35
fuente
17

Esto es trivial de romper debido a lo siguiente:

  1. Base64 no es cifrado en absoluto, es un esquema de codificación. La decodificación de Base64 es trivial.

  2. SHA256 es un algoritmo criptográfico diseñado para validar datos y, por lo tanto, está diseñado para ser rápido. Esto significa que las computadoras especializadas con múltiples GPU pueden verificar las contraseñas que se han pirateado con SHA256 a velocidades increíbles. El registro para descifrar la contraseña SHA256 en el momento de la escritura es de 21,4 GH / s (21 mil millones de hashes por segundo) establecido por 25 GPU. Para la intención de hash seguro, una contraseña SHA256 es una mala elección. Las funciones clave de derivación son el camino a seguir. SHA256 es débil para el hashing de contraseñas, pero excelente para la validación de datos / mensajes.

respondido por el Kevin 26.09.2018 - 00:50
fuente
13

Todos están de acuerdo en que usar un hash sin sal es muy malo, y que sha256 no es una función de hash ideal. Sin embargo, esta sabiduría se refiere al almacenamiento de contraseñas, no a su transmisión .

No sabemos cómo se valida la contraseña en el dispositivo de destino.

Por lo que sabemos, los datos se pasan posteriormente a través de una función de extensión de contraseña, se sala y se revisa en el dispositivo de destino (que sería seguro) o simplemente se compara con un valor literal almacenado (inseguro).

Si las comunicaciones con el enrutador siempre se realizan a través de HTTPS como se indica en la pregunta, esto no agrega nada a la protección de los datos en tránsito y es redundante. Si la comunicación fuera a través de HTTP, se podría argumentar que previene algunos muy ataques triviales (pero no, por ejemplo, un simple ataque de repetición).

    
respondido por el symcbean 26.09.2018 - 11:43
fuente

Lea otras preguntas en las etiquetas