垂直應用

STM32信息安全概覽





目錄

STM32Trust

安全啟動與安全更新

代碼保護

安全存儲

密碼學算法引擎

安全隔離

安全生產

安全認證與評估

參考資料與培訓資源

文檔資料

培訓資源

視頻資源

 

STM32 Trust

隨著物聯網以及智能化產品的不斷涌現,信息安全問題也日漸受到關注。信息安全是一個從系統層面需要統一考慮的問題:在提供服務的云端、通信管道、邊緣及終端節點都需要部署完整的安全策略,終端節點設備不應該因為資源和處理能力有限而成為整個系統信息安全的薄弱環節。STM32Trust正是在這樣的背景下應運而生,目標是幫助客戶在其新產品的設計中能夠加強安全性,并充分利用STM32MCU硬件特性及其生態系統資源來實現安全設計。


STM32Trust 是一個集合了信息安全知識、生態系統和安全服務的綜合的安全架構,基于多層次的安全策略,提供針對代碼和執行保護在內的完整工具。STM32Trust基于客戶實際使用場景中對信息安全的需求,提出了安全功能的概念,來更好地契合來自客戶的實際需求以及信息安全相關規范的共性要求,幫助客戶快速找到自己的應用中所需要的安全功能。

 Picture1.png


一些典型的安全功能需求:

-安全啟動

-安全固件更新

-代碼保護

-安全存儲

-密碼學算法引擎

-安全隔離

-安全生產

-


安全啟動與安全更新

STM32提供安全啟動與安全更新參考實現,分為兩大類,X-Cube-SBSFU是針對Cortex V6/V7內核的STM32MCU參考實現軟件包,TF-M SBSFU是針對基于Cortex V8M內核的參考實現。二者的具體代碼不同,但是對于安全啟動和安全更新所遵循的思想是一致的,也有很多共性特征,例如充分利用各個MCU系列的硬件安全特性來保證安全啟動的啟動入口唯一、啟動代碼不可修改等要求;支持不同的Crypto方案;參考實現包含的簽名打包工具;支持單鏡像和雙鏡像模式;經過第三方安全評估認證等。


 Picture2.png


安全啟動與安全更新參考實現在STM32各個系列的支持情況

-X-CUBE-SBSFU支持除了F0,F1,F2,F3以外的所有非CM33內核的系列

-TF-M SBSFU支持CM33帶TrustZone內核的系列,目前包括L5和U5

更多關于安全啟動與安全更新的內容請點擊 STM32 安全啟動與安全固件更新參考實現


 Picture3.png


代碼保護



代碼保護的一個最基本的方面是調試端口訪問控制,避免代碼從調試端口被任意讀出。

讀保護RDP是多數STM32都支持的一個基本功能,從安全的角度考慮推薦使用RDP及別2,將調試端口永久關閉。

比較新的系列除了RDP2還有其他更加靈活的功能,即使不使用RDP2同樣可以達到上電缺省關閉調試訪問的效果,例如

-G0系列的RDP1+BOOT_LOCK功能

-H7系列的Security+安全用戶存儲區功能

-L5和U5的TrustZone+RDP0.5(L5和U5系列可以在RDP級別0.5的時候關閉安全側的調試功能,實現安全調試,U5還增加了OEMKey功能,可以用Key保護RDP的降級)


Picture4.png

 

代碼保護需要考慮的另外一個場景是部分代碼和數據需要放在片外存儲器的情況。

STM32也部分系列帶有OTFDEC(On The Fly DECryption)硬件,OTFDEC模塊在Bus Matrix 與OSPI之間,可以實時地解密外部Flash上的密文代碼和數據,只需要設置好相應的區域、密鑰等等,OTFDEC就可以自動解密被訪問的密文數據,這個過程對CPU和DMA透明,無需額外的軟件參與解密,不需要將解密數據加載到內部RAM,可以直接運行片外Flash上的加密代碼。

OTFDEC模塊也支持加密,但不是實時加密,數據首先被加密到RAM中,需要另外將RAM中的密文寫回外部FLASH。


安全存儲


敏感數據存儲通常的做法是加密存儲, 其中密鑰的安全存儲和使用是關鍵,需要考慮來自芯片外部和內部的攻擊

?外部攻擊主要依賴于調試端口訪問控制和芯片生命周期管理

?來自芯片內部攻擊主要是邏輯攻擊,考慮的是軟件漏洞可能帶來的風險。通常通過硬件隔離機制,避免關鍵數據被代碼任

意訪問(包括存在風險的代碼)

 Picture5.png


STM32不同的MCU系列實現安全存儲的方式不盡相同

?STM32L0和STM32L4系列帶有Firewall硬件單元,配合PCROP,可以將密鑰和使用密鑰的crypto代碼與其余部分的應用代碼隔離開,實現密鑰的安全存儲與使用

