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