Frage GPG hat nicht genug Entropie


Ich habe eine Menge Prozesse im Hintergrund laufen, um genug Entropie zu bekommen, aber ich versage immer noch.

**We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 210 more bytes)**

Ich brauche eine Methode, um den Schlüssel zu generieren, der funktioniert, weil das, was ich versuche, scheinbar fehlschlägt.


73
2017-12-20 21:20


Ursprung




Antworten:


Hast du RNG gesehen?

Fedora / Rh / Centos Typen: sudo yum install rng-tools

Auf Deb-Typen: sudo apt-get install rng-tools um es einzurichten.

Dann renne sudo rngd -r /dev/urandom vor dem Erzeugen der Schlüssel.

Referenz: http://it.toolbox.com/blogs/lim/how-to-generate-enough-entropy-for-gpg-key-generation-process-on-fedora-linux-38022


96
2017-12-20 21:43



Auch, um eine ernstere Notiz, die Sie verwenden können sudo apt-get install rng-tools wenn Sie auf Ubuntu statt sudo yum install rng-utils wie sie für Fedora haben, da nein rng-utils Paket existiert für Ubuntu. - Jason Swett
Das Paket ist benannt rng-tools auf Fedora und EL6, so vermute ich einen Tippfehler in dem verlinkten Artikel. BTW, ist es eine gute Idee, die wesentlichen Teile der Antwort hier zu geben, und den Link als Referenz, falls die Verbindung in der Zukunft tot wird. - Michael Hampton♦
Es gibt keine "Entropie niedriger Qualität" oder "falsche Entropie" im Urzustand. Der Zufallsgenerator ruft den gleichen Code als / dev / random auf. Es besteht keine Notwendigkeit zusätzliche Zufälligkeit in die CSPRNG zu geben (außer bei Boottime, und dort sollte Ihre Distribution darauf achten). Dies ist ein Mythos und sollte nicht verbreitet werden. Siehe zum Beispiel sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers oder dieses Video: media.ccc.de/v/32c3-7441-the_plain_simple_reality_of_entropy - Sebastian
Hier ist noch ein guter Bericht über den Urandom-Mythos. - Andrew B
Der am meisten gewählte Kommentar ist Unsinn; leider sehe ich das viel auf SO. Warnungen (selbst wenn sie völlig falsch sind) werden viele Stimmen bekommen und keine Möglichkeit, sie zu korrigieren (keine Kommentar-Option), bedeutet, dass wir die Mythen nicht loswerden können. - Stijn de Witt


Ich konnte den Schlüssel durch generieren

apt-get install rng-tools

In einem anderen geöffneten SSH-Fenster

 gpg --gen-key

Geh zurück zu deiner ersten SSH-Sitzung und renne

sudo rngd -r /dev/urandom

Lass das laufen bis gpg deine Schlüssel generiert!


24
2017-12-20 21:42



Ich würde es auf jeden Fall empfehlen, niemals zu benutzen /dev/urandom um Schlüssel von beliebiger Wichtigkeit zu erzeugen. - Andrew Barber
@AndrewBarber Unsinn. Es ist die empfohlene Methode. - David Schwartz
@AndrewBarber Es ist explizit für diesen Zweck konzipiert. Grundsätzlich gilt, /dev/random ist ein Designfehler. Es sollte immer nur beim ersten Aufruf (beim ersten Start) blockiert werden, wenn noch keine Entropie gesammelt wurde. Wie bei anderen Betriebssystemen. Stattdessen haben wir jetzt zwei Pools. Niemals benutzen /dev/random Es hat keine Vorteile. - Stijn de Witt
@AndrewBarber was würdest du stattdessen empfehlen? - qodeninja


Um die Anzahl der derzeit verfügbaren Entropie-Bytes zu überprüfen, verwenden Sie

cat /proc/sys/kernel/random/entropy_avail

Der Entropie-Bucket ist 4096 Bytes groß, was sehr schnell erschöpft sein kann.

