Die Zufallserzeugung mit “/dev/random” stößt in aktuellen IT-Setups mitunter an ihre Grenzen. Nun schlägt der deutsche Entwickler Stephan Müller mit dem Linux Random Number Generator eine Alternative vor und hat auf der Kernel-Mailingliste ein Patch eingereicht.
In virtuellen Maschinen, auf Embedded-Geräten, im Umgang mit SSDs oder auf massiv parallelisierten Maschinen gerät die traditionelle Zufallserzeugung über “/dev/random” an ihre Grenzen, weil einige Quellen zur Zufallserzeugung ausfallen. Zu diesen gehören tarditionell die Human Interface Devices (HID), Mausbewegungen und Tastatureingaben sollen Rauschen erzeugen und so zur Entropie beitragen. Sie aber spielen beim Einsatz von virtuellen Maschinen oft keine Rolle. Auch die High-Resolution-Timer in blockorientierten Geräten ergeben beim Einsatz von SSDs als Zufallsquelle wenig Sinn; weil diesen Festplatten die mechanischen Teile fehlen, sind die Ausführungszeiten wesentlich vorhersagbarer, fällt also die Komponente Zufall deutlich weniger ins Gewicht.
Auf der Kernel-Mailingliste hat Entwickler Stephan Müller nun auf Basis diverser Studien zum Thema eine neue Methode vorgeschlagen, den Linux Random Number Generator (LRNG). Der soll vor allem zur Bootzeit, in virtuellen Umgebungen und beim Einsatz von SSDs ausreichend Entropie bieten. Zudem wolle er die Auswirkungen der Entropiegeneration auf massiv-parallelen Systemen einschränken und den Einsatz beschleunigter kryptografischer Primitive erlauben. Nicht zuletzt gehe es darum, dass sich sämtliche Schritte der Zufallserzeugung testen lassen.
Sein Patch, das er an Herbert Xu und Ted Ts’o geschickt hat, hängt den LRNG in den “cryptodev-2.6”-Zweig des Kernel ein. Allerdings muss ein Kernelnutzer das Patch beim Kompilieren explizit aktivieren, andernfalls kommt wie gewohnt “/dev/random” zum Einsatz. In einem ausführlichen Paper beschreibt der Entwickler zudem die Probleme der Zufallserzeugung mit “/dev/random” und seine Idee einer Alternative. In dem Paper finden sich auch Berechnungen und ein Überblick zum LRNG-Design. Testcode auf der Webseite des Entwicklers vergleicht zudem die “/dev/random”-Implementierung mit der seines eigenen Codes. Nicht zuletzt habe er Stabilitätstests auf 32- und 64-Bit-KVM-Systemen vorgenommen.






