web-dev-qa-db-ja.com

PGP鍵のエントロピーを生成する

VMリモートでログオンして、4096ビットのPGPキーを生成しようとしています。エントロピーがないため、永久にハングします。リモートデスクトップで作業しているため、おそらく検出されません。エントロピーとしてのマウスの動き。

どうすれば生成できますか?

私は試した cat /dev/urandom > /dev/nullしかし、それは役に立ちません。

12
redic

/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などを生成することも含まれます。

13

havegedを使用できます。

havegedは、必要なときにエントロピーを生成するデーモンです。

9
Sylvain Firmery

リモートマシンよりもランダム性がはるかに優れているローカルマシンで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

4
Huygens

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
3
Andrew
Sudo yum install haveged && Sudo systemctl start haveged

間違いなくCentOS 7.2 VMで動作します。束を作成していて、キーリングをそのままにしたい場合は、VMにGPGキーを作成したい場合があります。

1
init0