一种私密信息备份方法及恢复方法和系统与流程

文档序号:18101309发布日期:2019-07-06 11:22阅读:303来源:国知局
一种私密信息备份方法及恢复方法和系统与流程

本发明涉及信息安全领域,特别涉及一种私密信息备份方法及恢复方法和系统。



背景技术:

进入21世纪,随着信息技术的不断发展,信息安全问题日渐突出。目前私密信息文件(例如用户私钥文件)的安全备份恢复方案,主要采用本地设备或离线的其它设备直接存储备份或恢复,容易造成私钥文件丢失;而已有的私钥远端备份,多采用对私钥进行一次加密,然后将密文存储在远端服务器,需要对服务器极其信任,且很容易造成对密文的暴力破解尝试。

因此,提供一种步骤简单、安全的私密信息备份方法及恢复方法和系统,是本发明的创研动机。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种步骤简单、安全的私密信息备份方法及恢复方法和系统。本发明的技术方案适用于本地备份及远端备份,有效提高了私密信息备份的安全性;特别地,本发明的远端备份方案采用安全多方计算及多次加密的方法,进一步增强了私密信息备份的安全性,大大增加了离线暴力破解的难度。

本发明提供的一种私密信息备份方法,其技术方案为:

一种私密信息备份方法,所述备份方法包括以下步骤:

接收用户输入的密码pass,并根据密钥派生函数kdf1将密码pass转换生成高级加密标准密钥aes-key,所述高级加密标准密钥aes-key用于对所述私密信息进行加密,得到密文c,将密文c切割成n份子密文,并以n个变量存储,n为大于等于2的整数。

优选地,还包括:根据密钥派生函数kdf3将所述密码pass转换生成密钥key3后,经两次哈希运算得到密码密钥哈希值passkey-hash,将n份子密文和密码密钥哈希值passkey-hash传输到第一服务器,第一服务器按顺序将n份子密文拆分成n份子文件。

优选地,还包括:根据密钥派生函数kdf2将所述密码pass转换生成私钥sk2,并根据设定的椭圆曲线算法,由私钥sk2生成公钥pk2,公钥pk2与所述n份子密文和密码密钥哈希值passkey-hash一并发送到所述第一服务器;

所述第一服务器按顺序将n份子密文拆分成n份子文件的同时,所述公钥pk2分别存储于n份子文件中;

所述第一服务器分别将拆分后的所述n份子文件分别传递给n个第二服务器,所述第二服务器采用协商密钥对接收到的子密文进行二次加密。

优选地,所述协商密钥的生成方法为:所述第二服务器基于密钥协商算法ecdh,使用其自身的私钥乘以接收到的公钥pk2,获得协商密钥aeskey’i,其中,i为满足1≤i≤n的整数。

优选地,所述第二服务器采用其自身的公钥对二次加密的子密文及其自身的公钥进行加密存储。

优选地,所述第一服务器将n份子文件分别传递给n个第二服务器后,只单独保留密码密钥哈希值passkey-hash。

优选地,所述密钥派生函数kdf1选择pbkdf2算法,所述密钥派生函数kdf2选择scrypt算法,所述椭圆曲线算法选择secp256r1算法,所述密钥派生函数kdf3选择argon2算法。

本发明还提供了一种私密信息恢复方法,所述私密信息采用如上述的备份方法在第一服务器进行备份,其特征在于,包括以下步骤:

客户端接收用户输入的密码pass,根据本地设定的算法转换得到密码密钥哈希值passkey-hash,并发送第一服务器验证;同时根据设定的密钥派生函数算法kdf1生成高级加密标准密钥aes-key暂存内存;

第一服务器获取并验证密码密钥哈希值passkey-hash,验证通过,则返回n份子密文;

客户端将n份子密文组合连接成一份完整密文,而后使用高级加密标准密钥aes-key对该完整密文进行解密,即成功恢复所述私密信息。

本发明还提供了一种私密信息恢复方法,所述私密信息采用上述的备份方法在第二服务器进行备份,其特征在于,包括以下步骤:

1)、客户端接收用户输入的密码pass,根据本地设定的算法转换得到密码密钥哈希值passkey-hash,将其发送给第一服务器;同时根据设定的密钥派生函数kdf2得到私钥sk2暂存内存;并根据设定的密钥派生函数kdf1生成高级加密标准密钥aes-key也暂存内存;

