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  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/