在 Linux 上將 /dev/random 連結到 /dev/urandom 是錯誤的嗎?
我目前正在
gpg --genkey
Linux 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
您需要絕對隨機的鍵。