STM32F103RB的BootLoader软件安全设计方案

更新时间:2023-08-30 19:28:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

STM32F103RB的BootLoader软件安全设计方案

S M3 F R T 2 1 3 B的 0 B o a e软件安全设计方案 * ot dr i o■深圳大学林郭安黄强 许文焕

中成功运行,使产品代码发生部分泄漏,就是产品面将这

引言随着嵌入式系统产品的发展,功能趋向系统化、其复

临的篡改攻击风险]。针对这一风险的研究在实际应用中显得十分重要。

杂化,同场合和具体应用对产品的升级维护提出了更多不一

S公司推出的 S M3 T T 2系列微处理器采用 AR新 M代 Cotx—M3内核,中增强型的 S re其 TM3 F O RB具 2 13

的需求。厂商针对这一问题普遍采用 B ola e导应 o t d r引 o

用程序结构的嵌入式软件,产品升级和维护过程中只需在提供升级程序包由 B olae在升级模式下更新产品的 ot d r o应用程序,可快捷地实现产品升级]即。一

有 7 Hz主频、 0 KB片内 S 2M 2 RAM、 2 1 8 KB片内 F a h ls 以及丰富的接口资源,以很好地满足广泛的嵌入式产品可

的应用需求。较低的芯片价格和简单的开发方式使之应用前景非常广阔,该芯片上代码的安全研究也具有深远对意义。

直以来,入式软件的安全和知识产权保护是厂商嵌

面对市场竞争着重关心的焦点。嵌入式系统处理器的有

限硬件资源和高效率要求使得其难以应用复杂和大运算量的加密算法,对代码的保护更多依赖于硬件,往往具这有很多潜在的安全隐患]。本文就 B ola e导应用 o t d r引 o程序结构的软件在 S TM3 F1 3 2 0 RB芯片上应用时,到篡遭

1 2风险研究 .B o la e引导应用程序结构的嵌入式软件可以满 o t dr o足产品功能升级和维护的需求,实际应用中被厂商普遍在采用。B ola e程序是在系统上电复位后在 Fls ot dr o a h中首先执行的一小段代码]其基本功能模块如图 1所示。,

改攻击后所面临的代码泄漏风险进行研究和验证,提出并了改进 B ola e o t d r的安全设计方案,强代码的安全性。 o加

,.. ......

1一 . .

1篡改攻击风险研究 1 1研究的意义 .嵌人式系统产品的开发往往成本高、发周期长,开一

l初始化硬件I

自模块 I I检 跳转至应用程序入口I下载应用程序更新 I图 1 B ola e功能基本功能模块 ot d r o

旦产品中的嵌人式软件被抄袭或盗窃都将给厂商带来巨大的损失。随着嵌入式处理器设计技术的发展,片内对

对于具有 B ol dr导应用程序结构的嵌入式软 ot ae引 o件, ot a e部分和应用程序是相对独立的。产品有 B ol dr o了升级版本后,户可以得到产品和升级程序包。在对用产品的篡改攻击中,旦 B o la e代码泄漏,法使用一 ot d r o非

Fah中的代码保护也日渐完善。芯片在保护状态下, ls可以完全禁止通过调试接口或 S RAM中运行的程序读取

Fah内容,产品阶段保存在 Fah中的代码运行时对 l s但 ls自身的读取是允许的,果非法使用者通过特殊手段篡改如了 F ah中的部分代码为非法读取程序,使之在 F a h ls并 ls

者通过升级模式更新应用程序部分,可以复制产品的将全部软件代码,就使得产品被抄袭的潜在风险急剧增这大。在 S TM3 F O RB上进行的实验也证明了抄袭的可 2 13能性。

*基金项目:中国自然科学基金会 ( 0 0 0 6,圳产学研项目 6512 )深( Y2 O O6 7 1 A) S O 8 2 O 20。

ppr ae@me e cr.n投稿专用) s t o c( n. n

Mi o0 t l r 8 E e ddS se 一n c cnr l s L mbd e yt r oe ms/

STM32F103RB的BootLoader软件安全设计方案

鹰霪三 X R E~E £ E C G P _/ i冀缝 i辨赫 _ _ __ --

l l

i i薯*

行机会。所进行的实验结果如图 3所示。

2基于 S M3 F 0 R T 2 1 3 B芯片的风险验证S TM3 F 0 RB芯片对片内 Fa h的保护通过特殊位 2 13 ls

通过实验,证了当部分应用程序内容被修改时,验B ola e可以正常进入运行模式, o t dr o在放置

的跳转指针尝试至应用程序函数入口地址时,序可以跳转至非法读程

置的 O t nB ts写保护控制字实现。读、 pi ye读 o写保护有效时将禁止调试接口和 S RAM中运行的程序对 Fls a h读、写

取程序执行读取命令,到 B ol dr序和被部分修得 ot ae程 o改的应用程序代码。复制到新的芯片中后运行启动

操作。芯片特殊设计为:除读保护时,先整片擦除片去首内 Fah从而销毁产品软件代码; l, s写保护的去除并不影响Fa h中代码的完整性;保护有效时, ls ls读 F a h的前 3片区写保护自动有效,防止中断向量表被非法修改]。实验在 S TM3 F 0 R 2 1 3 B的开发板上进行,前 3片区在

