雅特力AT32 sLib安全庫(kù)為算法保駕護(hù)航
隨著AIoT市場(chǎng)的發(fā)展,MCU承擔(dān)的運(yùn)算度越來(lái)越復(fù)雜,推動(dòng)著MCU性能不斷提升,部分高性能MCU可以支持AI深度學(xué)習(xí)。過(guò)去由于MCU性能和安全等原因,大部分算法需在服務(wù)器完成后再下傳到終端執(zhí)行,邊緣計(jì)算的發(fā)展,許多核心算法可在終端完成,大大提高了效率。因此,如何保護(hù)開(kāi)發(fā)者開(kāi)發(fā)出來(lái)的核心算法等知識(shí)產(chǎn)權(quán)代碼,便成為微控制器應(yīng)用中一項(xiàng)很重要的課題。在MCU開(kāi)發(fā)中,我們常用的加密方式主要有以下幾種:
本文引用地址:http://2s4d.com/article/202005/412784.htm● 通過(guò)設(shè)置特定配置寄存器
● 增加外部加密芯片
● 程序固件加密
● UID校驗(yàn)加密
這些加密方法配置通常在擦除flash時(shí)都會(huì)隨芯片而被擦除,而且下游客戶除非拿到方案商的源代碼或者庫(kù)(.LIB),否則無(wú)法進(jìn)行進(jìn)行二次開(kāi)發(fā)。但就算只提供庫(kù)(.LIB)給客戶進(jìn)行二次開(kāi)發(fā),核心算法也就泄漏了,導(dǎo)致方案商即使僅修改簡(jiǎn)單的LED燈指示功能,也必須重新編譯完整 BIN 檔給客戶,無(wú)法快速擴(kuò)展客戶群。
雅特力科技AT32系列MCU從設(shè)計(jì)之初便考慮了這一重要需求,全系列芯片均提供了安全庫(kù)區(qū)(security library,簡(jiǎn)稱sLib)的功能。方案商通過(guò)將核心算法代碼燒錄在MCU特定的sLib區(qū)域,以防止重要的代碼被惡意修改或讀取,并可將芯片提供給終端客戶在剩余空白空間進(jìn)行二次開(kāi)發(fā),且通過(guò)調(diào)試工具進(jìn)行整片擦除時(shí),不會(huì)將保護(hù)區(qū)sLib里的核心代碼擦除掉,增加了開(kāi)發(fā)的靈活性。
■ 安全庫(kù)區(qū)sLib應(yīng)用原理
下圖1是包含安全庫(kù)區(qū)的主閃存區(qū)映射示意圖,安全庫(kù)區(qū)的程序代碼可以很容易地被終端用戶調(diào)用并執(zhí)行,但不能直接被讀取,因而達(dá)到保護(hù)的功能。安全庫(kù)區(qū)的范圍大小是以頁(yè)(Page)為單位做設(shè)定,每一頁(yè)的大小依不同型號(hào)而不同。安全庫(kù)區(qū)的程序代碼及數(shù)據(jù),除非輸入正確的密碼,否則無(wú)法被擦除。
圖1 安全庫(kù)區(qū)在主閃存區(qū)映射
■ 安全庫(kù)區(qū)啟用
默認(rèn)狀態(tài)下,安全庫(kù)區(qū)設(shè)定寄存器始終是不可讀且被寫(xiě)保護(hù)。要想對(duì)安全庫(kù)區(qū)設(shè)定寄存器進(jìn)行寫(xiě)操作,首先要對(duì)安全庫(kù)區(qū)設(shè)定寄存器解鎖,對(duì)SLIB_KEYR寄存器寫(xiě)入指定數(shù)值,然后指定的寄存器設(shè)定要保護(hù)的區(qū)域和安全區(qū)域密碼。
■ 安全庫(kù)區(qū)保護(hù)解除
當(dāng)安全庫(kù)區(qū)的保護(hù)功能被啟動(dòng)后,可以透過(guò)在SLIB_PSW寄存器寫(xiě)入先前設(shè)置的密碼來(lái)
解除保護(hù)功能。當(dāng)解除安全庫(kù)區(qū)的保護(hù)時(shí),芯片將會(huì)執(zhí)行主閃存的整片擦除(包含安全庫(kù)區(qū)的內(nèi)容)。因此即使算法方案商設(shè)置的密碼被泄漏,也不會(huì)有程序代碼外泄的疑慮。
■ 燒錄方式
1. 方案商和終端用戶代碼分別燒錄:方案商先燒錄sLib代碼到MCU,然后終端用戶再燒錄應(yīng)用代碼到MCU;
2. 方案商和終端用戶代碼合并燒錄:方案商的sLib代碼和終端用戶的應(yīng)用代碼整合到一個(gè)離線項(xiàng)目工程中,通過(guò)雅特力的離線燒錄工具AT-Link一次下載到MCU??梢愿鶕?jù)最終需求配置各種參數(shù),比如限制下載次數(shù)、項(xiàng)目文件綁定AT-Link、下載完成后開(kāi)啟RDP等;
■ 安全庫(kù)區(qū)應(yīng)用案例
在智能掃地機(jī)領(lǐng)域,路徑規(guī)劃是衡量掃地機(jī)性能的重要指標(biāo)之一,同步定位與建圖(simultaneous localization and mapping,SLAM)是實(shí)現(xiàn)掃地機(jī)高度智能化的關(guān)鍵技術(shù)。SLAM技術(shù)讓掃地機(jī)在未知的環(huán)境中,能夠利用一種或多種傳感器對(duì)周圍環(huán)境進(jìn)行探測(cè),建立相應(yīng)的地圖,同時(shí)定位自身在地圖中的位置。掃地機(jī)廠商或方案商可將SLAM算法放置在sLib保護(hù)區(qū),并提供函數(shù)接口供應(yīng)用程序調(diào)用。下圖2為方案商在實(shí)際項(xiàng)目中的應(yīng)用示意圖。
圖2 應(yīng)用示意圖
■ 安全庫(kù)區(qū)其他用途:
除了保護(hù)方案商軟件,提供下游客戶二次開(kāi)發(fā)之外,還具備下列用途:
● 保護(hù)產(chǎn)品公司核心算法: 核心算法由公司特定人員開(kāi)發(fā),完成后燒錄到安全庫(kù)區(qū),再交由其他人員調(diào)用開(kāi)發(fā),避免離職員工帶走公司核心技術(shù);
● 保護(hù)出廠參數(shù): 為避免軟件升級(jí)時(shí)將產(chǎn)品出廠參數(shù)也擦除,可以將出廠數(shù)據(jù)放在安全庫(kù)區(qū),沒(méi)有密碼時(shí)無(wú)法擦除出廠參數(shù);
安全庫(kù)詳細(xì)使用方法及范例程序,請(qǐng)參考雅特力官網(wǎng)應(yīng)用筆記F403A_sLib:http://www.arterytek.com/html/product/product_AT32F403A.jsp?t=1587549382043
評(píng)論