应用程序文件打包方法、安装方法及启动方法技术

技术编号:21297999 阅读:22 留言:0更新日期:2019-06-12 07:28
本发明专利技术涉及软件控制技术,解决了现有终端设备软件安全性较差的问题。技术方案概括为:应用程序文件打包方法、安装方法及启动方法,在对应用程序文件进行打包时将文件分割为与安全相关需要加密的文件和不需要进行加密的文件,然后和相关配置信息一起打包生成打包文件;终端设备基于上述打包文件的组成结构安装应用程序,启动应用程序时将加密的文件加载到内存执行,未加密的文件直接从flash启动。有益效果是:本发明专利技术在不增加硬件成本的同时也能够实现软件的加密存储和启动,软件安全性大大提高。本发明专利技术特别适用于NB‑IoT终端设备。

【技术实现步骤摘要】
应用程序文件打包方法、安装方法及启动方法
本专利技术涉及软件控制技术,特别涉及应用程序文件的打包技术、应用程序安装技术和应用程序启动技术。
技术介绍
目前存在一些终端设备,由于其内存DDR的存储大小、FLASH存储的大小和主芯片性能等的限制(通常FLASH存储大小远远超过内存DDR),因此无法实现对整个软件进行加密存储和启动,例如NB-IoT终端设备。对于上述问题,目前通常采用的是软件明文存储并直接从FLASH启动的方式,导致终端设备的软件容易被篡改、窃取等,软件安全性较差。
技术实现思路
本专利技术为解决现有终端设备软件安全性较差的问题,提供一种应用程序文件打包方法、安装方法及启动方法。为解决上述问题,本专利技术采用的技术方案是:应用程序文件打包方法,包括:使用程序切割工具将应用程序文件切割为子文件一和子文件二,所述子文件一不需要加密保护,子文件二需要加密保护;打包工具根据预设的子文件一的校验参数生成子文件一的校验值;打包工具根据预设的子文件二的校验参数生成子文件二的校验值,根据预设的子文件二的加密参数使用随机密钥对子文件二进行加密;打包工具组装应用程序文件的配置信息,并使用预设的根密钥对配置信息进行加密;打包工具将子文件一、子文件二和配置信息打包生成打包文件,然后计算出打包文件的签名信息;打包工具将打包文件的大小和签名信息合成头信息,并使用根密钥对头信息加密后将头信息插入到打包文件中。作为进一步优化,所述子文件一的校验参数包括子文件一的分组标志、各组校验方式和校验占比,打包工具根据子文件一的校验占比,随机产生子文件一需要校验的多个数据块,并根据子文件一的分组标志对子文件一需要校验的数据块分组,并按各组校验方式生成各个数据块的校验值;所述子文件二的校验参数包括子文件二的分组标志、各组校验方式和校验占比,打包工具根据子文件二的校验占比,随机产生子文件二需要校验的多个数据块,并根据子文件二的分组标志对子文件二需要校验的数据块分组,并按各组校验方式生成各个数据块的校验值;所述子文件二的加密参数包括子文件二的各组加密方式和加密占比,打包工具根据子文件二的加密占比,随机产生子文件二需要加密的多个数据块,并根据子文件二的分组标志对需要加密的数据块分组,并按各组加密方式,用打包工具配置的随机密钥对各个数据块进行加密。作为进一步优化,所述配置信息包括数据描述区数据、安全配置数据和组件信息数据,所述数据描述区数据包括子文件一的校验参数和各个数据块的校验值以及子文件二的校验参数、各个数据块的校验值、加密参数和各个数据块的加密密钥,所述安全配置数据包括应用程序文件的安全策略版本、加密方式和校验方式,所述组件信息数据包括子文件一、子文件二、安全配置数据和数据描述区数据各自在终端设备flash中的存储地址和大小。作为进一步优化,所述安全配置数据还包括下载打包文件的终端设备的ID。应用程序安装方法,基于上述的应用程序文件打包方法,待安装应用程序的终端设备中预设有启动模块,所述启动模块用于安装和/或启动应用程序,启动模块中预设有应用程序文件打包时所用的根密钥;终端设备每次安装应用程序时,包括:启动模块读取打包文件,并用根密钥解密头信息,获取打包文件的大小和签名信息,然后校验签名信息,若校验失败则表示本次安装失败并退出本次安装,若校验成功则用根密钥解密配置信息,然后判断配置信息是否与终端设备的相关参数相匹配,若不匹配则表示本次安装失败并退出本次安装,若匹配则根据配置信息解析子文件一和子文件二,若子文件一和子文件二中任一个解析失败,则表示本次安装失败并退出本次安装,若子文件一和子文件二都解析成功,则根据配置信息将子文件一、子文件二和配置信息更新到终端设备相应的flash区域中,本次安装成功。作为进一步优化,所述子文件一的解析方法包括:获取数据描述区数据中子文件一的校验参数和各个数据块的校验值,并根据安全配置数据判断终端设备是否支持子文件一的校验方式,若支持则根据子文件一的校验参数分别对子文件一需要校验的各个数据块计算校验值,若子文件一需要校验的每个数据块经计算得到的校验值都分别与该数据块在打包时得到的校验值相同,则子文件一解析成功,否则解析失败;所述子文件二的解析方法包括:获取数据描述区数据中子文件二的校验参数、各个数据块的校验值、加密参数和各个数据块的加密密钥,并根据安全配置数据判断终端设备是否支持子文件二的校验方式和加密方式,若校验方式和加密方式都支持,则根据数据描述区数据中子文件二的加密参数和各个数据块的加密密钥对子文件二中加密的各个数据块解密,然后根据子文件二的校验参数分别对子文件二需要校验的各个数据块计算校验值,若子文件二需要校验的每个数据块经计算得到的校验值都分别与该数据块在打包时得到的校验值相同,则子文件二解析成功,否则解析失败。作为进一步优化,所述子文件二解析成功后,用安全配置数据中的终端设备的ID作为密钥对子文件二加密。应用程序启动方法,基于上述的应用程序安装方法,包括:启动模块用根密钥解密终端设备flash中的配置信息,然后根据配置信息解析终端设备flash中的子文件一和子文件二,若子文件一和子文件二中任一个解析失败,则重启应用程序,若子文件一和子文件二都解析成功,则将子文件二加载到预设的终端设备的内存地址,然后根据子文件一在终端设备中的flash地址,直接从flash执行子文件一,并根据子文件二在终端设备中的内存地址,从内存执行子文件二。作为进一步优化,解析终端设备flash中的子文件二时,先用终端设备的ID解密子文件二,解密后再根据配置信息解析子文件二。作为进一步优化,上述启动方法还包括检测应用程序是否需要升级,若需要升级则从服务器下载应用程序升级数据的打包文件,下载完成后进行安装,安装失败或安装成功后重启应用程序。有益效果是:本专利技术在对应用程序文件进行打包时将文件分割为与安全相关需要加密的文件和不需要进行加密的文件,然后和相关配置信息一起打包生成打包文件;终端设备基于上述打包文件的组成结构安装应用程序,启动应用程序时将加密的文件加载到内存执行,未加密的文件直接从flash启动;由于需要进行加密存储和启动的文件只是整个软件的一部分,因此运行时所占用的各种资源较少,使得对于内存、FLASH和主芯片性能等有限制的终端设备来说,在不增加硬件成本的同时也能够实现软件的加密存储和启动,软件安全性大大提高。本专利技术特别适用于NB-IoT终端设备。具体实施方式下面结合实施例,进一步说明本专利技术的技术方案。本专利技术的技术方案是:应用程序文件打包方法,包括:使用程序切割工具将应用程序文件切割为子文件一和子文件二,所述子文件一不需要加密保护,子文件二需要加密保护;打包工具根据预设的子文件一的校验参数生成子文件一的校验值;打包工具根据预设的子文件二的校验参数生成子文件二的校验值,根据预设的子文件二的加密参数使用随机密钥对子文件二进行加密;打包工具组装应用程序文件的配置信息,并使用预设的根密钥对配置信息进行加密;打包工具将子文件一、子文件二和配置信息打包生成打包文件,然后计算出打包文件的签名信息;打包工具将打包文件的大小和签名信息合成头信息,并使用根密钥对头信息加密后将头信息插入到打包文件中。上述方法通过程序切割工具将应用程序编译文件切割成本文档来自技高网...

