固件的保护方法、装置及设备与流程

文档序号:26230379发布日期:2021-08-10 16:30阅读:156来源:国知局
固件的保护方法、装置及设备与流程

本发明涉及网络安全技术领域,尤其涉及一种固件的保护方法、装置及设备。



背景技术:

近年来,随着网络的发展,越来越多的固件,如家庭中的智能设备、办公场所的智能设备等,接入到网络中。这给了很多攻击者可乘之机,攻击者可以通过向固件写入非法文件来实现对固件的入侵,以窃取用户的信息。

因此,需要一种针对固件的保护方法,来防止攻击者向固件写入非法文件、窃取用户信息。



技术实现要素:

本发明实施例提供一种固件的保护方法、装置及设备,以解决攻击者向固件写入非法文件、窃取用户信息的问题。

为了解决上述技术问题,本发明是这样实现的:

第一方面,提供了一种固件的保护方法,应用于抽象语法标记1asn.1编码器,所述asn.1编码器与待保护固件的上位机相连,所述方法包括:

确定编码长度,所述编码长度至少是根据所述待保护固件的带电可擦可编程只读存储器e2rom存储器的存储属性值确定的;所述存储属性值是所述上位机传输的;

根据所述编码长度,对所述上位机传输的初始数据进行asn.1编码,得到编码数据;

将所述编码数据传输至与所述待保护固件相连的asn.1解码器;其中,所述asn.1解码器用于将接收到的编码数据进行asn.1解码,得到所述初始数据以及所述存储属性值,并将所述初始数据以及所述存储属性值发送至所述待保护固件的e2rom存储器,以使得所述e2rom存储器根据所述存储属性值对所述初始数据进行验证,并在验证成功后,将所述初始数据写入所述待保护固件的内存中。

第二方面,提供了一种固件的保护方法,应用于抽象语法标记1asn.1解码器,所述asn.1解码器与待保护固件相连,所述方法包括:

接收asn.1编码器传输的编码数据;其中,所述编码数据是对所述待保护固件的上位机传输的初始数据进行asn.1编码得到的;所述编码数据对应的编码长度至少是根据所述待保护固件的带电可擦可编程只读存储器e2rom存储器的存储属性值确定的;所述存储属性值由所述上位机传输至所述asn.1编码器;

对所述编码数据进行asn.1解码,得到所述初始数据以及所述存储属性值;

将所述初始数据以及所述存储属性值发送至所述待保护固件的e2rom存储器,以使得所述e2rom存储器根据所述存储属性值对所述初始数据进行验证,并在验证成功后,将所述初始数据写入所述待保护固件的内存。

第三方面,提供了一种固件的保护装置,应用于asn.1编码器,所述asn.1编码器与待保护固件的上位机相连,所述装置包括:

确定模块,用于确定编码长度,所述编码长度至少是根据所述待保护固件的带电可擦可编程只读存储器e2rom存储器的存储属性值确定的;所述存储属性值是所述上位机传输的;

编码模块,用于根据所述编码长度,对所述上位机传输的初始数据进行asn.1编码,得到编码数据;

传输模块,用于将所述编码数据传输至与所述待保护固件相连的asn.1解码器;其中,所述asn.1解码器用于将接收到的编码数据进行asn.1解码,得到所述初始数据以及所述存储属性值,并将所述初始数据以及所述存储属性值发送至所述待保护固件的e2rom存储器,以使得所述e2rom存储器根据所述存储属性值对所述初始数据进行验证,并在验证成功后,将所述初始数据写入所述固件。

第四方面,提供了一种固件的保护模块,应用于抽象语法标记1asn.1解码器,所述asn.1解码器与待保护固件相连,所述装置包括:

接收模块,用于接收asn.1编码器传输的编码数据;其中,所述编码数据是对所述待保护固件的上位机传输的初始数据进行asn.1编码得到的;所述编码数据对应的编码长度至少是根据所述待保护固件的带电可擦可编程只读存储器e2rom存储器的存储属性值确定的;所述存储属性值由所述上位机传输至所述asn.1编码器;

解码模块,用于对所述编码数据进行asn.1解码,得到所述初始数据以及所述存储属性值;

发送模块,用于将所述初始数据以及所述存储属性值发送至所述待保护固件的e2rom存储器,以使得所述e2rom存储器根据所述存储属性值对所述初始数据进行验证,并在验证成功后,将所述初始数据写入所述固件。

