A obtenção de dados para fora de /dev/random
ou /dev/urandom
definitivamente é não vai ajudar, tudo o que vai fazer é esgotar o seu pool de entropia, tornando o problema ainda pior. A principal diferença entre esses dois arquivos é que, mesmo quando o kernel ficar sem entropia urandom
, continuará gerando dados aleatórios de menor qualidade, enquanto random
bloqueará até conseguir reunir dados aleatórios de alta qualidade. O PGP requer os dados aleatórios mais altos possíveis para gerar chaves seguras, portanto, ele sempre será usado /dev/random
.
Se você tiver bons dados aleatórios por aí, ou exportar alguns de outros servidores /dev/random
, poderá inseri- cat
los nos servidores /dev/random
para obter mais entropia. Você nunca deve ter cat
o mesmo arquivo duas vezes /dev/random
.
Se você costuma ficar sem entropia, também pode considerar instalar algo como haveged , um daemon que gera novamente a entropia em segundo plano e preenche /dev/random
conforme necessário.
Também pode ser tentador ligar simbolicamente /dev/random
a /dev/urandom
, mas isso deve ser considerado um risco de segurança como qualquer chave gerada usando pode ser menos seguro do que deveriam. Embora possa ajudar a aplicativos menos críticos, você deve considerar todos os outros usos possíveis /dev/random
, incluindo outros usuários gerando suas próprias chaves, CSR, etc.
Thomas Guyot-Sionnest
fonte
/dev/random
é um PRNG de alta qualidade e normalmente não deve ser bloqueado./dev/random
são PRNG de alta qualidade em BSD e Linux modernos, com certeza. Mas bloqueará se não houver entropia suficiente disponível. Por outro lado,/dev/urandom
não bloqueará se não houver suficiente disponível, mas sua qualidade aleatória pode sofrer nesse caso. Nos detalhes, existem muitas sutilezas entre implementações aleatórias e aleatórias entre o Linux e os vários BSDs, mas o acima deve ser verdadeiro em todos os AFAIK.ping 8.8.8.8
se você possui outro host de rede, tente fazer pings a cada 100ms (se o seu RTT for <100ms, é claro)). E / ou usefind
para procurar arquivos no disco rígido e liberar o cache de RAM entre cada pesquisa de arquivo./dev/random
não bloqueia no FreeBSD.dd if=/dev/random of=/tmp/rndtest bs=64M count=1
após uma nova inicialização, foram necessárias duas execuções consecutivas para ver o tempo para gerar o aumento de 64 MB do arquivo. Eu pensei que não veria esse efeito com urandom como entrada, mas o FreeBSD parece estar bloqueando também, ao contrário do Linux.Você pode usar
haveged
.haveged
é um daemon que gera entropia quando necessário.fonte
Eu recomendaria gerar suas chaves gpg em sua máquina local, que terão uma aleatoriedade muito melhor que a remota. E depois migre as chaves usando SSH para sua máquina remota.
A geração local será mais rápida (mais fonte de entropia), mais segura (ninguém pode espionar o processo se sua máquina não estiver infectada, melhor aleatoriedade).
Se você ainda deseja gerá-los remotamente: No Linux, você pode gerar mais entropia simplesmente executando ping em um host (por exemplo,
ping 8.8.8.8
se você possui outro host de rede, tente fazer pings a cada 100ms (se seu RTT for <100ms, é claro). E / ou usefind
para procurar arquivos no disco rígido e liberar o cache de RAM entre cada pesquisa de arquivo.Você também pode instalar,
haveged
mas ler as limitações se estiver executando em um ambiente virtual: https://wiki.archlinux.org/index.php/Haveged#Virtual_machinesfonte
Em sistemas baseados no Debian, você pode instalar o
rng-tools
pacote usando atp-get e, em seguida, iniciar o daemon para gerar entropia:Nos servidores CentOS-6, o
rng
daemon é instalado como uma das ferramentas básicas (pelo menos na maioria dos sistemas em que trabalhei) e é possível executar o seguinte comando para iniciá-lo, a fim de gerar entropia:fonte
definitivamente funciona em uma VM do CentOS 7.2. Às vezes, você deseja criar chaves GPG em uma vm, se estiver criando um monte e quiser seu chaveiro intacto.
fonte