2)、第一服务器获取密码密钥哈希值passkey-hash,并与其存储的密码密钥哈希值passkey-hash进行比对,比对一致则验证通过,则分别从n个第二服务器请求获取所述二次加密的子密文;

3)、n个第二服务器分别响应第一服务器的请求将其存储的二次加密的子密文及其各自的公钥返回给第一服务器;

4)、第一服务器将从n个第二服务器接收到的文件组合返回给客户端;

5)、客户端获得第一服务器返回的文件后,使用私钥sk2根据预设的密钥协商算法ecdh,分别与各个第二服务器的公钥相乘,得到n个协商密钥,并分别采用各个协商密钥对相应的二次加密的子密文进行解密,生成n份子密文;

6)、客户端将n份子密文组合连接成完整密文c,并采用所述高级加密标准密钥aes-key对完整密文c进行解密,获取所述私密信息。

本发明还提供了一种私密信息备份与恢复系统,包括客户端、第一服务器和多个第二服务器,所述第一服务器与所述客户端、所述第二服务器进行信息交互;所述客户端包括文件生成模块和加解密模块,所述文件生成模块用于文件的拆分与组合;所述加解密模块用于文件的加解密;所述第一服务器用于客户端身份验证及私密信息调取;所述第二服务器用于私密信息的加密存储;所述客户端通过所述第一服务器在所述第二服务器上备份私密信息,或通过所述第一服务器从所述第二服务器调取私密信息。

本发明的实施包括以下技术效果:

1)、本发明将加密文件拆分保存,增强了文件备份的安全性。

2)、本发明基于安全多方计算(smpc),将安全计算分散在各方之间进行;同时远端服务器并不能独享密文文件,增大了离线暴力破解的难度,保证了私密文件的安全性;

3)、用户口令将通过不同算法产生不同的密钥,增加了暴力破解和信息泄露的难度;

4)、大部分安全计算都在第二服务器端进行,且分散在n台第二服务器进行,暴力破解需要n台计算机协同共谋方可进行,且需要的算力是单台服务器的n倍,难以被暴力破解。

5)、使用第一服务器负责统一认证,且不再存储私密信息,后台的第二服务器不暴露给互联网访问,因此私密信息有更好的隐蔽性。

附图说明

图1为本发明实施例一的私密信息备份方法流程示意图。

图2为本发明实施例二的私密信息备份方法流程示意图。

图3为本发明实施例三的私密信息备份方法流程示意图。

图4为本发明实施例三的私密信息恢复方法流程示意图。

图5为本发明实施例的私密信息备份与恢复系统示意图。

具体实施方式

下面将结合实施例以及附图对本发明加以详细说明,需要指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。

实施例一

参见图1所示,本实施例提供的一种私密信息备份方法,首先客户端选择需要备份的私密信息(例如用户私钥key),私密信息以文件格式进行存储;文件里以变量方式存储私密信息的参数值;备份方法包括以下步骤:

接收用户输入的密码pass,根据密钥派生函数kdf1算法,如pdkdf2算法,将密码pass转换生成高级加密标准密钥aes-key,所述高级加密标准密钥aes-key用于对所述私密信息进行加密,得到密文c,将密文c切割成n份子密文,并以n个变量存储,n为大于等于2的整数。本实施例采用用户口令(用户密码)经密钥派生函数产生的密钥对私密信息进行加密,增加了暴力破解和信息泄露的难度;且密文拆分成多份进行存储,进一步增加了破解的难度。

实施例二

参见图2所示,本实施例中,私密信息采用远端备份,本地不存储。即在实施例一的技术方案的基础上,密文c切割生成的n份子密文不在本地进行存储;进一步地,根据密钥派生函数kdf3算法,如argon2算法,将所述密码pass转换生成密钥key3后,经两次哈希运算,如sha3(sha3(key3)),得到密码密钥哈希值passkey-hash,将n份子密文和密码密钥哈希值passkey-hash传输到第一服务器,第一服务器按顺序将n份子密文拆分成n份子文件。n份子文件及密码密钥哈希值passkey-hash均存储在第一服务器。

