Comprender cómo funcionan las contraseñas de Linux openssl

2

Estoy tratando de entender cómo Linux hace hash de sus contraseñas, así que para comenzar, digamos que hago esto openssl passwd -1 -salt xyz test . Esto producirá: $1$xyz$jAlmRpcFe.aiPOIXET9GG/ . Ahora lo que sí entiendo:

  • $1$ es el algoritmo md5
  • xyz$ es la sal que se usa con un signo $ añadido
  • jAlmRpcFe.aiPOIXET9GG/ es la contraseña real con hash con md5 y otra cosa.

La última parte es lo que no entiendo, ¿con qué más se calcula este hash?

    
pregunta mawi 11.08.2017 - 23:13
fuente

1 respuesta

2

Como dice wikipedia

  

Poul-Henning Kamp diseñó un algoritmo barroco y (en ese momento) computacionalmente costoso basado en el algoritmo de resumen de mensajes MD5. ...
  Primero, la frase de contraseña y la sal se combinan, lo que produce un resumen de mensaje MD5. Luego se construye un nuevo compendio, agrupando la frase de contraseña, la sal y el primer compendio, todo en una forma bastante compleja. Luego, este resumen se pasa a través de mil iteraciones de una función que lo recalienta junto con la frase de contraseña y la sal de una manera que varía entre rondas. La salida de la última de estas rondas es el hash de frase de contraseña resultante.

Eso te dice que no es solo hacer un hash (simple) de pw + sal, sino que no es muy exacto. Afortunadamente, OpenSSL es de código abierto, por lo que enlace (o apps / passwd.c en cualquier copia de cualquier versión de la fuente que haya estado disponible durante décadas) le muestra el algoritmo exacto. De hecho, es barroco, más de lo que me importa intentar explicarlo a menos que tenga una pregunta específica al respecto.

    
respondido por el dave_thompson_085 12.08.2017 - 10:40
fuente

Lea otras preguntas en las etiquetas