研究人員披露了數十億物聯網(IoT)設備中使用的隨機數生成器嚴重漏洞,這意味著大量用戶面臨潛在攻擊風險。
網絡安全組織Bishop Fox的研究人員Dan Petro和Allan Cecil在上周發表的一項分析中表示:
“事實證明,在物聯網設備中,這些’隨機’選擇的數字并不總是像你希望的那樣隨機,在許多情況下,設備會隨機選擇0或更弱的加密密鑰,這可能導致任何上游服務器出現崩潰,從而面臨安全問題。”
隨機數生成(RNG)是一個支撐加密應用的關鍵過程,其中包括密鑰生成、隨機數和加鹽。在傳統的操作系統中,RNG是由加密安全偽隨機數生成器 (CSPRNG)分化而來,后者使用了高質量種子源中的熵。
在物聯網設備中,系統級芯片(SoC)裝有一個專門的硬件RNG外設,稱為真隨機數生成器(TRNG),用于從物理過程或現象中捕獲“隨機性”。
研究人員指出,當前調用外部設備的方式是不正確的,他們注意到因缺乏對錯誤代碼響應的全面檢查,導致產生的隨機數不是簡單的隨機,更糟糕的是可預測的情況,包含部分熵、未初始化的內存,甚至包含純零的密碼密鑰泄露。
“RNG外圍設備的HAL功能可能因各種原因而失效,但到目前為止最常見的或者說最可利用的設備已經耗盡了熵。硬件RNG外設通過各種方式(如模擬傳感器或電磁場讀數)從宇宙中提取熵,但并不能夠無限供應。”
RNG每秒鐘只能產生這么多的隨機位。如果在RNG HAL函數沒有任何隨機數可以給你的時候調用它,它就會失敗并返回一個錯誤代碼。因此,如果設備試圖過快的獲得太多的隨機數,調用將失敗。
這個是物聯網領域的獨有的問題。因為物聯網設備通常缺乏帶有隨機性API的操作系統(例如,類似Unix的操作系統中的”/dev/random “或Windows中的BCryptGenRandom),研究人員認為與CSPRNG子系統相關的熵池有更大的好處,從而消除了 “熵源中的任何單點故障”。
雖然這些問題可以通過軟件更新來補救,但理想的解決方案是物聯網設備制造商和開發人員從一組不同的熵源中生成CSPRNG API,并確保代碼不會忽略錯誤條件,或在沒有更多的熵可用時能阻止對RNG的調用。
研究人員強調:“這不是一個簡單的漏洞。為了防范這種風險,物聯網操作系統中確實需要一個類似CSPRNG的復雜功能設計。”
A CriticalRandomNumber Generator Flaw Affects Billions of IoT Devices
來源:FreeBuf.COM