第五方面,提供了一种固件的保护设备,该固件的保护设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面或第二方面所述的方法的步骤。

第六方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面或第二方面所述的方法的步骤。

在本发明实施例中,针对上位机写入待保护固件的初始数据,可以先根据待保护固件的e2rom存储器的存储属性值对初始数据进行编码,其中,在编码时,可以先确定编码长度,然后,再根据编码长度对初始数据进行asn.1编码,得到编码数据,然后,将编码数据传输至与待保护固件相连的asn.1解码器,以使得asn.1解码器对编码数据进行解码,并将解码得到的初始数据以及存储属性值发送至待保护固件的e2rom存储器,e2rom存储器可以根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入固件中。由于本发明实施例中在向待保护固件写入数据时,可以基于待保护固件中的e2rom属性值来对写入数据进行验证,并在验证成功的情况下,才将数据写入到固件内存中,因此,可以有效防止非法文件的写入。

此外,由于本发明实施例对初始数据先压缩后传输,因此,可以有效缩短传输时长。而且,本发明实施例将对初始数据的验证过程放到e2rom存储器上,并由e2rom存储器将验证通过的数据传输至固件内存,由于e2rom存储器与固件内存之间的数据传输速度要快于asn.1编码器与asn.1解码器之间通过网络传输的数据传输速度,因此,对初始数据的验证过程并不影响asn.1编码器与asn.1解码器之间的数据传输,从而可以有效缩短向待保护固件写入数据的等待时间。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明一个实施例提供的固件的保护方法的流程示意图之一;

图2为本发明一个实施例提供的固件的保护方法的流程示意图之二;

图3为本发明一个实施例提供的固件的保护方法的流程示意图之三;

图4为本发明一个实施例提供的固件的保护装置的模块组成示意图之一;

图5为本发明一个实施例提供的固件的保护装置的模块组成示意图之二;

图6为本发明一个实施例提供的固件的保护设备的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下结合附图,详细说明本发明各实施例提供的技术方案。

请参见图1,图1为本发明一个实施例提供的固件的保护方法的流程示意图之一,本发明实施例应用于asn.1(abstractsyntaxnotationone,抽象语法标记1)编码器,其中,asn.1编码器与待保护固件的上位机相连,如图1所示,该方法包括以下步骤:

步骤102:确定编码长度,编码长度至少是根据待保护固件的电可擦写存储器e2rom存储器的存储属性值确定的;存储属性值是上位机传输的;

步骤104:根据编码长度,对上位机传输的初始数据进行asn.1编码,得到编码数据;

步骤106:将编码数据传输至与待保护固件相连的asn.1解码器;其中,asn.1解码器用于将接收到的编码数据进行asn.1解码,得到初始数据以及存储属性值,并将初始数据以及存储属性值发送至待保护固件的e2rom存储器,以使得e2rom存储器根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入待保护固件的内存中。

在本发明实施例中,待保护固件的上位机可以通过asn.1编码器、asn.1解码器将要写入待保护固件的数据传输至待保护固件的e2rom(electricallyerasableprogrammablereadonlymemory,带电可擦可编程只读存储器)存储器中,然后,待保护固件的e2rom存储器可以将数据传输至待保护固件的内存中,以完成将来自上位机的数据写入待保护固件。

在本发明实施例中,上位机可以向asn.1编码器传输初始数据以及初始数据对应的待保护固件的e2rom存储器的存储属性值。其中,初始数据对应的待保护固件为初始数据需要写入的固件。

asn.1编码器接收到初始数据以及存储属性值后,可以先确定编码长度,其中,编码长度可以至少是根据待保护固件的e2rom存储器的存储属性值确定的。

在一个示例中,e2rom存储器的存储属性值可以包括存储字节数,然后,可以根据e2rom存储器的存储字节数来确定编码长度。

例如,e2rom存储器的存储字节数可以为256,由于asn.1编码为二进制编码,因此,可以将编码长度设定为8。

在确定编码长度后,asn.1编码器可以获取待保护固件的上位机传输的初始数据,并根据编码长度对初始数据进行asn.1编码,得到编码数据。

由于根据确定的编码长度对数据进行asn.1编码,为现有技术,因此,本实施例在此不再赘述。

在本发明的另一个实施例中,在确定编码长度时,可以根据待保护固件的e2rom存储器的存储属性值及其对应的第一权重值,以及asn.1编码器与asn.1解码器之间的通信宽带值及其对应的第二权重值,来确定编码长度。