客户端需恢复私密信息时,客户端接收用户输入的密码pass,根据本地设定的算法转换得到密码密钥哈希值passkey-hash,并发送第一服务器验证;同时根据设定的密钥派生函数算法kdf1生成高级加密标准密钥aes-key暂存内存;第一服务器获取并验证密码密钥哈希值passkey-hash,验证通过,则返回n份子密文;客户端将n份子密文组合连接成一份完整密文,而后使用高级加密标准密钥aes-key对该完整密文进行解密,即成功恢复最终的私密信息。

具体的,客户端根据预设的算法生成密码密钥哈希值passkey-hash,包括:客户端根据密钥派生函数kdf3将所述密码pass转换生成密钥key3后,经两次哈希运算得到密码密钥哈希值passkey-hash;

第一服务器获取并验证密码密钥哈希值passkey-hash,包括:第一服务器将获取的密码密钥哈希值passkey-hash与其存储的密码密钥哈希值passkey-hash进行比对,比对一致则验证通过。

本实施例的技术方案将私密信息拆分进行远端存储,且加密密钥由用户口令经密钥派生函数产生,提高了安全性。

实施例三

参见图3所示,在实施例二的技术方案的基础上,私密信息通过第一服务器在第二服务器进行远端备份,第一服务器仅用于客户端身份认证及私密信息调取,不存储私密信息。

具体的,客户端根据密钥派生函数kdf2算法,如scrypt算法,将所述密码pass转换生成私钥sk2,并根据设定的椭圆曲线算法,如secp256r1算法,由私钥sk2生成公钥pk2,公钥pk2与所述n份子密文和密码密钥哈希值passkey-hash一并发送到所述第一服务器;所述第一服务器按顺序将n份子密文拆分成n份子文件的同时,所述公钥pk2分别存储于n份子文件中,即每份子文件均含有公钥pk2;所述第一服务器分别将拆分后的所述n份子文件传递给n个第二服务器,所述第二服务器采用协商密钥对接收到的子密文进行二次加密。具体地,所述协商密钥的生成方法为:第二服务器基于密钥协商算法ecdh,使用其自身的私钥乘以接收到的公钥pk2,获得对应该第二服务器的协商密钥aeskey’i,其中,i是满足1≤i≤n的整数。

优选地,第二服务器在子文件中新增变量,存储第二服务器自身的公钥;并采用其自身的公钥对二次加密的子密文及其自身的公钥进行加密存储。

优选地,所述第一服务器将n份子文件分别传递给n个第二服务器后,只单独保留密码密钥哈希值passkey-hash,删除所有子文件、公钥pk2等其它残留信息。

本实施例的技术方案可用于私密信息的远端安全备份,所述私密信息可以是用户私钥key,存储私密信息的文件在需要备份私密信息时才产生。存储私密信息的文件格式为json格式。json采用完全独立于语言的文本格式,是备份私密信息的理想数据交换语言。所述n份子密文和密码密钥哈希值passkey-hash以https(超文本传输安全协议)的方式传输到第一服务器。

本实施例的技术方案使用第一服务器负责统一认证,且不再存储私密信息,后台的第二服务器不暴露给互联网访问,因此私密信息有更好的隐蔽性。此外,大部分安全计算都在第二服务器端进行,且分散在n台第二服务器进行,暴力破解需要n台计算机协同共谋方可进行,且需要的算力是单台服务器的n倍,难以被暴力破解。用户口令通过不同算法产生不同的密钥(高级加密标准密钥aes-key、密码密钥哈希值passkey-hash、公私钥pk2和sk2),进一步增加了暴力破解和信息泄露的难度。

本实施例中,密钥派生函数kdf1算法选择pbkdf2算法,pbkdf2算法为应用一个伪随机函数导出密钥,导出密钥的长度本质上是没有限制的,导出密钥的最大有效搜索空间受限于基本伪随机函数的结构。密钥派生函数kdf2算法选择scrypt算法,椭圆曲线算法选择secp256r1,scrypt算法不仅计算所需时间长,而且占用的内存也多,使得并行计算多个摘要异常困难,因此进行暴力攻击更加困难。密钥派生函数kdf3算法选择argon2算法,sha3为第三代安全散列算法(securehashalgorithm3),argon2算法是一种较为安全的密码散列算法。

