Debian

當我登錄時,它會掛起,直到 crng init 完成

  • August 28, 2019

當我在執行 Debian Unstable 的筆記型電腦上使用 LightDM 登錄時,它最近開始掛起大約 2 分鐘,直到journalctl顯示消息kernel: random: crng init done。當我在鍵盤掛起時按隨機鍵時,它會更快地登錄(大約 10 秒)。在我沒有這個問題之前,有什麼辦法可以解決它嗎?

編輯:使用linux-image-4.15.0-3-amd64而不是linux-image-4.16.0-1-amd64工作,但我不想使用較舊的核心。

由於可用的熵(隨機性)不足,在嘗試從核心獲取隨機數據(即讀取/dev/urandom或呼叫)時,看起來像系統的某些組件。getrandom()

對於為什麼問題取決於特定核心版本或系統上的哪個組件實際阻塞,我沒有現成的解釋,但無論根本原因如何,

事實上,正如 Bigon 在他的回答中指出的那樣,這似乎是 4.16 中引入的核心錯誤:

此錯誤是由此送出中的“crng_init > 0”到“crng_init > 1”更改引入的: https ://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ ?id=43838a23a05fbd13e47d750d3dfd77001536dd33

此更改無意中影響 urandom_read,導致 crng_init==1 狀態被視為未初始化並導致 urandom 阻塞,儘管此狀態存在專門用於支持啟動時的非加密需求: https ://git.kernel.org/pub /scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n1863

恢復 43838a23a05f (“random: fix crng_ready() test”) 修復了錯誤(用 4.16.5-1 測試),但這可能會導致安全問題(43838a23a05f 中提到了 CVE-2018-1108)。我正在測試一個更本地化的修復,它應該更適合上游。

(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572#82)

…不過,您可以嘗試使用havegedrng-tools更快地收集熵。

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