作者:Stephen Evanczuk
投稿人:DigiKey 北美編輯
隨著向物聯網 (IoT) 的遷移,安全性已不再是嵌入式應用中的選配功能,已發展成為確保系統完整性所需的必備能力。為了滿足日益增多的安全規范要求,開發人員所需的解決方案不僅要滿足低功耗或高性能的應用要求,還應提供基于硬件的安全功能,包括身份驗證、加密、安全存儲和安全啟動。
本文簡將要介紹嵌入式安全的原理。然后,介紹開發人員如何利用 [Microchip Technology]的高性能[數字信號控制器] (DSC)、低功耗 [PIC24F] 微控制器單元 (MCU) 以及 Microchip 的專用安全設備來滿足對嚴格的嵌入式安全的新需求。
嵌入式安全基于四個關鍵原則
通過與公共互聯網連接,可在復雜的應用中將智能產品結合在一起,這是獨立產品所無法比擬的。然而,來自這些相同的連接途徑的網絡攻擊威脅,不僅可能限制智能產品的價值,而且還會使這些產品、相關應用及其用戶面面臨幾乎是無窮無盡的威脅之源。
除了需要滿足消費者對系統級網絡安全的持續需求外,開發人員還需要越來越多地滿足國家和地區組織的各種安全規范。歐洲的《ETSI EN 303 645 消費者物聯網網絡安全:基本要求》和美國的《NIST IR 8259 物聯網設備制造商的基礎網絡安全活動》是最具影響力的兩個規范,建議按照以下四個關鍵原則執行網絡安全實踐:
要根據這些核心原則交付系統,就必須使用可信平臺。這種平臺能夠防止黑客注入改變通信、存儲、固件甚至安全機制本身的妥協代碼。
可信平臺利用基于硬件的不可變安全機制,從底層開始建構系統級安全,從而有助于確保系統級安全。雖然概念簡單明了,但系統級安全的實施卻充滿挑戰,因為系統任何部分的安全漏洞都可能為網絡攻擊提供途徑。通過使用 Microchip Technology 的高性能 dsPIC33C DSC 和低功耗 PIC24F MCU,并結合 Microchip 的配套安全器件,開發人員可以更輕松地實現能夠確保系統級安全的嵌入式設計。
滿足性能和功率要求
Microchip 的 dsPIC33C DSC 和 PIC24F MCU 系列器件專為支持各種用例而設計,每個器件都將強大的執行平臺與特定應用功能相結合,包括大量集成的模擬、波形控制和通信外設。事實上,利用 dsPIC33C DSC 上的多個脈寬調制 (PWM)、可編程增益放大器 (PGA)、模數轉換器 (ADC) 和其他外設,開發人員只需增加最少的元件就能實現復雜的系統——通常只需要設計任何此類設計所需的功率器件。例如,使用 [DSPIC33CK512MP608] 單核 DSC 實現離線式不間斷電源 (UPS) 設計(圖 1)。
圖 1:與其他 dsPIC33C DSC 一樣,DSPIC33CK512MP608 單核 DSC 集成了一整套外設,簡化了如圖所示的離線 UPS 等復雜系統的設計。(圖片來源:Microchip Technology)
對于需要實時控制和數字信號處理功能的應用,dsPIC33C DSC 能提供 MCU 功能和 DSC 專用指令和硬件功能。對于安全關鍵型設計,dsPIC33C DSC 符合 IEC 60730 功能安全標準和 ISO 26262 標準,具有多種硬件功能,旨在簡化汽車安全完整性等級 B (ASIL-B) 以及 SIL-2 汽車和工業安全關鍵型應用的功能性安全認證。
dsPIC33C DSC 專為性能至上的應用而設計,而 PIC24F MCU 則在性能和能效之間取得了平衡,適用于通用嵌入式系統、消費電子產品、工業自動化、醫療設備以及其他需要控制、連接,但不需要 DSP 功能的應用。與 dsPIC33C DSC 一樣,PIC24F MCU 也是 IEC 60730 具備功能性安全的器件,且具有 B 級安全診斷庫,適用于住宅應用。
如前所述,固件完整性是嵌入式網絡安全的核心原則。為了幫助開發人員確保固件完整性、保護整體代碼,Microchip 在 dsPIC33C DSC 器件中通過在線串行編程 (ICSP) 寫入抑制和 CodeGuard 閃存安全功能,提供了閃存一次性可編程 (OTP) 功能,例如 DSPIC33CK512MP608 單核 DSC 和 [DSPIC33CH512MP508]雙核 DSC,以及 PIC24F MCU 器件(例如 PIC24FJ512GU405 MCU)和其他許多配置了不同的應用特定性外設的器件。
器件固件的保護
通過 ICSP 禁止寫入功能,開發人員利用閃存 OTP 可將部分閃存配置為 OTP 存儲器,并對閃存進行讀/寫保護。Microchip 的專有 ICSP 功能允許這些器件在最終應用中運行時通過一對引腳進行串行編程。有了這項功能,制造商就可在生產電路板上完成編程。ICSP 需要使用外部編程器件來控制閃存 OTP 過程,而增強型 ICSP 則允許使用板載引導程序來控制閃存 OTP 過程。這些器件還支持運行時自編程 (RTSP),這會允許在運行時自行更新閃存用戶應用的代碼。
在對生產器件進行編程后,開發人員可激活 ICSP 寫入抑制功能,以防止進一步的 ICSP 編程或擦除。不過,如果在 ICSP 寫入禁止激活之前已將適當的閃存更新代碼寫入器件,即使激活了 ICSP 寫入禁止,RTSP 閃存擦除和編程操作也能繼續進行。因此,即使在 ICSP 寫入禁止被激活的情況下,開發人員也可使用可信任的引導程序來更改閃存,從而安全地更新固件,同時還能減少從外部對生產系統中的閃存進行的任何更新嘗試。
通過使用獨立的啟動片段和通用片段,CodeGuard Flash 安全可為程序閃存提供細粒度保護。開發人員通過在器件的 BSLIM 寄存器中設置引導片段 (BS) 限制 (BSLIM) 的地址來定義這些片段的大小;通用片段 (GS) 占用剩余內存。為進一步保護敏感信息,每個片段都包含附加分區。例如,BS 包含中斷向量表 (IVT)、可選的備用中斷向量表 (AIVT) 和額外指令字 (IW) 空間;配置片段 (CS) 位于 GS 的用戶地址空間內,其中包含了關鍵的器件用戶配置數據(圖 2)。
圖 2:dsPIC33C DSC 和 PIC24F MCU 系列支持 BS 和 GS 等獨立分區的代碼保護。(圖片來源:Microchip Technology)
設置片段分區后,開發人員可使用器件的固件安全 (FSEC) 寄存器,選擇啟用寫保護,并為每個片段設置所需的代碼保護級別。在運行期間,該器件可防止代碼保護級別較低的片段中的代碼訪問代碼保護級別較高的片段中的代碼。在典型系統中,開發人員會對 BS 進行寫保護,并將其代碼保護設置為較高級別,以防從外部更改 BS(包括引導程序)。
實施安全的空中下載固件更新
軟件開發人員不可避免地需要更新軟件,以應對新發現的軟件漏洞、競爭力加強或不斷出現的安全威脅。與移動應用更新不同,在嵌入式系統中對固件執行安全更新,輕則有可能干擾當前運行的應用,重則使系統“癱瘓”。Microchip 的 dsPIC33C DSC 和低功耗 PIC24F MCU 系列提供雙分區機制,有助于開發人員避免這些問題。
在標準運行模式下,這些器件將所有可用的物理內存用作連續的單分區內存空間(圖 3,左),可將這種空間配置為獨立的 BS 和 GS。在雙分區模式下,開發人員將物理內存分成獨立的活動分區和非活動分區(圖 3,右)。
圖 3:開發人員可以在默認的單分區模式或雙分區模式下運行 dsPIC33C DSC 和 PIC24F MCU 系列。(圖片來源:Microchip Technology)
在雙分區模式下運行時,這些器件可以在對非活動分區進行編程的同時,繼續在活動分區中執行應用代碼。編程完成后,執行引導交換 (BOOTSWP)“運行時指令”會將器件引導目標切換到更新分區。如果更新分區中的代碼失效或出現缺陷,器件重置功能將自動使設備啟動到原始分區(圖 4)。
圖 4:在雙分區模式下,dsPIC33C DSC 和 PIC24F MCU 可以在一個分區中加載應用代碼,同時在另一個分區中繼續執行應用代碼。(圖片來源:Microchip Technology)
在確保更新分區成功后,可將更新分區的閃存啟動順序 (FBTSEQ) 設置為低于原始分區的值。在隨后的器件重置中,器件將啟動到具有較低 FBTSEQ 值的更新分區(圖 5)。
圖 5:雙分區模式允許開發人員指定器件復位后啟動到所需分區的順序。(圖片來源:Microchip Technology)
通過 ICSP 寫入抑制和 CodeGuard 閃存安全實現的閃存 OTP 能為靜態和“運行時代碼”安全提供關鍵支持,但全面的嵌入式安全需要額外的機制,包括安全密鑰存儲、代碼驗證和安全通信。
使用配套安全器件來確保嵌入式系統安全
通過將 dsPIC33C DSC 和 PIC24F 微控制器與 Microchips 的[ATECC608]CryptoAuthentication 或 TrustAnchor100 ([TA100]) CryptoAutomotive 安全 IC 相結合,開發人員可以更輕松地部署全套基于硬件的安全功能。
這些安全 IC 提供基于硬件的防篡改安全機制,包括安全存儲、硬件加速型加密引擎、真隨機數生成器以及加密算法所需的其他機制。這些 IC 配套器件而設計,可以方便地添加到 DSC 或 MCU 系統設計中,從而完整地實施全嵌入式系統安全(圖 6)。
圖 6:ATECC608 或 TA100 等安全 IC 補充了 dsPIC33C DSC 和 PIC24F MCU 的安全功能,簡化了安全嵌入式系統的實施。(圖片來源:Microchip Technology)
執行像安全固件更新這樣的關鍵運行說明了 dsPIC33C DSC 和 PIC24F 微控制器與這些配套安全 IC 之間的互補性安全功能。在完成固件更新運行之前,開發人員使用代碼簽名技術來驗證代碼的真實性、完整性。在這里,開發人員使用他們的開發系統創建一個更新包,其中包含代碼、代碼元數據和用于驗證的簽名(圖 7)。
圖 7:代碼簽名是一種重要的協議,通常用于驗證代碼在目標系統上更新前的真實性和完整性。(圖片來源:Microchip Technology)
在目標系統上,基于硬件的簽名驗證避免了驗證協議受損的風險,而過去使用的那種基于軟件的簽名驗證則可能出現這種情況。取而代之的是配套的安全 IC,如 Microchip 的 ATECC608 和 TA100 可快速、安全地執行簽名驗證操作,而不會有泄露的風險(圖 8)。
圖 8:在目標系統中,為了確保在引導程序更新固件之前進行代碼驗證,ATECC608 或 TA100 等安全 IC 提供的基于硬件的驗證功能是至關重要的。(圖片來源:Microchip Technology)
為了加快實施安全系統,Microchip 提供了包含軟件和硬件的組合開發工具。
加快軟件和硬件開發
[MPLAB X 集成開發環境] 為開發人員提供了完整的軟件開發環境,而 [MPLAB XC C 編譯器]則為現有工具鏈提供開發支持。為了加快這兩種環境下的開發速度,Microchip [MPLAB 代碼配置器] 可讓開發人員使用圖形界面自動生成初始化程序、構建驅動程序、分配引腳和實施庫,還有助于加快與任何嵌入式軟件開發項目相關的許多關鍵性底層設置步驟和流程。
為了加快實施合適的安全引導程序,Microchip 的 [用于 dsPIC33 DSC 和 PIC24 MCU 的引導程序]提供了一個圖形界面,幫助開發人員快速配置和生成其應用所需的定制引導程序。相關的引導程序主機應用會進一步簡化向目標器件傳輸應用代碼的過程。
在硬件開發方面,Microchip 提供了多個相關開發板,可用于構建基于 dsPIC33C DSC 或 PIC24F MCU 的系統。事實上,Microchip 的 [PIC-IoT EV54Y39A 開發板]和 [PIC-IoT AC164164 開發板](圖 9)集成了安全 IC,且這些 IC 分別預置了亞馬遜網絡服務 (AWS) 和谷歌云的安全憑證。
圖 9:PIC-IoT AC164164 等開發板集成了預先為 AWS 或谷歌云提供憑據的安全 IC,以幫助加快嵌入式安全開發。(圖片來源:Microchip Technology)
對于定制設計,Microchip 提供基于 dsPIC33CH512MP508 雙核 DSC 的 dsPIC33CH Curiosity 開發板 ([DM330028-2])。此外,開發人員還可以將 Microchip 基于 dsPIC33CH128MP508 的插件模塊 [(MA330040]) 連接到 Microchip Explorer 嵌入式評估板 [(DM240001-2]),以加快安全嵌入式系統的開發。
結束語
嵌入式系統安全依賴基于硬件的機制,這些機制能夠支持包括固件完整性、身份驗證、加密和安全存儲在內的核心網絡安全原則。Microchip 的 dsPIC33C DSC 和 PIC24F MCU 簡化了代碼保護,而其 ATECC608 和 TA100 安全 IC 則提供了有效安全平臺所需的額外安全機制。組合使用這些設備,開發人員可以滿足物聯網嵌入式解決方案以及汽車、工業、消費和醫療應用對系統級安全的需求。
-
mcu
+關注
關注
146文章
17148瀏覽量
351186 -
嵌入式
+關注
關注
5082文章
19123瀏覽量
305151 -
數字信號
+關注
關注
2文章
970瀏覽量
47549 -
DSC
+關注
關注
3文章
279瀏覽量
33599
發布評論請先 登錄
相關推薦
評論