一种数据备份方法、系统及相关组件与流程

文档序号:17322656发布日期:2019-04-05 21:37阅读:296来源:国知局
一种数据备份方法、系统及相关组件与流程

本申请涉及数据存储技术领域,特别涉及一种数据备份方法、系统、一种计算机可读存储介质及一种电子设备。



背景技术:

随着信息技术的发展,世界上每时每刻都有海量的数据产生,而数据丢失可能会造成巨大的损失,因此数据备份成为当今数据存储技术中一个重要的发展方向。

现有技术中数据备份方法一般采用简单加密云端备份的方案,由用户设置加密密码,将目标数据经过加密后备份至云端服务器,加密密码采用用户大脑记忆或其他方式保存。但是,在上述现有技术中用户为了便于记忆普遍会设置较短的对称加密密码,因此根据加密密码生成的加密密钥位数也较短。这实际上减少了计算机暴力破解所需要进行的密钥数量尝试,大大降低了加密方法的安全性。而如果用户设置较长的对称加密密码,则大多数用户无法记忆,需要使用工具保存对称加密密码,则增加了用户保存对称加密密码的成本。用户在通过云备份解决目标数据备份问题后,还需要再解决对称加密密码备份的问题。

因此,如何在降低用户记忆成本的前提下,实现数据的安全备份是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种数据备份方法、系统、一种计算机可读存储介质及一种电子设备,能够在降低用户记忆成本的前提下,实现数据的安全备份。

为解决上述技术问题,本申请提供一种数据备份方法,该数据备份方法包括:

当接收到备份指令时,根据所述备份指令向云端服务器发送备份请求,以便所述云端服务器返回第一加密密码问题;

将所述第一加密密码问题传输至人机界面,并确定用户对所述第一加密密码问题的第一用户答案;

按照预设规则将所述第一用户答案转换为标准种子密钥;

利用所述标准种子密钥加密目标数据得到备份数据,并向所述云端服务器上传所述备份数据。

可选的,所述按照预设规则将所述第一用户答案转换为标准种子密钥包括:

按照预设顺序对所有所述第一用户答案执行拼接操作得到种子字符串;

对所述种子字符串执行哈希运算得到所述种子字符串的哈希值,并将所述哈希值作为所述标准种子密钥。

可选的,利用所述标准种子密钥加密目标数据得到备份数据包括:

通过256位aes算法利用所述标准种子密钥加密所述目标数据得到所述备份数据。

可选的,还包括:

当接收到数据恢复指令时,根据所述数据恢复指令向所述云端服务器发送身份验证信息和恢复请求,以便所述云端服务器在根据所述身份验证信息判定身份验证通过后返回所述恢复请求对应的数据包。

可选的,在接收到所述恢复请求对应的数据包之后,还包括:

解析所述数据包得到目标备份数据和所述目标备份数据对应的第二加密密码问题;

将所述第二加密密码问题传输至所述人机界面,并确定所述用户对所述第二加密密码问题的第二用户答案;

按照所述预设规则将所述第二用户答案转换为目标种子密钥;

利用所述目标种子密钥解密所述目标备份数据以便完成数据恢复操作。

可选的,在利用所述标准种子密钥加密目标数据得到备份数据之前,还包括:

根据所述数据备份指令调取安全存储模块中存储的所述目标数据。

可选的,在将所述备份数据上传至所述云端服务器时,还包括:

将所述第一加密密码问题上传至所述云端服务器,以便所述云端服务器记录所述第一加密密码问题与所述备份数据的对应关系。

本申请还提供了一种数据备份系统,该系统包括:

通讯模块,用于当接收到数据备份指令时,根据所述数据备份指令向云端服务器发送备份请求,以便所述云端服务器返回第一加密密码问题;

答案确定模块,用于将所述第一加密密码问题传输至人机界面,并确定用户对所述第一加密密码问题的第一用户答案;

种子密钥生成模块,用于按照预设规则将所述第一用户答案转换为标准种子密钥;

备份模块,用于利用所述标准种子密钥加密目标数据得到备份数据,并向所述云端服务器上传所述备份数据。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述数据备份方法执行的步骤。

本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述数据备份方法执行的步骤。

