0、引言:MCU的發(fā)展過程和固件加密重要性
隨著大規(guī)模集成電路的出現(xiàn)和發(fā)展,單片機(MCU)將原有計算機上的CPU、RAM、ROM、定時計數(shù)器和多種I/O接口集成到一個芯片,從而形成芯片級的計算機。這也是TI工程師的Gary Boone和Michael Cochran發(fā)明的全球第一顆微控制器(MCU)--TMS 1000系列(下圖)的雛形。之后,日本電子廠商開始生產汽車用微控制器,包括用于車內娛樂、自動雨刷、電子鎖和儀表盤的4位MCU,以及用于發(fā)動機控制的8位MCU。
圖1:TI的TMS 1000系列MCU
時至今日,單片機除了傳統(tǒng)的玩具市場、工業(yè)控制、汽車電子、白家電等,在物聯(lián)網以及智能化浪潮來臨以后,單片機更加成為產品設備的核心部件,一方面設備需要進行實時性高效智能的信息,另一方面還要能與其他設備進行信息互換,這些需求都需要由單片機來完成。而中國擁有最為廣泛的消費群體和應用場景,單片機在國內的發(fā)展優(yōu)勢也更為明顯。從圖2所示,預計到2022年,中國MCU市場規(guī)模將突破300億元大關,預計達到319億元!
圖2:中國MCU市場規(guī)模增長與預測
可以說,單片機因應用而生,除了芯片本身硬件性能,與應用相關的程序固件越發(fā)顯得重要,固件安全的需求也就越來越受到關注!
1、單片機的信息安全
首先,廣義上的“安全”,也可視作為“信息安全”,它具有三個重要的特點:
1)保密性:需要確保信息不為其它未授權的個人或團體所獲得
2)完整性:維持和確保信息的完整,不被未授權的篡改
3)可行性:被授權訪問信息的主體,在需要信息的時候能及時訪問并獲取
保密性 Confidentiality,Integrity完整性 和 可行性 Availability,簡稱:CIA
從以上特征描述,引申出處理信息安全的三種常用工具:標識、認證以及授權,也簡稱為:IAA
1)標識:Identity
首先,信息訪問者標明主體身份,但是不確定該主體確實可訪問該信息?所以,得驗證其真假;
2)認證:Authentication
身份認證也就是核實主體聲稱的內容是否屬實?以便在主體身份核實后,進行更細化的動作
3)授權:Authorization
作為更精細的信息處理,需要解決的問題包括:確保哪些信息可被授權人查看?被查看的信息是否保持完整,未被未授權的修改?以及被授權人可以隨時方便的訪問可查看的信息。
信息安全的三要素以及三種工具的相互關系,如圖3所示:
圖3:信息安全三要素與信息安全工具相互關系
2、單片機的攻擊風險
單片機一般都有內部程序區(qū)和數(shù)據區(qū),供用戶存放程序和工作數(shù)據。為了防止未經授訪問或拷貝單片機的機內程序,大部分單片機都帶有加密鎖定位或者加密字節(jié),以保護片內程序。如果在編程時加密鎖定位被使能(鎖定),就無法用普通編程器直接讀取單片機內的程序,這就叫單片機加密。
單片機攻擊者借助專用設備或者自制設備,利用單片機芯片設計上的漏洞或軟件缺陷,通過多種技術手段,就可以從芯片中提取關鍵信息,獲取單片機內程序這就叫單片機解密。目前單片機常用解密方法主要包括:
1)軟件攻擊
該技術通常使用處理器通信接口并利用協(xié)議、加密算法或這些算法中的安全漏洞來進行攻擊。軟件攻擊取得成功的一個典型事例是對早期ATMEL AT89C51系列單片機的攻擊。攻擊者利用了該系列單片機擦除操作時序設計上的漏洞,使用自編程序在擦除加密鎖定位后,停止下一步擦除片內程序存儲器數(shù)據的操作,從而使加過密的單片機變成沒加密的單片機,然后利用編程器讀出片內程序。
2)電子探測攻擊
該技術通常以高時間分辨率來監(jiān)控處理器在正常操作時所有電源和接口連接的模擬特性,并通過監(jiān)控它的電磁輻射特性來實施攻擊。因為單片機是一個活動的電子器件,當它執(zhí)行不同的指令時,對應的電源功率消耗也相應變化。這樣通過使用特殊的電子測量儀器和數(shù)學統(tǒng)計方法分析和檢測這些變化,即可獲取單片機中的特定關鍵信息。
3)過錯產生技術
該技術使用異常工作條件來使處理器出錯,然后提供額外的訪問來進行攻擊。使用最廣泛的過錯產生,攻擊手段包括電壓沖擊和時鐘沖擊。低電壓和高電壓攻擊可用來禁止保護電路工作或強制處理器執(zhí)行錯誤操作。時鐘瞬態(tài)跳變也許會復位保護電路而不會破壞受保護 信息。電源和時鐘瞬態(tài)跳變可以在某些處理器中影響單條指令的解碼和執(zhí)行。
4)探針技術
該技術是直接暴露芯片內部連線,然后觀察、操控、干擾單片機以達到攻擊目的。
為了方便起見,人們將以上四種攻擊技術分成兩類,一類是侵入型攻擊(物理攻擊),這類攻擊需要破壞封裝,然后借助半導體測試設備、顯微鏡和微定位器,在專門的實驗室花上幾小時甚至幾周時間才能完成。所有的微探針技術都屬于侵入型攻擊。另外三種方法屬于非侵入型攻擊,被攻擊的單片機不會被物理損壞。
3、信息安全保障
3.1 ARM TrustZone
ARM TrustZone是基于硬件的安全功能,它通過對原有硬件架構進行修改,在處理器層次引入了兩個不同權限的保護域——安全世界和普通世界,任何時刻處理器僅在其中的一個環(huán)境內運行。同時這兩個世界完全是硬件隔離的,并具有不同的權限,正常世界中運行的應用程序或操作系統(tǒng)訪問安全世界的資源受到嚴格的限制,反過來安全世界中運行的程序可以正常訪問正常世界中的資源。這種兩個世界之間的硬件隔離和不同權限等屬性為保護應用程序的代碼和數(shù)據提供了有效的機制:通常正常世界用于運行商品操作系統(tǒng)(例如Android、iOS等),該操作系統(tǒng)提供了正常執(zhí)行環(huán)境(Rich Execution Environment,REE);安全世界則始終使用安全的小內核(TEE-kernel)提供可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE),機密數(shù)據可以在TEE中被存儲和訪問。這樣一來即使正常世界中的操作系統(tǒng)被破壞或入侵(例如iOS已被越獄或Android已被ROOT),黑客依舊無法獲取存儲在TEE中的機密數(shù)據。
圖4中(a)描述了Cortex-A上采用的TrustZone架構,該架構中還引入了一種稱為監(jiān)視模式的處理器模式,該模式負責在世界過渡時保留處理器狀態(tài),兩個世界可以通過稱為安全監(jiān)視器調用(SMC)的特權指令進入監(jiān)視模式并實現(xiàn)彼此切換。
圖4:Arm Trust Zone
除了Cortex-A微架構外,ARM發(fā)布的新一代Cortex-M微架構同樣為TrustZone提供了硬件支持。與Cortex-A相同的是,Cortex-M依舊將處理器運行狀態(tài)劃分為安全世界和正常世界,并阻止運行于正常世界的軟件直接訪問安全資源。不同的是,Cortex-M已針對更快的上下文切換和低功耗應用進行了優(yōu)化。具體來說,Cortex-M中世界之間的劃分是基于內存映射的,并且轉換是在異常處理代碼中自動發(fā)生的(如圖1(b)所示)。這意味著,當從安全內存運行代碼時,處理器狀態(tài)為安全,而當從非安全內存運行代碼時,處理器狀態(tài)為非安全。Cortex-M中的TrustZone技術排除了監(jiān)視模式,也不需要任何安全的監(jiān)視軟件,這大大減少了世界切換延遲,使得世界之間的轉換為更高效。為了在兩個世界之間架起橋梁,Cortex-M引入了三個新指令:secure gateway(SG),branch with exchange to non-secure state(BXNS)和branch with link and exchange to non-secure state(BLXNS)。 SG指令用于在安全入口點的第一條指令中從非安全狀態(tài)切換到安全狀態(tài)。安全軟件使用BXNS指令來返回到非安全程序;最后,安全軟件使用BLXNS指令來調用非安全功能。此外,Cortex-M中的狀態(tài)轉換也可以由異常和中斷觸發(fā)。
3.2 STM32 Trust Zone 架構
圖5:STM32 Trust架構
針對以上解密方式,為了避免用戶損失,各家原廠都開始從自身芯片做起,強化芯片安全等級,比如STM32最早提出的 STM32 Trust解決方案,提供完整的代碼保護和執(zhí)行保護工具套件(如圖所示)。
STM32 Trust架構帶來了12種安全功能和服務,與資產保護用例保持一致并提供恰當?shù)陌踩WC級別。
1)Secure Boot安全啟動
能確保在設備內部運行的應用程序的真實性和完整性的能力
2)Secure Install/Update安全安裝/更新
編程之前安裝固件或更新固件并進行完整性和真實性的初步檢查
3)Secure Storage安全存儲
能夠安全地存儲數(shù)據或密鑰(并在外部不可見的情況下訪問它們)
4)Isolation隔離
應用程序中受信任和不受信任部分之間的隔離
5)Abnormal Situation Handling異常情況處理
能夠檢測異常情況(包括硬件和軟件)并做出適當?shù)臎Q定,例如刪除機密數(shù)據
6)Crypto Engine加密引擎
能夠按照安全保證級別的建議處理密碼算法
7)Audit/Log審計/日志
跟蹤安全事件,保持不變
8)Identification / Authentication / Attestation識別/認證/證明
從設備內部或外部對設備和/或軟件包的唯一標識,以及檢測其真實性的能力
9)Silicon Device Lifecycle硅器件生命周期
控制狀態(tài)可通過受限路徑安全地保護硅設備資產
10)Software IP Protection軟件IP保護
能夠保護部分或整個軟件包免受外部或內部讀取
11)Secure Manufacturing安全生產
具有不安全環(huán)境中的初始設備過度生產控制,潛在的安全個性化
12)Application Lifecycle應用生命周期
定義不可更改的增量狀態(tài)以安全地保護應用程序狀態(tài)和資產
STM32單片機型號已嵌入了硬件安全保護功能,還額外實現(xiàn)了篡改檢測、防火墻代碼隔離機制和Arm Trust Zone覆蓋芯片類型有限,且對應芯片價格不同(如圖6所示)。
圖6:支持STM32 Trust功能芯片列表
3.3 GD32 Trust Zone 產品
GD32W515系列MCU持續(xù)采用最新的Arm? Cortex?-M33內核,片上集成了2.4GHz單流IEEE802.11b/g/n MAC/Baseband/RF射頻模塊。Cortex?-M33內核基于Armv8-M指令集架構,支持DSP指令擴展和單精度浮點運算(FPU),還集成了TrustZone硬件安全機制,支持獨立的存儲訪問空間,提供了系統(tǒng)開發(fā)所必需的安全性和靈活性。
得益于TrustZone硬件安全架構提供的系統(tǒng)隔離特性,全新MCU能夠支持安全區(qū)域的安全啟動,并可在軟件層面提供安全存儲、初始化認證以及安全日志等服務,嚴格保護了機密代碼和數(shù)據、核心流程以及關鍵外圍設備。還支持Wi-Fi協(xié)議規(guī)定的全新安全特性,如WPA3以及管理幀保護功能,進一步增強了終端設備通信過程的保密性和安全性。GD32W515系列MCU已經正式通過Arm平臺安全架構PSA Level 1、PSA Functional API認證,以提供更高安全保障。還通過了Wi-Fi聯(lián)盟(WFA)授權的Wi-Fi認證,以及RF FCC/CE合規(guī)認證。與各廠商無線路由器(AP)具有極佳的相容性,可以快速建立連接并完成通信。
圖7:GD32W515系列
同時,方案交付也會涉及多個環(huán)節(jié),包括代理商、方案公司、燒錄廠和加工廠等,現(xiàn)有單一調試或燒錄工具也無法滿足整個交付鏈條的安全管控。
3.4程序固件云端交付
針對這一痛點,創(chuàng)芯工坊(ICWORKSHOP.com)在2017年首次提出程序固件云端交付的概念,并于2018年實施上線。期望在程序開發(fā)者/方案公司與終端用戶間,搭建一個可靠安全的交付平臺,通過固件與燒錄次數(shù)綁定,從而保護開發(fā)者知識產權,使雙方受益。
自發(fā)布日至2020年底,已成功完成固件在線交付&云端燒錄近7,000萬次。不僅為廣大單片機方案公司提供了更加安全、開放和多元的交付模式,同時也適用于多種固件安全燒錄場景。
圖8:云端固件交付流程圖及安全要點
如圖8交付流程圖所示,整個交付鏈條,以授權訂單代替了以往的單個固件傳輸和交接,生產廠家或用戶接觸不到程序固件源碼,降低了固件被破解的風險。同時也適用于項目初期的程序調試,以往需要頻繁的將升級改動過的程序燒入燒錄器中,再快遞給用戶確認,現(xiàn)在通過云端交付,用戶直接可以方便地下載更新固件,節(jié)省了溝通成本和物流成本,大大提升了效率。
創(chuàng)芯工坊除了提供平臺端服務,配合PowerWriter安全燒錄器提供的多種加密機制,在不提升芯片安全等級的情況下,同樣實現(xiàn)了“一芯一密”功能!同時,配合PowerWriter燒錄器提供的離線(UID綁定)和ICWKEY授權密鑰,以及在線授權等多種加密方式(如圖9所示),大大提升了芯片破解的難度。
圖9:PowerWriter上位機加密模式選項
加密模式:
1)在線授權(在服務端開啟)
在線授權方案功能由創(chuàng)芯工坊官方提供,此時的燒錄器內部不存儲離線固件,而是將固件提交到創(chuàng)芯工坊的后臺管理控制臺以訂單形式發(fā)布,客戶再通過創(chuàng)芯工坊客戶端實現(xiàn)遠程量產燒錄,燒錄芯片時需要全程聯(lián)網,從授權服務器獲取授權數(shù)據,在線授權方案同樣是基于CID的,整個授權的算法可由創(chuàng)芯工坊用戶自主設計。
2)自帶內置離線授權
Power Writer內置了基于隨機矩陣算法的UID離線授權方法,跟市面上固定授權方法不同的是Power Writer可以由開發(fā)者自由編輯算法矩陣。Power Writer內置解析算法,對矩陣進行 解析生成正確的算法,內置離線授權根據用戶選擇的芯片,參數(shù)設置自動生成Demo代碼,極大地提高了了用戶的開發(fā)效率。離線授權界面設置(如圖10所示)。
圖10:PowerWriter內置離線授權設置界面
3)離線授權基礎設置包含:
密鑰地址:密鑰地址可以理解為存放授權信息的地址,它的默認地址設定為芯片F(xiàn)lash容量-12的位置,上圖是STM32F071CB的默認存儲地址。
用戶密碼長度:填寫用戶設定密碼長度,默認為12字節(jié),可選4字節(jié),8字節(jié)長度
數(shù)據存儲模式:數(shù)據存儲模式分為小端模式和大端模式
用戶密碼(3組用戶密碼):根據設定可以設定最多三種用戶密碼
Matrix編碼:Matrix編碼定義了用戶可以編輯的離線授權的加密矩陣(如圖11所示)。
圖11:PowerWriter離線授權隨機矩陣
Power Writer提供了強大的隨機矩陣授權算法,用戶可以快速的隨機生成功能,生成獨一無二的隨機授權矩陣驗證算法,同時可以對隨機算法矩陣的強度進行優(yōu)化判斷,自動導出Demo代碼。
1)安全授權盾/授權密鑰
圖12: ICWKEY授權流程
如圖10所示,通過ICWKEY可以實現(xiàn)非對稱ECDSA(ECC非對稱加密算法)授權,可以靈活將授權功能和PowerWriter進行分離控制,并提供高強度的授權方法終極解決方案,針對高端產品,大批量產品授權,實現(xiàn)靈活的授權控制方案。
圖13:PowerWriter端ICWKEY通信配置
如圖13所示,通過PowerWriter上位機軟件可對ICWKEY進行配置:
密碼:為了提供最高強度的通訊加密,PowerWriter與ICWKEY的通訊采用AES128 CBC模式加密,密碼配置在PowerWriter端隨機生成,當密碼框無焦點時默認不顯示密碼,密碼可以使用隨機生成功能進行生成.不提供手動填入。
初始向量:PowerWriter和ICWKEY的通訊除了通信密碼,同時提供一組初始向量,再通過創(chuàng)芯工坊的滾碼算法,實現(xiàn)高強度的加密。
項目名稱:此名稱將和ICWKEY屏幕顯示項目名稱保持一致,默認格式為:SafeLic_XXXXXXXX,如用戶對默認的顯示項目名稱不滿意??梢允謩犹顚?默認最多為16個字節(jié)。
授權地址:填寫ICWKEY在Flash中的授權地址,PowerWriter將根據用戶填寫的此地址,寫入授權信息到 目標芯片的Flash地址中。此地址的默認值為芯片F(xiàn)lash的末尾- 0x80的位置。在基于ICWKEY開發(fā)完成項目后,基于MDK導出的Mapping信息找到授權的地址,在此處填寫當前正確的授權地址信息。
隨機生成:點擊此按鈕Power Writer將隨機生成 密碼、初始向量、項目代碼。
保存設置:當用戶完成設置后,點擊保存,此時ICWKEY配置信息將會保存到緩沖區(qū)。
圖14:創(chuàng)芯工坊加密機制流程
同時,考慮到程序固件所需要的保護級別不同,以及安全級別更高的物聯(lián)網設備應用場景,如圖14所示,除了在本地實現(xiàn)了UID綁定固件的機制,創(chuàng)芯工坊也支持用戶通過創(chuàng)芯工坊服務器或自建服務器,自行實現(xiàn)授權算法,從而真正實現(xiàn)”一芯一機一密”!
4、總結
MCU的發(fā)展是硅基芯片和軟件的共同成果,缺一不可!
嵌入式開發(fā)方案的交付,離不開程序固件,而隨著互聯(lián)網的滲透以及物聯(lián)網的行業(yè)落地,在市場價格競爭和交付效率壓力面前,半導體行業(yè)從業(yè)者(從芯片原廠、方案集成到渠道通路)都面臨巨大挑戰(zhàn)和改變:傳統(tǒng)的單兵出擊變?yōu)閰f(xié)同作戰(zhàn),傳統(tǒng)的PCB交付變?yōu)槌绦蜍浖跈?,傳統(tǒng)的芯片貿易變?yōu)榧煞桨敢蕴嵘郊又?。。。。所有的改變都需要基于“信任與安全”的前提,而這就是創(chuàng)芯工坊基于互聯(lián)網技術,結合硬件產品,提供更為完善的本地化安全交付和安全燒錄方案的初衷!
歡迎探討!
審核編輯 黃昊宇
-
單片機
+關注
關注
6030文章
44500瀏覽量
632192 -
固件
+關注
關注
10文章
550瀏覽量
22936 -
加密
+關注
關注
0文章
301瀏覽量
23878 -
嵌入式開發(fā)
+關注
關注
18文章
1019瀏覽量
47476 -
云端安全
+關注
關注
0文章
2瀏覽量
4794
發(fā)布評論請先 登錄
相關推薦
評論