在一个示例中,asn.1编码器可以获取与asn.1解码器之间的通信宽带值,然后,分别为e2rom存储器的存储属性值以及通信带宽值设定对应的第一权重值和第二权重值,其中,第一权重值以及第二权重值可以是默认的,也可以是相关技术人员手动配置的。在设定了第一权重值以及第二权重值后,可以分别获取存储属性值与第一权重值的乘积,以及通信带宽值与第二权重值的乘积,并将这两个乘积进行加和,将加和结果作为编码长度。

在本发明实施例中,在根据asn.1编码器与asn.1解码器之间的通信宽带值以及e2rom存储器的存储属性值来确定编码长度之前,asn.1编码器还可以检测当前的通信带宽是否较为稳定,若较为稳定,如通信带宽的波动值小于预设阈值,则可以根据asn.1编码器与asn.1解码器之间的通信宽带值以及e2rom存储器的存储属性值来确定编码长度;若当前的通信带宽不稳定,则可以不根据通信宽带值来确定编码长度,即仅根据e2rom存储器的存储属性值来确定编码长度。

在本发明实施例中,在根据e2rom存储器的存储属性值以及asn.1编码器以及asn.1解码器之间的通信带宽值,以及对应的第一权重值和第二权重值,来确定编码长度后,可以根据该确定的编码长度,以及第一权重值和第二权重值,来对上位机传输的初始数据进行asn.1编码,并得到编码数据。

在一个示例中,在根据该确定的编码长度,以及第一权重值和第二权重值,来对上位机传输的初始数据进行asn.1编码,并得到编码数据时,可以以预设的字符组合顺序,将第一权重值以及第二权重值组合成一个字符串,然后,可以在asn.1编码时新增一个字符串类型,并将该字符类型的值设置为该字符串,然后,再结合该确定的编码长度来进行asn.1编码。需要说明的是,本示例中预设的字符组合顺序是asn.1编码器以及asn.1解码器预先确定好的。

由上述内容可知,本发明实施例可以对上位机传输至待保护固件的初始数据进行asn.1编码时,结合asn.1编码器与asn.1解码器之间的带宽值来进行编码,以使得asn.1解码器在对编码数据进行解码时,可以根据与asn.1编码器之前的带宽值对编码数据进行验证,由于增加了验证次数以及验证维度,因此,提升了数据的安全性,减少了非法数据写入待保护固件的风险。

在得到编码数据后,asn.1编码器可以将编码数据传输至与待保护固件相连的asn.1解码器。其中,asn.1解码器可以用于将接收到的编码数据进行asn.1解码,得到asn.1编码前的上述初始数据以及上述e2rom存储器的存储属性值,然后,asn.1解码器可以将得到的初始数据以及存储属性值发送至待保护固件的e2rom存储器,以使得e2rom存储器可以根据自身的存储属性值对接收到的存储属性值进行验证,并在验证成功后,将初始数据写入到待保护固件的内存中。

在本发明的一个实施例中,在对上位机传输的初始数据进行asn.1编码时,可以先得到初始编码数据,然后,可以对初始编码数据进行哈希运算,得到初始哈希值,并根据初始哈希值以及初始编码数据,来得到目标编码数据。在得到目标编码数据后,可以将目标编码数据传输至与待保护固件相连的asn.1解码器,此时,asn.1解码器可以基于目标编码数据来执行后续的解码动作、发送动作等。

在一个示例中,在根据初始哈希值以及初始编码数据来得到目标编码数据时,可以将初始哈希值插入至初始编码数据中asn.1编码器与asn.1解码器预先协商好的位置中,例如,可以将初始哈希值插入至第一个字符串类型的字符串值的最后,该字符串的各类值之间可以用预设的连接符进行隔开,如字符串的值可以为asn.10&101,则可以将初始哈希值插到最后,得到asn.10&101&初始哈希值。

本发明实施例可以获取初始编码数据的初始哈希运算值,因此,后续可以基于该初始哈希运算值来确保初始编码数据未被修改,提升了初始编码数据的安全性,从而有效减少了非法数据写入待保护固件的风险。

