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