工業(yè) 4.0 中物聯(lián)網(wǎng) (IoT) 的采用意味著越來(lái)越多的連接系統(tǒng),從簡(jiǎn)單的傳感器和執(zhí)行器到核電站。確保這些設(shè)備的安全性對(duì)于正確操作和安全至關(guān)重要。來(lái)自不同來(lái)源的威脅有很多種:隨機(jī)黑客、犯罪集團(tuán)、商業(yè)間諜活動(dòng)和國(guó)家行為者。如果設(shè)備受到損害,它的操作可能會(huì)受到影響,并且在數(shù)據(jù)交換、處理或存儲(chǔ)方面不再受信任。這對(duì)于 5G 通信網(wǎng)關(guān)來(lái)說(shuō)尤其危險(xiǎn),其中一個(gè)漏洞可能會(huì)使整個(gè)系統(tǒng)受到攻擊。
將 5G 網(wǎng)關(guān)引入工業(yè)物聯(lián)網(wǎng) (IIoT) 環(huán)境凸顯了對(duì)基于“信任根”的安全啟動(dòng)的需求,即可以保證不會(huì)受到損害的軟件。特別是,必須信任由微控制器執(zhí)行的代碼以確保安全運(yùn)行。這一要求將影響存儲(chǔ)子系統(tǒng)的設(shè)計(jì)選擇。
嵌入式系統(tǒng)中的漏洞
除了通常需要防止網(wǎng)絡(luò)釣魚、惡意軟件和其他破壞互聯(lián)網(wǎng)系統(tǒng)安全的標(biāo)準(zhǔn)嘗試之外,嵌入式系統(tǒng)還面臨一些更具體的挑戰(zhàn)。這意味著安全需要“分層”:在系統(tǒng)的各個(gè)級(jí)別上考慮并設(shè)計(jì)到硬件中。
在最高級(jí)別,需要考慮人為因素。應(yīng)用軟件層將提供數(shù)據(jù)加密和用戶認(rèn)證。在最低級(jí)別,存儲(chǔ)必須支持安全啟動(dòng)和固件更新驗(yàn)證。
涉及物理訪問(wèn)硬件的攻擊的唯一解決方案是微控制器從內(nèi)部只讀存儲(chǔ)器執(zhí)行代碼。根據(jù)定義,這是安全的并構(gòu)成信任的根源。然而,微控制器已經(jīng)從芯片上的只讀存儲(chǔ)器中的固定固件轉(zhuǎn)向使用非易失性存儲(chǔ)器進(jìn)行代碼存儲(chǔ),通常是 NAND 閃存。這比只讀存儲(chǔ)器更靈活,并支持軟件的實(shí)時(shí)無(wú)線 (OTA) 更新——這對(duì)于功能更改和安全修復(fù)都是必不可少的。但是安裝新軟件的能力帶來(lái)了另一個(gè)潛在的攻擊面。
確保非易失性存儲(chǔ)中的代碼是安全的,需要一個(gè)可以檢查代碼完整性和真實(shí)性的安全引導(dǎo)系統(tǒng)。完整性意味著代碼未被修改,無(wú)論是意外損壞還是惡意篡改,而真實(shí)性意味著您可以確信代碼來(lái)自受信任的來(lái)源。
這些檢查可以在執(zhí)行代碼之前的啟動(dòng)時(shí)應(yīng)用,也可以在應(yīng)用固件更新之前應(yīng)用。
公鑰密碼學(xué)簡(jiǎn)史
安全啟動(dòng)依賴于公鑰密碼技術(shù)來(lái)簽署和驗(yàn)證軟件。 加密系統(tǒng)最初是對(duì)稱的:它們使用相同的密碼或密鑰來(lái)加密和解密消息。這有一個(gè)弱點(diǎn);密鑰必須在所有通信者之間共享,如果第三方獲得副本,他們可以攔截、讀取并可能修改任何消息。
現(xiàn)代密碼學(xué)使用非對(duì)稱的公鑰算法。在這里,使用了兩個(gè)密鑰:一個(gè)是保密的,另一個(gè)是可以廣泛使用的。消息可以用一個(gè)密鑰加密,用另一個(gè)密鑰解密。這消除了安全分發(fā)加密密鑰的問(wèn)題。
公鑰密碼學(xué)可以以多種方式使用。例如,使用公鑰加密的消息只能由相應(yīng)私鑰的所有者讀取,因此通過(guò)不安全的網(wǎng)絡(luò)傳輸它是安全的。
或者,任何擁有相關(guān)公鑰的人都可以讀取使用私鑰編碼的消息,但他們可以確定該消息確實(shí)來(lái)自正確的來(lái)源(沒(méi)有其他人能夠生成這樣的消息)可以用該公鑰解碼)。這是用于驗(yàn)證消息的數(shù)字簽名的基礎(chǔ)。
然而,不是加密整個(gè)消息,而是使用諸如 SHA-256 之類的算法生成更短的消息摘要或散列。這唯一地標(biāo)識(shí)了消息并且可以用來(lái)驗(yàn)證它的完整性。然后,為確保散列本身正確,使用供應(yīng)商的私鑰對(duì)其進(jìn)行加密。通過(guò)這種方式,可以確認(rèn)簽名的真實(shí)性,從而確認(rèn)消息。盡管兩條不同的消息有可能(但極不可能)偶然生成相同的散列,但實(shí)際上不可能修改現(xiàn)有消息以使其具有與原始消息相同的散列。
同樣的原則可用于簽署可執(zhí)行代碼:系統(tǒng)啟動(dòng)后執(zhí)行的應(yīng)用程序代碼和收到的任何 OTA 更新。
使用公鑰加密保護(hù)啟動(dòng)過(guò)程
在開機(jī)時(shí),微控制器首先執(zhí)行內(nèi)部存儲(chǔ)器中的代碼。在對(duì)系統(tǒng)進(jìn)行任何必要的初始化之后,此引導(dǎo)代碼的主要任務(wù)是在執(zhí)行之前驗(yàn)證外部閃存中的應(yīng)用程序代碼。
數(shù)字證書用于驗(yàn)證軟件供應(yīng)商的公鑰,否則可能會(huì)使用假公鑰安裝惡意軟件。制造商只需自己創(chuàng)建此證書即可“自我認(rèn)證”?;蛘?,為了獲得更高的安全性,他們可以使用公鑰基礎(chǔ)設(shè)施 (PKI),它使用證書層次結(jié)構(gòu),最終依賴于受信任的證書頒發(fā)機(jī)構(gòu) (CA) 頒發(fā)的證書。
實(shí)施安全啟動(dòng)
啟動(dòng)代碼和證書必須存儲(chǔ)在芯片上不能修改的安全位置。這確保了引導(dǎo)代碼可以被信任,并且證書不能被一個(gè)會(huì)導(dǎo)致安全性受損的證書替換。
只要存在合適的片上安全性,它就可以是微控制器內(nèi)部的閃存。這可以使用保險(xiǎn)絲,一旦初始軟件已被編程,該保險(xiǎn)絲會(huì)在物理上防止進(jìn)一步寫入閃存?;蛘?,它可以使用僅允許對(duì)信任根軟件進(jìn)行授權(quán)更新的身份驗(yàn)證機(jī)制。
有幾種不同的算法用于生成散列和公鑰加密。其中一些計(jì)算成本很高,并且可能需要硬件加速以避免影響存儲(chǔ)系統(tǒng)的性能。
需要高性能閃存控制器來(lái)確保安全要求不會(huì)影響系統(tǒng)性能。它必須能夠直接實(shí)現(xiàn)算法或?yàn)檫m當(dāng)?shù)膮f(xié)處理器提供支持。自定義固件擴(kuò)展應(yīng)允許將此額外功能添加為控制器固件的完全集成部分,同時(shí)仍完全在存儲(chǔ)系統(tǒng)開發(fā)人員的控制之下。
結(jié)論
對(duì)于 5G 工業(yè)網(wǎng)關(guān)的安全性,必須實(shí)施安全啟動(dòng)系統(tǒng),以在控制器和存儲(chǔ)應(yīng)用程序代碼的非易失性存儲(chǔ)器之間提供信任根。
要使工業(yè) 5G 網(wǎng)關(guān)滿足所有必要的性能和可靠性要求,必須選擇正確的工業(yè)級(jí)存儲(chǔ)技術(shù)。5G存儲(chǔ)系統(tǒng)中閃存控制器的選擇至關(guān)重要,因?yàn)樗鼪Q定了系統(tǒng)的性能、可靠性和可擴(kuò)展性。
憑借在提供高性能、安全和可靠的存儲(chǔ)解決方案方面的豐富經(jīng)驗(yàn),Hyperstone隨時(shí)準(zhǔn)備討論與創(chuàng)建 5G 工業(yè)網(wǎng)關(guān)相關(guān)的安全啟動(dòng)和非易失性存儲(chǔ)的任何方面。
審核編輯:湯梓紅
評(píng)論