在本发明的一个实施例中,asn.1编码器在每次向asn.1解码器传输数据后,还可以获取asn.1解码器以及与asn.1解码器相连的e2rom存储器通过asn.1解码器返回的数据接收反馈消息,asn.1编码器可以根据数据接收反馈消息来调整第一权重值以及第二权重值,例如,当数据接收反馈消息的发送时间与asn.1编码器传输对应数据的时间的差值大于预设时差阈值时,则asn.1编码可以对第一权重值以及第二权重值进行调整,并在下一次确定编码长度时,根据调整后的第一权重值以及第二权重值来确定编码长度;当数据接收反馈消息的发送时间与asn.1编码器传输对应数据的时间的差值不大于预设时差阈值时,则asn.1编码可以保留当前的第一权重值以及第二权重值,并在下一次确定编码长度时,根据当前保留的第一权重值以及第二权重值来确定编码长度。

在本发明实施例中,针对上位机写入待保护固件的初始数据,可以先根据待保护固件的e2rom存储器的存储属性值对初始数据进行编码,其中,在编码时,可以先确定编码长度,然后,再根据编码长度对初始数据进行asn.1编码,得到编码数据,然后,将编码数据传输至与待保护固件相连的asn.1解码器,以使得asn.1解码器对编码数据进行解码,并将解码得到的初始数据以及存储属性值发送至待保护固件的e2rom存储器,e2rom存储器可以根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入固件中。由于本发明实施例中在向待保护固件写入数据时,可以基于待保护固件中的e2rom属性值来对写入数据进行验证,并在验证成功的情况下,才将数据写入到固件内存中,因此,可以有效防止非法文件的写入。

此外,由于本发明实施例对初始数据先压缩后传输,因此,可以有效缩短传输时长。而且,本发明实施例将对初始数据的验证过程放到e2rom存储器上,并由e2rom存储器将验证通过的数据传输至固件内存,由于e2rom存储器与固件内存之间的数据传输速度要快于asn.1编码器与asn.1解码器之间通过网络传输的数据传输速度,因此,对初始数据的验证过程并不影响asn.1编码器与asn.1解码器之间的数据传输,从而可以有效缩短向待保护固件写入数据的等待时间。

请参见图2,图2为本发明一个实施例提供的固件的保护方法的流程示意图之二,本发明实施例应用于asn.1(abstractsyntaxnotationone,抽象语法标记1)解码器,其中,asn.1解码器与待保护固件相连,如图2所示,该方法包括以下步骤:

步骤202:接收asn.1编码器传输的编码数据;其中,编码数据是对待保护固件的上位机传输的初始数据进行asn.1编码得到的;编码数据对应的编码长度至少是根据待保护固件的带电可擦可编程只读存储器e2rom存储器的存储属性值确定的;存储属性值由上位机传输至asn.1编码器;

步骤204:对编码数据进行asn.1解码,得到初始数据以及存储属性值;

步骤206:将初始数据以及存储属性值发送至待保护固件的e2rom存储器,以使得e2rom存储器根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入待保护固件的内存。

在本发明实施例中,待保护固件的上位机可以通过asn.1编码器、asn.1解码器将要写入待保护固件的数据传输至待保护固件的e2rom(electricallyerasableprogrammablereadonlymemory,带电可擦可编程只读存储器)存储器中,然后,待保护固件的e2rom存储器可以将数据传输至待保护固件的内存中,以完成将来自上位机的数据写入待保护固件。

在本发明实施例中,asn.1解码器可以接收asn.1编码器传输的编码数据。

在本发明实施例中,编码数据可以是对待保护固件的上位机传输的初始数据进行asn.1编码得到的,而编码数据对应的编码长度可以至少是根据待保护固件的e2rom存储器的存储属性值确定的。其中,存储属性值由上位机传输至asn.1编码器,由于该内容已在上一实施例中详述,因此,本实施例对此不再赘述。

在接收到编码数据后,asn.1解码器可以对编码数据进行asn.1解码,得到上述初始数据以及待保护固件的e2rom存储器的存储属性值。

在一个示例中,asn.1解码器可以根据编码数据得到解码长度,然后,可以根据解码长度来得到存储属性值,以及根据解码长度来对解码数据进行解码得到初始数据。

其中,asn.1解码器可以直接从编码数据中获取到解码长度,由于asn.1编码为二进制编码,因此,通过解码长度以及二进制编码规则,可以得到对应的存储属性值。

例如,asn.1解码器直接从编码数据中获取到的解码长度为8,则根据二进制编码规则,可以得到存储属性值为2的8次方,即为256。

在本发明的一个实施例中,asn.1解码器接收到的编码数据对应的编码长度可以是根据待保护固件的e2rom存储器的存储属性值及其对应的第一权重值,以及asn.1编码器与asn.1解码器之间的通信带宽值及其对应的第二权重值确定的,此时,在对编码数据进行asn.1解码得到初始数据以及存储属性值时,可以先从编码数据中得到解码长度以及第一权重值和第二权重值。

由于asn.1解码器可以直接从编码数据中获取到解码长度,因此,本实施例在此不再赘述。

asn.1解码器在从编码数据中获取第一权重值以及第二权重值时,可以先判断编码数据中的第一个类型是否为字符串,若为字符串,则可以根据预设与asn.1编码器同步的字符组合顺序,来获取第一权重值以及第二权重值。

在获取到第一权重值、第二权重值、解码长度以及通信带宽值后,asn.1解码器可以得到存储属性值。由于解码长度是根据第一权重值、存储属性值、第二权重值,以及通信带宽值得到的,因此,在解码长度、第一权重值、第二权重值以及通信带宽值已知的情况下,可以得到存储属性值。

在本实施例中,在得到解码长度后,可以根据解码长度来对编码数据进行解码得到上述初始数据。

由上述内容可知,asn.1解码器在对编码数据进行解码时,可以根据与asn.1编码器之间的带宽值对编码数据进行验证,由于增加了验证次数以及验证维度,因此,提升了数据的安全性,减少了非法数据写入待保护固件的风险。

在本发明一个实施例中,在得到初始数据以及存储属性值后,可以将初始数据以及存储属性值发送至待保护固件的e2rom存储器,以使得e2rom存储器根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入待保护固件的内存。

在本发明的另一个实施例中,asn.1解码器接收到的编码数据可以是由对初始编码数据进行哈希运算后得到的初始哈希值,以及初始编码数据得到的,其中,初始编码数据可以为根据编码长度对上位机传输的初始数据进行asn.1编码后得到的。此时,在对编码数据进行asn.1解码,得到初始数据以及存储属性值时,可以先对编码数据进行asn.1解码,得到初始数据、存储属性值以及初始哈希值。然后,可以将初始数据、存储属性值以及初始哈希值发送至待保护固件的e2rom存储器,以使得e2rom存储器可以对初始数据进行哈希运算,得到目标哈希值,并在目标哈希值与初始哈希值匹配成功的情况下,将初始数据发送至待保护固件的内存。

在本发明实施例中,asn.1解码器在从对编码数据进行asn.1解码,得到初始哈希值时,可以从asn.1解码器与asn.1编码器预先协商好的位置中获取。例如,可以根据编码数据中第一个字符串类型的值中最后一个连接符之后的值来获取初始哈希值。

本发明实施例可以基于初始哈希运算值来确保初始编码数据未被修改,提升了初始编码数据的安全性,从而有效减少了非法数据写入待保护固件的风险。

在本发明实施例中,asn.1解码器可以接收asn.1编码器传输的编码数据,其中编码数据是对待保护固件的上位机传输的初始数据进行asn.1编码得到的,该编码数据对应的编码长度至少是根据待保护固件的e2rom存储器的存储属性值确定的,在得到编码数据后,asn.1解码器可以对编码数据进行解码,并将解码得到的初始数据以及存储属性值发送至待保护固件的e2rom存储器,e2rom存储器可以根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入固件中。

由于本发明实施例中在向待保护固件写入数据时,可以基于待保护固件中的e2rom属性值来对写入数据进行验证,并在验证成功的情况下,才将数据写入到固件内存中,因此,可以有效防止非法文件的写入。

此外,由于本发明实施例对初始数据先压缩后传输,因此,可以有效缩短传输时长。而且,本发明实施例将对初始数据的验证过程放到e2rom存储器上,并由e2rom存储器将验证通过的数据传输至固件内存,由于e2rom存储器与固件内存之间的数据传输速度要快于asn.1编码器与asn.1解码器之间通过网络传输的数据传输速度,因此,对初始数据的验证过程并不影响asn.1编码器与asn.1解码器之间的数据传输,从而可以有效缩短向待保护固件写入数据的等待时间。

请参见图3,图3为本发明一个实施例提供的固件的保护方法的流程示意图之三,如图3所示,该方法包括以下步骤:

步骤302:上位机向asn.1编码器传输初始数据以及初始数据对应的待保护固件的e2rom存储器的存储属性值;

步骤304:asn.1编码器确定编码长度,其中,编码长度至少是根据待保护固件的e2rom存储器的存储属性值确定的;

