Jason A. Donenfeld, der Autor von VPN WireGuard, hat eine überarbeitete Implementierung des Zufallszahlengenerators RDRAND vorgeschlagen, die für die Funktion der Geräte /dev/random und /dev/urandom im Linux-Kernel verantwortlich ist. Ende November wurde Jason in die Reihe der Maintainer des Random-Treibers aufgenommen und hat nun die ersten Ergebnisse seiner Überarbeitungen veröffentlicht.
Die neue Implementierung ist bemerkenswert, da sie auf die Hash-Funktion BLAKE2s anstelle von SHA1 für die Entropiemischung umsteigt. Diese Änderung hat die Sicherheit des Zufallszahlengenerators erhöht, indem sie den problematischen SHA1-Algorithmus eliminiert und das Überschreiben des Initialisierungsvektors des RNG verhindert hat. Da der BLAKE2s-Algorithmus in Bezug auf die Leistung SHA1 übertrifft, hat seine Anwendung auch positive Auswirkungen auf die Leistung des Zufallszahlengenerators gehabt (Tests auf einem System mit einem Intel i7-11850H zeigten eine Leistungssteigerung von 131 %). Ein weiterer Vorteil der Umstellung der Entropiemischung auf BLAKE2 war die Vereinheitlichung der verwendeten Algorithmen — BLAKE2 wird auch im ChaCha-Verschlüsselungsalgorithmus verwendet, der bereits zur Extraktion zufälliger Sequenzen eingesetzt wird.
Darüber hinaus wurden Verbesserungen am kryptographisch sicheren Zufallszahlengenerator CRNG vorgenommen, der beim Aufruf von getrandom genutzt wird. Die Verbesserungen bestehen darin, den langsamen RDRAND-Generator beim Extrahieren von Entropie zu begrenzen, was die Leistung um das 3,7-Fache steigert. Jason hat aufgezeigt, dass der Aufruf von RDRAND nur dann sinnvoll ist, wenn CRNG noch nicht vollständig initialisiert ist, aber wenn die Initialisierung von CRNG abgeschlossen ist, hat sein Wert keinen Einfluss auf die Qualität der generierten Sequenz und kann in diesem Fall ohne den Zugriff auf RDRAND auskommen.
Die Änderungen sind für die Aufnahme in den Kernel 5.17 vorgesehen und wurden bereits von den Entwicklern Ted Ts’o (zweiter Maintainer des Random-Treibers), Greg Kroah-Hartman (verantwortlich für die Unterstützung des stabilen Kernel-Zweigs von Linux) und Jean-Philippe Aumasson (Autor der BLAKE2/3-Algorithmen) überprüft.
Quelle: opennet.ru
