你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

什么是STM32Trust?ST最新发布了一种支持STM32的SMI技术

[复制链接]
tansft 发布时间:2019-10-28 12:59
11.png
学习STM32的朋友,多少都听过STM32Trust,但有许多人却不知道STM32Trust究竟是什么。
本文就带你认识STM32Trust,以及最新在STM32H7上支持的一种SMI技术。

$ u0 O: ?/ M$ z
一、总述STM32Trust
6 A5 y8 |: k) a; q, Z& v
STM32Trust官方网址(复制网址粘贴到外部浏览器):
( ]5 {7 h( \$ j+ @6 i
STM32Trust是一套STM32解决方案,提供完整的代码保护和执行保护工具套件,如下图:
22.png

- |/ D0 C3 D% C% R8 t$ e7 b! `
1.代码保护

; s& v9 J( f4 N$ c- f7 ?) Y. x* p
STM32Trust.CodeProtection一套解决方案,以确保烧写STM32时,客户代码的机密性和完整性。
某些STM32 单片机型号已嵌入硬件安全保护功能,还额外实现了篡改检测、防火墙代码隔离机制和Arm TrustZone®技术,来保护最敏感的代码。
5 ^5 e& D" e! S
代码保护方案支持的STM32列表:
33.png
0 C! a8 j+ C5 _- E  W  e
几个概念:
①SBSFU:Secure Boot and Secure Firmware Update,安全启动和安全固件更新。
②CRYPTOLIB:cryptographic firmware library,加密固件库。
③SFI:Secure Firmware Installation,安全固件安装解决方案。

1 b1 ~; S& B+ f
2.执行保护
设备成为商业产品就易成为受攻击的目标,需要对信息安全攻击具有免疫力。因而需要采取信息安全防护措施,以确保固件IP受到保护,机密凭证和数据受应用程序保护,而不会被破坏。
执行保护方案支持的STM32列表:
44.png
9 r, v* F  w. h
二、STM32Trust代码保护

; \+ d" q9 A' V$ i+ ?
在上面可以看得出来,官方针对STM32做了多种代码保护方案,这里挑选几个进行讲述。
2 Q& P4 j) }, j1 n% z) V
代码保护包含:
X-CUBE-SBSFU解决方案
X-CUBE-CRYPTOLIB解决方案
SFI安全固件安装解决方案
STM32CubeProgrammer
STM32HSM
FASTROM编程服务
# A! w6 `3 V6 i7 F8 |; k6 P; o4 a
1.X-CUBE-SBSFU解决方案
SBSFU:Secure Boot and Secure Firmware Update,安全启动和安全固件更新。
网址:
+ z* W0 F; K  _; h- S
X-CUBE-SBSFU安全启动和安全固件更新解决方案允许使用新固件版本更新STM32微控制器内置程序,增加新功能并纠正潜在问题。更新过程以安全的方式执行,以防止未经授权的更新和对机密设备上数据的访问。
55.png
, G2 e2 |8 I$ T. u
SBSFU主要体现安全启动和安全固件更新:
安全启动是不可变的代码,通常在系统重置后执行,该代码检查STM32静态保护,激活STM32运行时保护,然后在每次执行之前验证用户应用程序代码的真实性和完整性,以确保无效或恶意代码无法运行。
安全固件更新应用程序通过具有Ymodem协议的UART接口接收固件映像,检查其真实性,并在安装代码之前检查代码的完整性。
. x; M  i0 t+ ^& \; f9 G
SBSFU主要特征:
①安全启动已在执行之前检查固件映像。
②具有防回滚和部分映像更新功能的安全固件更新,用于无线或本地固件映像更新。
③通过PKCS#11 API提供加密服务的安全密钥管理服务。
④独立的STM32系统解决方案示例,展示了STM32保护的最佳用法,可保护资产免遭未经授权的外部或内部访问。
⑤结合STM32和STSAFE-A100系统解决方案示例,展示了用于安全身份验证服务和安全数据存储的硬件安全元素保护。

5 r5 C2 q$ a: \1 P0 J" z! |6 e2 p
2.X-CUBE-CRYPTOLIB解决方案

6 F" O8 b7 o8 J  C- |  A
CRYPTOLIB:cryptographic firmware library,加密固件库。
网址:
http://www.st.com/en/embedded-software/x-cube-cryptolib.html
: W0 Z* O  g% P/ p7 r
STM32加密库软件包(X-CUBE-CRYPTOLIB)基于STM32Cube体系结构软件包,并包括一组基于固件实现的加密算法,可以在所有STM32微控制器中使用。
66.png
" T1 \9 f( W6 q$ U
3.SFI安全固件安装解决方案
: U. f; U. S6 i' o
SFI:Secure Firmware Installation,安全固件安装解决方案。
SFI安全固件安装解决方案可用于STM32L4和STM32H7单片机,并且很快将扩展到其他STM32平台, 为设备的首次编程提供保护。
该解决方案提供一套完整的工具集,包含用于加密OEM二进制文件的软件(Trusted Package Creator),用于安全烧写STM32的软件(CUBE Programmer),以及用于将OEM机密凭证安全地交付给芯片烧录厂家的STM32HSM。
77.png

! \) v. d- g. n9 W( `
4.STM32CubeProgrammer
) U+ d1 Y0 j. j9 D; H" z' v1 o
88.png
这是一个大家熟知的对STM32编程的免费工具,包含STM32TrustedPackage Creator工具,通过该工具可以为支持SFI功能的STM32生成SFI和SMI加密映像。
SFI映像的格式是由ST定义的固件加密格式,它使用AES算法将Elf、Hex、Bin或Srec格式的固件转换为SFI格式的加密和认证固件。
SFI映像由一个头部区域和多个其他区域组成,这些区域通常为连续固件区域,最后一个区域为配置区域,其中包含SFI完成时需要设置的选项字节值。
我之前也写过相关文章:关于STM32CubeProgrammer的内容
4 u( t5 K% B9 @  ?; T
5.STM32HSM

# g) c: Y2 R. x$ X( g; F, ]/ l
STM32HSM-V1硬件安全模块(HSM)用于确保STM32产品的编程安全,并避免在合同制造商的住所制造假冒产品。
99.png

: A* [7 S+ N" I) P; e; M
SFI功能允许将客户固件安全地加载到嵌入了安全引导程序的STM32产品中。
定义固件加密密钥并对其固件进行加密后,原始设备制造商(OEM)将加密密钥存储到一个或多个STM32HSM-V1 HSM,并使用STM32CubeProgrammer和STM32 Trusted PackageCreator设置授权的SFI操作数(计数器值)软件工具。合同制造商必须利用STM32HSM-V1 HSM将加密的固件加载到STM32设备:每个HSM仅允许OEM定义数量的编程操作,然后不可撤销地将其停用。

6 r9 A2 Y- J3 F
STM32HSM-V1主要特征:
①正版固件标识(固件标识符)
②识别具有安全固件安装(SFI)功能的STM32产品
③管理与支持的STM32产品关联的ST公钥
④使用客户定义的固件加密密钥生成许可证
⑤安全计数器,可生成预定义数量的许可证
⑥直接支持STM32CubeProgrammer软件(STM32CubeProg),包括STM32 Trusted PackageCreator工具。
8 _" t1 O) j; B8 w$ d. W. q& T
6.FASTROM编程服务
FASTROM:Factory Advanced Service Technique ReadOnly Memory。
什么意思?MCU出厂时就把程序给你写进去。
MCU是预编程了客户代码和选项字节的Flash工艺MCU器件,FASTROM MCU可提高大批量(10,000+)编程效率,相比ROM,具有交期更短、并允许对器件重新编程的优势。

7 N! z6 F/ t# z
三、STM32Trust执行保护
( j" R% @% ]7 A  j/ l& J
STM32Trust.ExecutionProtection是一组STM32功能,用于确保所有者代码运行期的适当隔离、正确执行和易用性,以保证所收集数据的机密性和真实性。STM32提供不同的架构和隔离方案用于实现执行保护。

& l( j3 S3 b3 q( `, r1 ~2 q5 k3 ]! Q
执行保护包含:
调试
安全启动
MPU
双核架构
TrustZone
防火墙

' ~, w, Q; H$ X
执行保护的内容不难理解,下面引用官方的内容。
4 {) p! n1 }; p; J- ?6 j& q- ~, }
1.调试
通过调试端口可从外部访问所有设备资源。调试端口用于应用程序开发,是攻击者对设备进行攻击时可能会最先利用的薄弱环节。为确保用户代码的机密性和真实性,应锁定STM32调试功能。
9 p9 O" Y: [- x/ X
2.安全启动

