数据恢复方法、服务器、终端设备及存储介质转让专利

申请号 : CN202011416555.6

文献号 : CN112463454B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙吉平李永建

申请人 : 北京深思数盾科技股份有限公司

摘要 :

本申请公开了一种数据恢复方法、服务器、终端设备及存储介质。该方法包括:接收第一终端发起的数据恢复请求;根据所述数据恢复请求,查找所述指定的备份数据对应的密文包和数据恢复包;利用所述第一签名者的信息验证所述数据恢复包的签名是否正确;如果所述签名正确,则将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者;接收所述第一终端收集到的m个第二恢复码;如果所述m个第二恢复码通过第一验证,则利用所述服务器的私钥恢复所述指定的备份数据。通过上述实现方式,可以保证第一终端的备份数据恢复的安全性,降低了数据无法恢复的风险,提高了数据恢复的灵活性,同时有利于集中管理数据。

权利要求 :

1.一种数据恢复方法,其特征在于,应用于服务器,包括:接收第一终端发起的数据恢复请求;所述数据恢复请求用于指示所述第一终端指定的备份数据;

根据所述数据恢复请求,查找所述指定的备份数据对应的密文包和数据恢复包;其中,所述密文包包括第一密文和第一签名者的信息,所述第一密文为利用服务器的公钥对所述备份数据加密所得到的密文,所述第一签名者具有对数据恢复包签名的权限;所述数据恢复包由所述第一签名者利用所述第一签名者的私钥签发,所述数据恢复包包括协助者信息,所述协助者信息用于指示协助所述第一终端恢复所述备份数据的n个协助者的身份,所述数据恢复包能够由所述第一签名者在非数据备份阶段签发;

利用所述第一签名者的信息验证所述数据恢复包的签名是否正确;

如果所述签名正确,则将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者;

接收所述第一终端收集到的m个第二恢复码,其中,n≥m≥t,所述t为预设的恢复所述备份数据所需的第二恢复码的最低个数;

如果所述m个第二恢复码通过第一验证,则利用所述服务器的私钥恢复所述指定的备份数据;其中,所述第一验证为利用所述n个第一恢复码进行的验证。

2.根据权利要求1所述的方法,其特征在于,所述密文包还包括审批者的信息,所述审批者具有决定所述第一终端是否能够恢复所述指定的备份数据的权限;

该方法还包括:

查找与所述指定的备份数据对应的审批包;所述审批包经过所述审批者的私钥签名;

如果所述审批包通过第三验证,则利用所述第一签名者的信息验证所述数据恢复包的签名,其中所述第三验证包括利用所述审批者的公钥验证所述审批包的签名。

3.根据权利要求1‑2任一项所述的方法,其特征在于,所述密文包经过第一终端的私钥签名;

在利用所述第一签名者的信息验证所述数据恢复包的签名的步骤之前,还包括:利用所述第一终端的公钥对所述密文包的签名进行第二验证;

如果所述第二验证通过,则利用所述第一签名者的信息验证所述数据恢复包的签名。

4.根据权利要求1‑2任一项所述的方法,其特征在于,所述协助者信息还用于指示所述n个协助者各自对应的接收方式;

所述将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者的步骤,包括:

为所述n个协助者分别生成对应的n个第一恢复码;

通过所述n个协助者各自对应的接收方式,将所述n个第一恢复码分别发送给所述n个协助者。

5.根据权利要求1‑2任一项所述的方法,其特征在于,接收所述第一终端收集到的m个第二恢复码的步骤,包括:接收来自所述第一终端的m个第二校验码,所述m个第二校验码分别与所述m个第二恢复码对应;

所述m个第二恢复码通过第一验证的步骤,包括:如果所述m个第二校验码均包含于n个第一校验码中,则通过所述第一验证;其中,所述n个第一校验码分别与所述n个第一恢复码对应。

6.根据权利要求1‑2任一项所述的方法,其特征在于,利用所述服务器的私钥恢复所述指定的备份数据,包括:

利用所述服务器的私钥解密所述第一密文,得到第一明文;

利用与所述m个第二恢复码对应的m个第一恢复码生成会话密钥;

利用所述会话密钥对所述第一明文加密,得到第二密文;

发送所述第二密文给所述第一终端,以使所述第一终端恢复得到所述指定的备份数据。

7.一种数据恢复方法,其特征在于,应用于第一终端,包括:利用服务器的公钥对备份数据加密,得到第一密文;

