2020-05-06 10:06:23分類:云服務(wù)端開發(fā)13713
網(wǎng)絡(luò)連接一方面能夠為嵌入式系統(tǒng)帶來巨大好處,另一方面卻可能威脅到設(shè)備及設(shè)備所構(gòu)建的物聯(lián)網(wǎng)應(yīng)用的完整性。然而,這一難題現(xiàn)在可以通過智能設(shè)計技術(shù)解決。只要使用了正確的基礎(chǔ)架構(gòu),聯(lián)網(wǎng)嵌入式和物聯(lián)網(wǎng)設(shè)備就可以利用在線服務(wù)確保長期安全地保護(hù)網(wǎng)絡(luò),即使個別節(jié)點在某一時刻遭受攻擊。實現(xiàn)所需安全級別是一項極為復(fù)雜的工作,幸運的是,市場上涌現(xiàn)出多種有效解決方案,如:Microsoft的Azure Sphere及其嵌入式Pluton安全子系統(tǒng),可提供一整套措施和工具來應(yīng)對不同威脅。
1 實現(xiàn)物聯(lián)網(wǎng)安全的硬件基礎(chǔ)
物聯(lián)網(wǎng)設(shè)備安全的一個基本要求是保護(hù)系統(tǒng)的完整性,這就要求設(shè)備的防御措施必須能夠防止非授權(quán)的修改和入侵。黑客極端狡猾,他們會利用所發(fā)現(xiàn)的任一漏洞來嘗試攻擊系統(tǒng)。OEM廠商則可利用層次化安全策略來增強(qiáng)其系統(tǒng)對網(wǎng)絡(luò)攻擊的抵御能力。例如,緩沖區(qū)溢出常常被黑客用來對系統(tǒng)實施滲透入侵,其攻擊原理則是利用了內(nèi)存數(shù)據(jù)布局。過大的網(wǎng)絡(luò)數(shù)據(jù)包可被黑客加以利用,將攻擊代碼存儲在分配給網(wǎng)絡(luò)緩沖區(qū)的內(nèi)存空間之外,之后目標(biāo)系統(tǒng)便會無意中執(zhí)行這些攻擊代碼。從黑客的角度來看,這為他們提供了一個上傳可執(zhí)行鏡像文件的機(jī)會。一旦設(shè)備重啟,便會執(zhí)行新的鏡像文件,如此,黑客就獲得了系統(tǒng)的完全控制權(quán),能夠竊取機(jī)密信息及其他有價值的數(shù)據(jù)。
安全啟動機(jī)制可確保僅運行授權(quán)方提供的可執(zhí)行文件,從而防止各類攻擊。實施安全啟動機(jī)制的一個基本要求是將非易失性內(nèi)存區(qū)域在制造后設(shè)置為只讀區(qū)。這一區(qū)域包含引導(dǎo)加載程序代碼,可強(qiáng)制處理器檢查加載到系統(tǒng)中的啟動鏡像的完整性。若完整性檢查失敗,則設(shè)備只有獲得有效的啟動鏡像后才能開啟。
校驗和是進(jìn)行完整性檢查的最簡單機(jī)制。然而,它并不會檢查啟動鏡像的來源。如果黑客知道如何根據(jù)制造商ID或本該保密的類似共享代碼來構(gòu)造虛假的啟動鏡像,那么仍有可能成功通過完整性檢查。為此,用戶需要實現(xiàn)更有效的完整性檢查:通過確保使用本地存儲的唯一ID生成的哈希數(shù),對加載到閃存中供下次啟動使用的代碼進(jìn)行簽名,從而將制造商ID與設(shè)備自身ID相結(jié)合。為了防止可能用于竊取此ID的攻擊,設(shè)備還需具備一個硬件信任根。
2 硬件信任根
硬件信任根是用于運行安全敏感操作的受保護(hù)區(qū)域,這些操作可防御物理篡改和遠(yuǎn)程攻擊。為了實現(xiàn)此類防護(hù),信任根部署了一個安全處理器,該處理器對片上代碼和數(shù)據(jù)內(nèi)存具有唯一的訪問權(quán)。加密密鑰和其他安全數(shù)據(jù)都存儲在這些區(qū)域中,且信任根配置為不允許從外部訪問這些內(nèi)容。安全處理器通常借助加密處理器來加快操作速度,同時利用真隨機(jī)數(shù)生成器(TRNG)來生成在信任根之外運行的軟件和系統(tǒng),以確定它們是否有權(quán)訪問系統(tǒng)資源。Pluton安全子系統(tǒng)就是硬件信任根的一個示例,該子系統(tǒng)是Azure Sphere模塊部署的核心部分,可通過e絡(luò)盟購買。
有了硬件信任根,設(shè)備不僅能保護(hù)自身及其發(fā)送的所有數(shù)據(jù)的安全,還可以證明自身是向網(wǎng)絡(luò)中其他節(jié)點(無論是云中其他物聯(lián)網(wǎng)設(shè)備還是服務(wù)器)發(fā)送可信數(shù)據(jù)的合法設(shè)備。這有助于進(jìn)一步提高設(shè)備的安全性,因為設(shè)備可以拒絕與沒有可接受憑證的任何聯(lián)網(wǎng)設(shè)備進(jìn)行交互。這首先就減少了設(shè)備遭受緩沖區(qū)溢出和類似攻擊的可能性。Pluton還加強(qiáng)了系統(tǒng)內(nèi)部的安全性,以控制那些可能受到攻擊的外圍設(shè)備的操作。處理器內(nèi)的防火墻可防止對敏感功能的未授權(quán)訪問,以及企圖利用虛假外設(shè)來控制系統(tǒng)的攻擊行為。
認(rèn)證是軟件或遠(yuǎn)程設(shè)備用以證明其身份或真實性的機(jī)制。通常,這種認(rèn)證是根據(jù)基于公鑰基礎(chǔ)設(shè)施(PKI)機(jī)制的協(xié)議來進(jìn)行的。PKI機(jī)制中,消息使用公鑰進(jìn)行加密,因為公鑰可以自由分發(fā)而不破壞協(xié)議,而相應(yīng)的私鑰才能解密消息。因此,此類私鑰將存儲在硬件信任根的安全內(nèi)存中,且通常在制造過程中進(jìn)行加載。
3 通信安全
當(dāng)設(shè)備想要建立通信或證明其身份時,它將使用協(xié)議通過一個或多個私鑰生成證書和簽名。簽名和認(rèn)證協(xié)議將真隨機(jī)數(shù)生成器(TRNG)生成的隨機(jī)數(shù)與私鑰相結(jié)合,以創(chuàng)建諸如會話秘鑰之類的值,這些值有效期短且使用一次就會被丟棄,以避免黑客攔截消息并重構(gòu)秘鑰實施所謂的重放攻擊。一旦創(chuàng)建,PKI協(xié)議可確保只在需要的安全區(qū)域內(nèi)訪問私鑰。
若使用Azure Sphere,兩個主私鑰則是由設(shè)備本身搭載的Pluton子系統(tǒng)在制造過程中生成,其之后甚至連軟件也無法直接讀取。可以說,私鑰的所有信息均由Pluton子系統(tǒng)內(nèi)的加密處理器創(chuàng)建,這就克服了眾多系統(tǒng)存在的一個重要缺陷,它們的私鑰往往是在外部生成并導(dǎo)入設(shè)備,無疑增加了被攔截的風(fēng)險。
盡管任何設(shè)備都可以生成私鑰并進(jìn)行內(nèi)部存儲,但必須確定設(shè)備首次出現(xiàn)在網(wǎng)絡(luò)中時其密鑰是否合法有效。Azure Sphere可通過生成匹配的公鑰來解決這一問題:一個用于認(rèn)證,另一個用于用戶定義安全服務(wù)。這些公鑰在設(shè)備制造階段即提供給Microsoft Azure云服務(wù)使用。同時,使用PKI機(jī)制生成的數(shù)字證書也會存儲在設(shè)備中,這些數(shù)字證書可用于驗證來自Azure服務(wù)器的消息。
當(dāng)Azure Sphere設(shè)備連接到云時,它會根據(jù)存儲在安全內(nèi)存中的Azure創(chuàng)建的證書來核驗消息,從而驗證服務(wù)器的身份。在此過程中,設(shè)備自身需要向服務(wù)器進(jìn)行身份驗證,這項工作可使用遠(yuǎn)程認(rèn)證協(xié)議完成。Azure Sphere系統(tǒng)不僅驗證設(shè)備,還會驗證設(shè)備運行的代碼。它根據(jù)安全啟動過程中發(fā)現(xiàn)的代碼序列的加密哈希數(shù)來創(chuàng)建會話密鑰并執(zhí)行這一操作。這些值采用由板載加密處理器生成的私鑰簽名進(jìn)行認(rèn)證。由于Azure服務(wù)可以根據(jù)設(shè)備在其數(shù)據(jù)庫中保存的公鑰生成相應(yīng)的公鑰,因此,它可以使用授權(quán)固件來驗證所啟動的設(shè)備身份。
運用云服務(wù)進(jìn)行設(shè)備身份認(rèn)證還具備其他多個好處:例如,在Azure Sphere環(huán)境下,若設(shè)備被證實可靠且軟件運行無誤,該設(shè)備就可獲取一個證書。該證書可與設(shè)備自身存儲的憑證一起提交給其他在線服務(wù)和設(shè)備以證實其身份信息。該證書的有效期僅約一天,有助于降低設(shè)備遭受潛在攻擊的風(fēng)險。這也意味著,若設(shè)備需維持與物聯(lián)網(wǎng)服務(wù)之間的連接,設(shè)備必須定期證實其健康狀況。這種防護(hù)級別是單機(jī)系統(tǒng)無法實現(xiàn)的,它們一旦遭受物理攻擊損害,若不進(jìn)行手動維護(hù)檢查將無法修復(fù)。
若設(shè)備未通過安全啟動過程,客戶端設(shè)備將無法獲得證書,也就無法作為一個合法有效且經(jīng)認(rèn)證的系統(tǒng)運行,這樣一來,設(shè)備將被切斷與物聯(lián)網(wǎng)系統(tǒng)的連接,且其運行方式將無法有效防御黑客攻擊。此外,若身份認(rèn)證失敗,也有方法可以用來改變不利情況,即將設(shè)備連接到Azure服務(wù),以下載并安裝經(jīng)認(rèn)證的最新啟動鏡像。這就為設(shè)備提供了更高級別的防護(hù),可防止黑客利用舊版認(rèn)證固件的漏洞實施攻擊。
實際上,網(wǎng)絡(luò)連接支持已成為許多嵌入式系統(tǒng)設(shè)計人員的一項實際需求。盡管存在一些威脅風(fēng)險,但卻完全可控。通過Azure Sphere等平臺,網(wǎng)絡(luò)連接能夠提供較非聯(lián)網(wǎng)設(shè)備更穩(wěn)健可靠的解決方案。