?STM32H7帶有crypto的型號中,通過使能Security選項字節,結合安全用戶存儲區、PCROP,以及硬件CRYPT單元密鑰寄存器只寫特性,在Boot階段將密鑰加載至Crypto硬件單元,跳轉到應用程序后密鑰不可見,但應用內可以使用CRYPT硬件進行加解密操作。

?STM32WB提供CKS(Customer Key Storage)功能,利用M0+與M4之間的雙核隔離特性,在M0+側提供AES密鑰存儲功能,M4上運行的應用代碼可以使用密鑰進行加解密操作,但是無法獲取密鑰數據本身。

?STM32L5系列支持TrustZone架構,利用TrustZone帶來的系統隔離特性,配合HDP,AES硬件單元等實現對密鑰的保護,同時在軟件上提供基于TF-M軟件框架的安全存儲服務。

?STM32U5上,除了STM32L5已經提供的功能外,還新增加了HUK和SecureAES,HUK是硬件唯一密鑰,出廠已經預置在每一顆U5芯片中,這個密鑰直接關聯到SAES模塊,CPU和DMA都無法訪問,提供了一個基于純硬件的一機一密的密鑰安全存儲的功能。


關于存儲保護相關的硬件特性的更多內容請點擊STM32信息安全硬件特性


密碼學算法引擎


軟件方面,STM32提供支持所有系列的軟件密碼算法庫X-CUBE-CRYPTOLIB,最新的V4版本新增加了對SM等算法的支持,同時帶來了更簡潔易用和更高運行效率的算法實現。

Cryptolib軟件包下載鏈接https://www.st.com/x-cube-cryptolib

關于最新版本密碼學算法庫的更多內容請點擊 STM32 密碼學算法庫


硬件方面,很多STM32系列都帶有HASH,AES和TRNG硬件模塊,較新的L4Q、WB、WL、L5和U5系列還帶有PKA(Public Key Accelerator)公鑰算法加速器硬件,支持RSA和ECC相關運算;U5上的SAES以及改進的PKA模塊還增加了對側信道攻擊

的防御能力,進一步提高算法引擎的安全性。

 Picture6.png



安全隔離


隔離到底解決什么問題,有什么用處?

-首先,隔離主要針對邏輯攻擊,它的一個假設前提是軟件可能存在漏洞,軟件漏洞可能被利用,進而導致關鍵信息收到損害,如被盜取,被修改等等

-隔離的思想首先是區分資源不同的訪問屬性,軟件運行在不同狀態時對資源的訪問權限是不同的,這里的資源可能是memory,可能是外設,甚至是內核的中斷和寄存器等等,這樣就可以把片上運行的軟件進行區分,關鍵資源只允許關鍵的一小部分代碼訪問,其他應用程序的部分即使存在漏洞,比如說有buffer overflow的問題,可能導致惡意代碼的注入和執行,即使有這樣的情況,那些關鍵資源也還是處在一個安全的狀態,不能夠被惡意代碼獲取。這樣隔離就可以降低軟件漏洞可能帶來的風險

 Picture7.png

STM32MCU具有哪些隔離機制?


 Picture8.png

-絕大部分的STM32 MCU(除了M0內核的MCU以外)內核本身都帶有的MPU單元,這個單元可以劃分出幾個region,每個region可以設置不同的訪問屬性,配合內核的User和Privilege模式,能夠實現對關鍵資源的訪問控制

-除了MPU以外,某些STM32系列還有一些特別的硬件單元,可以起到隔離的作用,比如

-L0、L4的Firewall,Firewall可以保護Flash和RAM中的一部分,CPU和DMA都無法直接訪問Firewall保護區域里面的內容,只能通過唯一的入口函數地址以函數調用的方式使用Firewall里的代碼提供的服務

-部分系列(例如G0, G4, H7, L5和U5)還帶有一個叫做安全用戶存儲區、或者隱藏Flash區的功能,這段特殊Flash區的大小可以由Option Byte進行配置,運行期間可以通過寄存器打開對這段Flash區域的保護,保護使能后在復位前將無法再次訪問其中的任何內容

-還有一類是雙核隔離機制,例如WB和WL

-M0+和M4兩個內核核對Flash, SRAM,選項字節以及Crypto等外設具有不同的訪問權限。WB的CKS就是基于雙核隔離實現的密鑰存儲服務。

-最新的CM33內核系列的STM32 MCU采用的是TrustZone的隔離技術

-TrustZone技術將所有系統資源,從內核到memory到外設都可以區分為安全和非安全兩種屬性,代碼在運行的時候有安全和非安全兩種狀態,對不同安全屬性的資源也有著不同的訪問權限

-STM32基于TrustZone的系統級隔離機制有著非常大的靈活性,不僅僅可以實現簡單的秘鑰存儲以及crypto操作,還可以在安全區中運行更復雜的邏輯,比如一段指紋比對或者身份認證的算法等等


安全生產


安全生產主要針對的是代碼或者數據交由第三方工廠進行燒寫的情況可能存在的風險,例如數據盜取,數據篡改以及過量生產

STM32針對安全生產提供的解決方案是SFI,Secure  Firmware Install

-這個功能首先從芯片上提供支持,MCU中會預置SFI相關的代碼以及密鑰對,目前支持SFI的系列包括L4的一個型號,H7的部分型號,L5和U5的全系列等

-OEM可以使用自己的秘鑰對需要燒寫的binary進行加密,然后將加密密鑰導入HSM,ST提供的HSM是銀行卡安全級別的智能卡,OEM可以將HSM和加密后的binary密文交付工廠進行燒寫

-燒寫的過程需要配合支持SFI的燒寫工具,ST提供的工具是STM32CubeProgrammer,STM32TrustPackageCreator是另一個PC工具,用于配置HSM以及加密OEM的binary,生成加密后的SFI文件

-通過SFI進行燒寫全過程沒有明文的binary出現,且帶有完整性校驗,HSM還可以進行燒錄計數,進行產量控制,避免過量生

產情況的發生



有關SFI的更多內容請點擊 STM32 安全生產方案



安全認證與評估


 Picture10.png



參考資料與培訓資源


文檔資料



STM32信息安全總覽

AN5156

Introduction to STM32 microcontrollers   security

STM32系列微控制器的安全性介紹》

應用筆記

碼保護相關資料

AN4701

Proprietary code read-out protection on microcontrollers of   the STM32F4 Series

STM32F4系列微控制器的專有代碼讀取保護

F4應用筆記

AN4758

Proprietary code read-out protection on STM32L4, STM32L4+   and STM32G4 Series microcontrollers

STM32L4STM32L4plus以及STM32G4微控制器上的專有代碼讀保護

L4/L4+應用筆記

AN4968

Proprietary code read out protection (PCROP) on STM32F72xxx   and STM32F73xxx microcontrollers

STM32F72x、F73xPCROP使用明》

F7應用筆記

AN4246

Proprietary Code Read Out Protection on STM32L1   microcontrollers

STM32L1 微控制器的專有代碼讀取保護

L1應用筆記

DB2641

Proprietary code read-out protection (PCROP),   software expansion for STM32Cube

STM32Cube專有代碼讀保護(PCROP)軟件擴展

PCROP擴展軟件包簡介

AN5281

How to use OTFDEC for encryption/decryption   in trusted environment on STM32H7Bxxx and STM32H73xx microcontrollers

《如何使用STM32H7Bxxx和STM32H73xxx微控制器上的OTFDEC進行加解密操作》

H7 應用筆記

 

/統隔離相關資料

AN4730

Using the FIREWALL embedded in STM32L0/L4/L4+   Series MCUs for secure access to sensitive parts of code and data

STM32L超低功耗系列MCU中嵌入的防火墻的應用手冊》

安全防火Firewall

應用筆記

AN4729

STM32L0/L4 FIREWALL overview

STM32L0STM32L4防火墻概述》

AN4838

Managing memory protection unit in STM32 MCUs

STM32微控制器上管理內存保護單元》

MPU

應用筆記

AN5347

STM32L5 Series TrustZone? features

STM32L5TrustZone特性》

TruzeZone

AN5421

Getting started with STM32L5 Series   microcontrollers and TrustZone? development

《基于STM32L5TrustZone發入門體驗》

AN5600

AN5600: STM32L5 Series GPIO usage with TrustZone?

《TrustZone架構下使用STM32L5系列GPIO的使用》

AN5601

HDP secure area   for STM32H7B3xx microcontrollers

STM32H7B3xx微控制器的HDP安全存儲區

STM32H7

應用筆記

隨機數與密碼學算法相關資料

UM1924

Legacy STM32 cryptographic library

STM32加密

Cryptolib V3

戶手冊

CAVP認證

X-CUBE-CRYPTOLIB FIPS CAVP certification

演示文稿

AN4230

STM32 microcontroller random number   generation validation using the NIST statistical test suite

《使用NIST統計測試套件驗證STM32微控制器隨機數生成》

應用筆記

 

安全動與安全固件更新軟件包相關資料

AN5056

Integration guide for the X-CUBE-SBSFU   STM32Cube Expansion Package

X-CUBE-SBSFU STM32Cube擴展包集成指南》

X-CUBE-SBSFU

UM2262

Getting started   with the X-CUBE-SBSFU STM32Cube Expansion Package

