《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 你信嗎,?一個(gè)關(guān)鍵的隨機(jī)數(shù)發(fā)生器漏洞就會(huì)影響數(shù)十億物聯(lián)網(wǎng)設(shè)備?

你信嗎?一個(gè)關(guān)鍵的隨機(jī)數(shù)發(fā)生器漏洞就會(huì)影響數(shù)十億物聯(lián)網(wǎng)設(shè)備,?

2021-08-15
來(lái)源:網(wǎng)空閑話(huà)

  數(shù)十億物聯(lián)網(wǎng)設(shè)備使用的硬件隨機(jī)數(shù)生成器存在嚴(yán)重漏洞,無(wú)法正常生成隨機(jī)數(shù),,導(dǎo)致設(shè)備安全性下降,,面臨攻擊風(fēng)險(xiǎn)。

  Bishop Fox研究人員稱(chēng),,這個(gè)漏洞影響了整個(gè)物聯(lián)網(wǎng)行業(yè),。關(guān)鍵是漏洞并不存在于單個(gè)設(shè)備的SDK或任何特定的SoC實(shí)現(xiàn)。物聯(lián)網(wǎng)需要一個(gè)偽隨機(jī)數(shù)生成器(CSPRNG)子系統(tǒng),。這個(gè)問(wèn)題不能僅僅通過(guò)更改文檔和責(zé)備用戶(hù)來(lái)解決,。對(duì)于這樣一個(gè)CSPRNG子系統(tǒng)來(lái)說(shuō),最優(yōu)雅的地方是在一個(gè)日益流行的物聯(lián)網(wǎng)操作系統(tǒng)中,。如果您正在從頭開(kāi)始設(shè)計(jì)一個(gè)新設(shè)備,,建議在操作系統(tǒng)中實(shí)現(xiàn)一個(gè)CSPRNG,。自己編寫(xiě)RNG代碼應(yīng)該被認(rèn)為是危險(xiǎn)的,就像加密代碼一樣,。不管你有多聰明,,永遠(yuǎn)不要自己編寫(xiě)與RNG硬件接口的代碼。你幾乎肯定會(huì)弄錯(cuò),。相反,,您應(yīng)該使用由較低抽象層提供的CSPRNG子系統(tǒng)。不要直接從RNG硬件中使用熵,??偟膩?lái)說(shuō),硬件RNG不適合(立即)加密使用,。弱熵可以也應(yīng)該通過(guò)軟件,,通過(guò)cspring來(lái)修復(fù)。

  “事實(shí)證明,,當(dāng)涉及物聯(lián)網(wǎng)設(shè)備時(shí),,這些‘隨機(jī)’選擇的數(shù)字CSPRNG并不總是像你希望的那樣隨機(jī),”Bishop Fox研究人員丹·彼得羅和艾倫·塞西爾在上周發(fā)表的一份分析報(bào)告中說(shuō),?!笆聦?shí)上,在很多情況下,,設(shè)備選擇的加密密鑰是0或更糟,。這可能會(huì)導(dǎo)致任何上游應(yīng)用的安全性崩潰?!?/p>

  隨機(jī)數(shù)生成(RNG)是一個(gè)至關(guān)重要的過(guò)程,,它支持多個(gè)加密應(yīng)用程序,包括密鑰生成,、nonces和salt,。在傳統(tǒng)的操作系統(tǒng)上,它來(lái)自一個(gè)加密安全的偽隨機(jī)數(shù)生成器(CSPRNG),,該生成器使用從高質(zhì)量種子源獲得的熵,。

  當(dāng)涉及到物聯(lián)網(wǎng)設(shè)備時(shí),這是由一個(gè)片上系統(tǒng)(SoC)提供的,,它包含一個(gè)專(zhuān)用的硬件RNG的外圍設(shè)備,,稱(chēng)為真正的隨機(jī)數(shù)生成器(TRNG),用于從物理進(jìn)程或?qū)]嬕魳?lè)(phenomenа)中捕獲隨機(jī)性,。

  研究人員指出當(dāng)前調(diào)用外圍設(shè)備的方式是不正確的,,缺乏對(duì)錯(cuò)誤代碼響應(yīng)的全面檢查,導(dǎo)致產(chǎn)生的隨機(jī)數(shù)不是簡(jiǎn)單的隨機(jī),更糟糕的是可預(yù)測(cè)的,,導(dǎo)致部分熵,,未初始化的內(nèi)存,甚至包含純零的加密密鑰,。

  研究人員指出:“RNG外圍設(shè)備的HAL功能可能會(huì)因各種原因失效,,但到目前為止最常見(jiàn)的(也是可利用的)是設(shè)備的熵耗盡?!庇布NG外設(shè)通過(guò)各種方式(如模擬傳感器或EMF讀數(shù))將熵從宇宙中提取出來(lái),但并不是無(wú)限供應(yīng)的,。

  “它們每秒只能產(chǎn)生這么多隨機(jī)比特,。如果你嘗試調(diào)用RNG HAL函數(shù)時(shí),它沒(méi)有任何隨機(jī)數(shù)給你,,它將失敗并返回一個(gè)錯(cuò)誤代碼,。因此,如果設(shè)備試圖快速獲取太多隨機(jī)號(hào)碼,,呼叫就會(huì)開(kāi)始失敗,。”

  這個(gè)問(wèn)題是物聯(lián)網(wǎng)領(lǐng)域特有的,,因?yàn)樗鼈內(nèi)狈νǔв须S機(jī)API的操作系統(tǒng)(例如,,在類(lèi)unix操作系統(tǒng)中是“/dev/random”,在Windows中是BCryptGenRandom),,研究人員強(qiáng)調(diào)了與CSPRNG子系統(tǒng)相關(guān)聯(lián)的更大熵池的好處,,這樣就消除了“熵源中的任何單點(diǎn)故障”。

  雖然可以矯正軟件更新的問(wèn)題,,理想的解決方案是物聯(lián)網(wǎng)設(shè)備制造商和開(kāi)發(fā)商包括CSPRNG API的種子從一組不同的熵源并確保代碼沒(méi)有忽略錯(cuò)誤條件,,或未能阻止調(diào)用RNG當(dāng)沒(méi)有更多的熵是可用時(shí)。

  研究人員說(shuō):“這個(gè)漏洞的難點(diǎn)之一是,,它不是一個(gè)簡(jiǎn)單的‘你在應(yīng)該曲折的地方曲折了’的情況,,可以很容易地修補(bǔ)?!彼麄儚?qiáng)調(diào)了在物聯(lián)網(wǎng)操作系統(tǒng)中實(shí)現(xiàn)CSPRNG的必要性,。“為了解決這個(gè)問(wèn)題,,必須在物聯(lián)網(wǎng)設(shè)備中設(shè)計(jì)一個(gè)實(shí)質(zhì)性和復(fù)雜的功能,。”

  最后,,研究人員建議:

  對(duì)設(shè)備所有者而言:

  留意更新,,并確保在它們可用時(shí)應(yīng)用它們。這是一個(gè)可以用軟件解決的問(wèn)題,但可能需要一些時(shí)間,。與此同時(shí),,要小心不要太相信你的物聯(lián)網(wǎng)設(shè)備。對(duì)于需要連接互聯(lián)網(wǎng)的家用設(shè)備,,把它們放在一個(gè)只能連接到外部的專(zhuān)用網(wǎng)絡(luò)段,。這將有助于防止任何漏洞蔓延到你的網(wǎng)絡(luò)。

  對(duì)物聯(lián)網(wǎng)設(shè)備開(kāi)發(fā)人員而言:

  如果可能,,請(qǐng)選擇包含從包括硬件 RNG 在內(nèi)的各種熵源中播種的 CSPRNG API 的物聯(lián)網(wǎng)設(shè)備,。如果沒(méi)有可用的 CSPRNG 并且您別無(wú)選擇,請(qǐng)仔細(xì)檢查您所依賴(lài)的庫(kù)以及您自己的代碼,,以確保您沒(méi)有使用從未初始化的內(nèi)存讀取,、忽略硬件 RNG 外設(shè)寄存器或錯(cuò)誤的代碼條件,或者在沒(méi)有更多可用熵時(shí)無(wú)法阻塞,。仔細(xì)考慮阻塞不是可行選項(xiàng)的實(shí)時(shí)情況的影響,。

  對(duì)設(shè)備制造商/物聯(lián)網(wǎng)操作系統(tǒng)而言:

  在SDK中棄用和/或禁用任何直接使用RNG HAL函數(shù)。相反,,要包含一個(gè)CSPRNG API,,該API使用健壯的、不同的熵源和適當(dāng)?shù)挠布NG處理,。Linux內(nèi)核的/dev/urandom實(shí)現(xiàn)可以作為一個(gè)很好的參考,。




電子技術(shù)圖片.png

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話(huà):010-82306118;郵箱:[email protected],。