隨著物聯網(IoT)的普及,安全性已經不再只是嵌入式應用的選用功能,而是演變成確保系統完整性的必備功能。為了滿足不斷增加的安全規範,開發人員需要的解決方案不僅要能滿足低功率或高效能的應用要求,而且還要能夠提供硬體架構安全功能,包括身份驗證、加密、安全儲存和安全啟動。
本文簡介嵌入式安全原理,並且介紹開發人員如何使用Microchip Technology的高效能數位訊號控制器(DSC)和低功率PIC24F微控制器單元(MCU),以及專用安全裝置,以滿足嚴格的嵌入式安全新興需求。
嵌入式安全建立在關鍵原則之上
智慧產品在連接到公共網際網路後,便可以在複雜的應用中結合,很少有獨立產品可與之比擬。然而,攻擊威脅使用這些相同連接路徑的網路,不僅可能限制智慧產品的價值,還會讓這些產品、相關應用,以及其使用者面臨看似無法遏阻的威脅來源。
開發人員除了回應消費者在系統級網路安全的持續需求,也必須滿足國家和地區組織的安全規範。兩個最具影響力的規範:歐洲ETSI EN 303 645「消費性物聯網網路安全:基準要求」和美國NIST IR 8259「針對物聯網裝置製造商的基礎網路安全動作」,說明網路安全實作取決於四個關鍵原則:
‧ 使用唯一的密碼
‧ 裝置上可安全儲存敏感安全參數
‧ 以相互驗證和加密通訊進行安全通訊
‧ 透過安全啟動和安全韌體更新,確保韌體的完整性和真實性
基於這些核心原則的交付系統需要使用可信賴平台,才能防止駭客注入入侵程式碼,進而改變通訊、儲存、韌體甚至安全機制本身。
可信賴平台透過使用不可變的硬體架構安全機制,從基礎建立系統級安全性,有助於確保安全。儘管概念簡單,但系統級安全在實作上一直深具挑戰,因為系統任何部分的安全弱點都可能成為網路攻擊的途徑。透過Microchip的高效能dsPIC33C DSC和低功率 PIC24F MCU,並結合配套安全元件,開發人員可以更輕鬆達成確保系統級安全性的嵌入式設計。
滿足效能和功率要求
Microchip的dsPIC33C DSC和PC24F MCU系列元件用於支援各種使用案例,結合強大的執行平台與應用特定的功能,包括廣泛的整合類比、波形控制和通訊周邊裝置。事實上,使用dsPIC33C DSC的多個脈寬調變(PWM)、可編程增益放大器(PGA)、類比數位轉換器(ADC)和其他周邊裝置,開發人員可以用最少的附加組件,達到複雜的系統:通常只需要任何此類設計所需的功率元件。例如使用DSPIC33CK512MP608單核心DSC於離線不斷電系統(UPS)(圖一)。
圖一 : DSPIC33CK512MP608 單核心 DSC 與其他 dsPIC33C DSC 相同,整合完整的周邊裝置,簡化複雜系統的設計,例如所示的離線 UPS 。(source:Microchip Technology) |
|
對於需要即時控制功能和數位訊號處理的應用,dsPIC33C DSC結合MCU和DSC的功能與其專用指令和硬體功能。至於安全關鍵型設計,dsPIC33C DSC符合IEC 60730功能安全標準及 ISO 26262 標準,提供多種硬體功能,用於簡化汽車安全完整性等級 B (ASIL-B) 以及 SIL-2 汽車和工業安全關鍵應用的功能安全認證。
dsPIC33C DSC專為重視效能的應用所設計,而PIC24F MCU則為通用嵌入式系統、消費電子產品、工業自動化、醫療裝置以及其他需要控制和連接,但不需要DSP功能的應用提供效能和功效之間的平衡。PIC24F MCU與dsPIC33C DSC一樣,符合IEC 60730 功能安全標準,具有B級安全診斷庫,適用於建立家庭應用。
如前所述,韌體完整性是嵌入式網路安全的核心原則。為了幫助開發人員確保韌體完整性和整體程式碼保護,在dsPIC33C DSC元件透過電路內序列編程(ICSP)寫入禁止提供快閃記憶體單次編程(OTP)和CodeGuard快閃記憶體安全,例如DSPIC33CK512MP608單核心DSC、DSPIC33CH512MP508 雙核心DSC和PIC24FJ512GU405 MCU等PIC24F MCU元件,並具有眾多配置及不同組合的應用特定周邊裝置。
保護裝置韌體
ICSP寫入禁止的快閃記憶體OTP讓開發人員能夠將部分快閃記憶體配置為OTP記憶體,並對快閃記憶體進行讀取/寫入保護。Microchip自行研發的ICSP功能允許這些元件用於最終應用時,以一對引腳進行序列編程。此功能可讓製造商在生產板件上完成編程。
ICSP需要使用外部編程元件控制快閃記憶體OTP過程,而增強型ICSP允許板載引導載入程式控制快閃記憶體OTP過程,這些元件還支援運作時自編程(RTSP),允許快閃記憶體使用者應用程式碼在運作時自行更新。
完成生產裝置編程後,開發人員可以啟用ICSP寫入禁止,以防止任何進一步的ICSP編程或抹除。不過,如果在啟用之前將適當的快閃記憶體更新程式碼編程到元件中,即使啟用ICSP寫入禁止,也可以繼續進行RTSP快閃記憶體抹除和編程作業。因此,即使啟用 ICSP寫入禁止,開發人員也可以使用可信賴的引導載入程式修改快閃記憶體,如此便能夠安全更新韌體,同時減少在生產系統中更新快閃記憶體的外部嘗試。
CodeGuard快閃記憶體安全性透過使用獨立引導段和通用段,提供快閃記憶體編程的精細保護。開發人員在裝置的BSLIM暫存器中設置引導段(BS)限制(BSLIM)的位址,定義這些區段的大小;通用段(GS)佔用剩餘記憶體。為了進一步保護敏感資訊,每個區段都包含附加分區。例如BS包含中斷向量表(IVT)、選用備用中斷向量表(AIVT)和附加指令字(IW)空間;配置段(CS)包含關鍵元件使用者配置資料,位於GS的使用者位址空間內(圖二)。
圖二 : dsPIC33C DSC 和 PIC24F MCU 系列支援單獨分區 (例如 BS 和 GS) 中的程式碼保護。(source:Microchip Technology) |
|
設置區段分區後,開發人員可以使用裝置的韌體安全(FSEC)暫存器選擇啟用寫入保護,並為每個區段設置所需的程式碼保護等級。在運作期間,裝置會阻止具有較低程式碼保護等級區段的程式碼存取較高程式碼保護等級區段的程式碼。典型的系統中,開發人員會對BS進行寫入保護,並將其程式碼保護設為高等級,以減少外部嘗試更改BS(包括引導載入程式)的可能性。
實作安全空中韌體更新
軟體開發人員無法避免需要更新軟體,以因應新發現的軟體錯誤、競爭加強或新出現的安全威脅。不同於行動應用程式更新,嵌入式系統中的韌體執行安全更新最輕微影響是干擾正在運作的應用程式,最壞的情況則可能會導致系統「變磚」。Microchip的dsPIC33C DSC和低功率PIC24F MCU系列提供雙分區機制,用於協助開發人員避免這些問題。
在標準操作模式下,這些裝置使用所有可用的實體記憶體作為連續的單分區記憶體空間(圖三左),可以配置為單獨的BS和GS。在雙分區模式下,開發人員將實體記憶體分為單獨的活躍分區和非活躍分區(圖三右)。
圖三 : 開發人員可以在預設的單分區模式或雙分區模式下操作 dsPIC33C DSC 和 PIC24F MCU 系列。(source:Microchip Technology) |
|
這些裝置在雙分區模式下運作,可以繼續執行活躍分區中的應用程式碼,同時對非活躍分區進行編程。編程完成後,執行引導交換(BOOTSWP)運作指令會讓裝置將引導目標切換到已更新的分區。如果已更新分區中的程式碼失敗或發現有缺陷,裝置將會重置,自動將裝置引導至原始分區(圖四)。
圖四 : 在雙分區模式下,dsPIC33C DSC 和 PIC24F MCU 可以在一個分區中加載應用程式碼,同時繼續在另一個分區中執行應用程式碼。(source:Microchip Technology) |
|
在確保更新分區成功後,可以將已更新分區的快閃記憶體引導順序(FBTSEQ)設置為比原始分區更低。在後續裝置重置時,裝置將引導到具有較低FBTSEQ的已更新分區(圖五)。
圖五 : 雙分區模式允許開發人員指定在裝置重置後引導到所需分區的順序(source:Microchip Technology) |
|
ICSP寫入禁止和CodeGuard的Flash OTP快閃記憶體安全性為靜態和運作時程式碼安全性提供關鍵支援,但全面的嵌入式安全需要額外的機制,包括安全密鑰儲存、程式碼身份驗證和安全通訊。
配套安全裝置確保嵌入式系統安全
將dsPIC33C DSC和PIC24F微控制器與Microchip的ATECC608 CryptoAuthentication 或TrustAnchor100(TA100)CryptoAutomotive安全IC結合,開發人員可以更輕鬆部署全套硬體架構的安全功能。
這些安全IC提供硬體架構防篡改安全機制,包括安全儲存、硬體加速加密引擎、真實亂數產生器以及加密演算法所需的其他機制。這些IC是專門設計的配套元件,可以輕鬆添加到DSC或MCU系統設計中,完成完整嵌入式系統安全的實作(圖六)。
圖六 : ATECC608或TA100等安全IC補充dsPIC33C DSC和PIC24F MCU的安全功能,簡化安全嵌入式系統的實作。(source:Microchip Technology) |
|
執行安全韌體更新等關鍵操作,展現dsPIC33C DSC和PIC24F微控制器與這些配套安全IC的互補安全功能。開發人員在完成韌體更新操作前,使用程式碼簽章技術,驗證程式碼的真實性和完整性。開發人員使用其開發系統,建立一個更新封包,包含程式碼、程式碼中繼資料和用於驗證的簽章(圖七)。
圖七 : 程式碼簽章提供重要的協定,通常用於在目標系統進行更新之前驗證程式碼的真實性和完整性。(source:Microchip Technology) |
|
在目標系統上,過去使用軟體架構的簽章驗證,其驗證協定可能被入侵,如今使用硬體架構的簽章驗證,可消除此風險。相反地,Microchip的ATECC608和TA100等配套安全 IC可以快速且安全地執行簽章驗證操作,而不會有入侵風險(圖八)。
圖八 : 在目標系統中,ATECC608或TA100等安全IC提供硬體架構驗證,在引導載入程式更新韌體之前,用於驗證程式碼非常重要。(source:Microchip Technology) |
|
為了加速安全系統的實作,Microchip提供軟硬體開發工具的組合。
加速軟體和硬體開發
MPLAB X整合開發環境(IDE)為開發人員提供完整的軟體開發環境,而MPLAB XC C 編譯器為現有工具鏈提供開發支援。為了加快任一環境中的開發速度,MPLAB程式碼配置器(MCC)允許開發人員使用圖形介面自動生成初始化程式、建立驅動程式、分配引腳、實作資料庫,以及以其他方式幫助加速許多關鍵低層級與任何嵌入式軟體開發專案相關的設置程序和流程。
為了加快實作合適的安全引導載入程式,dsPIC33 DSC和PIC24 MCU用引導載入程式提供圖形介面,可協助開發人員快速配置和生成其應用所需的自定義引導載入程式,相關的引導載入程式主機應用程式進一步簡化應用程式碼到目標裝置的傳輸。
針對硬體開發,Microchip 提供多款相關開發板,可打造以dsPIC33C DSC或PIC24F MCU為基礎的系統。事實上,Microchip的PIC-IoT板EV54Y39A和PIC-IoT板AC164164 已整合安全IC,這些IC分別預先配置Amazon Web Services(AWS)和 Google Cloud。
針對客製化設計,Microchip提供基於dsPIC33CH512MP508雙核心DSC的dsPIC33CH Curiosity開發板。或者,開發人員可以將Microchip基於dsPIC33CH128MP508的附加模組連接到Microchip Explorer嵌入式評估板,以加速安全嵌入式系統的開發。
結論
嵌入式系統的安全仰賴硬體架構機制的可用性,能夠支援核心網路安全原則,包括韌體完整性、身份驗證、加密和安全儲存。dsPIC33C DSC和PIC24F MCU簡化程式碼保護,其ATECC608和TA100安全IC提供有效率安全平台所需的附加安全機制。開發人員將這些裝置結合使用,便可以滿足物聯網嵌入式解決方案,以及汽車、工業、消費和醫療應用對系統級安全的需求。
(本文作者Barley Li為DigiKey Electronics亞太區技術內容部門應用工程經理)