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