, w, d1 `1 w/ r6 ^/ y8 b" o: y& t
如X-CUBE-SBSFU软件包中所示,安全启动在每次复位时执行,检查STM32平台配置的完整性,并验证每个嵌入式固件的签名,以确保其真实性。
! [8 c. E/ B& p3 D+ E5 h  |8 n2 `0 j
3.MPU
6 h( I& E! @  e4 S9 ~
存储器保护单元机制可保护进程,防止不同进程间的相互访问,并允许这些进程独立运行。MPU所带来的软件隔离效果可确保各个进程彼此之间的代码和数据安全性。STM32提供受多种操作系统支持的MPU解决方案。

9 q& @! \/ p8 L6 P1 l- ]
4.双核架构
2 M) `# w; `; o
双核架构允许两个应用程序在同一MCU设备中同时运行,两者通过内核ID隔离。

: ~- N+ y4 _' u( E/ V: y
5.TrustZone
( c8 N0 L4 a4 g. i
TrustZone是一套完整的硬件机制,用来定义和隔离两个主要的应用程序区:一个是所谓的可信区(用于保护关键应用程序及其相关资源),另一个是不可信区,运行主应用程序。

; Z& B0 L8 ?1 p" B  G
6.防火墙
% j1 C, u% H& h5 V5 W1 w" \* Y
防火墙是一种硬件保护外设,它控制着总线访问,并过滤对代码区(闪存)、非易失性数据区域(SRAM)以及易失性数据区域(闪存)这三个特殊区域的访问。它允许用户轻松地将关键代码的执行与主应用程序分开。
+ ?, P  z. ?' f& }9 Y4 O7 j1 a8 b8 @( D
四、ST发布了首款兼容SMI的STM32
4 `0 g: B0 t% s7 U5 c+ f; `
SMI:Secure Module Install,安全模块安装。
最近,ST发布了首款兼容SMI的STM32,那就是STM32H7。

! L' L! _& i" \
地址:
http://blog.st.com/stm32h7-secure-module-install-smi/
7 G7 h3 Z( D2 T4 `* F
安全固件安装(SFI)现在是一种相对流行的技术,它使系统制造商能够将其固件的加密版本发送给OEM。
由于仅在MCU内部对代码进行解密,因此开发人员可以降低IP盗用的风险。同样,OEM可以提供重要的保证,而无需投资大型机器或技术,因为它们唯一需要的是STM32CubeProgrammer和HSM智能卡,其中包含安全证书,可以将固件安全地安装到MCU上。

2 T( b" v% U0 Q+ ~& |- I5 [5 K
关于SMI

) ?# V: }$ S7 G7 H& d  y; H$ |
SMI与其他常规模块一样,运行在MCU上的应用程序也调用该模块,但是系统制造商无法访问源代码,从而大大降低了IP盗用的可能性。
+ H# Z: k; c- I! C, T0 n0 j& K
SMI和SFI流程:
10.png

' `) K: u3 `! p0 x& W# b
细心的读者会注意到SMI流程与SFI相同,但是开发人员不加密整个固件,而是加密模块。此外,SFI和SMI进程使用不同的HSM卡。一个智能卡不能存储所有凭据,但是出于明显的安全原因,每个固件和模块都必须使用其卡。

7 Y5 C6 A' {1 {2 w* E
与SFI不同,SMI需要编译器支持唯一扩展,免费的STM32CubeIDE已经兼容,并且它的最新更新刚刚带来了对STM32H7的支持,使其成为专业人士和发烧友的绝佳工具。同样,Keil和iAR也兼容,并且我们正在与其他IDE制造商合作以确保提供尽可能广泛的支持。

: Z# b: W" R7 j6 e
相关推荐:STM32Trust
, f( @; l7 q0 W
( q' D8 x0 g9 }. V+ v% v
收藏 评论4 发布时间:2019-10-28 12:59

举报

4个回答
mmuuss586 回答时间:2019-10-28 14:40:54

5 {3 a8 J- k5 {4 e7 h支持支持
飞之天之飞 回答时间:2019-10-28 20:33:50
感觉功能好强大
weiwei4 回答时间:2019-10-30 09:33:25
支持支持
adlu 回答时间:2020-5-13 16:20:40
我想知道怎么用

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版