Diminuindo ou esvaziando o pool de entropia?

6

Eu trabalho muito com máquinas virtuais, e elas geralmente parecem estar com pouca entropia (sem mouse ou outras entradas geradoras de entropia). Um bug com o meu software surgiu, e eu acho que é devido a falta de entropia. Eu quero testá-lo, mas isso só acontece ocasionalmente e é difícil de reproduzir.

Como posso esvaziar o pool de entropia para testar como meu software se comporta quando acaba?

(Nota: estou chamando o código de outra pessoa que usa dev/random , portanto, usar dev/urandom para evitar o bloqueio não é uma opção.)

    
por AlbeyAmakiir 04.05.2015 / 09:06

2 respostas

3

Primeiro de tudo, você deve se certificar de que é realmente o esgotamento do conjunto aleatório que produz o bug em seu software. Você pode executar cat /proc/sys/kernel/random/entropy_avail para testar a entropia disponível em seu sistema e verificar se ela atinge zero.

Em segundo lugar, AFAIK (eu não testei esses comandos) você pode diminuir o pool de entropia, definindo a variável apropriada em / proc. Para configurá-lo para 32 bits:

echo 32 > /proc/sys/kernel/random/poolsize

ou

sysctl -w kernel.random.poolsize=32

    
por 04.05.2015 / 13:46
3

cat /dev/random usará continuamente a entropia à medida que se tornar disponível, mantendo-a igual ou próxima a zero. Não é perfeito, mas é simples.

    
por 05.05.2015 / 03:24

Tags