隨著物聯(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的安全特性。
1
安全啟動(dòng)與安全更新
上海航芯MCU提供安全啟動(dòng)與安全更新參考實(shí)現(xiàn),具體可見對(duì)應(yīng)的軟件包。安全啟動(dòng)與安全更新利用芯片的硬件安全特性來保證啟動(dòng)代碼和更新固件不被篡改,啟動(dòng)入口唯一。
2
存儲(chǔ)保護(hù)
存儲(chǔ)保護(hù)主要就是保護(hù)存儲(chǔ)區(qū)的代碼和數(shù)據(jù)不被篡改以及非法獲取,主要需要抵抗三個(gè)方面的攻擊,軟件攻擊、非侵入式攻擊和侵入式攻擊。
? 軟件攻擊主要包括通過調(diào)試端口訪問數(shù)據(jù),軟件漏洞和緩沖區(qū)溢出等;
?非侵入攻擊主要包括通過故障注入導(dǎo)致程序和數(shù)據(jù)出錯(cuò),以及旁路攻擊獲取敏感信息;
?侵入式攻擊主要是通過開蓋或者直接通過測試儀器來探測內(nèi)部信號(hào);
針對(duì)這些攻擊,芯片主要從五個(gè)方面進(jìn)行應(yīng)對(duì),包括存儲(chǔ)區(qū)域訪問控制、存儲(chǔ)地址加擾、數(shù)據(jù)加密和完整性校驗(yàn)以及環(huán)境檢測。
其中存儲(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ū)域,輸入“起始地址”和“操作長度”,勾選“配置”按鈕,點(diǎn)擊“使能/禁止”進(jìn)行操作,操作完成,將在“發(fā)送顯示區(qū)”顯示操作結(jié)果,復(fù)位或重新上電生效。
若操作范圍超過eflash最大長度,或要使能的兩個(gè)區(qū)域地址重疊,將報(bào)錯(cuò)。
注:使能/禁止后,立即寫入相應(yīng)NVR,讀取配置為操作后的設(shè)置,但需復(fù)位或重新上電方能生效。
?專有代碼讀保護(hù)(PCROP)用于保護(hù)指定區(qū)域Flash代碼,保護(hù)專有代碼不被最終用戶代碼、調(diào)試器工具或惡意代碼所修改或讀取。
PCROP使能后,所選區(qū)域只能執(zhí)行,不能讀取和擦寫,片擦指令將不能使用。
在所要配置的區(qū)域,輸入“起始地址”和“操作長度”,勾選“配置”按鈕,點(diǎn)擊“使能/禁止”進(jìn)行操作,操作完成,將在“發(fā)送顯示區(qū)”顯示操作結(jié)果,復(fù)位或重新上電生效。
若操作范圍超過eflash最大長度,或要使能的兩個(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ū)域,輸入“操作長度”,點(diǎn)擊“使能/禁止”進(jìn)行操作,操作完成,將在“發(fā)送顯示區(qū)”顯示操作結(jié)果,復(fù)位或重新上電生效。若操作范圍超過eflash最大長度,將報(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)境檢測主要是檢測芯片工作電壓是否在正常范圍,如果不在正常工作范圍則進(jìn)行報(bào)警,以抵抗電壓故障注入攻擊。
3
密碼學(xué)算法引擎
上海航芯MCU系列都帶有HASH,AES,TRNG和CRC硬件模塊。直接調(diào)用對(duì)應(yīng)的API函數(shù)即可使用相應(yīng)的算法功能,有效滿足數(shù)據(jù)傳輸及其完整性校驗(yàn)中的密碼需求。
4
入侵保護(hù)
入侵保護(hù)主要是芯片可以檢測遭受的物理入侵從而刪除備份寄存器中的敏感數(shù)據(jù),從而保護(hù)芯片敏感數(shù)據(jù)不會(huì)竊取。該功能主要由RTC和備份寄存器完成。
備份寄存器處于備份域中。待機(jī)模式喚醒或系統(tǒng)復(fù)位操作都不會(huì)影響這些寄存器。只有當(dāng)被檢測到有侵入事件和備份域復(fù)位時(shí),這些寄存器才會(huì)復(fù)位。
RTC支持兩個(gè)外部IO侵入事件檢測,并可以記錄侵入時(shí)間。并且需要輸入私鑰才允許對(duì)RTC寄存器進(jìn)行寫操作,避免攻擊者篡改RTC寄存器。
5
生命周期管理
生命周期管理主要針對(duì)芯片測試開發(fā)到芯片使用階段中可能存在的一些安全風(fēng)險(xiǎn),例如調(diào)用測試或者調(diào)試接口非法獲取數(shù)據(jù)。具體對(duì)應(yīng)的功能包括測試模式禁止,JTAG禁止和128位唯一序列號(hào)。
?測試模式禁止:芯片測試完成之后將測試模式禁止,交給客戶的芯片不能再返回到測試模式,這樣攻擊者就不能通過測試接口獲取敏感數(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ù)制。
6
安全生產(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)注
452文章
50219瀏覽量
420964 -
mcu
+關(guān)注
關(guān)注
146文章
16898瀏覽量
349932
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論