Aller au contenu principal

rngd

rngd (rng-tools) alimente le pool d'entropie du noyau à partir d'une source matérielle de nombres aléatoires : TPM, instruction CPU RDRAND/RDSEED, ou générateur matériel dédié exposé via /dev/hwrng. Contrairement à haveged qui simule de l'aléa via le jitter d'exécution, rngd relaie une source physiquement conçue pour ça — quand elle est disponible et jugée fiable.

Installation

# Debian/Ubuntu
sudo apt install rng-tools5

# Fedora/RHEL
sudo dnf install rng-tools

sudo systemctl enable --now rngd

Fichiers de configuration

CheminRôle
/etc/default/rng-tools5 (Debian) ou /etc/sysconfig/rngd (RHEL)Source à utiliser (/dev/hwrng par défaut), options de démarrage
/dev/hwrngPériphérique exposant la source matérielle d'entropie (TPM, RDRAND via le driver kernel)

Commandes utiles

CommandeFonction
systemctl status rngdÉtat du démon
rngd -f -vLancer en avant-plan, verbeux (debug)
cat /sys/class/misc/hw_random/rng_availableSources matérielles détectées par le noyau
cat /sys/class/misc/hw_random/rng_currentSource actuellement utilisée
cat /proc/sys/kernel/random/entropy_availNiveau d'entropie du pool

Exemple de configuration

# /etc/default/rng-tools5
HRNGDEVICE=/dev/hwrng

Force explicitement l'utilisation du device matériel plutôt qu'une source détectée automatiquement — utile si plusieurs sources sont disponibles et qu'on veut garantir laquelle est utilisée.

Sécurisation

  • Toujours vérifier la source réellement utilisée (rng_current) : sur une VM sans passthrough TPM ni support RDRAND exposé, /dev/hwrng peut être absent et rngd ne rien apporter.
  • Ne jamais faire confiance aveuglément à une source matérielle non documentée/auditée pour des usages cryptographiques critiques — préférer une source dont l'implémentation a été publiquement analysée (RDRAND/RDSEED Intel/AMD, TPM 2.0 certifié).
  • Sur les systèmes modernes, le CRNG du noyau (5.6+) mélange déjà plusieurs sources d'entropie (dont RDRAND directement) : rngd reste utile surtout en environnement virtualisé ou embarqué où l'entropie native est plus incertaine.

Logs & dépannage

journalctl -u rngd
cat /sys/class/misc/hw_random/rng_available # rien listé = pas de source matérielle exposée au kernel

Si rngd échoue au démarrage, la cause la plus fréquente est l'absence de /dev/hwrng (VM sans virtio-rng, ou driver TPM non chargé) — vérifier dmesg | grep -i rng.

Voir aussi

  • haveged — alternative logicielle quand aucune source matérielle n'est disponible