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