本申请提供了一种数据备份方法,包括当接收到备份指令时,根据所述备份指令向云端服务器发送备份请求,以便所述云端服务器返回第一加密密码问题;将所述第一加密密码问题传输至人机界面,并确定用户对所述第一加密密码问题的第一用户答案;按照预设规则将所述第一用户答案转换为标准种子密钥;利用所述标准种子密钥加密目标数据得到备份数据,并向所述云端服务器上传所述备份数据。

本申请在进行数据备份之前,先向云端服务器发送备份请求以便接收云端服务器返回的第一加密密码问题。当用户根据第一加密密码问题输入相应的第一用户答案时,将第一用户答案按照预设规则转换为标准种子密钥,以便利用标准种子密钥加密目标数据并执行备份数据上传操作。由于目标数据的加密过程中使用的是第一用户答案对应的标准种子密钥而不是第一用户答案,因此能够极大的提升备份数据的安全性。当需要对备份数据进行解密时,只需用户重复输入第一用户答案,进一步基于预设规则转换得到标准种子密钥完成解密操作。本申请提供的数据备份方法无需用户记忆用于加密目标数据的标准种子密钥,只需要记忆能够转化为标准种子密钥的第一用户答案即可,而由于第一用户答案通常比较短且是由用户自主填写的,因此本申请的数据备份方案便于用户记忆第一用户答案。综上可知,本申请能够在降低用户记忆成本的前提下,实现数据的安全备份。本申请同时还提供了一种数据备份系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种数据备份方法的流程图;

图2为本申请实施例所提供的另一种数据备份方法的流程图;

图3为本申请实施例所提供的一种数据恢复方法的流程图;

图4为实际应用中区块链钱包的数据备份的原理示意图;

图5为实际应用中区块链钱包的数据恢复的原理示意图;

图6为实际应用中数据备份流程的流程图;

图7为实际应用中数据备份恢复流程的流程图;

图8为本申请实施例所提供的一种数据备份系统的结构示意图。

具体实施方式

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

当下常见的数据备份方法主要包括以下几种形式:

(1)硬件备份方案:将目标数据存放在智能卡等硬件设备中,使用物理方式保存备份。(2)web在线备份方案:将目标数据存放至提供web在线的服务器管理。(3)简单加密云端备份方案:用户设置加密密码,将目标数据经过加密后备份至云端服务器。加密密码采用用户大脑记忆或其他方式保存。(4)分散密钥管理方案:采用沙米尔秘密共享方案等数据分散技术,将目标数据分成多个份额存放至不同的存储位置。

硬件备份方案,安全性的保障来源于记录目标数据的介质不被盗,但存在智能卡等硬件设备被物理方式窃取的风险。由于用户需要用物理方式妥善保存纸、硬件等介质,比如存放于保险柜等,存在一定的管理数据备份的成本。如果不妥善保存,则存在物理丢失的风险。web在线备份方案将目标数据明文存放至服务器管理,因此提供web在线服务的服务商能够盗用私钥,存在web在线服务商的信用风险,也存在服务器被攻击的风险,安全性低。简单加密云端备份方案中,用户设置加密密码,加密密码按算法生成加密密钥,对称加密密钥用于加密数据和解密加密数据,存在对称加密密钥长度不够的安全性风险,以及保存对称加密密钥的安全性风险和可用性问题。(1)在普遍采用的aes等加密方式中,用于加密的对称加密密码是用户自行设置的。为便于记忆,用户普遍会设置较短的对称加密密码,因此根据加密密码生成的加密密钥位数也较短。这实际上减少了计算机暴力破解所需要进行的密钥数量尝试,大大降低了aes加密方法的安全性。即使采取加盐等方法自动增强密钥强度,起到的作用也十分有限,因为加盐的算法相对固定,也容易通过加盐软件逆向分析获得加盐数据。(2)但如果用户设置较长的对称加密密码,则大多数用户无法记忆,需要使用工具保存对称加密密码,则增加了用户保存对称加密密码的成本。用户在通过云备份解决目标数据备份问题后,还需要再解决对称加密密码备份的问题,并不实用。(3)对称加密密码本身也存在丢失和被窃取的风险。分散密钥密钥管理方案采用的沙米尔秘密共享方案等密钥分散技术,需要用户寻找多个存储位置进行备份。采用云存储方式时,需要应用软件对接多个云存储服务器,对接成本相对于只需要单一云存储服务器的成本更高。

