許多設計人員仍然認為,通過禁止對MCU的調試訪問,他們可以實現“非常好”的IP安全性。在開發周期之后,使用用戶可配置的設置阻止調試路徑(JTAG或SWD)。然而,對于想要對產品進行逆向工程的中等技術知識產權盜版者而言,這種方法實際上并沒有太大的威懾力。
簡單地阻止調試訪問并不會阻止從包含關鍵位置的位置讀取設備內存軟件IP。雖然有幾種方法可以解決這個問題,但最有效的方法之一是通過創建內部硬件和軟件進入障礙來隔離關鍵IP。
然而,在描述兩種解決方案之前,值得列舉使嵌入式空間越來越危險的發展。
洗碗機,冰箱和家庭自動化系統等設備正在使用越來越強大的MCU實現先進的診斷和便利功能。實現這些功能的軟件IP需要花費時間和金錢來開發,這意味著需要采取有效措施來防止競爭對手盜竊。
當設備或設備或多或少地自主運行時,保護產品IP要容易得多。 “大數據”趨勢 - 收集可用于營銷目的的數TB信息 - 使嵌入式系統成為發起數據并通過物聯網(IoT)連接傳輸數據的關鍵任務。互聯性的這種重大轉變增加了保護的必要性。
第三個趨勢 - 一個不經常提到的 - 是開源軟件的廣泛采用。工程師喜歡開源,因為它通常成本較低,易于使用,并縮短了設計周期。例如,Linux在許多行業領域中被廣泛使用,但開源軟件還包括諸如通信棧之類的代碼。盡管有其優勢,但開源軟件比專有系統更容易受到攻擊,因為任何人 - 包括IP盜版者 - 都可以獲取源代碼,分析和修改它。
硬件安全性
實施安全性的經過時間考驗的方法是包括一個單獨的安全處理器 - 通常是一個MCU - 具有自己精心控制的訪問和執行環境。例如,安全子系統可以是加密引擎。除了增加安全性之外,引擎還將主MCU從軟件中執行加密算法的任務中卸載。在該方法中,通常采用基于內部描述符的DMA來有效地編程安全關聯數據和分組指針。智能狀態機基于協議選擇和分組邊界來調度加密引擎。
雖然高度安全,但使用額外的處理器存在缺點。三個最突出的是:1)額外的物料清單(BOM)成本; 2)降低整個系統的性能; 3)缺乏可編程性。其他選項在概念上與此方法類似。
ARM TrustZone
對于32位設計,ARM Holdings Ltd.開發了一項名為TrustZone的技術,該技術有很長的路要走減輕這些缺點。 TrustZone是指可以在許多ARM內核中實現的安全擴展 - 并且緊密集成到其Cortex-A處理器中。
ARM的系統級安全方法始于執行環境,并使用特定于公司AMBA總線和AXI總線的特定TrustZone IP塊進行擴展。系統方法可以保護外圍設備,如內存和加密塊。
TrustZone架構基本上通過定義處理器,外圍設備,內存地址甚至緩存區域來隔離基于ARM內核的MCU的硬件子集,以作為“安全”或“非安全”硬件運行。 TrustZone技術可以動態地將整個MCU暴露給安全軟件,或者將該MCU的一部分動態暴露給普通軟件。
TrustZone通過將處理器內核分成兩個虛擬內核來實現這一目標,一個在正常環境中運行,其他在安全的世界中工作(圖1)。除了傳統的用戶和內核模式劃分之外,這種機制實質上創建了一個新級別的執行權限。監控模式軟件可以仔細控制兩個世界之間的轉換。
圖1:ARM的TrustZone架構在概念上基于創建虛擬核心。 (由Texas Instruments提供)
任何具有基于ARM的產品的MCU供應商都可以選擇實施TrustZone。德州儀器(TI)通過其KeyStone II片上系統(SoC)架構為支持TrustZone的應用提供支持,該架構具有集成的ARM Cortex-A15集群。由于TrustZone集成在ARM的Cortex-A處理器中,TI更經濟的Sitara系列(基于A8內核)的成員都支持TrustZone,包括AM3352ZCE27。
其他支持TrustZone的產品包括Atmel的SAMA5D4系列32位MCU,包括ATSAMA5D41A-CU和飛思卡爾半導體的i.MX6系列,包括MCIMX6X1CVK08AB。
由于它是基于硬件的,因此TrustZone為上層提供了堅實的基礎。可以構建安全軟件。創建受TrustZone保護的應用程序涉及三個基礎元素。
可信執行環境(TEE) - 在安全領域內運行的軟件堆棧,以及啟用安全世界所需的通信功能與普通世界軟件交互的軟件。 TEE軟件通常包含一個小型微內核和API,允許安全軟件與更大的以用戶為中心的軟件進行通信。
安全感知應用程序和安全服務,或受信任的應用程序(TA)
安全監視器,充當控制域之間遷移的虛擬網守。
物理核心通過調用稱為監控模式的新處理器模式在兩個虛擬核心之間切換。可以通過激活ARM的安全監視器調用(SMC)指令或硬件異常機制的子集,從正常模式進入監視模式。配置IRQ,FIQ,外部數據中止和外部預取中止異常都可以使處理器切換到監控模式。這些中斷也可以被分配更高的優先級來保護安全世界的軟件免受拒絕服務攻擊。
TrustZone軟件
TrustZone硬件由實現類似分區的軟件架構補充。在這種架構中,所有與安全相關的功能,包括與安全外圍設備的接口,都是安全世界的范疇,而普通世界則處理其他任務。
在監控模式下執行的軟件通常會保存當前世界的軟件映像,并將該狀態恢復到其切換的位置。然后,它執行從異常返回命令以在恢復的世界中重新啟動處理。
安全世界托管所有安全應用程序,并通過監視器代碼向正常世界中的客戶端提供經過精心編排的服務。安全世界只能運行經過大量審查的代碼。圖2顯示了TrustZone的軟件架構。
圖2:TrustZone軟件架構。 (由ARM有限公司提供)
沒有必要開發復雜的軟件來為TrustZone提供有意義的安全性。實際上,有時編寫復雜的軟件會通過引入和隱藏其他漏洞來破壞安全目標。實現的選擇取決于使用場景,可以從復雜的完全可搶占的操作系統到為普通世界提供按需服務的一組被動庫。 TrustZone架構提供安全定時器和安全感知中斷控制器,用于構建可搶占的安全操作系統。
安全啟動對于保護IP至關重要,因為當所有組件都加載時,MCU處于相對受損的環境中。片上ROM代碼在TrustZone引導過程中起著關鍵作用。它的作用是存儲使用OEM私鑰簽名的可信軟件映像。 OEM的私鑰的公共對應物在制造期間僅被編程到MCU中一次。
受信任的OEM軟件映像引導輔助引導加載程序,后者又引導高級操作系統。此過程建立完整的信任鏈,因為第一級組件可以使用另一個嵌入式公鑰來驗證它嘗試加載的下一級組件,依此類推。這種安全的信任鏈可以一直擴展到加載安全應用程序。
16位處理器的解決方案
雖然TrustZone特定于基于ARM的產品,但具有16位和自己的32位MCU的MCU供應商面臨著相同的安全問題。
他們面臨的一個知識產權保護問題源于設計和支持生態系統的普及,其中多家公司參與了系統級產品的開發過程。每個合作公司都有自己的IP保護。在前面描述的傳統方法中,該IP通常存儲在其自己的專用代碼保護MCU的閃存中的固件中(圖3)。
意外結果是一個相當昂貴的系統級產品,因為擁有多個MCU可以增加BOM成本和設計時間。除了增加系統成本之外,這種做法還使采購部門更難以管理庫存和交貨時間。
圖3:設計生態系統創造了一個特殊的知識產權保護挑戰。 (由Microchip Technology提供)
Microchip Technology的解決方案是其CodeGuard安全技術,允許多家公司安全地共享單個MCU的資源。多個安全處理器可以集成到單個16位Microchip MCU或數字信號控制器(DSC)中。
所有Microchip Technology的16位產品均提供CodeGuard。可以啟用基本,中間或高級安全功能的程度主要取決于MCU中嵌入的閃存量。例如,所有PIC24F器件(例如PIC24FJ16GA002-I/SS)都可以實現基本的安全功能。具有64 KB片上閃存和更高容量的PIC24H器件(如PIC24HJ12GP202-I/SS)可實現高級安全功能。中間級安全性可以在DSPIC30F1010設備上實現,例如DSPIC30F1010-30I/SP。
CodeGuard是一種多功能且強大的技術,可實現以下功能和流程:
內存分段和訪問權限
段擦除/編程選項支持安全啟動加載程序/內核
安全中斷處理
安全開發和調試
每個應用程序都有自己的定義和實現。然而,一個關鍵特性是內存分段和訪問權限,如圖4所示。
圖4:CodeGuard內存分段和訪問權限。 (由Microchip Technology提供)
程序閃存,RAM和EEPROM可以分為三個受保護的閃存段:
引導段具有最高的訪問權限和可配置多種尺寸。簡單但高度安全的引導加載程序需要一個小的內存空間,而復雜的操作系統需要更大的空間。引導段可以被賦予讀或寫權限(如在Flash更新中)。無論其他段是否受代碼保護,它都可以調用例程或跳轉到任何其他段。它還可以重寫自己的位置,這一功能使其能夠存儲和更新加密密鑰。如果虛假寫入是開發團隊的問題,則可以完全禁用對引導段的所有Flash寫入。可以嚴格限制從其他段訪問引導段或保持相對開放。引導段還可以保護片上數據Flash的一部分以禁止從其他段訪問。
安全段主要用于存儲面向應用的IP,如電機控制軟件,聲學算法和噪聲 - 抑制算法。它有許多大小選項,可以限制其他兩個部分(引導和一般)的訪問。安全段可以保護片上RAM和片上數據EEPROM的部分。當安全段配置為“標準安全性”時,可以為引導段提供對安全段的不受限制的訪問。但是,當安全段配置為“高安全性”時,安全段和引導段具有相同的權限。
通用段是用戶應用程序的指定區域,例如外圍驅動程序,中斷服務例程(ISR)和大型查找表。其大小基本上是片上閃存減去引導和安全段的大小,為256 KB。
-
mcu
+關注
關注
146文章
17718瀏覽量
358344 -
監視器
+關注
關注
1文章
784瀏覽量
33703 -
IP
+關注
關注
5文章
1767瀏覽量
151031
發布評論請先 登錄
相關推薦
評論