CN114721867A - 数据校验方法及系统 - Google Patents

数据校验方法及系统 Download PDF

Info

Publication number
CN114721867A
CN114721867A CN202210134570.4A CN202210134570A CN114721867A CN 114721867 A CN114721867 A CN 114721867A CN 202210134570 A CN202210134570 A CN 202210134570A CN 114721867 A CN114721867 A CN 114721867A
Authority
CN
China
Prior art keywords
data
calculation result
firmware
segment
data segment
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.)
Pending
Application number
CN202210134570.4A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210134570.4A priority Critical patent/CN114721867A/zh
Publication of CN114721867A publication Critical patent/CN114721867A/zh
Priority to PCT/CN2023/074190 priority patent/WO2023151501A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

公开了一种数据校验方法及系统。将从存储装置获取的第一数据中的至少部分数据划分为至少一个数据段;对至少一个数据段分别进行计算,得到至少一个计算结果;针对至少一个计算结果,分别从所获取的第一数据中查找与计算结果符合约束关系的数据,并确定所查找到的数据在第一数据中的位置;关联地保存该位置与计算结果之间的对应关系。由此,在后续对存储装置中的第一数据进行校验时,不需要再从存储装置获取所有第一数据,而只需要从存储装置获取第一数据中特定位置处的数据,因而可以提升数据校验效率。

Description

