Seu sistema reúne alguns números aleatórios "reais" mantendo um olho sobre eventos diferentes: atividade de rede, gerador de números aleatórios de hardware (se disponível; por exemplo, processadores VIA geralmente tem um gerador de números aleatórios "real") e assim por diante. Se alimenta estes ao conjunto de entropia do kernel, que é usado por / dev / random. Aplicações que precisam de alguma segurança extrema tendem a usar / dev / random como sua fonte de entropia, ou em outras palavras, a fonte de aleatoriedade.
Se / dev / random ficar sem entropia disponível, não será possível distribuir mais aleatoriedade e o aplicativo aguardará as paradas de aleatoriedade até que mais coisas aleatórias estejam disponíveis. O exemplo que vi durante minha carreira é que o daemon Cyrus IMAP queria usar / dev / random para a aleatoriedade e suas sessões POP queriam gerar as strings aleatórias em conexões APOP a partir de / dev / random. Em um ambiente ocupado, houve mais tentativas de login do que o tráfego para alimentar o / dev / random - > tudo parou. Nesse caso, eu instalei ferramentas rng e ativei o rngd que ele tinha - que shoveled números semi-aleatórios de / dev / urandom para / dev / random no caso / dev / random acabou com a entropia "real".