、在我之前的專欄中,我們討論了系統(tǒng)和 SoC 設(shè)計(jì)人員如何增加和隔離安全硅 IP 信任根 (RoT),以實(shí)現(xiàn)其應(yīng)用程序的超安全性。
這種安全硅 IP 的解決方案是為多個(gè) RoT 提供支持,例如Rambus的 CryptoManager 信任根。提供給這個(gè)安全硅 IP 的每個(gè)根都有自己的身份和一組權(quán)限,這些權(quán)限建立了對(duì)其執(zhí)行所需資產(chǎn)的訪問權(quán)限。加載應(yīng)用程序時(shí),其請(qǐng)求的權(quán)限被編程到硬件寄存器,以便它只能訪問其指定的資產(chǎn)。根據(jù)硬件中應(yīng)用的其他應(yīng)用程序的權(quán)限,可以限制在安全硅 IP 內(nèi)執(zhí)行的其他應(yīng)用程序訪問原始應(yīng)用程序的資產(chǎn)。
如果攻擊者想要在安全硅 IP 上運(yùn)行應(yīng)用程序,他們必須能夠訪問虛擬根私鑰。即使攻擊者可以訪問另一個(gè)應(yīng)用程序的虛擬根私鑰,他們的應(yīng)用程序也無權(quán)訪問原始應(yīng)用程序的資產(chǎn)。
然而,系統(tǒng)或 SoC 設(shè)計(jì)人員若要擁有此功能,他們必須選擇安全硅 IP,為他們提供多個(gè)硬件 RoT,每個(gè)硬件 RoT 都隔離在安全硅 IP 本身內(nèi)。這意味著每個(gè)實(shí)體都依賴于自己的虛擬 RoT 并執(zhí)行安全功能,而無需信任其他實(shí)體。
應(yīng)用示例 以下
是一些基于此類安全硅 IP 的具體應(yīng)用示例。示例實(shí)體可以是數(shù)字版權(quán)管理 (DRM)、銀行或安全通信應(yīng)用程序。
每個(gè)應(yīng)用程序都在彼此完全隔離的情況下執(zhí)行,如上框所示。不太安全的替代方案是所有三個(gè)實(shí)體共享同一組資產(chǎn)(下框)。
如前所述,系統(tǒng)和 SoC 設(shè)計(jì)人員需要考慮其設(shè)備將支持的潛在客戶應(yīng)用。一些可能的應(yīng)用包括用于流式視頻、銀行業(yè)務(wù)和安全通信的 DRM。這些應(yīng)用程序中的每一個(gè)對(duì)安全性和對(duì)安全硅 IP 資產(chǎn)的訪問都有不同的要求。
DRM 應(yīng)用程序:在 DRM 應(yīng)用程序的情況下,需要將派生密鑰從安全硅 IP 輸出到可以解密和解碼視頻流的外部引擎。在這種情況下,我們可以使用安全硅 IP 提供的權(quán)限模型來確保只有 DRM 應(yīng)用程序可以導(dǎo)出解密流所需的密鑰。此外,我們可以使用安全硅 IP 的權(quán)限,僅允許 DRM 應(yīng)用程序?qū)⒚荑€傳送到視頻解碼塊。
圖 2 詳細(xì)說明了 DRM 應(yīng)用程序可能使用的安全硅 IP。非易失性存儲(chǔ)器 (NVM) 包含多個(gè)應(yīng)用程序基本密鑰。但是,基于虛擬根權(quán)限的 DRM 應(yīng)用程序無法訪問被涂黑的密鑰(KB 和 KC)。唯一可以訪問的密鑰是 DRM 基本密鑰 KD。
圖 2:將安全硅 IP 用于 DRM 應(yīng)用程序
在 CPU 上執(zhí)行的應(yīng)用程序請(qǐng)求 KDF 使用 KD 導(dǎo)出視頻解密密鑰 KV。應(yīng)用程序還要求將 KV 直接輸出到 Key Transport 機(jī)制,以防止 DRM 應(yīng)用程序中潛在的軟件漏洞泄露 KV。密鑰傳輸機(jī)制通過安全總線將 KV 傳遞給視頻解密和解碼器模塊。視頻解密和解碼器塊然后解密和解碼要為用戶播放的視頻流。
銀行憑證應(yīng)用:圖 3 詳細(xì)說明了安全硅 IP 的第二種應(yīng)用可能性——保護(hù)用戶的銀行憑證。與之前的 DRM 應(yīng)用程序一樣,銀行應(yīng)用程序必須對(duì) NVM 中的基本密鑰 KB 具有獨(dú)占訪問權(quán)。此外,銀行應(yīng)用程序無權(quán)訪問 NVM 中的其他基本密鑰。
應(yīng)用程序可以請(qǐng)求 KDF 使用 KB 導(dǎo)出解密密鑰 KA。KA 直接傳遞給高級(jí)加密標(biāo)準(zhǔn) (AES) 引擎,因此 CPU 永遠(yuǎn)不會(huì)讀取其值。然后,應(yīng)用程序請(qǐng)求 AES 引擎解密存儲(chǔ)在系統(tǒng)外部文件系統(tǒng)中的加密銀行憑證。一旦憑證被解密,它們就會(huì)被傳送到安全硅 IP 的 SRAM,以供在主 CPU 上執(zhí)行的銀行應(yīng)用程序使用。
如果攻擊者對(duì)在安全硅 IP 內(nèi)執(zhí)行的銀行應(yīng)用程序進(jìn)行逆向工程,攻擊者仍然無法檢索銀行憑證解密密鑰 KA。此外,如果攻擊者有權(quán)訪問另一個(gè)虛擬根的私鑰來簽署他們自己的銀行應(yīng)用程序版本,他們的應(yīng)用程序?qū)o法派生適當(dāng)?shù)?KA。他們的派生密鑰 KA‘ 無法解密銀行憑證。
安全通信應(yīng)用程序:圖 4 詳細(xì)介紹了第三個(gè)應(yīng)用程序示例,即安全通信。安全通信應(yīng)用程序需要在使用前進(jìn)行一些設(shè)置。安全硅 IP 必須首先使用其安全通信基礎(chǔ)密鑰 KC 來導(dǎo)出橢圓曲線加密 (ECC) 私鑰 KP。然后使用 KP 導(dǎo)出相應(yīng)的公鑰 KU。KU 在證書簽名請(qǐng)求中從設(shè)備中導(dǎo)出。
圖 4:安全硅 IP 用于安全通信應(yīng)用。
證書頒發(fā)機(jī)構(gòu) (CA) 使用證書簽名請(qǐng)求生成由 CA 的私鑰簽名的數(shù)字證書。數(shù)字證書被導(dǎo)入到安全硅 IP 中。數(shù)字證書 CERT 存儲(chǔ)在 NVM 中只能由安全通信應(yīng)用程序訪問的位置。
在與另一方建立安全會(huì)話的初始階段,安全通信應(yīng)用程序從 NVM 讀取 CERT。安全通信應(yīng)用程序請(qǐng)求 KDF 使用 KC 重新導(dǎo)出私鑰 KP,并將 KP 傳遞給公鑰引擎。應(yīng)用程序接下來使用安全硅 IP 的哈希引擎計(jì)算安全通信參數(shù)的哈希摘要。得到的安全通信參數(shù)的散列摘要被傳送到公鑰引擎。
安全通信應(yīng)用程序請(qǐng)求公鑰引擎使用 KP 和安全通信參數(shù)的散列摘要生成數(shù)字簽名。數(shù)字簽名放置在 SRAM 中,在安全處理器的 CPU 上執(zhí)行的安全通信應(yīng)用程序可以訪問該 SRAM。安全通信應(yīng)用程序?qū)С?CERT、安全通信參數(shù)和數(shù)字簽名。導(dǎo)出的數(shù)據(jù)被傳輸?shù)綖槠浣踩ǖ赖囊环健?/p>
隨著安全通信協(xié)議的發(fā)展,安全硅 IP 用于與對(duì)方建立共享秘密。此共享機(jī)密可與安全硅 IP 的 AES 引擎(或其他對(duì)稱密碼)一起使用,以加密或解密來自或來自另一方的數(shù)據(jù)塊。
結(jié)論
您的應(yīng)用程序保持最高級(jí)別的安全性至關(guān)重要。此處描述的示例演示了如何在應(yīng)用程序之間建立完全的資產(chǎn)隔離。
此外,如果某個(gè)應(yīng)用程序已被堅(jiān)定的攻擊者進(jìn)行了逆向工程,那么他們獲得的價(jià)值就很小。攻擊者必須有權(quán)訪問應(yīng)用程序的虛擬根私鑰。即使攻擊者可以訪問另一個(gè)應(yīng)用程序的虛擬根私鑰,他們的應(yīng)用程序也無權(quán)訪問原始應(yīng)用程序的資產(chǎn)。
審核編輯:郭婷
-
安全
+關(guān)注
關(guān)注
1文章
336瀏覽量
35639 -
Rambus
+關(guān)注
關(guān)注
0文章
57瀏覽量
18774
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論