步骤306:asn.1编码器根据编码长度,对上位机传输的初始数据进行asn.1编码,得到编码数据;

步骤308:asn.1编码器将编码数据传输至与待保护固件相连的asn.1解码器;

步骤310:asn.1解码器接收asn.1编码器传输的编码数据;

步骤312:asn.1解码器对编码数据进行asn.1解码,得到初始数据以及存储属性值;

步骤314:asn.1解码器将初始数据以及存储属性值发送至待保护固件的e2rom存储器,以使得e2rom存储器根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入待保护固件的内存。

在本发明实施例中,待保护固件的上位机可以通过asn.1编码器、asn.1解码器将要写入待保护固件的数据传输至待保护固件的e2rom(electricallyerasableprogrammablereadonlymemory,带电可擦可编程只读存储器)存储器中,然后,待保护固件的e2rom存储器可以将数据传输至待保护固件的内存中,以完成将来自上位机的数据写入待保护固件。

在本发明实施例中,上位机可以向asn.1编码器传输初始数据以及初始数据对应的待保护固件的e2rom存储器的存储属性值。其中,初始数据对应的待保护固件为初始数据需要写入的固件。

asn.1编码器接收到初始数据以及存储属性值后,可以先确定编码长度,其中,编码长度可以至少是根据待保护固件的e2rom存储器的存储属性值确定的。

在确定编码长度后,asn.1编码器可以获取待保护固件的上位机传输的初始数据,并根据编码长度对初始数据进行asn.1编码,得到编码数据。

在本发明的一个实施例中,在确定编码长度时,可以根据待保护固件的e2rom存储器的存储属性值及其对应的第一权重值,以及asn.1编码器与asn.1解码器之间的通信宽带值及其对应的第二权重值,来确定编码长度。

在本实施例中,在根据asn.1编码器与asn.1解码器之间的通信宽带值以及e2rom存储器的存储属性值来确定编码长度之前,asn.1编码器还可以检测当前的通信带宽是否较为稳定,若较为稳定,如通信带宽的波动值小于预设阈值,则可以根据asn.1编码器与asn.1解码器之间的通信宽带值以及e2rom存储器的存储属性值来确定编码长度;若当前的通信带宽不稳定,则可以不根据通信宽带值来确定编码长度,即仅根据e2rom存储器的存储属性值来确定编码长度。

在本发明实施例中,在根据e2rom存储器的存储属性值以及asn.1编码器以及asn.1解码器之间的通信带宽值,以及对应的第一权重值和第二权重值,来确定编码长度后,可以根据该确定的编码长度,以及第一权重值和第二权重值,来对上位机传输的初始数据进行asn.1编码,并得到编码数据。

在得到编码数据后,asn.1编码器可以将编码数据传输至与待保护固件相连的asn.1解码器。

在本发明的一个实施例中,在对上位机传输的初始数据进行asn.1编码时,可以先得到初始编码数据,然后,可以对初始编码数据进行哈希运算,得到初始哈希值,并根据初始哈希值以及初始编码数据,来得到目标编码数据。在得到目标编码数据后,可以将目标编码数据传输至与待保护固件相连的asn.1解码器。

在本发明实施例中,asn.1解码器可以接收asn.1编码器传输的编码数据。

在接收到编码数据后,asn.1解码器可以对编码数据进行asn.1解码,得到上述初始数据以及待保护固件的e2rom存储器的存储属性值。

在本发明的一个实施例中,asn.1解码器接收到的编码数据对应的编码长度可以是根据待保护固件的e2rom存储器的存储属性值及其对应的第一权重值,以及asn.1编码器与asn.1解码器之间的通信带宽值及其对应的第二权重值确定的,此时,在对编码数据进行asn.1解码得到初始数据以及存储属性值时,可以先从编码数据中得到解码长度以及第一权重值和第二权重值,在获取到第一权重值、第二权重值、解码长度以及通信带宽值后,asn.1解码器可以得到存储属性值。

asn.1解码器在得到初始数据以及存储属性值后,可以将初始数据以及存储属性值发送至待保护固件的e2rom存储器,以使得e2rom存储器根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入待保护固件的内存。

