The invention discloses a method and device for upgrading the firmware and relates to the field of information security. The method includes: the main control chip firmware upgrade PC to receive instructions, and returns the data to the host computer to send data packets in response to success; the receiving host computer, if not the end of a packet from the data packet to obtain the firmware data stored in the backup storage area, the response returns the data to the host computer, if the end of the package from the end of acquiring the signature packets, according to preset signature key and the firmware data on the signature data to check if the test is successful sign, sign from the backup storage area should be used to read the firmware writing data to the storage area, completing the firmware upgrade; if the sign of failure the error is.
【技术实现步骤摘要】
一种固件升级方法及装置
本专利技术涉及信息安全领域,尤其涉及一种固件升级方法及装置。
技术介绍
固件就是写入EPROM、EEPROM或Flash芯片中的程序,通俗的理解就是“固化的软件”,是固化在集成电路内部的程序代码,负责控制和协调集成电路的功能。随着技术的不断发展,和蓝牙技术的广泛应用,为适应不断更新的硬件环境,对产品的USB固件和蓝牙固件进行升级也越来越频繁。现有技术中,对产品中USB固件进行升级采用的安全手段,通常是对USB固件进行加密之后使用USB接口进行传输来完成升级,对产品中蓝牙固件进行升级的做法是采用OTA(Over-the-Air,空中下载)升级方法,主要通过无线网络(例如WIFI、3G)自动下载OTA升级包、自动升级。一方面基于无线网络或基于USB接口密文传输进行固件升级安全性低,另一方面基于无线网络进行OTA固件升级,当固件较大时势必影响传输效率,并且如果传输时间长的话,完成升级还会受限于蓝牙设备的剩余电量。
技术实现思路
为解决现有技术中存在的问题,本专利技术提出了一种更加安全的、并通过USB接口来实现的对USB固件或蓝牙固件进行安全升级的方法 ...
【技术保护点】
一种固件升级方法,其特征在于,包括:步骤S1、主控芯片接收上位机下发的固件升级指令,并向上位机返回成功响应数据;步骤S2、所述主控芯片接收上位机下发的数据包;步骤S3、所述主控芯片判断所述数据包是否是结束包,是则执行步骤S4,否则所述主控芯片从所述数据包中获取固件数据包序号、固件数据长度值和与所述固件数据长度值对应的固件数据,将获取的所述固件数据存储到备份存储区,根据所述固件数据包序号和所述固件数据长度值确定所述主控芯片当前接收到固件数据总长度并记录,向上位机返回成功响应数据,返回步骤S2;步骤S4、所述主控芯片从所述结束包中获取签名数据,根据预置签名密钥和当前备份存储区中 ...
【技术特征摘要】
1.一种固件升级方法,其特征在于,包括:步骤S1、主控芯片接收上位机下发的固件升级指令,并向上位机返回成功响应数据;步骤S2、所述主控芯片接收上位机下发的数据包;步骤S3、所述主控芯片判断所述数据包是否是结束包,是则执行步骤S4,否则所述主控芯片从所述数据包中获取固件数据包序号、固件数据长度值和与所述固件数据长度值对应的固件数据,将获取的所述固件数据存储到备份存储区,根据所述固件数据包序号和所述固件数据长度值确定所述主控芯片当前接收到固件数据总长度并记录,向上位机返回成功响应数据,返回步骤S2;步骤S4、所述主控芯片从所述结束包中获取签名数据,根据预置签名密钥和当前备份存储区中存储的与所述固件数据总长度对应的固件数据对所述签名数据进行验签,若验签成功则所述主控芯片从所述备份存储区中读取与所述固件数据总长度对应的固件数据写入到应用存储区,完成固件升级,结束;若验签失败则主控芯片报错,结束。2.根据权利要求1所述的方法,其特征在于,所述步骤S2与步骤S3之间还包括:所述主控芯片判断接收到的数据包是否是起始包,是则所述主控芯片从所述起始包中获取固件数据长度值和固件数据,从所述固件数据中获取产品描述信息存储到第二存储区,将所述固件数据中除所述产品描述信息之外的剩余数据存储到备份存储区,根据所述所述固件数据长度值确定当前接收到的固件数据总长度并记录,向上位机返回成功响应数据,返回执行步骤S2;否则执行所述步骤S3。3.根据权利要求2所述的方法,其特征在于,所述主控芯片判断接收到的数据包是否是起始包具体为:所述主控芯片获取接收到的数据包中包含的固件数据包序号,根据所述固件数据包序号判断所述数据包是否为固件数据的起始包。4.根据权利要求2所述的方法,其特征在于,步骤S4中所述验签成功时还包括:步骤S5、所述主控芯片判断第二存储区中的产品描述信息是否正确,是则执行步骤S4中所述主控芯片从所述备份存储区中读取与所述固件数据总长度对应的固件数据写入到应用存储区,完成固件升级,结束;否则所述主控芯片报错,结束。5.根据权利要求4所述的方法,其特征在于,所述主控芯片判断所述产品描述信息正确时还包括:步骤S6、所述主控芯片根据所述产品描述信息判断备份存储区中存储的所述固件数据是否是蓝牙固件数据,是则执行步骤S7,否则执行步骤S4中所述主控芯片从所述备份存储区中读取与所述固件数据总长度对应的固件数据写入到应用存储区,完成固件升级,结束;步骤S7、所述主控芯片通过SWD接口向蓝牙芯片中写入所述蓝牙固件数据,完成固件升级,结束。6.根据权利要求1所述的方法,其特征在于,所述主控芯片判断所述数据包是否是结束包具体为:所述主控芯片判断接收到的数据包的第八字节是否是0xFF,是则所述数据包是固件数据的结束包,否则所述数据包不是固件数据的结束包。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:步骤101:主控芯片上电初始化,运行引导加载程序;步骤102:所述主控芯片判断是否跳转运行应用程序,是则执行步骤104,否则执行步骤103;步骤103:所述主控芯片从备份存储区中读取固件数据写入到应用存储区,然后返回步骤101;步骤104:所述主控芯片接收上位机下发的指令;步骤105:所述主控芯片判断接收到的指令是否是固件升级指令,是则执行步骤S1所述向上位机返回成功响应数据,否则执行步骤106;步骤106:所述主控芯片根据接收到的指令执行相应操作,然后返回步骤101。8.根据权利要求7所述的方法,其特征在于,所述主控芯片判断是否跳转运行应用程序具体为:所述主控芯片从第一存储区读取标志位,判断所述标志位是否等于第一预设值,是则执行步骤103,否则跳转运行应用程序,执行所述步骤104;所述步骤S4中所述验签成功时还包括修改所述标志位为第一预设值;所述步骤103中所述返回步骤101之前还包括修改所述标志位为第二预设值。9.根据权利要求7所述的方法,其特征在于,所述主控芯片判断接收到的指令是否是固件升级指令具体为:所述主控芯片判断接收到的所述指令的第五字节是否等于0xBA,是则所述指令是固件升级指令,否则所述固件指令不是固件升级指令。10.根据权利要求1所述的方法,其特征在于,所述主控芯片从所述备份存储区中读取与所述固件数据总长度对应的固件数据写入到应用存储区具体为,所述主控芯片先擦除所述应用存储区,然后从所述备份存储区中读取与所述固件数据总长度对应的固件数据写入到应用存储区。11.根据权利要求10所述的方法,其特征在于,所述主控芯片从所述备份存储区读取与所述固件数据总长度对应的固件数据写入到应用存储区之后还包括,所述主控芯片擦除所述备份存储区。12.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述主控芯片接收到上位机下发的初始化指令时,所述主控芯片执行初始化操作,并向上位机返回包含通道标识的初始化指令响应数据;当所述主控芯片接收到上位机下发的获取版本号指令时,所述主控芯片获取当前固件版本号并向上位机返回包含所述当前固件版本号的获取版本号指令响应。13.根据权利要求1所述的方法,其特征在于,所述主控芯片从所述数据包中获取与所述固件数据长度值对应的固件数据具体为:所述主控芯片采用预存的加解密密钥对所述数据包进行解密得到所述与所述固件数据长度值对应的固件数据;所述主控芯片从所述结束包中获取签名数据具体为:所述主控芯片采用所述预存的加解密密钥对所述结束包进行解密得到所述签名数据。14.一种固件升级装置,包含有主控芯片、备份存储区和应用存储区,其特征在于:所述主控芯片包括第一收发模块、第二收发模块、第一判断模块、第一获取模块、第二获取模块、验签模块和写入...
【专利技术属性】
技术研发人员:陆舟,于华章,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。