Por que o Linux tem DOIS geradores de números aleatórios?
05/08/2026
No Linux, existem dois arquivos que geram números aleatórios, e usar o errado pode comprometer a sua segurança.
O que são?
/dev/random e /dev/urandom são interfaces do kernel usadas para gerar bytes aleatórios para criptografia: chaves SSH, certificados, tokens, etc.
Diferenças
A diferença vem da entropia: o ruído físico real que o sistema coleta, como movimentos do mouse ou tempos de acesso ao disco.
O /dev/random, em seu projeto clássico, bloqueava, ou seja, fazia você esperar se achasse que a entropia “fresca” suficiente havia acabado.
O /dev/urandom nunca bloqueia: usa um gerador de números pseudoaleatórios (CSPRNG) semeado com essa entropia e continua produzindo bytes indefinidamente.
Utilidade atual
Hoje, no Linux moderno (a partir do Linux 5.6), essa distinção já não importa de verdade. Quando o CSPRNG tem entropia inicial suficiente (normalmente na inicialização do sistema), ele permanece criptograficamente seguro para sempre.
No entanto, a recomendação padrão, inclusive dos próprios desenvolvedores do kernel, é **usar o /dev/urandom**, ou melhor ainda, se você trabalha com C, a syscall getrandom().
Conclusão
O /dev/random podia travar esperando por entropia sem necessidade real. O /dev/urandom é rápido, seguro e é o que bibliotecas de baixo nível como o OpenSSL usam.


