固件远程更新的方法、计算机设备及存储介质与流程

文档序号:24250263发布日期:2021-03-12 13:28阅读:88来源:国知局
固件远程更新的方法、计算机设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种固件远程更新的方法、计算机设备及存储介质。



背景技术:

固件远程更新指的是设备终端和固件发布的主机之间距离较长,不得不采用局域网或因特网来更新固件。由于固件数据在传输过程中,可能出现被侦听篡改或者整个固件文件被掉包等情况,难以确保固件数据的安全传输。有鉴于此,提供一种安全的固件远程更新方法成为有待解决的问题。



技术实现要素:

本发明的目的在于提供一种固件远程更新的方法、计算机设备及存储介质,旨在提供一种安全的固件远程更新方法。

本发明提供一种固件远程更新的方法,包括:

终端通过预设的主机地址信息对主机进行侦听;

当所述终端侦听到固件的更新消息后,对所述主机的身份进行校验,在校验通过后将所述主机身份合法的校验结果消息送给所述主机;

当所述主机接收到所述终端发送的所述主机身份合法的校验结果消息后,对所述终端的身份进行校验,在校验通过后将所述终端身份合法的校验结果消息送给所述终端;

当所述终端接收到所述主机发送的所述终端身份合法的校验结果消息后,生成预定的对称加密算法的第一密钥分量,利用所述主机的第一非对称加密算法的公钥加密所述第一密钥分量并发送给所述主机;

所述主机接收终端发送的加密的第一密钥分量,生成所述对称加密算法的第二密钥分量,利用所述终端的第二非对称加密算法的公钥加密所述第二密钥分量并发送给所述终端;

所述主机基于所述第一非对称加密算法的私钥进行解密得到所述第一密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的加密密钥,利用所述加密密钥加密固件文件包并发送给所述终端;

所述终端接收所述主机发送的加密的第二密钥分量及加密的固件文件包,基于所述第二非对称加密算法的私钥进行解密得到所述第二密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的解密密钥,利用所述解密密钥对加密的固件文件包进行解密得到固件文件包,基于所述固件文件包进行固件更新,所述解密密钥与所述加密密钥相同。

本发明还提供一种固件远程更新的方法,应用于终端,包括:

所述终端通过预设的主机地址信息对主机进行侦听;

当所述终端侦听到固件的更新消息后,对所述主机的身份进行校验,在校验通过后将所述主机身份合法的校验结果消息送给所述主机;

当所述终端接收到所述主机发送的所述终端身份合法的校验结果消息后,生成预定的对称加密算法的第一密钥分量,利用所述主机的第一非对称加密算法的公钥加密所述第一密钥分量并发送给所述主机;

所述终端接收所述主机发送的加密的第二密钥分量及加密的固件文件包,基于所述终端的第二非对称加密算法的私钥进行解密得到所述第二密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的解密密钥,利用所述解密密钥对加密的固件文件包进行解密得到固件文件包,基于所述固件文件包进行固件更新,其中,所述加密的第二密钥分量采用所述终端的第二非对称加密算法的公钥进行加密得到。

本发明还提供一种固件远程更新的方法,应用于主机,包括:

所述主机发布固件的更新消息;

当所述主机接收到终端发送的所述主机身份合法的校验结果消息后,对所述终端的身份进行校验,在校验通过后将所述终端身份合法的校验结果消息送给所述终端;

所述主机接收所述终端发送的加密的第一密钥分量,生成预定的对称加密算法的第二密钥分量,利用所述终端的第二非对称加密算法的公钥加密所述第二密钥分量并发送给所述终端,其中,所述加密的第一密钥分量采用所述主机的第一非对称加密算法的公钥进行加密得到;

所述主机基于所述第一非对称加密算法的私钥进行解密得到所述第一密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的加密密钥,利用所述加密密钥加密固件文件包并发送给所述终端,供所述终端进行固件更新。

本发明还提供一种计算机设备,所述计算机设备包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的固件远程更新的方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述的固件远程更新的方法的步骤。

本发明的有益效果是:本发明首先由终端校验主机的身份,再由主机校验终端的身份,两者身份均合法的情况下,终端产生第一密钥分量并使用主机的非对称加密算法的公钥加密发送主机,主机产生第二密钥分量并使用终端的非对称加密算法的公钥加密发送终端,以进行对称密钥磋商,通过对随机产生的第一密钥分量及第二密钥分量进行运算,得到对称加密算法的加解密密钥,终端和固件发布主机之间每次进行固件更新时均进行对称密钥磋商,主机使用磋商的加密密钥对固件文件进行加密传输,终端使用磋商的解密密钥对固件文件进行解密。这样,第三者不能通过穷举攻击、字典攻击等分析方法获取固件数据的任何信息,实现安全的固件远程更新。

