Entropie und IPFire als KVM-Gast

 

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.


  1. 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.