導(dǎo)讀:隨著越來(lái)越多的設(shè)備接入網(wǎng)絡(luò),對(duì)關(guān)鍵資產(chǎn)的安全性防護(hù)需求也在增加。以往,這些都由硬件安全模塊 (HSM)提供,但在過(guò)去十年中,可信執(zhí)行環(huán)境(TEE)的使用顯著增長(zhǎng)。本文旨在讓讀者了解這兩種解決方案之間的區(qū)別以及它們對(duì)不同場(chǎng)景的適用性。
一、HSM和TEE
通常,HSM為其他應(yīng)用程序提供密鑰管理和加密功能。
TEE還提供讓?xiě)?yīng)用程序(或應(yīng)用程序的安全相關(guān)部分)在其隔離環(huán)境中執(zhí)行的功能。比如在Android的移動(dòng)設(shè)備中,通過(guò)使用提供AndroidKeyMaster功能的可信應(yīng)用程序(TA),TEE每天都在不知不覺(jué)中被數(shù)百萬(wàn)人當(dāng)作HSM來(lái)用。常規(guī)執(zhí)行環(huán)境 (REE)是TEE社區(qū)中的術(shù)語(yǔ),用于表示設(shè)備中特定TEE之外的所有內(nèi)容。技術(shù)上,如果從特定的TEE角度來(lái)看,所有超出其安全邊界的組件都在REE中。話雖如此,為了簡(jiǎn)化全局,具有多個(gè)TEE、SIM、HSM或其他高信任組件的設(shè)備可能會(huì)將這些從REE中獨(dú)立出來(lái)。REE包含常規(guī)操作系統(tǒng)及其與該執(zhí)行環(huán)境其余部分的組合,不具備足夠的安全性來(lái)滿足設(shè)備所需的任務(wù)。
備注:HSM是硬件安全模塊的英語(yǔ)縮寫(xiě),全稱(chēng)是Hardware Security Module。 TEE是可信執(zhí)行環(huán)境英語(yǔ)縮寫(xiě),全稱(chēng)是Trusted Execution Environment的簡(jiǎn)稱(chēng)。
二、HSM如何解決安全問(wèn)題
在集成HSM的設(shè)備中,軟件架構(gòu)如下所示:
HSM為安全任務(wù)提供加密服務(wù)。REE中的“安全”任務(wù)提供數(shù)據(jù),HSM可以接收該數(shù)據(jù)并加密或解密該數(shù)據(jù),然后再將其返回給REE中的任務(wù)發(fā)布者。
三、如何使用TEE實(shí)現(xiàn)?
以下是我們?cè)谥С諸EE的設(shè)備中實(shí)現(xiàn)HSM功能:
在Android設(shè)備中,上述HSM通常由TEE中的TA代替,實(shí)現(xiàn)Keymaster功能和Android特定REE堆棧,而不是OpenSSL/PKCS#11。對(duì)于上面的案例,即便在發(fā)動(dòng)機(jī)控制器(ECU)中的簡(jiǎn)單的常規(guī)OS,也已專(zhuān)門(mén)編寫(xiě)通用TA以提供典型得HSM功能。
四、有了TEE,可以做得更好
TEE不需要像HSM那樣用作固定用途的服務(wù)提供者,它也可以直接處理任務(wù)。
在這里,我們將任務(wù)移到TEE中,就可以在REE中活動(dòng)無(wú)法訪問(wèn)的地方對(duì)未加密數(shù)據(jù)進(jìn)行操作。舉個(gè)例子:
設(shè)備通常支持其他任務(wù),例如復(fù)雜的通信協(xié)議(例如CAN總線、IP、藍(lán)牙甚至5G )。
這些通信機(jī)制可能會(huì)或可能不會(huì)被特定的安全任務(wù)使用。
通過(guò)將安全任務(wù)放置在與該通信軟件隔離的某個(gè)地方(例如,在TEE中),通信軟件中的安全問(wèn)題不再拖累安全任務(wù)的安全性。
一些HSM可以通過(guò)專(zhuān)有擴(kuò)展加載代碼執(zhí)行,但符合GlobalPlatform的TEE使用標(biāo)準(zhǔn)化接口,使為一個(gè)TEE開(kāi)發(fā)的任務(wù)能夠在另一個(gè)TEE上執(zhí)行。在TEE中執(zhí)行的此類(lèi)任務(wù)稱(chēng)為“受信任的應(yīng)用程序”。
五、TEE可以做到HSM無(wú)法完成的事情
HSM不能直接保護(hù)提供傳感器數(shù)據(jù)或控制執(zhí)行器的I/O端口免受軟件攻擊,例如汽車(chē)ECU的REE。
與HSM不同,在正確設(shè)計(jì)SoC上,TEE還可以與外圍設(shè)備連接。這樣就可以創(chuàng)建一個(gè)安全的任務(wù),安全地存放在TEE內(nèi),可用于顯著增強(qiáng)關(guān)鍵任務(wù)的安全性。
六、我們想到了什么?
舉一個(gè)汽車(chē)燃油節(jié)流閥的案例。如果ECU上的油門(mén)I/O控制端口暴露在REE軟件中,那么使用HSM的REE“安全”任務(wù)帶來(lái)多少安全性并不重要;如果對(duì)REE本身的安全性有很高的信心,就不會(huì)使用HSM,因此無(wú)法確信REE中的軟件不會(huì)受到攻擊。如果REE容易受到攻擊,這意味著受攻擊的REE軟件可能會(huì)未經(jīng)授權(quán)訪問(wèn)該I/O端口,無(wú)論HSM有多好。在TEE(就像在HSM中)中,我們沒(méi)有與安全無(wú)關(guān)的軟件任務(wù)的顧慮。TEE中的任務(wù)可以連接到硬件控制端口,而不會(huì)有被其他軟件進(jìn)行未經(jīng)授權(quán)訪問(wèn)的風(fēng)險(xiǎn)。如果在上面的例子中只有一個(gè)HSM,那么所能做的就是保護(hù)設(shè)備的數(shù)據(jù)流,而不是設(shè)備中的決策。有了TEE,可以?xún)烧呒娴谩?
七、物理攻擊:TEE和HSM
正如我們?cè)谏厦婵吹降模褂肏SM的一個(gè)問(wèn)題是在發(fā)生加密之前數(shù)據(jù)通信的暴露。
這會(huì)影響軟件中的數(shù)據(jù),在HSM有機(jī)會(huì)對(duì)其采取行動(dòng)之前,就可以通過(guò)損壞的REE提取或修改數(shù)據(jù)。
這也會(huì)影響硬件攻擊面。
從根本上說(shuō),設(shè)備集成HSM可以使用SoC上的硬件方法來(lái)保護(hù)其密鑰不被提取,這比TEE的密鑰更強(qiáng)大。但是,將數(shù)據(jù)傳輸?shù)紿SM通過(guò)這些密鑰進(jìn)行保護(hù)的方法并沒(méi)有比TEE更強(qiáng),而且可能要弱得多。考慮以下與PCB連接的HSM與典型的TEE對(duì)比,后者將使用堆疊芯片(封裝上的封裝)來(lái)保護(hù)其更高的速度流量:
物理攻擊
如上所示,更強(qiáng)的TEE甚至可以不使用外部RAM,而是使用SoC RAM。
TEE使用On-SoC RAM
在這種情況下,使用TEE提供傳統(tǒng)HSM功能的好處是顯著減少了未受保護(hù)數(shù)據(jù)的暴露,從而增強(qiáng)了平臺(tái)的整體安全性。最后,如果您擔(dān)心密鑰提取,無(wú)論是使用TEE還是HSM,建議設(shè)計(jì)保持較小的密鑰大小。值得注意的是,在EVITA 標(biāo)準(zhǔn)中,一些HSM類(lèi)型與REE在同一個(gè)SoC上,在這些情況下,它們的硬件保護(hù)方法通常與TEE一樣。
八、結(jié)論
在快速發(fā)展的新創(chuàng)新領(lǐng)域,例如聯(lián)網(wǎng)汽車(chē)和機(jī)器人技術(shù)以及消費(fèi)電子設(shè)備,TEE提供了一種具有成本效益且面向未來(lái)的HSM替代方案。除了提供典型HSM功能的潛力之外,符合GlobalPlatform的TEE還可以直接保護(hù)關(guān)鍵任務(wù),并具有實(shí)現(xiàn)關(guān)鍵系統(tǒng)無(wú)線更新的標(biāo)準(zhǔn)化方法。
從根本上說(shuō),典型的HSM是一種抗攻擊加密設(shè)備,旨在由HSM設(shè)計(jì)者執(zhí)行一組特定的加密功能。它在相關(guān)保護(hù)配置文件定義的范圍內(nèi)提供了不干擾的信任。一個(gè)標(biāo)準(zhǔn)化的TEE可以做同樣的事情,而且不需要添加額外的硬件。由于TEE駐在現(xiàn)有的SoC集成MMU和支持TrustZone的硬件上,因此可以減少整體硬件BOM,并在移除組件時(shí)減少硬件故障的風(fēng)險(xiǎn)。
TEE的開(kāi)發(fā)由GlobalPlatform等標(biāo)準(zhǔn)推動(dòng),這帶來(lái)了可預(yù)測(cè)性和互操作性。這意味著OEM和第三方可以開(kāi)發(fā)可信應(yīng)用程序以支持不斷增長(zhǎng)的平臺(tái)安全清單。也許,TEE替代HSM的時(shí)代,不遠(yuǎn)了。