将密文包发送给所述服务器;其中,所述密文包包括第一密文和第一签名者的信息,所述第一签名者具有对数据恢复包签名的权限,所述数据恢复包包括协助者信息,所述协助者信息用于指示协助所述第一终端恢复所述备份数据的n个协助者的身份,所述数据恢复包能够由所述第一签名者在非数据备份阶段签发;

向服务器发送数据恢复请求;其中,所述数据恢复请求用于指示所述第一终端指定的备份数据;

收集m个第二恢复码;

将所述m个第二恢复码发送给所述服务器;

在所述m个第二恢复码通过服务器的第一验证的情况下,接收恢复的所述备份数据;其中,所述第一验证为利用n个第一恢复码进行的验证,所述n个第一恢复码与n个协助者分别对应,当所述服务器利用所述第一签名者的信息验证与所述指定的备份数据对应的数据恢复包的签名正确时,所述n个第一恢复码被对应发送给所述n个协助者,n≥m≥t,所述t为预设的恢复所述备份数据所需的第二恢复码的最低个数。

8.一种数据恢复方法,其特征在于,应用于第二终端,包括:用第二签名者的私钥对数据恢复包签名;其中,所述数据恢复包包括协助者信息,所述协助者信息用于指示协助第一终端恢复备份数据的n个协助者的身份,所述数据恢复包能够由所述第二签名者在非数据备份阶段签发,密文包包括第一密文和第二签名者的信息,所述第一密文为利用服务器的公钥对所述备份数据加密所得到的密文,所述数据恢复包和所述密文包用于恢复指定的备份数据;

将签名后的数据恢复包发送给服务器。

9.一种服务器,其特征在于,包括:存储器,其配置为存储预定的计算机指令;

处理器,其配置为运行所述预定的计算机指令以执行如权利要求1‑6任一项所述的数据恢复方法。

10.一种终端设备,其特征在于,包括:存储器,其配置为存储预定的计算机指令;

处理器,其配置为运行所述预定的计算机指令以执行如权利要求7或8所述的数据恢复方法。

11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8任一项所述的方法。

说明书 :

数据恢复方法、服务器、终端设备及存储介质

技术领域

[0001] 本申请涉及数据安全领域,特别涉及一种数据恢复方法、服务器、终端设备及存储介质。

背景技术

[0002] 在互联网越来越普及,互联网应用也越来越繁多的今天,很多应用会产生一些对用户来说很重要的隐私数据,例如姓名、电话号码、家庭地址、家庭成员、密钥、银行账号、银
行账号的密码等。这些数据一旦丢失,会给用户造成较大的损失,因此可以对这些重要的数
据进行备份,以便在丢失的时候可以恢复。
[0003] 将终端用户的终端上的数据加密后存储在服务器上,当需要恢复的时候,再从服务器上获取进行恢复,这是一种常见的备份和恢复方式。进一步地,终端用户还可以将数据
备份到服务器上,并且提前设定好一些协助者。当终端上的数据丢失,需要将服务器上的数
据恢复回终端时,终端用户可以通过这些协助者的协助来恢复数据。
[0004] 但是,这些协助者通常都是终端用户提前设定好的,如果其中一部分协助者发生变动,不能够提供协助,将导致能够协助的协助者的数量低于最低门限,进而导致终端用户
无法恢复数据。这是本领域技术人员亟待解决的问题。

发明内容

