¿Qué tan seguros son estos esquemas de contraseña?

5

En ¿Una línea para crear contraseñas en Linux? , Veo consejos en general de la forma head -c16 /dev/urandom | md5sum . Son todas combinaciones aleatorias de comandos de manipulación de texto, sha1 , base64 y md5sum y para mí, parece un enfoque de escopeta. ¿Pero qué tan seguras son realmente estas técnicas? ¿Puedes obtener una contraseña segura solo con un montón de comandos mal ordenados?

    
pregunta user107127 11.04.2016 - 08:50
fuente

2 respuestas

5

Primero que nada: esos comandos no se lanzan descuidadamente juntos. Están unidos de manera tal que hacen el trabajo.

Y sí, por supuesto que hacen su trabajo. Hashing 16 bytes de entropía, expandiéndolo a una cadena más larga (pero imprimible), debería estar bien desde una perspectiva de seguridad.

Sin embargo,

la definición de seguro puede ser diferente para ti. Por lo general, las contraseñas seguras son

  • el tiempo suficiente para no permitir
    • fuerza bruta y
    • ataques a la mesa del arco iris,
  • lo suficientemente complejo como para no ser adivinado fácilmente,
  • contiene tanta entropía como sea posible y
  • son intracktables con un ataque de diccionario.

Todo esto es el caso con los trazadores de líneas uno. Tenga en cuenta que también hay el XKCD más famoso sobre esto lo que podría interesarle, así como arrojar más luz sobre el

  

En realidad puede ser recordado por los humanos

parte de la seguridad de la contraseña.

    
respondido por el Tobi Nary 11.04.2016 - 09:06
fuente
-3

Parece una buena idea. Yo uso un código como este:

head -c 2048 /dev/urandom |sha512sum |grep -oP '\d{1,2}' |tr -d "\n" |md5sum |awk '{print substr($0,0,8)}'

Explicación:

  • head -c 2048 : imprime 2048 bytes de datos;
  • /dev/urandom - pseudo-dispositivo generado bits pseudo-aleatorios;
  • sha512sum - crea una suma de verificación sha256;
  • grep -oP '\d{1,2}' : tome 1-2 dígitos de caracteres largos de la salida de suma de verificación sha256;
  • tr -d "\n" - eliminar caracteres de nueva línea;
  • md5aum - crea una suma de verificación md5 desde "dígito";
  • awk '{print substr($0,0,8)}' - imprime los primeros 8 caracteres.

Ejemplo:

$ /dev/urandom >./GSCH

$ head -c 2048 ./GSCH |sha512sum
1d9272f18d0af714b8dfd0933956b2ca104a8ead0c02aa9b8f01349d2be45660307bdac4ee8036100a0d960a4ad4e8df11255457e39d7ffc12c6c85c8212144f

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}'
1 92 72 18 0 71 4 8 09 33 95 6 2 10 4 8 0 02 9 8 01 34 9 2 45 66 03 07 4 80 36 10 0 0 96 0 4 4 8 11 25 54 57 39 7 12 6 85 82 12 14 4

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}' |tr -d "\n"
192721807148093395621048002980134924566030748036100096044811255457397126858212144

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}' |tr -d "\n" |md5sum
10c4616d3bc184b4a1dce47670e29890

$ head -c 2048 ./GSCH |sha512sum |grep -oP '\d{1,2}' |tr -d "\n" |md5sum |awk '{print substr($0,0,8)}'
10c4616d
    
respondido por el Pavel Kulikov 11.04.2016 - 13:39
fuente

Lea otras preguntas en las etiquetas