/root/.rnd kann nicht in RNG geladen werden: Wo kann ich es finden oder wie erstelle ich es?

/root/.rnd kann nicht in RNG geladen werden: Wo kann ich es finden oder wie erstelle ich es?

Ich versuche, einen VPN-Server mit OpenVPN auf einem Ubuntu Server 18.04 einzurichten, und möchte EasyRSA zum Erstellen meiner PKI-CA verwenden.

Während ich als Root angemeldet bin, starte ich die EasyRSA-Skripte, die ich nach kopiert habe . Mit und /etc/openvpn/easy-rsafunktioniert alles einwandfrei , aber wenn ich versuche, zu starten , erhalte ich diese Fehlermeldung:./clean-all./build-dh./pkitool --initca

Can't load /root/.rnd into RNG
140171234709952:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/root/.rnd

In der OpenSSL-Konfigurationsdatei ( /etc/openvpn/easy-rsa/openssl-1.0.0.cnf) finde ich diese Zeile, die angibt, warum versucht wird, Folgendes zu erreichen /root/.rnd:

RANDFILE    = $ENV::HOME/.rnd

Soweit ich es online gelesen und verstanden habe, .rndhandelt es sich um einen Seed, den OpenSSL zur Generierung von Zufallszahlen verwendet. Das Seltsame ist: Obwohl ich diesen Fehler erhalte, WIRD der private RSA-Schlüssel vom Skript generiert. Ich befürchte nur, dass er nicht zufällig ist, da ihm ein Seed fehlt.

Mein Problem ist also: Diese Datei existiert auf meinem System nicht, sie befindet sich nicht in /root/, nicht in , /home/user/dem einzigen anderen Benutzer, und find / -name ".rnd"gibt nichts zurück. Gibt nicht einmal find / -iname "*.rnd"etwas zurück.

Und ich weiß nicht einmal, wie ich es erstellen kann oder ob ich das alles falsch verstanden habe.

Antwort1

obwohl ich diesen Fehler erhalte, WIRD der private RSA-Schlüssel vom Skript generiert

Die Datei muss nicht vorhanden sein; OpenSSL erstellt sie nach dem ersten Mal selbstständig.

Ich befürchte nur, dass es nicht zufällig ist, da ein Seed fehlt.

Das Betriebssystem stellt den Seed mithilfe seines eigenen RNG bereit, /dev/urandomoder zwar über Systemaufrufe wie getentropy()oder CryptGenRandom(). Sie müssen nichts weiter angeben.

Ich würde vermuten, dass die .rndDatei mehr oder weniger ein Überbleibsel aus der Zeit ist, als dem Betriebssystem ein guter CSPRNG fehlte, möglicherweise als Linux /dev/urandomals minderwertig galt (und /dev/randomaufgrund der „Entropiebuchhaltung“ sehr langsam Daten produzierte). Jetzt ist dies nicht mehr der Fall, und sich vollständig auf einen Seed zu verlassen, der in einer Datei in Ihrem Homedir gespeichert ist, wäre tatsächlichwenigersicher.

Antwort2

Erstellen Sie eine im erwarteten Pfad

cd ~/; openssl rand -writerand .rnd

Antwort3

OpenSSL erstellt es nach dem ersten Mal selbstständig.

Tatsächlich ist dies nicht der Fall. Egal, wie oft ich das Skript starte oder ob ich einfach versuche, den openssl randBefehl direkt zu verwenden, es wird nie erstellt.

Aber Sie hatten Recht: Ich habe zwei Schlüssel generiert, um zu prüfen, ob sie unterschiedlich waren, und das war der Fall.

Ich danke Ihnen für Ihre Hilfe.

Antwort4

Beachten Sie die Zeile RANDFILE in /etc/ssl/openssl.conf mehr

verwandte Informationen