基于上述现有技术中存在的种种缺陷,本申请通过以下几个实施例提供新的数据备份方案,能够实现在降低用户记忆成本的前提下,实现数据的安全备份。

下面请参见图1,图1为本申请实施例所提供的一种数据备份方法的流程图。

具体步骤可以包括:

s101:当接收到备份指令时,根据备份指令向云端服务器发送备份请求,以便云端服务器返回第一加密密码问题;

其中,本实施例的实施主体可以为应用软件(如视频播放软件、云盘存储软件、区块链钱包软件或社交软件等),也可以是运行该应用软件的终端设备。在本步骤之前默认存在下发备份指令的操作,该备份指令可以是用户下发的,也可以是运行该应用软件的终端设备按照预设周期下发的以便实现目标数据的周期性备份。

在接收到数据备份指令的基础上,本步骤直接根据数据备份指令向云端服务器发送备份请求。云端服务器又称云端备份服务器,是一种用于备份存储应用软件的数据的服务器,为了保证备份数据的安全性需要对备份数据进行加密操作。在现有技术中,该加密后的备份数据的密钥由用户设置,若密钥过于复杂则不方便用户记忆,若密码过于简单则无法保证备份数据的安全性。

本实施例默认,云端服务器在接收到备份请求之后,可以向运行应用该软件的终端设备返回第一加密密码问题。云端服务器执行相关操作的具体过程可以为:当接收到终端设备发送的备份请求时,从问题数据库中选择n个问题作为第一加密密码问题发送回终端设备。问题数据库中可以存在多个候选问题,可以随机选择n个候选问题。问题数据库中的候选问题可以包括姓名类问题、个人经历类问题和通讯地址类问题等问题。

s102:将第一加密密码问题传输至人机界面,并确定用户对第一加密密码问题的第一用户答案;

其中,在接收到第一加密密码问题之后,可以将所有的第一加密密码问题传输至人机界面进行显示,以便用户根据第一加密密码问题进行答复。需要说明的是,本实施例中提到的第一加密密码问题可以为需要用户根据自己亲身经历回答的主观问题。

需要说明的是,本步骤显示在人机界面的第一加密密码问题为云端服务器传输的全部问题,在用户回答时,用户可以选择预设数量第一加密密码问题进行回答。可以在人机界面设置相关程序,以便只有在用户回答的第一加密密码问题的数目大于或等于预设数量时才允许用户提交答案。本实施例默认,用户在回答第一加密密码问题之后用户会进行答案提交。

当检测到用户提交答案时,即可确定用户提交的答案为用户对第一加密密码问题的第一用户答案。作为一种可行的实施方式,在本步骤确定第一用户答案的同时,还可以存在确定每一第一用户答案与每一第一加密密码问题的对应关系。

举例说明s101与s102的操作过程:当运行某应用软件的终端设备接收到数据备份指令时,根据数据备份指令向云端服务器发送备份请求。云端服务器在接收到备份请求之后从问题数据库随机选择a、b、c、d四个候选问题作为第一加密密码问题发送至终端设备。终端设备将第一加密密码问题a、b、c、d均显示至人机界面,以便用户进行答复。假设本备份流程要求至少有2个第一加密密码问题被回答,因此用户可以选择a、b、c三个问题进行答复,答案分别为a、b和c,用户答复之后选择提交答案。终端设备可以确定a、b和c为用户对第一加密密码问题的第一用户答案。

需要进一步的说明的是,第一用户答案越长越不方便用户记忆,因此本实施例可以限定用户对第一加密密码问题的第一用户答案的字节数,每一第一用户答案的字节数需要小于或等于预设字节数(如,汉字字数小于6,英文字母数小于20)。

s103:按照预设规则将第一用户答案转换为标准种子密钥;

其中,在确定第一用户答案的基础上,本步骤旨在按照预设规则将字节数较短的第一用户答案转换为相对较长的标准种子密钥。此处默认标准种子密钥的字节数远大于第一用户答案的字节数。具体的,本步骤是将所有的第一用户答案汇总在一起再进行预设规则对应的转换操作得到标准种子密钥。

