Provided by: manpages-it_2.80-5_all bug

NOME

       random, urandom - dispositivi kernel che producono numeri aleatori

DESCRIZIONE

       I  file  speciali  a  caratteri  /dev/random  e  /dev/urandom  (presenti  sin da Linux 1.3.30) forniscono
       un'interfaccia al generatore del kernel di numeri aleatori. Il file /dev/random ha numero  primario  1  e
       numero secondario 8. Il file /dev/urandom ha numero primario 1 e numero secondario 9.

       Il  generatore  di  numeri  aleatori  raccoglie rumore di fondo dai device driver e da altre sorgenti nel
       pozzo d'entropia. Il generatore mantiene anche una stima del  numero  di  bit  di  rumore  nel  pozzo  di
       entropia. Da questo pozzo di entropia vengono creati i numeri aleatori.

       Quando  viene letto, /dev/random restituisce solo un numero di byte aleatori compatibili con la stima dei
       bit di rumore nel pozzo d'entropia. /dev/random dovrebbe essere adatto ad  usi  che  richiedono  un  alto
       grado  di  aleatorietà,  come la generazione di chiavi. Quando il pozzo d'entropia è vuoto, le letture di
       /dev/random vengono bloccate finché non viene raccolto abbastanza rumore ambientale.

       Quando viene letto, /dev/urandom restituisce tanti byte quanti ne sono stati richiesti.  Di  conseguenza,
       se non c'è abbastanza entropia nel pozzo d'entropia, i valori restituiti sono teoricamente vulnerabili ad
       un  attacco criptografico sull'algoritmo usato dal dispositivo. Nella letteratura (non coperta da segreto
       militare) non c'è conoscenza di un metodo per fare ciò, ma è in teoria possibile  che  esista  un  simile
       metodo. Se questo è fonte di problemi per il proprio programma, si usi invece /dev/random.

   Configurazione
       Se il sistema non comprende già /dev/random/dev/urandom, li si può creare coi seguenti comandi:

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

       Quando  un sistema Linux viene avviato senza molta interazione da parte di un utente, il pozzo d'entropia
       potrebbe essere in una condizione tutto sommato prevedibile. Questo porta a sovrastimare la  quantità  di
       rumore  realmente presente nel pozzo d'entropia. Per contrastare questo effetto, può aiutare riportare le
       informazioni nel pozzo d'entropia fra un arresto e un riavvio. Per farlo, si aggiunga le  righe  seguenti
       ad uno script appropriato che venga eseguito durante le procedure di avvio di un sistema Linux:

            echo "Inizializzazione del generatore di numeri aleatori..."
            random_seed=/var/run/random-seed
            # Porta il seme aleatorio da un avvio al successivo
            # Carica e successivamente salva l'intero pozzo di entropia
            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

       Inoltre,  si  aggiungano  le  righe  seguenti  ad  uno  script  appropriato che venga eseguito durante le
       procedure di arresto di un sistema Linux:

            # Riporta un seme aleatorio dall'arresto al riavvio.
            # Salva l'intero pozzo di entropia
            echo "Salvataggio del seme aleatorio..."
            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

   Interfaccia /proc
       I file nella directory /proc/sys/kernel/random (presente da 2.3.16) forniscono un'interfaccia  aggiuntiva
       al dispositivo /dev/random.

       Il  file  in  sola  lettura  entropy_avail  fornisce l'entropia disponibile. Normalmente questo sarà 4096
       (bit), un pozzo di entropia pieno.

       Il file poolsize fornisce la dimensione del pozzo di entropia. La semantica di questo file  è  diversa  a
       seconda della versione del kernel:

              Linux 2.4:  Questo  file  indica  la  dimensione del posso di entropia in byte. Normalmente questo
                          file ha valore 512, ma è scrivibile e può essere cambiato in qualunque valore  per  il
                          quale  sia  disponibile  un  algoritmo.  Le scelte sono: 32, 64, 128, 256, 512, 1024 o
                          2048.

              Linux 2.6:  Questo file è di sola lettura, e indica la dimensione del pozzo di  entropia  in  bit.
                          Contiene il valore 4096.

       Il  file  read_wakeup_threshold  contiene il numero di bit di entropia richiesti per svegliare i processi
       che  dormono  in  attesa  dell'entropia  da  /dev/random.  Il  valore   predefinito   è   64.   Il   file
       write_wakeup_threshold  contiene  il  numero  di  bit  di entropia sotto i quali svegliamo i processi che
       eseguono un select() o poll() per accedere in scrittura  a  /dev/random.  Questi  valori  possono  venire
       cambiati scrivendo sui file.

       I     file     in    sola    lettura    uuid    e    boot_id    contengono    stringhe    casuali    come
       6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9. Il più vecchio è generato di nuovo  a  ciascuna  lettura,  l'ultimo
       viene generato una volta.

FILE

       /dev/random
       /dev/urandom

AUTORE

       Il generatore di numeri aleatori è stato scritto da Theodore Ts'o (tytso@athena.mit.edu).

VEDERE ANCHE

       mknod (1)
       RFC 1750, "Randomness Recommendations for Security"

COLOPHON

       Questa  pagina fa parte del rilascio 2.76 del progetto man-pages di Linux. Si può trovare una descrizione
       del progetto, e informazioni su come riportare bachi, presso http://www.kernel.org/doc/man-pages/. Per la
       traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/

Linux                                            10 gennaio 2008                                       RANDOM(4)