在本发明的另一个实施例中,asn.1解码器接收到的编码数据可以是由对初始编码数据进行哈希运算后得到的初始哈希值,以及初始编码数据得到的,其中,初始编码数据可以为根据编码长度对上位机传输的初始数据进行asn.1编码后得到的。此时,asn.1解码器在对编码数据进行asn.1解码,得到初始数据以及存储属性值时,可以先对编码数据进行asn.1解码,得到初始数据、存储属性值以及初始哈希值。然后,asn.1解码器可以将初始数据、存储属性值以及初始哈希值发送至待保护固件的e2rom存储器,以使得e2rom存储器可以对初始数据进行哈希运算,得到目标哈希值,并在目标哈希值与初始哈希值匹配成功的情况下,将初始数据发送至待保护固件的内存。

由上述内容可知,本发明实施例中在向待保护固件写入数据时,可以基于待保护固件中的e2rom属性值来对写入数据进行验证,并在验证成功的情况下,才将数据写入到固件内存中,因此,可以有效防止非法文件的写入。

此外,由于本发明实施例对初始数据先压缩后传输,因此,可以有效缩短传输时长。而且,本发明实施例将对初始数据的验证过程放到e2rom存储器上,并由e2rom存储器将验证通过的数据传输至固件内存,由于e2rom存储器与固件内存之间的数据传输速度要快于asn.1编码器与asn.1解码器之间通过网络传输的数据传输速度,因此,对初始数据的验证过程并不影响asn.1编码器与asn.1解码器之间的数据传输,从而可以有效缩短向待保护固件写入数据的等待时间。

对应上述固件的保护方法,本发明实施例还提供了一种固件的保护装置,图4为本发明实施例提供的固件的保护装置的模块组成示意图之一,如图4所示,该固件的保护装置包括:

确定模块41,用于确定编码长度,所述编码长度至少是根据所述待保护固件的带电可擦可编程只读存储器e2rom存储器的存储属性值确定的;所述存储属性值是所述上位机传输的;

编码模块42,用于根据所述编码长度,对所述上位机传输的初始数据进行asn.1编码,得到编码数据;

传输模块43,用于将所述编码数据传输至与所述待保护固件相连的asn.1解码器;其中,所述asn.1解码器用于将接收到的编码数据进行asn.1解码,得到所述初始数据以及所述存储属性值,并将所述初始数据以及所述存储属性值发送至所述待保护固件的e2rom存储器,以使得所述e2rom存储器根据所述存储属性值对所述初始数据进行验证,并在验证成功后,将所述初始数据写入所述固件。

可选的,所述确定模块41用于:

根据所述待保护固件的e2rom存储器的存储属性值及其对应的第一权重值,以及所述asn.1编码器与所述asn.1解码器之间的通信带宽值及其对应的第二权重值,确定编码长度;

所述编码模块42用于:

根据所述编码长度,以及所述第一权重值、所述第二权重值,对所述上位机传输的初始数据进行asn.1编码,得到编码数据。

可选的,所述编码模块42用于:

对所述上位机传输的初始数据进行asn.1编码,得到初始编码数据;

对所述初始编码数据进行哈希运算,得到初始哈希值;

根据所述初始哈希值,以及所述初始编码数据,得到目标编码数据;

所述传输模块43用于:

将所述目标编码数据传输至与所述待保护固件相连的asn.1解码器。

在本发明实施例中,针对上位机写入待保护固件的初始数据,可以先根据待保护固件的e2rom存储器的存储属性值对初始数据进行编码,其中,在编码时,可以先确定编码长度,然后,再根据编码长度对初始数据进行asn.1编码,得到编码数据,然后,将编码数据传输至与待保护固件相连的asn.1解码器,以使得asn.1解码器对编码数据进行解码,并将解码得到的初始数据以及存储属性值发送至待保护固件的e2rom存储器,e2rom存储器可以根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入固件中。

由于本发明实施例中在向待保护固件写入数据时,可以基于待保护固件中的e2rom属性值来对写入数据进行验证,并在验证成功的情况下,才将数据写入到固件内存中,因此,可以有效防止非法文件的写入。

此外,由于本发明实施例对初始数据先压缩后传输,因此,可以有效缩短传输时长。而且,本发明实施例将对初始数据的验证过程放到e2rom存储器上,并由e2rom存储器将验证通过的数据传输至固件内存,由于e2rom存储器与固件内存之间的数据传输速度要快于asn.1编码器与asn.1解码器之间通过网络传输的数据传输速度,因此,对初始数据的验证过程并不影响asn.1编码器与asn.1解码器之间的数据传输,从而可以有效缩短向待保护固件写入数据的等待时间。

