許多設(shè)計人員仍然認為,通過禁止對MCU的調(diào)試訪問,他們可以實現(xiàn)“非常好”的IP安全性。在開發(fā)周期之后,使用用戶可配置的設(shè)置阻止調(diào)試路徑(JTAG或SWD)。然而,對于想要對產(chǎn)品進行逆向工程的中等技術(shù)知識產(chǎn)權(quán)盜版者而言,這種方法實際上并沒有太大的威懾力。
簡單地阻止調(diào)試訪問并不會阻止從包含關(guān)鍵位置的位置讀取設(shè)備內(nèi)存軟件IP。雖然有幾種方法可以解決這個問題,但最有效的方法之一是通過創(chuàng)建內(nèi)部硬件和軟件進入障礙來隔離關(guān)鍵IP。
然而,在描述兩種解決方案之前,值得列舉使嵌入式空間越來越危險的發(fā)展。
洗碗機,冰箱和家庭自動化系統(tǒng)等設(shè)備正在使用越來越強大的MCU實現(xiàn)先進的診斷和便利功能。實現(xiàn)這些功能的軟件IP需要花費時間和金錢來開發(fā),這意味著需要采取有效措施來防止競爭對手盜竊。
當設(shè)備或設(shè)備或多或少地自主運行時,保護產(chǎn)品IP要容易得多。 “大數(shù)據(jù)”趨勢 - 收集可用于營銷目的的數(shù)TB信息 - 使嵌入式系統(tǒng)成為發(fā)起數(shù)據(jù)并通過物聯(lián)網(wǎng)(IoT)連接傳輸數(shù)據(jù)的關(guān)鍵任務(wù)?;ヂ?lián)性的這種重大轉(zhuǎn)變增加了保護的必要性。
第三個趨勢 - 一個不經(jīng)常提到的 - 是開源軟件的廣泛采用。工程師喜歡開源,因為它通常成本較低,易于使用,并縮短了設(shè)計周期。例如,Linux在許多行業(yè)領(lǐng)域中被廣泛使用,但開源軟件還包括諸如通信棧之類的代碼。盡管有其優(yōu)勢,但開源軟件比專有系統(tǒng)更容易受到攻擊,因為任何人 - 包括IP盜版者 - 都可以獲取源代碼,分析和修改它。
硬件安全性
實施安全性的經(jīng)過時間考驗的方法是包括一個單獨的安全處理器 - 通常是一個MCU - 具有自己精心控制的訪問和執(zhí)行環(huán)境。例如,安全子系統(tǒng)可以是加密引擎。除了增加安全性之外,引擎還將主MCU從軟件中執(zhí)行加密算法的任務(wù)中卸載。在該方法中,通常采用基于內(nèi)部描述符的DMA來有效地編程安全關(guān)聯(lián)數(shù)據(jù)和分組指針。智能狀態(tài)機基于協(xié)議選擇和分組邊界來調(diào)度加密引擎。
雖然高度安全,但使用額外的處理器存在缺點。三個最突出的是:1)額外的物料清單(BOM)成本; 2)降低整個系統(tǒng)的性能; 3)缺乏可編程性。其他選項在概念上與此方法類似。
ARM TrustZone
對于32位設(shè)計,ARM Holdings Ltd.開發(fā)了一項名為TrustZone的技術(shù),該技術(shù)有很長的路要走減輕這些缺點。 TrustZone是指可以在許多ARM內(nèi)核中實現(xiàn)的安全擴展 - 并且緊密集成到其Cortex-A處理器中。
ARM的系統(tǒng)級安全方法始于執(zhí)行環(huán)境,并使用特定于公司AMBA總線和AXI總線的特定TrustZone IP塊進行擴展。系統(tǒng)方法可以保護外圍設(shè)備,如內(nèi)存和加密塊。
TrustZone架構(gòu)基本上通過定義處理器,外圍設(shè)備,內(nèi)存地址甚至緩存區(qū)域來隔離基于ARM內(nèi)核的MCU的硬件子集,以作為“安全”或“非安全”硬件運行。 TrustZone技術(shù)可以動態(tài)地將整個MCU暴露給安全軟件,或者將該MCU的一部分動態(tài)暴露給普通軟件。
TrustZone通過將處理器內(nèi)核分成兩個虛擬內(nèi)核來實現(xiàn)這一目標,一個在正常環(huán)境中運行,其他在安全的世界中工作(圖1)。除了傳統(tǒng)的用戶和內(nèi)核模式劃分之外,這種機制實質(zhì)上創(chuàng)建了一個新級別的執(zhí)行權(quán)限。監(jiān)控模式軟件可以仔細控制兩個世界之間的轉(zhuǎn)換。

