基于数字签名的固件升级、固件封装方法与装置制造方法及图纸

技术编号:2914235 阅读:272 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种基于数字签名的固件升级方法及装置。其中,该升级方法包括:按预定封装结构封装生成基于数字签名的升级文件;待进行固件升级的产品获取升级文件,从升级文件中提取数字签名文件并解密处理,获得XML文件;解析XML文件,筛选出需要作升级处理的升级模块文件;分别对每个需要作升级处理的升级模块文件进行合法性和完整性验证处理,生成对所有通过验证处理的升级模块文件进行升级操作的升级脚本;执行升级脚本对固件进行升级处理。本发明专利技术公开一种基于数字签名的固件封装方法及装置。本发明专利技术通过数字签名文件验证升级文件中各个升级模块文件的完整性与合法性,生成升级脚本完成固件升级操作,从而提高固件升级的安全性与便利性。

【技术实现步骤摘要】

本专利技术涉及嵌入式软件升级技术,尤其是涉及一种基于数字签名的固件升级方法与装置,以及一种基于数字签名的固件封装方法与装置。
技术介绍
固件(Firmware)由一组编译好的二进制代码组成,包括启动加载程序(BootLoader)、内核文件、文件系统等模块,且固件通常是保存在主板上的快闪存储器(Flash)中。BootLoader是硬件系统加电所运行的第1段软件代码,它的主要任务包括:初始化最基本的硬件;将BootLoader本身拷贝到内存RAM中运行;将内核文件复制到RAM中并运行内核文件。为了确保系统的安全,通常情况下在产品出厂后系统的BootLoader不会进行更新,而内核文件和文件系统等模块则根据需要通过升级程序对Flash中相应地址的模块擦除重写即可完成升级。出于完善产品的软件功能或修复bug的目的,厂商会在产品出厂以后不断地对其产品的固件进行软件升级,将准备发布的固件按模块生成对应名称的二进制文件,然后将其发布到网络上通知用户去下载。由用户根据需要自行从网络上下载相应版本的固件进行升级。由于网络传输的扩散性和多样性,大多数用户无法保证所下载的固件的合法性(确认是原版、未被修改的)和完整性,当用户不慎下载破损的或者非法版本的甚至被不法者恶意篡改的固件对产品进行升级后,往往会导致产品无法启动而使用户蒙受较大损失,如果固件中生产厂商的版权、版本等信息也被修改了,生产厂商的利益也会受到损伤。为了防止文件内容被恶意者进行篡改,厂商在发布固件的时候,通过单向散列函数(如MD5、SHA1、CRC32)对固件内容进行运算,生成该文件对应的哈希摘要,然后在发布固件的同时提供该文件的哈希摘要。用户下载到该固件后,通过哈希计算器计算其哈希摘要,然后与网站上提供的哈希摘要进行对比,如果一致证明文件是发布者原版提供的,如果不一致表示文件不完整或者被其他人恶意篡改了。然而,当固件升级模块文件较多时,容易发生文件拷贝错误、丢失的情况,而且按文件名来区分固件的类型,风险性比较大。当用户下载固件以后,需要通过第三方工具进行哈希摘要对比来检验文件是否完整和合法,这需要用户具有一定计算机知识(至少知道MD5、SHA1、CRC32的作用)。而在不少情况下,用户会从非官方渠道下载该产品的固件,如果一些恶意者对固件内容进行了修改(例如版权、图标)或破坏,同时很容易地产生一个新的哈希摘要,然后将固件发布出去;对于这样的固件,通过哈希工具对比只能判定文件的完整性,而不能判断文件是厂商原版发布的;如果用户将这样的固件对产品进行升级后,就很可能会导致系统无法启动而造成损失。因此,如何提高固件升级的安全性与便利性,成为当前急需解决的技术难题之一。
技术实现思路
本专利技术在于提出一种基于数字签名的固件升级方法与装置,以及一种种基于数字签名的固件封装方法与装置,通过数字签名文件验证升级文件中各个升级模块文件的完整性与合法性,生成升级脚本完成固件升级操作,从而提高固件升级的安全性与便利性。为解决本专利技术的技术问题,本专利技术公开一种基于数字签名的固件升级方法,其包括步骤:生成描述各个升级模块文件的哈希摘要、存储位置和软硬件版本信息的XML文件,采用数字签名私钥对XML文件加密处理,生成数字签名文件,将数字签名文件和各个升级模块文件按预定义的可扩展封装结构进行封装,得到用于固件升级的升级文件;待进行固件升级的产品获取升级文件,从升级文件中提取数字签名文件并解密处理,得-->到XML文件;解析XML文件,筛选出需要作升级处理的升级模块文件;分别对每个需要作升级处理的升级模块文件进行验证处理,生成对所有通过验证处理的升级模块文件进行升级操作的升级脚本;执行升级脚本对固件进行升级处理。优选的,所述验证处理包括步骤:从所述升级文件中提取一个需要作升级处理的升级模块文件;使用与生成所述XML文件所使用的哈希算法,计算所述升级模块文件的哈希摘要;将计算获得的哈希摘要与所述XML文件对应描述的哈希摘要做比较,若两者一致则表示通过验证处理。优选的,所述解密处理是使用数字签名公钥,该数字签名公钥与生成所述数字签名文件的数字签名私钥为密钥对。优选的,所述封装结构可封装任意数量且不限数据格式的所述升级模块文件。另外,本专利技术还公开一种基于数字签名的固件升级装置,其,包括:固件封装模块,用于生成描述各个升级模块文件的哈希摘要、存储位置和软硬件版本信息的XML文件,采用数字签名私钥对所述XML文件加密处理,生成数字签名文件,将所述数字签名文件和各个所述升级模块文件按预定义的可扩展封装结构进行封装,得到用于固件升级的升级文件;信息获取模块,用于从升级文件中提取数字签名文件;解密模块,用于对所述数字签名文件解密处理,得到所述XML文件;XML文件解析模块,用于解析XML文件,筛选出需要作升级处理的升级模块文件;验证处理模块,用于分别对每个需要作升级处理的升级模块文件进行验证处理;升级脚本生成模块,用于生成对所有通过验证处理的升级模块文件进行升级操作的升级脚本;升级执行模块,用于执行升级脚本对固件进行升级处理。优选的,所述验证处理模块包括:文件提取单元,用于从所述升级文件中提取一个需要作升级处理的升级模块文件;哈希摘要计算单元,用于使用与生成所述XML文件所使用的哈希算法,计算所述升级模块文件的哈希摘要;哈希摘要比较单元,用于将计算获得的哈希摘要与所述XML文件对应描述的哈希摘要做比较,若两者一致则表示通过验证处理。再者,本专利技术还公开一种基于数字签名的固件封装方法,其包括:生成描述各个升级模块文件的哈希摘要、存储位置和软硬件版本信息的XML文件;采用数字签名私钥对XML文件加密处理,生成数字签名文件;将数字签名文件和各个升级模块文件按预定义的可扩展封装结构进行封装,得到用于固件升级的升级文件。对应的,本专利技术还公开一种基于数字签名的固件封装装置,其包括:XML文件生成单元,用于生成描述各个升级模块文件的哈希摘要、存储位置和软硬件版本信息的XML文件;数字签名文件生成单元,用于采用数字签名私钥对XML文件加密处理,生成数字签名文件;封装单元,用于将数字签名文件和各个升级模块文件按预定义的可扩展封装结构进行封装,得到用于固件升级的升级文件。与现有技术相比,本专利技术具有如下有益效果:1、本专利技术将多个升级模块文件封装到一个升级文件中进行集中管理,生成描述各个升级模块文件的哈希摘要、存储位置、软硬件版本等重要信息的XML文件,并通过数字签名-->私钥对XML文件进行加密,按预定的封装结构封装成升级文件。一方面,本专利技术采用的封装结构具有可扩展性,可封装任意数量和任何数据格式的升级模块文件,从而确保了升级文件的完整性;另一方面,本专利技术在封装升级文件过程中采用加密处理,避免升级文件被篡改,从而确保了升级文件的合法性。2、本专利技术进行固件升级过程中,由于升级模块文件的哈希摘要、存储位置、版本等重要信息保存在数字签名文件中,而取得数字签名文件必须对加密的升级文件进行正确的解密处理,因此,本专利技术对升级文件进行数字签名处理,确保了升级流程的可靠性。3、本专利技术提出了在封装的升级文件中集成数字签名,通过数字签名验证升级模块的完整性和合法性,并通过后自动生成的一个升级脚本完成将升级模块文件写入到Flash的操作,故对升本文档来自技高网
...

