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