数据校验方法及系统
技术领域
本公开涉及数据保护领域,特别是涉及一种数据校验方法及系统。
背景技术
为了防止数据被篡改,需要对数据进行校验,以判断数据是否被篡改。
现有校验方案需要每次校验时从存储装置读取所有待校验的数据(例如固件数据),耗时较长。在需要频繁校验的场景下(例如固件安全校验场景),现有校验方案不能满足快速校验需求。
因此,需要一种能够提升校验效率的校验方案。
发明内容
本公开要解决的一个技术问题是提供一种能够提升校验效率的校验方案。
根据本公开的第一个方面,提供了一种数据校验方法,包括:将从存储装置获取的第一数据中的至少部分数据划分为至少一个数据段;对至少一个数据段分别进行计算,得到至少一个计算结果;针对至少一个计算结果,分别从所获取的第一数据中查找与计算结果符合约束关系的数据,并确定所查找到的数据在第一数据中的位置;关联地保存位置与计算结果之间的对应关系。
可选地,该方法还包括:从存储装置获取位置处的第二数据;基于对应关系,判断所获取的第二数据与位置对应的计算结果之间是否符合约束关系;若存在与位置对应的计算结果之间不符合约束关系的第二数据,则判定第一数据被篡改。
可选地,对至少一个数据段分别进行计算的步骤包括:使用摘要算法对至少一个数据段分别进行计算,以将第一数量个位的数据段映射为第二数量个位的数据,第二数量小于第一数量。
可选地,所查找到的数据与计算结果均为二进制数据,所查找到的数据的位的数量与计算结果的位的数量相同,约束关系为:所查找到的数据与计算结果中处于相同次序的位的值相等;或者所查找到的数据与计算结果中处于相同次序的位的值不等;或者所查找到的数据与计算结果中一部分二进制数据相等,另一部分二进制数据中处于相同次序的位的值不等。
可选地,存储装置为非易失性存储装置,第一数据为固件数据。
可选地,对至少一个数据段分别进行计算的步骤包括:使用哈希算法对至少一个数据段分别进行计算,并且/或者针对所述至少一个计算结果,分别从所获取的第一数据中查找与所述计算结果符合约束关系的数据,并确定所查找到的数据在所述第一数据中的位置的步骤包括:将所述计算结果划分为至少一个第一数据段;针对所述至少一个第一数据段,分别从所获取的第一数据中查找与所述第一数据段符合约束关系的数据,并确定所查找到的数据在所述第一数据中的位置,关联地保存所述位置与所述计算结果之间的对应关系的步骤包括:关联地保存所述数据段位置与所述第一数据段之间的对应关系。
根据本公开的第二个方面,提供了一种数据校验方法,包括:针对索引中记录的位置,从存储装置获取位置处的第二数据,索引用于记录位置与计算结果之间的对应关系,计算结果为对数据段进行计算得到的计算结果,数据段是通过划分存储装置中存储的第一数据中的至少部分数据得到的;基于对应关系,判断所获取的第二数据与位置对应的计算结果之间是否符合约束关系;若存在与位置对应的计算结果之间不符合约束关系的第二数据,则判定第一数据被篡改。
根据本公开的第三个方面,提供了一种数据校验方法,包括:从存储装置获取第一数据;生成至少一个第三数据;针对至少一个第三数据,分别从所获取的第一数据中查找与第三数据符合约束关系的数据,并确定所查找到的数据在第一数据中的位置;关联地保存位置与第三数据之间的对应关系。
可选地,该方法还包括:从存储装置获取位置处的第二数据;基于对应关系,判断所获取的第二数据与位置对应的第三数据之间是否符合约束关系;若存在与位置对应的第三数据之间不符合约束关系的第二数据,则判定第一数据被篡改。
根据本公开的第四个方面,提供了一种固件安全校验系统,包括:非易失存储器,用于存储固件数据;可信平台控制模块,用于通过访问总线从非易失存储器读取固件数据,将读取的固件数据中的至少部分固件数据划分为至少一个数据段,对至少一个数据段分别进行计算,得到至少一个计算结果,针对至少一个计算结果,分别从所读取的固件数据中查找与计算结果符合约束关系的数据,并确定所查找到的数据在固件数据中的位置,关联地保存位置与计算结果之间的对应关系。
根据本公开的第五个方面,提供了一种固件安全校验系统,包括:非易失存储器和可信平台控制模块,可信平台控制模块根据索引中记录的位置,通过访问总线从非易失存储器读取位置处的固件数据,索引用于记录位置与计算结果之间的对应关系,计算结果为对数据段进行计算得到的计算结果,数据段是通过划分非易失存储器中存储的固件数据中的至少部分固件数据得到的,可信平台控制模块还基于对应关系,判断所读取的固件数据与位置对应的计算结果之间是否符合约束关系,若存在与位置对应的计算结果之间不符合约束关系的固件数据,则判定非易失存储器中存储的固件数据被篡改。
根据本公开的第五个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面至第三方面中任一方面所述的方法。
根据本公开的第六个方面,提供了一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一方面所述的方法。
根据本公开的第七个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面至第三方面中任一方面所述的方法。
本公开在对第一数据中的至少部分数据进行划分得到至少一个数据段并对至少一个数据段分别进行计算得到至少一个计算结果后,分别从所获取的第一数据中查找与所述计算结果符合约束关系的数据,并确定所查找到的数据在所述第一数据中的位置,以将计算结果间接保存在第一数据中,使得后续对存储装置中的第一数据进行校验时,不需要再从存储装置获取所有第一数据,而只需要获取第一数据中特定位置处的数据,因此可以提升数据校验效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了本公开的数据校验方法的原理示意图。
图2示出了根据本公开一个实施例的数据校验方法的示意性流程图。
图3示出了根据本公开另一个实施例的数据校验方法的示意性流程图。
图4示出了根据本公开一个实施例的固件安全校验系统的结构示意图。
图5示出了加密计算结果、索引表项与Firmware数据区之间的映射关系。
图6示出了本公开的可信校验流程的示意性流程图。
图7示出了根据本公开一个实施例的数据校验装置的结构示意图。
图8示出了根据本公开另一个实施例的数据校验装置的结构示意图。
图9示出了根据本公开一个实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了本公开的数据校验方法的原理示意图。
如图1所示,首先将原始的数据(即未篡改的数据)划分为N个数据段,N为大于或等于1的整数;然后对这N个数据段分别进行计算,得到N个计算结果;最后将这N个计算结果分别映射到原始的数据中,得到各个计算结果在原始的数据中的映射结果。一个计算结果在原始的数据中的映射结果可以是一个连续的数据段,也可以是多个分散的数据段。
计算结果在数据中的映射规则为,计算结果与映射结果之间符合预先设定的约束关系。该约束关系可以是指计算结果与映射结果相等,也可以是指计算结果与映射结果相反。
计算结果与映射结果均可以是指二进制数据,计算结果的位(bit)的数量与映射结果的位的数量相同。计算结果与映射结果相等,是指计算结果与映射结果中处于相同次序的位的值相等。计算结果与映射结果相反,是指计算结果与映射结果中处于相同次序的位的值不等。另外,约束关系还可以是指其他关系,例如可以是计算结果与映射结果中一部分二进制数据相等,另一部分二进制数据中处于相同次序的位的值不等。
在确定了各个计算结果在原始的数据中的映射结果后,映射结果在原始的数据中的位置(即映射位置)也就确定了,相当于将计算结果间接保存在了原始的数据中。
在后续对数据进行校验时,如果数据被篡改,篡改后的数据中映射位置处的数据与计算结果之间的约束关系一般会受到破坏,因此可以通过判断映射位置处的数据与计算结果之间是否还符合约束关系,判断数据是否被篡改。由此,在对数据进行校验时,不需要再获取所有数据,而只需要获取映射位置处的数据。
映射位置处数据的数据量(位数)与计算结果相当。一般而言,要校验的数据(如固件数据)的数据长度较大(至少为M bit级别),因此对数据段进行计算得到的计算结果的数据长度越小,数据校验时需要获取的数据量也就越少,数据校验效率也就越高。因此,对数据段进行计算时所采取的算法可以优选是能够将长度较大(如大于第一阈值)的数据映射为长度较小(如小于第二阈值)的数据的映射算法,如摘要算法。摘要算法也可称为数据摘要算法或消息摘要算法,是指将任意长度的输入揉和而产生长度固定的伪随机输出的算法,例如可以是SHA256算法。其中,数据长度是指数据的bit数(位数)。对数据段进行计算所采取的算法还可以是其他多种类型的算法,如加密算法或人为设定的其他算法。
以要校验的数据为固件数据为例,假设固件数据大小为10M字节(byte),即80Mbit。传统安全校验方式读取的数据量为80M bit,假设将固件数据分为2个数据段,使用SHA256算法对每个数据段进行哈希运算得到的计算结果为256bit。那么依据本公开的方案,安全校验读取的数据量为2*256bit=512bit,读取数据量大约为传统方案的0.0006%,极大提高了安全校验效率。而固件大小一般在几十M甚至上百M,且服务器中存在多个固件,这种情况下效率的提升效果更加明显。
下面就本公开涉及的细节作进一步说明。
图2示出了根据本公开一个实施例的数据校验方法的示意性流程图。图2所示方法可以由数据校验装置执行,例如可以由用于对固件数据进行安全校验的可信平台控制模块(Trusted Platform Control Module,TPCM)执行。
参见图2,在步骤S210,将从存储装置获取的第一数据中的至少部分数据划分为至少一个数据段。
第一数据是指存储装置中需要进行防篡改校验的数据。至少部分数据可以是指全部的第一数据,也可以是第一数据中的部分数据。作为示例,存储装置可以是非易失性存储器(如Flash),第一数据可以是非易失性存储器中存储的固件数据。
在步骤S220,对至少一个数据段分别进行计算,得到至少一个计算结果。
对至少一个数据段分别进行计算,是指利用算法改变数据段原有的信息数据,得到不同于数据段的计算结果。更进一步地,是指利用算法将长度较大的数据计算为(或者说映射为)长度较小的数据。
对数据段执行的计算可以称为加密计算,所使用的算法可以称为加密算法,所得到的计算结果可以称为加密结果。需要说明的是,本公开述及的加密,强调的是加密结果改变了数据段原有的数据,至于加密结果是否支持解密,即所使用的加密算法是否支持将加密结果还原为数据段,本公开不做要求。
根据上文对本公开的数据校验方法的原理性描述可知,可以使用摘要算法对数据段进行计算,以将第一数量个位(bit)的数据段映射为第二数量个位(bit)的数据,第二数量小于第一数量。以摘要算法为SHA256散列算法为例,SHA256散列算法使得可以将任意长度的数据段映射为长度为256位的计算结果,计算结果的数据长度短,且计算结果还具有较好的随机性。
在步骤S230,针对至少一个计算结果,分别从所获取的第一数据中查找与计算结果符合约束关系的数据,并确定所查找到的数据在第一数据中的位置。
关于约束关系可以参见上文相关描述,此处不再赘述。通过在第一数据中查找与计算结果符合约束关系的数据,并确定所查找到的数据在第一数据中的位置,可以将计算结果映射到第一数据中,也即将计算结果保存在第一数据中。
每个数据段对应一个计算结果。每个计算结果在第一数据中可以存在零个、一个或者多个与计算结果符合约束关系的数据。在从所获取的第一数据中查找与计算结果符合约束关系的数据时,如果第一数据中不存在与计算结果符合约束关系的数据,可以忽略该计算结果,即不将该计算结果映射到第一数据中,也即第一数据中不存在与该计算结果对应的映射位置。如果第一数据中存在多个与计算结果符合约束关系的数据,则可以选取其中一个数据,将选取的这个数据的位置作为该计算结果在第一数据中的映射位置,也可以选取多个数据,将选取的这多个数据的位置均作为该计算结果在第一数据中的映射位置。因此,一个计算结果可以对应零个、一个或多个位置。
计算结果的位数较少(如小于或等于8bit)时,在第一数据中找到与整个计算结果符合约束关系)的连续数据的概率较大,可以将计算结果直接保存在第一数据中。此时,计算结果在第一数据中的位置是一串连续的位置。
计算结果的位数较多(如大于8bit,例如在上述采用SHA256算法的情况下每个计算结果的位数是256bit)时,在第一数据中直接找到与整个计算结果符合约束关系的连续数据的概率较小,即第一数据中不存在与整个计算结果对应的映射位置。为了能够将计算结果成功保存(即映射)到第一数据中,本公开提出,可以对计算结果进行分段处理,在第一数据中查找与各个分段符合约束关系的数据。
具体地,可以将计算结果划分为至少一个第一数据段,针对所述至少一个第一数据段,分别从所获取的第一数据中查找与第一数据段符合约束关系的第二数据段,并确定所查找到的第二数据段在第一数据中的位置。此时,一个计算结果在第一数据中的映射位置包括多个数据段位置,这多个数据段位置可以是多个分散的位置。每个数据段位置对应部分计算结果(即第一数据段)。由此通过划分计算结果可以将计算结果间接保存到第一数据中。
第一数据段的尺寸(即位数)可以任意设置。对计算结果进行分段的位数越少,在第一数据中找到分段数据(即第一数据段)的概率越大,但是需要记录的位置也就越多,即用于记录位置的索引表也就更长。一般情况下对于8bit及以下位数的任意二进制数据,可以认为有极大概率甚至一定能在要校验的数据(如固件数据)中找到与该二进制数据相同的数据。因此,第一数据段的尺寸可以是小于或等于8bit。
在步骤S240,关联地保存位置与计算结果之间的对应关系。
如上文所述,一个计算结果可以划分为多个第一数据段,一个计算结果在第一数据中的映射位置可以包括多个数据段位置,每个数据段位置对应一个第一数据段。由此,针对每个计算结果,可以关联地保存数据段位置与第一数据段之间的对应关系。与第一数据段对应的数据段位置,是指第一数据中与第一数据段符合约束关系的第二数据段在第一数据中的位置,该位置可以表征的是数据的逻辑位置(如数据在第一数据中的偏移),而非数据的物理存储位置。
综上,每个计算结果可以对应一串连续的位置,也可以对应多个分散的位置。也即,每个位置可以对应整个计算结果,也可以对应计算结果中的一部分(即第一数据段)。
位置与计算结果之间的这种对应关系可以记录在一个索引(表)中。以计算结果包括多个第一数据段为例,在确定了每个第一数据段在第一数据中的位置后,可以在针对该计算结果生成的索引表中记录各个第一数据段与位置之间的对应关系。
在关联地保存了位置与计算结果之间的对应关系后,在后续需要对第一数据进行校验时,不需要从存储装置获取全部第一数据,而只需要根据保存的位置与计算结果之间的对应关系,从存储装置获取第一数据中位置处的第二数据。然后基于对应关系,判断所获取的第二数据与位置对应的计算结果之间是否符合约束关系。若存在与位置对应的计算结果之间不符合约束关系的第二数据,则可以判定第一数据被篡改。
图3示出了根据本公开另一个实施例的数据校验方法的示意性流程图。图3所示方法可以由数据校验装置执行,例如可以由用于对固件数据进行安全校验的可信平台控制模块(Trusted Platform Control Module,TPCM)执行。
参见图3,在步骤S310,从存储装置获取第一数据。
在步骤S320,生成至少一个第三数据。
在步骤S330,针对至少一个第三数据,分别从所获取的所述第一数据中查找与第三数据符合约束关系的数据,并确定所查找到的数据在第一数据中的位置。
在步骤S340,关联地保存位置与第三数据之间的对应关系。
与图2所示方法不同之处在于,在本实施例中,可以利用诸如随机算法随机生成一个或多个第三数据。即,第三数据的生成可以不依赖于第一数据。
与图2所示的校验方法类似,在后续需要对第一数据进行校验时,不需要从存储装置获取全部第一数据,而只需要根据保存的位置与第三数据之间的对应关系,从存储装置获取位置处的第二数据(即部分第一数据)。然后基于对应关系,判断所获取的第二数据与位置对应的第三数据之间是否符合约束关系。若存在与位置对应的第三数据之间不符合约束关系的第二数据,则可以判定第一数据被篡改。
为了保证能够在第一数据中查找到与第三数据符合约束关系的数据,可以将第三数据划分为多个第三数据段,从所获取的所述第一数据中查找与各个第三数据段符合约束关系的第四数据段,并确定所查找到的第四数据段在第一数据中的数据段位置。由此,与上文述及的第二数据相似,第三数据在第一数据中的映射位置也可以包括多个数据段位置,这多个位置之间可以是分散的。第三数据段的尺寸可以任意设置,如可以是小于或等于8bit。
应用例
下面就本公开应用于固件校验场景下的具体实现流程做进一步描述。
TPCM的重要的功能是对系统中各类固件(Firmware)的安全校验,以防止固件被篡改造成安全隐患。系统中的固件可以包括但不限于BIOSFirmware,BMC Firmware,OptionROM Firmware等。其中,BIOS是指基本输入输出系统(Basic Input OutputSystem)。BMC是指基板管理控制器(Baseboard Management Controller)。OptionROM是指选项ROM。
固件校验是通过SPI等总线读取Firmware后执行的,每次系统启动都需要读取各类固件信息,无疑增加了系统的启动时间。本方案在保证安全的前提下,可以极大降低固件的校验时间,从而在保证整个系统的安全性的前提下,提高系统启动效率。
可信芯片(即TPCM)与Flash等非易失存储之间通过访问总线互联。可信芯片每次校验Flash等非易失存储中的Firmware数据区时,都会将所有Firmware数据过来进行校验。Firmware数据量一般几十M byte到上百M byte,而Flash等非易失存储访问总线通常为SPI,IIC等低速总线,因而固件安全校验增大了整个系统的启动时间。在云计算场景下,与实例快速交付的需求相悖。
行业内采用TPCM校验固件,每次校验都完整的读取固件所有数据,耗时较长,服务器中存在多个固件,这种情况下耗时问题尤其明显。
固件安全校验系统可以包括非易失存储器(如Flash)和可信芯片。非易失存储器用于存储Firmware(BIOS、BMC等软件程序)。可信芯片用于校验Firmware数据是否被篡改。
可信芯片在首次执行校验时可以通过访问总线从非易失存储器读取所有待校验的固件数据,并按照上文图2所示方法得到用于表征位置与计算结果之间的对应关系的索引。
具体地,可信芯片可以通过访问总线从非易失存储器读取所述固件数据,将读取的固件数据中的至少部分固件数据划分为至少一个数据段,对至少一个数据段分别进行计算,得到至少一个计算结果,针对至少一个计算结果,分别从所读取的固件数据中查找与计算结果符合约束关系的数据,并确定所查找到的数据在固件数据中的位置,关联地保存位置与计算结果之间的对应关系。
可信芯片在后续执行校验时无需再从非易失存储器读取所有固件数据,而是可以根据索引中记录的位置,读取部分固件数据即可实现校验。
具体地,可信芯片可以根据索引中记录的位置,通过访问总线从非易失存储器读取位置处的固件数据,索引用于记录位置与计算结果之间的对应关系,计算结果为对数据段进行计算得到的计算结果,数据段是通过划分非易失存储器中存储的固件数据中的至少部分固件数据得到的。可信芯片还可以基于对应关系,判断所读取的固件数据与位置对应的计算结果之间是否符合约束关系,若存在与位置对应的计算结果之间不符合约束关系的固件数据,则判定非易失存储器中存储的固件数据被篡改。
图4示出了根据本公开一个实施例的固件校验系统的结构示意图。
图5示出了加密计算结果、索引表项与Firmware数据区之间的映射关系。
图6示出了本公开的可信校验流程的示意性流程图。
参见图4至图6,Flash等非易失存储器中包括Firmware数据区。可信芯片包括Firmware校验装置,Firmware校验装置包括读取数据模块、加密计算模块、查找模块、索引表模块等。二者通过访问总线(通常为SPI,IIC等总线)连接。
可信芯片可以通过访问访问总线读取Flash等非易失存储中的数据。可信芯片在首次进行Firmware安全校验时,会读取全部Firmware数据。
之后将读取的数据分为若干数据段,即图中示出的数据段1、数据段2……数据段N。并对这若干个数据段分别进行加密计算。加密计算模块将计算结果交给查找模块。查找模块在读取模块中保存的原始数据中找到结果中的数据,并记录找到的数据在原始数据中的偏移,最终将所有偏移量汇总到索引表模块,生成索引表项。
加密计算可以采用哈希算法(SHA256等),因此计算结果长度远小于Firmware数据区长度。索引表中记录了每段数据段的索引表,如图1中索引表表项1记录了数据段1的索引,索引表N记录了数据段N的索引,以此类推。
对每个数据段的加密结果可以进行分段,由此加密计算结果可以包含若干数据(如数据1,数据2,……,数据N),索引表项包含若干索引(索引1,索引2,……,索引N),Firmware数据区中包含若干数据(数据1,数据2,……,数据N)。其中加密计算结果中的每个数据(数据1,数据2,……,数据N)与Firmware数据区中的每个数据(数据1,数据2,……,数据N)是一样的。由此,可信芯片将加密计算结果间接地保存到了Flash等非易失存储,且不改变Flash等非易失存储中的原始数据。索引表项记录了加密计算结果在Firmware数据区中的偏移。即可信芯片可以通过索引表项中的索引2(对应Firmware数据区中的偏移2)读到Firmware数据区中的数据2,而Firmware数据区中的数据2和加密计算结果中的数据2是一样的。
基于此可信芯片只有在第一次对Firmware数据区校验时读取全部数据,并得出索引表项。在后续的校验中无需读取全部数据,只需读取索引表项中记录的索引偏移位置的数据,对比读取的数据与首次校验得到的加密计算结果是否相等即可。由此极大地减少了数据读取量,从而降低安全校验耗时。由于该方案中加密计算结果是随机的,因而索引表项中的索引也随机分布在Firmware数据区,这种随机性保障了该方案可以确认Firmware数据是否被篡改。
该方案中Firmware数据区的数据段数量可以是1,即可以对整个Firmware数据区进行加密计算,然后得出一条索引表项。Firmware数据区的数据段数量也可以大于1。
该方案中索引表的索引表项中记录的偏移可以集中在某个数据段内,也可以分散到多个数据段,例如索引表项1中的索引1可以位于Firmware数据区的数据段2上,索引2可以位于Firmware数据区的数据段1上。再例如,索引表项2中的所有索引可以都位于Firmware数据区的数据段2上。
假设Firmware数据区长度为n bit,分为m个数据段,采用SHA256加密算法,那么传统安全校验方式读取的数据量为n bit,本方案安全校验读取的数据量为m*256bit。
一般估计大小在几十M byte,假设固件大小是10M byte,即80M bit,传统安全校验方式读取的数据量为80M bit,本方案中假设Firmware数据区分为2段,安全校验读取的数据量为2*256bit=512bit,读取数据量大约为传统方案的0.0006%,极大提高了安全校验效率。而固件大小一般在几十M甚至上百M,且服务器中存在多个固件,这种情况下效率的提升效果更加明显。
综上,本方案将加密计算结果间接保存到Flash数据区,减少对Flash数据的读取降低了固件安全校验的耗时。具体地,本方案首次固件安全校验时建立索引表,记录加密计算结果到Flash数据的映射,相当于将加密计算间接结果保存到Flash数据区;非首次固件安全校验只读取索引表中记录偏移的数据,极大降低数据读取量;加密算法可以采用哈希算法,随机性大,数据长度短,保障了固件校验安全的可靠性,以及读取数据量。
本公开的数据校验方法还可以实现为一种数据校验装置。数据校验装置的功能单元可以由实现本公开原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,本公开结合图7、图8所描述的功能单元可以组合起来或者划分成子单元,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能单元的任何可能的组合、或者划分、或者更进一步的限定。
下面就数据校验装置可以具有的功能单元以及各功能单元可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
图7示出了根据本公开一个实施例的数据校验装置的结构示意图。
参见图7,数据校验装置700包括划分模块710、计算模块720、查找模块730以及保存模块740。
划分模块710用于将从存储装置获取的第一数据中的至少部分数据划分为至少一个数据段。计算模块720对至少一个数据段分别进行计算,得到至少一个计算结果。查找模块730针对至少一个计算结果,分别从所获取的第一数据中查找与计算结果符合约束关系的数据,并确定所查找到的数据在第一数据中的位置。保存模块740关联地保存位置与计算结果之间的对应关系。
数据校验装置700还可以包括获取模块和判断模块。获取模块用于从存储装置获取位置处的第二数据。判断模块用于基于对应关系,判断所获取的第二数据与位置对应的计算结果之间是否符合约束关系。若存在与位置对应的计算结果之间不符合约束关系的第二数据,则判断模块可以判定第一数据被篡改。
图8示出了根据本公开另一个实施例的数据校验装置的结构示意图。
参见图8,数据校验装置800包括获取模块810、生成模块820、查找模块830以及保存模块840。
获取模块810从存储装置获取第一数据。生成模块820生成至少一个第三数据;查找模块830针对至少一个第三数据,分别从所获取的第一数据中查找与第三数据符合约束关系的数据,并确定所查找到的数据在第一数据中的位置。保存模块840关联地保存位置与第三数据之间的对应关系。
数据校验装置800还可以包括获取模块和判断模块。获取模块用于从存储装置获取位置处的第二数据。判断模块用于基于对应关系,判断所获取的第二数据与位置对应的第三数据之间是否符合约束关系。若存在与位置对应的第三数据之间不符合约束关系的第二数据,则判断模块可以判定第一数据被篡改。
图9示出了根据本发明一实施例可用于实现上述数据校验方法的计算设备的结构示意图。
参见图9,计算设备900包括存储器910和处理器920。
处理器920可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器920可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器920可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器910可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器920或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器910可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器910可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器910上存储有可执行代码,当可执行代码被处理器920处理时,可以使处理器920执行上文述及的数据校验方法。
上文中已经参考附图详细描述了根据本发明的数据校验方法、系统、装置以及设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种数据校验方法,包括:
将从存储装置获取的第一数据中的至少部分数据划分为至少一个数据段;
对所述至少一个数据段分别进行计算,得到至少一个计算结果;
针对所述至少一个计算结果,分别从所获取的第一数据中查找与所述计算结果符合约束关系的数据,并确定所查找到的数据在所述第一数据中的位置;
关联地保存所述位置与所述计算结果之间的对应关系。
2.根据权利要求1所述的方法,还包括:
从所述存储装置获取所述位置处的第二数据;
基于所述对应关系,判断所获取的所述第二数据与所述位置对应的计算结果之间是否符合所述约束关系;
若存在与所述位置对应的计算结果之间不符合所述约束关系的第二数据,则判定所述第一数据被篡改。
3.根据权利要求1所述的方法,其中,对所述至少一个数据段分别进行计算的步骤包括:使用摘要算法对所述至少一个数据段分别进行计算,以将第一数量个位的所述数据段映射为第二数量个位的数据,所述第二数量小于所述第一数量。
4.根据权利要求1所述的方法,其中,所查找到的数据与所述计算结果均为二进制数据,所查找到的数据的位的数量与所述计算结果的位的数量相同,所述约束关系为:
所查找到的数据与所述计算结果中处于相同次序的位的值相等;或者
所查找到的数据与所述计算结果中处于相同次序的位的值不等;或者
所查找到的数据与所述计算结果中一部分二进制数据相等,另一部分二进制数据中处于相同次序的位的值不等。
5.根据权利要求1所述的方法,其中,
所述存储装置为非易失性存储装置,所述第一数据为固件数据。
6.根据权利要求1所述的方法,其中,
对所述至少一个数据段分别进行计算的步骤包括:使用哈希算法对所述至少一个数据段分别进行计算,并且/或者
针对所述至少一个计算结果,分别从所获取的第一数据中查找与所述计算结果符合约束关系的数据,并确定所查找到的数据在所述第一数据中的位置的步骤包括:将所述计算结果划分为至少一个第一数据段;针对所述至少一个第一数据段,分别从所获取的第一数据中查找与所述第一数据段符合约束关系的第二数据段,并确定所查找到的第二数据段在所述第一数据中的数据段位置,
关联地保存所述位置与所述计算结果之间的对应关系的步骤包括:关联地保存所述数据段位置与所述第一数据段之间的对应关系。
7.一种数据校验方法,包括:
针对索引中记录的位置,从存储装置获取所述位置处的第二数据,所述索引用于记录所述位置与计算结果之间的对应关系,所述计算结果为对数据段进行计算得到的计算结果,所述数据段是通过划分所述存储装置中存储的第一数据中的至少部分数据得到的;
基于所述对应关系,判断所获取的所述第二数据与所述位置对应的计算结果之间是否符合所述约束关系;
若存在与所述位置对应的计算结果之间不符合所述约束关系的第二数据,则判定所述第一数据被篡改。
8.一种数据校验方法,包括:
从存储装置获取第一数据;
生成至少一个第三数据;
针对所述至少一个第三数据,分别从所获取的所述第一数据中查找与所述第三数据符合约束关系的数据,并确定所查找到的数据在所述第一数据中的位置;
关联地保存所述位置与所述第三数据之间的对应关系。
9.根据权利要求8所述的方法,还包括:
从所述存储装置获取所述位置处的第二数据;
基于所述对应关系,判断所获取的所述第二数据与所述位置对应的第三数据之间是否符合所述约束关系;
若存在与所述位置对应的第三数据之间不符合所述约束关系的第二数据,则判定所述第一数据被篡改。
10.一种固件安全校验系统,包括:
非易失存储器,用于存储固件数据;
可信平台控制模块,用于通过访问总线从所述非易失存储器读取所述固件数据,将读取的所述固件数据中的至少部分固件数据划分为至少一个数据段,对所述至少一个数据段分别进行计算,得到至少一个计算结果,针对所述至少一个计算结果,分别从所读取的固件数据中查找与所述计算结果符合约束关系的数据,并确定所查找到的数据在所述固件数据中的位置,关联地保存所述位置与所述计算结果之间的对应关系。
11.一种固件安全校验系统,包括:非易失存储器和可信平台控制模块,
所述可信平台控制模块根据索引中记录的位置,通过访问总线从所述非易失存储器读取所述位置处的固件数据,所述索引用于记录所述位置与计算结果之间的对应关系,所述计算结果为对数据段进行计算得到的计算结果,所述数据段是通过划分所述非易失存储器中存储的固件数据中的至少部分固件数据得到的,
所述可信平台控制模块还基于所述对应关系,判断所读取的固件数据与所述位置对应的计算结果之间是否符合所述约束关系,若存在与所述位置对应的计算结果之间不符合所述约束关系的固件数据,则判定所述非易失存储器中存储的固件数据被篡改。
12.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至9中任何一项所述的方法。
13.一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至9中任何一项所述的方法。
14.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至9中任何一项所述的方法。
CN202210134570.4A 2022-02-14 2022-02-14 数据校验方法及系统 Pending CN114721867A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210134570.4A CN114721867A (zh) 2022-02-14 2022-02-14 数据校验方法及系统
PCT/CN2023/074190 WO2023151501A1 (zh) 2022-02-14 2023-02-02 数据校验方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210134570.4A CN114721867A (zh) 2022-02-14 2022-02-14 数据校验方法及系统

