本申请涉及固件更新技术领域,特别涉及一种固件更新方法、固件更新装置、固件更新系统和计算机可读存储介质。
背景技术:
固件是担任着一个系统最基础、底工作的软件,一般可由用户通过特定的刷新程序进行升级的程序。总和检验码(checksum)通常是保证数据通信的完整性和准确性。
刷新固件之前进行验证文件完整性是最基本的,如何验证完整性有很多种方法,现在用的大多是总和检验码进行验证,这种方法简单,但不安全。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
技术实现要素:
本申请的目的是提供一种固件更新方法、固件更新装置、固件更新系统和计算机可读存储介质,能够有效防止固件文件被篡改,提高固件更新的安全性。其具体方案如下:
本申请公开了一种固件更新方法,包括:
接收到固件文件,其中,所述固件文件包括原始文件和签名文件;
利用公钥验证所述原始文件和所述签名文件是否是完整文件;
若是完整文件,则进行刷新操作。
可选的,利用公钥验证所述原始文件和所述签名文件是否是完整文件,包括:
对所述原始文件进行哈希计算得到哈希文件;
利用所述公钥验证所述哈希文件和所述签名文件是否是完整文件。
可选的,若是完整文件,则进行刷新操作,包括:
若是完整文件,则判断所述原始文件的版本号是否是合法版本号;
若是合法版本号,则判断所述版本号是否大于当前版本号;
若大于当前版本号,则进行所述刷新操作。
本申请公开了一种固件更新装置,包括:
接收模块,用于接收到固件文件,其中,所述固件文件包括原始文件和签名文件;
验证模块,用于利用公钥验证所述原始文件和所述签名文件是否是完整文件;
刷新模块,用于若是完整文件,则进行刷新操作。
本申请公开了一种固件更新方法,包括:
利用私钥对原始文件进行签名,得到签名文件;
根据所述签名文件获得固件文件,其中,所述固件文件包括所述签名文件和所述原始文件;
将所述固件文件发送至固件更新设备中,以便所述固件更新设备接收到所述固件文件;利用公钥验证所述原始文件和所述签名文件是否是完整文件;若是完整文件,则进行刷新操作。
可选的,利用私钥对原始文件进行签名,得到签名文件,包括:
对所述原始文件进行哈希处理,得到哈希文件;
利用所述私钥对所述哈希文件进行签名,得到所述签名文件。
可选的,利用私钥对原始文件进行签名,得到签名文件,包括:
利用rsa2048算法对所述原始文件进行签名,得到所述签名文件。
本申请公开了一种固件更新装置,包括:
签名模块,用于利用私钥对原始文件进行签名,得到签名文件;
获取模块,用于根据所述签名文件获得固件文件,其中,所述固件文件包括所述签名文件和所述原始文件;
发送模块,用于将所述固件文件发送至固件更新设备中,以便所述固件更新设备接收到所述固件文件;利用公钥验证所述原始文件和所述签名文件是否是完整文件;若是完整文件,则进行刷新操作。
本申请公开了一种固件更新系统,包括:
固件生成设备,用于利用私钥对原始文件进行签名,得到签名文件;根据所述签名文件获得固件文件,其中,所述固件文件包括所述签名文件和所述原始文件;将所述固件文件发送至固件更新设备中;
所述固件更新设备,用于接收到所述固件文件,利用公钥验证所述原始文件和所述签名文件是否是完整文件;若是完整文件,则进行刷新操作。
本申请公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述固件更新方法的步骤。
本申请公开了一种固件更新方法,包括:接收到固件文件,其中,固件文件包括原始文件和签名文件;利用公钥验证原始文件和签名文件是否是完整文件;若是完整文件,则进行刷新操作。
可见,本申请利用公钥对签名文件和原始文件进行验签,当是完整文件时进行固件刷新操作,有效防止固件文件被篡改,提高了固件更新的安全性。本申请同时还提供了一种固件更新装置、固件更新系统和计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种固件更新方法的流程图;
图2为本申请实施例提供的一种固件更新装置的结构示意图;
图3为本申请实施例所提供的一种固件更新方法的流程图;
图4为本申请实施例提供的一种固件更新装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中刷新固件前会对固件文件进行完整性验证以保证固件能够进行升级,采用的是总和检验码进行完整性验证,这种方法简单但是存在安全性问题,易被破解,基于上述技术问题,本实施例提供一种固件更新方法,利用公钥对签名文件和原始文件进行验签,当是完整文件时进行固件刷新操作,有效防止固件文件被篡改,提高了固件更新的安全性,具体请参考图1,图1为本申请实施例所提供的一种固件更新方法的流程图,具体包括:
s101、接收到固件文件,其中,固件文件包括原始文件和签名文件。
本实施例不对接收到固件文件的方式进行限定,可以是通过无线方式、有线方式、广播信道进行信息传输,只要是能够实现本实施例的目的即可。固件文件包括原始文件和签名文件。原始文件是对于系统或者设备进行升级所需的升级文件。
s102、利用公钥验证原始文件和签名文件是否是完整文件。
利用公钥验证原始文件和签名文件是否是完整文件。可以理解的是,公钥与生成签名文件时使用的私钥对应,才可以进行完整文件的验证。可以理解的是,签名保证了文件来源的可靠性,加密保证了数据的安全性,以避免数据被篡改,保证了数据的完整性。
进一步的,用公钥验证原始文件和签名文件是否是完整文件,包括:对原始文件进行哈希计算得到哈希文件;利用公钥验证哈希文件和签名文件是否是完整文件。
对原始文件进行哈希计算得到哈希文件,具体的,是利用散列算法将原尺寸的原始数据转变成一个小尺寸的哈希文件。本申请不对哈希算法进行限定,可以是md4、md5、sha-1中的任意一种算法。通过进行哈希计算可以简化数据以提高验证过程的验证效率。
当然,固件文件是进行哈希处理后的文件后,当接收到固件文件后,对原始文件用相同的哈希算法和密钥进行哈希得到对应的哈希值,如果固件文件对应的哈希值与处理后得到的哈希值相同,证明数据未被篡改,此时利用密钥检验更具有可靠性。
s103、若是完整文件,则进行刷新操作。
若是完整文件,则进行刷新操作,实现固件升级。若不是完整文件,则停止操作,进一步的可以设置提醒装置用户提示用户,可以是声提醒或光提醒或声光提醒或者是在屏幕上显示错误提示。
进一步的,若是完整文件,则进行刷新操作,包括:若是完整文件,则判断原始文件的版本号是否是合法版本号;若是合法版本号,则判断版本号是否大于当前版本号;若大于当前版本号,则进行刷新操作。
当是完整文件时,判断原始文件的版本号是否是合法版本号,其中判断的依据包括原始文件的版本号是否是符合升级要求的版本号,主要的要求可以是符合的机型、是否有权限在系统中进行升级等。若是合法版本号时,则判断版本号是否大于当前版本号,若大于则证明可以进行升级操作,若小于则证明不能够进行升级操作。
基于上述技术手段,本实施例利用公钥对签名文件和原始文件进行验签,当是完整文件时进行固件刷新操作,有效防止固件文件被篡改,提高了固件更新的安全性。
下面对本申请实施例提供的一种固件更新装置进行介绍,下文描述的固件更新装置与上文描述的固件更新方法可相互对应参照,相关模块均设置于固件更新设备中,参考图2,图2为本申请实施例所提供的一种固件更新装置的结构示意图,包括:
接收模块201,用于接收到固件文件,其中,固件文件包括原始文件和签名文件;
验证模块202,用于利用公钥验证原始文件和签名文件是否是完整文件;
刷新模块203,用于若是完整文件,则进行刷新操作。
在一些具体的实施例中,验证模块202包括:
计算单元,用于对原始文件进行哈希计算得到哈希文件;
验证单元,用于利用公钥验证哈希文件和签名文件是否是完整文件。
在一些具体的实施例中,刷新模块203包括:
第一判断单元,用于若是完整文件,则判断原始文件的版本号是否是合法版本号;
第二判断单元,用于若是合法版本号,则判断版本号是否大于当前版本号;
刷新单元,用于若大于当前版本号,则进行刷新操作。
由于固件更新装置部分的实施例与固件更新方法部分的实施例相互对应,因此固件更新装置部分的实施例请参见固件更新方法部分的实施例的描述,这里暂不赘述。
基于上述实施例,本实施例提供一种固件更新方法,具体请参考图3,图3为本申请实施例所提供的另一种固件更新方法的流程图,包括:
s301、利用私钥对原始文件进行签名,得到签名文件。
在生成固件文件的过程中利用私钥对原始文件进行签名,已确保数据的安全性,不易被破坏其完整性,此时得到签名文件。
进一步的,利用私钥对原始文件进行签名,得到签名文件,包括:对原始文件进行哈希处理,得到哈希文件;利用私钥对哈希文件进行签名,得到签名文件。
为了提高文件处理的效率,对原始文件进行哈希处理,以便降低文件的大小,有利于减少后续处理时间。对得到的哈希文件利用私钥进行签名,使文件数据更具有安全性。
进一步的,利用私钥对原始文件进行签名,得到签名文件,包括:利用rsa2048算法对原始文件进行签名,得到签名文件。
利用rsa2048算法增强数据的安全性。
s302、根据签名文件获得固件文件,其中,固件文件包括签名文件和原始文件。
s303、将固件文件发送至固件更新设备中,以便固件更新设备接收到固件文件;利用公钥验证原始文件和签名文件是否是完整文件;若是完整文件,则进行刷新操作。
根据签名文件得到固有文件,此时固有文件可以被发送至固件更新设备中,以便固件更新设备根据固件文件进行升级。
基于上述技术方案,本实施例通过采取利用私钥与公钥对签名文件和原始文件进行验签,当是完整文件时进行固件刷新操作,有效防止固件文件被篡改,提高了固件更新的安全性。
下面对本申请实施例提供的一种固件更新装置进行介绍,下文描述的固件更新装置与上文描述的固件更新方法可相互对应参照,相关模块均设置于固件生成装置中,参考图4,图4为本申请实施例所提供的一种固件更新装置的结构示意图,包括:
签名模块401,用于利用私钥对原始文件进行签名,得到签名文件;
获取模块402,用于根据签名文件获得固件文件,其中,固件文件包括签名文件和原始文件;
发送模块403,用于将固件文件发送至固件更新设备中,以便固件更新设备接收到固件文件;利用公钥验证原始文件和签名文件是否是完整文件;若是完整文件,则进行刷新操作
在一些具体的实施例中,签名模块401包括:
处理单元,用于对原始文件进行哈希处理,得到哈希文件;
签名单元,用于利用私钥对哈希文件进行签名,得到签名文件。
在一些具体的实施例中,签名单元包括:
签名子单元,用于利用rsa2048算法对原始文件进行签名,得到签名文件。
由于固件更新装置部分的实施例与固件更新方法部分的实施例相互对应,因此固件更新装置部分的实施例请参见固件更新方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种固件更新系统进行介绍,下文描述的固件更新系统与上文描述的固件更新方法可相互对应参照。
本实施例提供一种固件更新系统,包括:固件生成设备,用于利用私钥对原始文件进行签名,得到签名文件;根据签名文件获得固件文件,其中,固件文件包括签名文件和原始文件;将固件文件发送至固件更新设备中;
固件更新设备,用于接收到固件文件,利用公钥验证原始文件和签名文件是否是完整文件;若是完整文件,则进行刷新操作。
由于固件更新系统部分的实施例与固件更新方法部分的实施例相互对应,因此固件更新系统部分的实施例请参见固件更新方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的固件更新方法可相互对应参照。
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如是述固件更新方法的步骤。
由于计算机可读存储介质部分的实施例与固件更新方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见固件更新方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种固件更新方法、固件更新装置、固件更新系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。