B olae升级模式,升级程序下载升级程序包覆盖应 ot dr o将用程序区域,就得到了完整的 B o la e程序和应用程序 ot dr o代码。

写入 B ola e程序代码后,用升级程序包将应用程序 o t dr o利

下载至应用程序片区。检验程序功能正常后置芯片读保护和所有片区写保护有效,而得到产品阶段的芯片。对从芯片的篡改攻击风险验证实验流程如图 2所示。开始复位

在S AM b g R Deu模式下擦除OpinB ts t ye ̄域 o设置芯片写保护无效在 Fah部片区1 7 l尾 s 2中写入非法读取程序代码在片区 16 2的底部地址 O 0 0 B F入跳转 x 81 F写 F至非法读取程序的指针

选择Fah ls地址启动

N

图 3篡改攻击造成的代码泄漏

跳转指针前移4字节

3双重完整性检验安全方案设计与验证 结束

实际应用中,B ola e导应用程序结构的软件在 o t d r引 o S TM3 F 0 RB芯片上使用时,商可以通过改进 B o— 2 13厂 ot

图 2风险验证实验流程

l d r设计,大程度地避免这种篡改应用程序方式带 o e的 a最来的代码被抄袭的风险。由于芯片读保护有效时, 3片前区的自动写保护可以保证中断向量表不被篡改,而从

用于篡改攻击的软件包括非法读取 F a h内容并通

ls

过串口输出的程序和用于跳转到非法读取程序的指针。 篡改攻击的实现原理是芯片的读、保护只包括主 Fah写 ls区域, Op inB ts区域的擦除操作可以去除无自动写对 t ye o保护片区的写保护状态,读保护仍然有效。在 S AM而] R

B ol dr Fah地址启动时首先执行。 ot a e在 ls o在更新应用程序的过程中,了升级程序包采用加密除方式由 B o la e在升级模式下将内容解密后写入应用 ot dr o程序区域外, o t a e行模式下确认 F a h中的内容 B ol d r运 o ls为完整的合法程序和阻止非法程序的运行是安全设计方

中运行的程序可以使芯片转变为代码完整而应用程序区域无写保护的状态 0一般情况下,品为了保持升级的空产间,件没有占据整个 Fa h空间且采取自顶向下的顺序软 ls

案的出发点。下面介绍的是采用双重完整性检验的方案提高代码安全性的方法:①由于 S TM3 F O RB芯片的 F lh的写操作需要 2 13 as

摆放。。为了最大程度保持原有应用程序,验中将非实法读取程序写入 Fa h的尾部片区,将用于跳转至非法 ls并程序的指针自底向上遍历 Fa h地址尝试应用程序的人 ls口地址㈨。

对片区擦除后进行,以在各片区的特定地址内依次可放置厂商设定的 1 2字节伪随机码,成密码序列。在~组非法读取程序或跳转指针写入时,片区擦除过程将破坏对伪随机码而不能重新写回,致密码序列的破坏。导

实验的结果通过 P C端接收到非法读取程序输出的

代码数据验证,取的过程是芯片上电复位后自 Fah读 ls起始地址启动执行, ot a e在运行模式下将跳转至应 B ol dr o用程序人口地址执行。在非法跳转指针移动过程中,用应

② C C检验是较为常见的一种数据传输检错方式, R随着技术的发展,已经出现了能够适用于嵌入式系统有限

程序入口地址被跳转指针覆盖时,法读取程序将得到执非

资源的快速算法。将应用程序代码区域的 C

C检验值在 R

7《‘乌入彖应》_皤面圈圆 车;藏式诧固圈 _奠固 4机

