Entropy Pool Größe

Anregungen & Feature Requests
Post Reply
Haldir
Posts: 3
Joined: August 27th, 2013, 8:53 pm

Entropy Pool Größe

Post by Haldir » October 4th, 2013, 2:52 pm

Hallo,
bin ich der einzige der einen ziemlich kleinen Entropy Pool hat?
[root@ipfire ~]# cat /proc/sys/kernel/random/entropy_avail
166

Zu sehen auch wenn man cat /dev/random macht, wenn er nur eine Handvoll Zeichen ausspuckt und dann wartet, dann ist der Pool leer und muss aufgefüllt werden.

Der Entropy Pool wird verwendet wenn Zufallswerte benötigt werden, normalerweise wird er aufgefüllt durch I/O (Keyboard, Mouse oder ähnliches). Laut Wikipedia http://en.wikipedia.org/wiki/Entropy_%28computing%29 sollte er eigentlich im 2000bit Bereich sein um einen reibungslosen Betrieb von /dev/random zu gewährleisten. Auch wenn für viele Applikationen /dev/urandom ausreicht, wäre es vielleicht praktisch IPFire mit den rng-tools http://sourceforge.net/projects/gkernel ... rng-tools/ auszustatten, da ja mittlerweile viele Geräte entweder einen HWRNG haben (z.B. Via, Intel, TPM etc.) oder die Intel RDRand Instruktionen haben.

ummeegge
Community Developer
Community Developer
Posts: 4434
Joined: October 9th, 2010, 10:00 am

Re: Entropy Pool Größe

Post by ummeegge » November 12th, 2013, 12:29 pm

Hallo Haldir,
denke damit bist du nicht der einzige.
Habe gerade zu dem Thema mal haveged --> http://www.issihosts.com/haveged/ auprobiert was eigentlich recht gut funktioniert. Die bei GPG beliebte Meldung "Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy! (Need 283 more bytes)" bleibt somit nun auch mal aus  :D .
Habe gerade mal per OpenSSL einen DH Key erzeugt, einmal mit einmal ohne haveged und hatte da einen gehörigen Performance Schub. Man kann haveged auch als Daemon laufen lassen, welcher wartungsfrei im Hintergrund seine Arbeit verrichtet.

Wenn es dich zum Testen interesssiert, findest du hier --> http://people.ipfire.org/~ummeegge/haveged/ ein vorläufiges Testpaket.

Entpacken unter /opt/pakfire/tmp und

Code: Select all

tar xvf haveged-1.7b-1.ipfire
./install.sh

(mit [ctrl c] gibst du die Konsole wieder frei.)

haveged kannst du starten mit

Code: Select all

haveged -w 2048

-w gibt den write_wakeup_threshold Wert an.

Es gibt auch ein Konfigurationsfile (im Paket nicht enthalten), man kann denke ich aber auch per initskript (im Paket auch noch nicht enthalten)alles mitgeben.

Ohne haveged:

Code: Select all

[root@ipfire]# cat /proc/sys/kernel/random/entropy_avail
170


Mit haveged -w 2048

Code: Select all

[root@ipfire]# cat /proc/sys/kernel/random/entropy_avail
3217


Ein paar weitere Tests wären noch angesagt aber vielleicht ist das ja auch für IPFire interessant.

UE

EDIT: Die rng-tools sind auch gerade für parallele Tests in der Mache.
Last edited by ummeegge on November 12th, 2013, 3:00 pm, edited 1 time in total.
Image
Image
Image

nvm
Posts: 9
Joined: August 23rd, 2013, 8:57 am

Re: Entropy Pool Größe

Post by nvm » January 9th, 2014, 9:53 am

Hi,

musste mit erschrecken feststellen das bei mir entropy_avail auch erschreckend wenig ausspuckt.
Das sollte man dringend angehen.
Spätestens mit Ipfire 3.

User avatar
MichaelTremer
Core Developer
Core Developer
Posts: 5561
Joined: August 11th, 2005, 9:02 am

Re: Entropy Pool Größe

