[Eisfair] rngd-Paket

Alexander Dahl lespocky at web.de
Mo Jul 6 09:36:02 CEST 2020


Moin,

Kay Martinen schrieb Samstag,  4. Juli 2020, 22:24 (CEST):
> Am 04.07.20 um 21:26 schrieb Marcus Röckrath:
>
>> Dieses stellt eine zum haveged-Paket vergleichbare Funktionalität
>> zurVerfügung, weswegen die beiden sich auch nicht miteinander vertragen,
>> heißt:
>
> Gut die Wahl zu haben, nur was dies paket vom anderen abhebt wäre
> interessanter. An haveged irritiert mich immer der zusammenhanglos
> erscheinde name. have ged? ha veged? ha ve ge d? Was???

HAVEGE steht für HArdware Volatile Entropy Gathering and Expansion.

Siehe bspw.

- http://issihosts.com/haveged/
- https://www.irisa.fr/caps/projects/hipsor/

> Dagegen klingt rngd für mich sofort einleuchtend nach der abk für random
> number generator daemon und damit ist alles klar.

In beiden Fällen steht das angehängte 'd' für daemon und damit für eine
Software, die dauerhaft im Hintergrund läuft.

>> Aber haveged nicht deinstallieren, was eisman auch verhindern sollte, da es
>> als Abhängigkeit im Kernelpaket genannt ist.
>
> Und hätte man keinen neuen kernel gebraucht dessen Änderungen bewirken
> das ihm die entropie ausginge so bräuchte man weder den einen noch den
> anderen. Reicht eine NIC und ihre diversen traffic-zähler nicht aus als
> "entropie"quelle für einen Server ohne konsole?

Der Kernel selbst zapft diverse Entropiequellen an, unter anderem auch
Jitter in Netzwerktraffic. Moderne Prozessoren haben auch Hardware RNG
drin, Stichwort RDRAND bspw.

https://en.wikipedia.org/wiki/RDRAND

Ich meine man kann sowas auch irgendwie über spezielle Treiber in
virtuelle Maschinen durchreichen, bin aber nicht sicher, müsste ich
recherchieren.

> Entropie braucht man doch m.W. auch vor allem um Zertifikate und
> Schlüssel zu erstellen. Sprich für das Certs Paket, ggf. noch für sshd
> aber das erstellen eines hostkeys geht doch bestimmt auch ohne oder?

Der Kernel hat intern einen CRNG, einen kryptografisch sicheren RNG. Aus
diesem bedienen sich Programme im Userspace, wenn sie von /dev/random
lesen oder den syscall getrandom() aufrufen. Das gilt auch für das
Erstellen eines Hostkeys!

Damit diese Schlüssel hinreichend sicher sind, muss der CRNG aber
komplett initialisiert sein und das erfordert eine gewisse Menge
Entropie. Auf einem headless Server und insbesondere in virtuellen
Maschinen kann das im Betrieb ganz schön lange dauern, bis über alle
möglichen Quellen genug Entropie zusammenkommt. Die Empfehlung ist auf
jeden Fall keine Werte aus dem rng für kryptografischen Operationen zu
nutzen, bevor der rng nicht fertig initialisiert ist (der liefert davor
schon Werte, aber die sind ggf. nicht zufällig genug).

Abhilfe schafft hier entweder ein hwrng als Entropiequelle oder HAVEGEd
oder auch der jitterentropy-rngd, der aber nach einem ähnlichen
Verfahren arbeitet. Dieses Verfahren beschleunigt die Sache sehr, ist
aber auch nicht unumstritten:

https://lwn.net/Articles/525459/

Die Diskussion kam kürzlich auch erst wieder auf der
buildroot-Mailingliste auf.

Grüße
Alex

-- 
***** http://blog.antiblau.de/ *****************************
GnuPG-FP: C28E E6B9 0263 95CF 8FAF  08FA 34AD CD00 7221 5CC6


Mehr Informationen über die Mailingliste Eisfair