是否有可能將嵌入式系統(tǒng)的安全性從負(fù)擔(dān)轉(zhuǎn)變?yōu)樽8#窟@是 ST 試圖通過STM32Trust回答的問題,該計劃專注于我們?yōu)樘岣咴O(shè)備安全性而帶來的所有軟件和硬件解決方案。信息安全或信息安全可能是一個負(fù)擔(dān),因為它是一個如此廣闊的領(lǐng)域。因此,幫助工程師意味著讓 ST 工具更易于使用。事實上,利用系統(tǒng)提供的所有功能并不總是顯而易見的。此外,獲得嚴(yán)格認(rèn)證的需求可能會增加成本并延遲產(chǎn)品發(fā)布。因此,開發(fā)人員需要解決方案來更快地實施重要保護(hù)。
使用 STM32Trust 探索嵌入式系統(tǒng)安全的所有方面
它是如何開始的以及進(jìn)展如何
STM32Trust 是一個隨著 ST 發(fā)布更多軟件工具和產(chǎn)品而不斷發(fā)展的程序。該計劃于 2019 年開始,還幫助教育開發(fā)人員確保他們的知識是最新的。因此,ST 舉辦培訓(xùn)、發(fā)表論文、撰寫文檔并與合作伙伴合作以促進(jìn)獲得認(rèn)證。換句話說,在一篇博文中詳盡地解釋 STM32Trust 的所有方面是徒勞的,這就是為什么ST 博客決定專注于一些核心解決方案,以幫助讀者更好地了解他們?nèi)绾卧谙到y(tǒng)中實施安全性。
STM32Trust 的核心解決方案之一是X-CUBE-SBSFU(安全啟動和安全固件更新)。簡而言之,軟件擴展包使開發(fā)人員能夠?qū)崿F(xiàn)安全啟動并提供安全的固件更新系統(tǒng)。它是 STM32Trust 的重要支柱之一,同時也是我們的安全固件安裝 (SFI)流程。后者可以將加密固件上傳到微控制器中,以防止 IP 盜竊等。雖然 SBSFU 和 SFI 在 ST 推出 STM32Trust 時占據(jù)主導(dǎo)地位,但我們在產(chǎn)品組合中添加了新的解決方案。例如,可信固件-M (TF-M)有助于在我們的 STM32L5 微控制器上實現(xiàn)安全環(huán)境。同樣,可信固件-A (TF-A)適用于 Cortex-A 設(shè)備,例如STM32MP1。因此,讓我們深入研究這些產(chǎn)品,看看它們?yōu)?STM32Trust 帶來了什么。
STM32Trust 和 X-CUBE-SBSFU:打造安全啟動和安全固件更新
從頭到尾保護(hù)用戶
Secure Boot 是一個在啟動或重置時運行的程序,通過檢查文件大小或簽名以確定是否有任何更改來驗證引導(dǎo)文件的完整性。因此,它可以保護(hù)系統(tǒng)免受在引導(dǎo)序列期間想要破壞固件的攻擊。另一種保護(hù)類型是安全固件更新。這種方法可以保護(hù)用戶免受遠(yuǎn)程修改現(xiàn)有系統(tǒng)的攻擊。實際上,當(dāng)服務(wù)器發(fā)送部分或完整的加密固件映像更新時,嵌入式系統(tǒng)會通過 UART 將其傳輸?shù)?MCU,系統(tǒng)會檢查其真實性,然后在安裝之前對其進(jìn)行解密。
更容易實現(xiàn)
像 X-CUBE-SBSFU 這樣的包允許開發(fā)人員更輕松地實現(xiàn)這些功能。例如,在我們的 STM32L4 上運行的 X-CUBE-SBSFU 代碼獲得了PSA 1 級認(rèn)證。因此,工程師可以使用它更快地獲得相同的認(rèn)證。此外,ST 繼續(xù)提供其源代碼。因此,開發(fā)人員可以從我們的實施中學(xué)習(xí)并優(yōu)化他們的應(yīng)用程序。例如,我們的庫可以生成大約 60 KB 的二進(jìn)制文件,這對于一些小型嵌入式系統(tǒng)來說可能有點大。但是,優(yōu)化操作使開發(fā)人員能夠修剪代碼并僅使用相關(guān)功能以適合他們的 MCU。
X-CUBE-SBSFU 還可以用于其他用途,因為它可以幫助團隊利用各種 STM32Trust 工具。例如,它使用我們的X-CUBE-CRYPTOLIB庫來優(yōu)化加密操作。ST 最近對軟件包進(jìn)行了大修,以提供模塊化方法和經(jīng)過認(rèn)證的代碼。此外,X-CUBE-CRYPTOLIB 現(xiàn)在根據(jù) MCU 分離庫以更直觀。X-CUBE-SBSFU 還增加了對STSAFE-A110的支持,STSAFE-A110是 STEVAL-STWINKT1B 上的防篡改安全元件,用于存儲各種密鑰和證書。
STM32Trust 和 TF-M 或 TF-A:創(chuàng)建可信環(huán)境
通過加密、驗證和隔離實現(xiàn)安全
TF-M 和 TF-A 都是可信執(zhí)行環(huán)境 (TEE) 的參考實現(xiàn)。前者適用于特定的 Cortex-M 內(nèi)核,而后者適用于 Cortex-A 設(shè)備。顧名思義,關(guān)鍵是通過隔離和保護(hù)系統(tǒng)的各個方面來建立信任。例如,TF-M 和 TF-A 利用安全存儲和加密操作來保護(hù)啟動和更新過程。因此,它們提供了一種方法來保證安全啟動機制和固件的完整性。它們還將運行時沙箱化,以防止問題影響整個系統(tǒng),并啟用密鑰存儲、證明和安全加密等服務(wù)。
在 Cortex-M 和 Cortex-A 設(shè)備上建立信任
希望在兼容的 STM32 微控制器上使用 TF-M 的開發(fā)人員將在其軟件包中找到他們需要的東西。例如,在 STM32L5 上實現(xiàn) TF-M 從 STM32CubeL5開始。該軟件包具有安全啟動、安全存儲、安全隔離等重要功能的參考實現(xiàn)。因此,團隊可以創(chuàng)建一個類似于 SFU 但具有標(biāo)準(zhǔn)隔離方案的機制。隨著時間的推移,我們還將繼續(xù)改進(jìn)我們的參考實現(xiàn),以利用更多功能。至于 TF-A,由于 MPU 的情況明顯不同,ST 創(chuàng)建了一個Wiki 來指導(dǎo)工程師。它引導(dǎo)用戶了解主要概念和軟件工具,以快速實施參考環(huán)境。此外,開發(fā)人員還可以使用 OP-TEE,這是一種開放式可移植可信執(zhí)行環(huán)境,可作為非安全 Linux 內(nèi)核的配套解決方案。
STM32Trust 和 SFI:帶來安全的固件安裝
保護(hù)知識產(chǎn)權(quán)和防止盜竊
安全固件安裝是一種保護(hù)客戶二進(jìn)制文件免受惡意活動影響的機制。很多時候,公司必須依靠第三方來組裝他們的最終產(chǎn)品。問題是它會引起很大的焦慮和不確定性。裝配線上的流氓員工或黑客可能會竊取固件,從而導(dǎo)致災(zāi)難性后果。安全固件安裝通過在將固件運送給 OEM 之前對其進(jìn)行加密來防止它。由于解密發(fā)生在代碼在 MCU 內(nèi)部時,IP 仍然是安全的,任何被盜的固件都是無用的。此外,公司甚至可以使用這種技術(shù)來跟蹤固件安裝的數(shù)量,以監(jiān)控任何產(chǎn)品盜竊。
SFI 主要依賴于兩個工具。開發(fā)人員使用STM32CubeProgrammer軟件中提供的 Trusted Package Creator 實用程序加密他們的固件,并將他們的私鑰和證書放置在采用智能卡形式的安全硬件模塊中。
然后,團隊將加密的二進(jìn)制和智能卡運送到 EMS。裝配線通過 UART、I《sup》2《/sup》C、USB 或 JTAG 通過 STM32CubeProgrammer 上傳固件和密鑰。然后,智能卡通過驗證 MCU 并獲取其唯一密鑰來驗證所有內(nèi)容。該卡還發(fā)送一個私鑰來解密二進(jìn)制文件并為每個產(chǎn)品生成一個單獨的許可證。該許可證使上傳系統(tǒng)能夠跟蹤精確的安裝次數(shù)。最后,ST 最近發(fā)布了新版本的智能卡,允許公司定義他們的目標(biāo)設(shè)備。以前,MCU的型號是預(yù)先設(shè)置好的。使用新版本,公司可以加載它以享受更靈活的系統(tǒng)。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7947瀏覽量
154871 -
STM32
+關(guān)注
關(guān)注
2293文章
11031瀏覽量
364633
發(fā)布評論請先 登錄
嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式
STM32開發(fā)入門進(jìn)階必備!《STM32嵌入式系統(tǒng)開發(fā)—基于STM32CubeMX和HAL庫》新書發(fā)布!

有方科技重磅亮相德國嵌入式展
【入門必看】從菜鳥到大牛,嵌入式系統(tǒng)完整學(xué)習(xí)路線!看這篇就夠了!

如何提高嵌入式代碼質(zhì)量?
【「嵌入式系統(tǒng)設(shè)計與實現(xiàn)」閱讀體驗】+ 學(xué)習(xí)一個STM32的案例
嵌入式超火的方向有哪些?
什么是嵌入式操作系統(tǒng)?
嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用 閱讀體驗 +分離內(nèi)核的嵌入式Hyperviso

嵌入式系統(tǒng)的原理和應(yīng)用
嵌入式linux開發(fā)的基本步驟有哪些?
學(xué)習(xí)hypervisor嵌入式產(chǎn)品安全設(shè)計
嵌入式系統(tǒng)中工業(yè)4.0網(wǎng)絡(luò)安全

從菜鳥到大牛!嵌入式完整學(xué)習(xí)路線:STM32單片機-RTOS-Linux

評論