附图说明

图1为本发明固件远程更新的方法一实施例的流程示意图;

图2为图1中对主机的身份进行校验的步骤的细化流程示意图;

图3为图1中对终端的身份进行校验的步骤的细化流程示意图;

图4为本发明计算机设备一实施例的硬件架构的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明固件远程更新的方法一实施例的流程示意图。该方法包括:

步骤s1,终端通过预设的主机地址信息对主机进行侦听;

其中,主机可以为终端提供固件数据,终端可以自动获取到主机的地址信息。在终端运行起来后,会实时或定时侦听这个主机地址信息对应的主机,一旦主机发布新固件,终端可以获取到主机的固件更新信息。

进一步地,在步骤s1之前,还包括:

获取预先存储的固件远程更新配置文件,从所述配置文件中获取所述主机地址信息。

其中,每台终端在出货之前,工厂内部会初始化一个固件远程更新的配置文件,存储到终端系统里。配置文件内含有主机地址信息,该主机地址信息为固定不变的。终端通过该配置文件可以快速地获取到真实的主机地址信息。

进一步地,在步骤s1之后,还包括:当有终端对所述主机进行侦听时,为所述终端开启对应的处理线程。

其中,主机为多线程处理的模式,当有终端对主机进行侦听时,为终端开启对应的处理线程,该处理线程用于在主机及终端之间进行信息交互,后续两者的通信过程均可以利用该处理线程完成。通过多线程处理的模式,可以实现一个主机对接多个终端,实现对多个终端的固件远程更新。

步骤s2,当所述终端侦听到固件的更新消息后,对所述主机的身份进行校验,在校验通过后将所述主机身份合法的校验结果消息送给所述主机;

其中,如图2所示,终端对主机的身份进行校验的步骤,具体包括:

步骤s21,所述终端生成第一随机数,将所述第一随机数及所述终端的第一标识码发送给所述主机;

步骤s22,所述主机接收所述第一随机数及第一标识码,将所述第一标识码与预存的多个标识码进行比对,当多个标识码中有与所述第一标识码相同的标识码时,所述主机利用所述第一非对称加密算法的私钥对所述第一随机数进行签名,将签名结果发送给所述终端;

步骤s23,所述终端接收所述主机发送的所述签名结果,获取所述第一非对称加密算法的公钥,利用所述公钥对所述签名结果进行验签,若验签通过则所述主机身份合法。

其中,终端自发产生一组第一随机数,将第一随机数及终端的第一标识码发送给主机,请求主机对该第一随机数进行签名。第一标识码为终端的唯一标识码,优选地,可以是硬件序列号,或者硬件序列号及该终端的生产日期的组合,例如,第一标识码为202008050000001,其中,20200805为终端的生产日期,0000001为终端的硬件序列号。

主机对第一标识码进行确定,在终端出厂之前,会记录所有终端的第一标识码并存储,将接收到的终端的第一标识码与所存储的多个标识码进行比对,如果有相同的标识码,则确定该终端为该厂家生产的终端,可以进行固件远程更新;如果没有相同的标识码,则确定该终端不是该厂家生产的终端,不能进行固件远程更新。

主机利用第一非对称加密算法的私钥对所述第一随机数进行签名,其中,预定的第一非对称加密算法可以是rsa加密算法或者sm2加密算法,当然,也可以是其他的非对称加密算法。

终端在出厂之前和主机在工厂安全环境下相互交换了对方的第一非对称加密算法的公钥并存储,这样,终端在接收主机发送的签名结果后,可以获取预存的、所述主机的第一非对称加密算法的公钥,利用公钥对签名结果进行验签,若验签通过则主机身份合法。

本实施例在固件远程更新过程中,终端对固件发布主机的身份进行校验,确保主机身份合法。

步骤s3,当所述主机接收到所述终端发送的所述主机身份合法的校验结果消息后,对所述终端的身份进行校验,在校验通过后将所述终端身份合法的校验结果消息送给所述终端;

其中,如图3所示,主机对终端的身份进行校验的步骤,具体包括:

步骤s31,所述主机生成第二随机数,将所述第二随机数及所述主机的第二标识码发送给所述终端;

步骤s32,所述终端接收所述第二随机数及第二标识码,将所述第二标识码与预存的主机标识码进行比对,当所述第二标识码与预存的标识码相同时,所述终端利用第二非对称加密算法的私钥对所述第二随机数进行签名,将签名结果发送给所述主机;

步骤s33,所述主机接收所述终端发送的所述签名结果,获取所述第二非对称加密算法的公钥,利用所述公钥对所述签名结果进行验签,若验签通过则所述终端身份合法,其中,所述第一非对称加密算法与所述第二非对称加密算法相同或不同。