Post by MichaelTremer » January 12th, 2014, 4:15 pm

Hi,

die Größe des Entropie-Pools in IPFire 2.15 wird 16K sein.

Die Entropiegewinnung ist aber kein Problem der Software sondern ein Problem der Quellen, die man dafür braucht und offenbar nicht hat. Einige Hardware liefert gute Quellen. Andere Hardware liefert so gut wie nichts.

Nun ist es aber auch keine gute Idee Pseudo-Entropie einzuspeisen und die als echte Entropie anzunehmen. Daher ist die einzige wirklich brauchbare Lösung sich eine echte Entropiequelle zu suchen.

-Michael
IPFire Hardware Appliances and Support http://www.lightningwirelabs.com/

Image
Image

ummeegge
Community Developer
Community Developer
Posts: 4434
Joined: October 9th, 2010, 10:00 am

Re: Entropy Pool Größe

Post by ummeegge » February 10th, 2014, 2:42 pm

Hallo zusammen,
habe gerade mal ein paar Tests nach FIPS-140 mit rngtest gemacht. Hbe den Blockcount mal auf 1000 (-c 1000) gesetzt und den write_wakeup_threshold (-w 2048) von haveged auf 2048 mit folgendem Ergebnis

Ohne haveged:

Code: Select all

rngtest 4
Copyright (c) 2004 by Henrique de Moraes Holschuh
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

rngtest: starting FIPS tests...
rngtest: bits received from input: 20000032
rngtest: FIPS 140-2 successes: 997
rngtest: FIPS 140-2 failures: 3
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=1006.714; avg=1557.149; max=2318.800)Kibits/s
rngtest: FIPS tests speed: (min=29.299; avg=36.504; max=47.923)Mibits/s
rngtest: Program run time: 13107163 microseconds


Und mit haveged:

Code: Select all

rngtest 4
Copyright (c) 2004 by Henrique de Moraes Holschuh
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

rngtest: starting FIPS tests...
rngtest: bits received from input: 20000032
rngtest: FIPS 140-2 successes: 1000
rngtest: FIPS 140-2 failures: 0
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=1.080; avg=1.526; max=2.226)Mibits/s
rngtest: FIPS tests speed: (min=8.786; avg=36.155; max=47.446)Mibits/s
rngtest: Program run time: 13057789 microseconds


Ein Test mit ENT https://www.fourmilab.ch/random/

Ohne haveged:

Code: Select all

Entropy = 7.999815 bits per byte.

Optimum compression would reduce the size
of this 1048485 byte file by 0 percent.

Chi square distribution for 1048485 samples is 268.63, and randomly
would exceed this value 26.67 percent of the times.

Arithmetic mean value of data bytes is 127.3650 (127.5 = random).
Monte Carlo value for Pi is 3.147682078 (error 0.19 percent).
Serial correlation coefficient is 0.000860 (totally uncorrelated = 0.0).



Mit haveged:

Code: Select all

Entropy = 7.999830 bits per byte.

Optimum compression would reduce the size
of this 1048576 byte file by 0 percent.

Chi square distribution for 1048576 samples is 246.62, and randomly
would exceed this value 63.53 percent of the times.

Arithmetic mean value of data bytes is 127.5367 (127.5 = random).
Monte Carlo value for Pi is 3.145741065 (error 0.13 percent).
Serial correlation coefficient is -0.001832 (totally uncorrelated = 0.0).



Mit der 2.15 Beta 1 ist der random poolsize ja mittlerweile auf 16384 bit gewachsen, wenn einem nun der HWRNG fehlt, kann man mit haveged den entropy_avail auch entsprechend der poolsize ein wenig aufmachen.
Soweit ich gelesen habe kann haveged mit rngd auch gut coexistieren und bietet noch eine weitere Entropie Source, wenn auch Pseudoentropie...

Müsste mal Dieharder o.ä. kompilieren für weitere tests, aber vielleicht habt ihr ja auch Erfahrungen oder andere Meinungen hierzu ? Wäre auf jedenfall mal interessant zu hören.