圖1:ARM的TrustZone架構(gòu)在概念上基于創(chuàng)建虛擬核心。 (由Texas Instruments提供)
任何具有基于ARM的產(chǎn)品的MCU供應(yīng)商都可以選擇實施TrustZone。德州儀器(TI)通過其KeyStone II片上系統(tǒng)(SoC)架構(gòu)為支持TrustZone的應(yīng)用提供支持,該架構(gòu)具有集成的ARM Cortex-A15集群。由于TrustZone集成在ARM的Cortex-A處理器中,TI更經(jīng)濟的Sitara系列(基于A8內(nèi)核)的成員都支持TrustZone,包括AM3352ZCE27。
其他支持TrustZone的產(chǎn)品包括Atmel的SAMA5D4系列32位MCU,包括ATSAMA5D41A-CU和飛思卡爾半導(dǎo)體的i.MX6系列,包括MCIMX6X1CVK08AB。
由于它是基于硬件的,因此TrustZone為上層提供了堅實的基礎(chǔ)??梢詷?gòu)建安全軟件。創(chuàng)建受TrustZone保護的應(yīng)用程序涉及三個基礎(chǔ)元素。
可信執(zhí)行環(huán)境(TEE) - 在安全領(lǐng)域內(nèi)運行的軟件堆棧,以及啟用安全世界所需的通信功能與普通世界軟件交互的軟件。 TEE軟件通常包含一個小型微內(nèi)核和API,允許安全軟件與更大的以用戶為中心的軟件進行通信。
安全感知應(yīng)用程序和安全服務(wù),或受信任的應(yīng)用程序(TA)
安全監(jiān)視器,充當控制域之間遷移的虛擬網(wǎng)守。
物理核心通過調(diào)用稱為監(jiān)控模式的新處理器模式在兩個虛擬核心之間切換??梢酝ㄟ^激活A(yù)RM的安全監(jiān)視器調(diào)用(SMC)指令或硬件異常機制的子集,從正常模式進入監(jiān)視模式。配置IRQ,F(xiàn)IQ,外部數(shù)據(jù)中止和外部預(yù)取中止異常都可以使處理器切換到監(jiān)控模式。這些中斷也可以被分配更高的優(yōu)先級來保護安全世界的軟件免受拒絕服務(wù)攻擊。
TrustZone軟件
TrustZone硬件由實現(xiàn)類似分區(qū)的軟件架構(gòu)補充。在這種架構(gòu)中,所有與安全相關(guān)的功能,包括與安全外圍設(shè)備的接口,都是安全世界的范疇,而普通世界則處理其他任務(wù)。
在監(jiān)控模式下執(zhí)行的軟件通常會保存當前世界的軟件映像,并將該狀態(tài)恢復(fù)到其切換的位置。然后,它執(zhí)行從異常返回命令以在恢復(fù)的世界中重新啟動處理。
安全世界托管所有安全應(yīng)用程序,并通過監(jiān)視器代碼向正常世界中的客戶端提供經(jīng)過精心編排的服務(wù)。安全世界只能運行經(jīng)過大量審查的代碼。圖2顯示了TrustZone的軟件架構(gòu)。

圖2:TrustZone軟件架構(gòu)。 (由ARM有限公司提供)
沒有必要開發(fā)復(fù)雜的軟件來為TrustZone提供有意義的安全性。實際上,有時編寫復(fù)雜的軟件會通過引入和隱藏其他漏洞來破壞安全目標。實現(xiàn)的選擇取決于使用場景,可以從復(fù)雜的完全可搶占的操作系統(tǒng)到為普通世界提供按需服務(wù)的一組被動庫。 TrustZone架構(gòu)提供安全定時器和安全感知中斷控制器,用于構(gòu)建可搶占的安全操作系統(tǒng)。
安全啟動對于保護IP至關(guān)重要,因為當所有組件都加載時,MCU處于相對受損的環(huán)境中。片上ROM代碼在TrustZone引導(dǎo)過程中起著關(guān)鍵作用。它的作用是存儲使用OEM私鑰簽名的可信軟件映像。 OEM的私鑰的公共對應(yīng)物在制造期間僅被編程到MCU中一次。
受信任的OEM軟件映像引導(dǎo)輔助引導(dǎo)加載程序,后者又引導(dǎo)高級操作系統(tǒng)。此過程建立完整的信任鏈,因為第一級組件可以使用另一個嵌入式公鑰來驗證它嘗試加載的下一級組件,依此類推。這種安全的信任鏈可以一直擴展到加載安全應(yīng)用程序。
16位處理器的解決方案
雖然TrustZone特定于基于ARM的產(chǎn)品,但具有16位和自己的32位MCU的MCU供應(yīng)商面臨著相同的安全問題。
他們面臨的一個知識產(chǎn)權(quán)保護問題源于設(shè)計和支持生態(tài)系統(tǒng)的普及,其中多家公司參與了系統(tǒng)級產(chǎn)品的開發(fā)過程。每個合作公司都有自己的IP保護。在前面描述的傳統(tǒng)方法中,該IP通常存儲在其自己的專用代碼保護MCU的閃存中的固件中(圖3)。
意外結(jié)果是一個相當昂貴的系統(tǒng)級產(chǎn)品,因為擁有多個MCU可以增加BOM成本和設(shè)計時間。除了增加系統(tǒng)成本之外,這種做法還使采購部門更難以管理庫存和交貨時間。

