web-dev-qa-db-ja.com

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

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

ただし、ユーザーは_/dev/urandom_を使用することを自由に選択できるはずです。なぜなら、 何も問題はありません だからです。これは主に、暗号化の観点から見るとより弱かった古いPRNGアルゴリズムの思い出として存在します。たとえば、 NetBSDのマンページ は、区別がまだ可能であることを認めています非常に早いブート段階で有用であり、 "民間伝承"および "ファンタジーの脅威モデルに対してのみ防御する仮想理論"このコマンドに必要なエントロピーの量 にも同意しません GPGマンページ "あなたが何をしているかを知らない限り、このコマンドを使用しないでください。システムから貴重なエントロピーが削除される可能性があります!")。

私は rngdデーモンをインストールする人々 について読んで、_/dev/urandom_をエントロピーソースとして使用して_/dev/random_をフィードするように設定しましたが、そのような習慣は非常に汚いことがわかりました。

FreeBSDの方法で_/dev/random_を削除し、代わりに_/dev/urandom_にリンクすることで、問題を回避しようとしました:

_rm /dev/random
ln -s /dev/urandom /dev/random
_

これは、「エントロピーソースとして_/dev/urandom_を信頼する」を伝える設定と見なします。

なんらかのエラーが発生するのではないかと心配しましたが、コマンドがすぐに正常に戻るようになったため、これは期待どおりの結果をもたらしているようです。

私の質問は:Linuxシステムで_/dev/random_を_/dev/urandom_にリンクすると、FreeBSDシステムではデフォルトで行われるように、既知の実用的で間違った副作用がありますか?または、サービスをロックする_/dev/random_が原因で繰り返し問題が発生する場合に、これを永続的に(たとえば、ブートプロセスの最後にあるスクリプトで)設定することを想定できますか?

13
WhiteWinterWolf

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

2
Walter

さて、/dev/randomは、エントロピープールが使用された後に出力を停止することです。これを試して:

$ cat /dev/random
(a few short lines of gibberish)^C
$ 

/dev/urandomただし、同じプールを再利用して出力を続行します。ここに示すように:

$ cat /dev/urandom
(tons of gibberish fills the screen)^C
$

(これらの特別なデバイスを猫にしようとすると、プロンプトがめちゃくちゃになる可能性があります。resetと入力して入力するだけで、ターミナルが通常の状態に戻ります)

使用する /dev/urandom「ランダム」ビットの一定の流れで何かを満たす必要がある場合。使用する /dev/random完全にランダムである必要があるキー。

0
Daniel