Rechercher une page de manuel
random
Langue: pl
Version: 2003-10-25 (openSuse - 09/10/07)
Section: 4 (Pilotes et protocoles réseau)
NAZWA
random, urandom - urz±dzenia ¼ród³owe liczb losowych j±draOPIS
Specjalne urz±dzenia znakowe /dev/random i /dev/urandom (obecne w Linuksie od wersji 1.3.30) stanowi± interfejs do wbudowanego w j±dro generatora liczb losowych. Plik /dev/random ma g³ówny numer urz±dzenia 1 i poboczny numer 8. Plik /dev/urandom ma g³ówny numer urz±dzenia 1 i poboczny numer 9.Generator liczb losowych zbiera szum ¶rodowiskowy ze sterowników urz±dzeñ i innych ¼róde³ do puli losowej. Generator przechowuje równie¿ szacunkow± liczbê bitów szumu w puli losowej. Z owej puli tworzone s± liczby losowe.
W trakcie odczytu, urz±dzenie /dev/random bêdzie zwracaæ losowe bajty, spo¶ród oszacowanej liczby bitów szumu w puli. /dev/random nadaje siê najlepiej do zastosowañ, w których potrzebna jest losowo¶æ bardzo wysokiej jako¶ci, jak np. jednorazowa maska lub generowanie kluczy. Je¶li pula losowa jest pusta, odczyt z /dev/random bêdzie wstrzymany do czasu zebrania dodatkowego szumu ¶rodowiskowego.
Odczyt z urz±dzenia /dev/urandom zwróci tyle bajtów, ile za¿±dano. W efekcie, je¶li nie ma wystarczaj±cego chaosu w puli losowej, zwracane warto¶ci s± teoretycznie nara¿one na atak kryptograficzny w stosunku do algorytmów wykorzystywanych przez sterownik. Wiedza na ten temat nie jest dostêpna w obecnych nie zastrze¿onych publikacjach, ale istnieje teoretyczna mo¿liwo¶æ przeprowadzenia takiego ataku. Je¶li jest to problemem w przypadku twojego programu, u¿yj /dev/random.
KONFIGURACJA
Je¶li w systemie nie ma plików /dev/random i /dev/urandom, mo¿na je utworzyæ przy u¿yciu nastêpuj±cych poleceñ:mknod -m 644 /dev/random c 1 8 mknod -m 644 /dev/urandom c 1 9 chown root:root /dev/random /dev/urandom
Gdy Linux uruchamiany jest przy niewielkim udziale operatora, pula losowa mo¿e byæ w do¶æ przewidywalnym stanie. Faktyczna ilo¶æ szumu w puli losowej jest wówczas poni¿ej ilo¶ci szacowanej. Aby przeciwdzia³aæ temu efektowi, pomocne jest zapamiêtywanie informacji o puli losowej pomiêdzy kolejnymi uruchomieniami systemu. Aby dzia³o siê to automatycznie, nale¿y dodaæ nastêpuj±ce wiersze do stosownych skryptów startowych Linuksa:
echo "Inicjowanie generatora liczb losowych w j±drze..." random_seed=/var/run/random-seed # Przechowanie warto¶ci losowej od jednego startu systemu # do kolejnego startu. £adujemy, a potem zachowujemy ca³± # pulê losow±. if [ -f $random_seed ]; then cat $random_seed >/dev/urandom else touch $random_seed fi chmod 600 $random_seed poolfile=/proc/sys/kernel/random/poolsize [ -r $poolfile ] && bytes=`cat $poolfile` || bytes=512 dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
Trzeba równie¿ dodaæ nastêpuj±ce wiersze do stosownego skryptu uruchamianego podczas zamykania systemu Linuksa:
# Przechowanie losowych danych pomiêdzy wy³±czeniem a wy³±- # czeniem komputera. Zachowywanie puli losowej generatora. echo "Zachowywanie danych losowych..." random_seed=/var/run/random-seed touch $random_seed chmod 600 $random_seed poolfile=/proc/sys/kernel/random/poolsize [ -r $poolfile ] && bytes=`cat $poolfile` || bytes=512 dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
INTERFEJS PROC
Pliki w katalogu /proc/sys/kernel/random (obecnym od wersji 2.3.16) s± dodatkowym intefejsem do urz±dzenia /dev/random.Plik z prawami tylko do odczytu entropy_avail dostarcza dostêpn± pulê losow±. Zazwyczaj bêdzie to 4096 (bitów), ca³o¶æ dostêpnej puli.
Plik poolsize podaje rozmiar puli losowej. Zazwyczaj - 512 (bajtów). Mo¿e byæ zmienione na dowoln± warto¶æ, dla której dostêpny jest algorytm. Obecnie mo¿liwe warto¶ci to: 32, 64, 128, 256, 512, 1024, 2048.
Plik read_wakeup_threshold zawiera liczbê bitów entropii potrzebnej do obudzenia procesu, który zasn±³, czekaj±c na entropiê z pliku /dev/random. Domy¶lnie - 64. Plik write_wakeup_threshold zawiera liczbê bitów entropii poni¿ej której zostanie u¶piony proces, który wykona select() lub poll(), aby otworzyæ do zapisu urz±dzenie /dev/random. Warto¶ci te mog± byæ zmienione przez zapis do tych plików.
Pliki tylko do odczytu uuid i boot_id zawieraj± losowe ³añcuchy znaków, takie jak 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9. Pierwszy z tych plików jest generowany na nowo przy ka¿dym odczycie, a drugi jest generowany tylko raz.
PLIKI
/dev/random/dev/urandom
AUTOR
Generator liczb losowych w j±drze zosta³ napisany przez Theodore'a Ts'o (tytso@athena.mit.edu).ZOBACZ TAK¯E
mknod (1)RFC 1750, "Randomness Recommendations for Security" (Zalecenia dotycz±ce bezpieczeñstwa losowo¶ci)
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre