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