a@eeoc广专 ) d mn c.(告用 v s.mn t

STM32F103RB的BootLoader软件安全设计方案

经验交流升级程序时保存在 F ah中的约定位置。对应用程序代 ls

码的非法修改将使 C C检验值改变 R

结语嵌入式系统是硬件与软件高度结合的技术应用,过通对 s TM3 F1 3 2 0 RB芯片上进行 B ola e o to d r引导应用程序结构软件开发时的篡改攻击风险验证,以看到嵌入式产可

加人了双重完整性检验方案的 B olae功能模块 ot dr o流程如图 4所示。

品被抄袭风险的严峻性。在实际应用中,入式系统设计嵌应当结合软件结构的特点和硬件提供的保护特性,活使灵

l证用序区 R与验码列验应程片 cc检密序 l输出验证失败信息 I或启动自毁程序 l■ T

用不同的保护方式,有效地提高程序的安全性,达到最大程度地对厂商代码和知识产权的保护。l匿参考文献[]白伟平,启亮 .于 A 1包基 RM的 B olae浅析[]微计算机 ot dr o J.信息,0 6 2 4 ) 9—1 0 2 0,2 (—2: 9 0 . []杨小辉,光健 .于 A 2张基 RM的嵌入式 b o la e的典型架构 ot dr o

自检模式

=三:

升级模式

l自检模块

、、跳转至应用程序入口

』解密升级代码+ 下载应用程序更新

分析[]科技创新导报, 0 8 2 ) 1 . J. 2 0 ( 6:9 []赵国冬 .全嵌入式系统体系结构研究与设计[]哈尔滨: 3安 D.

图 4双重完整性检验 B o l d r块流程 otae模 o

哈尔滨工程大学,0 6 20.

方案的设计可以使芯片上电复位后, Fah起始地自 l s址运行的 Bo t a e及时发现篡改攻击造成的改变,防 ol d r o并止非法代码得到执行机会。在安全设计方案验证实验中, 设计 B ola e运行模式下验证密码序列的完整性, o t d r在 o并

[]Kop .E eddS se S cr y[] o ue,0 4 4 o m P mb de ytm eui J .C mp tr2 0, t3

7: 5~ 97 9 .

E]Mc rw, r et At cigMaio s oe A R pr t 5 G a Mo i t G. t kn l i d: eotO s a cu C t eIf seR sa c o n i J . E E S f r, 0 0 1: 3 h no e e er hC u c[] I E ot e 2 0,7 3 l wa—

41.

将应用程序区域的 C C检验值与保存在约定位置中初始 R检验值比较,而验证 F ah内容未被篡改。在验证失败从 ls

[]张宏财,曾贻 .于 AR核的 B olae代码分析与设计 6赵基 M o t dr o[]微计算机信息, 0 6 2 ( 2: 3 1 9 J. 2 0, 2 5— ) 1 7~ 3. E]王燕飞,瓯,建飚 .入式系统的安全技术研究[]计算 7金贺嵌 J.机技术与发展,2 0, 8 8: 5 0 8 1 ( ) 1 3~1 4 5.

时,出验证失败信息和当前的 C C检验值后进入死循输 R环,不再启动应用程序。而 对方案的验证实验采用在应用程序片区的末尾写人

[ 1S 8 TM3 F 0 x t set M] mei:TMi ol t n 2 1 3 BDaa h e[ .A r aS c c ee r— r coi s, 008 c 2 .

伪随机码序列和 3 2位 C C检验算法,次对 Fah的 4 R依 l s~

1 8片区单独进行擦除后写入非法代码进行验证,得 2均

[]S 9 TM3 F 0 x ls rga mi n a[ .Amei: 2 1x xFahpo rm n ma ul M] g ra cST M ir 1 c r nis, 00 c oee to c 2 8.

到图 5所示的验证失败信息。

[o 1 3林志洁,吉义 .控收款机 Fah文件系统的设计与实现吴税 l s口].江科技学院, 0 7 1 () 1—2 .浙 2 0,9 1:8 0 E1 l]杜春雷 .AR体系结构与编程[ .京:华大学出版 M M]北清社, 0 3 20 .

[2 1]孙吴,玉强,秀芳 .AR处理器启动代码的分析与编曹杜 M

程[]工业控制计算机, 0 5 8 1 ) 5 5 . J. 2 0,1 ( 1:4— 5国 5篡改发生时的验证失败信息

[3 1]王天宇.C 1实现单片机 C C快速算法[]微计算机信 5 R J.息

,0 3 9 7:7 2 0,1 ( ) 5 .

实际测试中,不同片区的篡改操作得到不同的对

[4 1]廖彬彬,知劲,福洪 .E C l a C n赵张 P go l 1Ge2标准中 C C b R算法的实现[]计算机工程,0 8 3 ( 4:2—1 0 J. 20, 42) 18 3.j ¨¨

C C检验值与合法应用程序 C C检验值互不相同。双 R R重完整性检验方案在 S TM3 F 0 RB芯片上运行带来的 2 13

时间开销约为 8,能够被产品启动过程所接受。在 0ms也厂商进行产品开发时,以进一步设计 B o la e证失可 o to d r验

|i¨

为嵌八式乐统设计黄强许文薯篓墓萼蔓薯 i季善 萋蓐■¨|

萎j囊萎 l 誊 蠹¨ 0薹¨≥墨 薯叠曩麓曩薯善— 嚣 “∞薯¨

败时进入自毁程序,过修改读保护状态使芯片被整片擦通除,而销毁所有代码,高代码的安全性。从提 p e ms to. (稿专 ) ar e ecl n p@ n. rc投用 1

冀篝誊毳 叠释一

羞收鬻稿日期, o_ ) 2 9§1 b o

Mcc t1 s me eS t s 7 i。n。 r&E b d sm r。r1 e d d ye 5

本文来源:https://www.bwwdw.com/article/t5ti.html

Top