对应上述固件的保护方法,本发明实施例还提供了一种固件的保护装置,图5为本发明实施例提供的固件的保护装置的模块组成示意图之二,如图5所示,该固件的保护装置包括:

接收模块51,用于接收asn.1编码器传输的编码数据;其中,所述编码数据是对所述待保护固件的上位机传输的初始数据进行asn.1编码得到的;所述编码数据对应的编码长度至少是根据所述待保护固件的带电可擦可编程只读存储器e2rom存储器的存储属性值确定的;所述存储属性值由所述上位机传输至所述asn.1编码器;

解码模块52,用于对所述编码数据进行asn.1解码,得到所述初始数据以及所述存储属性值;

发送模块53,用于将所述初始数据以及所述存储属性值发送至所述待保护固件的e2rom存储器,以使得所述e2rom存储器根据所述存储属性值对所述初始数据进行验证,并在验证成功后,将所述初始数据写入所述固件。

可选的,所述解码模块52用于:

根据所述编码数据得到解码长度;

根据所述解码长度得到所述存储属性值,以及根据所述解码长度对所述解码数据进行解码得到所述初始数据。

可选的,所述编码数据对应的编码长度是根据所述待保护固件的e2rom存储器的存储属性值及其对应的第一权重值,以及所述asn.1编码器与所述asn.1解码器之间的通信带宽值及其对应的第二权重值确定的;

所述解码模块52用于:

根据所述编码数据得到解码长度以及所述第一权重值和所述第二权重值;

根据与所述asn.1编码器之间的通信带宽值、所述解码长度、所述第一权重值,以及所述第二权重值,得到所述存储属性值,以及根据所述解码长度对所述编码数据进行解码得到所述初始数据。

可选的,所述编码数据是由对初始编码数据进行哈希运算后得到的初始哈希值,以及所述初始编码数据得到的,其中,所述初始编码数据为根据所述编码长度对所述上位机传输的初始数据进行asn.1编码后得到的;

所述解码模块52用于:

对所述编码数据进行asn.1解码,得到所述初始数据、所述存储属性值以及所述初始哈希值;

所述发送模块53用于:

将所述初始数据、所述存储属性值以及所述初始哈希值发送至所述待保护固件的e2rom存储器,以使得所述e2rom存储器对所述初始数据进行哈希运算,得到目标哈希值,并在所述目标哈希值与所述初始哈希值匹配成功的情况下,将所述初始数据发送至所述待保护固件的内存。

在本发明实施例中,asn.1解码器可以接收asn.1编码器传输的编码数据,其中编码数据是对待保护固件的上位机传输的初始数据进行asn.1编码得到的,该编码数据对应的编码长度至少是根据待保护固件的e2rom存储器的存储属性值确定的,在得到编码数据后,asn.1解码器可以对编码数据进行解码,并将解码得到的初始数据以及存储属性值发送至待保护固件的e2rom存储器,e2rom存储器可以根据存储属性值对初始数据进行验证,并在验证成功后,将初始数据写入固件中。

由于本发明实施例中在向待保护固件写入数据时,可以基于待保护固件中的e2rom属性值来对写入数据进行验证,并在验证成功的情况下,才将数据写入到固件内存中,因此,可以有效防止非法文件的写入。

此外,由于本发明实施例对初始数据先压缩后传输,因此,可以有效缩短传输时长。而且,本发明实施例将对初始数据的验证过程放到e2rom存储器上,并由e2rom存储器将验证通过的数据传输至固件内存,由于e2rom存储器与固件内存之间的数据传输速度要快于asn.1编码器与asn.1解码器之间通过网络传输的数据传输速度,因此,对初始数据的验证过程并不影响asn.1编码器与asn.1解码器之间的数据传输,从而可以有效缩短向待保护固件写入数据的等待时间。

对应上述固件的保护方法,本发明实施例还提供了一种固件的保护设备,图6为本发明一个实施例提供的固件的保护设备的硬件结构示意图。

该固件的保护设备可以为上述实施例提供的用于保护固件的终端设备或服务器等。

固件的保护设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对固件的保护设备中的一系列计算机可执行指令。更进一步地,处理器601可以设置为与存储器602通信,在固件的保护设备上执行存储器602中的一系列计算机可执行指令。固件的保护设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,一个或一个以上键盘606。

具体在本实施例中,固件的保护设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对应用安装包对应的服务器标识的确定设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于执行上述步骤。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

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