本步骤不限定采用哪一种规则实现第一用户答案到标准种子密钥的转换过程,如通过哈希值计算、对称加密算法等方式实现标准种子密钥的转换。

s104:利用标准种子密钥加密目标数据得到备份数据,并向云端服务器上传备份数据。

其中,本步骤的目的在于利用标准种子密钥对目标数据进行加密得到备份数据。需要说明的是,实施例并不使用第一用户答案对目标数据直接进行加密,而是使用第一用户答案转换得到的标准种子密钥进行加密,由于标准种子密钥的字节数远大于第一用户答案,且预设规则的转换操作使得标准种子密钥具有完全的随机性,可以使备份数据具有极高的安全性。本步骤不对目标数据进行具体的限定,目标数据可以为应用软件中任一种或任几种数据的组合。

在得到备份数据之后,可以将备份数据上传至云端服务器,以便进行存储。作为一种优选的实施方式,在上传备份数据的同时还可以向云端服务器上传第一用户答案对应的第一加密密码问题对应的问题序号,以便在向云端服务器记录备份数据、问题序号以及登录该应用软件的用户账号三者之间的关联关系。需要说明的是,每一第一加密密码问题都有其唯一对应的问题序号。在利用标准种子密钥加密目标数据得到备份数据之后,为了提升数据的安全性,可以删除标准种子密钥以及第一用户问题。

本实施例在进行数据备份之前,先向云端服务器发送备份请求以便接收云端服务器返回的第一加密密码问题。当用户根据第一加密密码问题输入相应的第一用户答案时,将第一用户答案按照预设规则转换为标准种子密钥,以便利用标准种子密钥加密目标数据并执行备份数据上传操作。由于目标数据的加密过程中使用的是第一用户答案对应的标准种子密钥而不是第一用户答案,因此能够极大的提升备份数据的安全性。当需要对备份数据进行解密时,只需用户重复输入第一用户答案,进一步基于预设规则转换得到标准种子密钥完成解密操作。本实施例提供的数据备份方法无需用户记忆用于加密目标数据的标准种子密钥,只需要记忆能够转化为标准种子密钥的第一用户答案即可,而由于第一用户答案通常比较短且是由用户自主填写的,因此本实施例的数据备份方案便于用户记忆第一用户答案。综上可知,本申请能够在降低用户记忆成本的前提下,实现数据的安全备份。

下面请参见图2,图2为本申请实施例所提供的另一种数据备份方法的流程图,具体步骤可以包括:

s201:当接收到备份指令时,根据备份指令向云端服务器发送备份请求,以便云端服务器返回第一加密密码问题;

s202:将第一加密密码问题传输至人机界面,并确定用户对第一加密密码问题的第一用户答案;

s203:按照预设顺序对所有第一用户答案执行拼接操作得到种子字符串;

s204:对种子字符串执行哈希运算得到种子字符串的哈希值,并将哈希值作为标准种子密钥。

其中,上述步骤可以首先将所有的第一用户答案进行拼接得到种子字符串,再对种子字符串执行哈希运算得到标准种子密钥。

s205:通过256位aes算法利用标准种子密钥加密目标数据得到备份数据,并向云端服务器上传备份数据。

其中,aes(advancedencryptionstandard)算法又称高级加密标准算法。

在s205之前还可以存在根据数据备份指令调取安全存储模块中存储的目标数据的操作。在将备份数据上传至云端服务器时,可以将第一加密密码问题上传至云端服务器,以便云端服务器记录第一加密密码问题与备份数据的对应关系。

下面请参见图3,图3为本申请实施例所提供的一种数据恢复方法的流程图,具体步骤可以包括:

s301:当接收到数据恢复指令时,根据数据恢复指令向云端服务器发送身份验证信息和恢复请求,以便云端服务器在根据身份验证信息判定身份验证通过后返回恢复请求对应的数据包。

s302:解析数据包得到目标备份数据和目标备份数据对应的第二加密密码问题;

s303:将第二加密密码问题传输至人机界面,并确定用户对第二加密密码问题的第二用户答案;

