CN108762791A - 固件升级方法及装置 - Google Patents

固件升级方法及装置 Download PDF

Info

Publication number
CN108762791A
CN108762791A CN201810580598.4A CN201810580598A CN108762791A CN 108762791 A CN108762791 A CN 108762791A CN 201810580598 A CN201810580598 A CN 201810580598A CN 108762791 A CN108762791 A CN 108762791A
Authority
CN
China
Prior art keywords
firmware
identifier
program
random number
encryption file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810580598.4A
Other languages
English (en)
Other versions
CN108762791B (zh
Inventor
刘均
冯向军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN201810580598.4A priority Critical patent/CN108762791B/zh
Publication of CN108762791A publication Critical patent/CN108762791A/zh
Application granted granted Critical
Publication of CN108762791B publication Critical patent/CN108762791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Abstract

本申请揭示了一种固件升级方法及装置,其包括:固件接收由服务器通过客户端转发的加密文件,所述加密文件是所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的;接收到所述加密文件后,所述固件从自身获取所述第一标识和所述随机数;通过所述第一标识和所述随机数进行所接收加密文件的解密,得到固件程序,所述固件程序用于所述固件的升级。在固件升级过程中,通过第一标识和随机数加密固件程序,防止通过固件程序破解固件,提高了固件升级的安全性和可靠性。

Description

固件升级方法及装置
技术领域
本申请涉及通信领域,特别涉及一种固件升级方法及装置。
背景技术
一般的,固件的硬件配置相同,那么固件程序也是相同的,比如汽车诊断设备,如果汽车诊断设备的硬件配置相同,那么汽车诊断设备的固件程序也是相同的。在固件需要升级时,从服务器上下载固件程序到客户端,然后客户端将该固件程序发送到固件并写入固件的相应固件程序存储区中完成固件升级。这样容易造成在固件程序从服务器下载到客户端后,相关人员根据该固件程序破解固件进而仿造固件,之后将所下载的固件程序写入到被仿造的固件中,即非法的固件烧录到固件程序;或者重新根据固件的配置编写一个支持该固件的固件程序,替换原固件中合法的固件程序,即非法的固件程序烧录到固件。
因而,现有的固件升级方式存在如下不足:固件升级安全性不高,容易导致固件被破解,从而导致非法的固件程序烧录到固件,和非法的固件烧录固件程序。
发明内容
为了解决相关技术中存在的固件升级安全性不高的问题,本申请提供了一种固件升级方法及装置。
其中,本申请所采用的技术方案为:
一种固件升级方法,包括:
固件接收由服务器通过客户端转发的加密文件,所述加密文件是所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的;
接收到所述加密文件后,所述固件从自身获取所述第一标识和所述随机数;
通过所述第一标识和所述随机数进行所接收加密文件的解密,得到固件程序,所述固件程序用于所述固件的升级。
在本申请中,所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序之前,所述方法还包括:
所述客户端根据所连接所述固件对应的第二标识向所述服务器发起固件程序请求,所述固件程序请求携带所述第二标识。
在本申请中,所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序,包括:
所述服务器根据所述固件程序请求中携带的第二标识获取所述第二标识所指向固件的所述第一标识,且从所存储的随机数组中随机获取所述随机数;
根据所获取的所述第一标识以及所述随机数生成密钥;
通过所述密钥加密所述固件程序,获得加密文件,所述加密文件携带所述随机数在所述随机数组中的位置信息。
在本申请中,所述接收到所述加密文件后,所述固件获取所述第一标识和所述随机数,包括:
接收到所述加密文件后,所述固件获取自身存储的所述第一标识,以及根据所述加密文件中携带的所述位置信息,从所述固件自身存储的所述随机数组中获取所述随机数。
在本申请中,所述通过所述第一标识和所述随机数进行所接收加密文件的解密,得到固件程序,所述固件程序用于所述固件的升级,包括:
所述固件根据所述第一标识和所述随机数生成所述密钥;
通过所述密钥解密所接收的加密文件,得到固件程序。
在本申请中,所述固件接收由服务器通过客户端转发的加密文件,包括:
所述客户端接收所述服务器下发的加密文件;
所述客户端通过校验算法校验所接收到的所述加密文件是否完整;
如果所述加密文件完整,向所述固件转发所述加密文件;
所述固件接收所转发的所述加密文件。
在本申请中,所述通过所述第一标识和随机数进行所接收加密文件的解密,得到固件程序之后,所述方法还包括:
通过校验算法校验所述固件程序的完整性;
如果所述固件程序完整,将所述固件程序写入所述固件的固件程序存储区,完成所述固件的升级。
一种固件升级装置,包括:
接收模块,被配置为执行:固件接收由服务器通过客户端转发的加密文件,所述加密文件是所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的;
获取模块,被配置为执行:接收到所述加密文件后,所述固件从自身获取所述第一标识和所述随机数;
解密模块,被配置为执行:通过所述第一标识和所述随机数进行所接收加密文件的解密,得到固件程序,所述固件程序用于所述固件的升级。
在本申请中,所述装置还包括:
校验模块,被配置为执行:在解密得到所述固件程序之后,通过校验算法校验所述固件程序的完整性;
升级模块,被配置为执行:如果所述固件程序完整,将所述固件程序写入所述固件的固件程序存储区,完成所述固件的升级。
一种固件升级装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如上所述的固件升级方法。
本申请提供的技术方案可以包括以下有益效果:在固件升级的过程中,把固件程序加密之后下发到客户端,并转发到固件,固件解密所接受到的固件程序后,再将该固件程序完成固件的加密,由于固件程序在下发到客户端、转发到固件的过程都是被加密的,不容易通过该固件程序破解固件,安全性高。而且通过随机数和固件对应的第一标识加密固件程序,每次加密所使用的随机数是随机获得的,提高了固件升级的可靠性和安全性,可有效防止通过固件程序破解固件,进而可以避免非法的固件程序烧录到固件和避免非法的固件烧录到固件程序。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图1是本申请所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的一种固件的硬件结构框图;
图3是本申请固件升级方法一个实施例的流程图;
图4是图3对应实施例中得到加密文件的一个实施例的流程图;
图5是图3对应实施例中得到加密文件的另一个实施例的流程图;
图6是图3对应实施例中步骤S130在一个实施例中的流程图;
图7是图3对应实施例中步骤S120在一个实施例中的流程图;
图8是本申请固件升级方法一个实施例在步骤S140之后的流程图;
图9是本申请固件升级装置一个实施例的结构框图;
图10是本申请固件升级装置另一个实施例的结构框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1为根据本申请所涉及的实施环境的示意图,其中包括终端100、服务器200以及固件300。
其中,终端100可以是台式电脑、笔记本电脑、平板电脑、智能手机或者其他可供固件请求固件程序的客户端运行以及具备网络连接功能的通信设备,在此不进行限定。进行固件程序请求的客户端可以是应用程序客户端,还可以是网页客户端,在此不加以限定。
终端100与服务器200之间建立通信连接,终端100可以通过有线或者无线等方式访问服务器200。通过该通信连接,在本申请中,终端100上运行的客户端可以向服务器发起固件程序请求并进而接收由服务器200下发的加密文件。
终端100与固件300之间的通信方式不限于有线通信(例如串口、USB、网线等)或者无线通信(例如蓝牙、WIFI等)。通过终端100和固件300之间的通信,固件300可以接收由终端100转发的加密文件,以及固件300将升级过程中的状态反馈给终端100。固件300可以是手机、汽车诊断设备、MP3、MP4等依赖于固件程序运行的设备,例如汽车诊断设备升级,就是更新汽车诊断设备中的工作程序或源代码,即用新的工作程序或源代码代替汽车诊断设备中的工作程序或源代码,该工作程序或源代码即为固件程序,该固件程序担任着汽车诊断设备中最基础最底层工作。
图2是根据一示例性实施例示出的一种固件300的框图。
需要说明的是,该固件300只是一个适配于本申请的示例,不能认为是提供了本申请的使用范围的任何限制。该固件300也不能认为需要依赖于或者必须具有图2中示出的示例性的固件300中的一个或多个组件。
如图2所示,固件300包括存储器301、一个或多个处理器302(图2中仅示出一个)、外设接口303、射频模块301、定位模块305、摄像模块306、音频模块307、显示模块308以及按键模块309。这些组件通过一条或多条通讯总线/信号线310相互通讯。
其中,存储器301可用于存储计算机程序以及模块,如本申请示例性实施例中的固件升级方法及装置对应的计算机可读指令及模块。处理器302通过执行存储在存储器301内的计算机可读指令,从而执行各种功能以及数据处理,即完成固件升级。
存储器301作为资源存储的载体,可以是随机存储器、例如高速随机存储器、非易失性存储器,如一个或多个磁性存储装置、闪存、或者其它固态存储器。存储方式可以是短暂存储或者永久存储。具体的,存储器301可以包括非易失性存储介质、内存储器。该非易失性存储介质存储有固件的操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。
外设接口303可以包括至少一有线或无线网络接口、至少一串并联转换接口、至少一输入输出接口以及至少一USB接口等,用于将外部各种输入/输出装置耦合至存储器301以及处理器302,以实现与外部各种输入/输出装置的通信。在本申请中,终端100可以通过外设接口303与固件300建立通信连接,从而实现于固件300的通信。
射频模块304用于收发电磁波,实现电磁波与电信号的相互转换,从而通过通讯网络与其他设备进行通讯。通信网络包括蜂窝式电话网、无线局域网或者城域网,上述通信网络可以使用各种通信标准、协议及技术。
定位模块305用于获取固件300的当前所在的地理位置。定位模块305的实例包括但不限于全球卫星定位系统(GPS)、基于无线局域网或者移动通信网的定位技术。
摄像模块306隶属于摄像头,用于拍摄图片或者视频。拍摄的图片或者视频可以存储至存储器301内,还可以通过射频模块304发送至上位机。
音频模块307向用户提供音频接口,其可包括一个或多个麦克风接口、一个或多个扬声器接口以及一个或多个耳机接口。通过音频接口与其它设备进行音频数据的交互。音频数据可以存储至存储器301内,还可以通过射频模块304发送。
显示模块308在固件300与用户之间提供一个输入输出界面。具体地,用户可通过显示模块308进行输入操作,例如点击、触摸、滑动等手势操作,以使固件300对该输入操作进行响应。固件300则将文字、图片或者视频任意一种形式或者组合所形成的输出内容通过显示模块308向用户显示输出。
按键模块309包括至少一个按键,用以提供用户向固件300进行输入的接口,用户可以通过按下不同的按键使固件300执行不同的功能。
可以理解,图2所示的结构仅为示意,固件300还可包括比图2中所示更多或更少的组件,或者具有与图2所示不同的组件。图2中所示的各组件可以采用硬件、软件或者其组合来实现。
下面对本申请的一种固件升级方法进行具体描述,请参阅图3,本申请的固件升级方法可以包括:
步骤S110,固件接收由服务器通过客户端转发的加密文件,加密文件是服务器响应客户端发起的固件程序请求,而通过固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的。
固件程序请求是指向服务器且以获得固件程序为目的所发起的请求,其中固件程序请求中包括了需要固件程序的固件的标识信息。固件程序是担任着固件最底层最基础工作的软件,固件程序决定了固件的功能及性能。
客户端是建立服务器和固件之间的通信媒介,可以是应用程序客户端,也可以是网页客户端。对于客户端而言,服务器是指存储有固件程序的服务器,并且可以通过客户端访问。在本申请中,服务器上不仅存储有用于固件升级的固件程序,而且还存储有固件对应的第一标识、随机数。
第一标识是唯一指向固件的标识,固件的第一标识不限于序列号、蓝牙地址、MAC地址(Medium Access Control物理地址)和芯片ID等。以汽车诊断设备为例,由于汽车诊断设备具有唯一的序列号、蓝牙地址、MAC地址、芯片ID,那么该诊断设备的序列号、蓝牙地址、MAC地址、芯片ID即可作为汽车诊断设备固件所对应的第一标识。
服务器接收到客户端所发起的固件程序请求后,服务器上配置的加密程序被启动,受控于加密程序,服务器从自身的存储单元中获取固件所对应的第一标识并从自身所存储的随机数组中获取随机数。服务器通过所获取的第一标识和随机数加密固件程序,得到加密文件。
值得一提的是,用于加密的第一标识具体是采用何种标识,序列号或者蓝牙地址或者MAC地址或者芯片ID,或者是它们的组合,由加密程序的配置决定,即加密程序中会预先配置是采用何种标识来加密。可以理解的是,由于加密过程是在服务器上完成,根据加密程序所配置的加密方式,服务器上会存储固件对应的第一标识,以及随机数组。
在本申请中采用对称加密算法来加密/解密固件程序,所采用的对称加密算法可以是DES算法、3DES算法、AES算法、RC2算法以及RC4算法等,在此不对所使用的对称加密算法进行限定。
服务器在完成固件程序加密得到加密文件后,服务器将加密文件下发给客户端,然后客户端向固件转发。客户端可以通过直接登录到服务器来与服务器建立通信连接,客户端可以通过有线的方式(不限于串口、USB、网线)或者无线的方式(不限于蓝牙、WiFi)将加密文件转发给固件,从而固件接收服务器由客户端所转发的加密文件。
在一个示例性实施例中,可以根据不同的传输协议采用不同的格式进行加密文件的转发。以汽车诊断设备为例,诊断设备是通过自身的外部通讯模块与客户端连接的,而外部通讯模块是通过串口与微处理单元(MCU)(即为诊断设备的固件程序存储位置)连接的,受限于固件与外部通信模块的通信连接方式,客户端在向固件转发加密文件时,客户端会将加密文件分解为命令包的格式转发给固件,从而可以防止加密文件过大不能一次性转发加密文件。
步骤S120,接收到加密文件后,固件从自身获取所述第一标识和随机数。
如上所述,在本申请中,采用对称加密算法加密固件程序,在加密固件程序的时候通过固件对应的第一标识以及随机数来加密,那么在解密加密文件的时候,也必须使用该第一标识和随机数解密。
固件上不仅存储了固件程序,而且存储了第一标识和随机数组,所存储的第一标识和随机数组保持与服务器所存储的第一标识、随机数组一致。
固件中预先配置了解密程序,并且与服务器上的加密程序相对应,约定了采用与加密固件程序相同的第一标识用于加密文件的解密,例如,如果加密程序是利用芯片ID加密固件程序,那么解密程序相应的设定为用芯片ID来解密加密文件。
固件程序加密所使用的随机数是从服务器上的随机数组中随机选取的,为了使加密文件成功解密,服务器在加密固件程序的过程中会将随机数在随机数组中的位置信息保存在加密文件中,随加密文件一起下发到固件。
用于固件程序解密的第一标识和随机数不是直接随加密文件传递到固件,而是通过所配置解密程序从固件的存储单元中提取第一标识和随机数,提高了安全性。
步骤S130,通过第一标识和随机数进行所接收加密文件的解密,得到固件程序,固件程序用于固件的升级。
在获取第一标识和随机数后,通过解密算法对加密文件进行解密得到固件程序。由于加密和解密采用对称算法,加密和解密所采用的算法保持一致。相应的,解密算法可以是DES算法、3DES算法、AES算法、RC2算法以及RC4算法等。
解密后的固件程序可以用于固件的升级。
作为本申请固件升级方法的一示例性实施例,如图4所示,服务器得到加密文件可以包括以下步骤:
步骤S010,客户端根据所连接固件对应的第二标识向服务器发起固件程序请求,固件程序请求携带第二标识。
在客户端发起的固件程序请求中携带第二标识,从而使服务器可以通过该第二标识可以获知需要升级的固件。
其中,第二标识与第一标识类似,第二标识也唯一指向固件。第二标识也不限于序列号、蓝牙地址、MAC地址、芯片ID等。第一标识和第二标识可以相同也可以不同。可以理解的是,在客户端发起固件程序请求之前,客户端与固件或者固件所在的设备建立了通信连接,其中建立通信连接的方式可以是通过有线或者通过应用程序建立通信连接,客户端可以通过所建立的通信连接获取固件的第二标识。
以汽车诊断设备为例,在需要对汽车诊断设备固件升级时,需要先汽车诊断设备建立通信连接,通过该通信连接,客户端可以获取汽车诊断设备的序列号等标识,并将序列号作为第二标识,向服务器发起固件程序请求。服务器在接收到该固件程序请求后,存储固件程序的服务器上所配置的加密程序被触发启动。根据配置的加密程序中设定的加密方式,采用诊断设备对应的第一标识和随机数作为加密的密钥对固件程序进行加密,所使用的第一标识可以是芯片ID等标识。加密算法是对称加密算法,在此不对所采用的对称加密算法进行限定。其中用于加密的随机数,加密程序在服务器上所存储的随机数组中随机获得的随机数。
步骤S020,服务器响应客户端发起的固件程序请求,而通过固件对应的第一标识以及所随机获得的随机数加密固件程序。
服务器在通过固件的第二标识明确了需要进行升级的固件,从而获取该杜建对应的第一标识以及所随机获得的随机数加密固件程序。
作为本申请固件升级方法的另一示例性实施例,如图5所示,图4对应步骤S020还可以包括:
步骤S021,服务器根据固件程序请求中携带的第二标识获取第二标识所指向固件的第一标识,且从所存储的随机数组随机获取随机数。
服务器通过识别第二标识确定需要进行升级的固件,在加密程序的控制下,从服务器的存储单元中获取固件的第一标识用于加密固件程序。并从服务器上存储的随机数组中随机获得随机数,由于随机数是随机获取的,每次加密固件程序的随机数也是不同的,提高了固件升级的安全性和可靠性。
步骤S022,根据所获取的第一标识以及随机数生成密钥。
服务器上的加密程序在获取第一标识和随机数之后,根据所获取的第一标识和随机数按照加密程序上的配置将第一标识和随机数进行组合或者加密生成密钥。密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数,且密钥分为对称密钥与非对称密钥。与本申请的加密算法相对应,本申请采用对称密钥加密固件程序。
步骤S023,通过密钥加密固件程序,获得加密文件,加密文件携带所述随机数在随机数组中的位置信息。
在生成密钥后利用该密钥通过加密算法加密固件程序得到加密文件,为了使固件端解密加密文件,固件需要知道该密钥才能解密加密文件。加密文件携带随机数在随机数组中的位置信息,并通过加密文件将该位置信息发送到固件。
在另一示例性实施例中,步骤S120可以包括:接收到加密文件后,固件获取自身存储的所述第一标识,以及根据加密文件中携带的所述位置信息,从固件自身存储的随机数组中获取随机数。
在另一示例性实施例中,如图6所示,步骤S130可以包括:
步骤S131,固件根据第一标识和随机数生成所述密钥。
步骤S132,通过密钥解密所接收的加密文件,得到固件程序。
固件中配置的解密程序根据步骤S131中获得的第一标识和随机数,采用与加密程序设定的相对应的方式,将第一标识和随机数组合/加密生成密钥。该密钥与加密过程所使用的密钥相同。固件上的解密程序生成密钥所使用的第一标识和随机数是在固件自身的存储单元中获取的。
生成密钥后,采用与加密过程相同的算法利用密钥解密所接收的加密文件,得到固件程序。
在另一示例性实施例中,如图7所示,步骤S110可以包括:
步骤S111,客户端接收服务器下发的加密文件。
在服务器得到加密文件之后,将该加密文件下发到客户端,客户端接收服务器所下发的加密文件。
步骤S112,客户端通过校验算法校验所接收到的加密文件是否完整。
客户端接收到加密文件后,客户端可以利用预设在客户端的校验工具对加密文件的二进制数据进行MD5或者CRC校验,可以理解的是,所采用的校验的方式不限于MD5、CRC校验的方式。
步骤S113,如果加密文件完整,向固件转发加密文件。
如果校验加密文件完整,向固件转发加密文件。如果校验加密文件不完整,停止固件转发加密文件。在一示例性实施例中,如果校验加密文件不完整,在客户端显示固件升级程序无效,固件升级过程停止。
步骤S114,固件接收所转发的加密文件。
通过对加密文件机型完整性校验,从而使得固件所接收到的加密文件是完整的。
在另一示例性实施例中,如图8所示,本实施例中步骤S130之后还包括:
步骤S140,通过校验算法校验固件程序的完整性。
加密文件解密完成后,固件向客户端返回加密文件解密成功的信息,并在客户端显示是否开始升级的提示信息。在客户端触发进行的开始升级操作,固件中存储的升级程序被触发,开始执行固件的升级操作。其中,固件程序会先通过校验算法校验解密得到的固件程序是否完整。
所采用的校验算法可以是MD5或者CRC算法,在此不对校验算法作进一步限定。
步骤S150,如果固件程序完整,将固件程序写入固件的固件程序存储区,完成固件的升级。
如果校验固件程序完整,固件中的升级程序将固件程序写入固件的固件程序存储区,以替代原固件程序存储区的固件程序,完成固件升级;如果校验固件程序不完整,停止升级。在一示例性实施例中,如果校验固件程序不完整,不仅停止升级,而且向客户端返回该信息,在客户端显示固件升级程序无效的信息。
下述为本申请装置实施例,可以用于执行本申请上述固件升级方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请固件升级方法实施例。
作为本申请一种固件升级装置的一实施例,如图9所示,本装置执行以上固件升级方法任一实施例的全部或者部分步骤,本实施例的装置包括:
接收模块110,被配置为执行:固件接收由服务器通过客户端转发的加密文件,加密文件是所述服务器响应所述客户端发起的固件程序请求,而通过固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的。
获取模块120,该模块与接收模块110连接,被配置为执行:接收到加密文件后,固件从自身获取第一标识和随机数。
解密模块130,该模块与获取模块120连接,被配置为执行:通过第一标识和随机数进行所接收加密文件的解密,得到固件程序,固件程序用于固件的升级。
作为本申请一种固件升级装置的一实施例,在该实施例中,固件升级装置还包括:请求模块,被配置为执行:在服务器响应所述客户端发起的固件程序请求,而通过固件对应的第一标识以及所随机获得的随机数加密固件程序之前,客户端根据所连接固件对应的第二标识向服务器发起固件程序请求,固件程序请求携带所述第二标识。
作为本申请一种固件升级装置的另一实施例,接收模块110还可以包括:
获取单元,被配置为执行:服务器根据固件程序请求中携带的第二标识获取第二标识所指向固件的第一标识,且从所存储的随机数组随机获取随机数
密钥生成单元,该模块与获取单元连接,被配置为执行:根据所获取的第一标识以及随机数生成密钥
加密单元,该模块与密钥生成单元连接,被配置为执行:通过密钥加密所述固件程序,获得加密文件,加密文件携带随机数在随机数组中的位置信息。
作为本申请一种固件升级装置的另一实施例,获取模块120可以包括:
第二获取单元,被配置为执行:接收到加密文件后,固件获取自身存储的第一标识,以及根据加密文件中携带的位置信息,从固件自身存储的随机数组中获取随机数。
作为本申请一种固件升级装置的另一实施例,在该实施例中,解密模块130可以包括:
第二密钥生成单元,被配置为执行:固件根据第一标识和随机数生成密钥。
解密单元,被配置为执行:通过密钥解密所接收的加密文件,得到固件程序。
作为本申请一种固件升级装置的另一实施例,在该实施例中,接收模块110还可以包括:
第一接收单元,被配置为执行:客户端接收服务器下发的加密文件。
第一校验单元,被配置为执行:客户端通过校验算法校验所接收到的加密文件是否完整。
转发单元,被配置为执行:如果加密文件完整,向固件转发加密文件。
第二接收单元,被配置为执行:固件接收所转发的加密文件。
作为本申请一种固件升级装置的另一实施例,如图10所示,在该实施例中,该固件升级装置还包括:
校验模块140,该模块与解密模块130连接,被配置为执行:通过校验算法校验所述固件程序的完整性。
升级模块150,该模块与校验模块140连接,被配置为执行:如果固件程序完整,将固件程序写入固件的固件程序存储区,完成固件的升级。
上述装置中各个模块的功能和作用的实现过程具体详见上述固件升级方法中对应步骤的实现过程,在此不再赘述。
可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序。
作为本申请固件升级装置的一实施例,本实施例的装置包括:
处理器;用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行图3至图8任一实施例的固件升级方法。
具体的,存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器为固件设备提供计算和控制能力,可以实现以下步骤:
步骤S110,固件接收由服务器通过客户端转发的加密文件,,加密文件是所述服务器响应客户端发起的固件程序请求,而通过固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的。
步骤S120,接收到加密文件后,固件从自身获取所述第一标识和所述随机数。
步骤S130,通过第一标识和随机数进行所接收加密文件的解密,得到固件程序,固件程序用于固件的升级。
可以理解的是,处理器还可以实现上述固件升级方法的实施例中的其它步骤。处理器执行操作的具体方式已经在有关该固件升级方法的实施例中执行了详细描述,此处将不做详细阐述说明。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种固件升级方法,其特征在于,包括:
固件接收由服务器通过客户端转发的加密文件,所述加密文件是所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的;
接收到所述加密文件后,所述固件从自身获取所述第一标识和所述随机数;
通过所述第一标识和所述随机数进行所接收加密文件的解密,得到固件程序,所述固件程序用于所述固件的升级。
2.根据权利要求1所述的方法,其特征在于,所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序之前,所述方法还包括:
所述客户端根据所连接所述固件对应的第二标识向所述服务器发起固件程序请求,所述固件程序请求携带所述第二标识。
3.根据权利要求2所述的方法,其特征在于,所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序,包括:
所述服务器根据所述固件程序请求中携带的第二标识获取所述第二标识所指向固件的所述第一标识,且从所存储的随机数组中随机获取所述随机数;
根据所获取的所述第一标识以及所述随机数生成密钥;
通过所述密钥加密所述固件程序,获得加密文件,所述加密文件携带所述随机数在所述随机数组中的位置信息。
4.根据权利要求3所述的方法,其特征在于,所述接收到所述加密文件后,所述固件获取所述第一标识和所述随机数,包括:
接收到所述加密文件后,所述固件获取自身存储的所述第一标识,以及根据所述加密文件中携带的所述位置信息,从所述固件自身存储的所述随机数组中获取所述随机数。
5.根据权利要求3所述的方法,其特征在于,所述通过所述第一标识和所述随机数进行所接收加密文件的解密,得到固件程序,所述固件程序用于所述固件的升级,包括:
所述固件根据所述第一标识和所述随机数生成所述密钥;
通过所述密钥解密所接收的加密文件,得到固件程序。
6.根据权利要求1所述的方法,其特征在于,所述固件接收由服务器通过客户端转发的加密文件,包括:
所述客户端接收所述服务器下发的加密文件;
所述客户端通过校验算法校验所接收到的所述加密文件是否完整;
如果所述加密文件完整,向所述固件转发所述加密文件;
所述固件接收所转发的所述加密文件。
7.根据权利要求1所述的方法,其特征在于,所述通过所述第一标识和随机数进行所接收加密文件的解密,得到固件程序之后,所述方法还包括:
通过校验算法校验所述固件程序的完整性;
如果所述固件程序完整,将所述固件程序写入所述固件的固件程序存储区,完成所述固件的升级。
8.一种固件升级装置,其特征在于,包括:
接收模块,被配置为执行:固件接收由服务器通过客户端转发的加密文件,所述加密文件是所述服务器响应所述客户端发起的固件程序请求,而通过所述固件对应的第一标识以及所随机获得的随机数加密固件程序所获得的;
获取模块,被配置为执行:接收到所述加密文件后,所述固件从自身获取所述第一标识和所述随机数;
解密模块,被配置为执行:通过所述第一标识和所述随机数进行所接收加密文件的解密,得到固件程序,所述固件程序用于所述固件的升级。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
校验模块,被配置为执行:在解密得到所述固件程序之后,通过校验算法校验所述固件程序的完整性;
升级模块,被配置为执行:如果所述固件程序完整,将所述固件程序写入所述固件的固件程序存储区,完成所述固件的升级。
10.一种固件升级装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任一项所述的固件升级方法。
CN201810580598.4A 2018-06-07 2018-06-07 固件升级方法及装置 Active CN108762791B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810580598.4A CN108762791B (zh) 2018-06-07 2018-06-07 固件升级方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810580598.4A CN108762791B (zh) 2018-06-07 2018-06-07 固件升级方法及装置

Publications (2)

Publication Number Publication Date
CN108762791A true CN108762791A (zh) 2018-11-06
CN108762791B CN108762791B (zh) 2022-09-16

Family

ID=64000492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810580598.4A Active CN108762791B (zh) 2018-06-07 2018-06-07 固件升级方法及装置

Country Status (1)

Country Link
CN (1) CN108762791B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109872136A (zh) * 2019-01-10 2019-06-11 深圳银链科技有限公司 隔离数字钱包的升级方法、系统、冷钱包、热钱包
CN109889333A (zh) * 2019-01-24 2019-06-14 深圳忆联信息系统有限公司 固件数据加密方法、装置、计算机设备和存储介质
CN110008724A (zh) * 2019-03-29 2019-07-12 记忆科技(深圳)有限公司 固态硬盘控制器安全加载方法、装置及存储介质
CN110109683A (zh) * 2019-03-29 2019-08-09 广州市星翼电子科技有限公司 一种通过联网实现远程烧录的方法
CN110221852A (zh) * 2019-05-15 2019-09-10 深兰科技(上海)有限公司 一种固件升级方法及装置
CN110298145A (zh) * 2019-06-28 2019-10-01 兆讯恒达微电子技术(北京)有限公司 一种基于公开密钥密码算法的固件程序装载保护方法
CN111142906A (zh) * 2019-12-25 2020-05-12 浙江大华技术股份有限公司 一种设备固件升级方案迭代的方法、装置与设备
CN111142947A (zh) * 2019-12-21 2020-05-12 广州小鹏汽车科技有限公司 芯片固件预置方法、装置、预置设备及服务器
CN111786820A (zh) * 2020-06-16 2020-10-16 浙江国利网安科技有限公司 固件更新方法、装置及网络设备
CN111814139A (zh) * 2020-07-02 2020-10-23 深圳市法拉第电驱动有限公司 汽车电机控制器程序安全加载系统及方法
CN112114843A (zh) * 2020-07-31 2020-12-22 深圳市有方科技股份有限公司 程序升级系统及方法
CN113568635A (zh) * 2021-07-06 2021-10-29 青岛中科英泰商用系统股份有限公司 一种智能印章机自动升级系统及其方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003019374A1 (fr) * 2001-08-23 2003-03-06 Sony Corporation Dispositif et procede pour le traitement de l'information
CN1839375A (zh) * 2003-07-07 2006-09-27 密码研究公司 用于控制盗版和启用交互式内容的可重编程的安全性
US20100293353A1 (en) * 2009-05-18 2010-11-18 Sonnier David P Task queuing in a network communications processor architecture
US20120020367A1 (en) * 2010-05-18 2012-01-26 Lsi Corporation Speculative task reading in a traffic manager of a network processor
CN103946806A (zh) * 2011-09-29 2014-07-23 英特尔公司 用于提供存储器访问控制的装置、系统和方法
CN104160652A (zh) * 2011-12-27 2014-11-19 英特尔公司 用于使用一次性密码的分布式离线登录的方法和系统
CN104166565A (zh) * 2014-08-11 2014-11-26 成都瑞博慧窗信息技术有限公司 一种智能显示终端固件升级方法
CN105392134A (zh) * 2014-09-02 2016-03-09 恩德莱斯和豪瑟尔测量及调节技术分析仪表两合公司 在至少一个第二单元上认证至少一个第一单元的方法
CN106897640A (zh) * 2015-12-18 2017-06-27 深圳市振华微电子有限公司 管用分离的计算机加密锁
CN107733654A (zh) * 2017-10-10 2018-02-23 北京虎符信息技术有限公司 一种基于组合密钥的智能设备、密钥分发方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003019374A1 (fr) * 2001-08-23 2003-03-06 Sony Corporation Dispositif et procede pour le traitement de l'information
CN1839375A (zh) * 2003-07-07 2006-09-27 密码研究公司 用于控制盗版和启用交互式内容的可重编程的安全性
US20100293353A1 (en) * 2009-05-18 2010-11-18 Sonnier David P Task queuing in a network communications processor architecture
US20120020367A1 (en) * 2010-05-18 2012-01-26 Lsi Corporation Speculative task reading in a traffic manager of a network processor
CN103946806A (zh) * 2011-09-29 2014-07-23 英特尔公司 用于提供存储器访问控制的装置、系统和方法
CN104160652A (zh) * 2011-12-27 2014-11-19 英特尔公司 用于使用一次性密码的分布式离线登录的方法和系统
CN104166565A (zh) * 2014-08-11 2014-11-26 成都瑞博慧窗信息技术有限公司 一种智能显示终端固件升级方法
CN105392134A (zh) * 2014-09-02 2016-03-09 恩德莱斯和豪瑟尔测量及调节技术分析仪表两合公司 在至少一个第二单元上认证至少一个第一单元的方法
CN106897640A (zh) * 2015-12-18 2017-06-27 深圳市振华微电子有限公司 管用分离的计算机加密锁
CN107733654A (zh) * 2017-10-10 2018-02-23 北京虎符信息技术有限公司 一种基于组合密钥的智能设备、密钥分发方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
N. JAIN 等: "Infield firmware update: Challenges and solutions", 《2016 INTERNATIONAL CONFERENCE ON COMMUNICATION AND SIGNAL PROCESSING (ICCSP)》 *
ZL: "升级固件看CMMB加密电视", 《电脑知识技术》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109872136B (zh) * 2019-01-10 2021-08-03 深圳银链科技有限公司 隔离数字钱包的升级方法、系统、冷钱包、热钱包
CN109872136A (zh) * 2019-01-10 2019-06-11 深圳银链科技有限公司 隔离数字钱包的升级方法、系统、冷钱包、热钱包
CN109889333A (zh) * 2019-01-24 2019-06-14 深圳忆联信息系统有限公司 固件数据加密方法、装置、计算机设备和存储介质
CN109889333B (zh) * 2019-01-24 2022-03-29 深圳忆联信息系统有限公司 固件数据加密方法、装置、计算机设备和存储介质
CN110008724A (zh) * 2019-03-29 2019-07-12 记忆科技(深圳)有限公司 固态硬盘控制器安全加载方法、装置及存储介质
CN110109683A (zh) * 2019-03-29 2019-08-09 广州市星翼电子科技有限公司 一种通过联网实现远程烧录的方法
CN110008724B (zh) * 2019-03-29 2023-03-21 记忆科技(深圳)有限公司 固态硬盘控制器安全加载方法、装置及存储介质
CN110221852A (zh) * 2019-05-15 2019-09-10 深兰科技(上海)有限公司 一种固件升级方法及装置
CN110298145A (zh) * 2019-06-28 2019-10-01 兆讯恒达微电子技术(北京)有限公司 一种基于公开密钥密码算法的固件程序装载保护方法
CN111142947A (zh) * 2019-12-21 2020-05-12 广州小鹏汽车科技有限公司 芯片固件预置方法、装置、预置设备及服务器
CN111142947B (zh) * 2019-12-21 2023-09-12 广州小鹏汽车科技有限公司 芯片固件预置方法、装置、预置设备及服务器
CN111142906A (zh) * 2019-12-25 2020-05-12 浙江大华技术股份有限公司 一种设备固件升级方案迭代的方法、装置与设备
CN111142906B (zh) * 2019-12-25 2023-11-10 浙江大华技术股份有限公司 一种设备固件升级方案迭代的方法、装置与设备
CN111786820A (zh) * 2020-06-16 2020-10-16 浙江国利网安科技有限公司 固件更新方法、装置及网络设备
CN111814139A (zh) * 2020-07-02 2020-10-23 深圳市法拉第电驱动有限公司 汽车电机控制器程序安全加载系统及方法
CN112114843A (zh) * 2020-07-31 2020-12-22 深圳市有方科技股份有限公司 程序升级系统及方法
CN113568635A (zh) * 2021-07-06 2021-10-29 青岛中科英泰商用系统股份有限公司 一种智能印章机自动升级系统及其方法

Also Published As

Publication number Publication date
CN108762791B (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
CN108762791A (zh) 固件升级方法及装置
US11849048B2 (en) Mutually authenticated ECDHE key exchange for a device and a network using multiple PKI key pairs
US11777719B2 (en) Public key exchange with authenicated ECDHE and security against quantum computers
US11683163B2 (en) ECDHE key exchange for server authentication and a key server
EP3723399A1 (en) Identity verification method and apparatus
CN105915502B (zh) 利于网络加入的方法和系统
US10652738B2 (en) Authentication module
US10009760B2 (en) Providing network credentials
CN110352605A (zh) 一种鉴权算法程序的添加方法、相关设备及系统
CN107454590A (zh) 一种数据加密方法、解密方法及无线路由器
CN113015159B (zh) 初始安全配置方法、安全模块及终端
CN112672342B (zh) 数据传输方法、装置、设备、系统和存储介质
CN105376059A (zh) 基于电子钥匙进行应用签名的方法和系统
CN105407109A (zh) 一种蓝牙设备间数据安全传输方法
CN113613227B (zh) 蓝牙设备的数据传输方法和装置、存储介质及电子装置
CN115868189A (zh) 建立车辆安全通信的方法、车辆、终端及系统
CN111357305B (zh) 可移动平台的通信方法、设备、系统及存储介质
KR101500118B1 (ko) 데이터 공유 방법 및 이를 이용한 데이터 공유 시스템
KR101329789B1 (ko) 모바일 디바이스의 데이터베이스 암호화 방법
JP6388622B2 (ja) 通信システム、端末装置、通信方法、及びプログラム
CN110830243B (zh) 对称密钥分发方法、装置、车辆及存储介质
CN106055989B (zh) 一种数据传递方法及终端
JP2018170806A (ja) 通信システム、通信方法、及びプログラム
CN112333699B (zh) 一种物联网通信协议加密方法、设备及存储介质
KR102180481B1 (ko) 번들 정보를 제공하는 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant