Las preguntas anteriores de SF que he visto han llevado a respuestas que producen una contraseña hash MD5.
¿Alguien tiene una sugerencia para producir una contraseña hash SHA-512? Prefiero un trazador de líneas en lugar de un guión, pero si un guión es la única solución, también está bien.
Actualizar
Reemplazar versiones anteriores de py2 con esta:
python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"
linux
authentication
encryption
md5
Belmin Fernandez
fuente
fuente
man 5 shadow
se refiere a ella como "contraseña cifrada", así que seguí ese término./etc/shadow
contenidos. Ya veras$x$salt$hash
.x
denota el algoritmo utilizado porcrypt
,6
siendo típico en linuxes modernos, que es sha512 (verman 3 crypt
). Cualquiera de las respuestas a continuación producirá el mismo hash, siempre que le des la misma sal.Respuestas:
Aquí hay un trazador de líneas:
Python 3.3+ incluye
mksalt
en la cripta , lo que hace que sea mucho más fácil (y más seguro) de usar:Si usted no proporciona un argumento para
crypt.mksalt
(que podría aceptarcrypt.METHOD_CRYPT
,...MD5
,SHA256
, ySHA512
), se utilizará el más fuerte disponible.El ID del hash (número después del primero
$
) está relacionado con el método utilizado:Te recomiendo que busques qué son las sales y tal, y según smallclamgers comenta la diferencia entre cifrado y hash.
Actualización 1: la cadena producida es adecuada para scripts shadow y kickstart. Actualización 2: Advertencia. Si está utilizando una Mac, vea el comentario sobre cómo usar esto en Python en una Mac donde no parece funcionar como se esperaba.
fuente
random_salt
con una sal al azar real.$6asQOJRqB1i2
eso no parece lo suficientemente largo como para ser correcto!python -c 'import crypt; print crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512))'
crypt.crypt("test", "$6$rounds=200000$random_salt")
. 200000 toma alrededor de 100 ms en mi computadora portátil actual.En Debian puede usar mkpasswd para crear contraseñas con diferentes algoritmos de hash adecuados para / etc / shadow. Está incluido en el paquete whois (según apt-file)
para obtener una lista de tipos de algoritmos de hashing disponibles:
HTH
fuente
mkpasswd
programa (parte de esperar) en Fedora, pero es inútil para este propósito.mkpasswd
que está hablando es para Debian / Ubuntu. Elmkpasswd
en Fedora (al menos hasta 14) no tiene el-m
interruptor.dpkg -S /usr/bin/mkpasswd
no podía creerlo: Droot:$6$AbCdE$xyz:...
que puedes usar:mkpasswd -m sha-512 -S AbCdE
. Con la contraseña correcta, debe obtener el mismo hash.La mejor respuesta: grub-crypt
fuente
grub-crypt
comando, esta es realmente la forma más infalible y conveniente de hacerlo. No tiene sentido jugar con sales manualmente cuando podrías arruinarlo. El problema es que cada vez más sistemas modernos tienen GRUB2 y, por lo tanto, no incluirán este comando.Aquí hay un código C corto para generar la contraseña SHA-512 en varios sistemas operativos tipo Unix.
Expediente:
passwd-sha512.c
compilar:
uso:
fuente
Solución Perl one-liner para generar la contraseña hash SHA-512:
perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'
Trabajó en RHEL 6
fuente
¿Por qué no realizar la siguiente verificación y modificación en las máquinas Centos / RHEL para garantizar que todo el hashing de contraseñas para / etc / shadow se realice con sha512? Luego puede configurar su passworkd normalmente con el comando passwd
fuente
Aquí hay una línea que usa comandos de shell para crear una contraseña hash SHA-512 con una sal aleatoria:
Notas
fuente
whois
paquete de Fedora 18 no proporciona ningunomkpasswd
.Lea el comentario a continuación para conocer las implicaciones de seguridad de esta respuesta.
Para aquellos de la mentalidad de Ruby aquí hay una frase:
fuente
Este script funcionó para mí en Ubuntu 12.04 LTS: https://gist.github.com/JensRantil/ac691a4854a4f6cb4bd9
Tiene las siguientes características de las que carecen algunas de las otras alternativas:
fuente
chpasswd
en su sistema.Los algos HASH son para producir resúmenes de MENSAJES, nunca son adecuados para contraseñas, que deberían usar algún tipo de HKDF ( http://tools.ietf.org/rfc/rfc5869.txt ) - vea PBKDF2 o BCrypt
fuente
man crypt
me dice que PBKDF2 no es compatible.Puede clonarlo desde mi repositorio github si lo desea: https://github.com/antoncohen/mksha
fuente
No es un trazador de líneas, pero podría ayudar a alguien:
fuente
random
no es criptográficamente seguro,os.urandom
debe usarse. 8 caracteres del diccionario de 56 caracteres es demasiado pequeño también. Concatenar una picadura una y otra vez en python también es una mala forma (tiene complejidad O (n ^ 2))Obviamente, simplemente agarra el segundo campo y puede eliminar el archivo una vez que lo haya agregado a la sombra o para usarlo con sudo (aún probablemente sombra).
fuente
Eche un vistazo a la página de manual de crypt (3) y creo que encontrará que la herramienta de cripta se ha actualizado para usar glibc y sha256 ($ 5) y sha512 ($ 6), rondas múltiples, sal mucho más grande, etc. .
Claramente, SHA512 es relevante para cómo funciona / etc / shadow.
Dicho esto, esta página web fue muy útil, en particular la MKPASSWD, ya que esto resolvió MI problema.
Dada una contraseña potencialmente "perdida", puedo usar MKPASSWD y la sal, para generar el hash SHA512 y confirmar / denegar una lista de contraseñas candidatas.
Usaría a John el destripador, pero al menos en mi hardware (Raspberry Pi) y mi presupuesto (nada), John no puede hacerlo (no parece admitir las cosas avanzadas de crypt / glibc en la versión gratuita de raspbian).
Eso sí, ya que tengo suficiente permiso para leer / escribir / etc / shadow, PODRÍA sobrescribir el hash y seguir con la vida ... este es un ejercicio académico.
NOTAS Notas de Glibc La versión glibc2 de esta función admite algoritmos de cifrado adicionales.
fuente
Si necesita una alternativa a las líneas escritas en perl / python, mkpasswd es una buena combinación. Si bien está incluido en el paquete whois de Debian, falta en los sistemas CentOS / RHEL. Modifiqué la versión Debian de mkpasswd e incluí un mecanismo de generación de sal más fuerte basado en OpenSSL. El binario resultante conserva completamente todos los parámetros de la línea de comandos de la versión de Debian. El código está disponible en github y debe compilarse en cualquier versión de Linux: mkpasswd
fuente
No estoy seguro de cómo se relaciona SHA-512
/etc/shadow
. Estas contraseñas soncrypt
ed.Pero si desea un hash de contraseña con SHA-512, puede hacerlo
echo -n the_password | sha512sum
. No puede usar la salida para / etc / shadow.fuente
echo -n the_password
así que no estás haciendo hash la nueva línea. </shadow
ya no se han cifrado () desde hace años. Los sistemas modernos usan al menos md5.shadow
aún secrypt()
editan, pero la función se ha actualizado para admitir varios algoritmos diferentes. Independientemente, el método descrito en esta respuesta no produce hash adecuado para/etc/shadow
. El algoritmo es más complejo que una sola ronda hash SHA-512.