Linuxで/ dev / randomを/ dev / urandomにリンクするのは間違っていますか?


13

現在gpg --genkey、Linux VMでテストしています。残念ながら、このソフトウェアは/dev/randomエントロピーを収集することに依存しているようで、暗号的にランダムな入力の画面の後に手動で画面を入力するようにユーザーに丁寧に要求するため、最終的にキーを生成することになり、伝えるためのコマンドラインパラメーターが見つかりませんでしたエントロピーのソースとして別のファイルを使用するために(このビデオの男はまったく同じ問題に遭遇します...)。

ただし、ユーザーは何も問題がない/dev/urandomため、代わりに使用することを自由に選択できます。これは主に、暗号化の観点からは弱かった古いPRNGアルゴリズムの回想として存在します。たとえば、NetBSDのマンページは、この区別が非常に早いブート段階でまだ有用であることを認めていますが、「フォークロア」「幻想的な脅威モデルに対してのみ防御する想像上の理論などの区別について説明しています。このコマンドに必要なエントロピーの量や、エントロピーがGPGマンページに記載されているように実際に消費されるものであるという事実に誰も同意しません(「何をしているのかわからない限り、このコマンドを使用しないでください。システムから貴重なエントロピーが削除される可能性があります!」)。

私はデーモンインストールする人々rngdについて読み、それを/dev/urandomfeedへのエントロピーソースとして使用するように設定しました/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何らかのサービスのロックによる繰り返しの問題の場合に、これを永続的に設定することを想定できますか(たとえば、ブートプロセスの最後のスクリプトで)。

回答:


2

urandomについての神話を参照してください。/dev/urandomに対する既知の攻撃はなく、/ dev / randomに対する攻撃にもなりません。Linuxシステムの主な問題は、クローン後に保存されたエントロピープールをリセットせずに、複数のVMとしてクローンを作成して実行する場合です。それはあなたが望むものに接するコーナーケースです。


0

異なる点/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入力するだけで、端末は通常に戻ります)

/dev/urandom「ランダムな」ビットの一定の流れで何かを埋める必要がある場合に使用します。/dev/random絶対にランダムにする必要があるキーに使用します。


3
OPの質問は、FreeBSDシステムでデフォルトで行われているように、Linuxシステムで/ dev / randomを/ dev / urandomにリンクすることで、既知の実用的で間違った副作用がありますか?
カウンター

興味深いことに、違いがこれほど顕著であれば、それらをリンクすべきではありません。他のほとんどの議論は、ブート後に差異がないというコンセンサスに最終的に到達しますが、この動作はより長く続く差異を示す可能性があります。
-KalleMP

-2

Linuxでは、/dev/random高品質のランダムビットを提供します。彼らは、ある情報源から得られていない予測可能でないマシンへの外部、繰り返し可能。対照的に、(利用可能な場合)/dev/urandomと同じランダムデータを/dev/random使用し、ない場合は、決定論的な擬似乱数ジェネレーターを使用します。ほとんどの目的のために、それは十分に予測できませんが、暗号化のような非常に要求の厳しいアプリケーションのためではなく、GPGのような長命のキーを作成するためのはるかに少ないです。



パラノイアの程度に依存する@Gilles。GPGの場合、誰もが(間接的に)キーの影響を受けます。
フォンブランド

5
を信頼しない場合は/dev/urandom、GPGを信頼する理由もありません。
ジル 'SO-悪であるのをやめる'

3
@vonbrand:私の妄想度に応じて、ランダムに生成するために数学的にチェックされたPRNGから選択するか、ユーザーが「asdfghasdfghasdfgh」のフルスクリーンを入力するように強制する場合、ソフトウェアPRNGを選択します。コンピューターはランダム性を生成するのが得意ではないが、人間はそれをさらに悪化させるという点を理解しています。それにもかかわらず、urandomrandom討論を除いて私の質問に戻って、/dev/randomファイルをリンクで置き換えることは他の副作用がなく、rngd私が言及したトリックの実行可能な代替物であることを確認しますか?
-WhiteWinterWolf

2
これは間違っています。それらは同じRNGを使用しますが、エントロピーが十分でないと推測される場合はランダムブロックになります。
ダンカンXシンプソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.