Por que a geração de números aleatórios é tão lenta no Manjaro, Debian e algumas outras distribuições Linux?

Se você chegou até aqui, provavelmente deve ter notado que o /dev/random é muito lento, algo que pode ser visivelmente observado por meio do comando dd if=/dev/random.

Acontece que o /dev/random, é um dispositivo virtual do Linux que tenta obter uma entropia mínima antes de liberar os valores, então o que podemos fazer é adicionar fontes de entropia para que eles sejam gerados mais rapidamente. Com isso, esperamos melhorar o desempenho da geração de chaves criptográficas e a qualidade da randomização do endereçamento da memória.

Se a palavra “entropia” não lhe parece claro, vamos considerar neste contexto que se trata do nível de imprevisibilidade na geração do próximo valor.

Cabe dizer, que o nosso objetivo com este tutorial é gerar entropia de qualidade, para melhorar a segurança do sistema. Se você não precisa de segurança e sim de desempenho, você deve optar por usar o /dev/urandom.

Este tutorial, parte do princípio de que você está usando o systemd.

Instalando os programas necessários:

Manjaro e Arch Linux

# pacman -Sy haveged rng-tools

Debian e Ubuntu

# apt update

# apt install haveged rng-tools

Habilitando os serviços:

# systemctl enable rngd.service

# systemctl enable haveged.service

Iniciando os serviços:

# systemctl start rngd.service

# systemctl start haveged.service

Testando a sua entropia:

$ cat /proc/sys/kernel/random/entropy_avail

Se liga na Wiki do Arch Linux(em inglês), se quiser saber mais sobre o funcionamento destes dois incríveis programas:
Haveged – Um gerador de entropia, que funciona caso a sua entropia esteja perigosamente baixa.
rngd – Um gerador de entropia baseado em hardware.

Observações:
[1]Haveged não é recomendado para ambientes que usam máquinas virtuais.
[2]Rngd requer um hardware TRNG(com capacidade de gerar “valores aleatórios verdadeiros”), como por exemplo o TPM.

Se tiver dúvidas, entre no nosso grupo do Telegram.

Crie um site como este com o WordPress.com
Comece agora