Linux-Kernel

Linux中的隨機錯誤

  • September 24, 2013

前段時間,我記得讀過一篇關於計算中的隨機化的文章,以及你實際上可以使系統變得多麼*隨機。*這篇文章的出現,如果我沒記錯的話,是因為程式碼中的一些看似微小的變化,但卻導致了一個很大的安全漏洞。

我找不到那篇文章,也不記得它具體是什麼錯誤。搜尋網路時只能模糊地回憶起幾年前修復的一些錯誤,結果證明比我想像的要難。但是,我確實找到了這個。它似乎符合描述,但僅涉及 openssl。

我想知道這個錯誤是否比 openssl 中的隨機數更廣泛,並且實際上弄亂了整個熵池。如果這個錯誤與熵池無關,那麼:是否有過這樣的錯誤(導致熵顯著減少,從而導致可預測的隨機化)?如果是這樣,我想知道哪些發行版是/易受攻擊的,以及在哪裡可以找到這些錯誤的報告。

如果不存在這樣的錯誤…我度過了一個可怕的夜晚(失眠),眾所周知,這會導致人們產生幻覺和妄想…請原諒我。

它可能關心的人:

我問這個的原因是因為我正在編寫一些程式碼,並且我們已經收到了很多Higgs-Bugson錯誤報告。我們一直在研究可能導致某些問題的原因,它只是與可預測的隨機化有關。

鑑於我很遺憾不是為開源公司工作,並且必須簽署 NDA,因此我不能透露太多細節。

軟體隨機數生成器不是系統中熵的唯一來源。實際上,它們根本不是熵源——軟體 RNG使用外部熵源為系統提供熵。真正的來源始終是物理的(無論是專用硬體 RNG、溫度感測器、音頻輸入、網路數據包的計時、使用者輸入,甚至是 CPU 的內部狀態(對於虛擬 CPU 而言,這在某種意義) - 你的名字)。

現在至於你的問題:正如 Mat 在他的評論中提到的那樣,大多數錯誤都是由於草率的設計/編碼(/測試)造成的——我什至可以說這是 100%。我的猜測是您的程式碼正在經歷某種處理不當的競爭條件(如果有的話)。所以從某種意義上說,它與熵有關(因為競爭條件是隨機事件)。至少,將它歸咎於 RNG 是一個相當大膽的聲明——除非你使用隨機數來觸發它,在這種情況下它看起來更像是一個特性。

順便說一句,如果一個損壞的 RNG 是你的問題的原因,你實際上會很容易地看到它們。關於 Debian OpenSSL 錯誤——我認為除了基於 Debian 的發行版(包括 Ubuntu)之外,沒有任何其他發行版受到它的影響。然而,從它最初是如何發生的角度來看,這個錯誤本身就很有教育意義。

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