隨著物聯(lián)網(wǎng)的發(fā)展,智能化產(chǎn)品的不斷涌現(xiàn),信息安全問題也日漸受到關(guān)注。因此,通用安全MCU產(chǎn)品也應(yīng)運(yùn)而生,能夠更好地幫助客戶在其產(chǎn)品設(shè)計(jì)中加強(qiáng)安全性,助力IoT的應(yīng)用創(chuàng)新。
本文將詳細(xì)介紹上海航芯ACM32 MCU的安全特性。
安全啟動(dòng)與安全更新
上海航芯MCU提供安全啟動(dòng)與安全更新參考實(shí)現(xiàn),具體可見對(duì)應(yīng)的軟件包。安全啟動(dòng)與安全更新利用芯片的硬件安全特性來保證啟動(dòng)代碼和更新固件不被篡改,啟動(dòng)入口唯一。
存儲(chǔ)保護(hù)
存儲(chǔ)保護(hù)主要就是保護(hù)存儲(chǔ)區(qū)的代碼和數(shù)據(jù)不被篡改以及非法獲取,主要需要抵抗三個(gè)方面的攻擊,軟件攻擊、非侵入式攻擊和侵入式攻擊。
? 軟件攻擊主要包括通過調(diào)試端口訪問數(shù)據(jù),軟件漏洞和緩沖區(qū)溢出等;
? 非侵入攻擊主要包括通過故障注入導(dǎo)致程序和數(shù)據(jù)出錯(cuò),以及旁路攻擊獲取敏感信息;
? 侵入式攻擊主要是通過開蓋或者直接通過測(cè)試儀器來探測(cè)內(nèi)部信號(hào);
針對(duì)這些攻擊,芯片主要從五個(gè)方面進(jìn)行應(yīng)對(duì),包括存儲(chǔ)區(qū)域訪問控制、存儲(chǔ)地址加擾、數(shù)據(jù)加密和完整性校驗(yàn)以及環(huán)境檢測(cè)。
其中存儲(chǔ)區(qū)域訪問控制包括讀保護(hù)(RDP),寫保護(hù)(WRP),專有代碼讀保護(hù)(PCROP),存儲(chǔ)區(qū)域權(quán)限控制以及安全存儲(chǔ)區(qū)。
具體配置可見《ACM32-在線編程器》:http://www.aisinochip.com/index.php/product/detail/id/44.html
? 讀取保護(hù)(RDP)是全局Flash讀保護(hù),可保護(hù)嵌入式固件代碼,避免復(fù)制、逆向工程、使用調(diào)試工具讀出或其他方式的入侵攻擊。該保護(hù)功能在用戶下載Flash代碼后,由用戶在下載固件時(shí)自行設(shè)置。
eflash啟動(dòng):勾選表示從eflash啟動(dòng),未選表示從Boot模式;
SWD使能:勾選表示使能SWD功能,未選表示禁止SWD功能;
讀保護(hù)配置鎖定:勾選后,將鎖定“eflash啟動(dòng)”和“SWD使能”的設(shè)置,生效后不可再更改;反之未選則不會(huì)鎖定。
勾選或取消選擇所要配置的項(xiàng)目,點(diǎn)擊“配置”進(jìn)行操作,操作完成,將在“發(fā)送顯示區(qū)”顯示操作結(jié)果,復(fù)位或重新上電生效。
注:此配置可能會(huì)影響SWD或者BOOT功能,請(qǐng)謹(jǐn)慎操作。
? 寫保護(hù)(WRP)用于保護(hù)指定區(qū)域Flash數(shù)據(jù),避免數(shù)據(jù)被惡意更新或擦除。寫保護(hù)可應(yīng)用于Flash內(nèi)指定的內(nèi)存空間。
寫保護(hù)(WRP)后,相應(yīng)的區(qū)域?qū)⒔共翆懀林噶顚⒉荒苁褂谩?/p>
在所要配置的區(qū)域,輸入“起始地址”和“操作長(zhǎng)度”,勾選“配置”按鈕,點(diǎn)擊“使能/禁止”進(jìn)行操作,操作完成,將在“發(fā)送顯示區(qū)”顯示操作結(jié)果,復(fù)位或重新上電生效。
若操作范圍超過eflash最大長(zhǎng)度,或要使能的兩個(gè)區(qū)域地址重疊,將報(bào)錯(cuò)。
注:使能/禁止后,立即寫入相應(yīng)NVR,讀取配置為操作后的設(shè)置,但需復(fù)位或重新上電方能生效。
? 專有代碼讀保護(hù)(PCROP)用于保護(hù)指定區(qū)域Flash代碼,保護(hù)專有代碼不被最終用戶代碼、調(diào)試器工具或惡意代碼所修改或讀取。
PCROP使能后,所選區(qū)域只能執(zhí)行,不能讀取和擦寫,片擦指令將不能使用。
在所要配置的區(qū)域,輸入“起始地址”和“操作長(zhǎng)度”,勾選“配置”按鈕,點(diǎn)擊“使能/禁止”進(jìn)行操作,操作完成,將在“發(fā)送顯示區(qū)”顯示操作結(jié)果,復(fù)位或重新上電生效。
若操作范圍超過eflash最大長(zhǎng)度,或要使能的兩個(gè)區(qū)域地址重疊,將報(bào)錯(cuò)。
注:禁止PCROP區(qū)域后,此時(shí)讀取配置依然是禁止前的設(shè)置,需要將SWD使能關(guān)閉,復(fù)位或重新上電方能生效。
? 存儲(chǔ)區(qū)域權(quán)限控制利用內(nèi)核本身自帶的MPU單元,這個(gè)單元可以劃分出幾個(gè)region,每個(gè)region可以設(shè)置不同的訪問屬性,配合內(nèi)核的User和Privilege模式,能夠?qū)崿F(xiàn)對(duì)敏感數(shù)據(jù)的訪問控制,使得敏感數(shù)據(jù)不能夠被惡意代碼獲取。這樣隔離能夠有效地降低軟件漏洞帶來的風(fēng)險(xiǎn)。
? 安全存儲(chǔ)區(qū)可以用于保護(hù)特有的一些程序,安全存儲(chǔ)區(qū)的大小可以進(jìn)行配置,程序運(yùn)行期間可以通過寄存器打開對(duì)這段安全存儲(chǔ)區(qū)的保護(hù),保護(hù)使能后則無法再次訪問其中的任何內(nèi)容。
在所要配置的區(qū)域,輸入“操作長(zhǎng)度”,點(diǎn)擊“使能/禁止”進(jìn)行操作,操作完成,將在“發(fā)送顯示區(qū)”顯示操作結(jié)果,復(fù)位或重新上電生效。若操作范圍超過eflash最大長(zhǎng)度,將報(bào)錯(cuò)。
注:使能/禁止后,立即寫入相應(yīng)NVR,讀取配置為操作后的設(shè)置,但需復(fù)位或重新上電方能生效。
存儲(chǔ)數(shù)據(jù)加密,地址加擾主要就是對(duì)片內(nèi)FLASH和SRAM上的數(shù)據(jù)進(jìn)行加密存儲(chǔ),并且存儲(chǔ)的地址也被串?dāng)_。針對(duì)于部分代碼和數(shù)據(jù)需要放在片外存儲(chǔ)器的情況,公司也有部分系列帶有OTFDEC(On The Fly DECryption)硬件,OTFDEC模塊在總線與OSPI之間,可以實(shí)時(shí)地解密外部Flash上的密文代碼和數(shù)據(jù),只需要設(shè)置好相應(yīng)的區(qū)域、密鑰等,OTFDEC就可以自動(dòng)解密被訪問的密文數(shù)據(jù),無需額外的軟件參與解密,不需要將解密數(shù)據(jù)加載到內(nèi)部RAM,可以直接運(yùn)行片外Flash上的加密代碼。OTFDEC模塊也支持加密,但不是實(shí)時(shí)加密,數(shù)據(jù)首先被加密到RAM中,需要另外將RAM中的密文寫回外部FLASH。
存儲(chǔ)數(shù)據(jù)完整性校驗(yàn)主要就是對(duì)存儲(chǔ)區(qū)的數(shù)據(jù)進(jìn)行奇偶校驗(yàn),可以有效抵抗故障注入攻擊。
環(huán)境檢測(cè)主要是檢測(cè)芯片工作電壓是否在正常范圍,如果不在正常工作范圍則進(jìn)行報(bào)警,以抵抗電壓故障注入攻擊。
密碼學(xué)算法引擎
上海航芯MCU系列都帶有HASH,AES,TRNG和CRC硬件模塊。直接調(diào)用對(duì)應(yīng)的API函數(shù)即可使用相應(yīng)的算法功能,有效滿足數(shù)據(jù)傳輸及其完整性校驗(yàn)中的密碼需求。
入侵保護(hù)
入侵保護(hù)主要是芯片可以檢測(cè)遭受的物理入侵從而刪除備份寄存器中的敏感數(shù)據(jù),從而保護(hù)芯片敏感數(shù)據(jù)不會(huì)竊取。該功能主要由RTC和備份寄存器完成。
備份寄存器處于備份域中。待機(jī)模式喚醒或系統(tǒng)復(fù)位操作都不會(huì)影響這些寄存器。只有當(dāng)被檢測(cè)到有侵入事件和備份域復(fù)位時(shí),這些寄存器才會(huì)復(fù)位。
RTC支持兩個(gè)外部IO侵入事件檢測(cè),并可以記錄侵入時(shí)間。并且需要輸入私鑰才允許對(duì)RTC寄存器進(jìn)行寫操作,避免攻擊者篡改RTC寄存器。
生命周期管理
生命周期管理主要針對(duì)芯片測(cè)試開發(fā)到芯片使用階段中可能存在的一些安全風(fēng)險(xiǎn),例如調(diào)用測(cè)試或者調(diào)試接口非法獲取數(shù)據(jù)。具體對(duì)應(yīng)的功能包括測(cè)試模式禁止,JTAG禁止和128位唯一序列號(hào)。
? 測(cè)試模式禁止:芯片測(cè)試完成之后將測(cè)試模式禁止,交給客戶的芯片不能再返回到測(cè)試模式,這樣攻擊者就不能通過測(cè)試接口獲取敏感數(shù)據(jù);
? JTAG禁止:當(dāng)讀保護(hù)(RDP)設(shè)置Level 1以上時(shí),則會(huì)將JTAG功能禁止,使得攻擊者不能通過調(diào)試接口獲取敏感數(shù)據(jù);
? 128位唯一序列號(hào):128位唯一序列號(hào)綁定了芯片出廠的LOT/WAFER ID和坐標(biāo)等。該序列號(hào)唯一且不可復(fù)制,開發(fā)者可將應(yīng)用程序與該芯片的序列號(hào)綁定,這樣可以使每個(gè)下載應(yīng)用程序的芯片不可被復(fù)制。管理員需要管控好每顆芯片的序列號(hào),這樣便于產(chǎn)品的定位和追蹤,防止安全產(chǎn)品的復(fù)制。
安全生產(chǎn)
安全生產(chǎn)主要是保證交由第三方工廠進(jìn)行燒寫的代碼或者數(shù)據(jù)不被盜取和篡改以及過量生產(chǎn)。
針對(duì)安全生產(chǎn),上海航芯提供了一套安全的解決方案,全程代碼加密燒錄,并帶動(dòng)態(tài)校驗(yàn)碼(動(dòng)態(tài)校驗(yàn)碼與芯片唯一序列號(hào)綁定),而且可以進(jìn)行燒錄計(jì)數(shù),進(jìn)行產(chǎn)量控制,避免過量生產(chǎn)。并且支持在線/離線燒錄,遠(yuǎn)程交付和更新固件,在保證固件安全性的前提下極大方便客戶進(jìn)行燒錄固件。
-
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423154 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7002瀏覽量
88943 -
上海航芯
+關(guān)注
關(guān)注
1文章
39瀏覽量
3859
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論