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)