一种带有片上闪存微控制器的固件保护单元及保护方法技术

技术编号:14828694 阅读:78 留言:0更新日期:2017-03-16 15:08
本发明专利技术公开了一种微控制器的固件保护单元,包括公开发布的固件包和Bootloader;公开的固件包由加密指导区块和加密后的固件组成;所述加密指导区块包括固件的加密局部区域的信息,其包括偏移量和长度,用于解密时定位出密文区域;还包括一个16字节的随机数,用于产生实际的工作密钥;其固件保护具体如下:首先通过对固件局部进行加密,每次加密使用不同的密钥加密,而后启动加载程序Bootloader,实行一机一识别码启动、升级解密固件、将固件存储在安全存储区域完成。本发明专利技术的带有片上闪存微控制器的固件保护单元及保护方法,允许公开固件的二进制文件,与合法用户保持互动,且软件资源消耗小、盗版克隆难度高,可有效保护原创方的利益。

【技术实现步骤摘要】

本专利技术涉及通讯设备技术,尤其涉及一种带有片上闪存微控制器的固件保护单元及保护方法
技术介绍
当一款通讯设备成功研发上市、热销,此时往往存在一个隐患:不法商家直接抄袭硬件设计,并盗用已发布的固件,迅速推出盗版克隆仿造产品,从而导致研发此设备的公司的利益受到损害;尤其对于核心技术是软件的产品,其硬件的仿造难度不高,盗版方只要获取了固件的二进制文件,就可快速大范围的仿造,因此,必须对固件进行管控,一般管控通过下述两方向进行:第一,无法从公开渠道获得固件的二进制文件,第二,无法从设备直接读取还原固件的二进制文件;但是,在移动互联网普及盛行的时代,软件开发的迭代周期大大缩短、用户互动参与反馈的习惯已经养成,因而,用户经常会通过刷新固件,来获取、体验增值服务,但上述的管控措施,无法对合法用户开放固件获取渠道,导致用户体验的下降。
技术实现思路
为解决上述问题,本专利技术提出了一种带有片上闪存微控制器的固件保护单元及保护方法,允许公开固件的二进制文件,与合法用户保持互动,且软件资源消耗小、盗版克隆难度高,可有效保护原创方的利益。本专利技术的微控制器的固件保护单元,包括公开发布的固件包和Bootloader;公开的固件包由加密指导区块和加密后的固件组成;所述加密指导区块包括固件的加密局部区域的信息,其包括偏移量和长度,用于解密时定位出密文区域;还包括一个16字节的随机数,用于产生实际的工作密钥;所述工作密钥加密算法采用AES128,工作密钥的计算方法为:用主密钥对16字节的随机数进行AES128-ECB模式加密运算,密文结果为实际使用的工作密钥。进一步地,所述加密局部区域为敏感的关键代码区域。一种微控制器的固件保护方法,所述方法具体如下:首先通过对固件局部进行加密,每次加密使用不同的密钥加密,而后启动加载程序Bootloader,实行一机一识别码启动、升级解密固件、将固件存储在安全存储区域完成。进一步地,所述对固件局部进行加密具体如下:将固件加密主密钥存储在安全存储区域内,对于带有片上闪存的MCU,禁止掉调试口的访问片上闪存的通道,使片上闪存成为安全存储区域,然后将主密钥存储在片上闪存内;固件加密时,采用局部区域加密,可指定任意区域;固件加密时,采用工作密钥加密,每次加密使用不同的密钥加密,另外,即使固件不变,每次发布时,固件加密结果仍会不一致;而公开发布的固件包,不包括Bootloader,但需要包括一个加密指导区块,用于告知加密的局部区域,以及辅助产生实际的工作密钥。进一步地,所述启动加载程序Bootloader具体如下:Bootloader存储于安全存储区域内,即片上闪存内,此时引入MCU的芯片唯一识别码UID检测机制,实现一机一识别码启动;工厂烧录Bootloader时,Bootloader将会读取实际MCU的UID,写入Bootloader内部指定的存储地址,此时存储后的UID成为Bootloader自身的一部分;开机启动时,Bootloader从指定的存储地址,读取出UID,与实际MCU的UID进行比较,一致则继续启动,不一致则锁死Bootloader;而当升级时,Bootloader根据加密指导区块,即可产生实际的工作密钥,正确解密局部区域,从而将固件完整还原,存储在安全存储区域内。本专利技术与现有技术相比较,本专利技术的带有片上闪存微控制器的固件保护单元及保护方法,可指定任意区域的局部加密,有效降低加解密的软件资源开销;一次一密的加密,可有效保护主密钥,每次加密的密钥均不一样,提高破解的难度;固件和Bootloader本身存储在安全存储区,具备一定的破解难度,而Bootloader的一机一码启动,又提高破解的难度,假如片上闪存被暴力破解,从而被读取出完整的二进制文件,但此时该二进制文件内的Bootloader,会因为UID检测不通过,仍无法直接运行在仿造的设备上;相应的,盗版方无法轻易获取密钥,无法解密固件,因此,固件允许被公开发布,可与用户保持良好的互动。附图说明图1是本专利技术的整体结构示意图。具体实施方式如图1所示,本专利技术的微控制器的固件保护单元,包括公开发布的固件包和Bootloader;公开的固件包由加密指导区块和加密后的固件组成;所述加密指导区块包括固件的加密局部区域的信息,其包括偏移量和长度,用于解密时定位出密文区域;还包括一个16字节的随机数,用于产生实际的工作密钥。进一步地,所述固件其加密算法采用AES128,工作密钥的计算方法为:用主密钥对16字节的随机数进行AES128-ECB模式加密运算,密文结果为实际使用的工作密钥。进一步地,所述加密局部区域为敏感的关键代码区域;使得如果没有解密,程序就无法正确启动、运行,对于RTOS系统而言,可选择操作系统的时间基准处理函数入手,例如,对于新一代的ARMCortex-M系列平台产品而言,优选地,只需将前面64字节加密掉,这部分包括ARMCortex-M最核心、关键的部分,其中就有RTOS的时间基准处理函数SysTick_Handler的入口地址。一种微控制器的固件保护方法,所述方法具体如下:首先通过对固件局部进行加密,每次加密使用不同的密钥加密,而后启动加载程序Bootloader,实行一机一识别码启动、升级解密固件、将固件存储在安全存储区域完成。实施例1:首先,将固件加密主密钥存储在安全存储区域内,对于带有片上闪存的MCU,禁止掉调试口的访问片上闪存的通道,使片上闪存成为安全存储区域,然后将主密钥存储在片上闪存内;固件加密时,采用局部区域加密,可指定任意区域;固件加密时,采用工作密钥加密,每次加密使用不同的密钥加密,另外,即使固件不变,每次发布时,固件加密结果仍会不一致;而公开发布的固件包,不包括Bootloader,但需要包括一个加密指导区块,用于告知加密的局部区域,以及辅助产生实际的工作密钥。其次,Bootloader存储于安全存储区域内,即片上闪存内,此时引入MCU的芯片唯一识别码UID检测机制,实现一机一识别码启动;工厂烧录Bootloader时,Bootloader将会读取实际MCU的UID,写入Bootloader内部指定的存储地址,此时存储后的UID成为Bootloader自身的一部分;开机启动时,Bootloader从指定的存储地址,读取出UID,与实际MCU的UID进行比较,一致则继续启动,不一致则锁死Bootloader;而当升级时,Bootloader根据加密指导区块,即可产生实际的工作密钥,正确解密局部区域,从而将固件完整还原,存储在安全存储区域内。当设备的一个软件开发周期完成时,用工作密钥,对加密局部区域执行AES128的加密,实现一次一密、局部加密,而后打包固件、公开发布到外部环境;公开发布的固件包的安全环境完成搭建。将上述主密钥和UID存储在Bootloader内部,在工厂生产阶段,主密钥随Bootloader一块被烧录到MCU的片上闪存,UID则在MCU第一次上电时,自动读取而后写入;同时工厂烧录Bootloader时,将MCU的硬件安全等级提高,禁止掉任何外部接口的访问片上闪存的通道,例如调试口,使得无法从外部轻易读取到片上闪存的数据;后续开机启动时,Bootloader都会执行一机一码的检测,如果MCU的UI本文档来自技高网...
一种带有片上闪存微控制器的固件保护单元及保护方法

