A falácia desta questão é que não existe tal coisa como “entropia drenante”. (Não em qualquer sentido em que você fica sem entropia antes que o universo fique sem uma entropia para que você viva nele.)
Qualquer gerador aleatório projetado para criptografia precisa de dois elementos: uma fonte de entropia e uma maneira de “suavizar” a fonte de entropia. Fontes de entropia são não fontes de bits aleatórios, elas têm vieses que precisam ser distorcidos. Uma fonte de entropia incondicionada não é boa para criptografia. O condicionamento, isto é, transformar uma fonte de entropia em uma fonte de bits uniformemente aleatórios, é feito por um gerador de números pseudo-aleatórios criptograficamente seguro (CSPRNG abreviado). Uma vez que um CSPRNG tenha sido semeado com entropia suficiente, é bom passar pelo menos algumas vidas do universo¹.
O /dev/urandom
do Linux usa um CSPRNG que é periodicamente propagado novamente com entropia extra. A nova propagação periódica ajuda no caso de um comprometimento parcial da máquina que, de alguma forma, vaza o estado interno do gerador aleatório.
O /dev/random
do Linux usa um CSPRNG que é periodicamente propagado novamente com entropia extra. (Parece familiar?) O Linux mantém um cálculo interno que pressupõe que o algoritmo CSPRNG está mal quebrado e vaza entropia a uma taxa rápida e bloqueia /dev/random
. Mas se você não confia na criptografia por trás do CSPRNG, você não pode confiar nem mesmo no que /dev/random
deu a você, ou em praticamente qualquer outra criptografia que você usaria.
Então, não, drenar a entropia não torna seu sistema mais vulnerável de alguma forma.
O único risco com o /dev/urandom
do Linux é que ele fornece um resultado previsível antes de ser propagado corretamente . Isso não é uma preocupação para o uso diário em um desktop ou computador “normal”, porque eles salvam o pool de entropia no disco. É uma preocupação se você tiver um sistema instalado recentemente ou um sistema ativo que inicializa a partir de mídia somente leitura. (Um sistema ativo é um lugar ruim para gerar chaves de longo prazo!) Uma vez que o sistema tenha entropia suficiente, isso é para sempre.
Se você quiser uma análise profissional do criptógrafo sobre esse problema, leia
¹ N bits de entropia tomam 2 N para descobrir. Se você gerar um bilhão de bits por segundo, e começar com um nível de segurança decente de 128 bits, 1 vida-universo lhe dará tempo para gerar cerca de um sextilhão de bits, que é 2 96 , confortavelmente abaixo do limite.