s304:按照预设规则将第二用户答案转换为目标种子密钥;

s305:利用目标种子密钥解密目标备份数据以便完成数据恢复操作。

本实施例涉及数据恢复流程,建立在图1或图2对应实施例的数据备份方法的基础上实施,执行主体可以于图1或图2实施例一致,为应用软件,也可以是运行应用软件的终端设备。在接收到数据恢复指令后首先向存储备份数据的云端服务器发送身份验证信息和恢复请求。身份验证信息指验证应用软件对应的用户用于证明自己身份的信息,可以包括短信验证码、生物特征信息等,此处不进行具体的限定。当云端服务器根据身份验证信息判定用户身份验证通过后,向终端设备返回恢复请求对应的数据包。本实施例中默认恢复请求中存在当前用户账号,云端服务器可以根据预先存好的备份数据、问题序号以及登录该应用软件的用户账号三者之间的关联关系确定当前用户账号对应的数据包,该数据包中可以包括目标备份数据和目标备份数据对应的第二加密密码问题。

需要说明的是,本实施例中在将第二加密密码问题显示至人机界面之后,用户需要回答全部的第二加密密码问题。在确定用户对第二加密密码问题的第二用户答案之后,可以按照如图1实施例所描述的预设规则以同样的方式对所有第二用户答案进行转换得到目标种子密码。

如果在本实施例中确定的第二用户答案与备份目标数据时用户输入的答案相同,此时得到的目标种子密码则可以成功解密目标备份数据,以便完成数据恢复操作。反之,如果在本实施例中确定的第二用户答案与备份目标数据时用户输入的答案不相同,那么此时得到的目标种子密码则可以无法解密目标备份数据,数据恢复操作失败。

可以理解的是,本实施例的云端服务器中可以存储多个应用软件用户的目标数据,因此本实施例中云端服务器中返回的目标备份数据不一定为图1对应实施例描述的备份数据,故本实施例中的第二加密密码问题与图1对应实施例中提到的第一加密密码问题可以不相同。

下面结合实际应用场景中的实施例说明上述数据备份与恢复的操作过程,请参见图4,图4为实际应用中区块链钱包的数据备份的原理示意图,请参见图5,图5为实际应用中区块链钱包的数据恢复的原理示意图。

随着区块链应用的发展,区块链钱包软件以其管理用户私钥等数据的基本功能成为了用户使用区块链的重要工具。钱包管理的数据包括私钥、各类签名报文等。在大多数区块链账户中,私钥代表了对账户的唯一控制。在状态通道等区块链技术方案中,交易双方的签名报文具有更新区块链上账户状态的效力。在did(分布式身份识别码)等区块链应用中,签名报文具有证明区块链账户所有人身份信息的重要作用。因此,钱包数据一旦丢失意味着用户对账户控制权和相关权利的损失,钱包数据的备份成为使用区块链钱包的重要功能。

现有技术中的区块链钱包数据备份方法为采用简单加密云端备份的方案,由用户设置加密密码,将钱包数据经过加密后备份至云端服务器,加密密码采用用户大脑记忆或其他方式保存。但是,在上述现有技术中用户为了便于记忆普遍会设置较短的对称加密密码,因此根据加密密码生成的加密密钥位数也较短。这实际上减少了计算机暴力破解所需要进行的密钥数量尝试,大大降低了加密方法的安全性。而如果用户设置较长的对称加密密码,则大多数用户无法记忆,需要使用工具保存对称加密密码,则增加了用户保存对称加密密码的成本。用户在通过云备份解决钱包数据备份问题后,还需要再解决对称加密密码备份的问题。

本实际应用场景中的实施例过程如下:

云端服务器又称云端备份服务器,主要用于提供基于用户账户的钱包数据的加密备份数据存储,并且提供加密密码问题记录,以辅助终端区块链钱包完成钱包数据(本实施例中的区块链钱包的钱包数据相当于图1和图2实施例中的目标数据)的加解密。云端服务器中可以包括以下模块:加密备份数据存储模块、加密密码问题存储模块、账户信息管理模块、用户验证模块、业务请求处理模块和通信模块。