Grüsse

UE
Image
Image
Image

User avatar
MichaelTremer
Core Developer
Core Developer
Posts: 5561
Joined: August 11th, 2005, 9:02 am

Re: Entropy Pool Größe

Post by MichaelTremer » February 10th, 2014, 4:43 pm

ummeegge wrote:Soweit ich gelesen habe kann haveged mit rngd auch gut coexistieren und bietet noch eine weitere Entropie Source, wenn auch Pseudoentropie...


Eben nicht. Pseudo-Zufall ist kein richtiger Zufall. Damit kryptographische Operationen durchzuführen ist gefährlich. Damit generierte Schlüssel sind praktisch nutzlos für die Verschlüsselung oder Integrität von Daten.

Problematisch an Zufall (oder in der Kryptographie allgemein) ist, dass man nicht nachweisen kann, dass etwas guten Zufall liefert, sondern nur schlechten Zufall. Man kann zum Beispiel auch schlechter Nachweisen, dass ein Algorithmus sicher ist. Ihn für Unsicher zu erklären ist einfacher, wenn man ihn gebrochen hat.

Also seid euch wenigstens im Klaren darüber, dass ihr den durch haveged gewonnen Zufall nicht für etwas verwendet, wo er nicht geeignet ist.

-Michael
IPFire Hardware Appliances and Support http://www.lightningwirelabs.com/

Image
Image

ummeegge
Community Developer
Community Developer
Posts: 4434
Joined: October 9th, 2010, 10:00 am

Re: Entropy Pool Größe

Post by ummeegge » February 10th, 2014, 6:52 pm

MichaelTremer wrote:
ummeegge wrote:Soweit ich gelesen habe kann haveged mit rngd auch gut coexistieren und bietet noch eine weitere Entropie Source, wenn auch Pseudoentropie...

Eben nicht. Pseudo-Zufall ist kein richtiger Zufall. Damit kryptographische Operationen durchzuführen ist gefährlich. Damit generierte Schlüssel sind praktisch nutzlos für die Verschlüsselung oder Integrität von Daten.


Bin über die Quelle auf obige Vermutung gekommen --> http://comments.gmane.org/gmane.comp.se ... ombit/5852 , vom Stephan Müller gibts auch eine ganz interesssante Publikation beim BSI zu dem Thema --> https://www.bsi.bund.de/DE/Publikatione ... x_htm.html .

Auf die BSI Studie bin ich über die Mailingliste --> http://www.mail-archive.com/search?l=cr ... ubject:%22[cryptography]+on+using+RDRAND+[was%3A+Entropy+improvement%3A+haveged+%2B%09rngd+together%3F]%22
gestossen, zu dem Thema scheint sich auch derzeit was zu bewegen :) .

Wenn ich das richtig verstehe nutzt z.b. CSRNG --> https://code.google.com/p/csrng/ auch diese Form der Kombination ?!

MichaelTremer wrote:Problematisch an Zufall (oder in der Kryptographie allgemein) ist, dass man nicht nachweisen kann, dass etwas guten Zufall liefert, sondern nur schlechten Zufall. Man kann zum Beispiel auch schlechter Nachweisen, dass ein Algorithmus sicher ist. Ihn für Unsicher zu erklären ist einfacher, wenn man ihn gebrochen hat.

Das denke ich auch, rngd hängt in dem Fall ja auch von einer Quelle und somit von einem qualitativ guten Zufall des HNRG ab, da stellt sich schätze ich eine änliche Herausforderung dies auch zu überprüfen.

Eine Kombination von unterschiedlichen Quellen stell ich mir da am besten vor.

Muss da auch noch mal weiter schauen.

Grüsse

UE
Image
Image
Image

User avatar
Falconcrest
Posts: 103
Joined: February 27th, 2013, 1:53 pm

Re: Entropy Pool Größe

Post by Falconcrest » December 26th, 2014, 7:35 pm

Hallo,

ich möchte da gerne zu meinem Verständnis nachfragen:

