連接到互聯網的產品數量繼續以指數速度增長。許多產品團隊面臨的問題是嵌入式軟件開發人員沒有足夠的安全經驗。缺乏經驗會導致被忽視的安全要求、安全漏洞和糟糕的實施。結果是連接的系統受到的保護很差,并且很容易竊取知識產權以及設備和用戶數據。
基于微控制器的系統的設計人員可以使用多種解決方案,這些解決方案可用于簡化安全實施并為他們提供成功實現這一目標的工具。例如,單核微控制器可以使用Arm 的TrustZone,它是 Armv8-M 架構(及更高版本)的一部分。還有多核微控制器的解決方案。
本文展示了開發人員如何使用多核處理器來保護他們的嵌入式解決方案。具體來說,它檢查了賽普拉斯PSoC 64 安全微控制器及其提供的用于實施安全解決方案的工具。
嵌入式安全基礎
設計安全產品的核心基礎之一是利用基于硬件的隔離。這種隔離可以有多種形式,例如隔離的執行環境,或基于內存保護單元(MPU)的隔離內存。在最高級別,微控制器需要能夠將其執行環境分為安全處理環境 (SPE) 和非安全處理環境 (NSPE)。
SPE 是一個隔離的執行環境,它將其內存、組件和應用程序代碼與 NSPE 分開。SPE 可以被認為是一個安全處理器。SPE 運行安全代碼和操作,例如安全操作系統和/或信任根 (RoT)。SPE 還將執行受信任的服務,例如加密、安全存儲、證明和安全日志記錄。與安全操作相關的有限數量的受信任應用程序將在 SPE 中運行。
就 NSPE 而言,它可以被認為是一個功能豐富的執行環境,它運行除了安全操作之外的所有東西。事實上,NSPE 確實是大多數嵌入式開發人員所熟悉的編程模型。它有一個 RTOS 和大多數應用程序的組件。
基于硬件的隔離是 Arm? 平臺安全架構 (PSA) 提供的用于構建安全系統的核心租戶或最佳實踐之一。我們剛剛討論的不同隔離層可以在圖 1 中看到,以 PSoC 64 為例。在此示例中,SPE 和 NSPE (1) 通過將運行時環境放在不同的處理器上來實現硬件隔離。除了運行時分離之外,RoT 和受信任的服務進一步隔離 (2)。最后,SPE 中的每個受信任應用程序也使用受信任分區和 MPU 等工具進行隔離 (3)。
??
圖 1:安全應用程序使用基于硬件的隔離來分隔執行環境。1) NSPE 和 SPE 隔離 2) RoT 和可信服務隔離 3) 可信應用程序隔離。(圖片來源:Arm/賽普拉斯)
PSoC 64 是雙核微控制器,其中 NSPE 在 Arm Cortex?-M4 處理器上執行,SPE 在 Arm Cortex-M0+ 處理器上執行。Arm Cortex-M0+ 運行所有安全功能,并可通過處理器間通信 (IPC) 總線與 Cortex-M4 通信。該架構限制了對硬件隔離的 SPE 的訪問。
要開始使用 PSoC 64,開發人員需要查看PSoC 64 Secure Boot Pioneer Kit。
PSoC 64 安全啟動先鋒套件
PSoC 64 Secure Boot Pioneer 套件(圖 2)具有開發人員開始保護其應用程序所需的一切。首先,它有一個 PSoC 64 模塊,其中包含 PSoC 64 微控制器、外部存儲器和所有支持電路(以紅色顯示)。外部存儲器可用于存儲應用程序代碼或用于存儲新固件映像以進行安全的無線固件 (FOTA) 更新。
??
圖 2:PSoC 64 Secure Boot Pioneer 套件擁有開發人員開始開發安全物聯網應用所需的一切。(圖片來源:賽普拉斯)
接下來,它有一個 Wi-Fi 模塊,允許開發人員將電路板連接到網絡。Wi-Fi 模塊對于板將連接到 AWS 或 Azure 等云服務的 IoT 應用程序特別有用。開發板支持 Amazon FreeRTOS,我們將在下一節討論。
最后,Pioneer 套件支持廣泛的擴展功能,例如引腳接頭、Arduino接頭和一系列傳感器。開發人員可以利用板載觸摸滑塊和觸摸按鈕、按鈕、電位器等。該板還設置為使幾乎任何應用程序的定制都非常容易。
PSoC 64 安全軟件套件
設計安全的嵌入式應用程序可能既耗時又具有挑戰性。開發人員應該尋找有助于降低成本和縮短上市時間的解決方案,同時確保他們的應用程序是安全的。為此,PSoC 64 提供了廣泛的軟件,使開發人員能夠快速構建安全的應用程序。
例如,CySecureTools為開發人員提供了用于創建密鑰和證書的工具集,以及用于簽署用戶應用程序和配置賽普拉斯微控制器的工具。該工具允許開發人員轉移 Cypress RoT,然后注入他們自己的安全資產。有關如何設置和使用 CySecureTools 的信息可以在 github 存儲庫 README 文件中找到。
物聯網開發人員會發現一個有用的工具是使用 FreeRTOS支持AWS 。github 存儲庫包含將 FreeRTOS 和 AWS 與 PSoC 64 結合使用的有用示例。開發人員感興趣的第一個示例是“Hello World”應用程序,它將 MQTT 消息從 PSoC 64 傳輸到 AWS 云。此示例允許開發人員完成配置過程、密鑰生成和部署階段。在示例結束時,開發人員擁有一個連接到 AWS 的安全嵌入式設備。有關如何入門的詳細信息,請參閱 CY8CKIT-064S0S204343套件指南入門。
使用 Trusted Firmware-M (TF-M) 保護應用程序
PSoC 64 為開發人員提供了一個開箱即用的安全框架,可輕松針對應用進行定制。開發人員可能會發現從軟件角度了解幕后發生的事情很有用。具體來說,PSoC 64 固件利用了稱為 Trusted Firmware-M 或 TF-M 的開源基線安全框架。
TF-M 是 Arm PSA IoT 安全框架的參考實現。它為開發人員提供了有用的安全工具,例如設備證明、固件驗證、加密服務、設備機密管理和安全分區等。賽普拉斯利用 TF-M 構建其安全框架,以便開發人員可以在他們的應用程序中使用它。
開發人員可以通過添加自己的代碼、添加安全配置文件等等來修改他們的安全框架。但是,重要的是要記住,修改 SPE 軟件的次數越多,添加漏洞的可能性就越大。開發人員需要仔細權衡與更改、添加或減少基線固件相關的風險。
保護嵌入式應用程序的提示和技巧
首次希望保護其嵌入式應用程序的開發人員需要考慮很多事情。以下是一些可以簡化和加速開發的“提示和技巧”:
在開發周期的早期執行威脅模型和安全分析 (TMSA)。
使用開發板測試設備 RoT、安全引導加載程序、設備配置過程和固件更新。
不要單獨實施安全!利用現有的開源和安全固件堆棧來最大程度地減少返工。
請務必考慮設備的生命周期,包括如何安全退役。
探索 CySecureTools 等工具;此類工具附帶示例安全模板、軟件和示例。
克隆 FreeRTOS github 存儲庫時,克隆最新的標記版本。克隆活動主線通常會導致發現工具不兼容和仍在進行中的錯誤。
瀏覽 Cypress CY8CKIT-064S0S2-4343W 套件入門,開始一個項目。它提供了運行基線應用程序所需的所有必要信息,然后可以針對特定產品目的進行修改。
遵循這些“提示和技巧”的開發人員會發現他們節省了相當多的時間和痛苦。
結論
安全并不一定很難。嵌入式開發人員應該專注于他們產品的差異化,他們的秘訣。在大多數情況下,這不是安全性。本文探討了 PSoC 64 如何幫助開發人員快速保護他們的應用程序,不僅提供基于硬件的隔離環境,還提供軟件工具框架。硬件和軟件解決方案共同為開發人員提供了加速的安全開發周期。
評論
查看更多