其中,主机生成一组第二随机数,将第二随机数及主机的第二标识码发送给终端,请求终端对该第二随机数进行签名。第二标识码为主机的唯一标识码,优选地,可以是硬件序列号。

在终端出厂之前,终端中会存储有主机标识码,通过将接收的第二标识码与存储的主机标识码进行比对,如果两者相同,则确定该主机是该厂家提供的用于固件远程更新的主机。

终端利用第二非对称加密算法的私钥对第二随机数进行签名,其中,预定的第二非对称加密算法可以是rsa加密算法或者sm2加密算法,当然,也可以是其他的非对称加密算法。上述的第一非对称加密算法与该第二非对称加密算法可以相同也可以不同。

终端在出厂之前和主机在工厂安全环境下相互交换了对方的第二非对称加密算法的公钥并存储,这样,主机在接收终端发送的签名结果后,可以获取预存的、所述终端的第二非对称加密算法的公钥,利用公钥对签名结果进行验签,若验签通过则终端身份合法。

本实施例在固件远程更新过程中,固件发布主机对终端的身份进行校验,确保固件不会发送给非法的设备终端。

步骤s4,当所述终端接收到所述主机发送的所述终端身份合法的校验结果消息后,生成预定的对称加密算法的第一密钥分量,利用所述主机的第一非对称加密算法的公钥加密所述第一密钥分量并发送给所述主机;

其中,预定的对称加密算法可以是aes加密算法或者sm4加密算法,当然,也可以是其他的对称加密算法。第一密钥分量为随机产生的数据。

其中,终端利用主机的第一非对称加密算法的公钥加密第一密钥分量,由于只有主机有第一非对称加密算法的私钥,因此,只有主机才能够解密该加密的第一密钥分量,第三方无法获取第一密钥分量。

步骤s5,所述主机接收终端发送的加密的第一密钥分量,生成所述对称加密算法的第二密钥分量,利用所述终端的第二非对称加密算法的公钥加密所述第二密钥分量并发送给所述终端;

其中,主机利用终端的第二非对称加密算法的公钥加密第二密钥分量,由于只有终端有第二非对称加密算法的私钥,因此,只有终端才能够解密该加密的第二密钥分量,第三方无法获取第二密钥分量。

步骤s6,所述主机基于所述第一非对称加密算法的私钥进行解密得到所述第一密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的加密密钥,利用所述加密密钥加密固件文件包并发送给所述终端;

其中,预定运算包括异或运算,即将第一密钥分量及第二密钥分量进行异或运算,得到完整的对称加密算法的加密密钥。当然,预定运算可以其他的数学运算方法,此处不做过多限定。第二密钥分量为随机产生的数据。

步骤s7,所述终端接收所述主机发送的加密的第二密钥分量及加密的固件文件包,基于所述第二非对称加密算法的私钥进行解密得到所述第二密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的解密密钥,利用所述解密密钥对加密的固件文件包进行解密得到固件文件包,基于所述固件文件包进行固件更新,所述解密密钥与所述加密密钥相同。

其中,终端上也可以通过将第一密钥分量及第二密钥分量进行异或运算,得到对称加密算法的解密密钥,利用解密密钥对加密的固件文件包进行解密得到固件文件包,实现固件的远程更新。终端在更新固件后,可以将更新结果反馈给主机,以便主机进行记录。

本实施例首先由终端校验主机的身份,再由主机校验终端的身份,两者身份均合法的情况下,终端产生第一密钥分量并使用主机的非对称加密算法的公钥加密发送主机,主机产生第二密钥分量并使用终端的非对称加密算法的公钥加密发送终端,以进行对称密钥磋商,通过对第一密钥分量及第二密钥分量进行运算,得到对称加密算法的加解密密钥,终端和固件发布主机之间每次进行固件更新时均进行对称密钥磋商,主机使用磋商的加密密钥对固件文件进行加密传输,终端使用磋商的解密密钥对固件文件进行解密。这样,第三者不能通过穷举攻击、字典攻击等分析方法获取固件数据的任何信息,实现安全的固件远程更新。

本发明还提供一种应用于终端的固件远程更新的方法,包括以下步骤:

所述终端通过预设的主机地址信息对主机进行侦听;

当所述终端侦听到固件的更新消息后,对所述主机的身份进行校验,在校验通过后将所述主机身份合法的校验结果消息送给所述主机;

当所述终端接收到所述主机发送的所述终端身份合法的校验结果消息后,生成预定的对称加密算法的第一密钥分量,利用所述主机的第一非对称加密算法的公钥加密所述第一密钥分量并发送给所述主机;