参见图4所示,本实施例还提供了一种基于私密信息恢复方法,包括以下步骤:

1)、客户端接收用户输入的密码pass,根据本地设定的算法转换得到密码密钥哈希值passkey-hash,将其发送给第一服务器;同时根据设定的密钥派生函数kdf2得到私钥sk2暂存内存;并根据设定的密钥派生函数算法kdf1生成高级加密标准密钥aes-key也暂存内存;

2)、第一服务器获取密码密钥哈希值passkey-hash,并与其存储的密码密钥哈希值passkey-hash进行比对,比对一致则验证通过,则分别从n个第二服务器请求获取所述二次加密的子密文;

3)、n个第二服务器分别响应第一服务器的请求将其存储的二次加密的子密文及其各自的公钥返回给第一服务器;

4)、第一服务器将从n个第二服务器接收到的文件组合返回给客户端;

5)、客户端获得第一服务器返回的文件后,使用私钥sk2根据预设的密钥协商算法ecdh,分别与各个第二服务器的公钥相乘,得到n个协商密钥,并分别采用各个协商密钥对相应的二次加密的子密文进行解密,生成n份子密文;

具体的,客户端使用私钥sk2根据预设的密钥协商算法ecdh,与第一个第二服务器的公钥相乘,得到协商密钥aeskey’1,并采用该协商密钥对第一份二次加密的子密文进行解密,得到第一份子密文;该第一份二次加密的子密文由第一个第二服务器返回给第一服务器,并经第一服务器返回客户端;

以此类推,客户端使用私钥sk2根据预设的密钥协商算法ecdh,与第i个第二服务器的公钥相乘,得到协商密钥aeskey’i,并采用该协商密钥对第i份二次加密的子密文进行解密,得到第i份子密文;该第i份二次加密的子密文由第i个第二服务器返回给第一服务器,并经第一服务器返回客户端;i为满足1≤i≤n的整数;

6)、客户端将n份子密文组合连接成完整密文c,并采用所述高级加密标准密钥aes-key对完整密文c进行解密,获取所述私密信息。

实施例四

参见图5所示,本实施例提供了一种私密信息备份与恢复系统,包括客户端、第一服务器和多个第二服务器,所述第一服务器与所述客户端、所述第二服务器进行信息交互;所述客户端包括文件生成模块和加解密模块,所述文件生成模块用于文件的拆分与组合;所述加解密模块用于文件的加解密;所述第一服务器用于客户端身份验证及私密信息调取;所述第二服务器用于私密信息的加密存储;所述客户端通过所述第一服务器在所述第二服务器上备份私密信息,或通过所述第一服务器从所述第二服务器调取私密信息。该系统采用实施例三的方法进行私密信息的备份与恢复。

具体地,所述文件生成模块用于将密文c切割成n份子密文;还用于将从第一服务器获得的n份子密文组合连接成完整密文c;

所述加解密模块用于将密码pass根据密钥派生函数kdf1生成高级加密标准密钥aes-key,并采用高级加密标准密钥aes-key对所述私密信息进行加密得到密文c;还用于将所述密码pass根据密钥派生函数kdf3生成密钥key3后,经两次哈希运算得到密码密钥哈希值passkey-hash;还用于将所述密码pass根据密钥派生函数kdf2得到私钥sk2,并根据设定的椭圆曲线算法,由私钥sk2生成公钥pk2。所述加解密模块还用于协商密钥的生成,及采用各个协商密钥对相应的二次加密的子密文进行解密;协商密钥的生成方式为使用私钥sk2根据预设的密钥协商算法ecdh,分别与各个第二服务器的公钥相乘,得到n个协商密钥。

所述第一服务器通过密码密钥哈希值passkey-hash对客户端的身份进行验证,并用于向n个第二服务器请求获取私密信息。

所述第二服务器采用协商密钥对接收到的子密文进行加密并存储。

本发明提供的技术方案让远端服务器并不能独享密文文件,且增大了离线暴力破解的难度,基于安全多方计算(smpc),将安全计算分散在各方之间进行,保证了安全性。

最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

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