當(dāng)今瞬息萬(wàn)變、日益互聯(lián)的世界為我們提供了為我們每天使用的嵌入式系統(tǒng)大幅增加價(jià)值的機(jī)會(huì)。然而,同樣的連接也可能成為對(duì)物聯(lián)網(wǎng)應(yīng)用程序和設(shè)備的完整性的威脅,這些應(yīng)用程序和設(shè)備的完整性是嵌入式系統(tǒng)基礎(chǔ)的一部分。解決方案是什么?更智能、更安全的設(shè)計(jì)。一旦堅(jiān)實(shí)的基礎(chǔ)到位,互聯(lián)網(wǎng)連接的嵌入式和物聯(lián)網(wǎng)設(shè)備可以確保長(zhǎng)期安全并保護(hù)網(wǎng)絡(luò),即使單個(gè)節(jié)點(diǎn)受到損害。為了實(shí)現(xiàn)所需的安全級(jí)別,必須預(yù)測(cè)和解決多種威脅:實(shí)現(xiàn)這一目標(biāo)的一個(gè)很好的工具是微軟的Azure Sphere及其嵌入式Pluton安全子系統(tǒng)。
物聯(lián)網(wǎng)安全要點(diǎn)
物聯(lián)網(wǎng)設(shè)備安全的一個(gè)基本要求是確保系統(tǒng)正確集成。由于黑客是出了名的足智多謀,并且很樂(lè)意利用任何和所有弱點(diǎn),因此必須保護(hù)設(shè)備免受未經(jīng)授權(quán)的修改和入侵。智能 OEM 可以通過(guò)分層安全性來(lái)降低其對(duì)受感染系統(tǒng)的脆弱性。例如,黑客用來(lái)滲透系統(tǒng)的一種經(jīng)常被利用的機(jī)制是緩沖區(qū)溢出。它允許黑客利用存儲(chǔ)在內(nèi)存外部并分配給網(wǎng)絡(luò)緩沖區(qū)的數(shù)據(jù),這有時(shí)會(huì)導(dǎo)致目標(biāo)系統(tǒng)無(wú)意中執(zhí)行代碼。從黑客的角度來(lái)看,這是個(gè)好消息。它不僅提供了一個(gè)可以上傳新的可執(zhí)行映像的點(diǎn),而且一旦設(shè)備重新啟動(dòng)以便它可以執(zhí)行該新映像,他或她就可以完全控制系統(tǒng)并訪問(wèn)有價(jià)值的數(shù)據(jù)。
安全啟動(dòng)機(jī)制是避免此問(wèn)題的好方法。它通過(guò)確保只有授權(quán)方提供的可執(zhí)行文件才能運(yùn)行來(lái)關(guān)閉潛在攻擊的方法。實(shí)現(xiàn)安全啟動(dòng)機(jī)制的一個(gè)基本要求是非易失性內(nèi)存區(qū)域,該區(qū)域在制造后被視為只讀 - 這包含引導(dǎo)加載程序代碼,強(qiáng)制處理器檢查加載到系統(tǒng)中的引導(dǎo)映像的完整性。如果完整性檢查失敗,則在向設(shè)備提供有效的啟動(dòng)映像之前,設(shè)備將無(wú)法啟動(dòng)。有效的完整性檢查將制造商 ID 與設(shè)備自己的 ID 相結(jié)合,方法是確保加載到閃存中的代碼在下次啟動(dòng)時(shí)使用使用本地存儲(chǔ)的唯一 ID 生成的哈希進(jìn)行簽名。為了防止可能用于查找此 ID 的攻擊,設(shè)備還需要具有硬件信任根。
硬件信任根
安全性正日益成為設(shè)計(jì)界所有成員的重要問(wèn)題。例如,在最近的一次道路測(cè)試審查中,e絡(luò)盟社區(qū)成員David Long指出,冥王星安全子系統(tǒng)的信任根是作為Azure Sphere模塊的核心部分實(shí)現(xiàn)的,可通過(guò)紐瓦克獲得,這是關(guān)鍵功能之一。
硬件信任根是運(yùn)行安全敏感操作的受保護(hù)區(qū)域。它通過(guò)實(shí)施僅訪問(wèn)片上代碼和數(shù)據(jù)存儲(chǔ)器的安全處理器,提供針對(duì)物理篡改和遠(yuǎn)程攻擊的保護(hù)。加密密鑰和其他安全數(shù)據(jù)存儲(chǔ)在這些區(qū)域中,并且信任根配置為永遠(yuǎn)不允許從外部訪問(wèn)這些元素。安全處理器通常由加密處理器支持以加快這些操作,并由真隨機(jī)數(shù)生成器(TRNG)支持,后者用于生成在信任根之外運(yùn)行的軟件和系統(tǒng),以確定它們是否應(yīng)有權(quán)訪問(wèn)系統(tǒng)資源。
有了硬件信任根,設(shè)備不僅有可能保護(hù)自己及其發(fā)送的任何數(shù)據(jù),而且可以證明它是向云中的其他物聯(lián)網(wǎng)設(shè)備或服務(wù)器發(fā)送可靠數(shù)據(jù)的合法設(shè)備。反過(guò)來(lái),這有助于提高安全性,因?yàn)樵O(shè)備可以拒絕與沒(méi)有可接受憑據(jù)的任何網(wǎng)絡(luò)連接設(shè)備進(jìn)行交互。這也降低了緩沖區(qū)溢出和類似攻擊首先通過(guò)的可能性。Pluton安全子系統(tǒng)有助于控制本身可能受到損害的外圍設(shè)備的操作。處理器內(nèi)的防火墻可防止未經(jīng)授權(quán)訪問(wèn)敏感功能,并防止?jié)撛诤诳褪褂脗卧焱鈬O(shè)備接管系統(tǒng)。
軟件或遠(yuǎn)程設(shè)備可以通過(guò)證明來(lái)證明其身份或真實(shí)性。通常,這是在基于公鑰基礎(chǔ)結(jié)構(gòu) (PKI) 機(jī)制的協(xié)議的幫助下處理的。在PKI下,消息使用公鑰加密,公鑰可以自由分發(fā)而不會(huì)損害協(xié)議,因?yàn)橹挥邢鄳?yīng)的私鑰才能解密消息。此類私鑰將存儲(chǔ)在硬件信任根的安全內(nèi)存中,通常在制造過(guò)程中加載。
通信安全
當(dāng)設(shè)備想要建立通信或證明其身份時(shí),它將使用協(xié)議來(lái)生成證書(shū)和簽名,使用其中一個(gè)或多個(gè)私鑰。簽名和認(rèn)證協(xié)議將隨機(jī)值(理想情況下是在TRNG的幫助下創(chuàng)建的)與私鑰相結(jié)合,以創(chuàng)建會(huì)話密鑰等值,這些值在短時(shí)間內(nèi)使用一次,然后被丟棄,以避免黑客攔截消息并在所謂的重放攻擊中重新創(chuàng)建它們。一旦創(chuàng)建,PKI協(xié)議確保私鑰永遠(yuǎn)不需要在安全區(qū)域之外訪問(wèn)。
在 Azure Sphere 的情況下,兩個(gè)核心私鑰由設(shè)備上的 Pluton 子系統(tǒng)在制造過(guò)程中生成,之后甚至不能由軟件直接讀取。從私鑰派生的所有消息都是由Pluton子系統(tǒng)中的加密處理器創(chuàng)建的。這彌補(bǔ)了許多系統(tǒng)中的一個(gè)關(guān)鍵弱點(diǎn),其中私鑰在外部生成并編程到設(shè)備中,從而產(chǎn)生了攔截的可能性。
下一個(gè)問(wèn)題是確定當(dāng)設(shè)備首次出現(xiàn)在網(wǎng)絡(luò)中時(shí)密鑰是否有效。Azure Sphere 通過(guò)生成匹配的公鑰來(lái)實(shí)現(xiàn)此目的:一個(gè)用于證明,一個(gè)用于用戶定義的安全服務(wù)。這些公鑰在制造時(shí)提供給微軟,供其 Azure 云服務(wù)使用。設(shè)備中還存儲(chǔ)著使用 PKI 機(jī)制生成的數(shù)字證書(shū),這些證書(shū)用于檢查聲稱來(lái)自 Azure 服務(wù)器的消息。
當(dāng) Azure Sphere 設(shè)備連接到云時(shí),它會(huì)根據(jù)存儲(chǔ)在安全內(nèi)存中的 Azure 創(chuàng)建的證書(shū)檢查消息,從而驗(yàn)證服務(wù)器的標(biāo)識(shí)。此時(shí),設(shè)備需要向服務(wù)器驗(yàn)證自身身份,這是使用遠(yuǎn)程證明協(xié)議完成的任務(wù)。在 Azure 球體系統(tǒng)中,標(biāo)識(shí)的不僅僅是設(shè)備,而是它運(yùn)行的代碼。這是通過(guò)基于在安全啟動(dòng)過(guò)程中找到的代碼序列的加密哈希創(chuàng)建會(huì)話密鑰來(lái)實(shí)現(xiàn)的。這些值使用私鑰進(jìn)行簽名,用于板載加密處理器生成的證明。由于 Azure 服務(wù)可以基于其數(shù)據(jù)庫(kù)中設(shè)備的公鑰生成相應(yīng)的公鑰,因此它可以使用授權(quán)固件驗(yàn)證已啟動(dòng)的設(shè)備標(biāo)識(shí)。
云服務(wù)可用于對(duì)設(shè)備進(jìn)行身份驗(yàn)證還有其他好處:例如,在 Azure Sphere 下,當(dāng)發(fā)現(xiàn)設(shè)備是真實(shí)的并運(yùn)行正確的軟件時(shí),會(huì)向其提供一個(gè)證書(shū),當(dāng)該證書(shū)與其自己的存儲(chǔ)憑據(jù)結(jié)合使用時(shí),可以將其呈現(xiàn)給其他在線服務(wù)和設(shè)備,以證明設(shè)備的身份。該證書(shū)的有效期約為一天,這限制了攻擊的可能性,并迫使設(shè)備定期證明其運(yùn)行狀況,以保持與物聯(lián)網(wǎng)服務(wù)的連接。
如果設(shè)備沒(méi)有通過(guò)安全啟動(dòng)過(guò)程,則它無(wú)法獲得證書(shū),該證書(shū)將允許它作為有效的,經(jīng)過(guò)身份驗(yàn)證的系統(tǒng)執(zhí)行,并將與物聯(lián)網(wǎng)斷開(kāi)連接。此外,身份驗(yàn)證失敗提供了一種糾正這種情況的方法,并且可能允許設(shè)備連接到 Azure 服務(wù),以便下載和安裝真實(shí)且最新的啟動(dòng)映像。這提供了額外的保護(hù)級(jí)別,以防止利用舊版本正版固件中的弱點(diǎn)的攻擊。
e絡(luò)盟社區(qū)成員羅德里戈·西姆(Rodrigo Sim)將微軟冥王星安全子系統(tǒng)描述為Azure Sphere生態(tài)系統(tǒng)的基礎(chǔ),并指出冥王星有一個(gè)專用的核心,用于加速加密任務(wù),如散列SHA2,橢圓曲線加密(ECC)和AES加密。所有這些都允許 Pluton 為基本操作系統(tǒng)和用戶應(yīng)用程序提供安全啟動(dòng)和遠(yuǎn)程證明。專用內(nèi)核還可以控制其他內(nèi)核中外設(shè)的訪問(wèn)。
雖然對(duì)互聯(lián)網(wǎng)連接的支持現(xiàn)在實(shí)際上是許多嵌入式系統(tǒng)設(shè)計(jì)人員的要求,但所帶來(lái)的威脅是可以控制的。通過(guò) Azure Sphere 等平臺(tái),互聯(lián)網(wǎng)連接提供了比未連接的設(shè)備更強(qiáng)大的解決方案。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5199文章
20454瀏覽量
334270 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47826瀏覽量
415260
發(fā)布評(píng)論請(qǐng)先 登錄
半導(dǎo)體嵌入式單元測(cè)試的核心技術(shù)、工具選型與落地全流程
嵌入式系統(tǒng)安全設(shè)計(jì)原則
什么是嵌入式應(yīng)用開(kāi)發(fā)?
嵌入式軟件測(cè)試找bug的常見(jiàn)方法和秘訣
arm嵌入式主板優(yōu)缺點(diǎn)
C語(yǔ)言在嵌入式開(kāi)發(fā)中的應(yīng)用
嵌入式和FPGA的區(qū)別
嵌入式開(kāi)發(fā)的關(guān)鍵點(diǎn)介紹
如何采用SAFERTOS和ESM保護(hù)嵌入式系統(tǒng)安全
嵌入式軟件測(cè)試與專業(yè)測(cè)試工具的必要性深度解析
2025嵌入式行業(yè)現(xiàn)狀如何?
Linux嵌入式和單片機(jī)嵌入式的區(qū)別?
嵌入式軟件行業(yè)增長(zhǎng)驅(qū)動(dòng)因素
嵌入式應(yīng)用中常見(jiàn)的安全威脅
高可靠性嵌入式主板設(shè)計(jì)
通過(guò)更智能的設(shè)計(jì)促進(jìn)嵌入式安全性
評(píng)論