Linux

在 Linux 上將 /dev/random 連結到 /dev/urandom 是錯誤的嗎?

  • August 31, 2018

我目前正在gpg --genkeyLinux VM 上進行測試。不幸的是,該軟體似乎依賴於/dev/random收集熵並禮貌地要求使用者在密碼隨機輸入螢幕之後手動鍵入螢幕,因此它最終可能最終生成一個密鑰,我發現沒有命令行參數可以告訴它使用另一個文件作為熵源(這個影片中的人遇到了同樣的問題……)。

但是,使用者應該可以自由選擇使用它,/dev/urandom因為它沒有任何問題。它主要是為了回憶舊的 PRNG 算法,從密碼學的角度來看,這些算法較弱。例如,雖然NetBSD 聯機幫助頁承認這種區別在很早的啟動階段可能仍然有用,但它將這種區別描述為*“民間傳說”“僅防禦幻想威脅模型的虛構理論”。沒有人同意此命令所需的熵量,也沒有人同意熵是實際消耗的東西,如GPG 聯機幫助頁中所述(“請,除非您知道自己在做什麼,否則不要使用此命令,它可能會從系統中刪除寶貴的熵!”* )。

我已經閱讀了有關安裝rngd守護程序並將其配置為/dev/urandom用作 feed 的熵源的資訊/dev/random,但我發現這種做法非常骯髒。

我嘗試通過刪除/dev/random並將其連結到FreeBSD 方式來解決此問題/dev/urandom

rm /dev/random
ln -s /dev/urandom /dev/random

我認為這是一個告訴*“我信任/dev/urandom作為熵源”*的設置。

我擔心我會遇到某種錯誤,但這似乎提供了預期的結果,因為命令現在立即成功返回。

我的問題是:在 Linux 系統上鍊接到預設情況下在 FreeBSD 系統上是否有任何已知的、實際的和錯誤的副作用?/dev/random``/dev/urandom/dev/random或者如果由於鎖定某些服務而出現重複問題,是否可以設想永久設置它(例如在啟動過程結束時的腳本中) ?

請參閱有關 urandom 的神話,沒有已知的對 /dev/urandom 的攻擊,也不會是對 /dev/random 的攻擊。Linux 系統的主要問題是當它複製並作為多個 VM 執行時,沒有在複製後重置保存的熵池。這是一個與您想要的相切的極端案例。

不同的/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您需要絕對隨機的鍵。

引用自:https://unix.stackexchange.com/questions/261778