Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       random, urandom - Peripheriques generateurs aleatoires du noyau

DESCRIPTION

       Les  fichiers  speciaux  en  mode caractere /dev/random et /dev/urandom
       (existants depuis Linux  1.3.30)  fournissent  une  interface  avec  le
       generateur  de nombres aleatoires du noyau. Le fichier /dev/random a un
       numero de peripherique majeur egal a 1, et un numero mineur egal  a  8.
       Les  numeros  du  peripherique /dev/urandom sont 1 pour le majeur, et 9
       pour le mineur.

       Le generateur de nombres aleatoires regroupe du bruit provenant de  son
       environnement  par  l'intermediaire  des  pilotes  de  peripheriques et
       d'autres sources,  et  le  stocke  dans  un  reservoir  d'entropie.  Le
       generateur memorise egalement une estimation du nombre de bits de bruit
       dans son reservoir d'entropie, et utilise son contenu  pour  creer  des
       nombres aleatoires.

       Lors  d'une  lecture, le peripherique /dev/random sera limite au nombre
       de bits de bruit contenus dans le reservoir d'entropie. /dev/random est
       particulierement adapte pour les cas ou l'on a ponctuellement besoin de
       nombres hautement aleatoires (creation de cles par exemple). Lorsque le
       reservoir  d'entropie  est  vide,  les  lectures depuis le peripherique
       /dev/random seront bloquantes jusqu'a l'obtention  de  suffisamment  de
       bruit en provenance de l'environnement.

       Lors  d'une  lecture,  /dev/urandom  renverra  autant d'octets qu'on en
       demande. Toutefois, s'il n'y a plus assez de bits disponibles  dans  le
       reservoir   d'entropie,   les   valeurs   renvoyees   pourraient   etre
       theoriquement vulnerables a une  cryptanalyse  basee  sur  l'algorithme
       employe  par  le  pilote.  Il n'existe pas de documentation sur ce type
       d'attaque dans la litterature publique actuelle,  mais  cela  n'elimine
       pas  le  risque  theorique.  Si  ce  risque  est  important  pour votre
       application, utilisez plutot /dev/random a la place.

   Utilisation
       Si vous ne savez pas tres bien s'il vous faut utiliser  /dev/random  ou
       /dev/urandom,   alors   utilisez   ce   dernier.   En  regle  generale,
       /dev/urandom est a utiliser pour  tout  sauf  les  cles  GPG/SSL/SSH  a
       longue duree de vie.

       Si  un  reservoir d'entropie est sauve d'un redemarrage a l'autre comme
       recommande ci-dessous (toutes les distributions majeures de Linux  font
       cela  depuis au plus tard l'an 2000), la sortie est cryptographiquement
       sure vis a vis d'attaquants sans acces local comme superutilisateur,  a
       la  condition  que  ce  fichier soit recharge au demarrage et suffisant
       pour les cles de chiffrement  de  sessions  reseau.  Comme  la  lecture
       depuis  /dev/random  peut  etre  bloquante,  les utilisateurs l'ouvrent
       generalement dans un mode non bloquant (ou  en  effectuant  la  lecture
       avec  un  delai d'expiration) et fournissent un systeme de notification
       lorsque l'entropie demandee n'est pas immediatement disponible.

       Le generateur de nombres aleatoires du noyau est  concu  pour  produire
       une faible quantite de donnees de haute qualite destinees a initialiser
       un   generateur   de   nombres   pseudo-aleatoires    (<< cryptographic
       pseudo-random  number  generator >>  ou  CPRNG).  Il  est concu pour la
       securite et non la vitesse, et n'est pas  adapte  a  la  generation  de
       grandes  quantites de donnees aleatoires. Les utilisateurs doivent etre
       tres economes sur leur utilisation de /dev/urandom  (et  /dev/random) :
       des  lectures inutiles de grandes quantites de donnees auront un impact
       negatif sur les autres utilisateurs de ces sources.

       La quantite de donnees d'initialisation necessaire pour generer une cle
       de  chiffrement est egale a la taille utile de la cle. Par exemple, une
       cle privee RSA ou Diffie-Hellman de 3072 bits a  une  taille  utile  de
       128 bits  (2^128 calculs  sont  necessaires  pour  la casser) et a donc
       besoin de 128 bits (16 octets) aleatoires issus de /dev/random.

       Bien  qu'une  marge  d'incertitude  au-dessus  de   ce   minimum   soit
       acceptable,   pour   contourner   les  faiblesses  de  l'algorithme  du
       generateur  de  nombres   pseudo-aleatoires   cryptographique,   aucune
       primitive de cryptographie ne peut esperer aujourd'hui garantir plus de
       256 bits de securite. Aussi, si un programme  puise  plus  de  256 bits
       (32 octets)  dans  le  reservoir d'entropie du noyau, par invocation ou
       apres un intervalle de reapprovisionnement raisonnable  (au  moins  une
       minute),  cela  laisse supposer que la cryptographie est maladroitement
       implementee.

   Configuration
       Si  votre  systeme  ne  dispose  pas  des   fichiers   /dev/random   et
       /dev/urandom vous pouvez les creer avec les commandes suivantes :

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

       Lorsqu'un  systeme  Linux  demarre  sans  interaction avec un operateur
       humain,  le  reservoir  d'entropie  peut  se  trouver  dans   un   etat
       relativement  previsible.  La  veritable  quantite  de  bruit  dans  le
       reservoir d'entropie est donc en dessous de  son  estimation.  Afin  de
       contrer  ce  probleme,  il est utile de sauvegarder l'etat du reservoir
       d'entropie lors des arrets et redemarrages du systeme. Il est  possible
       ainsi  d'ajouter  les  lignes  suivantes  dans les scripts de demarrage
       appropries :

           echo "Initialisation du generateur de nombres aleatoires"
           random_seed=/var/run/random-seed
           # Initialise le generateur de nombres aleatoires avec une racine
           # memorisee lors du dernier arret (ou redemarrage) du systeme
           # Charge puis sauvegarde 512 octets (taille du reservoir d'entropie).
           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

       Egalement, il faut ajouter les lignes suivantes dans un script  execute
       lors de l'arret du systeme.

           # Initialise le generateur de nombres aleatoires avec une racine
           # memorisee lors du dernier arret (ou redemarrage) du systeme
           # Sauvegarde le reservoir d'entropie
           echo "Sauvegarde la racine du generateur aleatoire...
           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

   Interface /proc
       Les  fichiers  du  repertoire  /proc/sys/kernel/random  (present depuis
       2.3.16)  fournissent  une  interface  supplementaire  au   peripherique
       /dev/random.

       Le  fichier en lecture seule entropy_avail donne l'entropie disponible.
       Normalement, elle sera de 4096 (bits), une reserve d'entropie pleine.

       Le fichier poolsize donne  la  taille  de  la  reserve  d'entropie.  Sa
       signification depend des versions du noyau :

              Linux 2.4 : Ce  fichier donne la taille de la reserve d'entropie
                          en octets. Normalement, elle sera de  512  (octets),
                          mais le fichier peut etre ecrit et peut etre modifie
                          a  n'importe  quelle   valeur   pour   laquelle   un
                          algorithme  est  disponible. Actuellement, les choix
                          sont 32, 64, 128, 256, 512, 1024, 2048.

              Linux 2.6 : Ce fichier est en lecture seule et donne  la  taille
                          de  la  reserve  d'entropie  en bits. Il contient la
                          valeur 4096.

       Le fichier read_wakeup_threshold contient le nombre de bits  d'entropie
       necessaires  pour  reveiller  les  processus  endormis  qui attendaient
       l'entropie en provenance de /dev/random. La valeur par defaut  est  64.
       Le fichier write_wakeup_threshold contient le nombre de bits d'entropie
       en dessous duquel on reveillera les processus ayant effectue un appel a
       select(2)  ou  poll(2)  pour  un  acces  en ecriture a /dev/random. Ces
       valeurs peuvent etre modifiees en ecrivant dans les fichiers.

       Les fichiers en lecture seule uuid et boot_id contiennent  des  chaines
       aleatoires  comme  6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9. Le premier est
       genere a chaque lecture, le dernier est genere une seule fois.

FICHIERS

       /dev/random
       /dev/urandom

VOIR AUSSI

       mknod(1)
       RFC 1750, << Randomness Recommendations for Security >>

COLOPHON

       Cette page fait partie de  la  publication  3.32  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain   Portal   <URL:http://manpagesfr.free.fr/>  (2003-2006).   Simon
       Paillard et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                            29 aout 2010                        RANDOM(4)