现在的位置: 首页资讯>正文
基于GD32F450的程序软保护——RAM区运行
2017年06月12日 作者: 暂无评论 78+ 0

GD32

1.核心主题

本文提出了一种基于GD32F450为代表的ARM Cortex-M系列处理器上的软保护的安全性探究,核心是将用户程序预先以加密的方式存储在片内FLASH中,运行时再解密至RAM。因为RAM的掉电易丢失,实现程序的保护。

.背景瞎扯

软件的保护通常分为软保护和硬保护两种,软保护从程序着手,通过加密变化等方式,确保使用者的合法性,实现源代码的反拷贝、反静态分析、防动态追踪。硬保护则需要额外的硬件加密手段,软件通过访问特定的外围硬件,完成预先的数据交换,确认用户合法后,才会执行。硬保护拥有独立的硬件,所以相较于软保护更加安全,但是也会导致成本过高、占用部分硬件空间等问题。

硬保护引入安全器件的同时,加大了硬件成本。而软保护一般会引入芯片唯一身份识别码作为密钥,这就导致不得不对每个芯片进行单独编译烧写程序,软件加密加大了算法的复杂性、增加了程序的存储占用空间,还增加了批量生产时的难度。总的说来,软保护和硬保护各有利弊。 

IAP

IAP(In-Application Programming),在应用程序中编程,指的是芯片通过已有的程序,利用串口、以太网、SD卡等外设接口,接收新的程序文件,覆盖旧有的程序,实现升级更新,也就是可以用程序来改变程序。

IAP

3.方案设计
[1].利用IAP代码将加密好的程序bin文件,通过UART写入FLASH中
[2].复位后,IAP程序先将FLASH中的加密bin文件,解密至指定区域的RAM位置
[3].解密完成后,校验加密程序初始入口地址范围是否正确(密钥不对,数据不对)
[4].如果校验正确,IAP程序执行CPU寄存器指针跳转代码,跳转至加密程序初始入口,执行被加密代码。
[5].如果校验错误,清除加密区域FLASH代码
[6].GD32提供的芯片FLASH保护使能

详情可参考:[GD32F450方案分享] 基于GD32F450的程序软保护——RAM区运行 

原文链接:http://www.eeboard.com/news/gd32f450-2/

搜索"爱板网"加关注,每日最新的开发板、智能硬件、开源硬件、活动等信息可以让你一手全掌握。推荐关注!

【微信扫描下图可直接关注】

toaal

  

给我留言

您必须 [ 登录 ] 才能发表留言!