Rechercher une page de manuel
random
Langue: fr
Version: 25 octobre 2003 (ubuntu - 01/11/07)
Section: 4 (Pilotes et protocoles réseau)
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.
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. Normalement, elle sera de 512 (octets). Ceci peut être modifié à n'importe quelle valeur pour laquelle un algorithme est disponible. Actuellement, les choix sont 32, 64, 128, 256, 512, 1024, 2048.
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() ou poll() 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
AUTEUR
Le générateur de nombres aléatoires du noyau a été écrit par Theodore Ts'o (tytso@athena.mit.edu).VOIR AUSSI
mknod(1)RFC 1750, « Randomness Recommendations for Security »
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006, et mise à disposition sur http://manpagesfr.free.fr/.Les mises à jour et corrections de la version présente dans Debian sont directement gérées par Simon Paillard <simon.paillard@resel.enst-bretagne.fr> et l'équipe francophone de traduction de Debian.
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> ».
Je vois un grincheux couillon
huer : « Hum, pfff, nul baigne ! »
-- Esposito-Farese, Gilles
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre