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 shadowse refiere a ella como "contraseña cifrada", así que seguí ese término./etc/shadowcontenidos. Ya veras$x$salt$hash.xdenota el algoritmo utilizado porcrypt,6siendo 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
mksalten 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_saltcon una sal al azar real.$6asQOJRqB1i2eso 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
mkpasswdprograma (parte de esperar) en Fedora, pero es inútil para este propósito.mkpasswdque está hablando es para Debian / Ubuntu. Elmkpasswden Fedora (al menos hasta 14) no tiene el-minterruptor.dpkg -S /usr/bin/mkpasswdno 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-cryptcomando, 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.ccompilar:
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
whoispaquete 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
chpasswden 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 cryptme 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
randomno es criptográficamente seguro,os.urandomdebe 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 soncrypted.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_passwordasí que no estás haciendo hash la nueva línea. </shadowya no se han cifrado () desde hace años. Los sistemas modernos usan al menos md5.shadowaú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.