如何使用 DSC 和 MCU 確保嵌入式系統安全

作者: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)。

Microchip 的 DSPIC33CK512MP608 單核心 DSC 圖片 (點選放大)圖1:DSPIC33CK512MP608 單核心 DSC 與其他 dsPIC33C DSC 相同,整合完整的周邊裝置,簡化複雜系統的設計,例如所示的離線 UPS 。(圖片來源: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 級安全診斷庫,適用於建立家庭應用。

如前所述,韌體完整性是嵌入式網路安全的核心原則。為了幫助開發人員確保韌體完整性和整體程式碼保護,Microchip 在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 的使用者位址空間內 (圖 2)。

Microchip 的 dsPIC33C DSC 和 PIC24F MCU 系列示意圖圖 2:dsPIC33C DSC 和 PIC24F MCU 系列支援單獨分區 (例如 BS 和 GS) 中的程式碼保護。(圖片來源:Microchip Technology)

設置區段分區後,開發人員可以使用裝置的韌體安全 (FSEC) 暫存器選擇啟用寫入保護,並為每個區段設置所需的程式碼保護等級。在運作期間,裝置會阻止具有較低程式碼保護等級區段的程式碼存取較高程式碼保護等級區段的程式碼。典型的系統中,開發人員會對 BS 進行寫入保護,並將其程式碼保護設為高等級,以減少外部嘗試更改 BS (包括引導載入程式) 的可能性。

實作安全空中韌體更新

軟體開發人員無法避免需要更新軟體,以因應新發現的軟體錯誤、競爭加強或新出現的安全威脅。不同於行動應用程式更新,嵌入式系統中的韌體執行安全更新最輕微影響是干擾正在運作的應用程式,最壞的情況則可能會導致系統「變磚」。Microchip 的 dsPIC33C DSC 和低功率 PIC24F MCU 系列提供雙分區機制,用於協助開發人員避免這些問題。

在標準操作模式下,這些裝置使用所有可用的實體記憶體作為連續的單分區記憶體空間 (圖 3、左),可以配置為單獨的 BS 和 GS。在雙分區模式下,開發人員將實體記憶體分為單獨的活躍分區和非活躍分區 (圖 3、右)。

Microchip 的 dsPIC33C DSC 和 PIC24F MCU 系列單分區或雙分區模式圖 (點選放大)圖 3:開發人員可以在預設的單分區模式或雙分區模式下操作 dsPIC33C DSC 和 PIC24F MCU 系列。(圖片來源:Microchip Technology)

這些裝置在雙分區模式下運作,可以繼續執行活躍分區中的應用程式碼,同時對非活躍分區進行編程。編程完成後,執行引導交換 (BOOTSWP) 運作指令會讓裝置將引導目標切換到已更新的分區。如果已更新分區中的程式碼失敗或發現有缺陷,裝置將會重置,自動將裝置引導至原始分區 (圖 4)。

Microchip 的 dsPIC33C DSC 和 PIC24F MCU 在雙分區模式下示意圖 (點選放大)圖 4:在雙分區模式下,dsPIC33C DSC 和 PIC24F MCU 可以在一個分區中加載應用程式碼,同時繼續在另一個分區中執行應用程式碼。(圖片來源:Microchip Technology)

在確保更新分區成功後,可以將已更新分區的快閃記憶體引導順序 (FBTSEQ) 設置為比原始分區更低。在後續裝置重置時,裝置將引導到具有較低 FBTSEQ 的已更新分區 (圖 5)。

雙分區模式允許開發人員指定引導到所需分區的順序圖片 (點選放大)圖 5:雙分區模式允許開發人員指定在裝置重置後引導到所需分區的順序。(圖片來源:Microchip Technology)

ICSP 寫入禁止和 CodeGuard 的 Flash OTP 快閃記憶體安全性為靜態和運作時程式碼安全性提供關鍵支援,但全面的嵌入式安全需要額外的機制,包括安全密鑰儲存、程式碼身份驗證和安全通訊。

使用配套安全裝置確保嵌入式系統安全

將 dsPIC33C DSC 和 PIC24F 微控制器與 Microchips 的 ATECC608 CryptoAuthentication 或TrustAnchor100 (TA100) CryptoAutomotive 安全 IC 結合,開發人員可以更輕鬆部署全套硬體架構的安全功能。

這些安全 IC 提供硬體架構防篡改安全機制,包括安全儲存、硬體加速加密引擎、真實亂數產生器以及加密演算法所需的其他機制。這些 IC 是專門設計的配套元件,可以輕鬆添加到 DSC 或 MCU 系統設計中,完成完整嵌入式系統安全的實作 (圖 6)。

Microchip 的 ATECC608 或 TA100 安全 IC 示意圖 (點選放大)圖 6:ATECC608 或 TA100 等安全 IC 補充 dsPIC33C DSC 和 PIC24F MCU 的安全功能,簡化安全嵌入式系統的實作。(圖片來源:Microchip Technology)

執行安全韌體更新等關鍵操作,展現 dsPIC33C DSC 和 PIC24F 微控制器與這些配套安全 IC 的互補安全功能。開發人員在完成韌體更新操作前,使用程式碼簽章技術,驗證程式碼的真實性和完整性。開發人員使用其開發系統,建立一個更新封包,包含程式碼、程式碼中繼資料和用於驗證的簽章 (圖 7)。

程式碼簽章提供重要的協定圖片圖 7:程式碼簽章提供重要的協定,通常用於在目標系統進行更新之前驗證程式碼的真實性和完整性。(圖片來源:Microchip Technology)

在目標系統上,過去使用軟體架構的簽章驗證,其驗證協定可能被入侵,如今使用硬體架構的簽章驗證,可消除此風險。相反地,Microchip 的 ATECC608 和 TA100 等配套安全 IC 可以快速且安全地執行簽章驗證操作,而不會有入侵風險 (圖 8)。

硬體架構驗證圖圖 8:在目標系統中,ATECC608 或 TA100 等安全 IC 提供硬體架構驗證,在引導載入程式更新韌體之前,用於驗證程式碼非常重要。(圖片來源:Microchip Technology)

為了加速安全系統的實作,Microchip 提供軟硬體開發工具的組合。

加速軟體和硬體開發

MPLAB X 整合開發環境 (IDE) 為開發人員提供完整的軟體開發環境,而 MPLAB XC C 編譯器 為現有工具鏈提供開發支援。為了加快任一環境中的開發速度,Microchip 的 MPLAB 程式碼配置器 (MCC) 允許開發人員使用圖形介面自動生成初始化程式、建立驅動程式、分配引腳、實作資料庫,以及以其他方式幫助加速許多關鍵低層級與任何嵌入式軟體開發專案相關的設置程序和流程。

為了加快實作合適的安全引導載入程式,Microchip 的 dsPIC33 DSC 和 PIC24 MCU 用引導載入程式提供圖形介面,可協助開發人員快速配置和生成其應用所需的自定義引導載入程式。相關的引導載入程式主機應用程式進一步簡化應用程式碼到目標裝置的傳輸。

針對硬體開發,Microchip 提供多款相關開發板,可打造以 dsPIC33C DSC 或 PIC24F MCU 為基礎的系統。事實上,Microchip 的 PIC-IoT 板 EV54Y39APIC-IoT 板 AC164164 (圖 9) 已整合安全 IC,這些 IC 分別預先配置 Amazon Web Services (AWS) 和 Google Cloud。

Microchip 的 PIC-IoT 板 AC164164 的圖片圖 9:PIC-IoT 板 AC164164 等板整合預先配置有 AWS 或 Google Cloud 憑證的安全 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 提供有效率安全平台所需的附加安全機制。開發人員將這些裝置結合使用,便可以滿足物聯網嵌入式解決方案以及汽車、工業、消費和醫療應用對系統級安全的需求。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk 撰寫電子產業的相關資訊已有超過二十年的經驗,涉及的主題多元,涵蓋硬體、軟體、系統以及包含 IoT 在內的應用。他以神經元網路為研究主題,取得神經科學博士學位,並且在航太產業,針對廣泛運用的安全系統和演算法加速方法進行研究。目前,在撰寫科技和工程文章之餘,他投入辨識和推薦系統的深度學習應用。

關於出版者

DigiKey 北美編輯群