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

NOM

       random, urandom - Périphériques générateurs aléatoires du noyau

DESCRIPTION

       Les  fichiers  spéciaux  en  mode  caractère /dev/random et /dev/urandom (existants depuis
       Linux 1.3.30) fournissent une interface avec le générateur de nombres aléatoires du noyau.
       Le  fichier  /dev/random  a un numéro de périphérique majeur égal à 1, et un numéro mineur
       égal à 8. Les numéros du périphérique /dev/urandom sont 1 pour le majeur,  et  9  pour  le
       mineur.

       Le  générateur  de nombres aléatoires regroupe du bruit provenant de son environnement par
       l'intermédiaire des pilotes de périphériques et d'autres sources, et  le  stocke  dans  un
       réservoir d'entropie. Le générateur mémorise également une estimation du nombre de bits de
       bruit dans son réservoir d'entropie,  et  utilise  son  contenu  pour  créer  des  nombres
       aléatoires.

       Lors  d'une  lecture,  le  périphérique /dev/random sera limité au nombre de bits de bruit
       contenus dans le réservoir d'entropie. /dev/random est particulièrement  adapté  pour  les
       cas  où l'on a ponctuellement besoin de nombres hautement aléatoires (création de clés par
       exemple). Lorsque le réservoir d'entropie est vide, les lectures  depuis  le  périphérique
       /dev/random  seront  bloquantes jusqu'à 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 réservoir d'entropie, les valeurs
       renvoyées  pourraient  être  théoriquement  vulnérables  à  une  cryptanalyse  basée   sur
       l'algorithme employé par le pilote. Il n'existe pas de documentation sur ce type d'attaque
       dans la littérature publique actuelle, mais cela n'élimine pas le risque théorique. Si  ce
       risque est important pour votre application, utilisez plutôt /dev/random à la place.

   Utilisation
       Si  vous ne savez pas très bien s'il vous faut utiliser /dev/random ou /dev/urandom, alors
       utilisez ce dernier. En règle générale, /dev/urandom est à utiliser  pour  tout  sauf  les
       clés GPG/SSL/SSH à longue durée de vie.

       Si  un  réservoir  d'entropie  est  sauvé  d'un  redémarrage  à  l'autre  comme recommandé
       ci-dessous (toutes les distributions majeures de Linux font cela depuis au plus tard  l'an
       2000),  la  sortie  est  cryptographiquement  sûre vis à vis d'attaquants sans accès local
       comme superutilisateur, à la condition que  ce  fichier  soit  rechargé  au  démarrage  et
       suffisant  pour  les  clés  de  chiffrement  de  sessions  réseau. Comme la lecture depuis
       /dev/random peut être bloquante, les utilisateurs l'ouvrent généralement dans un mode  non
       bloquant  (ou  en  effectuant  la  lecture  avec  un délai d'expiration) et fournissent un
       système de notification lorsque l'entropie demandée n'est pas immédiatement disponible.

       Le générateur de nombres aléatoires du noyau est conçu pour produire une  faible  quantité
       de   données   de   haute  qualité  destinées  à  initialiser  un  générateur  de  nombres
       pseudo-aléatoires (« cryptographic pseudo-random number  generator »  ou  CPRNG).  Il  est
       conçu  pour  la sécurité et non la vitesse, et n'est pas adapté à la génération de grandes
       quantités de données aléatoires. Les utilisateurs doivent  être  très  économes  sur  leur
       utilisation  de /dev/urandom (et /dev/random) : des lectures inutiles de grandes quantités
       de données auront un impact négatif sur les autres utilisateurs de ces sources.

       La quantité de données d'initialisation nécessaire pour générer une clé de chiffrement est
       égale  à  la  taille utile de la clé. Par exemple, une clé privée RSA ou Diffie-Hellman de
       3072 bits a une taille utile de 128 bits (2^128 calculs sont nécessaires pour  la  casser)
       et a donc besoin de 128 bits (16 octets) aléatoires 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 générateur de nombres pseudo-aléatoires cryptographique,
       aucune primitive de cryptographie ne peut espérer aujourd'hui garantir plus de 256 bits de
       sécurité. Aussi, si un programme puise plus de  256 bits  (32 octets)  dans  le  réservoir
       d'entropie  du  noyau,  par  invocation  ou  après  un  intervalle  de réapprovisionnement
       raisonnable (au  moins  une  minute),  cela  laisse  supposer  que  la  cryptographie  est
       maladroitement implémentée.

   Configuration
       Si  votre  système ne dispose pas des fichiers /dev/random et /dev/urandom vous pouvez les
       créer 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 système Linux démarre sans interaction avec un opérateur  humain,  le  réservoir
       d'entropie  peut se trouver dans un état relativement prévisible. La véritable quantité de
       bruit dans le réservoir d'entropie est donc en dessous de son estimation. Afin de  contrer
       ce problème, il est utile de sauvegarder l'état du réservoir d'entropie lors des arrêts et
       redémarrages du système. Il est possible ainsi d'ajouter les  lignes  suivantes  dans  les
       scripts de démarrage appropriés :

           echo "Initialisation du générateur de nombres aléatoires"
           random_seed=/var/run/random-seed
           # Initialise le générateur de nombres aléatoires avec une racine
           # mémorisée lors du dernier arrêt (ou redémarrage) du système
           # Charge puis sauvegarde 512 octets (taille du réservoir 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

       Également,  il faut ajouter les lignes suivantes dans un script exécuté lors de l'arrêt du
       système.

           # Initialise le générateur de nombres aléatoires avec une racine
           # mémorisée lors du dernier arrêt (ou redémarrage) du système
           # Sauvegarde le réservoir d'entropie
           echo "Sauvegarde la racine du générateur aléatoire...
           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 répertoire /proc/sys/kernel/random (présent depuis 2.3.16) fournissent une
       interface supplémentaire au périphérique /dev/random.

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

       Le fichier poolsize donne la taille de la réserve d'entropie. Sa signification dépend  des
       versions du noyau :

              Linux 2.4 : Ce  fichier  donne  la  taille  de  la  réserve  d'entropie  en octets.
                          Normalement, elle sera de 512 (octets), mais le fichier peut être écrit
                          et  peut  être  modifié  à  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 réserve
                          d'entropie en bits. Il contient la valeur 4096.

       Le fichier read_wakeup_threshold contient le nombre de bits  d'entropie  nécessaires  pour
       réveiller  les processus endormis qui attendaient l'entropie en provenance de /dev/random.
       La valeur par défaut est 64. Le fichier write_wakeup_threshold contient le nombre de  bits
       d'entropie  en  dessous  duquel  on  réveillera  les  processus  ayant effectué un appel à
       select(2) ou poll(2) pour un accès en écriture à /dev/random.  Ces  valeurs  peuvent  être
       modifiées en écrivant dans les fichiers.

       Les  fichiers  en  lecture  seule uuid et boot_id contiennent des chaînes aléatoires comme
       6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9. Le premier est généré à chaque lecture,  le  dernier
       est généré 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  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <URL:http://po4a.alioth.debian.org/> par l'équipe 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'équipe  francophone  de
       traduction de Debian (2006-2009).

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

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».