A 'urandom' compartilha a mesma entropia de 'random'?

3

O pool de entropy / dev / random usou o mesmo para / dev / urandom?

Eu quero

mknod /dev/random 1 9

para substituir o lento aleatório, eu acho que a entropia atual é aleatoriamente suficiente, se o urandom é baseado na mesma entropia, e todos os números aleatórios sucessivos são gerados com base nessa entropia, eu não acho que haverá qualquer vulnerável .

    
por Xiè Jìléi 10.06.2010 / 12:31

3 respostas

9

No final do dia, o que o urandom oferece pode ser específico da implementação, mas a página do manual diz que usará a entropia disponível se estiver lá, e só retornará ao PRNG quando ficar sem entropia. Então, se você tem entropia suficiente, você deve obter um resultado tão bom como se tivesse usado random .

Mas , e isso é grande, mas: Você deve assumir que está obtendo um valor puramente gerado por pseudo sem nenhuma entropia genuína, porque o pool de entropia pode estar vazio. Portanto, você deve tratar urandom como um PRNG, mesmo que isso possa ser melhor do que em qualquer situação. Se isso é não determinístico (dentro dos limites do seu código) e você tem que esperar que o pior caso se aplique. Afinal, se você tivesse certeza de haver entropia suficiente no pool, usaria random , certo? Então, o ato de usar urandom significa que você está bem com um PRNG, e isso significa um resultado potencialmente, teoricamente, quebrável.

    
por 10.06.2010 / 15:14
1

O problema aqui não é que / dev / urandom seja um PRNG. O problema é que / dev / urandom não será bloqueado até que uma entropia suficiente seja reunida para germiná-lo.

Assim, você não quer usar / dev / random ou / dev / urandom no Linux. Você precisa de algo que forneça um substituto para eles, seja um módulo do kernel ou um daemon.

Outra opção é mudar para o FreeBSD, onde / dev / random e / dev / urandom fazem o que você quer, ou seja, eles fornecem números pseudo-aleatórios criptograficamente strongs e bloqueiam até que sejam semeados.

    
por 19.02.2014 / 18:35
0

urandom usa o mesmo conjunto de entropia que random faz e se houver entropia suficiente no conjunto no momento em que você o chama , ele retorna os mesmos tipos de resultados que random iria.

No entanto, você pode se surpreender com o tamanho de um if que pode ser, e não é algo sobre o qual você tenha controle direto. A maioria dos computadores não é equipada com hardware que reúne constantemente qualquer tipo de entropia confiável, e coletar uma quantidade suficiente de fontes não constantes, mas confiáveis, pode demorar um pouco. Quando não há o suficiente, urandom recai sobre um PRNG, com todos os problemas (incluindo a previsibilidade) que o acompanham.

Para muitas aplicações, a maioria dos jogos, por exemplo, ainda é bom o suficiente. Mas há aplicações importantes onde não está, e garanto que sua máquina faz usar esses aplicativos nos bastidores, mesmo que você não os veja / use conscientemente. Por esse motivo, não é uma boa ideia usar apenas urandom em todos os lugares.

Por curiosidade, o que faz você pensar que random é tão lento? Onde o seu computador está trancando?

    
por 07.02.2014 / 14:49