今天,閃電般快速、日益互聯(lián)的世界為我們提供了為我們每天使用的嵌入式系統(tǒng)顯著增加價值的機(jī)會。
當(dāng)今快如閃電、日益互聯(lián)的世界為我們提供了為我們每天使用的嵌入式系統(tǒng)顯著增加價值的機(jī)會。然而,同樣的連接也可能對作為嵌入式系統(tǒng)基礎(chǔ)的物聯(lián)網(wǎng)應(yīng)用程序和設(shè)備的完整性構(gòu)成威脅。解決方案?更智能、更安全的設(shè)計(jì)。一旦奠定了堅(jiān)實(shí)的基礎(chǔ),連接互聯(lián)網(wǎng)的嵌入式和物聯(lián)網(wǎng)設(shè)備就可以確保長期安全并保護(hù)網(wǎng)絡(luò),即使個別節(jié)點(diǎn)受到損害。為了達(dá)到所需的安全級別,必須預(yù)測和解決多種威脅:實(shí)現(xiàn)這一目標(biāo)的一個很好的工具是 Microsoft 的 Azure Sphere 及其嵌入式 Pluton 安全子系統(tǒng)。
物聯(lián)網(wǎng)安全要點(diǎn)
物聯(lián)網(wǎng)設(shè)備安全的一個基本要求是確保系統(tǒng)正確集成。由于黑客是出了名的足智多謀,并且樂于利用任何和所有弱點(diǎn),因此必須保護(hù)設(shè)備免受未經(jīng)授權(quán)的修改和入侵。智能 OEM 可以通過分層安全性降低其對受損系統(tǒng)的脆弱性。例如,黑客用來滲透系統(tǒng)的一種常用機(jī)制是緩沖區(qū)溢出。它允許黑客利用存儲在內(nèi)存之外并分配到網(wǎng)絡(luò)緩沖區(qū)的數(shù)據(jù),這有時會導(dǎo)致代碼被目標(biāo)系統(tǒng)無意中執(zhí)行。從黑客的角度來看,這是個好消息。它不僅提供了他們可以上傳新的可執(zhí)行映像的點(diǎn),
安全啟動機(jī)制是避免此問題的好方法。它通過確保只有授權(quán)方提供的可執(zhí)行文件能夠運(yùn)行來提供關(guān)閉潛在攻擊的方法。實(shí)現(xiàn)安全引導(dǎo)機(jī)制的一個基本要求是非易失性內(nèi)存區(qū)域在制造后被視為只讀 - 這包含引導(dǎo)加載程序代碼,該代碼強(qiáng)制處理器檢查加載到系統(tǒng)中的引導(dǎo)映像的完整性。如果完整性檢查失敗,則設(shè)備將無法啟動,直到提供有效的啟動映像。有效的完整性檢查將制造商 ID 與設(shè)備自己的 ID 相結(jié)合,確保加載到閃存中以供下次啟動使用的代碼使用使用本地存儲的唯一 ID 生成的哈希進(jìn)行簽名。為防止可能用于查找此 ID 的攻擊,
硬件信任根
對于設(shè)計(jì)界的所有成員來說,安全性正日益成為一個重要問題。例如,在最近的一次路測審查中,element14 社區(qū)成員 David Long 指出 Pluton 安全子系統(tǒng)的信任根是作為 Azure Sphere 模塊的核心部分實(shí)現(xiàn)的,可通過 Newark 獲得,這是關(guān)鍵功能之一。
硬件信任根是運(yùn)行安全敏感操作的受保護(hù)區(qū)域。它通過實(shí)現(xiàn)對片上代碼和數(shù)據(jù)存儲器具有唯一訪問權(quán)限的安全處理器來提供針對物理篡改和遠(yuǎn)程攻擊的保護(hù)。加密密鑰和其他安全數(shù)據(jù)存儲在這些區(qū)域中,并且信任根被配置為不允許從外部訪問這些元素。安全處理器通常由加密處理器和真隨機(jī)數(shù)生成器 (TRNG) 支持,以加速這些操作和真隨機(jī)數(shù)生成器 (TRNG),該生成器用于生成在信任根之外運(yùn)行的軟件和系統(tǒng),以確定它們是否應(yīng)該有權(quán)訪問系統(tǒng)資源。
有了硬件信任根,設(shè)備不僅有可能保護(hù)自己和它發(fā)送的任何數(shù)據(jù),而且可以證明它是向云中的其他物聯(lián)網(wǎng)設(shè)備或服務(wù)器發(fā)送可信數(shù)據(jù)的合法設(shè)備。這反過來又有助于提高安全性,因?yàn)樵O(shè)備可以拒絕與任何沒有可接受憑據(jù)的網(wǎng)絡(luò)連接設(shè)備互動。這也降低了緩沖區(qū)溢出和類似攻擊首先通過的可能性。Pluton 安全子系統(tǒng)有助于控制本身可能受到損害的外圍設(shè)備的操作。處理器內(nèi)的防火墻可防止對敏感功能的未經(jīng)授權(quán)的訪問以及潛在黑客使用假冒外圍設(shè)備接管系統(tǒng)的企圖。
軟件或遠(yuǎn)程設(shè)備可以通過證明來證明其身份或真實(shí)性。通常,這是在基于公鑰基礎(chǔ)設(shè)施 (PKI) 機(jī)制的協(xié)議的幫助下處理的。在 PKI 下,消息使用公鑰加密,可以在不損害協(xié)議的情況下自由分發(fā),因?yàn)橹挥邢鄳?yīng)的私鑰才能解密消息。此類私鑰將存儲在信任的安全內(nèi)存的硬件根中,并且通常在制造過程中加載。
通信安全
當(dāng)設(shè)備想要建立通信或證明其身份時,它將使用協(xié)議來使用這些私鑰中的一個或多個生成證書和簽名。簽名和認(rèn)證協(xié)議將隨機(jī)值(理想情況下在 TRNG 的幫助下創(chuàng)建)與私鑰相結(jié)合,以創(chuàng)建會話密鑰等值,會話密鑰在短時間內(nèi)使用一次,然后被丟棄,以避免黑客攔截消息并重新創(chuàng)建他們在所謂的重放攻擊。一旦創(chuàng)建,PKI 協(xié)議確保私鑰永遠(yuǎn)不需要在安全區(qū)域之外訪問。
在 Azure Sphere 的情況下,兩個核心私鑰是由設(shè)備上的 Pluton 子系統(tǒng)在制造過程中生成的,之后甚至無法被軟件直接讀取。從私鑰派生的所有消息都是由 Pluton 子系統(tǒng)中的加密處理器創(chuàng)建的。這彌補(bǔ)了許多系統(tǒng)中的關(guān)鍵弱點(diǎn),在這些系統(tǒng)中,私鑰是在外部生成并編程到設(shè)備中,從而產(chǎn)生了攔截的可能性。
下一個問題是確定設(shè)備首次出現(xiàn)在網(wǎng)絡(luò)中時密鑰是否有效。Azure Sphere 通過生成匹配的公鑰來實(shí)現(xiàn)這一點(diǎn):一個用于證明,一個用于用戶定義的安全服務(wù)。這些公鑰在制造時提供給 Microsoft,供其 Azure 云服務(wù)使用。設(shè)備中還存儲了使用 PKI 機(jī)制生成的數(shù)字證書,用于檢查聲稱來自 Azure 服務(wù)器的消息。
當(dāng) Azure Sphere 設(shè)備連接到云時,它會根據(jù)存儲在安全內(nèi)存中的 Azure 創(chuàng)建的證書檢查消息來驗(yàn)證服務(wù)器的身份。此時,設(shè)備需要向服務(wù)器驗(yàn)證自己的身份,這是使用遠(yuǎn)程認(rèn)證協(xié)議完成的任務(wù)。在 Azure Sphere 系統(tǒng)中,識別的不僅僅是設(shè)備,還有它運(yùn)行的代碼。這是通過基于在安全啟動過程中發(fā)現(xiàn)的代碼序列的加密哈希創(chuàng)建會話密鑰來執(zhí)行的。這些值使用私鑰簽名,用于由板載加密處理器生成的證明。由于 Azure 服務(wù)可以根據(jù)設(shè)備在其數(shù)據(jù)庫中的公鑰生成相應(yīng)的公鑰,因此它可以驗(yàn)證它已使用授權(quán)固件啟動的設(shè)備身份。
對設(shè)備進(jìn)行身份驗(yàn)證的云服務(wù)的可用性還有其他好處:例如,在 Azure Sphere 下,當(dāng)發(fā)現(xiàn)設(shè)備是真實(shí)的并且運(yùn)行正確的軟件時,它會提供一個證書,該證書與它自己存儲的結(jié)合使用時憑據(jù),可以提供給其他在線服務(wù)和設(shè)備以證明設(shè)備的身份。該證書的有效期大約為一天,這限制了攻擊的可能性并強(qiáng)制設(shè)備定期展示其健康狀況,以保持與物聯(lián)網(wǎng)服務(wù)的連接。
如果設(shè)備沒有通過安全啟動過程,那么它就無法獲得一個證書,讓它作為一個有效的、經(jīng)過身份驗(yàn)證的系統(tǒng)運(yùn)行,并將與 IoT 斷開連接。此外,身份驗(yàn)證失敗提供了一種糾正這種情況的方法,并且可以允許設(shè)備連接到 Azure 服務(wù),以便下載和安裝真實(shí)且最新的啟動映像。這提供了額外級別的保護(hù),以防止利用舊版本真實(shí)固件中的弱點(diǎn)進(jìn)行的攻擊。
element14 社區(qū)成員 Rodrigo Sim 將 Microsoft Pluton 安全子系統(tǒng)描述為 Azure Sphere 生態(tài)系統(tǒng)的基礎(chǔ),并指出 Pluton 有一個專用核心用于加速加密任務(wù),例如使用 SHA2 進(jìn)行散列、橢圓曲線加密 (ECC) 和 AES 加密。所有這一切使 Pluton 能夠?yàn)榛?a href="http://www.asorrir.com/v/tag/527/" target="_blank">操作系統(tǒng)和用戶應(yīng)用程序提供安全啟動和遠(yuǎn)程證明。專用核還可以控制其他核中外設(shè)的訪問。
盡管對互聯(lián)網(wǎng)連接的支持現(xiàn)在實(shí)際上是許多嵌入式系統(tǒng)設(shè)計(jì)人員的要求,但所構(gòu)成的威脅是可以控制的。通過 Azure Sphere 等平臺,互聯(lián)網(wǎng)連接提供了比未連接設(shè)備更強(qiáng)大的解決方案。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5149文章
19655瀏覽量
317295 -
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
55文章
11248瀏覽量
106347 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7142瀏覽量
125545
發(fā)布評論請先 登錄
嵌入式軟件行業(yè)增長驅(qū)動因素
大賽報(bào)名|飛凌嵌入式攜手瑞芯微成為2025年全國大學(xué)生嵌入式大賽命題企業(yè)

如何提高嵌入式代碼質(zhì)量?
RT-Thread Smart 嵌入式人工智能師資培訓(xùn)通知

新手怎么學(xué)嵌入式?
嵌入式超火的方向有哪些?
嵌入式和人工智能究竟是什么關(guān)系?
什么是嵌入式操作系統(tǒng)?
什么是嵌入式?一文讀懂嵌入式主板
嵌入式系統(tǒng)的未來趨勢有哪些?
學(xué)習(xí)hypervisor嵌入式產(chǎn)品安全設(shè)計(jì)
嵌入式軟件開發(fā)與AI整合

評論