CN112989430A - 完整性校验方法、装置、终端设备及验证服务器 - Google Patents
完整性校验方法、装置、终端设备及验证服务器 Download PDFInfo
- Publication number
- CN112989430A CN112989430A CN201911284197.5A CN201911284197A CN112989430A CN 112989430 A CN112989430 A CN 112989430A CN 201911284197 A CN201911284197 A CN 201911284197A CN 112989430 A CN112989430 A CN 112989430A
- Authority
- CN
- China
- Prior art keywords
- file
- root node
- hash tree
- target
- integrity
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请适用于终端技术领域,尤其涉及完整性校验方法、装置、终端设备及验证服务器。所述方法获取文件服务器发送的待校验文件和待校验文件的完整性校验信息,完整性校验信息包括利用第一签名私钥对目标哈希树的目标根节点签名得到的根节点签名信息、目标哈希树中与待校验文件相关的子节点以及与第一签名私钥对应的第一签名公钥,目标哈希树为根据文件服务器中的所有文件构建的哈希树;利用第一签名公钥对根节点签名信息进行验证;当根节点签名信息验证通过时,根据待校验文件和子节点构建目标哈希树对应的当前根节点,并根据当前根节点和目标根节点校验待校验文件的完整性,解决目前需要对所有文件分别进行签名,造成计算量大的问题。
Description
技术领域
本申请属于终端技术领域,尤其涉及完整性校验方法、装置、终端设备、验证服务器及计算机可读存储介质。
背景技术
完整性校验是指校验文件的准确性,以检测文件是否被非法篡改的技术手段。随着网络技术的不断发展,终端设备下载或应用的文件容易被非法篡改,因此,如何校验终端设备的下载文件或应用文件的完整性成为本领域技术人员亟待解决的问题。
现有技术中,可以通过事先对所有文件分别计算哈希值,并分别对各哈希值进行签名保存,以根据保存的各签名结果来进行文件完整性的校验。这种对所有文件分别进行签名的方式需要执行大量的签名操作,极大地增加了计算量。
发明内容
本申请实施例提供了一种完整性校验方法、装置、终端设备、验证服务器及计算机可读存储介质,可以解决现有的完整性校验中需要对所有文件分别进行签名,造成计算量大的问题。
第一方面,本申请实施例提供了一种完整性校验方法,应用于终端设备,所述完整性校验方法包括:
获取文件服务器发送的待校验文件和所述待校验文件的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对目标哈希树的目标根节点签名得到的根节点签名信息、所述目标哈希树中与所述待校验文件相关的子节点以及与所述第一签名私钥对应的第一签名公钥,所述目标哈希树为根据所述文件服务器中的所有文件构建的哈希树;
利用所述第一签名公钥对所述根节点签名信息进行验证;
当所述根节点签名信息验证通过时,根据所述待校验文件和所述子节点构建所述目标哈希树对应的当前根节点;
根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性。
本申请实施例,通过使用哈希树及哈希树根节点签名的方式来对终端设备的下载文件进行完整性校验,使得仅需对根节点的签名即可完成完整性校验,而不需要对每一个文件进行签名,极大地减少了签名的计算量,缓解了计算负担。
在第一方面的一种可能的实现方式中,在所述根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性之后,包括:
获取所述待校验文件的目标版本校验信息,所述目标版本校验信息为根据所述待校验文件的目标文件版本生成的版本校验信息;
根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性。
在此,通过将完整性校验和版本合法性校验分开请求的方式,使得可以通过密码学安全的方式来验证待校验文件的真实版本,以降低文件替换和重放攻击的风险。
可选地,所述目标版本校验信息为根据所述目标文件版本和所述终端设备的设备标识生成的变色龙签名信息;
所述根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性包括:
根据所述终端设备对应的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述当前文件版本的第一变色龙哈希值;
利用所述变色龙签名信息中的第二签名公钥计算所述变色龙签名信息对应的第二变色龙哈希值;
根据所述第一变色龙哈希值和所述第二变色龙哈希值校验所述待校验文件的版本合法性。
应理解,通过变色龙签名算法对目标文件版本进行签名,以利用变色龙签名的不可否认性、非交互性以及不可传递的特点保证版本信息的唯一合法性,降低泄漏风险。
具体地,在所述根据所述终端设备对应的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述当前文件版本的第一变色龙哈希值之前,包括:根据所述设备标识获取所述终端设备对应的设备私钥。
示例的,本申请实施例也可以通过生成版本哈希树以及对版本哈希树的根节点进行签名来生成待校验文件对应的目标版本校验信息。
在第一方面的一种可能的实现方式中,所述获取所述待校验文件的目标版本校验信息包括:
获取验证服务器发送的所述待校验文件的目标版本校验信息,所述目标版本校验信息为所述验证服务器根据所述文件服务器发送的所述待校验文件的目标文件版本和接收所述待校验文件的终端设备的设备标识生成的版本校验信息。
在此,通过验证服务器生成待校验文件的目标版本校验信息可实现风险分担,从而降低目标版本校验信息被攻击的风险。
具体地,所述目标哈希树为三叉哈希树,以通过三叉哈希树来减少哈希树的层次,减少完整性校验所需的完整性校验信息,减少带宽占用。
第二方面,本申请实施例提供了一种完整性校验方法,应用于验证服务器,所述完整性校验方法包括:
获取各终端设备的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对初始哈希树的初始根节点签名得到的初始根节点签名信息以及与所述第一签名私钥对应的第一签名公钥;
利用所述第一签名公钥对所述初始根节点签名信息进行验证;
当所述初始根节点签名信息验证通过时,根据所述初始根节点构建目标哈希树;
获取本地哈希树的本地根节点和所述目标哈希树的目标根节点;
根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性。
本申请实施例,通过使用哈希树及哈希树根节点签名的方式来对终端设备进行完整性校验,使得终端设备和验证服务器均仅需要对相关哈希树的根节点进行签名,而不需要对每一个文件进行签名,极大地减少了终端设备、验证服务器的计算量,缓解了终端设备、验证服务器的计算负担。
可选地,所述初始哈希树包括一级初始哈希树和二级初始哈希树,所述初始根节点为所述二级初始哈希树的根节点;
所述一级初始哈希树为各所述终端设备根据各所述终端设备中的各目标文件构建的哈希树;
所述二级初始哈希树为各聚合网关根据各所述聚合网关对应的各一级初始哈希树构建的哈希树。
具体地,所述聚合网关构建所述二级初始哈希树的过程包括:
获取各所述终端设备发送的第二签名公钥;
分别利用各所述第二签名公钥对各所述终端设备发送的一级根节点签名信息进行验证;
当各所述一级根节点签名信息验证通过时,根据各所述一级初始哈希树的一级初始根节点构建所述二级初始哈希树。
需要说明的是,在构建一级初始哈希树时,终端设备可以首先根据第一预设排序方式对终端设备中的目标文件进行排序,然后可以根据排序后的目标文件来构建终端设备对应的一级初始哈希树的各叶子节点。在此,所述第一预设排序方式可以为按照文件名f_req的首字母升序(a→z)的排序方式,或者可以为按照文件名f_req的首字母降序(z→a)的排序方式。
示例的,在构建二级初始哈希树时,聚合网关可以首先根据第二预设排序方式对聚合网关对应的终端设备进行排序,然后可以根据排序后的终端设备对应的一级初始哈希树的一级初始根节点构建聚合网关对应的二级初始哈希树。在此,所述第二预设排序方式可以为按照终端设备的设备标识(如ID号)由小至大的排序方式,或者可以为按照终端设备的设备标识(如ID号)由大至小的排序方式。
在此,通过将大多数的签名验证过程转移至聚合网关,可以有效减少验证服务器的计算量,缓解验证服务器的计算负担。
可选地,在所述获取本地哈希树的本地根节点之前包括:
获取所述文件服务器发送的请求文件,所述请求文件为各所述终端设备从所述文件服务器中请求过的文件;
根据所述请求文件构建各所述终端设备对应的一级本地哈希树,并获取各所述一级本地哈希树的一级本地根节点;
根据各所述一级本地根节点构建各所述聚合网关对应的二级本地哈希树,并获取各所述二级本地哈希树的二级本地根节点;
根据各所述二级本地根节点构建所述本地哈希树。
应理解,在构建终端设备对应的一级本地哈希树时,可以根据前述一级初始哈希树的构建过程中所使用的第一预设排序方式对终端设备对应的请求文件进行排序,并可以根据排序后的请求文件构建终端设备对应的一级本地哈希树。类似地,在构建聚合网关对应的二级本地哈希树时,可以根据前述二级初始哈希树的构建过程中所使用的第二预设排序方式对聚合网关对应的终端设备进行排序,并可以根据排序后的终端设备对应的一级本地哈希树的一级本地根节点构建聚合网关对应的二级本地哈希树,即在本地哈希树和目标哈希树的构建过程中,通过使用相同的预设排序方式进行各级根节点的排序,避免排序不同而带来的哈希值不同,影响完整性校验结果。
可选地,所述根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性包括:
若所述本地根节点与所述目标根节点相同,则得到所述终端设备的完整性校验通过的校验结果;
若所述本地根节点与所述目标根节点不相同,则得到所述终端设备的完整性校验不通过的校验结果,并比对所述本地哈希树和所述目标哈希树;
根据所述本地哈希树和所述目标哈希树的比对结果,确定完整性校验不通过的目标终端设备。
具体地,所述本地哈希树和所述目标哈希树均为三叉哈希树,以通过三叉哈希树减少哈希树的层次,减少签名计算量,同时可方便快速定位完整性遭破坏的终端设备。
第三方面,本申请实施例提供了一种完整性校验装置,应用于终端设备,所述完整性校验装置包括:
文件获取模块,用于获取文件服务器发送的待校验文件和所述待校验文件的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对目标哈希树的目标根节点签名得到的根节点签名信息、所述目标哈希树中与所述待校验文件相关的子节点以及与所述第一签名私钥对应的第一签名公钥,所述目标哈希树为根据所述文件服务器中的所有文件构建的哈希树;
签名信息校验模块,用于利用所述第一签名公钥对所述根节点签名信息进行验证;
当前根节点构建模块,用于当所述根节点签名信息验证通过时,根据所述待校验文件和所述子节点构建所述目标哈希树对应的当前根节点;
完整性校验模块,用于根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性。
可选地,所述完整性校验装置还包括:
版本校验信息获取模块,用于获取所述待校验文件的目标版本校验信息,所述目标版本校验信息为根据所述待校验文件的目标文件版本生成的版本校验信息;
版本合法性校验模块,用于根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性。
在第三方面的一种可能的实现方式中,所述目标版本校验信息为根据所述目标文件版本和所述终端设备的设备标识生成的变色龙签名信息;
所述版本合法性校验模块包括:
第一哈希值计算单元,用于根据所述终端设备对应的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述当前文件版本的第一变色龙哈希值;
第二哈希值计算单元,用于利用所述变色龙签名信息中的第二签名公钥计算所述变色龙签名信息对应的第二变色龙哈希值;
版本合法性校验单元,用于根据所述第一变色龙哈希值和所述第二变色龙哈希值校验所述待校验文件的版本合法性。
示例的,所述完整性校验装置还包括:
设备私钥获取模块,用于根据所述设备标识获取所述终端设备对应的设备私钥。
可选地,所述版本校验信息获取模块,具体用于获取验证服务器发送的所述待校验文件的目标版本校验信息,所述目标版本校验信息为所述验证服务器根据所述文件服务器发送的所述待校验文件的目标文件版本和接收所述待校验文件的终端设备的设备标识生成的版本校验信息。
具体地,所述目标哈希树为三叉哈希树。
第四方面,本申请实施例提供了一种完整性校验装置,应用于验证服务器,所述完整性校验装置包括:
完整性信息获取模块,用于获取各终端设备的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对初始哈希树的初始根节点签名得到的初始根节点签名信息以及与所述第一签名私钥对应的第一签名公钥;
签名信息校验模块,用于利用所述第一签名公钥对所述初始根节点签名信息进行验证;
哈希树构建模块,用于当所述初始根节点签名信息验证通过时,根据所述初始根节点构建目标哈希树;
根节点获取模块,用于获取本地哈希树的本地根节点和所述目标哈希树的目标根节点;
完整性校验模块,用于根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性。
可选地,所述初始哈希树包括一级初始哈希树和二级初始哈希树,所述初始根节点为所述二级初始哈希树的根节点;
所述一级初始哈希树为各所述终端设备根据各所述终端设备中的各目标文件构建的哈希树;
所述二级初始哈希树为各聚合网关根据各所述聚合网关对应的各一级初始哈希树构建的哈希树。
具体地,所述聚合网关包括:
签名公钥获取单元,用于获取各所述终端设备发送的第二签名公钥;
签名信息校验单元,用于分别利用各所述第二签名公钥对各所述终端设备发送的一级根节点签名信息进行验证;
哈希树构建单元,用于当各所述一级根节点签名信息验证通过时,根据各所述一级初始哈希树的一级初始根节点构建所述二级初始哈希树。
在第四方面的一种可能的实现方式中,所述完整性校验装置还包括:
请求文件获取模块,用于获取所述文件服务器发送的请求文件,所述请求文件为各所述终端设备从所述文件服务器中请求过的文件;
一级本地哈希树构建模块,用于根据所述请求文件构建各所述终端设备对应的一级本地哈希树,并获取各所述一级本地哈希树的一级本地根节点;
二级本地哈希树构建模块,用于根据各所述一级本地根节点构建各所述聚合网关对应的二级本地哈希树,并获取各所述二级本地哈希树的二级本地根节点;
本地哈希树构建模块,用于根据各所述二级本地根节点构建所述本地哈希树。
可选地,所述完整性校验模块包括:
校验结果获取单元,用于若所述本地根节点与所述目标根节点相同,则得到所述终端设备的完整性校验通过的校验结果;
哈希树比对单元,用于若所述本地根节点与所述目标根节点不相同,则得到所述终端设备的完整性校验不通过的校验结果,并比对所述本地哈希树和所述目标哈希树;
目标终端设备确定单元,用于根据所述本地哈希树和所述目标哈希树的比对结果,确定完整性校验不通过的目标终端设备。
具体地,所述本地哈希树和所述目标哈希树均为三叉哈希树。
第五方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的完整性校验方法。
第六方面,本申请实施例提供了一种验证服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时上述第二方面中任一项所述的完整性校验方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面中任一项所述的完整性校验方法。
第八方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的完整性校验方法。
第九方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在验证服务器上运行时,使得验证服务器执行上述第一方面中任一项所述的完整性校验方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的完整性校验系统的系统示意图;
图2是本申请另一实施例提供的完整性校验系统的系统示意图;
图3是本申请一实施例提供的完整性校验方法所适用于的手机的结构示意图;
图4是本申请一实施例提供的完整性校验方法所适用于的软件架构示意图;
图5是本申请一实施例提供的完整性校验方法的流程示意图;
图5a是本申请一实施例构建的三层目标哈希树的示例图;
图5b是本申请一实施例提供的哈希树的示例图;
图5c是本申请一实施例构建的哈希树的示例图;
图6是本申请另一实施例提供的完整性校验方法的流程示意图;
图6a是本申请另一实施例构建的哈希树的示例图;
图7是本申请一实施例提供的完整性校验装置的结构示意图;
图8是本申请另一实施例提供的完整性校验装置的结构示意图;
图9是本申请一实施例提供的验证服务器的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
随着电子技术的不断发展,计算机系统的集群化、分布式趋势不断增强。在一个复杂的网络系统中,大量终端设备互相配合、协同工作,当任一终端设备遭受网络攻击时,将会影响其自身及整个网络系统的安全。因此,如何校验终端设备的关键配置、补丁、可执行文件等重要文件的完整性势在必行。其中,文件可以包括终端设备的下载文件和终端设备中的应用文件。在此,所述下载文件是指终端设备刚从文件服务器下载到的、还未应用的文件。所述应用文件是指终端设备上运行或使用中的文件
现有技术中,一般事先通过对所有文件分别计算哈希值,并对各哈希值分别进行签名保存,以根据保存的签名结果来进行文件完整性的校验。这种对所有文件分别进行签名的方式需要服务器或终端设备执行大量的签名操作,极大地增加了服务器或终端设备的计算量,造成服务器或终端设备的计算负担较重。
为解决上述问题,本申请实施例提供了一种完整性校验方法、完整性校验装置、完整性校验系统、终端设备、验证服务器及计算机可读存储介质,可通过使用哈希树和仅对哈希树的根节点进行签名的方式来进行完整性校验,无需对每一个文件进行签名,可以减少服务器或终端设备的计算量,缓解服务器或终端设备的计算负担。
如图1所示,在对终端设备的下载文件进行完整性校验的应用场景中,本申请实施例提供的完整性校验系统可以包括终端设备10、文件服务器11、验证服务器12和密钥管理服务器13。其中,所述终端设备10可以分别与所述文件服务器11、所述验证服务器12、所述密钥管理服务器13通信连接。所述文件服务器11还可以分别与所述验证服务器12、所述密钥管理服务器13通信连接。所述验证服务器12还可以与所述密钥管理服务器13通信连接。所述密钥管理服务器13可以为所述终端设备10、所述文件服务器11、所述验证服务器12等分发对应的签名密钥。
在此,所述文件服务器11可以事先构建所述文件服务器11内所有文件对应的目标哈希树,并可以将所述目标哈希树的根节点发送至所述验证服务器12进行签名。所述验证服务器12则可以通过从所述密钥管理服务器13中获取签名私钥来对所述目标哈希树的根节点进行签名,并可以将签名结果和签名公钥返回至所述文件服务器11。所述文件服务器11在基于所述终端设备10的文件获取请求向所述终端设备10发送某一文件时,还可以将与该文件对应的完整性校验信息(包括签名结果、签名公钥以及所述目标哈希树中与该文件相关的子节点)发送至所述终端设备10。所述终端设备10获取到该文件和该完整性校验信息后,可以首先根据签名公钥对该签名结果进行验证,当该签名结果验证通过时,可以根据该文件以及该完整性校验信息中的子节点构建所述目标哈希树对应的当前根节点;随后,可以将该当前根节点与签名结果中所包含的所述目标哈希树的根节点进行比对,以此确定该文件的完整性。
可以理解的是,对所述目标哈希树的根节点进行签名的操作也可以由所述文件服务器12自己执行。
由上可知,在对终端设备的下载文件进行完整性校验时,验证服务器或文件服务器仅需要对所述目标哈希树的根节点进行签名,而不需要对每一个文件进行签名,极大地减少了验证服务器或文件服务器的计算量,缓解了验证服务器或文件服务器的计算负担。
如图2所示,在对各终端设备进行完整性校验的场景中,所述完整性校验系统还可以包括聚合网关14。其中,所述聚合网关14可以分别与所述终端设备10、所述验证服务器12、所述密钥管理服务器13通信连接。在此,对各终端设备进行完整性校验是指对各终端设备中的应用文件进行完整性校验。
所述验证服务器12可以事先获取所述文件服务器11发送的各请求文件,并可以根据各所述请求文件构建本地哈希树。其中,所述文件服务器11发送的各请求文件为各所述终端设备10从所述文件服务器11中请求过的文件。
在需要对各所述终端设备10进行完整性校验时,所述验证服务器12则可以向各所述终端设备10发送完整性校验请求。各所述终端设备10接收到完整性校验请求后,可以获取各所述终端设备10中的目标文件来构建各所述终端设备对应的一级初始哈希树,并可以获取各一级初始哈希树的一级初始根节点;然后可以通过从所述密钥管理服务器13中获取第一签名私钥来对各所述一级初始哈希树的一级初始根节点进行签名,并可以将包含第一签名结果的初始完整性校验信息发送至所对应的聚合网关14。各所述聚合网关14则可以分别利用对应的第一签名公钥对各初始完整性校验信息中的第一签名结果进行验证,各第一签名结果验证通过后,各所述聚合网关14则可以根据各一级初始哈希树的一级初始根节点构建各所述聚合网关对应的二级初始哈希树;随后可以获取各所述二级初始哈希树的二级初始根节点,并可以通过从所述密钥管理服务器13中获取第二签名私钥来对所述二级初始哈希树的二级初始根节点进行签名,并可以将包含第二签名结果的完整性校验信息发送至所述验证服务器12。所述验证服务器12则可以分别利用对应的第二签名公钥对各完整性校验信息中的各第二签名结果进行验证,各第二签名结果均验证通过后,所述验证服务器12则可以根据各二级初始哈希树的二级初始根节点构建目标哈希树,并可以将所述目标哈希树的目标根节点与本地哈希树的本地根节点进行比对,以此确定各所述终端设备的完整性。
由上可知,在对终端设备进行完整性校验时,所述终端设备10和所述聚合网关14均仅需要对相关哈希树的根节点进行签名,而不需要对每一个文件进行签名,极大地减少了所述终端设备10和所述聚合网关14的计算量,缓解了所述终端设备10和所述聚合网关14的计算负担。
所述终端设备10可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
以所述终端设备10为手机为例。图3示出的是与本申请实施例提供的手机的部分结构的框图。参考图3,手机包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、传感器350、音频电路360、无线保真(wireless fidelity,WiFi)模块370、处理器380、以及电源390等部件。本领域技术人员可以理解,图3中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对手机的各个构成部件进行具体的介绍:
RF电路310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器320可用于存储软件程序以及模块,处理器380通过运行存储在存储器320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括触控面板331以及其他输入设备332。触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。除了触控面板331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图3中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路360、扬声器361,传声器362可提供用户与手机之间的音频接口。音频电路360可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器380处理后,经RF电路310以发送给比如另一手机,或者将音频数据输出至存储器320以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块370,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器380可包括一个或多个处理单元;优选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
手机还包括给各个部件供电的电源390(比如电池),优选的,电源可以通过电源管理系统与处理器380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头。可选地,摄像头在手机的上的位置可以为前置的,也可以为后置的,本申请实施例对此不作限定。
可选地,手机可以包括单摄像头、双摄像头或三摄像头等,本申请实施例对此不作限定。
例如,手机可以包括三摄像头,其中,一个为主摄像头、一个为广角摄像头、一个为长焦摄像头。
可选地,当手机包括多个摄像头时,这多个摄像头可以全部前置,或者全部后置,或者一部分前置、另一部分后置,本申请实施例对此不作限定。
另外,尽管未示出,手机还可以包括蓝牙模块等,在此不再赘述。
图4是本申请实施例的手机的软件结构示意图。以手机操作系统为Android系统为例,在一些实施例中,将Android系统分为四层,分别为应用程序层、应用程序框架层(framework,FWK)、系统层以及硬件抽象层,层与层之间通过软件接口通信。
如图4所示,所述应用程序层可以一系列应用程序包,应用程序包可以包括短信息,日历,相机,视频,导航,图库,通话等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数,例如用于接收应用程序框架层所发送的事件的函数。
如图4所示,应用程序框架层可以包括窗口管理器、资源管理器以及通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
应用程序框架层还可以包括:
视图系统,所述视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供手机的通信功能。例如通话状态的管理(包括接通,挂断等)。
系统层可以包括多个功能模块。例如:传感器服务模块,物理状态识别模块,三维图形处理库(例如:OpenGL ES)等。
传感器服务模块,用于对硬件层各类传感器上传的传感器数据进行监测,确定手机的物理状态;
物理状态识别模块,用于对用户手势、人脸等进行分析和识别;
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
系统层还可以包括:
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
硬件抽象层是硬件和软件之间的层。硬件抽象层可以包括显示驱动,摄像头驱动,传感器驱动等,用于驱动硬件层的相关硬件,如显示屏、摄像头、传感器等。
【实施例一】
实施例一提供的完整性校验方法可以在具有上述硬件结构/软件结构的手机上实现,以对手机的下载文件进行完整性校验,即手机从文件服务器中下载到文件后,可以在应用该文件之前通过本实施例提供的完整性校验方法对该文件进行完整性校验,确保手机下载到的文件为未被篡改、版本合法、来源可追溯的文件。以下将结合图1所示的完整性校验系统对本实施例提供的完整性校验方法进行详细说明。
如图5所示,本实施例提供的完整性校验方法可以包括:
S501、获取文件服务器发送的待校验文件和所述待校验文件的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对目标哈希树的目标根节点签名得到的根节点签名信息、所述目标哈希树中与所述待校验文件相关的子节点以及与所述第一签名私钥对应的第一签名公钥,所述目标哈希树为基于所述文件服务器中的所有文件构建的哈希树;
应理解,在文件服务器初始化或者进行文件更新时,所述文件服务器可以构建所述文件服务器内所有文件对应的目标哈希树,并可以对所述目标哈希树的目标根节点进行签名,以得到所述目标根节点对应的根节点签名信息。
示例的,所述文件服务器也可以将所述目标哈希树的目标根节点发送至验证服务器,所述验证服务器则可以对所述目标根节点进行签名,并可以将签名得到的根节点签名信息和签名对应的签名公钥返回至所述文件服务器,以实现目标根节点的生成和签名分离的目的,降低根节点签名信息被攻击的风险。
需要说明的是,所述文件服务器或者所述验证服务器可以通过从密钥管理服务器中获取签名密钥(包括第一签名私钥和第一签名公钥)来对所述目标根节点进行签名,具体地,可以通过所述第一签名私钥来对所述目标根节点进行签名。在此,所述签名密钥可以为任意签名算法对应的签名密钥,本实施例对此不作限定。
例如,所述签名密钥可以为RSA签名算法对应的签名密钥,假设RSA签名算法对应的第一签名私钥为d,第一签名公钥为(e,n)时,则所述目标根节点H_root的根节点签名信息可以为sign(H_root)=(H_root)d mod n。
应理解,在对所述目标根节点进行签名时,还可以加入签名有效时间信息,以使得根节点签名信息的有效时间缩短,降低根节点签名信息被攻击的攻击时间窗,降低根节点签名信息被攻击的风险。
在一种可能的实现方式中,所述目标哈希树可以为三叉哈希树,以通过三叉哈希树来减少哈希树的层次,减少完整性校验所需的完整性校验信息,减少带宽占用。
作为示例而非限定,所述目标哈希树的叶子节点可以为所述文件服务器中任一文件的文件名与该文件的文件元数据的哈希值,而除叶子节点以外的其他节点则可以为该节点的所有子节点的哈希值。
例如,图5a示出了所述文件服务器构建的一个三层目标哈希树的示例图,该三层目标哈希树中一层的叶子节点H_leafi可以为H(f_i||matadatai),二层的子节点H_fatherj可以为H(H_leafi-1||H_leafi||H_leafi+1),其中,H_leafi-1、H_leafi和H_leafi+1为H_fatherj的子节点,三层的目标根节点H_root可以为H(H_father1||H_father2||H_father3)。在此,f_i为文件名,matadatai为元数据,||为连接符,H为哈希函数。应理解,所述哈希函数可以为安全哈希函数(例如可以SHA-256),也可以为其他任意类型的哈希函数,本实施例对此不作限定。
应理解,当手机向所述文件服务器发送文件获取请求以请求某一文件时,或者当所述文件服务器向手机发送某一文件的文件更新指示,而手机根据该文件更新指令确认进行文件更新时,所述文件服务器则可以将该文件发送至手机,并可以将该文件对应的完整性校验信息发送至手机。在此,手机所获取的该文件即为S601中所述的待校验文件。
可以理解的是,所述完整性校验信息可以包括该待校验文件对应的目标哈希树的根节点签名信息、所述目标哈希树中与该待校验文件相关的子节点以及第一签名公钥。其中,所述根节点签名信息为所述文件服务器或者所述验证服务器利用第一签名私钥对所述目标哈希树的根节点进行签名后的信息,所述第一签名公钥与所述第一签名私钥相对应。所述目标哈希树中与该待校验文件相关的子节点可以包括所述目标哈希树中与该待校验文件属于同一父节点H_fatherj的叶子节点、父节点H_fatherj到目标根节点的完整哈希路径上的子节点以及目标根节点。
具体地,父节点H_fatherj到目标根节点的完整哈希路径上的子节点是指由父节点H_fatherj开始生成所述目标哈希树的目标根节点所需的所有子节点。
例如,在图5a所示的应用场景中,当H_leaf6对应的文件f_6为所述文件服务器发送至手机的待校验文件时,则H_leaf6对应的父节点H_father2到目标根节点H_root的完整哈希路径上的子节点可以包括H_father1和H_father3,即所述目标哈希树中与待校验文件f_6相关的子节点可以包括叶子节点H_leaf4、叶子节点H_leaf5、子节点H_father1、子节点H_father3以及根节点H_root。
例如,在图5b所示的应用场景中,当H_leaf6对应的文件f_6为所述文件服务器发送至手机的待校验文件时,则H_leaf6对应的父节点H_ffather2到目标根节点H_root的完整哈希路径上的子节点可以包括H_ffather1、H_ffather3、H_sfather1、H_sfather3、H_tfather2和H_tfather3,即所述目标哈希树中与待校验文件f_6相关的子节点可以包括叶子节点H_leaf4、叶子节点H_leaf5、子节点H_ffather1、子节点H_ffather3、子节点H_sfather1、子节点H_sfather3、子节点H_tfather2和子节点H_tfather3以及根节点H_root。
S502、利用所述第一签名公钥对所述根节点签名信息进行验证;
应理解,手机获取的完整性校验信息可以包括所述根节点签名信息和所述根节点签名信息对应的原始信息(即所述目标根节点H_root)。
在此,手机获取到该待校验文件和该待校验文件对应的完整性校验信息后,可以利用该完整性校验信息中的第一签名公钥对所述根节点签名信息进行验证,以确定所述完整性校验信息是否为来源合法、可追溯的校验信息,从而确定所述待校验文件是否为来源合法、可追溯的文件。
例如,在所述第一签名公钥为(e,n)以及所述目标根节点H_root的根节点签名信息为sign(H_root)=(H_root)d mod n的应用场景中,手机可以利用所述第一签名公钥(e,n)对sign(H_root)进行验签,得到验签信息H’_root=(sign(H_root))e mod n,以根据所述验签信息H’_root和所述目标根节点H_root来确定所述完整性校验信息是否为来源合法、可追溯的校验信息。
其中,当所述验签信息H’_root和所述目标根节点H_root相同时,则可得到所述根节点签名信息验证通过的校验结果,其中,验证通过表明所述完整性校验信息为来源合法、可追溯的校验信息,可以用于所述待校验文件的完整性校验,以确定所述待校验文件的完整性以及确定所述待校验文件是否为来源合法、可追溯的文件。而当所述验签信息H’_root和所述目标根节点H_root不相同时,则可得到所述根节点签名信息验证不通过的校验结果,其中,验证不通过表明所述完整性校验信息不是来源合法、可追溯的校验信息,从而可以直接确定所述待校验文件为来源不合法的文件。
需要说明的是,当所述校验结果为所述根节点签名信息验证不通过的校验结果时,手机可以在手机的校验日志中对所述待校验文件为来源不合法的校验结果进行记录,以方便后续进行校验结果的查看,同时,手机还可以实时在手机的显示屏幕中进行校验结果的呈现,提醒该手机所在的用户其当前所获取的文件可能为来源不合法的文件,告知用户当前的文件下载风险。
S503、当所述根节点签名信息验证通过时,根据所述待校验文件和所述子节点构建所述目标哈希树对应的当前根节点;
应理解,当所述根节点签名信息验证通过时,即当所述完整性校验信息为来源合法、可追溯的校验信息时,手机则可以根据所述待校验文件以及所述完整性校验信息中的子节点构建所述目标哈希树对应的当前根节点。
例如,当所述待校验文件为图5a中所示的H_leaf6对应的文件f_6时,手机首先可以根据文件f_6的文件名f_6和元件元数据matadata6’计算得到所述待校验文件对应的叶子节点H’_leaf6=H(f_6||matadata6’);然后,可以根据H’_leaf6以及所述完整性校验信息中与H’_leaf6属于同一父节点的叶子节点H_leaf4和叶子节点H_leaf5计算得到子节点H’_father2=H(H(f_4||matadata4)||H(f_5||matadata5)||H’(f_6||matadata6));最后,可以根据H’_father2以及H’_father2到目标根节点H_root的完整哈希路径上的子节点H_father1和H_father3计算得到所述目标哈希树对应的当前根节点H’_root=H(H_father1||H’_father2||H_father3)。
在此,手机也可以根据所述待校验文件和所述子节点还原构建所述目标哈希树,然后将还原后的目标哈希树的根节点确定为所述目标哈希树的当前根节点,即手机可以首先计算所述待校验文件的文件名和文件元数据的哈希值,并可以将计算得到的哈希值确定为所述待校验文件对应的叶子节点,然后可以根据该叶子节点和所述完整性校验信息中的子节点还原构建所述目标哈希树。
需要说明的是,还原构建的目标哈希树中各节点的位置与原始的目标哈希树中的各节点的位置相同,以避免节点位置错误而造成哈希值的计算错误,从而降低完整性校验的准确性。即所述完整性校验信息中还可以包括所述待校验文件对应的叶子节点在目标哈希树中的位置信息以及各所述子节点在目标哈希树中的位置信息。因此,手机在根据所述待校验文件和所述完整性校验信息中的各子节点还原构建所述目标哈希树时,可以结合所述待校验文件的位置信息和各所述子节点的位置信息来还原构建所述目标哈希树。例如,当所述待校验文件为图5a中所示的H_leaf6对应的文件f_6时,手机根据所述待校验文件和所述完整性校验信息中的子节点可以构建得到如图5c所示的目标哈希树。
S504、根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性。
具体地,手机根据所述待校验文件和所述完整性校验信息中的子节点构建出所述目标哈希树对应的当前根节点后,可以将所述目标哈希树的当前根节点与所述目标哈希树的目标根节点进行比对,以此确定所述待校验文件的完整性。其中,当所述当前根节点与所述目标根节点相同时,则可以得到所述待校验文件的完整性校验通过的校验结果,完整性校验通过是指所述待校验文件为从所述文件服务器获取的内容完整未被篡改的、来源合法的、可追溯的文件;当所述当前根节点与所述目标根节点不相同时,则可以得到所述待校验文件的完整性校验不通过的校验结果,完整性校验不通过是指所述待校验文件为完整性遭到破坏的文件,即可以表明所述待校验文件为内容被篡改的文件。
需要说明的是,当手机得到的是所述待校验文件的完整性校验不通过的校验结果时,手机可以在手机的校验日志中对所述待校验文件的完整性校验不通过的校验结果进行记录,以方便后续进行校验结果的查看,同时,手机还可以实时在手机的显示屏幕中进行校验结果的呈现,提醒该手机所在的用户其当前所获取的文件可能为内容被篡改的文件,告知用户当前的文件下载风险。
本实施例,通过使用哈希树及对哈希树根节点签名的方式来对手机的下载文件进行完整性校验,使得仅需对根节点的签名即可完成完整性校验,而不需要对每一个文件进行签名,极大地减少了签名的计算量,缓解了计算负担。
在完整性校验中,当所述待校验文件存在历史版本时,若利用历史版本的待校验文件替换当前版本的待校验文件发送至手机,手机在对接收到的待校验文件进行完整性校验时,也可以得到该待校验文件的完整性校验通过的校验结果,但此时手机获取的待校验文件并不是手机所请求的文件或者并不是文件服务器所期望发送至手机的文件,而可能是攻击者重新投放的文件。因此,为抵抗利用历史版本文件进行的重放攻击,在根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性之后,当得到的校验结果为所述待校验文件的完整性校验通过的校验结果时,手机还可以获取所述待校验文件的目标版本校验信息,并可以根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性,其中,所述目标版本校验信息可以为根据所述待校验文件的目标文件版本生成的版本校验信息。
在此,通过将完整性校验和版本合法性校验分开请求的方式,使得可以通过密码学安全的方式来验证待校验文件的真实版本,以降低文件替换和重放攻击的风险。
需要说明的是,所述文件服务器在将所述待校验文件和所述待校验文件对应的完整性校验信息发送至手机时,还可以实时根据其所发送的待校验文件的目标文件版本生成所述待校验文件的目标版本校验信息,并可以基于手机发送的版本校验信息获取请求将所述目标版本校验信息发送给手机。
可选地,所述文件服务器在将所述待校验文件和所述待校验文件对应的完整性校验信息发送至手机时,还可以实时将其所发送的待校验文件的目标文件版本发送至验证服务器,所述验证服务器则可以根据所述目标文件版本生成所述待校验文件的目标版本校验信息,并可以基于手机发送的版本校验信息获取请求将所述目标版本校验信息发送给手机,以通过验证服务器执行校验信息的生成来进行风险分担,从而降低目标版本校验信息被攻击的风险。
示例的,所述文件服务器或者所述验证服务器可以利用任一签名算法对应的签名密钥对所述目标文件版本进行签名,并可以将签名得到的所述目标文件版本对应的版本签名信息作为所述目标版本校验信息。
在此,手机得到所述待校验文件的完整性校验通过的校验结果后,可以向所述文件服务器或者所述验证服务器发送版本校验请求,以通过版本校验确定所述待校验文件是否为替换文件等。所述文件服务器或者所述验证服务器则可以根据所述版本校验请求将前述签名得到的版本签名信息和所对应的签名公钥发送至手机,手机则可以利用所接收到的签名公钥对所述版本签名信息进行验证,并可以将验证通过的目标文件版本与手机当前接收到的当前文件版本进行比较。若两者相同,则可确定当前文件版本的待校验文件为版本合法的文件,即可以认为当前文件版本的待校验文件为所述文件服务器发送的合法文件;若两者不相同,则可确定当前文件版本的待校验文件为版本不合法的文件,即可以认为当前文件版本的待校验文件可能为替换文件,表明所述文件服务器发送给手机的文件可能已被攻击者进行了文件替换等。
在一种可能的实现方式中,所述文件服务器或者所述验证服务器可以通过变色龙签名算法对所述目标文件版本进行签名,即所述目标版本校验信息可以为根据所述目标文件版本和所述终端设备的设备标识生成的变色龙签名信息,以利用变色龙签名的不可否认性、非交互性以及不可传递的特点保证版本信息的唯一合法性,降低泄漏风险。
示例的,所述文件服务器在将所述待校验文件和所述待校验文件对应的完整性校验信息发送至手机时,还可以实时利用变色龙签名算法生成所发送的待校验文件的目标文件版本和接收所述待校验文件的手机的设备标识(例如手机的设备ID或者设备编号等)的变色龙签名信息。
可选地,所述文件服务器在将所述待校验文件和所述待校验文件对应的完整性校验信息发送至手机时,还可以实时将其所发送的待校验文件的目标文件版本和接收所述待校验文件的手机的设备标识发送至验证服务器,所述验证服务器则可以利用变色龙签名算法生成所述目标文件版本和所述设备标识对应的变色龙签名信息,以通过验证服务器执行变色龙签名操作来进行风险分担,从而降低目标版本校验信息被攻击的风险。
需要说明的是,所述验证服务器利用变色龙签名算法生成变色龙签名信息的过程具体可以为:
首先可以通过密钥管理服务器随机选取两个大质数p和q,使得p=kq+1,并选取一个阶为q的元素然后可以通过密钥管理服务器随机选取设备标识req_ID对应的设备私钥计算设备私钥x对应的设备公钥y=gx mod p,并可以将设备私钥x发送给设备标识req_ID对应的手机,同时还可以将设备公钥的相关信息(req_ID,y,g,p)发送至所述验证服务器。
所述验证服务器在收到所述文件服务器发送的目标文件版本vers_f_req和设备标识req_ID之后,可以首先生成所述验证服务器对应的签名密钥,例如,可以生成所述验证服务器对应的签名私钥d和所述验证服务器对应的签名公钥(e,n);然后可以选择一个变色龙随机数并可以利用变色龙随机数r和密钥管理服务器发送的设备公钥的相关信息来计算目标文件版本vers_f_req的变色龙哈希值h_req_ID=gvers_f_req grx mod p;最后可以利用所述验证服务器对应的签名私钥对计算得到的变色龙哈希值h_req_ID进行签名sign(h_req_ID)=(h_req_ID)d mod n,以此得到目标文件版本vers_f_req对应的变色龙签名信息(req_ID,vers_f_req,r,sign(h_req_ID),(e,n),g,p),并可以基于手机的版本校验信息获取请求将变色龙签名信息(req_ID,vers_f_req,r,sign(h_req_ID),(e,n),g,p)发送给手机。
应理解,所述文件服务器利用变色龙签名算法生成变色龙签名信息的过程与所述验证服务器利用变色龙签名算法生成变色龙签名信息的过程相似,基本原理相同,为简明起见,在此不再赘述。
具体地,手机获取到所述待校验文件的变色龙签名信息后,可以首先利用从密钥管理服务器获取的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述待校验文件对应的当前文件版本vers_f_req’的第一变色龙哈希值h_req_ID’=gvers_f_req’grx modp;然后可以利用所述变色龙签名信息中的签名公钥(e,n)计算所述变色龙签名信息对应的第二变色龙哈希值H’=(sign(h_req_ID))e mod n;最后可以根据第一变色龙哈希值h_req_ID’和第二变色龙哈希值H’来校验所述待校验文件的版本合法性。在此,当第一变色龙哈希值h_req_ID’和第二变色龙哈希值H’相同时,则可确定所述待校验文件的文件版本合法,即可以认为所述待校验文件为所述文件服务器当前所发送的合法文件;当第一变色龙哈希值h_req_ID’和第二变色龙哈希值H’不相同时,则可以确定所述待校验文件的文件版本不合法,即可以认为所述待校验文件可能为被替换或者为被重新投放的文件。
需要说明的是,当手机得到的是所述待校验文件的文件版本不合法时,手机可以在手机的校验日志中对所述待校验文件的文件版本不合法的校验结果进行记录,以方便后续进行校验结果的查看,同时,手机还可以实时在手机的显示屏幕中进行校验结果的呈现,提醒该手机所在的用户其当前所获取的文件可能为被替换或者为被重新投放的不合法文件,告知用户当前的文件下载风险。
应理解,所述文件服务器和/或所述验证服务器也可以通过生成版本哈希树以及对版本哈希树的根节点进行签名来生成所述待校验文件对应的目标版本校验信息。
具体地,所述文件服务器在将所述待校验文件和所述待校验文件对应的完整性校验信息发送至手机时,还可以实时根据其所发送的待校验文件的目标文件版本以及所述文件服务器中其他所有文件的目标文件版本生成版本哈希树,并可以对所述版本哈希树的根节点进行签名来生成所述待校验文件对应的目标版本校验信息。或者所述文件服务器可以将所述版本哈希树的根节点发送至所述验证服务器,以通过所述验证服务器对所述版本哈希树的根节点进行签名来生成所述待校验文件对应的目标版本校验信息。而在接收到手机发送的版本校验信息获取请求时,所述文件服务器或所述验证服务器则可以将所述目标版本校验信息(包括版本哈希树的根节点签名信息、签名公钥以及版本哈希树中相关的子节点)发送给手机,手机则可以基于接收到的目标版本校验信息来对所述待校验文件的当前文件版本进行校验。
其中,手机基于版本哈希树对所述待校验文件的当前文件版本进行校验的过程与手机基于目标哈希树对所述待校验文件的完整性进行校验的过程相似,基本原理相同,为简明起见,在此不再赘述。
【实施例二】
实施例二提供的完整性校验方法可以在如图2所示的完整性校验系统的验证服务器中实现,以对各终端设备进行完整性校验,即可以通过本实施例提供的完整性校验方法对各终端设备中的应用文件进行完整性校验,确保各终端设备中的应用文件为未被篡改、版本合法的文件。以下将结合图2所示的完整性校验系统对本实施例提供的完整性校验方法进行详细说明。
如图6所示,本实施例提供的完整性校验方法可以包括:
S601、获取各终端设备的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对初始哈希树的初始根节点签名得到的初始根节点签名信息以及与所述第一签名私钥对应的第一签名公钥;
需要说明的是,所述初始哈希树可以包括一级初始哈希树和二级初始哈希树,所述初始根节点为所述二级初始哈希树的根节点。其中,所述一级初始哈希树为各所述终端设备根据各所述终端设备中的各目标文件构建的哈希树,所述二级初始哈希树为各聚合网关根据各所述聚合网关对应的各终端设备的一级初始哈希树构建的哈希树。
可选地,所述一级初始哈希树和所述二级初始哈希树均为三叉哈希树,以通过三叉哈希树减少哈希树的层次,减少签名计算量。
以终端设备为手机为例。在需要校验各手机的完整性,所述验证服务器可以向各手机发送完整性校验请求,各手机接收到完整性校验请求后,可以获取各手机中的目标文件来构建各手机对应的一级初始哈希树。其中,各手机中的目标文件为各手机从文件服务器中获取的全部或者部分文件。在此,所述一级初始哈希树中任一父节点为该父节点所对应的所有子节点的哈希值,所述一级初始哈希树的叶子节点为目标文件的文件名f_req、文件元数据matadata_f_req及文件版本vers_f_req的哈希值,即所述一级初始哈希树的叶子节点Hash_f_req_ID=H(req_ID||f_req||matadata_f_req||vers_f_req)。
需要说明的是,在构建一级初始哈希树时,手机可以首先根据第一预设排序方式对该手机对应的目标文件进行排序,然后可以根据排序后的目标文件来构建该手机对应的一级初始哈希树的各叶子节点。在此,所述第一预设排序方式可以为按照文件名f_req的首字母升序(a→z)的排序方式,或者可以为按照文件名f_req的首字母降序(z→a)的排序方式。
如图6a所示,手机ID1可根据手机ID1中的目标文件(f1_req_ID1至f3_req_ID1)构建手机ID1对应的一级初始哈希树,手机ID2可以根据手机ID2中的目标文件(f1_req_ID2至f9_req_ID2)构建手机ID2对应的一级初始哈希树,手机ID3可以根据手机ID3中的目标文件(f1_req_ID3至f3_req_ID3)构建手机ID3对应的一级初始哈希树。其中,f1_req_ID1为手机ID1中根据上述第一预设排序方式排序后的第一个目标文件,f3_req_ID1为手机ID1中根据上述第一预设排序方式排序后的第三个目标文件,其他表述与此相似。
示例的,手机得到一级初始哈希树后,可首先获取一级初始哈希树的一级初始根节点Hash_IDi,然后可利用手机对应的签名私钥对一级初始根节点进行签名sign(Hash_IDi)=(Hash_IDi)d_IDi mod n,得到一级初始根节点签名信息,并可以将包含一级初始根节点签名信息的初始完整性校验信息Info_IDi={Hash_IDi,sign(Hash_IDi),(e_IDi,n)}发送至手机所对应的聚合网关,其中,d_IDi为手机IDi对应的签名私钥,(e_IDi,n)为手机IDi对应的签名公钥。
例如,可以通过从密钥管理服务器中获取各手机对应的签名私钥来对各一级初始哈希树的一级初始根节点进行签名。
应理解,聚合网关接收到其所对应的各手机发送的初始完整性校验信息Info_Dii之后,可分别利用各手机对应的签名公钥对各手机发送的初始完整性校验信息Info_IDi中的一级初始根节点签名信息sign(Hash_IDi)进行验证。当该聚合网关对应的各一级初始根节点签名信息sign(Hash_IDi)均验证通过时,该聚合网关即可以根据其接收到的各初始完整性校验信息Info_IDi中的一级初始根节点构建该聚合网关对应的二级初始哈希树。在此,对初始完整性校验信息Info_IDi中的一级初始根节点签名信息sign(Hash_IDi)进行验证的过程与实施例一中对目标根节点的根节点签名信息进行验证的过程相似,基本原理相同,为简明起见,在此不再赘述。
在构建二级初始哈希树时,聚合网关可以首先根据第二预设排序方式对该聚合网关对应的手机进行排序,然后可以根据排序后的手机对应的一级初始哈希树的一级初始根节点构建聚合网关对应的二级初始哈希树。在此,所述第二预设排序方式可以为按照手机的设备标识(如手机ID号)由小至大的排序方式,或者可以为按照手机的设备标识(如手机ID号)由大至小的排序方式。
如图6a所示,聚合网关Agg1可以根据其所对应的手机ID1、手机ID2以及手机ID3发送的一级初始哈希树的各一级初始根节点Hash_ID1、Hash_ID2和Hash_ID3构建聚合网关Aggr1对应的二级初始哈希树。其中,手机ID1为根据上述第二预设排序方式排序后排序第一的手机,手机ID2为根据上述第二预设排序方式排序后排序第二的手机,手机ID3为根据上述第二预设排序方式排序后排序第三的手机。
示例的,聚合网关得到二级初始哈希树后,可以首先获取二级初始哈希树的二级初始根节点Hash_Aggi,然后可以利用聚合网关对应的签名私钥(即S602中所述的第一签名公钥所对应的第一签名私钥)来对二级初始根节点进行签名sign(Hash_Aggi)=(Hash_Aggi)d_Aggi mod n,得到二级初始根节点签名信息,并可以将包含二级初始根节点签名信息的完整性校验信息Info_Aggi={Hash_Aggi,sign(Hash_Aggi),(e_Aggi,n)}发送至所述验证服务器。其中,d_Aggi为聚合网关Aggi对应的第一签名私钥,(e_Aggi,n)为聚合网关Aggi对应的第一签名公钥。
例如,可以通过从密钥管理服务器中获取各聚合网关对应的第一签名私钥来对各二级初始哈希树的二级初始根节点进行签名。
S602、利用所述第一签名公钥对所述初始根节点签名信息进行验证;
在此,所述验证服务器接收到各聚合网关发送的完整性校验信息Info_Aggi后,则可以分别利用各聚合网关对应的第一签名公钥对各聚合网关发送的完整性校验信息Info_Aggi中的二级初始根节点签名信息进行验证。
例如,可以利用聚合网关Agg1对应的第一签名公钥A对聚合网关Agg1发送的完整性校验信息Info_Agg1中的二级初始根节点签名信息进行验证,可以利用聚合网关Agg2对应的第一签名公钥B对聚合网关Agg2发送的完整性校验信息Info_Agg2中的二级初始根节点签名信息进行验证,可以利用聚合网关Agg3对应的第一签名公钥C对聚合网关Agg1发送的完整性校验信息Info_Agg3中的二级初始根节点签名信息进行验证。
应理解,对完整性校验信息Info_Aggi中的二级初始根节点签名信息进行验证的过程与实施例一中对目标根节点的根节点签名信息进行验证的过程相似,基本原理相同,为简明起见,在此不再赘述。
S603、当所述初始根节点签名信息验证通过时,根据所述初始根节点构建目标哈希树;
应理解,当各二级初始根节点签名信息均验证通过时,所述验证服务器即可以根据其接收到的各完整性校验信息Info_Aggi中的二级初始根节点构建目标哈希树。其中,所述目标哈希树也可以为三叉哈希树,以通过三叉哈希树减少哈希树的层次,减少签名计算量,同时方便后续快速定位完整性遭到破坏的终端设备。
具体地,所述验证服务器可以首先根据第三预设排序方式对聚合网关进行排序,然后可以根据排序后的聚合网关对应的二级初始哈希树的二级初始根节点构建所述目标哈希树。在此,所述第三预设排序方式可以为按照聚合网关的网关标识(例如,网关ID号)由小至大的排序方式,或者可以为按照聚合网关的网关标识(例如,网关ID号)由大至小的排序方式。
S604、获取本地哈希树的本地根节点和所述目标哈希树的目标根节点;
需要说明的是,在手机从文件服务器中获取文件之后,所述文件服务器也可实时或定期将各手机请求过的请求文件(包括文件名、文件版本和文件元数据等)发送至所述验证服务器,所述验证服务器则可以根据所述请求文件构建各手机对应的一级本地哈希树。例如,可根据手机A对应的请求文件a、b、c、d、e、f、g、h及i构建手机A对应的一级本地哈希树,可根据手机B对应的请求文件j、k及l构建手机B对应的一级本地哈希树。在此,一级本地哈希树的构建过程与前述一级初始哈希树的构建过程相似,基本原理相同,为简明起见,在此不再赘述。
应理解,所述验证服务器构建手机对应的一级本地哈希树时,可以根据前述所述的一级初始哈希树的构建过程中所使用的第一预设排序方式对手机对应的请求文件进行排序,并可以根据排序后的请求文件构建手机对应的一级本地哈希树。
例如,当前述所述的一级初始哈希树的构建过程中所使用的第一预设排序方式为根据文件名f_req的首字母升序(a→z)的排序方式时,所述验证服务器则可以根据文件名f_req的首字母升序(a→z)的排序方式对请求文件进行排序。
在此,所述验证服务器得到各手机对应的一级本地哈希树后,可以首先获取各一级本地哈希树的一级本地根节点和各手机对应的聚合网关,并可以根据聚合网关对各一级本地根节点进行分组,即可以将对应于同一聚合网关的手机对应的一级本地根节点划分至同一组;随后可以根据各聚合网关对应的一级本地根节点构建各聚合网关对应的二级本地哈希树。
应理解,所述验证服务器构建聚合网关对应的二级本地哈希树时,可以根据前述所述的二级初始哈希树的构建过程中所使用的第二预设排序方式对聚合网关对应的各手机进行排序,并可以根据排序后的手机对应的一级本地哈希树的一级本地根节点构建聚合网关对应的二级本地哈希树。
例如,当前述所述的二级初始哈希树的构建过程中所使用的第二预设排序方式为按照手机ID号由小至大的排序方式时,所述验证服务器则可以根据手机ID号由小至大的顺序方式对各手机进行排序。
在此,所述验证服务器得到各聚合网关对应的二级本地哈希树后,可以获取各二级本地哈希树的二级本地根节点,并可以根据各二级本地哈希树对应的二级本地根节点构建所述本地哈希树。
应理解,所述验证服务器构建所述本地哈希树时,可以根据前述所述的目标哈希树的构建过程中所使用的第三预设排序方式对各聚合网关进行排序,并可以根据排序后的聚合网关对应的二级本地哈希树的二级本地根节点构建所述本地哈希树。
本实施例,在本地哈希树和目标哈希树的构建过程中,通过使用相同的预设排序方式进行各级根节点的排序,避免排序不同而带来的哈希值不同,从而影响完整性校验结果。
S605、根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性。
具体地,若所述本地根节点与所述目标根节点相同,所述验证服务器则可以确定所述终端设备的完整性校验通过,即所有终端设备中的应用文件均未被篡改或替换等;若所述本地根节点与所述目标根节点不相同,所述验证服务器则可以确定所述终端设备的完整性校验不通过,即存在一个或多个终端设备的完整性遭到破坏,也就是说,存在一个或多个终端设备中的应用文件被篡改或者被替换。
示例的,当得到所述终端设备的完整性校验不通过的校验结果时,所述验证服务器则可以通过比对所述本地哈希树和所述目标哈希树来定位完整性遭到破坏的目标终端设备,即可以根据所述本地哈希树和所述目标哈希树的比对结果,来确定完整性遭到破坏的目标终端设备。
本实施例通过使用哈希树及对哈希树根节点签名的方式来对终端设备进行完整性校验,使得终端设备、聚合网关均仅需要对相关哈希树的根节点进行签名,而不需要对每一个文件进行签名,极大地减少了终端设备、聚合网关的计算量,缓解了终端设备、聚合网关的计算负担。同时,通过将大多数的签名验证过程转移至聚合网关,可减少验证服务器的计算量,缓解验证服务器的计算负担。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的完整性校验方法,图7和图8示出了本申请实施例提供的完整性校验装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
如图7所示,本申请实施例提供了一种完整性校验装置,应用于终端设备,所述完整性校验装置可以包括:
文件获取模块701,用于获取文件服务器发送的待校验文件和所述待校验文件的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对目标哈希树的目标根节点签名得到的根节点签名信息、所述目标哈希树中与所述待校验文件相关的子节点以及与所述第一签名私钥对应的第一签名公钥,所述目标哈希树为根据所述文件服务器中的所有文件构建的哈希树;
签名信息校验模块702,用于利用所述第一签名公钥对所述根节点签名信息进行验证;
当前根节点构建模块703,用于当所述根节点签名信息验证通过时,根据所述待校验文件和所述子节点构建所述目标哈希树对应的当前根节点;
完整性校验模块704,用于根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性。
可选地,所述完整性校验装置还可以包括:
版本校验信息获取模块,用于获取所述待校验文件的目标版本校验信息,所述目标版本校验信息为根据所述待校验文件的目标文件版本生成的版本校验信息;
版本合法性校验模块,用于根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性。
在一种可能的实现方式中,所述目标版本校验信息为根据所述目标文件版本和所述终端设备的设备标识生成的变色龙签名信息;
相应地,所述版本合法性校验模块可以包括:
第一哈希值计算单元,用于根据所述终端设备对应的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述当前文件版本的第一变色龙哈希值;
第二哈希值计算单元,用于利用所述变色龙签名信息中的第二签名公钥计算所述变色龙签名信息对应的第二变色龙哈希值;
版本合法性校验单元,用于根据所述第一变色龙哈希值和所述第二变色龙哈希值校验所述待校验文件的版本合法性。
示例的,所述完整性校验装置还可以包括:
设备私钥获取模块,用于根据所述设备标识获取所述终端设备对应的设备私钥。
可选地,所述版本校验信息获取模块,具体用于获取验证服务器发送的所述待校验文件的目标版本校验信息,所述目标版本校验信息为所述验证服务器根据所述文件服务器发送的所述待校验文件的目标文件版本和接收所述待校验文件的终端设备的设备标识生成的版本校验信息。
具体地,所述目标哈希树为三叉哈希树。
如图8所示,本申请实施例提供了一种完整性校验装置,应用于验证服务器,所述完整性校验装置可以包括:
完整性信息获取模块801,用于获取各终端设备的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对初始哈希树的初始根节点签名得到的初始根节点签名信息以及与所述第一签名私钥对应的第一签名公钥;
签名信息校验模块802,用于利用所述第一签名公钥对所述初始根节点签名信息进行验证;
哈希树构建模块803,用于当所述初始根节点签名信息验证通过时,根据所述初始根节点构建目标哈希树;
根节点获取模块804,用于获取本地哈希树的本地根节点和所述目标哈希树的目标根节点;
完整性校验模块805,用于根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性。
可选地,所述初始哈希树包括一级初始哈希树和二级初始哈希树,所述初始根节点为所述二级初始哈希树的根节点;
所述一级初始哈希树为各所述终端设备根据各所述终端设备中的各目标文件构建的哈希树;
所述二级初始哈希树为各聚合网关根据各所述聚合网关对应的各一级初始哈希树构建的哈希树。
具体地,所述聚合网关可以包括:
签名公钥获取单元,用于获取各所述终端设备发送的第二签名公钥;
签名信息校验单元,用于分别利用各所述第二签名公钥对各所述终端设备发送的一级根节点签名信息进行验证;
哈希树构建单元,用于当各所述一级根节点签名信息验证通过时,根据各所述一级初始哈希树的一级初始根节点构建所述二级初始哈希树。
在一种可能的实现方式中,所述完整性校验装置还可以包括:
请求文件获取模块,用于获取所述文件服务器发送的请求文件,所述请求文件为各所述终端设备从所述文件服务器中请求过的文件;
一级本地哈希树构建模块,用于根据所述请求文件构建各所述终端设备对应的一级本地哈希树,并获取各所述一级本地哈希树的一级本地根节点;
二级本地哈希树构建模块,用于根据各所述一级本地根节点构建各所述聚合网关对应的二级本地哈希树,并获取各所述二级本地哈希树的二级本地根节点;
本地哈希树构建模块,用于根据各所述二级本地根节点构建所述本地哈希树。
可选地,所述完整性校验模块可以包括:
校验结果获取单元,用于若所述本地根节点与所述目标根节点相同,则得到所述终端设备的完整性校验通过的校验结果;
哈希树比对单元,用于若所述本地根节点与所述目标根节点不相同,则得到所述终端设备的完整性校验不通过的校验结果,并比对所述本地哈希树和所述目标哈希树;
目标终端设备确定单元,用于根据所述本地哈希树和所述目标哈希树的比对结果,确定完整性校验不通过的目标终端设备。
具体地,所述本地哈希树和所述目标哈希树均为三叉哈希树。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图9为本申请一实施例提供的验证服务器的结构示意图。如图9所示,该实施例的验证服务器9包括:至少一个处理器90(图9中仅示出一个)处理器、存储器91以及存储在所述存储器91中并可在所述至少一个处理器90上运行的计算机程序92,所述处理器90执行所述计算机程序92时实现上述实施例二中任意各个完整性校验方法实施例中的步骤。
所述验证服务器9可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该验证服务器可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是验证服务器9的举例,并不构成对验证服务器9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所述处理器90可以是中央处理单元(Central Processing Unit,CPU),该处理器90还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器91在一些实施例中可以是所述验证服务器9的内部存储单元,例如验证服务器9的硬盘或内存。所述存储器91在另一些实施例中也可以是所述验证服务器9的外部存储设备,例如所述验证服务器9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器91还可以既包括所述验证服务器9的内部存储单元也包括外部存储设备。所述存储器91用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
类似地,所述终端设备也包括至少一个处理器、存储器、以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一中任意各个完整性校验方法实施例中的步骤。在此,所述处理器、所述存储器与前述所述的处理器90、存储器91的原理相同,为简明起见,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时可实现上述方法实施例一中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在验证服务器上运行时,使得验证服务器执行时可实现上述方法实施例二中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备/验证服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备/验证服务器实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (27)
1.一种完整性校验方法,其特征在于,应用于终端设备,所述完整性校验方法包括:
获取文件服务器发送的待校验文件和所述待校验文件的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对目标哈希树的目标根节点签名得到的根节点签名信息、所述目标哈希树中与所述待校验文件相关的子节点以及与所述第一签名私钥对应的第一签名公钥,所述目标哈希树为根据所述文件服务器中的所有文件构建的哈希树;
利用所述第一签名公钥对所述根节点签名信息进行验证;
当所述根节点签名信息验证通过时,根据所述待校验文件和所述子节点构建所述目标哈希树对应的当前根节点;
根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性。
2.如权利要求1所述的完整性校验方法,其特征在于,在所述根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性之后,包括:
获取所述待校验文件的目标版本校验信息,所述目标版本校验信息为根据所述待校验文件的目标文件版本生成的版本校验信息;
根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性。
3.如权利要求2所述的完整性校验方法,其特征在于,所述目标版本校验信息为根据所述目标文件版本和所述终端设备的设备标识生成的变色龙签名信息;
所述根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性包括:
根据所述终端设备对应的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述当前文件版本的第一变色龙哈希值;
利用所述变色龙签名信息中的第二签名公钥计算所述变色龙签名信息对应的第二变色龙哈希值;
根据所述第一变色龙哈希值和所述第二变色龙哈希值校验所述待校验文件的版本合法性。
4.如权利要求3所述的完整性校验方法,其特征在于,在所述根据所述终端设备对应的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述当前文件版本的第一变色龙哈希值之前,包括:
根据所述设备标识获取所述终端设备对应的设备私钥。
5.如权利要求2所述的完整性校验方法,其特征在于,所述获取所述待校验文件的目标版本校验信息包括:
获取验证服务器发送的所述待校验文件的目标版本校验信息,所述目标版本校验信息为所述验证服务器根据所述文件服务器发送的所述待校验文件的目标文件版本和接收所述待校验文件的终端设备的设备标识生成的版本校验信息。
6.如权利要求1至5中任一项所述的完整性校验方法,其特征在于,所述目标哈希树为三叉哈希树。
7.一种完整性校验方法,其特征在于,应用于验证服务器,所述完整性校验方法包括:
获取各终端设备的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对初始哈希树的初始根节点签名得到的初始根节点签名信息以及与所述第一签名私钥对应的第一签名公钥;
利用所述第一签名公钥对所述初始根节点签名信息进行验证;
当所述初始根节点签名信息验证通过时,根据所述初始根节点构建目标哈希树;
获取本地哈希树的本地根节点和所述目标哈希树的目标根节点;
根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性。
8.如权利要求7所述的完整性校验方法,其特征在于,所述初始哈希树包括一级初始哈希树和二级初始哈希树,所述初始根节点为所述二级初始哈希树的根节点;
所述一级初始哈希树为各所述终端设备根据各所述终端设备中的各目标文件构建的哈希树;
所述二级初始哈希树为各聚合网关根据各所述聚合网关对应的各一级初始哈希树构建的哈希树。
9.如权利要求8所述的完整性校验方法,其特征在于,所述聚合网关构建所述二级初始哈希树的过程包括:
获取各所述终端设备发送的第二签名公钥;
分别利用各所述第二签名公钥对各所述终端设备发送的一级根节点签名信息进行验证;
当各所述一级根节点签名信息验证通过时,根据各所述一级初始哈希树的一级初始根节点构建所述二级初始哈希树。
10.如权利要求8所述的完整性校验方法,其特征在于,在所述获取本地哈希树的本地根节点之前包括:
获取所述文件服务器发送的请求文件,所述请求文件为各所述终端设备从所述文件服务器中请求过的文件;
根据所述请求文件构建各所述终端设备对应的一级本地哈希树,并获取各所述一级本地哈希树的一级本地根节点;
根据各所述一级本地根节点构建各所述聚合网关对应的二级本地哈希树,并获取各所述二级本地哈希树的二级本地根节点;
根据各所述二级本地根节点构建所述本地哈希树。
11.如权利要求7所述的完整性校验方法,其特征在于,所述根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性包括:
若所述本地根节点与所述目标根节点相同,则得到所述终端设备的完整性校验通过的校验结果;
若所述本地根节点与所述目标根节点不相同,则得到所述终端设备的完整性校验不通过的校验结果,并比对所述本地哈希树和所述目标哈希树;
根据所述本地哈希树和所述目标哈希树的比对结果,确定完整性校验不通过的目标终端设备。
12.如权利要求7至11中任一项所述的完整性校验方法,其特征在于,所述本地哈希树和所述目标哈希树均为三叉哈希树。
13.一种完整性校验装置,其特征在于,应用于终端设备,所述完整性校验装置包括:
文件获取模块,用于获取文件服务器发送的待校验文件和所述待校验文件的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对目标哈希树的目标根节点签名得到的根节点签名信息、所述目标哈希树中与所述待校验文件相关的子节点以及与所述第一签名私钥对应的第一签名公钥,所述目标哈希树为根据所述文件服务器中的所有文件构建的哈希树;
签名信息校验模块,用于利用所述第一签名公钥对所述根节点签名信息进行验证;
当前根节点构建模块,用于当所述根节点签名信息验证通过时,根据所述待校验文件和所述子节点构建所述目标哈希树对应的当前根节点;
完整性校验模块,用于根据所述当前根节点和所述目标根节点校验所述待校验文件的完整性。
14.如权利要求13所述的完整性校验装置,其特征在于,所述完整性校验装置还包括:
版本校验信息获取模块,用于获取所述待校验文件的目标版本校验信息,所述目标版本校验信息为根据所述待校验文件的目标文件版本生成的版本校验信息;
版本合法性校验模块,用于根据所述待校验文件的当前文件版本和所述目标版本校验信息校验所述待校验文件的版本合法性。
15.如权利要求14所述的完整性校验装置,其特征在于,所述目标版本校验信息为根据所述目标文件版本和所述终端设备的设备标识生成的变色龙签名信息;
所述版本合法性校验模块包括:
第一哈希值计算单元,用于根据所述终端设备对应的设备私钥和所述变色龙签名信息中的变色龙随机数计算所述当前文件版本的第一变色龙哈希值;
第二哈希值计算单元,用于利用所述变色龙签名信息中的第二签名公钥计算所述变色龙签名信息对应的第二变色龙哈希值;
版本合法性校验单元,用于根据所述第一变色龙哈希值和所述第二变色龙哈希值校验所述待校验文件的版本合法性。
16.如权利要求15所述的完整性校验装置,其特征在于,所述完整性校验装置还包括:
设备私钥获取模块,用于根据所述设备标识获取所述终端设备对应的设备私钥。
17.如权利要求14所述的完整性校验装置,其特征在于,所述版本校验信息获取模块,具体用于获取验证服务器发送的所述待校验文件的目标版本校验信息,所述目标版本校验信息为所述验证服务器根据所述文件服务器发送的所述待校验文件的目标文件版本和接收所述待校验文件的终端设备的设备标识生成的版本校验信息。
18.如权利要求13至17中任一项所述的完整性校验装置,其特征在于,所述目标哈希树为三叉哈希树。
19.一种完整性校验装置,其特征在于,应用于验证服务器,所述完整性校验装置包括:
完整性信息获取模块,用于获取各终端设备的完整性校验信息,所述完整性校验信息包括利用第一签名私钥对初始哈希树的初始根节点签名得到的初始根节点签名信息以及与所述第一签名私钥对应的第一签名公钥;
签名信息校验模块,用于利用所述第一签名公钥对所述初始根节点签名信息进行验证;
哈希树构建模块,用于当所述初始根节点签名信息验证通过时,根据所述初始根节点构建目标哈希树;
根节点获取模块,用于获取本地哈希树的本地根节点和所述目标哈希树的目标根节点;
完整性校验模块,用于根据所述本地根节点和所述目标根节点校验各所述终端设备的完整性。
20.如权利要求19所述的完整性校验装置,其特征在于,所述初始哈希树包括一级初始哈希树和二级初始哈希树,所述初始根节点为所述二级初始哈希树的根节点;
所述一级初始哈希树为各所述终端设备根据各所述终端设备中的各目标文件构建的哈希树;
所述二级初始哈希树为各聚合网关根据各所述聚合网关对应的各一级初始哈希树构建的哈希树。
21.如权利要求20所述的完整性校验装置,其特征在于,所述聚合网关包括:
签名公钥获取单元,用于获取各所述终端设备发送的第二签名公钥;
签名信息校验单元,用于分别利用各所述第二签名公钥对各所述终端设备发送的一级根节点签名信息进行验证;
哈希树构建单元,用于当各所述一级根节点签名信息验证通过时,根据各所述一级初始哈希树的一级初始根节点构建所述二级初始哈希树。
22.如权利要求20所述的完整性校验装置,其特征在于,所述完整性校验装置还包括:
请求文件获取模块,用于获取所述文件服务器发送的请求文件,所述请求文件为各所述终端设备从所述文件服务器中请求过的文件;
一级本地哈希树构建模块,用于根据所述请求文件构建各所述终端设备对应的一级本地哈希树,并获取各所述一级本地哈希树的一级本地根节点;
二级本地哈希树构建模块,用于根据各所述一级本地根节点构建各所述聚合网关对应的二级本地哈希树,并获取各所述二级本地哈希树的二级本地根节点;
本地哈希树构建模块,用于根据各所述二级本地根节点构建所述本地哈希树。
23.如权利要求19所述的完整性校验装置,其特征在于,所述完整性校验模块包括:
校验结果获取单元,用于若所述本地根节点与所述目标根节点相同,则得到所述终端设备的完整性校验通过的校验结果;
哈希树比对单元,用于若所述本地根节点与所述目标根节点不相同,则得到所述终端设备的完整性校验不通过的校验结果,并比对所述本地哈希树和所述目标哈希树;
目标终端设备确定单元,用于根据所述本地哈希树和所述目标哈希树的比对结果,确定完整性校验不通过的目标终端设备。
24.如权利要求19至23中任一项所述的完整性校验装置,其特征在于,所述本地哈希树和所述目标哈希树均为三叉哈希树。
25.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的完整性校验方法。
26.一种验证服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求7至12任一项所述的完整性校验方法。
27.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述的完整性校验方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284197.5A CN112989430A (zh) | 2019-12-13 | 2019-12-13 | 完整性校验方法、装置、终端设备及验证服务器 |
PCT/CN2020/124157 WO2021114918A1 (zh) | 2019-12-13 | 2020-10-27 | 完整性校验方法、装置、终端设备及验证服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284197.5A CN112989430A (zh) | 2019-12-13 | 2019-12-13 | 完整性校验方法、装置、终端设备及验证服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112989430A true CN112989430A (zh) | 2021-06-18 |
Family
ID=76329545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911284197.5A Pending CN112989430A (zh) | 2019-12-13 | 2019-12-13 | 完整性校验方法、装置、终端设备及验证服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112989430A (zh) |
WO (1) | WO2021114918A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016134A (zh) * | 2020-09-01 | 2020-12-01 | 中国银行股份有限公司 | 一种验证文件完整性的方法及装置 |
CN115906780A (zh) * | 2023-03-14 | 2023-04-04 | 杭州天谷信息科技有限公司 | 可修改格式的电子文档签名方法、装置、设备及存储介质 |
WO2023151677A1 (zh) * | 2022-02-14 | 2023-08-17 | 维沃移动通信有限公司 | 文件系统的文件完整性的确定方法、装置及电子设备 |
WO2024031378A1 (zh) * | 2022-08-09 | 2024-02-15 | 北京小米移动软件有限公司 | 错误源信息的发送和接收方法、装置、设备及存储介质 |
WO2024082266A1 (zh) * | 2022-10-21 | 2024-04-25 | 北京小米移动软件有限公司 | 定位完整性的传输方法、装置、设备及介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567668B (zh) * | 2022-03-07 | 2024-05-07 | 桔帧科技(江苏)有限公司 | 一种基于iNotify实时响应的数据篡改监控方法 |
CN114780129A (zh) * | 2022-05-25 | 2022-07-22 | 歌尔股份有限公司 | 差分升级的修复方法、装置、电子设备及可读存储介质 |
CN114710298B (zh) * | 2022-06-02 | 2022-09-06 | 深圳天谷信息科技有限公司 | 基于变色龙哈希的文档批量签署方法、装置、设备及介质 |
CN115442106A (zh) * | 2022-08-31 | 2022-12-06 | 长沙理工大学 | 一种区块链监管方法、系统、设备及存储介质 |
CN115828322A (zh) * | 2022-11-25 | 2023-03-21 | 中电金信软件(上海)有限公司 | 数据存储完整性的校验方法、装置、电子设备及存储介质 |
CN117094037B (zh) * | 2023-10-16 | 2024-01-05 | 湘江实验室 | 基于Path+ORAM的多路径缓存写回方法、装置及相关设备 |
CN117725572A (zh) * | 2024-02-07 | 2024-03-19 | 支付宝(杭州)信息技术有限公司 | 一种sdk完整性的校验方法、装置、介质及设备 |
CN117785566B (zh) * | 2024-02-26 | 2024-06-07 | 深圳市科力锐科技有限公司 | 备份数据校验方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413313A (zh) * | 2010-09-26 | 2012-04-11 | 索尼公司 | 数据完整性验证信息生成方法和装置、数据完整性验证方法和装置 |
CN101976322B (zh) * | 2010-11-11 | 2012-05-23 | 清华大学 | 基于一种完整性校验的安全元数据管理方法 |
US9223789B1 (en) * | 2013-03-14 | 2015-12-29 | Amazon Technologies, Inc. | Range retrievals from archived data objects according to a predefined hash tree schema |
CN104881615B (zh) * | 2015-06-08 | 2017-12-15 | 武汉大学 | 一种云环境下高效的隐私保护密文连接访问操作验证方法 |
-
2019
- 2019-12-13 CN CN201911284197.5A patent/CN112989430A/zh active Pending
-
2020
- 2020-10-27 WO PCT/CN2020/124157 patent/WO2021114918A1/zh active Application Filing
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016134A (zh) * | 2020-09-01 | 2020-12-01 | 中国银行股份有限公司 | 一种验证文件完整性的方法及装置 |
WO2023151677A1 (zh) * | 2022-02-14 | 2023-08-17 | 维沃移动通信有限公司 | 文件系统的文件完整性的确定方法、装置及电子设备 |
WO2024031378A1 (zh) * | 2022-08-09 | 2024-02-15 | 北京小米移动软件有限公司 | 错误源信息的发送和接收方法、装置、设备及存储介质 |
WO2024082266A1 (zh) * | 2022-10-21 | 2024-04-25 | 北京小米移动软件有限公司 | 定位完整性的传输方法、装置、设备及介质 |
CN115906780A (zh) * | 2023-03-14 | 2023-04-04 | 杭州天谷信息科技有限公司 | 可修改格式的电子文档签名方法、装置、设备及存储介质 |
CN115906780B (zh) * | 2023-03-14 | 2023-06-23 | 杭州天谷信息科技有限公司 | 可修改格式的电子文档签名方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021114918A1 (zh) | 2021-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112989430A (zh) | 完整性校验方法、装置、终端设备及验证服务器 | |
CN107786504B (zh) | Elf文件发布方法、elf文件校验方法、服务器及终端 | |
US9703971B2 (en) | Sensitive operation verification method, terminal device, server, and verification system | |
CN112865956B (zh) | 证书更新方法、装置、终端设备和服务器 | |
WO2017211205A1 (zh) | 一种白名单更新方法和装置 | |
CN106155750A (zh) | 一种资源文件的加载方法和装置 | |
CN105550252A (zh) | 一种文件定位方法、装置及电子设备 | |
CN113038434B (zh) | 设备注册方法、装置、移动终端和存储介质 | |
CN113018868B (zh) | 云游戏登录方法、装置和系统 | |
CN107766747A (zh) | 校验应用程序安装包完整性的方法、移动终端及服务器 | |
WO2020125134A1 (zh) | 自定义模型防篡改方法、装置、终端设备及存储介质 | |
CN108280341B (zh) | 渠道号添加、安装包校验方法及装置 | |
CN109672655A (zh) | 一种差分升级的方法、装置及系统 | |
US10922193B2 (en) | Data backup method, storage medium, and terminal | |
CN110457894A (zh) | root权限的分配方法、装置、存储介质及终端设备 | |
EP3525084A1 (en) | Data processing method, and electronic terminal | |
CN112989148A (zh) | 纠错词排序方法、装置、终端设备和存储介质 | |
CN107103211A (zh) | Sdk发送、应用发布、应用运行方法及装置 | |
CN109271779A (zh) | 一种安装包检测方法、终端设备及服务器 | |
CN106295379A (zh) | 加密输入法和装置、解密输入法和装置及相关设备 | |
CN107465646B (zh) | 一种应用下载方法、系统及相关设备 | |
CN110532324B (zh) | 基于区块链的公告信息展示方法、装置、设备及存储介质 | |
CN111210496B (zh) | 一种图片解码方法、装置以及设备 | |
CN109324816A (zh) | 游戏加载方法及相关产品 | |
CN102780714B (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 |