[0005] 本申请的一个目的在于提供一种数据恢复方法,能够提高数据恢复的安全性和灵活性,降低了数据无法恢复的风险。
[0006] 本申请的第一个方面提供一种数据恢复方法,应用于服务器,包括:
[0007] 接收第一终端发起的数据恢复请求;所述恢复数据请求用于指示所述第一终端指定的备份数据;
[0008] 根据所述数据恢复请求,查找所述指定的备份数据对应的密文包和数据恢复包;其中,所述密文包包括第一密文和第一签名者的信息,所述第一密文为利用服务器的公钥
对所述备份数据加密所得到的密文,所述第一签名者具有对数据恢复包签名的权限;所述
数据恢复包由所述第一签名者利用所述第一签名者的私钥签发,包括协助者信息,所述协
助者信息用于指示协助所述第一终端恢复所述备份数据的n个协助者的身份;
[0009] 利用所述第一签名者的信息验证所述数据恢复包的签名是否正确;
[0010] 如果所述签名正确,则将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者;
[0011] 接收所述第一终端收集到的m个第二恢复码,其中,n≥m≥t,所述t为预设的恢复所述备份数据所需的第二恢复码的最低个数;
[0012] 如果所述m个第二恢复码通过第一验证,则利用所述服务器的私钥恢复所述指定的备份数据;其中,所述第一验证为利用所述n个第一恢复码进行的验证。
[0013] 结合第一方面,在一种可能的实现方式中,所述密文包还包括审批者的信息,所述审批者具有决定所述第一终端是否能够恢复所述指定的备份数据的权限;
[0014] 该方法还包括:
[0015] 查找与所述指定的备份数据对应的审批包;所述审批包经过所述审批者的私钥签名;
[0016] 如果所述审批包通过第三验证,则利用所述第一签名者的信息验证所述数据恢复包的签名,其中所述第三验证包括利用所述审批者的公钥验证所述审批包的签名。
[0017] 结合第一方面,在一种可能的实现方式中,所述密文包经过第一终端的私钥签名;
[0018] 在利用所述第一签名者的信息验证所述数据恢复包的签名的步骤之前,还包括:
[0019] 利用所述第一终端的公钥对所述密文包的签名进行第二验证;
[0020] 如果所述第二验证通过,则利用所述第一签名者的信息验证所述数据恢复包的签名。
[0021] 结合第一方面,在一种可能的实现方式中,所述协助者信息还用于指示所述n个协助者各自对应的接收方式;
[0022] 所述将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者的步骤,包括:
[0023] 为所述n个协助者分别生成对应的n个第一恢复码;
[0024] 通过所述n个协助者各自对应的接收方式,将所述n个第一恢复码分别发送给所述n个协助者。
[0025] 结合第一方面,在一种可能的实现方式中,接收所述第一终端收集到的m个第二恢复码的步骤,包括:
[0026] 接收来自所述第一终端的m个第二校验码,所述m个第二校验码分别与所述m个第二恢复码对应;
[0027] 所述m个第二恢复码通过第一验证的步骤,包括:
[0028] 如果所述m个第二校验码均包含于n个第一校验码中,则通过所述第一验证;其中,所述n个第一校验码分别与所述n个第一恢复码对应。
[0029] 结合第一方面,在一种可能的实现方式中,利用所述服务器的私钥恢复所述指定的备份数据,包括:
[0030] 利用所述服务器的私钥解密所述第一密文,得到第一明文;
[0031] 利用与所述m个第二恢复码对应的m个第一恢复码生成会话密钥;
[0032] 利用所述会话密钥对所述第一明文加密,得到第二密文;
[0033] 发送所述第二密文给所述第一终端,以使所述第一终端恢复得到所述指定的备份数据。
[0034] 本申请的第二方面提供一种数据恢复方法,应用于第一终端,包括:
[0035] 利用服务器的公钥对备份数据加密,得到第一密文;
[0036] 将密文包发送给所述服务器;其中,所述密文包包括第一密文和第一签名者的信息,所述第一签名者具有对数据恢复包签名的权限,所述数据恢复包包括协助者信息,所述
协助者信息用于指示协助所述第一终端恢复所述备份数据的n个协助者的身份;
[0037] 向服务器发送数据恢复请求;其中,所述数据恢复请求用于指示所述第一终端指定的备份数据;
[0038] 收集m个第二恢复码;
[0039] 将所述m个第二恢复码发送给所述服务器;
[0040] 在所述m个第二恢复码通过服务器的第一验证的情况下,接收恢复的所述备份数据;其中,所述第一验证为利用所述n个第一恢复码进行的验证,所述n个第一恢复码与n个
协助者分别对应,当所述服务器利用所述第一签名者的信息验证与所述指定的备份数据对
应的数据恢复包的签名正确时,所述n个第一恢复码被对应发送给所述n个协助者,n≥m≥
t,所述t为预设的恢复所述备份数据所需的第二恢复码的最低个数。
[0041] 结合第二方面,在一种可能的实现方式中,所述密文包还包括审批者的信息,所述审批者具有决定所述第一终端是否能够恢复所述指定的备份数据的权限。
[0042] 结合第二方面,在一种可能的实现方式中,所述密文包经过第一终端的私钥签名。
[0043] 结合第二方面,在一种可能的实现方式中,所述协助者信息还用于指示所述n个协助者各自对应的接收方式。
[0044] 结合第二方面,在一种可能的实现方式中,接收恢复的所述备份数据的步骤,包括:
[0045] 利用所述m个第二恢复码生成会话密钥;
[0046] 接收第二密文;
[0047] 利用所述会话密钥解密所述第二密文,得到所述指定的备份数据。
[0048] 本申请的第三方面提供一种数据恢复方法,应用于第二终端,包括:
[0049] 用第二签名者的私钥对数据恢复包签名;其中,所述数据恢复包包括协助者信息,所述协助者信息用于指示协助第一终端恢复备份数据的n个协助者的身份,密文包包括第
一密文和所述第一签名者的信息,所述第一密文为利用服务器的公钥对所述备份数据加密
所得到的密文;
[0050] 将签名后的数据恢复包发送给服务器。
[0051] 结合第三方面,在一种可能的实现方式中,所述协助者信息还用于指示所述n个协助者各自对应的接收方式。
[0052] 本申请的第四方面提供一种服务器,包括:
[0053] 存储器,其配置为存储预定的计算机指令;
[0054] 处理器,其配置为运行所述预定的计算机指令以执行第一方面的任一种数据恢复方法。
[0055] 本申请的第五方面提供一种终端设备,包括:
[0056] 存储器,其配置为存储预定的计算机指令;
[0057] 处理器,其配置为运行所述预定的计算机指令以执行第二方面的任一种数据恢复方法。
[0058] 本申请的第六方面提供一种终端设备,包括:
[0059] 存储器,其配置为存储预定的计算机指令;
[0060] 处理器,其配置为运行所述预定的计算机指令以执行第三方面的任一种数据恢复方法。
[0061] 本申请的第七方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行第一方面、第二方面或第三方面的任一种方
法。
[0062] 采用上述实现方式中的数据恢复方法,一方面,数据恢复包包括协助者信息,协助者信息用于指示协助所述第一终端恢复所述备份数据的n个协助者的身份,而数据恢复包
由第一签名者的私钥签发,即第一签名者具有合法的修改数据恢复包中的信息的权限;另
一方面,服务器查找到的指定的备份数据对应的密文包中除了第一密文之外,还包括第一
签名者的信息。服务器在利用自己的私钥解密第一密文之前,可以利用第一签名者的信息
来验证数据恢复包的签名,从而确保数据恢复包是由具有权限的第一签名者所签发的,保
证数据恢复的安全性。由于第一签名者具有签发数据恢复包的权限,无论是在第一终端的
用户丢失数据之前还是之后,第一签名者都可以合法修改数据恢复包中的协助者信息,降
低了数据无法恢复的风险,提高了数据恢复的灵活性。此外,对于某些应用场景,例如企业
场景而言,采用上述数据恢复方法也有利于企业集中管理数据以及数据相应的操作权限。