【技术保护点】
一种微控制器的固件保护单元,其特征在于:包括公开发布的固件包和Bootloader;公开的固件包由加密指导区块和加密后的固件组成;所述加密指导区块包括固件的加密局部区域的信息,其包括偏移量和长度,用于解密时定位出密文区域;还包括一个16字节的随机数,用于产生实际的工作密钥。

【技术特征摘要】
1.一种微控制器的固件保护单元,其特征在于:包括公开发布的固件包和Bootloader;公开的固件包由加密指导区块和加密后的固件组成;所述加密指导区块包括固件的加密局部区域的信息,其包括偏移量和长度,用于解密时定位出密文区域;还包括一个16字节的随机数,用于产生实际的工作密钥。2.根据权利要求1所述的微控制器的固件保护单元,其特征在于:所述固件其加密算法采用AES128,工作密钥的计算方法为:用主密钥对16字节的随机数进行AES128-ECB模式加密运算,密文结果为实际使用的工作密钥。3.根据权利要求1所述的微控制器的固件保护单元,其特征在于:所述加密局部区域为敏感的关键代码区域。4.一种微控制器的固件保护方法,其特征在于:所述方法具体如下:首先通过对固件局部进行加密,每次加密使用不同的密钥加密,而后启动加载程序Bootloader,实行一机一识别码启动、升级解密固件、将固件存储在安全存储区域完成。5.根据权利要求4所述的微控制器的固件保护方法,其特征在于:所述对固件局部进行加密具体如下:将固件加密主密钥存储在安全存储区域内,对于带有片上闪存的MCU,禁止掉调试口的访问片上闪存的通道,使片上闪存成为安...

【专利技术属性】
技术研发人员:杜清海
申请(专利权)人:福建省北峰电讯科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1