web-dev-qa-db-ja.com

/root/.rndをRNGにロードできません。どこにありますか、またはどのように作成しますか?

Ubuntuサーバー18.04でOpenVPNを使用してVPNサーバーをセットアップしようとしていますが、EasyRSAを使用してPKI CAを構築したいと考えています。

したがって、ルートとして接続しているときに、EasyRSAスクリプトを起動して、/etc/openvpn/easy-rsaにコピーしました。 ./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

Openssl confingファイル(/etc/openvpn/easy-rsa/openssl-1.0.0.cnf)で、この行が/root/.rndに到達しようとする理由を示しています。

RANDFILE    = $ENV::HOME/.rnd

私がオンラインで読んで理解したことから、.rndは、opensslが乱数を生成するために使用するシードです。奇妙なことに、このエラーが発生しても、RSA秘密キーISスクリプトによって生成されます。シードがないため、ランダムではないのではないかと心配しています。

だから私の問題は次のとおりです:このファイルはシステムに存在せず、/root/にはなく、/home/user/にもありません。これは私の唯一のユーザーであり、find / -name ".rnd"は何も返しません。 find / -iname "*.rnd"でも何も返しません。

そして、私はそれをどのように作成することができるのか、あるいは私がこれをすべて間違っていると理解しているかどうかさえ知りません。

ご助力ありがとうございます。

7
DisplayNeth

このエラーが発生しても、RSA秘密キーISスクリプトによって生成されます

ファイルが存在する必要はありません。 OpenSSLは、初めてそれを独自に作成します。

種がないので、ランダムではないのではないかと心配しています。

OSは、_/dev/urandom_またはgetentropy()CryptGenRandom()などのシステムコールを通じて独自のRNGを使用してシードを提供します。あなたが何か追加のものを提供する必要はありません。

Linuxの_.rnd_が低品質であると見なされた場合(および_/dev/urandom_が生成された場合)、OSが適切なCSPRNGを欠いていた日から、_/dev/random_ファイルは多かれ少なかれ残っていると思います「エントロピー計算」のため、データは非常にゆっくりです。現在はそうではなく、homedir内のファイルに格納されているシードに完全に依存することで、実際にはless安全になります。

4
user1686

OpenSSLは、初めてそれを独自に作成します。

実際、スクリプトを何回起動した場合でも、openssl Randコマンドを直接使用すると、作成されません。

しかし、あなたは正しかった:私はそれらが異なるかどうかを確認するために2つのキーを生成しました。

ご協力ありがとうございました。

1
DisplayNeth