Avatar von Troy_McClure
  • Troy_McClure

mehr als 1000 Beiträge seit 19.06.2002

[semit-OT] ich habe in den letzten Tagen *relativ* viel über /dev/random gelernt

Ich wollte einfach mal einige, z.T. erstaunliche, Dinge
zusammenfassen, die ich als einfacher User jüngst über Entropie unter
Linux gelernt habe.

Hier die Motivation dazu, ein Bisschen mit dem Zufall zu spielen:
http://www.heise.de/security/news/foren/S-Re-Geben-wir-denen-doch-was-sie-haben-wollen/forum-264678/msg-24066755/read/

Mein bescheidenes Wissen über Linux' /dev/(u)random und wie man dem
Entropiepool etwas "helfen" kann, hat sich dabei insofern erweitert:

(1)
Am Besten investiert man in einen externen TRNG (True Random Number
Generator) und hat einfach seine Ruhe. Sehr empfehlenswert scheint
der Entropy Key (36£) zu sein:
> http://www.entropykey.co.uk/
Eines der tollen Features ist, dass es die nötige Software direkt im
Repository von Debian, Ubuntu, openSuse und Gentoo gibt:
> http://www.entropykey.co.uk/download/

(2)
Absolut jeder Nutzer darf auch nach /dev/random *schreiben*. Das
Tolle dabei ist, dass z.B. durch
echo "immerdasgleicheimmerdasgleicheimmerdasgleiche" > /dev/random
die Entropie des Pools *nicht* verringert wird.
Die tatsächlich vorhandene Entropie ist dem Kernel nicht bekannt, es
gibt lediglich einen *abgeschätzten* Wert dafür, den man in
/proc/sys/kernel/random/entropy_avail
auslesen kann. Den abgeschätzten Wert *erhöhen* darf aber nur root.

(3)
Wer aus /dev/urandom liest, bekommt erstmal auch echte Zufallszahlen.
Erst wenn die Entropie auf 0 ist, gibt es Pseudo-Zufall. Das ist
einerseits toll, weil kurze Bytefolgen aus /dev/urandom dann eine
wirklich sehr hohe Zufälligkeit haben, andererseits ist es schlecht
für alle konkurrierenden Prozesse, die aus /dev/random lesen wollen,
denn der Entropiepool muss dann erstmal wieder gefüttert werden.

(4)
Wer keinen TRNG hat, kann sich mit geschickten Softwarelösungen
helfen, um den Entropiepool immer voll zu halten. Zwei Ansätze, die
hier prima funktionieren (laufen als daemons): haveged und
randomsound:
> http://packages.debian.org/haveged
> http://packages.debian.org/randomsound
Ersteres misst Zufälligkeiten im CPU-Timing, letzteres sammelt
Rauschen direkt von der Soundkarte. Benutzt man irgendeines von
beidem, hat man einen *sehr* viel höheren Durchsatz an Zufallsbytes.
Bei weitem den höchsten Durchsatz schafft hier haveged, mit ca. 8
MB/s!

(5)
Es gibt "typische" Tests für die Qualität von (T/P)RNGs. Unter Debian
kann man sich einfach die Pakete "ent" und "dieharder" installieren.
dieharder versucht, alle bekannten Tests zu vereinen und braucht
deswegen auch sehr lange.

(6)
Glaubt man, man hätte die Mutter aller Zufälligkeit gefunden und will
das mal extern testen lassen, kann man einen großen Byteklumpatsch
hier zum Testen hochladen:
> https://www.cacert.at/random/

Bewerten
- +
Anzeige