
gpg --genkey
現在、Linux VMでテスト中です。残念ながら、このソフトウェア/dev/random
はエントロピーの収集に頼っているようで、ユーザーに暗号的にランダムな入力を何画面も手動で入力するよう丁寧に求め、最終的にはキーを生成することになります。また、別のファイルをエントロピーソースとして使用するように指示するコマンドラインパラメータは見つかりませんでした(このビデオでまったく同じ問題が発生します...)。
しかし、ユーザーは/dev/urandom
代わりに使用するかどうか自由に選択できるはずです。何も悪いことはないこれは主に、暗号の観点からはより弱い古いPRNGアルゴリズムを思い起こさせるものです。例えば、NetBSD マニュアルページこの区別は、非常に初期のブート段階ではまだ有用である可能性があることを認め、そのような区別を次のように説明しています。「民間伝承」と「空想上の脅威モデルに対してのみ防御する架空の理論」どちらも誰も同意しないこのコマンドに必要なエントロピーの量エントロピーは実際に消費されるものであるという事実もGPG マニュアルページ(「何をしているのか理解していない限り、このコマンドを使用しないでください。システムから貴重なエントロピーが削除される可能性があります。」)。
私は読んだrngd
デーモンをインストールする人々そして、それを/dev/urandom
エントロピー ソースとして使用してフィードするように設定します/dev/random
が、私はそのような方法が非常に不潔であると考えています。
/dev/random
私は、これを削除して代わりにリンクすることで、FreeBSD の方法で問題を回避しようとしました/dev/urandom
:
rm /dev/random
ln -s /dev/urandom /dev/random
これは設定として「/dev/urandom
エントロピー源として信頼しています」。
何らかのエラーが発生するのではないかと心配していましたが、コマンドがすぐに正常に返されるようになったため、期待どおりの結果が得られたようです。
私の質問は次のとおりです:FreeBSD システムでデフォルトで行われるように Linux システムでリンク/dev/random
すると、既知の実際的な誤った副作用はありますか?/dev/urandom
または、何らかのサービスがロックされているために問題が繰り返し発生する場合に備えて、これを永続的に設定すること(たとえば、起動プロセスの最後にあるスクリプト内)を想定することはできますか/dev/random
?
答え1
見るウランダムに関する神話ただし、/dev/urandom に対する攻撃は、/dev/random に対する攻撃にもなり得ないことは知られています。Linux システムの主な問題は、クローン作成後に保存されたエントロピー プールをリセットせずに、複数の VM としてクローン作成して実行する場合です。これは、必要なことと関係のない稀なケースです。
答え2
一つ違うのは/dev/random
、エントロピー プールが使用された後に出力が停止することです。これを試してください:
$ cat /dev/random
(a few short lines of gibberish)^C
$
/dev/urandom
ただし、出力を継続するために同じプールを再利用します。以下に示すように:
$ cat /dev/urandom
(tons of gibberish fills the screen)^C
$
(これらの特殊なデバイスを cat しようとすると、プロンプトがおかしくなる場合があります。入力しreset
て Enter すると、ターミナルは正常に戻ります)
/dev/urandom
一定の「ランダムな」ビットの流れで何かを埋める必要がある場合に使用します。/dev/random
完全にランダムである必要があるキーに使用します。
答え3
Linuxでは、/dev/random
高品質のランダムビットを生成します。これらは、ない予測可能でない繰り返し可能な、マシン外部のランダムデータ。対照的に、 (利用可能な場合)/dev/urandom
と同じランダムデータを使用し/dev/random
、存在しない場合は疑似乱数ジェネレータを使用します。決定論的ほとんどの場合、それは予測不可能ですが、ない暗号化のような要求の厳しいアプリケーションには適していますが、GPG のような長期間有効なキーの作成にはあまり適していません。