Linux hat einen Entropie-Pool, der stets mit „qualitativ hochwertigen“ Zufallszahlen gefüllt sein sollte. Diesen Pool kann man via den beiden Device Files
- /dev/random (blocking) und
- /dev/urandom (non-blocking)
anzapfen.
Jedes Programm, das Zufallszahlen braucht, bedient sich im Normalfall aus einem der beiden Files. Stark beansprucht wird der Entropie Pool, wenn zum Beispiel mit Kryptographie gearbeitet wird (TLS-Verbindungen, Schlüsselpaare erzeugen, usw).
Den aktuellen Füllstand kann man via Kernel-Schnittstelle auslesen:
cat /proc/sys/kernel/random/entropy_avail
Das Kommando gib die Anzahl an verfügbaren Bits aus. Alles unter 250 gilt als zu gering. Das Maximum sind 4096 Bits.
Um Entropie mit IPFIre als KVM-Gast nutzen zu können musste ich nachträglich ein „RNG“ hinzufügen.
- virsh edit kvm-guest
<rng model=’virtio‘>
<backend model=’random‘>/dev/urandom</backend>
2. virsh start kvm-guest
3. Konfiguration prüfen
virsh dumpxml kvm-guest|grep -A3 rng
Ausgabe:
<rng model=’virtio‘>
<backend model=’random‘>/dev/urandom</backend>
<alias name=’rng0’/>
<address type=’pci‘ domain=’0x0000′ bus=’0x00′ slot=’0x07′ function=’0x0’/>
</rng>
Eine weitere Möglichkeit einen RNG in einem Virtuellen IPFire oder einem Gerät, welches keinen Hardware Random Number Generator hat, zu realisieren ist haveged.
Hierzu gibt es schon etwas im IPFire-Forum.