OEM 越來越要求其下一代系統(tǒng)具有更高的安全性。反過來,系統(tǒng)和片上系統(tǒng) (SoC) 設(shè)計人員的負擔(dān)是保護敏感資產(chǎn)免受未經(jīng)授權(quán)或惡意訪問的負擔(dān)。在大多數(shù)情況下,設(shè)計社區(qū)選擇硬件而不是軟件方法來設(shè)計安全性。
如今,設(shè)計人員將獲得各種安全處理器品牌。但是,它們中的大多數(shù)都遵循幾乎相同的芯片架構(gòu)。它最好的特征是基本上有兩個域,一個是非安全的,而另一個是安全的,用一個位將安全域與非安全域分開,圖 1。
圖 1a 和圖 1b – 安全芯片架構(gòu)的特點是具有兩個域。一個是非安全的(圖 1b),而另一個是安全的(圖 1a),用一個位將安全域與非安全域分開。
此外,來自不同實體(其中實體可能是 SoC 供應(yīng)商、設(shè)備 OEM、服務(wù)提供商、最終用戶或設(shè)備生態(tài)系統(tǒng)中的其他參與者)的不同應(yīng)用程序可能在同一安全域中運行。但是,它們彼此之間并不隔離,它們不僅可以訪問自己的密鑰,還可以訪問其他應(yīng)用程序中的密鑰。硬件分區(qū)不是在不同實體之間進行的,而只是在安全和非安全之間。
用于安全應(yīng)用程序的沙盒
實際上,安全處理器使用一位為安全應(yīng)用程序創(chuàng)建沙箱,如圖1a。計算機安全術(shù)語中的“沙盒”是指一種軟件或硬件結(jié)構(gòu),其中創(chuàng)建一個單獨的、受限制的環(huán)境,僅用于運行某些應(yīng)用程序,通常對其操作有一組特定的限制。
實際上,此沙箱適用于安全應(yīng)用程序,可以說每個安全應(yīng)用程序都在同一個沙箱中運行。運行安全應(yīng)用程序的實體之間沒有隔離。如果正在運行安全應(yīng)用程序,則它與其他所有應(yīng)用程序一起處于“安全”世界中。在這種情況下,問題之所以出現(xiàn),是因為不同的實體在安全方面可能并不完全相互信任。如果一個實體遭受惡意攻擊,則會危及所有其他實體的安全性。
讓我們以編寫不佳的數(shù)字版權(quán)管理 (DRM) 內(nèi)容保護應(yīng)用程序為例。它可能會危及在同一處理器上運行的支付應(yīng)用程序的安全性,并允許訪問銀行信息。同樣,這里的問題是應(yīng)用程序之間缺乏隔離。一個編寫不當(dāng)或惡意的應(yīng)用程序可能會危及在該處理器上運行的其他應(yīng)用程序的安全性。
這是一個缺點。另一個問題是存在廣泛的攻擊,攻擊者可以更改設(shè)計中的信號值。那些所謂的“故障攻擊”或“毛刺攻擊”是基于擾動電路以改變其操作。它們的范圍從簡單的電源和時鐘毛刺到激光脈沖、電磁脈沖等。正確執(zhí)行的此類攻擊可以將位控制安全模式更改為某些操作的安全模式,從而允許非安全應(yīng)用程序訪問敏感數(shù)據(jù)和密鑰。
許多域和隔離
另一方面,考慮具有多個域或多個信任根的安全處理器內(nèi)核,圖 2。在這種情況下,每個實體都有一個單獨的安全域。這些安全域使用強大的硬件安全性彼此完全分離。密鑰和硬件資源等安全資產(chǎn)是完全隔離的。
圖 2 – 具有多個域或多個信任根的安全處理器內(nèi)核。
在此安全處理器體系結(jié)構(gòu)中,每個實體都有自己的一組已簽名應(yīng)用程序。當(dāng)安全處理器從一個應(yīng)用程序切換到另一個應(yīng)用程序時,所有上下文都會從安全處理器中刷新。當(dāng)安全處理器從一個應(yīng)用程序切換到另一個應(yīng)用程序時,不會保留任何數(shù)據(jù)、密鑰或其他信息。唯一的例外是能夠在不同的應(yīng)用程序之間傳遞消息,如果應(yīng)用程序編寫器明確需要的話。這可確保不同實體之間無法共享任何上下文。
因此,安全資產(chǎn)被完全安全地分配給特定實體,因此默認情況下沒有重疊,這意味著不允許不同的實體訪問相同的資源。但是,如果分配正確,重疊是可以接受的。
假設(shè)有一個 SoC 供應(yīng)商使用的測試和調(diào)試端口。它希望向其 OEM 客戶提供相同的測試和調(diào)試端口。它們可能允許為 OEM 根設(shè)置與為 SoC 供應(yīng)商的根設(shè)置相同的權(quán)限位,從而允許訪問該特定測試和首次亮相資源。
相反,SoC 供應(yīng)商可能具有它想要保留的其他測試和調(diào)試端口,而不是使它們可用。因此,在如何進行這些分配方面存在完全的靈活性,這在很大程度上取決于 SoC 設(shè)計人員想要重疊的資源類型。其他安全功能不能重疊。以加密和解密密鑰為例。每個實體都有一個單獨的密鑰空間或一組密鑰,它們不能相互共享。
分配給每個根的鍵
在此信任體系結(jié)構(gòu)的多個根中,將為每個根分配一組密鑰。如上所述的一個操作是,它們使應(yīng)用程序能夠針對每個根進行不同的簽名。因此,每個根本質(zhì)上都有自己的一組私有應(yīng)用程序。將應(yīng)用程序加載到安全處理器內(nèi)核時,將標(biāo)識根,然后硬件專門為該根配置自身。
此外,與根關(guān)聯(lián)的鍵提供了根使用的一組完整的、隔離的派生密鑰。因此,一個密鑰可以變成多個密鑰,而這些密鑰可用于相當(dāng)多的不同安全操作。但是每組密鑰對于每個根都是唯一的,并且一個根無法從另一個根訪問密鑰,這是硬件強制執(zhí)行的。
一組權(quán)限也與每個根相關(guān)聯(lián)。這些權(quán)限與安全處理器內(nèi)核中的不同硬件資源相關(guān),例如調(diào)試和 I/O 引腳。這些不同的資源可以在不同的根之間分區(qū),同樣是硬件強制執(zhí)行的。一個根可能能夠訪問調(diào)試端口;另一個根可能沒有或只能部分訪問這些。
一個根可能能夠控制芯片上的某些外部邏輯。另一個根可能能夠控制一組不同的外部邏輯,但可能與另一個根不同。在本例中,讓我們再次使用我們的測試和調(diào)試示例。SoC 供應(yīng)商有一個根,使其能夠完全控制測試和調(diào)試邏輯,并完全控制該 SoC 其他方面的配置。
它可能會向購買其SoC的OEM授予部分功能,但不是全部功能。SoC 供應(yīng)商可能不希望 OEM 能夠訪問所有測試和調(diào)試邏輯,因為 OEM 可能會過多了解供應(yīng)商不想共享的 SoC 技術(shù)。它可能允許 OEM 配置 SoC 的某些部分,但不是全部。
從一個實體到另一個實體的委派是根的另一個方面。與 SoC 供應(yīng)商可以將某些權(quán)限委派給 OEM 一樣,如果 SoC 供應(yīng)商授予 OEM 權(quán)限,OEM 也可以將某些權(quán)限委派給服務(wù)提供商。但是,該委派的權(quán)限必須是 OEM 已擁有的權(quán)限的子集。
此外,根據(jù)業(yè)務(wù)關(guān)系和系統(tǒng)要求,SoC 供應(yīng)商可能會讓 OEM 抹去 SoC 供應(yīng)商的根目錄。這意味著 SoC 供應(yīng)商將無法再在 OEM 設(shè)備上運行軟件。
根隔離對即將推出的 SoC 設(shè)計至關(guān)重要
如今,安全性對于繪圖板上的幾乎所有設(shè)備和系統(tǒng)都變得越來越重要。但是,設(shè)計人員必須記住,安全性有不同的用途,不同的實體需要安全功能。
例如,芯片制造商需要安全的功能來制造和測試其芯片產(chǎn)品。他們的 OEM 客戶還需要為其特定應(yīng)用提供安全性。服務(wù)提供商和其他人可能還需要安全功能。因此,SoC 設(shè)計人員需要提供可在芯片的整個生命周期中由這些不同實體使用的安全性。但是,他們希望在不損害自身安全的情況下實現(xiàn)這一目標(biāo)。
正如我們在這里所說,這個想法是在應(yīng)用程序之間隔離。一個編寫不當(dāng)或惡意的應(yīng)用程序可能會危及該 SoC 中所有其他應(yīng)用程序的安全性。最重要的是避免每個應(yīng)用程序容易受到惡意攻擊,同時在該 SoC 上運行的所有應(yīng)用程序之間保持完全信任。
審核編輯: 郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19348瀏覽量
230264 -
soc
+關(guān)注
關(guān)注
38文章
4180瀏覽量
218492 -
DRM
+關(guān)注
關(guān)注
0文章
46瀏覽量
15128
發(fā)布評論請先 登錄
相關(guān)推薦
評論