【技术保护点】
1.应用程序文件打包方法,其特征在于,包括:使用程序切割工具将应用程序文件切割为子文件一和子文件二,所述子文件一不需要加密保护,子文件二需要加密保护;打包工具根据预设的子文件一的校验参数生成子文件一的校验值;打包工具根据预设的子文件二的校验参数生成子文件二的校验值,根据预设的子文件二的加密参数使用随机密钥对子文件二进行加密;打包工具组装应用程序文件的配置信息,并使用预设的根密钥对配置信息进行加密;打包工具将子文件一、子文件二和配置信息打包生成打包文件,然后计算出打包文件的签名信息;打包工具将打包文件的大小和签名信息合成头信息,并使用根密钥对头信息加密后将头信息插入到打包文件中。

【技术特征摘要】
1.应用程序文件打包方法,其特征在于,包括:使用程序切割工具将应用程序文件切割为子文件一和子文件二,所述子文件一不需要加密保护,子文件二需要加密保护;打包工具根据预设的子文件一的校验参数生成子文件一的校验值;打包工具根据预设的子文件二的校验参数生成子文件二的校验值,根据预设的子文件二的加密参数使用随机密钥对子文件二进行加密;打包工具组装应用程序文件的配置信息,并使用预设的根密钥对配置信息进行加密;打包工具将子文件一、子文件二和配置信息打包生成打包文件,然后计算出打包文件的签名信息;打包工具将打包文件的大小和签名信息合成头信息,并使用根密钥对头信息加密后将头信息插入到打包文件中。2.如权利要求1所述的应用程序文件打包方法,其特征在于,所述子文件一的校验参数包括子文件一的分组标志、各组校验方式和校验占比,打包工具根据子文件一的校验占比,随机产生子文件一需要校验的多个数据块,并根据子文件一的分组标志对子文件一需要校验的数据块分组,并按各组校验方式生成各个数据块的校验值;所述子文件二的校验参数包括子文件二的分组标志、各组校验方式和校验占比,打包工具根据子文件二的校验占比,随机产生子文件二需要校验的多个数据块,并根据子文件二的分组标志对子文件二需要校验的数据块分组,并按各组校验方式生成各个数据块的校验值;所述子文件二的加密参数包括子文件二的各组加密方式和加密占比,打包工具根据子文件二的加密占比,随机产生子文件二需要加密的多个数据块,并根据子文件二的分组标志对需要加密的数据块分组,并按各组加密方式,用打包工具配置的随机密钥对各个数据块进行加密。3.如权利要求2所述的应用程序文件打包方法,其特征在于,所述配置信息包括数据描述区数据、安全配置数据和组件信息数据,所述数据描述区数据包括子文件一的校验参数和各个数据块的校验值以及子文件二的校验参数、各个数据块的校验值、加密参数和各个数据块的加密密钥,所述安全配置数据包括应用程序文件的安全策略版本、加密方式和校验方式,所述组件信息数据包括子文件一、子文件二、安全配置数据和数据描述区数据各自在终端设备flash中的存储地址和大小。4.如权利要求3所述的应用程序文件打包方法,其特征在于,所述安全配置数据还包括下载打包文件的终端设备的ID。5.应用程序安装方法,基于权利要求1-4任一项所述的应用程序文件打包方法,其特征在于,待安装应用程序的终端设备中预设有启动模块,所述启动模块用于安装和/或启动应用程序,启动模块中预设有应用程序文件打包时所用的根密钥;终端设备每次安装应用程序时,包括:启动模块读取打包文件,并用根密钥解密头信息,获取打包文件的大小和签名信息,然后校验签名信息,若校验失败则表...

【专利技术属性】
技术研发人员:郭凯缑步清王瑛冷连喜张雷鸣张建
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

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

1