颚式破碎机厂家
免费服务热线

Free service

hotline

010-00000000
颚式破碎机厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

STM32F103RB的 Bootloader软件安全设计方案 软件编程OS 免费猫

发布时间:2020-02-17 12:41:11 阅读: 来源:颚式破碎机厂家

STM32F103RB的 Bootloader软件安全设计方案 - 软件编程/OS - 电子工程网

通过实验,验证了当部分应用程序内容被修改时,Bootloader可以正常进入运行模式,在放置的跳转指针尝试至应用程序函数入口地址时,程序可以跳转至非法读取程序执行读取命令,得到Bootloader程序和被部分修改的应用程序代码。复制到新的芯片中后运行启动Bootloader升级模式,将升级程序下载升级程序包覆盖应用程序区域,就得到了完整的Bootloader程序和应用程序代码。

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

实际应用中,Bootloader引导应用程序结构的软件在STM32F103RB芯片上使用时,厂商可以通过改进Boot-loader的设计,最大程度地避免这种篡改应用程序方式带来的代码被抄袭的风险。由于芯片读保护有效时,前3片区的自动写保护可以保证中断向量表不被篡改,从而Bootloader在Flash地址启动时首先执行。

在更新应用程序的过程中,除了升级程序包采用加密、方式由Bootloader在升级模式下将内容解密后写入应用程序区域外,Bootloader运行模式下确认Flash中的内容为完整的合法程序和阻止非法程序的运行是安全设计方案的出发点。下面介绍的是采用双重完整性检验的方案提高代码安全性的方法:

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

②CRC检验是较为常见的一种数据传输检错方式,随着技术的发展,已经出现了能够适用于嵌入式系统有限资源的快速算法。将应用程序代码区域的CRC检验值在升级程序时保存在Flash中的约定位置。对应用程序代码的非法修改将使CRC检验值改变。

加入了双重完整性检验方案的Bootloader功能模块流程如图4所示。

建昌黑山羊的养殖方法

旗袍结婚

鸿运当头的养殖方法和注意事项

手绘美女