RANDOM(4)

NOME
random, urandom - dispositivo fonte de número aleatórios do kernel

DESCRIÇÃO
O arquivo especial de caractere /dev/random e /dev/urandom (presentes desde o Linux 1.3.30) provem uma interface para um gerador de números aleatórios do kernel. O arquivo /dev/random tem maior número de dipositivo 1 e o menor número de dispositivo 8. O arquivo /dev/urandom maior número de dipositivo 1 e o menor número de dispositivo 9.

O gerador de números aleatórios recolhe ruídos do ambiente a partir de controladores de dispositivos e outras fontes dentro da poça de entropia. O gerador também guarda uma estimativa do número de bits do ruído na poça de entropia. A partir desta os números aleatórios são criados.

Quando lendo, o dispositivo /dev/random terá somente retorno de bytes aleatórios com o número estimado de bits do ruído na poça de entropia. /dev/random precisa ser adequado para usuários que precisam de uma qualidade muito boa de aleatoridade como por exemplo uma vez almofada ou gerador de teclas. Quando a poça de entropia está vazia, leituras para /dev/random serão bloqueadas até que ruído ambiental adicional seja recolhido.

Quando lendo, o dispositivo /dev/urandom retornará conforme muito bytes são requisistados. Como um resultado, se havia uma entropia insufuciente na poça de entropia, os valores retornadis são teoricamente vulneráveis para um ataque criptográfico on the algorithms used by the driver. Conhecimento de como fazer isto não esta disponível na atual literatura não classificada, mas isto é teoricamente possível até que um ataque possa existir. Se isto existe como uma preoupação em sua aplicação, use /dev/random no lugar.

CONFIGURANDO
Se seu sistema não tem /dev/random e /dev/urandom criados, eles podem ser criados com os seguintes comando:

        mknod -m 644 /dev/random c 1 8
        mknod -m 644 /dev/urandom c 1 9
        chown root:root /dev/random /dev/urandom

Quando um sistema Linux inicia sem muita interação com o operador, a poça de entropia pode ter um estado claramente previsível. Isto reduz a quantidade atual de ruído na poça de entropia abaixo do estimado. Para fazer cancelar este efeito, ele ajuda carregar informação na poça de entropia através de fechamento e ligamentos. Para fazer isto, adicione as linhas seguintes para um script apropriado o qual será executado durante a seqüencia de ligamento do sistema Linux:

	echo "Initializing kernel random number generator..."
	# Initialize kernel random number generator with random seed
	# from last shut-down (or start-up) to this start-up.  Load and
	# then save 512 bytes, which is the size of the entropy pool.
 	if [ -f /var/random-seed ]; then
		cat /var/random-seed >/dev/urandom
 	fi
	dd if=/dev/urandom of=/var/random-seed count=1

Além disso, adicionando as seguintes linhas em um script apropriado o qual é executado durante o fechamento do sistema Linux:

 	# Carry a random seed from shut-down to start-up for the random
	# number generator.  Save 512 bytes, which is the size of the
	# random number generator's entropy pool.
 	echo "Saving random seed..."
 	dd if=/dev/urandom of=/var/random-seed count=1

ARQUIVOS
/dev/random
/dev/urandom

AUTOR
O gerador de números aleatórios foi escrito por Theodore Ts'o (tytso@athena.mit.edu).

VEJA TAMBÉM
mknod (1)
RFC 1750, "Randomness Recommendations for Security"

TRADUZIDO POR LDP-BR em 21/08/2000.
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Carlos Augusto Horylka <horylka@conectiva.com.br> (revisão)