附图说明

[0063] 图1是本申请的一个实施例中数据备份和恢复所涉及的交互端的示意图。
[0064] 图2是本申请一示例性实施例示出的一种数据备份、数据恢复包签发和数据恢复方法的流程图。
[0065] 图3是根据本申请一示例性实施例示出的一种服务器的结构示意图。

具体实施方式

[0066] 为了使得本申请的目的、技术方案和优点更加清楚,下面将结合本申请的附图,对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请的一部分实施
例,而不是全部的实施例。基于所描述的本申请的实施例,本领域普通技术人员在无需创造
性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0067] 图1是本申请的一个实施例中数据备份和恢复所涉及的交互端的示意图。
[0068] 如图1所示,本申请实施例中的交互端包括第一终端、服务器、签名者终端和协助者终端。其中,第一终端、签名者终端和协助者终端分别与服务器通信连接。第一终端为需
要对数据进行备份以及恢复的用户所使用的终端设备,第一终端上可以安装一个客户端CS
(Client System)来实现本申请实施例中第一终端所执行的步骤。签名者终端为签名者所
使用的终端设备,签名者终端上可以安装一个客户端来实现本申请实施例中第二终端所执
行的步骤。协助者终端为协助者所使用的终端设备,协助者终端可以用于接收服务器发送
的恢复码。
[0069] 这里,终端设备可以包括但不限于诸如手机、个人数字助理(Personal Digital Assistant,PDA)、手环、VR眼镜的移动终端设备,或者诸如个人计算机(Personal 
Computer,PC)的PC终端设备等,本申请对于终端设备的具体产品形态不作限定。
[0070] 服务器可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心,本申请对此不作限定。
[0071] 第一终端的用户、签名者、协助者可以是个人用户,也可以是企业用户,本申请对此不作限定。这里的用户可以是人,也可以不是人,例如可以是无人值守的自动化程序,本
申请对此不作限定。
[0072] 图2是本申请一示例性实施例示出的一种数据备份、数据恢复包签发和数据恢复方法的流程图,该方法可以由图1所示的四种交互端来对应执行。
[0073] 本申请实施例中的数据备份的方法可以包括:
[0074] S210:第一终端利用服务器的公钥对备份数据加密,得到第一密文。
[0075] 需要说明的是,本申请实施例中被备份和恢复的数据可以是密钥,可以是其他任何数据,本申请对此不作限定。
[0076] 还需要说明的是,备份数据可以具有唯一ID,用于唯一标识该备份数据。该唯一ID可以是第一终端为备份数据分配的,也可以是服务器为备份数据分配的,本申请对此不作
限定。
[0077] S220:第一终端生成密文包。
[0078] 密文包可以包括前述的第一密文,以及第一签名者的信息。所述第一签名者具有对数据恢复包签名的权限。通过第一签名者的信息,可以找到对应的第一签名者。只有该密
文包中的第一签名者的信息所对应的第一签名者签过名的数据恢复包,才能通过服务器的
签名验证。示例性地,第一签名者的信息可以是第一签名者的公钥信息。
[0079] 可选地,密文包可以具有唯一ID,用于唯一标识该密文包。密文包的唯一ID可以是第一终端为密文包分配的,也可以是服务器为密文包分配的,本申请对此不作限定。
[0080] S230:第一终端将密文包发送给所述服务器。
[0081] 本申请实施例中的数据恢复包签发方法可以由签名者终端来执行,该方法可以包括:
[0082] S310:签名者终端用第二签名者的私钥对数据恢复包签名。
[0083] 数据恢复包用于限定数据恢复策略。具体地,数据恢复包可以包括协助者信息。这里的协助者信息用于指示第二签名者指定的协助第一终端恢复备份数据的n个协助者的身
份。第二签名者可以是前述的第一签名者,也可以是其他签名者。当第二签名者为前述的第
一签名者时,签名者终端签发的数据恢复包可以通过服务器的验证;当第二签名者不是第
一签名者时,签名者终端签发的数据恢复包无法通过服务器的验证。
[0084] 应理解,第一签名者和第二签名者可以分别使用不同的签名者终端,也可以使用同一个签名者终端,本申请对此不作限定。
[0085] 数据恢复包中还可以包括门限信息。这里的门限信息用于指示:获取到的协助者反馈的恢复码的数量m≥预设门限值t。
[0086] S320:签名者终端将签名后的数据恢复包发送给服务器。
[0087] 需要说明的是,签名者终端可以直接将签名后的数据恢复包发送给服务器,也可以通过中间者发送,本申请对此不作限定。例如,签名者终端可以将签名后的数据恢复包发
送给第一终端,由第一终端转发给服务器。
[0088] 数据恢复包可以具有备份数据的唯一ID或者密文包的唯一ID,通过这样的方式,可以将数据恢复包和密文包关联起来。
[0089] 还需要说明的是,签名者终端可以在数据备份阶段签发数据恢复包,也可以在数据恢复阶段,在服务器接收到第一终端发起的数据恢复请求之后,响应于服务器向签名者
终端发起的请求来签发数据恢复包。也就是说,数据恢复包可以是在第一终端的用户尚未
丢失数据的时候由签名者终端签发,也可以是在第一终端的用户已经丢失数据之后由签名
者终端签发。通过这样的方式,即便原本的协助者发生改变,具有权限的第一签名者也可以
在签名者终端重新签发与密文包对应的数据恢复包,改变协助者信息,从而使第一终端的
用户能够顺利恢复备份数据。
[0090] 本申请实施例中的数据恢复方法可以包括:
[0091] S410:第一终端向服务器发送数据恢复请求。
[0092] 这里的数据恢复请求用于指示第一终端指定的备份数据。示例性地,数据恢复请求中可以携带备份数据的唯一ID。示例性地,数据恢复请求中也可以携带密文包的唯一ID。
通过这样的方式,第一终端可以指定本次需要恢复的数据。当密文包中包含一份或多份数
据的时候,第一终端可以通过备份数据的唯一ID来指定要恢复密文包中的某份数据,也可
以通过密文包的唯一ID来指定要恢复密文包中的所有数据,本申请对此不作限定。
[0093] S420:服务器根据接收到的数据恢复请求,查找所述指定的备份数据对应的密文包和数据恢复包。
[0094] 示例性地,服务器通过数据恢复请求中携带的备份数据的唯一ID或者密文包的唯一ID,可以查找到第一终端指定的备份数据所对应的密文包和数据恢复包。
[0095] S430:服务器利用第一签名者的信息验证所述数据恢复包的签名是否正确。
[0096] 服务器可以通过第一签名者的信息确定第一签名者公钥,然后用第一签名者公钥来验证数据恢复包的签名。通过这样的方式,服务器可以确定数据恢复包所指示的数据恢
复策略是否确实是由具有权限的第一签名者所签发的。如果不是第一签名者签发的,而是
由其他签名者签发的,则无法通过服务器的验证,相应地也不会再利用该数据恢复包来恢
复第一终端指定的备份数据。
[0097] S440:如果所述签名正确,则服务器将n个协助者对应的n个第一恢复码,分别发送给所述n个协助者。
[0098] 这里的n个协助者就是数据恢复包中所指示的协助者,这些协助者可以由第一签名者来决定,也可以由第一终端的用户决定之后告知第一签名者。
[0099] 服务器可以为n个协助者分别生成对应的n个第一恢复码。示例性地,每个第一恢复码可以是一个字符串,例如“038147”。服务器再将这n个第一恢复码,分别发送给对应的n
个协助者。
[0100] 可选地,协助者信息还用于指示所述n个协助者各自对应的接收方式。示例性地,协助者对应的接收第一恢复码的方式可以是邮件、手机短信等,本申请对于接收方式的具
体形式不作限定。采用这样的实现方式,服务器就可以通过n个协助者各自对应的接收方
式,将n个第一恢复码分别发送给n个协助者。
[0101] 对于不同的协助者而言,其对应的接收方式可以相同,也可以不同,本申请对此不作限定。示例性地,服务器可以通过邮件的方式给协助者1发送对应的第一恢复码
“038147”,通过手机短信的方式给协助者2发送对应的第一恢复码“835641”。
[0102] S450:第一终端收集m个第二恢复码。
[0103] 协助者可以通过不同的途径将其接收到的第一恢复码告知第一终端,以便第一终端收集。示例性地,协助者可以通过口头告知的方式将自己接收到的第一恢复码告知第一
终端的用户,由第一终端的用户输入到第一终端中。示例性地,协助者也可以通过协助者终
端直接将接收到的第一恢复码转给第一终端。
[0104] 第一终端收集到m个恢复码,由于此时第一终端并不一定可以确认其接收到的恢复码一定是服务器发送的第一恢复码,为便于区分,此处将第一终端收集到的恢复码称为
第二恢复码。
[0105] 需要说明的是,n≥m≥t,t为预设的恢复备份数据所需的第二恢复码的最低个数。也就是说,在第一终端收集到最少t个第二恢复码之后,第一终端才将这些恢复码发送给服
务器。如果第一终端收集到的第二恢复码的数量小于t个,那么即便这些第二恢复码能够通
过服务器的验证,也不足以恢复备份数据。
[0106] S460:第一终端将m个第二恢复码发送给服务器。
[0107] 示例性地,第一终端可以直接将这m个第二恢复码的明文发送给服务器。示例性地,第一终端也可以将这m个第二恢复码加密后,将第二恢复码的密文发送给服务器,再由
服务器对第二恢复码的密文解密,得到m个第二恢复码。示例性地,第一终端还可以将分别
计算m个第二恢复码对应的第二校验码,然后将m个第二校验码发送给服务器。通过加密或
者发送第二校验码的方式,有利于进一步提高数据恢复的安全性。
[0108] S470:服务器利用n个第一恢复码对m个第二恢复码进行第一验证。
[0109] 示例性地,服务器可以验证m个第二恢复码是否与n个第一恢复码中的m个相同,如果相同,则确定第一验证通过。示例性地,服务器可以分别计算n个第一恢复码对应的第一
校验码,然后验证接收到的m个第二校验码是否与n个第一校验码中的m个相同,如果相同,
则确定第一验证通过。否则,则可以输出“验证失败”的提示信息。
[0110] 需要说明的是,当采用的校验码的方式来做第一验证时,第一校验码和第一恢复码之间的映射关系,与第二校验码和第二恢复码之间的映射关系相同。也就是说,第一终端
利用第二恢复码计算第二校验码的算法,与服务器利用第一恢复码计算第一校验码的算法
相同。第一终端和服务器所使用的算法,可以是双方预先约定的算法,例如哈希算法。
[0111] S480:如果第一验证通过,则利用服务器的私钥恢复第一终端指定的备份数据。
[0112] 服务器可以利用服务器的私钥解密所述指定的备份数据对应的密文包中的第一密文,然后将解密后的数据发送给第一终端,以恢复第一终端指定的备份数据。
[0113] 可选地,利用服务器的私钥恢复第一终端指定的备份数据步骤,可以包括:
[0114] S481:服务器利用服务器的私钥解密所述第一密文,得到第一明文;
[0115] S482:服务器利用与所述m个第二恢复码对应的m个第一恢复码生成会话密钥;
[0116] S483:服务器利用所述会话密钥对所述第一明文加密,得到第二密文;
[0117] S484:服务器发送所述第二密文给所述第一终端,以使所述第一终端恢复得到所述指定的备份数据。
[0118] 通过这样的方式,m个第二恢复码不但用于决定第一终端指定的备份数据是否可以被恢复,还在可以被恢复的情况下起到用于生成会话密钥,从而保证备份数据传输的安
全性。对于第一终端不同时间发起的数据恢复请求,由于每一次的第二恢复码可能不同,相
应地每一次产生的会话密钥都不同,从而进一步提供数据恢复的安全性。
[0119] 如前所述,如果协助者由第一终端的用户提前设定好,则一旦部分协助者无法提供协助,可能会导致第一终端的用户无法恢复数据。例如,在企业场景中,对于一些重要的
数据,第一终端的用户A在备份的时候可以提前设定好n个同事来协助恢复。但是,如果过了
一段时间,当用户A需要恢复备份数据时,这n个同事中已经有部分同事离职了,不能配合接
收恢复码和将恢复码告知用户A,则A就无法恢复数据。尤其是,如果用户A备份的数据为用
户A的密钥,则用户A在丢失了备份数据之后,就完全失去了改动协助者的可能,也就无法再
恢复数据。
[0120] 采用本申请实施例中的数据恢复方法,一方面,数据恢复包包括协助者信息,协助者信息用于指示协助所述第一终端恢复所述备份数据的n个协助者的身份,而数据恢复包
由第一签名者的私钥签发,即第一签名者具有合法的修改数据恢复包中的信息的权限;另
一方面,服务器查找到的指定的备份数据对应的密文包中除了第一密文之外,还包括第一
签名者的信息。服务器在利用自己的私钥解密第一密文之前,可以利用第一签名者的信息
来验证数据恢复包的签名,从而确保数据恢复包是由具有权限的第一签名者所签发的,保
证数据恢复的安全性。由于第一签名者具有签发数据恢复包的权限,无论是在第一终端的
用户丢失数据之前还是之后,第一签名者都可以合法修改数据恢复包中的协助者信息,降
低了数据无法恢复的风险,提高了数据恢复的灵活性。
[0121] 另外,对于某些应用场景,例如企业场景而言,采用上述数据恢复方法也有利于企业集中管理数据以及数据相应的操作权限。例如,如果第一终端的用户为普通职员,则可以
将签名者设定为普通职员的管理员。通过这样的方式,普通职员在丢失数据并需要恢复数
据的时候,需要管理员签发的数据恢复包才能够恢复数据,从而便于集中管理数据。如果普
通职员原本设定的部分协助者无法再提供协助,管理员就可以修改数据恢复包中的协助者
信息,来指定新的协助者来协助普通职员恢复数据。管理员通过修改协助者信息设定的协
助者可以是与普通职员有关联的人,也可以是与普通职员没有关联的人,本申请对此不作
限定。
[0122] 可选地,密文包可以经过第一终端的私钥签名。也就是说,第一终端在将原本的密文包发送给服务器之前,可以用第一终端的私钥对密文包中的数据签名,形成经过签名的
密文包。
[0123] 利用所述第一签名者的信息验证所述数据恢复包的签名的步骤,可被替换为:
[0124] 利用第一终端的公钥对所述密文包的签名进行第二验证;
[0125] 如果第二验证通过,则利用所述第一签名者的信息验证所述数据恢复包的签名。
[0126] 通过这样的方式,服务器通过验证密文包的签名来确认密文包是否来自第一终端,确认密文包中的数据是否被篡改过。如果确实来自第一终端且没有被篡改过,才使用密
文包中的第一签名者的信息来验证数据恢复包,从而进一步提高数据恢复的安全性。
[0127] 可选地,所述密文包还可以包括审批者的信息。本申请实施例中的审批者具有决定第一终端是否能够恢复指定的备份数据的权限。相应地,前述方法还可以包括:
[0128] 查找与所述指定的备份数据对应的审批包;
[0129] 如果所述审批包通过第三验证,则利用所述第一签名者的信息验证所述数据恢复包的签名。
[0130] 本申请实施例中的审批包经过审批者的私钥签名。审批者可以在数据恢复的阶段,响应于服务器的请求来生成审批包,也可以在数据备份阶段就提前生成好审批包。
[0131] 审批包中可以携带备份数据的唯一ID或者密文包的唯一ID,以便服务器查找。示例性地,服务器通过备份数据的唯一ID或者密文包的唯一ID,查找到第一终端指定的备份
数据所对应的审批包。即,审批包和密文包和可以通过备份数据的唯一ID或者密文包的唯
一ID关联起来。
[0132] 本申请实施例中的第三验证包括利用审批者的公钥验证审批包的签名,如果验证签名通过,则审批包通过第三验证。
[0133] 采用该实现方式,在便于集中管理数据的同时,可以进一步简化审批者的操作。例如,在企业场景中,如果第一终端的用户为普通职员,则可以将审批者设定为普通职员的管
理员。通过这样的方式,普通职员在丢失数据并需要恢复数据的时候,需要管理员签发的审
批包才能够恢复数据,从而便于集中管理数据。相较于将管理员设为签名者的方案而言,管
理员只需要决定普通职员是否被允许恢复指定的备份数据,可以不关心具体由哪些协助者
来协助普通职员恢复数据,可以不执行修改协助者的信息、重新签发数据恢复包的操作,从
而简化管理员的操作。
[0134] 下述为本申请的产品实施例,可以用于实现本申请方法实施例中的相应步骤。对于本申请产品实施例中未披露的细节,请参照方法实施例。
[0135] 本实施例提供一种数据恢复装置,该装置包括:
[0136] 接收模块,用于接收第一终端发起的数据恢复请求;以及,接收所述第一终端收集到的m个第二恢复码;其中,所述恢复数据请求用于指示所述第一终端指定的备份数据;n≥
m≥t,所述t为预设的恢复所述备份数据所需的第二恢复码的最低个数;
[0137] 处理模块,用于根据所述数据恢复请求,查找所述指定的备份数据对应的密文包和数据恢复包;利用所述第一签名者的信息验证所述数据恢复包的签名是否正确;在所述
签名正确的情况下,将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者;
在所述m个第二恢复码通过第一验证的情况下,利用所述服务器的私钥恢复所述指定的备
份数据。
[0138] 其中,所述密文包包括第一密文和第一签名者的信息,所述第一密文为利用服务器的公钥对所述备份数据加密所得到的密文,所述第一签名者具有对数据恢复包签名的权
限;所述数据恢复包由所述第一签名者利用所述第一签名者的私钥签发,包括协助者信息,
所述协助者信息用于指示协助所述第一终端恢复所述备份数据的n个协助者的身份;所述
第一验证为利用所述n个第一恢复码进行的验证。
[0139] 可选地,处理模块还可以用于实现前述的服务器所执行的任一种方法中的部分或全部步骤,此处不再赘述。该装置中各个模块的功能和作用的实现过程具体详见上述方法
中对应步骤的实现过程,在此亦不再赘述。
[0140] 图3是根据本申请一示例性实施例示出的一种服务器500的框图。如图3所示,该服务器500包括存储器510和处理器520,存储器510存储有计算机程序,该计算机程序被处理
器520执行时,使得处理器520执行如上所述的实施例提供的所述服务器侧执行的方法的部
分或全部步骤。
[0141] 本申请实施例还提供一种终端设备,该终端设备包括存储器和处理器,存储器存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行如上所述的实施例提供
的第一终端侧执行的方法的部分或全部步骤。
[0142] 本申请实施例还提供另一种终端设备,该终端设备包括存储器和处理器,存储器存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行如上所述的实施例提
供的签名者终端侧执行的方法的部分或全部步骤。
[0143] 本申请还提供了一种存储介质,当存储介质中的指令由计算机的处理器执行时,使得计算机能够执行前述的任一种数据恢复方法。
[0144] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本申请的范围。
[0145] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0146] 在本申请所提供的几个实施例中,应该理解到,所揭露的服务器、终端、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元
的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组
件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或者不执行。另一点,所显
示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间
接耦合或通信连接,可以是电性、机械或其它的形式。
[0147] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0148] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0149] 功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现
有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机
软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计
算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前
述的存储介质包括:U盘、移动硬盘、只读存储器(Read‑Only Memory,ROM)、随机存取存储器
(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序校验码的介质。
[0150] 此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本申请的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施
例。权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明
书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和
示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所
指示。
[0151] 以上对本申请多个实施例进行了详细说明,但本申请不限于这些具体的实施例,本领域技术人员在本申请构思的基础上,能够做出多种变型和修改实施例,这些变型和修
改都应落入本申请所要求保护的范围之内。