it-swarm.com.de

Was bedeutet es, wenn OpenSSL verwendet wird, wenn der 'Zufallsstatus' nicht geschrieben werden kann?

Ich erstelle ein selbstsigniertes SSL-Zertifikat, um den Admin-Bereich meines Servers zu schützen, und erhalte weiterhin die folgende Nachricht von OpenSSL:

nicht in der Lage, "zufälligen Zustand" zu schreiben

Was bedeutet das?

Dies ist auf einem Ubuntu-Server. Ich habe libssl aktualisiert, um die letzte Sicherheitsanfälligkeit zu beheben.

385
Luke Francl

In der Praxis scheint der häufigste Grund dafür zu sein, dass sich die .rnd-Datei in Ihrem Home-Verzeichnis im Besitz von root und nicht Ihres Kontos befindet. Die schnelle Lösung:

Sudo rm ~/.rnd

Für weitere Informationen, hier ist der Eintrag aus dem OpenSSL FAQ :

Manchmal bricht das Befehlszeilendienstprogramm openssl nicht mit der Fehlermeldung "PRNG not seeded" ab, sondern beklagt sich darüber, dass es "nicht in der Lage ist, einen zufälligen Status zu schreiben". Diese Meldung bezieht sich auf die Standard-Seeding-Datei (siehe vorherige Antwort). Ein möglicher Grund ist, dass kein Standarddateiname bekannt ist, da weder RANDFILE noch HOME festgelegt sind. (In Versionen bis 0.9.6 wurde in diesem Fall die Datei ".rnd" im aktuellen Verzeichnis verwendet, dies hat sich jedoch mit 0.9.6a geändert.)

Ich würde also RANDFILE, HOME und die Berechtigungen zum Schreiben an diesen Stellen im Dateisystem überprüfen.

Wenn alles in Ordnung zu sein scheint, können Sie versuchen, mit strace zu laufen und zu sehen, was genau los ist.

539
Ville Laurikari

Ich weiß, dass diese Frage unter Linux gestellt wird, aber unter Windows hatte ich das gleiche Problem. Es hat sich herausgestellt, dass Sie den Befehl Eingabeaufforderung im Modus "Als Administrator ausführen" starten müssen, damit er funktioniert. Andernfalls erhalten Sie das gleiche Ergebnis: Der Fehler "Zufallsstatus" kann nicht geschrieben werden.

250
Beachhouse

Bei einem weiteren Problem auf der Windows-Plattform müssen Sie sicherstellen, dass Sie als Administrator die Eingabeaufforderung ausführen.

Ich weiß nicht, wie oft mich das gebissen hat ...

38
joel

Anscheinend musste ich OpenSSL als root ausführen, um die Berechtigung für die Seeding-Datei zu erhalten.

16
Luke Francl

Ich hatte das gleiche auf Windows Server. Dann habe ich herausgefunden, indem ich den vars.bat welches ist:

set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa

dann von Anfang an wiederholen und alles sollte in Ordnung sein.

12
Jusuf

Das Problem für mich war, dass ich .rnd in meinem Home-Verzeichnis hatte, es aber root gehörte. Durch Löschen und erneutes Ausgeben des Befehls openssl wurde dieses Problem behoben.

6
Zds

Sie sollten die Umgebungsvariable $ RANDFILE festlegen und/oder die Datei $ HOME/.rnd erstellen. ( OpenSSL FAQ ). (Natürlich sollten Sie Rechte an dieser Datei haben. Andere Antworten hier beziehen sich darauf. Aber zuerst sollten Sie die Datei und einen Verweis darauf haben.)

Bis Version 0.9.6 hat OpenSSL die Seeding-Datei im aktuellen Verzeichnis in die Datei ".rnd" geschrieben. Ab Version 0.9.6a gibt es keine Standard-Seeding-Datei. OpenSSL 0.9.6b und höher verhält sich ähnlich wie 0.9.6a, verwendet jedoch auf Windows-Systemen den Standardwert "C: \" für HOME, wenn die Umgebungsvariable nicht festgelegt wurde.

Wenn die Standard-Seeding-Datei nicht vorhanden oder zu kurz ist, kann die Fehlermeldung "PRNG not seeded" auftreten.

Die Umgebungsvariablen $ RANDFILE und $ HOME/.rnd werden nur von den OpenSSL-Befehlszeilentools verwendet. Anwendungen, die die OpenSSL-Bibliothek verwenden, bieten ihre eigenen Konfigurationsoptionen, um die Entropiequelle anzugeben. Lesen Sie die Dokumentation, die der Anwendung beiliegt.

2
Gangnus