作者:Jacob Beningo
接入互聯(lián)網(wǎng)的產(chǎn)品數(shù)量繼續(xù)以指數(shù)級的速度增長。許多產(chǎn)品團隊面臨的問題是,嵌入軟件開發(fā)人員的安全經(jīng)驗不足。缺乏經(jīng)驗會導(dǎo)致忽視安全要求、安全漏洞和實施不良。從而導(dǎo)致接入系統(tǒng)、設(shè)備和用戶數(shù)據(jù)得不到充分保護,容易被竊取知識產(chǎn)權(quán)。
基于微控制器的系統(tǒng)的設(shè)計人員可以選擇多種解決方案,以簡化安全應(yīng)用的實現(xiàn),并提供有助于成功實現(xiàn)的工具。例如,單核微控制器可以使用 Armv8-M架構(gòu)(及以上)的 Arm TrustZone。也有采用多核微控制器的解決方案。
本文介紹了開發(fā)人員如何使用多核處理器來確保其嵌入解決方案的安全。具體而言,本文研究了 Cypress 的 PSoC 64安全微控制器及其提供的用于實現(xiàn)安全解決方案的工具。
嵌入安全基本原理
設(shè)計安全產(chǎn)品的核心基本原理之一是利用基于硬件的隔離。這種隔離可以有多種形式,如隔離的執(zhí)行環(huán)境,或基于內(nèi)存保護單元 (MPU)的隔離內(nèi)存。在最高級別,微控制器需要能將其執(zhí)行環(huán)境分離成安全處理環(huán)境 (SPE) 和非安全處理環(huán)境 (NSPE)。
SPE 是隔離的執(zhí)行環(huán)境,其中內(nèi)存、元器件和應(yīng)用代碼與 NSPE 分離。SPE 可以看作一個安全處理器。SPE運行安全代碼和操作,如安全操作系統(tǒng)和/或信任根 (RoT)。SPE 還將執(zhí)行可信服務(wù),如加密、安全存儲、認證和安全記錄。與安全操作相關(guān)的少數(shù)可信應(yīng)用會在 SPE中運行。
至于 NSPE,則可被視為功能多樣的執(zhí)行環(huán)境,可以運行除安全操作以外的各種操作。實際上,大多數(shù)嵌入系統(tǒng)開發(fā)人員確實熟悉 NSPE 編程模型,其中有RTOS 和大多數(shù)應(yīng)用的元器件。
基于硬件的隔離是 Arm? 平臺安全架構(gòu) (PSA) 為構(gòu)建安全系統(tǒng)提供的核心租戶或最佳實踐之一。圖 1 以 PSoC 64為例展示了我們剛才探討的不同隔離層的實現(xiàn)。本例中,SPE 和 NSPE (1) 的運行時環(huán)境位于不同的處理器上,由此形成硬件隔離。除了運行時分離,RoT和可信服務(wù)也被進一步隔離 (2)。最后,SPE 中的每個可信應(yīng)用還利用可信分區(qū)和 MPU (3) 等工具進行隔離。
PSoC 64 是雙核微控制器,其中 NSPE 在 Arm Cortex?-M4 處理器上執(zhí)行,而 SPE 在 Arm Cortex-M0+處理器上執(zhí)行。Arm Cortex-M0+ 運行所有的安全功能,并可通過處理器間通信 (IPC) 總線與 Cortex-M4 通信。該架構(gòu)限制訪問SPE,SPE 為硬件隔離。
開始使用 PSoC 64 之前,開發(fā)人員需查看 PSoC 64 Secure Boot Pioneer Kit。
PSoC 64 Secure Boot Pioneer Kit
PSoC 64 Secure Boot Pioneer Kit(圖 2)包含開發(fā)人員為確保應(yīng)用安全所需的一切。首先,它有一個 PSoC 64 模塊,其中有PSoC 64 微控制器、外部存儲器和各種支持電路(圖示紅色部分)。外部存儲器可用于存儲應(yīng)用代碼,或用于新固件映像,以實現(xiàn)安全的固件線上更新(FOTA)。
其次,帶有 Wi-Fi 模塊,開發(fā)人員可以通過該模塊將電路板接入網(wǎng)絡(luò)。Wi-Fi 模塊對物聯(lián)網(wǎng)應(yīng)用特別有用,因為其中的電路板會連接到 AWS 或Azure 等云服務(wù)。該開發(fā)板支持 Amazon FreeRTOS,我們將在接下來的部分進行討論。
最后,Pioneer Kit 支持廣泛的擴展功能,如排針、Arduino針座和各種傳感器。開發(fā)人員可以使用板載觸摸滑塊和觸摸按鈕、按鈕、電位計等。電路板的設(shè)置也使定制相當(dāng)容易,幾乎可針對任何應(yīng)用進行定制。
PSoC 64 Secure Software Suite
設(shè)計安全的嵌入應(yīng)用可能會耗時費力。開發(fā)人員應(yīng)該尋找有助于降低成本和加快上市的解決方案,同時還要確保應(yīng)用的安全性。為幫助實現(xiàn)此目標(biāo),PSoC 64提供了大量的軟件,使開發(fā)人員能夠快速構(gòu)建安全的應(yīng)用。
例如,CySecureTools 為開發(fā)人員提供了創(chuàng)建密鑰和證書的工具集,以及簽署用戶應(yīng)用和配置 Cypress 微控制器的工具。該工具允許開發(fā)人員轉(zhuǎn)移Cypress RoT,然后注入自己的安全資產(chǎn)。關(guān)于如何設(shè)置和使用 CySecureTools 的信息可以在 github 資源庫 README文件中找到。
對于物聯(lián)網(wǎng)開發(fā)人員有用的工具可支持 使用 FreeRTOS 的 AWS。Github 資源庫包含了在 PSoC 64 上使用 FreeRTOS 和 AWS的有用示例。開發(fā)人員會感興趣的第一個示例是“Hello World”應(yīng)用,它將 MQTT 消息從 PSoC 64 傳輸?shù)?AWS云。此示例可以讓開發(fā)人員瀏覽配置過程、密鑰生成和部署階段。在此示例的最后,開發(fā)人員有一個安全的嵌入設(shè)備連接到 AWS。關(guān)于如何開始的信息詳見
CY8CKIT-064S0S204343 套件入門指南。
用 Trusted Firmware-M (TF-M) 確保應(yīng)用安全
PSoC 64 為開發(fā)人員提供了開箱即用的安全框架,可以根據(jù)應(yīng)用輕松定制。開發(fā)人員可能會發(fā)現(xiàn),從軟件的角度了解基礎(chǔ)知識非常有用。具體來說,PSoC 64固件利用 Trusted Firmware-M(或 TF-M)開源基準(zhǔn)安全框架。
TF-M 是 Arm PSA
物聯(lián)網(wǎng)安全框架的一個基準(zhǔn)實現(xiàn)。它為開發(fā)人員提供了有用的安全工具,如設(shè)備認證、固件驗證、加密服務(wù)、設(shè)備秘鑰管理和安全分區(qū)等。Cypress 利用 TF-M來構(gòu)建其安全框架,以便開發(fā)人員可以在自己的應(yīng)用中使用該框架。
開發(fā)人員可以通過添加自己的代碼、添加安全配置文件等方式修改其安全框架。但要切記,SPE軟件被修改得越多,漏洞增加的幾率就越大。開發(fā)人員需要認真權(quán)衡與變更、增加或減少基線固件相關(guān)的風(fēng)險。
確保嵌入應(yīng)用安全的技巧和訣竅
首次想要確保其嵌入應(yīng)用安全的開發(fā)人員需要考慮諸多問題。下面有幾個“技巧和竅門”,可以簡化和加速開發(fā):
在開發(fā)早期進行威脅模型和安全分析 (TMSA)。
使用開發(fā)板來測試設(shè)備 RoT、安全引導(dǎo)程序、設(shè)備配置過程和固件更新。
不要單獨實施安全!利用現(xiàn)有的開源安全固件堆棧,以盡量減少返工。
務(wù)必考慮設(shè)備的生命周期,包括如何安全停用。
了解 CySecureTools 等工具,這些工具可提供安全模板、軟件和示例。
在復(fù)制 FreeRTOS github 資源庫時,選擇最新的標(biāo)記版本。復(fù)制活躍的主線,往往會導(dǎo)致工具不兼容和漏洞依然存在。
開始項目時,先瀏覽 Cypress CY8CKIT-064S0S2-4343W套件入門指南。指南中提供了運行基線應(yīng)用的所有必要信息,然后可以針對具體產(chǎn)品目的進行修改。
遵循這些“技巧和竅門”,可以幫助開發(fā)人員節(jié)省更多的時間,減少更多的麻煩。
總結(jié)
安全問題并非難以處理。嵌入系統(tǒng)開發(fā)人員應(yīng)該專注于他們產(chǎn)品的差異化,即他們的秘訣。多數(shù)情況下,這并不涉及安全問題。本文探討了 PSoC 64如何通過同時提供基于硬件的隔離環(huán)境和軟件工具框架,來幫助開發(fā)人員快速確保其應(yīng)用的安全。這些硬件和軟件解決方案結(jié)合,加快了開發(fā)人員的安全開發(fā)周期。
-
微控制器
+關(guān)注
關(guān)注
48文章
7269瀏覽量
149513 -
PSoC
+關(guān)注
關(guān)注
12文章
169瀏覽量
91524 -
嵌入系統(tǒng)
+關(guān)注
關(guān)注
0文章
18瀏覽量
15252 -
SPE
+關(guān)注
關(guān)注
0文章
27瀏覽量
13665
發(fā)布評論請先 登錄
相關(guān)推薦
評論