MichaelTremer wrote:Die Entropiegewinnung ist aber kein Problem der Software sondern ein Problem der Quellen, die man dafür braucht und offenbar nicht hat. Einige Hardware liefert gute Quellen. Andere Hardware liefert so gut wie nichts.

Nun ist es aber auch keine gute Idee Pseudo-Entropie einzuspeisen und die als echte Entropie anzunehmen. Daher ist die einzige wirklich brauchbare Lösung sich eine echte Entropiequelle zu suchen.
-Michael


Wie "finde" ich denn eine gute bzw. echte Entropiequelle?
Hat oder hat man sie nicht, bei einer Mainboard/Prozessor-Kombination?
Ich habe z.B. USB, Com, LPR, Audio, Netzwerk OnBoard im BIOS deaktiviert, weil ich es nicht benötige.
Fehlt mir eventuell deshalb eine Quelle, wie es mein IPFire anzeigt?
Tante Goggle hat mir auf die Schnelle auch nichts über gute Quellen erzählen können!

MfG. Falconcrest
Image

User avatar
Falconcrest
Posts: 103
Joined: February 27th, 2013, 1:53 pm

Re: Entropy Pool Größe

Post by Falconcrest » December 31st, 2014, 12:58 pm

Hallo,

hat wirklich niemand eine Erklärung parat?

MfG. Carsten
Image

XerXes
Posts: 157
Joined: February 19th, 2011, 3:11 pm
Location: Germany

Re: Entropy Pool Größe

Post by XerXes » December 31st, 2014, 10:23 pm

für den kleinen Geldbeutel tut's wohl der hier:

https://www.tindie.com/products/ubldit/ ... generator/

viewtopic.php?f=27&t=11091&hilit=truerng#p71590

Beim Preis die 19% Zoll Gebühr nicht vergessen. (damals 47 Euro insgesamt glaub ich).

Hier hab ich noch Liste mit stärkeren Karten, aber wohl nicht für den Privat-Anwender zu beschaffen:

http://en.wikipedia.org/wiki/Comparison ... generators

hoffe das hilft etwas weiter

User avatar
Falconcrest
Posts: 103
Joined: February 27th, 2013, 1:53 pm

Re: Entropy Pool Größe

Post by Falconcrest » January 1st, 2015, 11:38 am

Hallo XerXes,


Preislich interessant...
Hier hab ich noch Liste mit stärkeren Karten, aber wohl nicht für den Privat-Anwender zu beschaffen:
http://en.wikipedia.org/wiki/Comparison ... generators

Ups, sportliche Preise teilweise...
hoffe das hilft etwas weiter

Ja, Danke dafür.

MfG. Falconcrest
Image

firefriend
Posts: 7
Joined: January 28th, 2015, 6:54 pm

TRNG Hardwarealternativen

Post by firefriend » January 29th, 2015, 9:04 am

Hallo,

habe hier http://www.ibbergmann.org/1851938.htm per Zufall eine vielversprechende Lösung gefunden.
Den USB Stick kann man für 60€ als Endkunde beziehen. Die interne Lösung für den USB Pfostenstecker auf dem Main Board gibt es für 49€. Ist ein deutscher Anbieter und scheint sich mit dem Thema auch wirklich gut auszukennen.

Grüße firefriend

User avatar
meila55
Posts: 1
Joined: July 14th, 2017, 3:53 pm

Re: TRNG Hardwarealternativen

Post by meila55 » July 14th, 2017, 3:57 pm

firefriend wrote:
January 29th, 2015, 9:04 am
Hallo,

habe hier http://www.ibbergmann.org/1851938.htm per Zufall eine vielversprechende Lösung gefunden.
Den USB Stick kann man für 60€ als Endkunde beziehen. Die interne Lösung für den USB Pfostenstecker auf dem Main Board gibt es für 49€. Ist ein deutscher Anbieter und scheint sich mit dem Thema auch wirklich gut auszukennen.

Grüße firefriend
Danke für Link und für Tipp auch ;)
Alles Gute und viel Glück demjenigen, der das gelesen hat!

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests