[发明专利]电子设备及其MCU固件保护方法在审
申请号: | 202110557071.1 | 申请日: | 2021-05-21 |
公开(公告)号: | CN113326512A | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 胡章焱;宋政斌 | 申请(专利权)人: | 深圳矽递科技股份有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/60 |
代理公司: | 深圳市瑞方达知识产权事务所(普通合伙) 44314 | 代理人: | 高瑞 |
地址: | 518000 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 电子设备 及其 mcu 保护 方法 | ||
本发明涉及了一种电子设备及其MCU固件保护方法,该MCU固件保护方法包括:在电子设备的产测阶段,接收产测工具发送的固件密文,并将其存储至FLASH中,其中,所述产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。实施本发明的技术方案,既保证了本电子设备的MCU的正常运行,又防止了破解者直接复制MCU固件。
技术领域
本发明涉及数据安全领域,尤其涉及一种电子设备及其MCU固件保护方法。
背景技术
MCU固件的保护,往往会采取多级保护:第一级是读保护,即,防止别人读取;第二级是代码级保护,即,即使别人读取了本MCU的程序,也无法复制到另一颗MCU上正常执行。目前,代码级保护的主流做法是:运行时比较MCU的唯一ID(例如,STM32的96比特的唯一ID),若不是本MCU自身的ID就不执行,这种方法虽然可起到一定的保护作用,但对于价值高的MCU固件,依然很容易通过反汇编的方式破解,例如,对于ARM指令集,可通过找到比较唯一ID的汇编代码位置,然后将4比特的条件码修改为“AL,无条件执行”即可实现破解,因此安全性依然不高。
发明内容
本发明要解决的技术问题在于,针对现有技术存在的MCU固件安全性不高的缺陷,提供一种电子设备的MCU固件保护方法。
本发明解决其技术问题所采用的技术方案是:构造一种电子设备的MCU固件保护方法,包括:
步骤S10.在电子设备的产测阶段,接收产测工具发送的固件密文,并将其存储至FLASH中,其中,所述产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;
步骤S20.在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。
优选地,在所述步骤S20中,在获取所述关键代码或所述关键数据之后,还包括:
将所述关键代码或所述关键数据存储至RAM中。
优选地,所述将所述关键代码或所述关键数据存储至RAM中,包括:
在所述RAM中随机选择一存储地址,并将所述关键代码或所述关键数据存储至所述存储地址。
优选地,所述步骤S20包括:
步骤S21.若需要运行所述关键代码或使用所述关键数据,则判断RAM中是否存储有解密后的所述关键代码或所述关键数据,若是,在执行步骤S22;若否,则执行步骤S23;
步骤S22.直接对所述RAM中所存储的所述关键代码进行运行或所述关键数据进行使用,然后执行步骤S24;
步骤S23.以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并将其存储至RAM中,而且,运行所述关键代码或使用所述关键数据;
步骤S24.对所述关键代码的当前运行次数或所述关键数据的当前使用次数进行更新,并判断当前运行次数或当前使用次数是否达到预设次数值,若是,则执行步骤S25;若否,则结束;
步骤S25.对RAM中所存储的解密后的所述关键代码或所述关键数据进行清除。
优选地,所述步骤S10包括:
步骤S11.接收产测工具发送的ID读取指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳矽递科技股份有限公司,未经深圳矽递科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110557071.1/2.html,转载请声明来源钻瓜专利网。