RANDOM
Section: Manuel du programmeur Linux (4) Updated: 25 juillet 2003 Index
NOM
DESCRIPTION
CONFIGURATION
FICHIERS
AUTEUR
VOIR AUSSI
TRADUCTION
NOM
random, urandom - Périphériques générateurs aléatoires du noyau.
DESCRIPTION
Les fichiers spéciaux caractères /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 des 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 bruits
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édictible.
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 entropique 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 nombre aléatoires"
# Initialiser le générateur de nombre aléatoire avec une racine
# mémorisée lors du dernier arrêt (ou redémarrage) du système
# On charge jusqu'à 512 octets (taille du réservoir d'entropie).
if [ -f /var/random-seed ]; then
cat /var/random-seed >/dev/urandom
fi
dd if=/dev/urandom of=/var/random-seed count=1
Également, il faut ajouter les lignes suivantes dans un script exécuté
lors de l'arrêt du système.
# Sauver une racine aléatoire pour pouvoir redémarrer le
# générateur au prochain boot. On sauve 512 octets.
echo "Sauvegarde de la racine du générateur aléatoire..."
dd if=/dev/urandom of=/var/random-seed count=1
FICHIERS
/dev/random
/dev/urandom
AUTEUR
VOIR AUSSI
mknod (1)
RFC 1750, "Randomness Recommendations for Security"
TRADUCTION
Christophe Blaess, 1998-2003.
|