回答:
データの取得からの/dev/randomか/dev/urandom明確にされていない問題がさらに悪化すること、それがどうなるすべてはあなたのエントロピープールを枯渇、助けに行きます。これら2つのファイルの主な違いは、カーネルがエントロピーを使い果たした場合でも、urandom品質の低いランダムデータを生成し続け、random新しい高品質のランダムデータを収集できるようになるまでブロックすることです。PGPは、安全なキーを生成するために、可能な限り最高のランダムデータを必要とするため、常にを使用します/dev/random。
あなたの周りの良いランダムなデータを持っている、または別のサーバのからいくつかをエクスポートする場合/dev/random、次のことができcat、それにサーバーの/dev/randomより多くのエントロピーを取得します。あなたはいけcat二回に同じファイル/dev/randomけれども。
エントロピーが不足していることがよくある場合は、havegedのようなものをインストールすることも検討できます。これは、バックグラウンドでエントロピーを再生成し、/dev/random必要に応じて再充填するデーモンです。
また、へのシンボリックリンク/dev/randomを/dev/urandom作成することもできますが、これを使用して生成されたキーは本来よりも安全性が低い可能性があるため、これはセキュリティリスクと見なされます。重要度の低いアプリケーションには役立つかもしれませんが/dev/random、他のユーザーが独自のキーやCSRなどを生成するなど、他のすべての可能な使用を考慮する必要があります。
/dev/randomは、最新のBSDおよびLinuxでの高品質PRNGです。ただし、十分なエントロピーが利用できない場合はブロックされます。反対に、/dev/urandom十分な空きがない場合はブロックしませんが、この場合、ランダム性の品質が低下する可能性があります。詳細には、LinuxとさまざまなBSDの間のランダム実装とurandom実装の間に多くの微妙な点がありますが、上記はすべてのAFAIKに当てはまるはずです。
ping 8.8.8.8別のネットワークホストを所有している場合(たとえば、RTTが100ミリ秒未満の場合)、ホストにpingを実行するだけで、エントロピーをさらに生成できます。および/またはを使用findして、ハードディスク上のファイルを検索し、各ファイル検索の間にRAMキャッシュをフラッシュします。
/dev/randomは、FreeBSDではブロックしません。
dd if=/dev/random of=/tmp/rndtest bs=64M count=1新たに起動してから実行してみてください。64MBのファイルを生成する時間を確認するために2回連続して実行しました。urandomを入力としてこの効果を見ることはないと思っていましたが、Linuxとは異なり、FreeBSDも同様にブロックしているようです。
を使用できますhaveged。
haveged 必要なときにエントロピーを生成するデーモンです。
ローカルマシンでgpgキーを生成することをお勧めします。これは、リモートマシンよりもランダム性がはるかに優れています。次に、SSHを使用してリモートマシンにキーを移行します。
ローカルでの生成はより高速(エントロピーのソースがより多く)で、より安全です(マシンが感染していない場合、誰もプロセスをスパイできず、ランダム性が向上します)。
それでもリモートでそれらを生成したい場合:Linuxでは、ping 8.8.8.8別のネットワークホストを所有している場合、ホストにpingを実行するだけでエントロピーを生成できます(RTTが100ミリ秒未満の場合)。および/またはを使用findして、ハードディスク上のファイルを検索し、各ファイル検索の間にRAMキャッシュをフラッシュします。
インストールすることもできhavegedますが、仮想環境で実行している場合は制限事項をお読みください:https : //wiki.archlinux.org/index.php/Haveged#Virtual_machines
Debianベースのシステムでは、rng-toolsatp-getを使用してパッケージをインストールし、デーモンを起動してエントロピーを生成できます。
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
/dev/random、高品質のPRNGであり、通常はブロックしないことに注意してください。