备份数据存储模块用于存储加密备份数据。加密密码问题存储模块用于存储用户加密密码问题。账户信息管理模块用于记录账户与所存储的加密备份数据和加密密码问题的关系,相当于加密备份数据和加密密码问题的索引。用户验证模块用于验证访问云端服务器的用户身份。业务请求处理模块用于根据用户发来的业务请求,向其他模块调取数据并处理。通信模块用于与运行区块链钱包软件的终端设备进行通信。

运行区块链钱包软件(即,一种应用软件)的终端设备中可以包括以下模块:终端区块链钱包备份模块、备份模块和安全存储模块。其中,终端区块链钱包备份模块用于提供钱包数据的加解密功能,以及加密备份数据的上传下载。备份模块包括加解密子模块、通信子模块:加解密子模块用于根据输入的加密密码加解密加密备份数据;通信子模块用于和云端服务器通信。备份模块位于区块链钱包应用软件中。安全存储模块用于存储私钥、签名报文等重要钱包数据。

一、注册流程

在进行钱包数据备份之前,本实施例存在注册备份服务业务进程。

注册备份服务业务是用户在云端备份服务器开通用户账户、获取备份服务权限的业务,具体流程包括:

(1)云端备份服务器对用户提供开通备份服务业务的操作页面网址,网址的提供形式不限于以钱包应用软件内访问按钮入口、网络公开发布等形式提供。

(2)用户打开操作页面,打开页面的形式不限于钱包应用软件内嵌h5页面、用户智能计算机设备浏览器打开web页面的方式。

(3)用户在操作页面进行用户账户注册。

注册的方式为手机号码验证注册,即服务器向用户指定手机号码发送验证码,用户输入验证码以验证用户对该手机号码的使用。

进一步地,云端备份服务器可以增加对用户生物特征的采集和存储。所属生物特征包括但不限于人脸图像。

(4)用户完成注册后,云端备份服务器账户信息管理模块将记录用户的账户信息。本实施例中,用户账户可以以手机号码为标识。

二、备份流程

在注册完成并登录后,用户可以进行备份业务,请参见图6,图6为实际应用中数据备份流程的流程图,具体流程可以包括:

(1)用户向云端备份服务器发起备份请求。备份请求由通信子模块发送,通信模块接收,业务请求处理模块处理。

(2)业务请求处理模块从模块内数据库调取备选的加密密码问题(即图1实施例提到的第一加密密码问题),经通信模块向区块链钱包应用软件发送。

(3)用户在从备选的加密密码问题中选择若干问题作为加密密码问题。的若干包括但不限于3个。

(4)用户设置加密密码问题的答案,即加密密码(即图1实施例提到的第一用户答案)。

用户设置加密密码问题答案的方式,包括但不限于用户以个人真实经历为依据设置明文答案。本系统推荐用户以个人真实经历为依据设置。的用户设置加密密码问题答案的格式,包括但不限于16进制字符串。云端服务器可以先对用户进行身份验证,以便云端服务器记录用户身份与所述备份数据对应关系。

(5)加解密子模块根据用户输入的加密密码,按预设规则转换为种子密钥(即图1实施例提到的标准种子密钥)。

预设规则是先将若干问题的加密密码拼接成一段种子字符串。再将一段种子字符串进行哈希运算生成一段种子字符串的哈希值。该哈希值即为加密密码。上述的拼接方式包括但不限于根据加密密码问题顺序拼接多个加密密码问题答案为一段字符串。上述的哈希运算算法包括但不限于sha256算法。上述的哈希值为64位16进制字符串。

(6)加解密子模块调取安全存储模块存储的钱包数据。

(7)加解密子模块用种子密钥根据加密算法加密钱包数据,生成加密备份数据(此处的“加密备份数据”即图1和图2实施例中提到的“备份数据”)。

上述的加密算法包括但不限于256位aes算法。上述的加密算法包括但不限于采用云端备份服务器以网络公布等方式公开公布的推荐使用加密算法。若采用云端备份服务器推荐的算法,则云端备份服务器无需再记录用户采取的加密算法。

(8)加密备份数据、用户选择的加密密码问题经通信子模块、通信模块传输至云端备份服务器。