Publications (1)

Publication Number Publication Date
CN114721867A true CN114721867A (zh) 2022-07-08

Family

ID=82235177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210134570.4A Pending CN114721867A (zh) 2022-02-14 2022-02-14 数据校验方法及系统

Country Status (2)

Country Link
CN (1) CN114721867A (zh)
WO (1) WO2023151501A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023151501A1 (zh) * 2022-02-14 2023-08-17 阿里巴巴(中国)有限公司 数据校验方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881210B (zh) * 2023-09-08 2023-11-17 四维世景科技(北京)有限公司 一种数据校验的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100562857C (zh) * 2007-12-14 2009-11-25 华为技术有限公司 校验数据的方法和装置
CN105279048B (zh) * 2015-12-01 2018-04-13 浪潮(北京)电子信息产业有限公司 一种数据恢复方法及装置
CN108573172B (zh) * 2017-03-08 2021-03-12 杭州海康威视数字技术股份有限公司 一种数据校验、存储方法及装置
CN109492436A (zh) * 2018-11-29 2019-03-19 深圳市网心科技有限公司 一种文件校验方法及相关装置
CN114721867A (zh) * 2022-02-14 2022-07-08 阿里巴巴(中国)有限公司 数据校验方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023151501A1 (zh) * 2022-02-14 2023-08-17 阿里巴巴(中国)有限公司 数据校验方法及系统

