作為 SoC 和系統(tǒng)設(shè)計(jì)人員,您是否正在尋找在不犧牲安全性的情況下保持處理效率的方法,尤其是在聽到了很多關(guān)于 Spectre、Meltdown 和 Foreshadow 的信息之后?許多設(shè)計(jì)人員正在尋求 RISC-V 的開放指令集架構(gòu) (ISA) 來設(shè)計(jì)從頭開始就安全的安全引擎。
這些安全引擎充當(dāng)協(xié)處理器,因?yàn)橹?CPU 管理并發(fā)執(zhí)行多個進(jìn)程的主要工作負(fù)載。然而,設(shè)計(jì)人員意識到其中許多應(yīng)用都需要安全硅 IP 隔離應(yīng)用之間的安全資產(chǎn)。
如果您的 SoC 有多個需要訪問安全資產(chǎn)的應(yīng)用程序,最好這些應(yīng)用程序不能訪問彼此的資產(chǎn)。例如,不希望他們的銀行應(yīng)用程序能夠訪問他們的 DRM 視頻播放密鑰,反之亦然。另一個好處是一個應(yīng)用程序中的安全漏洞不會泄露另一個應(yīng)用程序使用的安全資產(chǎn)。
為了滿足這些要求,安全處理器,如Rambus的 CryptoManager 信任根 (CMRT) ,必須具有多個硬件信任根,這些信任根在安全硅 IP 本身內(nèi)受支持但隔離。簡而言之,每個實(shí)體都有自己的虛擬信任根,并且無需信任其他實(shí)體即可執(zhí)行安全功能。
信任根 (RoT) 提供了可信計(jì)算環(huán)境中的安全基礎(chǔ)。為了支持多個根,安全硅 IP 必須能夠識別當(dāng)前根 i(即,每個根必須具有處理器已知的唯一標(biāo)識符)。
一旦根被識別,安全硅 IP 必須應(yīng)用該根的特定策略。該策略作為一組在硬件中強(qiáng)制執(zhí)行的權(quán)限來實(shí)現(xiàn)。這些權(quán)限描述了根對加密處理器中可用的安全和非安全資產(chǎn)的訪問。可以通過這樣一種方式建立權(quán)限,即給定根對資產(chǎn)的訪問與任何其他根完全隔離。如果需要該功能,還可以允許兩個根訪問同一組資產(chǎn)。
建立 RoT
要建立信任根,安全硅 IP 應(yīng)用程序開發(fā)人員必須創(chuàng)建公鑰和私鑰對。橢圓曲線密碼術(shù) (ECC) 或 RSA 密鑰對適用于此目的。為公鑰計(jì)算一個唯一的加密值,稱為散列摘要,并將此散列摘要用作根的唯一標(biāo)識符。必須將公鑰的散列摘要安全地提供給安全硅 IP 的非易失性存儲器 (NVM)。私鑰用于計(jì)算應(yīng)用程序二進(jìn)制映像的數(shù)字簽名,該二進(jìn)制映像旨在在安全硅 IP 內(nèi)執(zhí)行。
在運(yùn)行時,當(dāng)應(yīng)用程序加載到安全硅 IP 中時,簽名、虛擬根公鑰和其他元數(shù)據(jù)將附加到應(yīng)用程序的映像中。安全硅 IP 使用附加到映像的公鑰來確定該公鑰的哈希摘要是否與存儲在處理器 NVM 中的虛擬根的 ID 匹配。如果找到匹配項(xiàng),則使用公鑰來驗(yàn)證應(yīng)用程序本身的哈希摘要的簽名。如果圖像的簽名得到驗(yàn)證,安全處理器會在硬件中應(yīng)用應(yīng)用程序的根權(quán)限。
請注意,創(chuàng)建應(yīng)用程序的實(shí)體擁有私鑰。安全硅 IP 永遠(yuǎn)不會看到這個密鑰,該密鑰由實(shí)體安全地持有并且永遠(yuǎn)不應(yīng)該暴露。
KDF 在隔離應(yīng)用程序中的作用
安全硅 IP 內(nèi)部的硬件密鑰派生功能 (KDF) 對于進(jìn)一步提供虛擬根之間的隔離是必要的。KDF 應(yīng)基于標(biāo)準(zhǔn),例如美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) SP 800-108。KDF 接受幾個用于派生密鑰的輸入。為了提供根之間的隔離,唯一的根標(biāo)識符用作 KDF 的一個輸入。
當(dāng)應(yīng)用程序加載到安全硅 IP 中時,根標(biāo)識符被編程到 KDF 中。這意味著由兩個不同的根私鑰簽名的兩個不同的應(yīng)用程序不能派生同一組密鑰,即使 KDF 的所有其他輸入?yún)?shù)都相同。因此,在安全硅 IP 內(nèi)執(zhí)行的應(yīng)用程序可以使用 KDF 來派生其自己獨(dú)特的應(yīng)用程序?qū)ΨQ密鑰或 ECC 密鑰對。
使用 KDF 派生應(yīng)用程序密鑰的另一個好處是您不需要將密鑰存儲在 NVM 中。靜態(tài)存儲在內(nèi)存中的密鑰總是容易受到攻擊。下次應(yīng)用程序需要使用特定密鑰時,應(yīng)用程序會執(zhí)行與之前執(zhí)行的相同的密鑰派生過程。
使用此 KDF 的優(yōu)點(diǎn)是您可以重復(fù)重新導(dǎo)出相同的對稱或 ECC 公鑰和私鑰對。它們總是即時派生的。一旦應(yīng)用程序完成了密鑰,它就會從系統(tǒng)中刷新。
簡而言之,兩個不同的虛擬根不能創(chuàng)建相同的鍵。原因是可以使用 KDF 派生的密鑰使用根的標(biāo)識符作為數(shù)據(jù)的一部分來派生這些密鑰。這就是在應(yīng)用程序之間實(shí)現(xiàn)加密隔離的方式。
其他資產(chǎn)
的隔離 安全硅 IP 可以將在給定虛擬根上下文中執(zhí)行的應(yīng)用程序的隔離擴(kuò)展到派生密鑰之外。例如,希望應(yīng)用程序不共享 NVM 的區(qū)域。此外,人們可能希望限制對安全硅 IP 的通用輸入和輸出 (GPIO) 的訪問。給定虛擬根權(quán)限所應(yīng)用的策略可以維持對此類資產(chǎn)的嚴(yán)格訪問控制。
一些應(yīng)用程序要求安全硅 IP 通過安全總線將派生密鑰或從 NVM 讀取的密鑰傳送到外部處理單元。由于其單一用途或性能原因,可以使用該外部處理單元。必須設(shè)置虛擬根的權(quán)限,以便只有應(yīng)將密鑰傳遞給外部處理單元的應(yīng)用程序才能這樣做。不打算將密鑰傳遞給外部處理單元的其他應(yīng)用程序不應(yīng)訪問安全總線。
結(jié)論
在此安全保護(hù)傘下,為此安全硅 IP 開發(fā)應(yīng)用程序的實(shí)體維護(hù)其特定虛擬根的私鑰。因此,其他實(shí)體無法訪問這些派生密鑰、特定密鑰總線、NVM 內(nèi)存的地址范圍、GPIO 引腳或任何其他相關(guān)數(shù)據(jù)。這可以阻止其他人嘗試通過攻擊或意外導(dǎo)出這些關(guān)鍵數(shù)據(jù)。例如,開發(fā)人員的錯誤不會導(dǎo)致錯誤地訪問他人的資產(chǎn)。
這些資產(chǎn)在硬件中受到保護(hù)。一旦在硬件中為基本密鑰、NVM、安全密鑰目的地和其他相關(guān)資產(chǎn)設(shè)置了權(quán)限,應(yīng)用程序就無法修改這些權(quán)限。它們是在硬件中設(shè)置的,不能被覆蓋。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19895瀏覽量
235201 -
soc
+關(guān)注
關(guān)注
38文章
4388瀏覽量
222752 -
RISC-V
+關(guān)注
關(guān)注
46文章
2570瀏覽量
48822
發(fā)布評論請先 登錄
海外數(shù)字經(jīng)濟(jì)信任度報告正式發(fā)布,首度揭示消費(fèi)者數(shù)字支付信任度與GDP增長的正相關(guān)性

Java微服務(wù)中如何確保安全性?
如何實(shí)現(xiàn) HTTP 協(xié)議的安全性
電池的安全性測試項(xiàng)目有哪些?

永磁同步電機(jī)的安全性分析
在電氣安裝中通過負(fù)載箱實(shí)現(xiàn)最大效率和安全性
socket編程的安全性考慮
UWB模塊的安全性評估
智能系統(tǒng)的安全性分析
云計(jì)算安全性如何保障
固態(tài)電池安全性怎么樣
在不影響性能或占用空間的情況下隔離您的CAN系統(tǒng)

評論