Mit diesem kleinen 'readspeed' Werkzeug (http://1wt.eu/tools/readspeed/) können Sie messen, wie schnell der Entropie-Bucket mit verschiedenen Methoden gefüllt ist.

Starten Sie zum Beispiel:

$ ./readspeed < /dev/random

und bewege die Maus herum. Sie werden sehen, dass "readspeed" den Entropy-Bucket entleert, sobald er gefüllt ist, und wenn Sie die Maus bewegen, füllt er sich ein wenig.

Beim Versuch, verschiedene Methoden auszuprobieren, scheinen Tastatureingabe und Mausbewegungen am effizientesten zu sein, um diesen Eimer wieder aufzufüllen. Netzwerkübertragungen und Festplattenkopien haben keinen großen Einfluss.

Schließlich gibt es Entropiegeneratoren, wie diese: http://www.entropykey.co.uk/.


13
2017-12-20 21:52



Es gibt keine "Entropie niedriger Qualität" im Urzustand. Der Zufallsgenerator ruft den gleichen Code als / dev / random auf. Dies ist ein Mythos und sollte nicht verbreitet werden. Siehe zum Beispiel sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers oder dieses Video: media.ccc.de/v/32c3-7441-the_plain_simple_reality_of_entropy - Sebastian
Diese Antwort ist 5 Jahre alt. Wir dachten, dass der Zufall nicht so sicher wie zufällig ist, aber die Dinge haben sich seither verändert und der Zufall wird als sicher betrachtet. - Julien Vehent
Tatsache ist, dass es von Anfang an sicher war. Die Warnungen waren vor 7 Jahren falsch. - Stijn de Witt


+1 für Rng-Tools

Für den Fall, dass Sie in einer Situation stecken, in der ich bin - keine Berechtigung, neue Software (Rng-Tools) auf einem Headless-Server zu installieren, ohne dass nahezu alle Eingabehardware (Soundkarte, Tastatur, Maus) angeschlossen ist. Sie können diesen einfachen Code von einer anderen Terminalverbindung mit demselben Server ausführen, um ihn der Entropie hinzuzufügen. Es spielt keine Rolle, ob Sie das vor oder nach dem Start starten gpg --gen-key

$ nice -n 19 bash
$ until [ $COUNT -lt 1 ]; do
  let COUNT=`cat /proc/sys/kernel/random/entropy_avail`
  echo "`date` COUNTER $COUNT"
done

In der ersten Zeile wird eine neue Bash-Shell mit niedrigerer Priorität gestartet (ich musste auf einem von vielen Benutzern freigegebenen Server nett sein). Die Schleife bis unendlich ist unendlich, also denken Sie daran, sie zu brechen, sobald der Schlüssel erzeugt ist. Alles, was es macht, ist, dass der Netzwerkverkehr die Entropie erhöht. Es überwacht auch den Zähler entropy_avail, um zu zeigen, wie es auf der anderen Seite von gpg gefüllt und geleert wird. In meinem Fall füllte sich der Counter schnell auf 64 und wurde wieder auf 0 geleert (denke, dass gpg ein Stück von 64 aufnimmt). Ich warte auf eine 4096-Bit-Schlüsselgenerierung für mehr als 3 Stunden auf dem Server. Nach dem Start dieses Skripts wurde es in weniger als 5 Minuten beendet.


6
2018-05-25 17:08



Ich hatte auch keinen Root-Zugriff auf dem Remote-Server und dies funktionierte bei der Schaffung einiger Entropie. Ich denke, die Bedingung sollte geändert werden in [ $COUNT -lt 0 ]. Weil für ein System mit Ja wirklich weniger Entropie, es erreicht manchmal 0 und stoppt. GPG ist wirklich Entropie hungrig. - Ajay Brahmakshatriya


Ich war entschlossen und entschlossen, auf meinem headless Ubuntu 14.04 Server Entropie zu erzeugen, um einen 4096 Schlüssel mit zu generieren gpg --gen-key

Es gibt ein Paket zum Generieren von Entropie namens "havaged". Installationsbeispiel:

sudo apt-get install haveged

Ich musste sudo apt-get install rng-tools da es sich bei dem folgenden Test um eine Abhängigkeit handelt.

Beispiel für einen Test, um zu sehen, ob Entropie erzeugt wird durch:

cat /dev/random | rngtest -c 1000

Eine sehr kleine Anzahl von Fehlern ist in jeder beliebigen Zufallszahl akzeptabel   Generator, aber Sie können erwarten, 998-1000 Erfolge sehr oft zu sehen   bei der Verwendung von schwebte.

Ich habe es in einem Tutorial hier herausgefunden:

https://www.digitalcean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

Ich habe jetzt Schlüssel nach dem Laufen gpg --gen-key


4
2018-06-14 11:47