(9)云端备份服务器将加密备份数据、用户选择的加密密码问题分别存储至备份数据存储模块、加密密码问题存储模块。并在账户信息管理模块记录加密备份数据、用户选择的加密密码问题、用户账户之间的关联关系,至此备份业务完成。

上述流程中,用户根据加密密码问题设置加密密码。云端服务器先对用户进行身份验证,以便云端服务器记录用户身份与所述备份数据对应关系加解密子模块根据既定转换规则将加密密码转换为种子密钥,并根据种子密钥按既定加密算法加密钱包数据,在用户智能计算设备本地生成加密备份数据。通信模块将加密备份数据备份存储至云端备份服务器,与用户在云端备份服务器的用户账户相关联,完成钱包数据备份。加密密码是用户设置的,在数据格式上是16进制字符串等格式的字符串,在数据含义上是与加密密码问题相对应的加密密码问题答案,不能直接用于加密数据。种子密钥是根据加密算法的规则转换加密密码生成的二进制等格式的字符串。

三、恢复流程

完成备份业务后,用户可以进行恢复钱包数据业务,请参见图7,图7为实际应用中数据备份恢复流程的流程图,具体流程可以包括:

(1)用户向云端备份服务器发起请求。备份请求由通信子模块发送,通信模块接收,业务请求处理模块处理。

(2)云端备份服务器验证用户身份。所采用的验证方式包括手机号码验证码验证。进一步的,若用户在注册时采集了生物特征,则须再次采集生物特征并对比当前用户生物特征与存储的用户账户关联的生物特征是否一致。

(3)若用户验证通过,则区块链钱包应用软件向云端备份服务器下载加密备份数据、与该加密备份数据关联的加密密码问题。

(4)用户输入加密密码问题的答案,即备份加密密码。

(5)加解密子模块将加密密码,按既定规则转换为种子密钥。

(6)加解密子模块用种子密钥按加密算法解密加密备份数据。

(7)若用户输入加密密码正确,则解密成功,至此恢复钱包数据业务完成。

上述实施例能够使加密备份数据防暴力破解的安全性大大提高,原因如下:(1)加密备份数据本身达到算法设计最高的安全性,由于种子密钥是根据64位16进制字符串生成的256位二进制字符串,因此达到了256位aes加密算法的最大密钥位数,也具有完全的随机性,因此达到算法设计最高的安全性。传统的简单加密备份方式由于用户记忆有限设置的加密密码位数不足,并且用户设置的加密密码往往不具有随机性,无法达到算法设计最高的安全性,安全性也低于本方案。(2)加密密码具有经济上的防暴力破解安全性,云端备份服务器可以通过尝试所有加密密码答案组合暴力破解。以用户设置3个加密密码问题,2个加密密码关于人名,1个加密密码关于通信地址为例。据保守估算,我国不同人名和不同通行地址的组合的可能性达到2.4*10^27,按每秒进行1g次hash运算消耗电量0.237j,电价0.77元/千瓦时计算,暴力破解的期望费用约为1200亿人民币,不存在被破解可能。云端备份服务器亦可以通过猜测加密密码的方式破解加密备份数,如根据手机号码等用户账户信息为线索,以非法方式获取用户实名信息和其他相关信息。但相比于在云端备份服务器内就可进行的隐蔽地暴力破解加密数据,这增加了云端备份服务破解加密数据的难度和非法行为暴露的可能性。由于下载加密备份数据需要进行用户身份验证,因此防止知晓用户加密密码线索的第三者获取加密备份数据,增强安全性。

上述流程中,用户可根据在云端备份服务器的用户账户,从云端备份服务器下载加密备份数据。用户下载完毕后,输入加密密码问题的答案,加密密码。加解密子模块根据既定转换规则将加密密码转换为种子密钥,并根据种子密钥按既定加密算法解密加密钱包数据,在用户智能计算设备本地生成备份数据,完成钱包数据恢复。进一步地,上述的加密密码问题包括但不限于与用户相关的个人信息问题,答案以用户社会关系中交往的人名,用户生活经历的通信地址等作为答案类型。进一步地,将加密密码问题的答案作为启动备份加密操作的加密密码。进一步地,上述的既定加密算法包括但不限于256位aes算法。进一步地,所属云端备份服务器不仅备份加密备份数据,还需备份加密密码问题,并和用户账户相关联记录。进一步地,用户从云端备份服务器下载加密备份数据前,需要经过云端备份服务器的用户身份验证。包括但不限于根据用户手机号码、人脸等信息进行验证。

