查看: 4790|回复: 1
打印 上一主题 下一主题

基于GD32F450的程序软保护——RAM区运行

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2017-6-9 22:35:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
分享到:


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

2.背景瞎扯

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

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

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



3.方案设计

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









回复

举报

  • TA的每日心情
    开心
    2016-12-26 21:04
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    沙发
    发表于 2017-6-13 15:52:27 | 只看该作者
    这是要写论文?
    回复 支持 反对

    举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 1/5 下一条

    有奖活动|英飞凌智能座舱直播活动
    3月12日,英飞凌将携手大联大品佳集团,从行业痛点出发,结合最新技术发展,深入解析智能座舱的技术革新与未来趋势,现场还会有嘉宾为您提供一对一答疑服务。无论您是科技爱好者、工程师,还是投资者与行业分析师,这场直播都将为您揭开智能座舱的核心技术密码!

    查看 »



    手机版|小黑屋|与非网

    GMT+8, 2025-4-29 15:14 , Processed in 0.119664 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.5

    Copyright © 2001-2024, Tencent Cloud.