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