¿Los hashes mkpasswd SHA512 son seguros para el público?

2

No soy un experto en criptografía de ninguna manera, por favor tenga paciencia conmigo si mi pregunta es algo estúpida.

Usamos pares de claves OpenSSH de forma regular y debido a la naturaleza asimétrica de los pares de claves, en la medida en que entendí el concepto, dar su clave pública a ... bueno ... "público" - se considera algo seguro, ya que solo se puede utilizar para verificar que realmente eres tú. Crear contenido o autenticarse funciona contra la clave privada que nunca abandona su máquina, por lo tanto, es una gran seguridad.

Ahora, dada la situación mencionada anteriormente como una comparación, ¿puede considerarse segura si he creado un hash de contraseña con la herramienta mkpasswd de Unix y un hash SHA512 con sal y entregué ESO al público?

Supongo que no es una buena idea, al igual que lo haría con las contraseñas de hash en una base de datos de usuarios de un sitio web. Sin embargo, como esto es solo una suposición, me gustaría algunas opiniones de expertos.

¡Gracias!

    
pregunta ArSeN 20.07.2018 - 18:20
fuente

3 respuestas

5

La diferencia clave aquí (sin intención de juego de palabras) es que la clave incluye una cantidad significativa de entropía (es decir, es aleatoria). Las contraseñas son a menudo bastante terribles, por lo general tienen menos de 30 bits de entropía. 30 bits son fácilmente forzados por la fuerza bruta, por lo que los hash de contraseña están diseñados para ser lentos (especificó SHA512 con sal, pero omitió el número de rondas), lo que hace que la fuerza bruta tome más tiempo. A pesar de esta mitigación, las contraseñas deficientes se romperán rápidamente.

Sin una sal, un atacante podría usar la precomputación en forma de una tabla de arco iris . De esa manera, podrían pasar un montón de tiempo haciendo el trabajo para que cuando descubran el valor hash, puedan romperlo muy rápidamente. El uso de una sal (lo suficientemente larga y aleatoria) evita esto, por lo que el ataque solo puede comenzar en el momento en que se expone el hash.

Así que tienes razón, es una mala idea, a menos que sea tu contraseña y la hayas generado con más de 100 bits de entropía (en cuyo caso es más una clave que una contraseña).

También se debe tener en cuenta que SHA-512 con el valor predeterminado de 5,000 rondas no es muy bueno. No es tan malo como una sola ronda de MD5, pero la mayoría de las computadoras hoy en día pueden realizar más de 2,000,000 de rondas en menos de un segundo. Podría esperar que un atacante motivado que apunte a una contraseña SHA-512 de 5.000 vueltas haga millones o miles de millones de conjeturas por segundo.

    
respondido por el AndrolGenhald 20.07.2018 - 18:40
fuente
3

El factor clave aquí es lo difícil que es adivinar la contraseña en cuestión . Si la contraseña es débil, y la mayoría de las contraseñas son terribles —Entonces, dar el hash le da al atacante un medio para realizar conjeturas de sí / no en las conjeturas de contraseña, y el costo de probar muchas de estas conjeturas es mucho menor que el de encontrar una preimagen para el hash (una entrada que produce lo mismo). salida que fue revelada).

Con las claves privadas generadas correctamente, esto no es una preocupación porque no existen métodos eficaces para adivinar una clave privada. Pero tenga en cuenta que con las claves privadas generadas incorrectamente es otra historia: ha habido muchos incidentes de software defectuoso que produce claves RSA que se ajustan a patrones fáciles de adivinar y, por lo tanto, se pueden descifrar.

A la inversa, si una contraseña se selecciona de manera uniforme y aleatoria de un conjunto suficientemente grande, liberar un hash sería seguro. Por ejemplo, una contraseña ASCII imprimible al azar uniforme de 19 caracteres tiene aproximadamente 126 bits de entropía, casi tan difícil de adivinar como una clave AES-128.

    
respondido por el Luis Casillas 20.07.2018 - 22:53
fuente
1

En primer lugar, no tendría forma de autenticarse. Si envías el hash, no probaste nada, ya que todos conocen tu hash. Si envía una contraseña de texto simple, la parte ahora no solo lo sabe, sino que otras partes pueden no saber que la usó. Por lo tanto, es de un solo uso en el mejor de los casos y completamente inseguro en el peor de los casos.

En cuanto a la seguridad del hash de una contraseña, puede ser seguro si la contraseña es larga, se genera de forma aleatoria y se utiliza con una función hash fuerte. Pero para las contraseñas creadas por el ser humano, los ataques de diccionario lo harían cuestionable incluso para las contraseñas largas y buenas como elemento básico de batería de caballo correcto .

Hay aplicaciones reales que dependen totalmente de que el contenido no se pueda recuperar del hash, aparte de la protección por contraseña. Un uso notable es un lanzamiento seguro de la moneda. Por lo tanto, fue presumiblemente estudiado y determinado seguro para contraseñas / claves aleatorias.

    
respondido por el Peter Harmann 20.07.2018 - 18:27
fuente

Lea otras preguntas en las etiquetas