makepasswd no funciona correctamente en Debian Stretch

makepasswd no funciona correctamente en Debian Stretch

Estoy usando makepasswdpara generar un montón de contraseñas aleatorias en una VM.

Después de la actualización a Stretch/Debian 9, el script genera una o dos contraseñas y se detiene, o ninguna.

Parece que lleva bastante tiempo generar otra contraseña nuevamente.

Primera vez que lo llamo:

makepasswd
ndmBXpfp3

Genera inmediatamente una cadena aleatoria como se esperaba.

Segunda vez:

makepasswd

Y sigue ahí esperando... y esperando.

Respuesta1

Parece makepasswdque se pasó de utilizar una API de openssl para generar números (pseudo)aleatorios a utilizar hoy en día una API basada en /dev/random.

El problema es que las máquinas virtuales y las IoT (pueden) tener poca actividad y no generan suficiente entropía para satisfacer el script/ makepasswdbeber de/dev/random

Si bien intenté encontrar una opción para beber números aleatorios /dev/urandom, no tiene ninguna.

Así que acabo de obtener una versión antigua de makepasswd, ya que es un script en Perl, y apunté al script /opt/bin/makepasswden mi sistema; y el script ahora funciona como de costumbre generando las +100 contraseñas que necesito en segundos.

Como se puede ver en la fuente:

Nuevo makepasswd:

 my $buf = $RNG->bytes($bytes);

Viejo makepasswd:

 my $buf = Crypt::OpenSSL::Random::random_pseudo_bytes($bytes);

Curiosamente, los datos y la versión cerca de los derechos de autor no han cambiado, lo que me desvió por un tiempo.

En ambos:

$Program        = 'makepasswd';
$Version        = '1.10';
$Author         = 'Rob Levin <[email protected]>';
$Date           = "Monday, 7 April 1999 at 22:56 (UCT)";
$Copyright      = '1997-1999';

Sin embargo, desdechangelog.Debian.gz

Convert from Crypt::OpenSSL::Random to Bytes::Random::Secure (closes:
#792535).

 -- Colin Watson <[email protected]>  Thu, 16 Jul 2015 11:45:20 +0100

Respuesta2

Otra solución alternativa, en lugar de modificar las fuentes de makepasswd, es instalar el demonio havegedpara acelerar el proceso de generación de claves. Para instalarlo:

sudo apt-get install haveged

Después de instalarlo, makepasswdtambién funciona como debería.

El havegeddemonio ahora es necesario en máquinas virtuales e iOT (por ejemplo, Raspberry) donde la entropía esnormalmentebajo.

De Debian man haveged:

NOMBRE
haveged: genera números aleatorios y alimenta el dispositivo aleatorio de Linux.

DESCRIPCIÓN
haveged genera un flujo impredecible de números aleatorios recopilados de los efectos indirectos de eventos de hardware en el estado oculto del procesador (cachés, predictores de ramas, tablas de traducción de memoria, etc.) utilizando el algoritmo HAVEGE (recolección y expansión de entropía volátil de hardware). El algoritmo opera en el espacio del usuario, no se requiere ningún privilegio especial para acceder al sistema de archivos al flujo de salida.

Linux agrupa la aleatoriedad para la distribución mediante las interfaces /dev/randomy /dev/urandom del dispositivo. Los mecanismos estándar para llenar el /dev/randomgrupo pueden no ser suficientes para satisfacer la demanda de sistemas con grandes necesidades o interacción limitada del usuario. En esas circunstancias, haveged se puede ejecutar como un demonio privilegiado para llenar el /dev/randomgrupo siempre que el suministro de bits aleatorios /dev/randomcaiga por debajo de la marca de nivel bajo del dispositivo.

información relacionada