makepasswd não funciona corretamente no Debian Stretch

makepasswd não funciona corretamente no Debian Stretch

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

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

Parece demorar um pouco (bom) para gerar outra senha novamente.

Primeira vez chamando:

makepasswd
ndmBXpfp3

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

Segundo tempo:

makepasswd

E fica lá esperando... e esperando.

Responder1

Parece makepasswdque mudou de usar uma API openssl para gerar números (pseudo)aleatórios, para hoje em dia usar uma API baseada em /dev/random.

O problema é que VMs e iOTs (podem) ter baixa atividade e não gerar entropia suficiente para satisfazer o script/ makepasswdbeber de/dev/random

Embora eu tenha tentado encontrar uma opção para beber números aleatórios /dev/urandom, ele não tem nenhuma.

Acabei de obter uma versão antiga do makepasswd, pois é um script perl, e apontei o script para /opt/bin/makepasswdo meu sistema; e o script agora está funcionando normalmente, gerando as +100 senhas necessárias em segundos.

Como pode ser visto na fonte:

Novo makepasswd:

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

Velho makepasswd:

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

Curiosamente, os dados e a versão próximos aos direitos autorais não foram alterados, o que me tirou do caminho por um tempo.

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, a partirchangelog.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

Responder2

Outra solução alternativa, em vez de modificar as fontes do makepasswd, é instalar o daemon havegedpara acelerar o processo de geração de chaves. Para instalá-lo:

sudo apt-get install haveged

Depois de instalá-lo, makepasswdtambém funciona como deveria.

O havegeddaemon agora é necessário em VMs e iOTs (por exemplo, framboesa) onde a entropia énormalmentebaixo.

Do Debian man haveged,:

NOME
haveged- Gere números aleatórios e alimente o dispositivo aleatório do Linux.

DESCRIÇÃO
haveged gera um fluxo imprevisível de números aleatórios coletados dos efeitos indiretos de eventos de hardware no estado oculto do processador (caches, preditores de ramificação, tabelas de tradução de memória, etc.) usando o algoritmo HAVEGE (HARdware Volatile Entropy Gathering and Expansion). O algoritmo opera no espaço do usuário, nenhum privilégio especial é necessário para o acesso do sistema de arquivos ao fluxo de saída.

O Linux agrupa aleatoriedade para distribuição pelas interfaces de dispositivo /dev/randome /dev/urandom . Os mecanismos padrão de preenchimento do /dev/randompool podem não ser suficientes para atender à demanda de sistemas com grandes necessidades ou interação limitada do usuário. Nessas circunstâncias, haveged pode ser executado como um daemon privilegiado para preencher o /dev/randompool sempre que o fornecimento de bits aleatórios /dev/randomcair abaixo da marca d'água mínima do dispositivo.

informação relacionada