Also Published As

Publication number Publication date
WO2023151501A1 (zh) 2023-08-17

Similar Documents

Publication Publication Date Title
CN108446407B (zh) 基于区块链的数据库审计方法和装置
WO2023151501A1 (zh) 数据校验方法及系统
US9740639B2 (en) Map-based rapid data encryption policy compliance
US11200337B2 (en) System and method for user data isolation
US10789062B1 (en) System and method for dynamic data deduplication for firmware updates
US8689279B2 (en) Encrypted chunk-based rapid data encryption policy compliance
US8601358B2 (en) Buffer transfer check on variable length data
WO2016173267A1 (zh) 一种完整性校验方法和装置
CN112347007B (zh) 闪存数据保护方法、装置、电子设备及存储介质
CN109558752B (zh) 主机白名单机制下一种快速实现文件鉴别的方法
CN111273862A (zh) 数据存储方法及其装置、可读介质和系统
CN116049318A (zh) 一种数据存储方法及通信装置
US11699209B2 (en) Method and apparatus for embedding and extracting digital watermarking for numerical data
CN110765493B (zh) 一种基于Linux预链接的文件基线防御方法、装置及存储设备
WO2021139443A1 (zh) 数据访问控制方法及装置、数据访问设备及系统
CN107943415A (zh) 基于fat文件系统的查找空闲簇的方法和系统
CN111026720B (zh) 一种文件处理方法、系统及相关设备
CN114048485A (zh) 一种针对Docker容器内进程代码段完整性动态监测方法
CN113159952A (zh) 基于区块链存储数字资产的方法、系统、设备及存储介质
CN106911678B (zh) 一种病毒检测方法及装置
US20240078348A1 (en) System for forensic tracing of memory device content erasure and tampering
JP7012922B2 (ja) 認証子管理装置、認証子管理プログラム及び認証子管理方法
US11100088B1 (en) Bulk file verification
CN117473020B (zh) 数据存取方法、系统及计算机存储介质和终端设备
CN112162876A (zh) 一种元数据修复方法、装置、设备及介质

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