Provided by: manpages-it_2.80-3_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  aleatorieta,  come la generazione di chiavi. Quando il
       pozzo d'entropia e vuoto, le letture di  /dev/random  vengono  bloccate
       finche non viene raccolto abbastanza rumore ambientale.

       Quando  viene letto, /dev/urandom restituisce tanti byte quanti ne sono
       stati richiesti. Di conseguenza, se non  c'e  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'e conoscenza di un
       metodo per fare cio, ma e in teoria  possibile  che  esista  un  simile
       metodo.  Se questo e fonte di problemi per il proprio programma, si usi
       invece /dev/random.

   Configurazione
       Se il sistema non comprende gia /dev/random ne /dev/urandom, li si  puo
       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 quantita di
       rumore realmente presente nel pozzo d'entropia. Per contrastare  questo
       effetto, puo 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 sara 4096 (bit), un pozzo di entropia pieno.

       Il  file  poolsize  fornisce  la  dimensione del pozzo di entropia.  La
       semantica di questo file e 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  e  scrivibile  e  puo  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   e  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   e   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 piu  vecchio  e  generato  di
       nuovo a ciascuna lettura, l'ultimo viene generato una volta.

FILE

       /dev/random
       /dev/urandom

AUTORE

       Il  generatore  di  numeri  aleatori  e  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 puo 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   puo   fare   riferimento   a
       http://www.pluto.it/ildp/collaborare/