上述实施例还能够使用户管理钱包数据备份的成本大大降低,原因如下:(1)用户记忆加密密码的成本降低。因为用户按照个人真实经历为依据设置加密密码,不需要特别记忆复杂随机的加密密码,因此记忆难度大大降低。即使用户短暂遗忘加密密码,原有加密密码遗忘后无法找回,而本方案中用户仍可根据个人真实经历的生活记录找回加密密码。(2)相比纸钱包和硬件钱包,钱包数据备份在云端备份服务器,无需物理管理备份数据的麻烦,也没有物理上丢失的风险。即使用户丢失sim卡等手机号码使用设备,在我国也可以通过手机号码实名制找回,用户不丢失云端备份服务器的用户账户,丢失备份数据的风险大大降低。

请参见图8,图8为本申请实施例所提供的一种数据备份系统的结构示意图;

该系统可以包括:

通讯模块100,用于当接收到数据备份指令时,根据数据备份指令向云端服务器发送备份请求,以便云端服务器返回第一加密密码问题;

答案确定模块200,用于将第一加密密码问题传输至人机界面,并确定用户对第一加密密码问题的第一用户答案;

种子密钥生成模块300,用于按照预设规则将第一用户答案转换为标准种子密钥;

备份模块400,用于利用标准种子密钥加密目标数据得到备份数据,并向云端服务器上传备份数据。

本实施例在进行数据备份之前,先向云端服务器发送备份请求以便接收云端服务器返回的第一加密密码问题。当用户根据第一加密密码问题输入相应的第一用户答案时,将第一用户答案按照预设规则转换为标准种子密钥,以便利用标准种子密钥加密目标数据并执行备份数据上传操作。由于目标数据的加密过程中使用的是第一用户答案对应的标准种子密钥而不是第一用户答案,因此能够极大的提升备份数据的安全性。当需要对备份数据进行解密时,只需用户重复输入第一用户答案,进一步基于预设规则转换得到标准种子密钥完成解密操作。本实施例提供的数据备份方法无需用户记忆用于加密目标数据的标准种子密钥,只需要记忆能够转化为标准种子密钥的第一用户答案即可,而由于第一用户答案通常比较短且是由用户自主填写的,因此本实施例的数据备份方案便于用户记忆第一用户答案。综上可知,本申请能够在降低用户记忆成本的前提下,实现数据的安全备份。

进一步的,种子密钥生成模块300包括:

拼接单元,应用按照预设顺序对所有第一用户答案执行拼接操作得到种子字符串;

计算单元,应用对种子字符串执行哈希运算得到种子字符串的哈希值,并将哈希值作为标准种子密钥。

进一步的,备份模块400包括:

加密单元,用于通过256位aes算法利用标准种子密钥加密目标数据得到备份数据;

数据上传单元,用于向云端服务器上传备份数据。

进一步的,该数据备份系统还包括:

数据恢复请求模块,用于当接收到数据恢复指令时,根据数据恢复指令向云端服务器发送身份验证信息和恢复请求,以便云端服务器在根据身份验证信息判定身份验证通过后返回恢复请求对应的数据包。

进一步的,该数据备份系统还包括:

解析模块,用于解析数据包得到目标备份数据和目标备份数据对应的第二加密密码问题;

验证答案获取模块,用于将第二加密密码问题传输至人机界面,并确定用户对第二加密密码问题的第二用户答案;

转换模块,用于按照预设规则将第二用户答案转换为目标种子密钥;

数据恢复模块,用于利用目标种子密钥解密目标备份数据以便完成数据恢复操作。

进一步的,该数据备份系统还包括:

数据获取模块,用于根据数据备份指令调取安全存储模块中存储的目标数据。

进一步的,该数据备份系统还包括:

对应关系上传模块,用于在将备份数据上传至云端服务器时,将第一加密密码问题上传至云端服务器,以便云端服务器记录第一加密密码问题与备份数据的对应关系。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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