|
來源:Digi-Key 作者:Jacob Beningo 多年來,嵌入式開發人員總是能夠忽視安全性。嵌入式系統曾是斷開連接的獨立系統,只需要關注物理篡改問題。物聯網 (IoT) 讓這種“優越感”蕩然無存。對于幾乎所有已接入設備而言,安全性現在是最關心的問題。為了正確保護設備安全,開發人員必須尋求三個關鍵的微控制器單元 (MCU) 特性 - 基于硬件的隔離、內存保護單元 (MPU) 和加密加速器。讓我們一起探索這三個關鍵特性。 安全 MCU 特性 #1:安全的處理環境 為確保嵌入式系統的安全,一個關鍵概念是采用隔離設計。對于一起運行以實現共同目標的內存、元器件和功能來說,隔離提供了一種邊界或柵欄。如果攻擊者能夠利用系統的某個區域,隔離屏障就會保護第二個區域,使攻擊者無法立即訪問它。 嵌入式系統通常隔離為兩個主要區域:非安全處理環境 (NSPE) 和安全處理環境 (SPE)。要實現這兩種執行環境,最佳方式是使用基于硬件的隔離。這種隔離有兩種實現方法 - 使用多核 MCU 或帶有 Arm TrustZone 的單核 MCU。 在多核解決方案中,一個處理器專用于 SPE,另一個則專用于 NSPE 中的多特性處理器。兩個內核在物理上相互隔離,僅通過共享 RAM 和進程間通信 (IPC) 進行通信。如果 NSPE 遭到黑客攻擊,安全核心中的任何隔離數據、內存和功能仍將被隔離和保護。攻擊者必須找到一種方法來破解安全核心。Infineon Technologies 的 PSoC 64 是使用多核方法的 MCU 示例。 PSoC 64 帶有用于多應用 NSPE 的 Arm Cortex-M4 處理器和用于 SPE 的 Arm Cortex-M0+ 安全內核。兩個內核可以通過 IPC 進行通信。要嘗試多核安全解決方案,CY8CKIT-064S0S2-4343W 這款支持 Wi-Fi 和藍牙的 PSoC 64 Pioneer 套件,便是一個值得關注的入門開發板(圖 1)。
圖 1:CY8CKIT-064S0S2-4343W Pioneer 套件提供了一個安全開發平臺,可供開發人員使用多核安全解決方案。(圖片來源:Infineon Technologies) TrustZone 解決方案與多核隔離模型的不同之處在于它使用單個處理核心,但處理過程仍分為 NSPE 和 SPE。需要執行安全功能時,處理器以確定性方式從 NSPE 切換到 SPE,這種方式通常需要三個時鐘周期或更短。一個支持 TrustZone 的 MCU 示例是 STMicroelectronics 的 STM32L562CET6。 基于硬件的隔離是開發人員在安全 MCU 中尋求的第一個功能。下一個特性是 MPU。 安全 MCU 特性 #2:MPU MPU 是用于保護內存的硬件外設。嵌入式開發人員需要 MPU,其能讓他們在應用程序代碼中進一步創建基于硬件的隔離區域。例如,雖然開發人員可能會利用 SPE,但 SPE 還可使用 MPU 進一步分解為多個隔離區域。如果攻擊者攻破 SPE,他們仍需要設法進入 MPU 所保護的每個隔離內存區域。 MPU 可以被認為是一個精簡的內存管理單元 (MMU),讓開發人員能夠將軟件分解為多個隔離進程。MPU 可用于任何存儲位置,包括閃存、RAM 和外設。MPU 用于設置執行和訪問權限。同樣,如果攻擊者可以訪問一個進程,他們將受限于基于 MPU 設置的訪問權限。如果嘗試訪問 MPU 設置之外的內存區域,MPU 將引發錯誤。然后系統可以嘗試恢復或重置。因此,MPU 就成為開發人員保護系統所需的關鍵特性。 安全 MCU 特性 #3:加密加速器 開發人員需要在安全 MCU 中尋求的第三個特性是加密加速器。加密加速器用于加速復雜計算,否則 CPU 將花費較長時間來處理這些計算。CPU 可以將工作卸載到加速器,這樣就能并行處理其他問題。結果是縮短了加密操作花費的時間,節省了 CPU 周期,甚至可能會節省電池供電設備的能耗。 開發人員可以使用加密加速器執行多種操作。首先,可用于加密通信或數據。常用加密方案是 AES-256,但也能根據 MCU 支持其他加密方案。另一個應用是計算數據集哈希值。這在驗證應用程序代碼或一段數據的完整性時非常有用。 加密加速器很容易被忽視,但任何完備的安全 MCU 都帶有加密加速器。開發人員的訣竅是檢查所支持的內容,并確保其具有應用程序預期生命周期所需的功能。 總結 安全性并非開發人員在開發周期結束時才加入系統中。他們必須盡早關注系統面臨的威脅,并選擇包含保護系統所需的所有硬件功能的 MCU。 |