圖3:設(shè)計生態(tài)系統(tǒng)創(chuàng)造了一個特殊的知識產(chǎn)權(quán)保護挑戰(zhàn)。 (由Microchip Technology提供)
Microchip Technology的解決方案是其CodeGuard安全技術(shù),允許多家公司安全地共享單個MCU的資源。多個安全處理器可以集成到單個16位Microchip MCU或數(shù)字信號控制器(DSC)中。
所有Microchip Technology的16位產(chǎn)品均提供CodeGuard??梢詥⒂没荆虚g或高級安全功能的程度主要取決于MCU中嵌入的閃存量。例如,所有PIC24F器件(例如PIC24FJ16GA002-I/SS)都可以實現(xiàn)基本的安全功能。具有64 KB片上閃存和更高容量的PIC24H器件(如PIC24HJ12GP202-I/SS)可實現(xiàn)高級安全功能。中間級安全性可以在DSPIC30F1010設(shè)備上實現(xiàn),例如DSPIC30F1010-30I/SP。
CodeGuard是一種多功能且強大的技術(shù),可實現(xiàn)以下功能和流程:
內(nèi)存分段和訪問權(quán)限
段擦除/編程選項支持安全啟動加載程序/內(nèi)核
安全中斷處理
安全開發(fā)和調(diào)試
每個應(yīng)用程序都有自己的定義和實現(xiàn)。然而,一個關(guān)鍵特性是內(nèi)存分段和訪問權(quán)限,如圖4所示。

圖4:CodeGuard內(nèi)存分段和訪問權(quán)限。 (由Microchip Technology提供)
程序閃存,RAM和EEPROM可以分為三個受保護的閃存段:
引導(dǎo)段具有最高的訪問權(quán)限和可配置多種尺寸。簡單但高度安全的引導(dǎo)加載程序需要一個小的內(nèi)存空間,而復(fù)雜的操作系統(tǒng)需要更大的空間。引導(dǎo)段可以被賦予讀或?qū)憴?quán)限(如在Flash更新中)。無論其他段是否受代碼保護,它都可以調(diào)用例程或跳轉(zhuǎn)到任何其他段。它還可以重寫自己的位置,這一功能使其能夠存儲和更新加密密鑰。如果虛假寫入是開發(fā)團隊的問題,則可以完全禁用對引導(dǎo)段的所有Flash寫入??梢試栏裣拗茝钠渌卧L問引導(dǎo)段或保持相對開放。引導(dǎo)段還可以保護片上數(shù)據(jù)Flash的一部分以禁止從其他段訪問。
安全段主要用于存儲面向應(yīng)用的IP,如電機控制軟件,聲學(xué)算法和噪聲 - 抑制算法。它有許多大小選項,可以限制其他兩個部分(引導(dǎo)和一般)的訪問。安全段可以保護片上RAM和片上數(shù)據(jù)EEPROM的部分。當安全段配置為“標準安全性”時,可以為引導(dǎo)段提供對安全段的不受限制的訪問。但是,當安全段配置為“高安全性”時,安全段和引導(dǎo)段具有相同的權(quán)限。
通用段是用戶應(yīng)用程序的指定區(qū)域,例如外圍驅(qū)動程序,中斷服務(wù)例程(ISR)和大型查找表。其大小基本上是片上閃存減去引導(dǎo)和安全段的大小,為256 KB。
-
mcu
+關(guān)注
關(guān)注
147文章
18925瀏覽量
398139 -
監(jiān)視器
+關(guān)注
關(guān)注
1文章
805瀏覽量
35103 -
IP
+關(guān)注
關(guān)注
5文章
1863瀏覽量
155838
發(fā)布評論請先 登錄
采用MCU實現(xiàn)先進的診斷和便利功能及軟件IP的安全性
評論