Estou usando makepasswd
para 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 makepasswd
que 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/ makepasswd
beber 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/makepasswd
o 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 haveged
para acelerar o processo de geração de chaves. Para instalá-lo:
sudo apt-get install haveged
Depois de instalá-lo, makepasswd
também funciona como deveria.
O haveged
daemon 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/random
e/dev/urandom
. Os mecanismos padrão de preenchimento do/dev/random
pool 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/random
pool sempre que o fornecimento de bits aleatórios/dev/random
cair abaixo da marca d'água mínima do dispositivo.