所述终端接收所述主机发送的加密的第二密钥分量及加密的固件文件包,基于所述终端的第二非对称加密算法的私钥进行解密得到所述第二密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的解密密钥,利用所述解密密钥对加密的固件文件包进行解密得到固件文件包,基于所述固件文件包进行固件更新,其中,所述加密的第二密钥分量采用所述终端的第二非对称加密算法的公钥进行加密得到。

其中,应用于终端的固件远程更新的方法的具体限定可以参见上述实施例中的固件远程更新的方法的限定,在此不再赘述。

本发明还提供一种应用于主机的固件远程更新的方法,包括以下步骤:

所述主机发布固件的更新消息;

当所述主机接收到终端发送的所述主机身份合法的校验结果消息后,对所述终端的身份进行校验,在校验通过后将所述终端身份合法的校验结果消息送给所述终端;

所述主机接收所述终端发送的加密的第一密钥分量,生成预定的对称加密算法的第二密钥分量,利用所述终端的第二非对称加密算法的公钥加密所述第二密钥分量并发送给所述终端,其中,所述加密的第一密钥分量采用所述主机的第一非对称加密算法的公钥进行加密得到;

所述主机基于所述第一非对称加密算法的私钥进行解密得到所述第一密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的加密密钥,利用所述加密密钥加密固件文件包并发送给所述终端,供所述终端进行固件更新。

其中,应用于主机的固件远程更新的方法的具体限定可以参见上述实施例中的固件远程更新的方法的限定,在此不再赘述。

在一个实施例中,提供了一种计算机设备,该计算机设备是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述计算机设备可以是pc(personalcomputer,个人电脑),或者是智能手机、平板电脑、计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

如图4所示,所述计算机设备可包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,存储器11存储有可在处理器12上运行的计算机程序。需要指出的是,图4仅示出了具有组件11-13的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,存储器11可以是非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。本实施例中,存储器11的可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如存储本发明一实施例中的计算机程序的程序代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或者处理数据,例如运行计算机程序等。

所述网络接口13可包括标准的无线网络接口、有线网络接口,该网络接口13通常用于在所述计算机设备与其他电子设备之间建立通信连接。

所述计算机程序存储在存储器11中,包括至少一个存储在存储器11中的计算机可读指令,该至少一个计算机可读指令可被处理器12执行,以实现以下步骤:

通过预设的主机地址信息对主机进行侦听;

当侦听到固件的更新消息后,对所述主机的身份进行校验,在校验通过后将所述主机身份合法的校验结果消息送给所述主机;

当接收到所述主机发送的所述终端身份合法的校验结果消息后,生成预定的对称加密算法的第一密钥分量,利用所述主机的第一非对称加密算法的公钥加密所述第一密钥分量并发送给所述主机;

接收所述主机发送的加密的第二密钥分量及加密的固件文件包,基于所述终端的第二非对称加密算法的私钥进行解密得到所述第二密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的解密密钥,利用所述解密密钥对加密的固件文件包进行解密得到固件文件包,基于所述固件文件包进行固件更新,其中,所述加密的第二密钥分量采用所述终端的第二非对称加密算法的公钥进行加密得到。

其中,该计算机设备的的具体限定可以参见上述实施例中的固件远程更新的方法的限定,在此不再赘述。

在一个实施例中,提供了一种计算机设备,该计算机设备的功能模块与图2所示的计算机设备的功能模块基本相同,所不同的是计算机程序,计算机程序包括至少一个存储在存储器中的计算机可读指令,该至少一个计算机可读指令可被处理器12执行,实现以下步骤:

发布固件的更新消息;

当接收到终端发送的所述主机身份合法的校验结果消息后,对所述终端的身份进行校验,在校验通过后将所述终端身份合法的校验结果消息送给所述终端;

接收所述终端发送的加密的第一密钥分量,生成预定的对称加密算法的第二密钥分量,利用所述终端的第二非对称加密算法的公钥加密所述第二密钥分量并发送给所述终端,其中,所述加密的第一密钥分量采用所述主机的第一非对称加密算法的公钥进行加密得到;

基于所述第一非对称加密算法的私钥进行解密得到所述第一密钥分量,基于所述第一密钥分量及所述第二密钥分量进行预定运算得到所述对称加密算法的加密密钥,利用所述加密密钥加密固件文件包并发送给所述终端,供所述终端进行固件更新。

其中,该计算机设备的的具体限定可以参见上述实施例中的固件远程更新的方法的限定,在此不再赘述。

在一个实施例中,本发明提供了一种计算机可读存储介质,计算机可读存储介质可以是非易失性和/或易失性存储器,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中固件远程更新方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序在执行时,可包括如上述各方法的实施例的流程。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1