VMリモートでログオンして、4096ビットのPGPキーを生成しようとしています。エントロピーがないため、永久にハングします。リモートデスクトップで作業しているため、おそらく検出されません。エントロピーとしてのマウスの動き。
どうすれば生成できますか?
私は試した cat /dev/urandom > /dev/null
しかし、それは役に立ちません。
/dev/random
または/dev/urandom
のデータの取得outは、間違いなくではありません役立つでしょう。エントロピープールを使い果たすだけで、問題はさらに悪化します。これら2つのファイルの主な違いは、カーネルがエントロピーを使い果たした場合でも、urandom
は品質の低いランダムデータを生成し続け、random
は新しい高品質のランダムデータを収集できるようになるまでブロックすることです。データ。 PGPは安全な鍵を生成するために可能な限り最高のランダムデータを必要とするため、常に/dev/random
を使用します。
適切なランダムデータがある場合、または別のサーバーの/dev/random
からデータをエクスポートする場合は、サーバーのcat
itinto/dev/random
より多くのエントロピーを取得します。ただし、同じファイルを/dev/random
に2回cat
することはできません。
エントロピーが不足していることがよくある場合は、バックグラウンドでエントロピーを再生成し、必要に応じて/dev/random
を再入力するデーモン haveged のようなものをインストールすることもできます。
また、/dev/random
から/dev/urandom
へのシンボリックリンクを作成するのも魅力的ですが、これを使用して生成されたキーは必要以上に安全でない可能性があるため、セキュリティリスクと見なす必要があります。重要性の低い1つのアプリケーションには役立ちますが、/dev/random
の可能な他のすべての使用を検討する必要があります。これには、他のユーザーが独自のキーやCSRなどを生成することも含まれます。
haveged
を使用できます。
haveged
は、必要なときにエントロピーを生成するデーモンです。
リモートマシンよりもランダム性がはるかに優れているローカルマシンでgpgキーを生成することをお勧めします。次に、SSHを使用してリモートマシンにキーを移行します。
ローカルでの生成はより速く(エントロピーのより多くのソース)、より安全になります(マシンが感染していない場合、誰もプロセスをスパイできないため、ランダム性が向上します)。
それでもリモートで生成したい場合:Linuxでは、ホストにpingを送信するだけでエントロピーを生成できます(例:ping 8.8.8.8
)別のネットワークを所有している場合ホストは100msごとにpingを実行しようとします(RTTがもちろん100ms未満の場合)。またはfind
を使用してハードディスク上のファイルを検索し、各ファイル検索の間にRAMキャッシュをフラッシュします。
haveged
をインストールすることもできますが、仮想環境で実行している場合は制限事項をお読みください: https://wiki.archlinux.org/index.php/Haveged#Virtual_machines
Debianベースのシステムでは、atp-getを使用してrng-tools
パッケージをインストールしてから、デーモンを起動してエントロピーを生成できます。
echo HRNGDEVICE=/dev/urandom >> /etc/default/rng-tools && service rng-tools restart
CentOS-6サーバーでは、rng
デーモンが基本ツールの1つとしてインストールされ(少なくとも、私が取り組んでいるほとんどのシステムでは)、次のコマンドを実行して起動できます。エントロピーを生成するには:
sed -i \'s|EXTRAOPTIONS=\"\"|EXTRAOPTIONS=\"-r /dev/urandom\"|g\' /etc/sysconfig/rngd && service rngd restart
Sudo yum install haveged && Sudo systemctl start haveged
間違いなくCentOS 7.2 VMで動作します。束を作成していて、キーリングをそのままにしたい場合は、VMにGPGキーを作成したい場合があります。