【技术保护点】
一种基于数字签名的固件升级方法,其特征在于,包括步骤: 生成描述各个升级模块文件的哈希摘要、存储位置和软硬件版本信息的XML文件,采用数字签名私钥对XML文件加密处理,生成数字签名文件,将数字签名文件和各个升级模块文件按预定义的可扩展 封装结构进行封装,得到用于固件升级的升级文件; 待进行固件升级的产品获取升级文件,从升级文件中提取数字签名文件并解密处理,得到XML文件; 解析XML文件,筛选出需要作升级处理的升级模块文件; 分别对每个需要作升级处理的升 级模块文件进行验证处理,生成对所有通过验证处理的升级模块文件进行升级操作的升级脚本; 执行升级脚本对固件进行升级处理。

【技术特征摘要】
1、一种基于数字签名的固件升级方法,其特征在于,包括步骤:生成描述各个升级模块文件的哈希摘要、存储位置和软硬件版本信息的XML文件,采用数字签名私钥对XML文件加密处理,生成数字签名文件,将数字签名文件和各个升级模块文件按预定义的可扩展封装结构进行封装,得到用于固件升级的升级文件;待进行固件升级的产品获取升级文件,从升级文件中提取数字签名文件并解密处理,得到XML文件;解析XML文件,筛选出需要作升级处理的升级模块文件;分别对每个需要作升级处理的升级模块文件进行验证处理,生成对所有通过验证处理的升级模块文件进行升级操作的升级脚本;执行升级脚本对固件进行升级处理。2、根据权利要求1所述基于数字签名的固件升级方法,其特征在于,所述验证处理包括步骤:从所述升级文件中提取一个需要作升级处理的升级模块文件;使用与生成所述XML文件所使用的哈希算法,计算所述升级模块文件的哈希摘要;将计算获得的哈希摘要与所述XML文件对应描述的哈希摘要做比较,若两者一致则表示通过验证处理。3、根据权利要求1所述基于数字签名的固件升级方法,其特征在于,所述解密处理是使用数字签名公钥,该数字签名公钥与生成所述数字签名文件的数字签名私钥为密钥对。4、根据权利要求1所述基于数字签名的固件升级方法,其特征在于,所述封装结构可封装任意数量且不限数据格式的所述升级模块文件。5、一种基于数字签名的固件升级装置,其特征在于,包括:固件封装模块,用于生成描述各个升级模块文件的哈希摘要、存储位置和软硬件版本信息的XML文件,采用数字签名私钥对所述XML文件加密处理,生成数字签名文件,将所述数字签名文件和各个所述升级模块文件按预定义的可扩展封装结构进行...

【专利技术属性】
技术研发人员:景麟
申请(专利权)人:深圳创维数字技术股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1
相关领域技术
  • 暂无相关专利