X_CUBE_SBSFU安全動和固件更新軟件入門》

AN5447

Overview of Secure   Boot and Secure Firmware Update solution on Arm? TrustZone? STM32L5 Series   microcontrollers

STM32L5的安全動和安全固件升級方案介紹

STM32L5 SBSFU

UM2671

Getting started   with STM32CubeL5 TFM application

《STM32L5 TF-M應用入門》

STM32L5 TF-M

UM2851

Getting started   with STM32CubeU5 TFM application

STM32U5 TF-M應用入門

STM32U5 TF-M

UM2745

STM32CubeL5 TFM   security guidance for SESIP profile for Arm? PSA Level 2 chip

STM32L5 TF-M針對SESIP和Arm? PSA Level2認證的安全指南

STM32L5 TF-M

 

安全生產相關資料

AN4992

STM32 MCUs secure firmware install (SFI)   overview

《安全固件安裝(SFI)概述》

安全固件安裝

AN5054

Secure programming using STM32CubeProgrammer

《使用STM32CubeProgrammer進行安全編程》

安全燒錄

UM2238

STM32 Trusted Package Creator tool software   description

STM32 Trusted Package Creator軟件工具描述》

安全包生成工具

UM2237

STM32CubeProgrammer software description

STM32CubeProgrammer軟件說明》

CubeProgrammer使用手冊

DB4265

Hardware security module for secure firmware installation

用于安全燒錄的硬件安全模塊HSM

STM32HSM-V2

DB3919

Hardware security module for secure programming

用于安全燒錄的硬件安全模塊HSM

STM32HSM-V1

簡要說明

 

其他

AN2606

STM32 microcontroller system memory boot mode

STM32? 微控制器系統存儲器自舉模式

動模式

AN3371

Using the hardware real-time clock (RTC) in   STM32 F0, F2, F3, F4 and L1 series of MCUs

《如何使用STM32硬件RTC

電源后備域與防入侵檢測

AN5185

ST firmware upgrade services for STM32WB Series

STM32WB系列的ST固件升級服務

應用筆記

STM32WB CKS

OTFDEC

使用STM32L5OTFDECICACHE功能實時高效運行片外Flash中的加密代碼

實戰經驗文章

OTFDEC_Efficiency_基于STM32H735G-DK板的驗證

調試保護

使用STM32L5TrustZone特性控制調試端口訪問,保護片上代碼安全

使用STM32H7安全用戶存儲區

隔離訪問

安全存儲

使用STM32MPU實現代碼隔離和訪問控制

理解與應用MPU的特權與用戶模式

如何根據應用需求調整STM32L5memory partition

使用STM32H7安全新特性實現敏感數據的安全存儲與使用

STM32WB的密鑰安全存儲和使用

關鍵數據和代碼在L0上的保護_基于防火墻和PCROP

PCROP

PCROP區域函數無法被調用的問題與解決

STM32F4xx   PCROP應用

代碼實現PCROP清除

Firewall

發現STM32防火墻的安全配置

Crypto

STM32 Cryptolib 使用技巧——AES GCM 解密認證失敗問題的研究

基于STM32加密庫開發比特幣應用的補充說明

CSS

時鐘安全系統的應用(LSE篇)

安全啟動

一步一步使用STM32安全啟動與固件更新

 

 訓資源


訓課程及資料

綜合

- 信息安全基

- 碼學基礎

-   STM32硬件安全特性

- 安全動與安全固件更新

STM32信息安全線上課程

視頻課程

信息安全基

信息安全的概念和方法

訓課件

STM32安全的概念與系統分析方法

碼學基礎

碼學基本原理_

碼學基本原理_

碼學基本原理_

碼學原理的應用_TLS

STM32硬件安全特性

STM32的加解密硬件模

STM32的存儲與執行保護

STM32的加解密硬件模

STM32G0的安全功能

STM32加解密技

STM32軟硬件安全技術

安全動與安全固件更新

SBSFU原理介

SBSFU初體

SBSFUSTM32G0上的實現

X_Cube_SBSFUSTM32G0

STM32 安全技Hands-On(基于STM32G0)

安全服/解決方案

安全固件燒錄_SFI

STM32硬件安全特性

STM32通用MCU信息安全培

 視頻資源


視頻資源

調試端口保護

H753安全調試理論介紹

H753安全調試操作演示

L5安全調試介紹+Demo演示

本地化視頻資源

安全存

H753安全存儲和使用介紹

H753安全存儲和使用Demo

鍵代碼和數據在L0上的保

安全生

SFI 固件安全燒錄介紹

STM32H753 SFI操作演示

STM32L5 SFI操作演示

 




在线观看网站深夜免费,欧美人配日本人配种视频,真实偷拍走光福利无删减视频,女人自熨全过程免费视频