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