makepasswd não está funcionando corretamente no Debian Stretch

5

Estou usando makepasswd para gerar várias senhas aleatórias em uma VM.

Após a atualização para o Stretch / Debian 9, o script gera uma ou duas senhas e paradas, ou nenhuma.

Parece ser bom (bom) gerar outra senha novamente.

Primeira chamada:

makepasswd
ndmBXpfp3

Ele gera imediatamente uma string aleatória conforme o esperado.

Segunda vez:

makepasswd

E fica lá esperando ... e esperando.

    
por Rui F Ribeiro 28.10.2016 / 21:36

2 respostas

2

Outra solução alternativa, ao invés de modificar as fontes do makepasswd, é instalar o daemon haveged para acelerar o processo de geração de chaves. Para instalá-lo:

sudo apt-get install haveged

Depois de instalá-lo, makepasswd funciona como deveria.

O daemon haveged agora é necessário em VMs e iOTs (por exemplo, framboesa), em que a entropia é normalmente baixa.

Do Debian, man haveged :

NAME
haveged - Generate random numbers and feed Linux's random device.

DESCRIPTION
haveged generates an unpredictable stream of random numbers harvested from the indirect effects of hardware events on hidden processor state (caches, branch predictors, memory translation tables, etc) using the HAVEGE (HArdware Volatile Entropy Gathering and Expansion) algorithm. The algorithm operates in user space, no special privilege is required for file system access to the output stream.

Linux pools randomness for distribution by the /dev/random and /dev/urandom device interfaces. The standard mechanisms of filling the /dev/random pool may not be sufficient to meet demand on systems with high needs or limited user interaction. In those circumstances, haveged may be run as a privileged daemon to fill the /dev/random pool whenever the supply of random bits in /dev/random falls below the low water mark of the device.

    
por 05.11.2016 / 17:47
6

Parece que makepasswd foi alterado de usar uma API openssl para gerar (pseudo) números aleatórios, até hoje usando uma API baseada em /dev/random .

O problema é que as VMs e iOTs (podem) têm pouca atividade e não geram entropia suficiente para satisfazer o script / makepasswd bebendo de /dev/random

Enquanto eu tentava encontrar uma opção para ele beber números aleatórios de /dev/urandom , ele não tem nenhum.

Então, acabei de receber uma versão antiga do makepasswd , já que é um script perl, e apontei o script para /opt/bin/makepasswd no meu sistema; e o script agora está funcionando normalmente gerando as senhas +100 que eu preciso em segundos.

Como pode ser visto na fonte:

Novo makepasswd :

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

Antigo makepasswd :

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

Curiosamente, os dados e a versão próxima aos direitos autorais não foram alterados, o que me afastou um pouco.

Em ambos:

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

No entanto, de changelog.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
    
por 28.10.2016 / 21:36