信息的安全多方存储和传递的加密私钥管理的方法和系统与流程

文档序号:20875632发布日期:2020-05-26 16:28阅读:167来源:国知局
信息的安全多方存储和传递的加密私钥管理的方法和系统与流程

相关申请数据

本申请要求2018年11月16日提交的且标题为“methodsandsystemsforsecuremultipartystorageandtransferofinformation”的美国临时专利申请序列号62/768,550和2019年11月14日提交的且标题为“methodsandsystemsforcryptographicprivatekeymanagementforsecuremultipartystorageandtransferofinformation”的美国临时专利申请序列号62/935,393的优先权利益,其中的每个申请都通过引用被全部并入本文。

发明领域

本发明一般涉及加密密钥管理的领域。特别是,本公开目的在于用于信息的安全多方存储和传递的加密私钥管理的方法和系统。

背景

加密货币、数字资产和经由加密私钥或秘密对资产的保护通常涉及私钥或秘密的安全存储和使用以取得对资产的访问。在资产被私钥(例如加密货币钱包的私钥)保护的情况下,如果密钥被丢失,则受保护的资产(例如加密货币)可能永久地被丢失。秘密密钥或密码的这个潜在丢失以及相应的密码货币的丢失阻碍数字资产在现代世界中的进步和广泛利用。被私钥保护的资产的所有者可能希望通过向他们的继承人提供某个程度的访问或备份来确保他们的资产不在他们死亡或丧失能力的情况下丢失,同时不放弃对他们的资产的控制直到适当的时间为止。类似地,资产可以由希望控制对资产的访问的一组人共同拥有而不在该组的任何一个成员中提供不等量的控制。

概述

在一个实现中,本公开针对一种通过使用密钥管理系统来将资产私钥的控制从发起用户传递到一组用户的方法,该密钥管理系统包括被配置为提供基于网络的密钥管理服务的密钥管理计算设备和发起用户计算设备。该方法包括用发起用户计算设备将资产私钥分割成多个子密钥;定义恢复资产私钥所需的子密钥的阈值数量t;识别待传递到该一组用户的子密钥的第一部分,其中在第一部分中的子密钥的数量小于t;将至少一个子密钥识别为验证者子密钥;用发起用户计算设备随机地生成验证者私钥;用验证者私钥将验证者子密钥加密以生成加密的验证者子密钥;将加密的验证者子密钥存储在分布式文件系统上;将子密钥的第一部分存储在至少一个存储设备上;以及将验证者私钥存储在验证者存储设备上。

在另一实现中,本公开针对一种用密钥管理设备提供密钥管理服务用于传递对资产私钥的控制的方法。该方法包括:在密钥管理设备处接收来自发起用户计算设备的资产私钥分割请求;以及从密钥管理设备向发起用户计算设备发送用于在发起用户计算设备的网络浏览器中执行的密钥分割指令,其中密钥分割指令包括用密钥分割算法将资产私钥分割成多个子密钥;识别子密钥的第一部分用于分配给多个用户;识别子密钥的第二部分,该第二部分包括至少一个验证者子密钥;将子密钥的第一部分中的子密钥存储在多个冷存储设备上用于传递到多个用户;随机地生成验证者非对称公-私密钥对和通行码;用验证者私钥将至少一个验证者子密钥加密;以及将至少一个加密的验证者子密钥传输到密钥管理设备用于存储在区块链平台上。

在又一实现中,本公开针对一种从多个子密钥恢复资产私钥的方法。该方法包括:用验证者计算设备向密钥管理设备发送恢复请求以从多个子密钥恢复资产私钥;用验证者计算设备向密钥管理设备发送验证者计算设备有权访问第一数量的子密钥的确认;在验证者计算设备处从密钥管理设备接收至少一个验证者子密钥;以及用由验证者计算设备执行的恢复算法从第一数量的子密钥和验证者子密钥恢复资产私钥;其中至少一个验证者子密钥是恢复资产私钥所需的,其中密钥管理设备在区块链平台上存储验证者子密钥的加密版本,并且响应于从验证者计算设备接收到恢复请求和确认使用由密钥管理设备安全地存储的区块链映射信息来定位和访问验证者子密钥的加密版本。

在又一实现中,本公开针对一种用密钥管理设备提供密钥管理服务用于从多个子密钥恢复资产私钥的方法。该方法包括:在密钥管理设备处接收来自验证者计算设备的恢复请求以从多个子密钥恢复资产私钥,该恢复请求包括用户id;从验证者计算设备接收子密钥信息,用于确认验证者计算设备有权访问第一数量的子密钥;用密钥管理设备访问与用户id相关联的组映射信息;确定组映射信息是否匹配接收到的子密钥信息;响应于确定组映射信息与接收到的子密钥信息匹配而访问至少一个验证者子密钥并将至少一个验证者子密钥发送到验证者计算设备;以及向验证者计算设备发送用于恢复资产私钥的指令;其中至少一个验证者子密钥是恢复资产私钥所需的,其中访问至少一个验证者子密钥包括使用组映射信息用于从区块链平台定位和访问至少一个验证者子密钥的加密版本。

附图说明

为了说明本公开的目的,附图示出本公开的一个或更多个实施例的多个方面。然而应该理解,本公开不限于在附图中所示的精确布置和工具,其中:

图1示出了示例密钥管理系统的架构图;

图2是根据本公开的各方面执行密钥管理系统的功能的数据流图;以及

图3是用于执行本公开的任一个或更多个方面和/或方法的计算设备的一个示例的图形表示。

详细描述

本公开的各方面包括密钥管理系统,其被配置为提供基于网络(也被称为基于云)的密钥管理服务以用于私有加密密钥和/或其他信息的安全和分散的控制和存储。如下面更详细描述的,资产私钥、种子、通行码或任何其他数字数据串或数据集可以被分割成多个子密钥,并被分配给在特定条件出现的情况下可以取得对资产私钥的控制的一组人。在一些例子中,该组人接收恢复资产私钥所需的少于阈值数量的子密钥,以及恢复资产私钥所需的一个或更多个子密钥被定义为验证者子密钥并且被单独且安全地存储。在一些例子中,验证者子密钥被加密,并且加密的验证者子密钥存储在区块链平台上。发起用户可以从多个密钥管理程序选择以确定资产私钥将如何被分割以及验证者子密钥将如何被存储和访问。

图1示出了根据本公开制造的示例密钥管理系统100的架构图。系统100包括用户103_1-103n的多个用户计算设备102_1、102_2、102_n,用户计算设备102经由网络104通信地耦合到密钥管理设备106,密钥管理设备106向用户103提供密钥管理服务用于资产的安全存储和传递。系统100被设计和配置为安全地存储资产私钥110以确保资产私钥从不永久地丢失以及它仅在被授权的条件下才被访问,该资产私钥110是用于取得对资产111的访问的加密密钥、种子、通行码或其他数字数据串。系统100还可以用于安全地存储任何类型的信息,例如用于保护资产的任何秘密,例如加密非对称公-私密钥对的私钥、密码、通行码或任何其他数字数据串(包括任何词或词的组合)、或其他数字数据文件(例如数字图像)等。如本文使用的术语“资产”可以是由秘密保护的任何东西,例如资产私钥,例如加密货币或者任何种类的信息。密钥管理设备106可以是本领域中已知的各种计算设备中的任何一种,并且可以包括软件112,软件112包括用于执行一个或更多个密钥分配协议114的指令,如本文所述。密钥分配协议114可以包括用于执行分割算法以将资产私钥110分割成多个子密钥116_1至116_n以及用于分配和存储多个子密钥的指令。分割算法可以包括定义恢复资产私钥110所需的子密钥116的最小阈值数量t的信息。在所示的例子中,系统100包括多个冷存储设备118_1、118_2、118_n,其可用于安全地存储一个或更多个子密钥116直到它们被需要来恢复资产私钥110为止。

密钥管理设备106可以被配置为提供密钥管理服务,并与用户计算设备102通信以使用户设备执行如本文描述的密钥管理的一个或更多个功能。密钥管理设备106可以包括用于存储与提供密钥管理服务有关的、与用户103相关联的某些信息的数据库120。在一些例子中,密钥管理设备106被配置为提供分散的密钥管理服务,其中资产私钥110或子密钥116都不被密钥管理设备或相关联的数据库120访问或存储。替代地,密钥管理设备106可以仅存储最少的组映射信息以便于密钥管理服务,同时向一个或更多个用户设备102提供指令以执行密钥分割、加密和存储的功能。如下面更详细描述的,密钥管理设备106可以被配置为识别或使执行密钥分配协议114的用户设备102识别子密钥116的第一部分122作为用户子密钥以及识别子密钥116的第二部分124作为验证者子密钥125和在一些例子中的备份子密钥126,其中在子密钥的第一部分122中的子密钥116的数量小于阈值t,使得用户不能在不访问子密钥116的第二部分124的情况下恢复资产私钥。子密钥116的第一部分122可以被分配给一个或更多个用户103用于存储在用户计算设备102和/或冷存储设备118上。例如,在用户103_1是最初拥有和/或控制资产私钥110的发起用户的情况下,子密钥116的第一部分122可以被传递到一个或更多个其他用户103,使得如果发起用户103_1丢失资产私钥110或者如果发起用户103_1死亡或变得丧失能力,则其他用户103可以使用系统100来恢复资产私钥110以取得对资产111的访问。

密钥管理设备106和/或用户计算设备102还可以被配置为将子密钥116的第二部分124加密以形成加密的验证者子密钥128和在一些例子中的加密的备份子密钥130,并且将加密的验证者子密钥128和/或备份子密钥130传递到区块链平台132用于存储。例如,密钥管理设备106可以被配置为向区块链平台132提供指令以执行由区块链平台存储或可访问的一个或更多个智能合约134,用于在区块链平台132上存储加密的验证者子密钥128和备份子密钥130。区块链平台132还可以包括多个区块链平台,例如系统100可以被配置成为了冗余和在特定区块链平台的拥塞问题的情况下在多个区块链平台上单独存储加密的验证者子密钥128和备份子密钥130。在其他例子中,加密的验证者子密钥128和备份子密钥130也可以存储在各种其他存储系统中的任何一个,例如分布式文件系统,诸如星际文件系统(ipfs)上,星际文件系统是用于在分布式文件系统中存储和共享数据的协议和对等网络。如下面更详细描述的,用户103之一可以被识别为通过加密的子密钥的解密来控制加密的验证者子密钥128和备份子密钥130的释放的验证者。在一些例子中,验证者可以由发起用户选择,并且可以是可信的第三方代理,例如律师事务所,或者可以是一组用户103中的一个用户,例如最大的孩子或受托人。在另外其它例子中,密钥管理设备106可以提供验证者的功能,用于在指定条件被满足时自动释放加密的验证者子密钥128和备份子密钥130。

根据特定的密钥分配协议114,密钥分配协议114可以包括用于资产私钥110的初始分割、加密和存储的指令以及用于在某些条件被满足时授权释放存储在区块链平台132上的加密的验证者子密钥128和备份子密钥130的指令。通过向用户103分配少于阈值数量t的子密钥,用户不能在不访问存储在区块链平台132上的子密钥116的所需数量的第二部分124的情况下恢复资产私钥110。因此,系统100提供了一种分散式系统和协议,其用于允许用户103之一放弃或共享对资产私钥110的控制,而同时防止一组用户103过早地或在没有发起用户的授权的情况下取得对资产私钥110的访问。

用户计算设备102和密钥管理设备106可以各自包括本领域中已知的任何计算设备硬件和架构,例如在膝上型计算机、台式计算机、服务器、移动电话和平板计算机等中使用的那些配置。网络104可以包括本领域中已知的任何一种或更多种计算机网络技术和拓扑,包括局域网和经由互联网的通信。例如,密钥管理设备106可以被配置成经由网络104提供基于云或互联网的密钥管理服务,并且用户计算设备102可以被配置成经由存储在本地和/或由用户设备访问的网络浏览器软件来访问密钥管理设备106和执行密钥分配协议114的一个或更多个方面。冷存储设备118可以被配置成用于子密钥116的安全长期存储。例如,冷存储设备118可以是包括存储器和在一些例子中的处理器的计算设备,该处理器被配置为例如用一个或更多个冷存储设备加密密钥119来将存储在其上的数据(例如子密钥116)加密。在一些例子中,冷存储设备还可以被配置为存储识别信息并执行认证过程以认证冷存储设备。在一些例子中,冷存储设备118可以是加密的usb拇指驱动器。在一些例子中,冷存储设备可以被配置成经由本领域中已知的任何通信协议(例如usb、nfc、zigbee或wifi等)来与用户计算设备102通信。

在一些例子中,一个或更多个冷存储设备118是合并通用第二因素(u2f)和快速id在线(fido)认证和通信标准的硬件加密狗。在一个例子中,冷存储设备118符合一个或更多个fido协议,例如fido2协议。冷存储设备可以包括类似于键值存储(key-valuestore)的存储数据结构,其中没有数据的刚性结构,除了在一些例子中是id字段之外。在一个例子中,冷存储设备118允许高达480字节容量的80个数据记录(包括id字段)的存储和小的存储结构开销。在冷存储设备118上的数据可以例如用aes256被加密,并且在一些例子中仅在用户提供正确的pin之后是可访问的。在一些例子中为了便于使用,用于访问加密数据的pin与认证协议(例如,fido2pin应用)相同或与其共享。冷存储设备118可以连接到用户设备102之一,并且存储如从用户设备接收的数据,以及在一些例子中以简明二进制对象表示(cbor)数据结构来将接收到的数据编码。冷存储设备118可以利用fidou2f传输层,其便于向后兼容和通过各种互联网网络浏览器的通信。存储在冷存储设备上的数据的加密可以合并本领域中已知的任何加密技术。在一个例子中,冷存储设备包括扇区可寻址存储器,并合并基于分组密码的磁盘加密,例如256位aes-cbcessiv。冷存储设备118的密钥119可以包括主加密密钥,主加密密钥由aes256-cbc用从用户pin导出(例如,使用来自rsa实验室的公钥密码标准(pkcs)系列的基于密码的密钥导出函数2(pbkdf2)散列导出)的加密密钥封装。在一个例子中,冷存储设备118包括加密方案,该加密方案是具有数据时隙索引导出的iv(dataslotindex-derivediv)的256-bitaes-cbc-essiv的变形,其中对于给定的ses密钥实例,数据的每个时隙用相同的aes密钥但以每时隙准随机化的iv被加密。冷存储设备118可以被配置为在冷存储设备首次被使用时随机地生成用于内部存储的加密的aes密钥。因此,当冷存储设备118静止时,在其上存储的信息的完全安全性和保密性可以被保证。在一些例子中,冷存储设备118被配置成利用u2f协议作为安全u2f隧道,其创建用于信息的传递的加密安全的第二因素机制。在注册阶段期间,冷存储设备118在prime256v1曲线上生成密钥对,并将来自密钥对的公钥、被称为密钥句柄的私钥的加密版本以及证明私钥在可信设备上生成的证明交换到密钥管理设备106。在认证阶段期间,密钥管理设备106可以生成随机值作为认证质询,然后将质询和密钥句柄发送到相应的冷存储设备118。冷存储设备118可以将密钥句柄解密以从密钥句柄检索私钥,使用私钥来签署质询并返回质询签名。密钥管理设备106然后可以验证质询签名并认证冷存储设备118。

区块链平台132可以包括本领域中已知的任何架构,包括例如服务层、智能合约层和底层区块链层。区块链平台132可以是公共或私人区块链或其组合。在一些例子中,区块链平台132是公共区块链,例如ethereum/vechain或被配置为支持智能合约的任何其他公共区块链。在其他例子中,区块链平台132可以是私人区块链,然而在这种情况下交易不能被公开地验证。

密钥管理设备106和/或用户计算设备102之一可以被配置成使用本领域中已知的任何分割算法(例如任何密码秘密共享算法,例如shamir秘密共享、blakley方案或孙子剩余定理等)来将资产私钥110分割成子密钥116。在一些例子中,资产私钥110可以用下面的示例分割多项式(1)来分割成多个子密钥116:

f(x)=a0+ai*x+a2*x2+......+at-1*xt-1方程(1)

其中:

a0是秘密,例如资产私钥110;

a1-at-1是随机数,其可以由密钥管理设备106和/或执行方程1的用户计算设备102之一随机地生成;以及

t是恢复资产私钥110所需的子密钥116的最小数量。

方程1可用于创建n个子密钥116,使得对于i=1,…,n,每个子密钥被定义为(i,f(i))。例如,如果方程1用于创建三个子密钥116,子密钥将如下被计算:子密钥1(1,f(1));子密钥2(2,f(2));和子密钥3(3,f(3))。

密钥管理程序和密钥分配协议

密钥管理设备106可以被配置为向用户103提供各种密钥管理计划。非限制性例子是继承计划,其中资产111的所有者将用于访问他或她的资产的私钥110分割成子密钥116(其中阈值t个子密钥是恢复私钥所需的)并将子密钥的第一部分y交付给他或她的继承人并将子密钥的第二部分交付给验证者,其中y<t。在一些例子中,所有者可以选择如本文所述的将子密钥116的第二部分124分割成验证者子密钥125和备份子密钥126,备份子密钥在继承人之一丢失他或她的子密钥的情况下被使用。

在继承计划下,所有者可以授权验证者在一个或更多个条件被满足(例如证实原始所有者已经去世时)释放子密钥116的第二部分124。并且在所有者选择包括备份子密钥126的例子中,所有者还可以指定验证者何时被授权释放备份子密钥的条件。例如,仅当满足第一条件(例如,死亡的确认)且满足第二条件(例如,继承人之一通过例如连接他或她的冷存储设备118并提供认证信息来提供他或她的身份的确认并提交使用备份子密钥的请求)时。因此,系统100可以用于提供一种安全机制,用于在不将所有者的控制让与一个或多个人直到某个条件被满足为止,在稍后的日子将资产私钥110或任何其他秘密信息传递给一个或更多个人。在继承例子中,所有者通过给予继承人少于恢复私钥110所需的所有子密钥并将满足阈值t所需的剩余子密钥委托给验证者来保持对他或她的资产的控制,直到他或她去世为止。

表1示出了可以根据继承人、验证者和备份子密钥的指定数量被创建和分配的子密钥116的数量的例子。在所示的例子中,可以比继承人中每一个少给验证者一个子密钥,使得验证者不能在没有继承人之一的许可的情况下取代继承人之一并恢复私钥110。例如,列a显示一个场景,其中有一个继承人和一个验证者。因为继承人比验证者接收更多的子密钥,所以继承人接收到2个子密钥,验证者接收到1个子密钥,并且t被设置为3,使得继承人不能在没有验证者的子密钥的情况下重建私钥。列b显示包括两个继承人和一个验证者的例子,导致7个子密钥的阈值。列c显示额外备份子密钥被创建的例子。列d显示两个验证者被指定的例子。例如,可以通过要求两个独立的验证者来独立地确认指定条件已经被满足以及要求来自继承人加上两个验证者的子密钥来恢复私钥以提供额外的安全性。

kcm:我认为把它留给每个继承人3个并留给每个验证者2个以保持每个验证者少一个的一般规则是有意义的(参见下表,如果有变化请让我知道):

表1–子密钥的示例数量

系统100的应用不限于继承。其他例子包括业务连续性计划。例如,一个或更多个所有者可以使用系统100以通过将少于阈值数量的子密钥116传递给利益相关者并将剩余的子密钥116委托给验证者来允许未来将控制转移到一组一个或更多个利益相关者。用于释放验证者子密钥125的指定条件可以是各种事件中的任何一种,例如合并或收购的结束。在又一个例子中,一组人可能希望共同拥有一项投资,例如加密货币的投资组合,但阻止个体之一或子集在没有一致同意或某个其他阈值水平的同意的情况下取得对该投资组合的访问。参考图1,在用户103共同拥有投资组合的例子中,一个或更多个用户可以经由密钥管理设备106对密钥管理服务开立账户,并且指定在该组中的用户的数量和取得对私钥110的访问所需的最小阈值数量t的子密钥116以及重新取得对密钥的控制所需的一个或更多个条件。条件可能仅仅是来自所有用户的重新取得访问的一致请求。

图2是根据本公开的各方面执行的密钥管理系统200的功能的数据流图。在所示例子中,各种动作由发起用户计算设备202、密钥管理设备204、第一冷存储设备206、验证者冷存储设备208、区块链平台210和验证者计算设备212来执行。密钥管理系统200是密钥管理系统100的示例应用,其中发起用户计算设备202和验证者计算设备212可以对应于用户计算设备102(图1)中的一个,密钥管理设备204可以对应于密钥管理设备106,第一冷存储设备206和验证者冷存储设备208可以对应于冷存储设备118中的一个,以及区块链平台210可以对应于区块链平台132。所示例子包括多个阶段或时期,包括(1)创建密钥管理程序帐户,(2)将私钥分割成多个子密钥,分配和存储子密钥,以及(3)恢复私钥。根据本公开执行的方法可以包括未示出或描述的额外动作,或者可以省略或修改一个或更多个示出的动作,包括改变顺序而不同于本文所示的顺序。

创建密钥管理程序帐户

新密钥管理程序账户的创建可以由发起用户在发起用户计算设备202处发起。例如,发起用户可以是用户103(图1)之一,并且可以是加密货币投资组合(例如资产111(图1))的所有者,并且希望创建密钥管理程序以有条件地将访问加密货币投资组合所需的私钥(例如资产私钥110)的所有权和控制传递给他的继承人(例如用户103中的其他用户)。在步骤220处,在发起用户计算设备202处,例如,用在安装在用户计算设备上或由用户计算设备可访问的网络浏览器可以经由网络104(例如互联网)连接到密钥管理设备204以创建新密钥管理程序。新程序的创建可以包括请求创建新组、选择密钥管理程序以及提供组信息。发起用户计算设备202和密钥管理设备204可以被配置成经由本领域中已知的任何通信协议(例如https或ftp)通过网络104来通信,并且密钥管理设备可以使包括包含用户界面的网页的一个或更多个网页显示在发起用户计算设备202上。

密钥管理程序的选择可以包括经由在发起用户计算设备202上的网络浏览器来选择的以下一个或更多个:(1)密钥管理程序的类型,例如继承计划、业务连续性计划、投资圈计划等;(2)指定验证者的数量和类型,例如第三方验证者(例如律师事务所)是否将被使用,或者组的成员之一是否将被指定为验证者,或者密钥管理设备是否将提供验证者的功能;(3)指定为了使验证者释放验证者子密钥125而必须被满足的条件;以及(4)机制,上述条件通过该机制例如自动地或通过要求某个人交互(例如死亡凭证的审查)连同各种其他参数中的任何一个来被验证。密钥管理设备204还可以提示发起用户指定组信息,例如组中的用户(例如用户103(图1))的数量以及用户的任何其他识别信息,例如用户名。

在222处,密钥管理设备204可以创建新的组,分配组id和用户id,并且为该组创建映射信息用于将用户103和相关联的用户id映射到特定的组id,并且还可以确定一个或更多个资产私钥分割参数,例如子密钥116的数量、将被分配给组中的用户103的第一部分122子密钥的数量、将由一个或更多个验证者控制的第二部分124子密钥的数量,并且在一些例子中,一定数量的第二部分可以用作备份子密钥126。在224处,密钥管理设备204可以提示发起用户计算设备202例如通过在用户设备上的网络浏览器来上传发起用户想要分割并安全地存储和管理的资产私钥110或以其他方式使资产私钥110变得可用。在224处,密钥管理设备204还可以提供资产私钥分割指令。在226处,发起用户设备202可以例如经由网络浏览器或在发起用户计算设备上在本地运行的其他程序来接收由发起用户上传的资产私钥110,并根据接收到的密钥分割指令来执行一个或更多个分割算法,例如根据从密钥管理设备接收的资产私钥分割参数来执行方程(1)的算法,以生成临时存储在发起用户计算设备本地的多个子密钥116。例如,密钥管理设备204可以提供用于执行在由发起用户计算设备202的网络浏览器可执行的javascript中的密钥分割算法的指令。在228处,在多个子密钥116被生成之后,网络浏览器可以被配置为提示发起用户连接第一冷存储设备206用于存储一个或更多个子密钥。

在230处,发起用户可以将第一冷存储设备206连接到发起用户计算设备202,并且在连接之后,第一冷存储设备和发起计算设备可以使用本领域中已知的任何认证和通信协议来发起通信会话,例如在发起用户计算设备上认证浏览器,以及向浏览器提供冷存储设备凭证或用于识别和认证第一冷存储设备的其他认证信息。冷存储设备凭证可以包括非对称密钥公-私密钥对的冷存储设备公钥。在232处,可以提示发起用户选择前面在步骤220和222处被规定为第一冷存储设备206的所有者的用户之一。发起用户计算设备202还可以被配置为识别要分配到第一冷存储设备206的第一数量的子密钥116,用冷存储设备公钥将所识别的第一数量的子密钥加密,并且执行每个所分配的子密钥116的加密散列计算以生成被分配到第一冷存储设备206的每个子密钥的散列。在234处,发起用户计算设备202可以将加密的第一数量的子密钥116传递到第一冷存储设备用于安全的长期存储。

可以对每个冷存储设备206重复步骤228-234。例如,如果发起用户指定了三个继承人、一个验证者并且没有备份子密钥(在上面的表1中的例子b),步骤228-234可以重复三次,将两个加密的子密钥传递到每个冷存储设备206。冷存储设备206然后可以被物理地交付给三个继承人用于安全的保管。

在步骤236处,发起用户计算设备202可以例如通过在网络浏览器中的javascript或其他在本地执行的软件来将一个或更多个子密钥116识别为将由验证者控制的验证者子密钥125,并且发起用户计算设备可以被配置为用本领域中已知的任何非对称密钥导出功能随机地生成非对称公-私验证者密钥对和通行码127(图1),并且用验证者公钥将所识别的验证者子密钥125加密以形成加密的验证者子密钥128。发起用户设备还可以生成验证者子密钥125的散列计算值。

在一个例子中,加密的验证者子密钥128和验证者密钥对以及通行码127的存储和控制可以根据由发起用户选择的密钥管理保护计划而变化。例如,如果发起用户选择使用可信的第三方(例如律师事务所)或用户103之一(例如最大或最负责的孩子)作为验证者,则验证者密钥对和通行码127可以存储在验证者冷存储设备208和/或验证者计算设备212上。在238处,发起用户可以将验证者冷存储设备208连接到发起用户计算设备202,并且在连接之后验证者冷存储设备和发起用户计算设备可以使用本领域中已知的任何协议来发起安全通信会话,例如认证浏览器,以及向浏览器提供冷存储设备凭证或用于识别和认证验证者冷存储设备的其他认证信息。冷存储设备凭证可以包括或是基于非对称公-私密钥对119的冷存储设备公钥。在240处,在存在多于一个验证者的情况下,可以提示发起用户选择前面在步骤220和222处被规定为验证者冷存储设备208的所有者的验证者之一。在242处,发起用户设备可以将非对称公/私验证者密钥对和通行码127以及验证者子密钥125的散列传递到验证者冷存储设备208用于安全的长期存储,以将来用于将存储在区块链平台210上的加密的验证者子密钥128解密,如下所述。在其他例子中,只有验证者密钥对127可以被传递到验证者冷存储设备208,并且用于将密钥对127的私钥解密和使用密钥对127的私钥的通行码可以被传递到密钥管理设备204,使得加密的验证者子密钥128的控制在验证者和密钥管理设备之间分离。

在其他例子中,验证者子密钥125可以用验证者冷存储设备208的私-公密钥对119的公钥被加密,并且以类似于被分配给组的成员的子密钥116的第一部分122的方式存储在验证者冷存储设备上。在由发起用户选择的密钥管理程序包括多于一个验证者的情况下,步骤236-242可以对每个验证者冷存储设备208重复。然后,验证者冷存储设备可以物理地被交付给验证者。

在其他例子中,发起用户可以选择密钥管理设备106作为验证者,例如,如果他/她想要更自动化的过程和/或不想牵涉第三方或将验证者角色分配给用户之一。在这种情况下,不是执行步骤238-242以将验证者密钥对和通行码127存储在冷存储设备上,而是发起用户计算设备202可以将验证者密钥对和通行码127传输到密钥管理设备204用于安全地存储在数据库120中。

在由发起用户选择的密钥管理程序包括备份子密钥126的例子中,可以执行类似于步骤236-242的步骤以生成非对称公/私备份子密钥对和通行码129,用所生成的备份公钥将所识别的备份子密钥126加密以生成加密的备份子密钥130,生成备份子密钥126的散列计算值,并提示发起用户连接备份冷存储设备用于存储非对称公-私备份密钥对129,以将来用于将存储在区块链平台210上的加密的备份子密钥130解密。

在244处,发起用户计算设备202还可以向密钥管理设备204发送更新的组映射信息,用于记录子密钥116到用户103的传递。表2概述可以由发起用户计算设备202传递到密钥管理设备204以用于存储在存储器(例如数据库120)中的示例组映射信息。如表2所示,在一个例子中,密钥管理设备204和相应的数据库120不接收或存储资产私钥110或任何子密钥116或任何用户的任何个人信息(尽管下面示出的例子包括用户名,这仅仅是为了方便,并且可以为了完全匿名而被省略)。在密钥管理设备204充当验证者的例子中,组映射信息还可以包括验证者密钥对127以及在一些例子中的用于将加密的验证者子密钥128解密的备份密钥对129。可以使用任何安全传输技术(例如用由密钥管理设备提供的公钥将验证者密钥对127加密)来安全地传递验证者密钥对127。

表2

在244处,发起用户计算设备202还可以向密钥管理设备204发送加密的验证者子密钥128,其利用密钥对127的相应验证者私钥来加密。如果有任何备份密钥126,发起用户计算设备202也可以发送加密的备份子密钥130,其利用密钥对129的相应备份公钥所加密。在步骤246处,密钥管理设备204可以向区块链平台210发送加密的验证者子密钥128和加密的备份子密钥130。在248处,区块链平台可以被配置为执行一个或更多个智能合约134用于将加密的验证者子密钥128和加密的备份子密钥130写到区块链以用于安全存储。密钥管理设备204和/或智能合约134还可以被配置为在区块链平台210上存储具有加密的验证者子密钥128和加密的备份子密钥130的区块链映射信息,例如组id#(见表2),以稍后从区块链平台访问加密的验证者子密钥128和加密的备份子密钥130。在一些例子中,用于将区块链平台交易与特定组相关联的映射信息(例如组id#)由密钥管理设备204安全地存储,并且不与任何用户103共享。通过安全地存储区块链映射信息,加密的验证者子密钥128和加密的备份子密钥130被隐藏在公众的视线之外,包括包含验证者的用户103。例如,在公共区块链被使用的情况下,密钥管理设备204可以在公共区块链上公开地存储表示加密的验证者子密钥128和加密的备份子密钥130的加密数据串,但在没有区块链映射信息的情况下,验证者或希望将加密的验证者子密钥128或加密的备份子密钥130解密的其他人将不能够知道被记录到区块链平台的哪个数据串代表他或她恢复特定资产私钥所需的特定的加密的验证者子密钥128和加密的备份子密钥130。通过将加密的验证者子密钥128和加密的备份子密钥130存储在分散式介质(例如区块链平台210)上,用户103不需要向第三方验证者提供任何子密钥116,并且只有继承人或利益相关者例如通过接收存储子密钥116之一的冷存储设备118来接收物理共享。继承人/利益相关者因此可以依赖于第三方(例如法律实体)以例如通过验证死亡凭证或需要由法律实体验证的某个其他编码条件来从区块链平台210释放加密的验证者子密钥128和/或加密的备份子密钥130,而不给予第三方任何子密钥116。此外,只有密钥管理设备204可以从区块链平台释放加密的验证者子密钥128和加密的备份子密钥130,因为区块链映射信息由密钥管理设备秘密地且保密地存储,如上所述。在一些例子中,在密钥管理设备204使用在本地(例如在数据库120(图1))中存储的组映射信息来识别恢复资产私钥所需的在区块链平台132上存储的特定的加密的验证者子密钥128和/或加密的备份子密钥130之前,验证者必须通过证明验证者有权访问恢复资产私钥所需的最小数量的子密钥116来向密钥管理设备204验证它已经有来自最小所需数量的继承人或利益相关者的同意。

因此,系统100提供了一种分散式方法和系统,其分割资产私钥110并存储所得到的子密钥116以将来在恢复资产私钥时使用,该分散式方法和系统对抗黑客或篡改具有极强抵抗力。例如,在所示的例子中,密钥管理设备204被配置为提供和管理基于网络的密钥管理服务,但从未访问资产私钥110,即使在临时基础上也没有。替代地,在发起用户计算设备202处(例如在发起用户计算设备202上在本地运行的网络浏览器软件应用中)执行访问、分割和加密所得到的子密钥的所有步骤。在密钥管理设备204不被用作验证者的例子中,密钥管理设备在将加密的验证者子密钥128和备份子密钥130存储在区块链平台132上之前,也永远不能访问冷存储设备206、208的密钥对119的私钥或者由发起用户计算设备202生成的密钥对127、129的私钥,其用于将验证者子密钥125和备份子密钥126加密。替代地,密钥管理设备106通过能够确定恢复资产私钥所需的特定的加密的验证者子密钥128和/或加密的备份子密钥130的在区块链平台上的存储位置来安全且保密地存储协调资产私钥110的未来恢复所需的映射信息。如上面所提到的,在一些例子中,密钥管理设备204,而不是验证者冷存储设备208,还存储使用验证者密钥对127所需的通行码,来进一步防止由验证者或密钥管理设备106对资产私钥的未经授权的恢复。在一些例子中,在密钥管理设备204被选择为验证者的场合,密钥管理设备还存储验证者密钥对127和备份密钥对129以及通行码。在又一些其他例子中,密钥管理设备可以仅存储验证者或备份密钥对和通行码,以及第三方(例如用户103之一)可以存储验证者和备份密钥对中的另一个和通行码。

恢复资产私钥

在一个例子中,为了恢复资产私钥110,恢复过程可以在验证者计算设备212处由验证者发起,因为验证者负责验证最初由发起用户指定的用于恢复资产私钥的条件。因此,恢复过程可以在步骤260处由验证用户发起,该验证用户用验证者计算设备212连接到密钥管理设备204,向密钥管理设备204提供验证信息并提供指示验证者希望恢复资产私钥的恢复请求。在步骤260之前,被选择为验证者(例如,继承人、利益相关者或例如法律实体的第三方)的用户103可以执行各种验证步骤中的任何一个以确认密钥恢复的条件已经出现。例如,资产私钥110的发起用户或其他原始所有者的死亡凭证的审查和验证、原始所有者的丧失能力的法院命令、指示事件(例如合并或收购)的出现的已执行法律协议或者来自最少数量的用户103(例如大多数或所有用户)的恢复密钥的请求。

在260处连接到密钥管理设备204之后,在一些例子中,然后可以提示验证者将验证者冷存储设备208连接到验证者计算设备212,并且如上所述,验证者冷存储设备可以被配置有认证协议,例如fido认证协议,用于在262处向验证者计算设备发送认证信息,该认证信息在264处又被发送到密钥管理设备204。在266处,密钥管理设备204可以认证验证者冷存储设备,并且使用组映射信息(例如,如表2所示)来查找与验证者冷存储设备认证信息(例如,验证者冷存储设备id,其可以是公钥或者基于验证者冷存储设备208的密钥对119的公钥(例如,该公钥的散列)或者某个其他唯一id)相关联的组。

根据组映射信息,密钥管理设备204可以例如通过验证所提供的用户id作为验证者被列在组映射信息中来确定验证者计算设备212是否被授权做出恢复请求。密钥管理设备204还可以识别组中的用户,并且在268处密钥管理设备可以例如经由在验证者计算设备212的网络浏览器上的用户界面来向验证者计算设备212提示或以其他方式通知必须连接他们的冷存储设备206以获得恢复资产私钥110所需的子密钥116的剩余用户103。在验证者可以访问所有第一冷存储设备206的例子中,在270处,验证者可以将每个冷存储设备206连接到验证者计算设备,向冷存储设备206提供公钥(例如,验证者密钥对127的公钥),并且冷存储设备206可以将存储在冷存储设备上的加密的子密钥116解密,用验证者公钥将子密钥重新加密,并且将加密的子密钥116发送到验证者计算设备。在其他例子中,每个用户103可以将他或她的冷存储设备206连接到他或她的用户计算设备102,并将他或她的子密钥116安全地传递到验证者计算设备212。

在步骤272处,验证者计算设备可以,例如用由密钥管理设备204接收并在网络浏览器中执行的指令,将接收和解密的子密钥116与恢复资产私钥110所需的最小阈值t的子密钥进行比较,并且验证接收到的子密钥的数量等于t减去验证者子密钥125的数量,从而指示一旦验证者子密钥被获得,验证者就将能够恢复资产私钥。

在274处,验证者计算设备212可以通知密钥管理设备204来自用户的子密钥的所有第一部分122已经被接收到,这可以包括关于接收到的子密钥的第一部分的信息,例如它们被得自的冷存储设备id和子密钥116的散列。在276处,密钥管理设备204可以将在步骤274处接收到的信息与存储在数据库120中的组映射信息进行比较,并且在278处验证到匹配时为验证者计算设备212提供指令以恢复资产私钥。资产私钥的恢复可以包括在280处从区块链平台210访问加密的验证者子密钥128。如上面所提到的,在一些例子中,组映射信息可以包括用于确定在区块链平台上的加密的验证者子密钥128被存储在其处的存储位置的区块链映射信息。区块链映射信息可以由密钥管理设备204安全地存储,使得加密的验证者子密钥128可以只在密钥管理设备验证所有所需的条件被满足之后被访问。在282处,加密的验证者子密钥128可以用验证者密钥对127的私钥被解密。如上面所提到的,在一些例子中,密钥管理设备204还可以安全地存储使用验证者密钥对127所需的通行码。在这样的例子中,在步骤282之前,例如在278处,密钥管理设备可以安全地将通行码传递到验证者计算设备212以用于将加密的验证者子密钥128解密。步骤282还可以包括执行恢复算法来组合子密钥116以恢复资产私钥110。恢复算法可以是在验证者计算设备212的浏览器中执行的javascript组合函数或者由验证者计算设备执行的其他软件。

在密钥管理设备204用作验证者的例子中,步骤260-282可以相应地被修改。例如,用户103之一可以经由用户计算设备102之一来连接到密钥管理设备204,并请求资产私钥110被恢复。在一些例子中,先前已经接收到子密钥116的第一部分122之一的任何用户103可以请求恢复。在其他例子中,发起用户可能已经将特定用户指定为被授权请求恢复的唯一用户。请求用户可以将他或她的冷存储设备206连接到他或她的计算设备102,并且冷存储设备可以被配置有认证协议,例如fido认证协议,以向密钥管理设备204发送认证信息。密钥管理设备204可以认证冷存储设备,并使用组映射信息(例如,如表2所示)来查找与冷存储设备认证信息相关联的组以验证用户被授权请求恢复。

根据组映射信息,密钥管理设备204可以确定组中的用户并提示用户连接恢复资产私钥110所需的剩余用户的冷存储设备206。每个冷存储设备206可以直接或间接地连接到验证者计算设备212,并且安全地传递在冷存储设备上存储的子密钥116。然后,验证者或恢复用户可以用验证者计算设备212(例如用由密钥管理设备204接收并在网络浏览器中执行的指令)来将接收和解密的子密钥116与恢复资产私钥110所需的最小阈值t的子密钥进行比较,并验证接收到的子密钥的数量等于t减去验证者子密钥125的数量,并通知密钥管理设备204来自用户的子密钥的全部或至少阈值量的第一部分122已被接收到。密钥管理设备204可以将从验证者计算设备212接收的信息与存储在数据库120中的组映射信息进行比较,并且在验证到匹配时为验证者计算设备212提供指令以恢复资产私钥。在验证者密钥对和通行码127由密钥管理设备204存储的例子中,密钥管理设备可以从区块链平台210访问加密的验证者子密钥128,用由密钥管理设备存储的验证者密钥对127的验证者私钥将加密的验证者子密钥128解密,并将验证者密钥125安全地传递到验证者计算设备212。验证者计算设备212然后可以执行恢复算法来组合子密钥116以恢复资产私钥110。恢复算法可以是在验证者计算设备212的浏览器中执行的javascript组合函数或者由验证者计算设备执行的其他软件。因此,在一些例子中,通过选择密钥管理设备204作为验证者,可以实现资产私钥的自动恢复而不需要牵连第三方作为验证者。

可以使用根据本说明书的教导编程的一个或更多个机器(例如,被用作电子文档的用户计算设备的一个或更多个计算设备、一个或更多个服务器设备,例如文档服务器等)来方便地实现本文描述的方面和实施例中的任一个或多个,如对计算机领域中的普通技术人员明显的。适当的软件编码可以容易由熟练的程序员基于本公开的教导来准备,如对软件领域中的普通技术人员明显的。上面讨论的采用软件和/或软件模块的方面和实现也可以包括用于帮助实现软件和/或软件模块的机器可执行指令的适当的硬件。

这种软件可以是采用机器可读存储介质的计算机程序产品。机器可读存储介质可以是能够存储指令序列和/或将指令序列编码用于由机器(例如,计算设备)执行的并且使机器执行本文描述的方法和/或实施例中的任何一个的任何介质。机器可读存储介质的例子包括但不限于磁盘、光盘(例如,cd、cd-r、dvd、dvd-r等)、磁光盘、只读存储器“rom”设备、随机存取存储器“ram”设备、磁卡、光卡、固态存储设备、eprom、eeprom及其任何组合。如本文使用的机器可读介质意欲包括单个介质以及在物理上分离的介质的集合,例如光盘或者与计算机存储器结合的一个或更多个硬盘驱动器的集合。如本文所使用的,机器可读存储介质不包括信号传输的暂时形式。

这种软件还可以包括作为数据信号在数据载体(例如载波)上携带的信息(例如数据)。例如,机器可执行信息可以被包括为体现在数据载体中的携带数据的信号(其中该信号将指令序列或其一部分编码用于由机器(例如,计算设备)执行)以及使机器执行本文所述的方法和/或实施例中的任何一个的任何相关信息(例如,数据结构和数据)。

计算设备的例子包括但不限于电子书阅读设备、计算机工作站、终端计算机、服务器计算机、手持设备(例如平板计算机、智能手机等)、网络电器、网络路由器、网络交换机、网桥、能够执行指定将被任何机器采取的行动的指令序列的该任何机器及其任何组合。在一个例子中,计算设备可以包括信息亭和/或被包括在信息亭中。

图3示出了在计算机系统300的示例性形式中的计算设备的一个例子的图形表示,在该计算机系统300中,可以执行用于使控制系统(例如图1的密钥管理系统)执行本公开的方面和/或方法中的任一个或更多个的一组指令。还可以设想,多个计算设备可以用于实现用于使一个或更多个设备执行本公开的方面和/或方法中的任一个或更多个的一组特别配置的指令。计算机系统300包括通过总线312与彼此和与其他部件通信的处理器304和存储器308。总线312可以包括几种类型的总线结构中的任何一种,包括但不限于使用多种总线架构中的任何一种的存储器总线、存储器控制器、外围总线、本地总线及其任何组合。

存储器308可以包括各种部件(例如,机器可读介质),包括但不限于随机存取存储器部件、只读部件及其任何组合。在一个例子中,基本输入/输出系统316(bios)(包括例如在启动期间帮助在计算机系统300内的元件之间传递信息的基本例程)可以存储在存储器308中。存储器308还可以包括(例如,存储在一个或更多个机器可读介质上)体现本公开的方面和/或方法中的任一个或更多个的指令(例如,软件)320。在另一例子中,存储器308还可以包括任何数量的程序模块,包括但不限于操作系统、一个或更多个应用程序、其他程序模块、程序数据及其任何组合。

计算系统300还可以包括存储设备324。存储设备(例如,存储设备324)的例子包括但不限于硬盘驱动器、磁盘驱动器、与光学介质结合的光盘驱动器、固态存储设备及其任何组合。存储设备324可以通过适当的接口(未示出)连接到总线312。示例接口包括但不限于scsi、高级技术附件(ata)、串行ata、通用串行总线(usb)、ieee1394(firewire)及其任何组合。在一个例子中,存储设备324(或其一个或更多个部件)可以可移除地与计算机系统300(例如,通过外部端口连接器(未示出))通过接口连接。特别地,存储设备324和相关联的机器可读介质328可以为计算机系统300提供机器可读指令、数据结构、程序模块和/或其他数据的非易失性和/或易失性存储。在一个例子中,软件320可以完全或部分地驻留在机器可读介质328中。在另一个例子中,软件320可以完全或部分地驻留在处理器304内。

计算机系统300还可包括输入设备332。在一个例子中,计算机系统300的用户可以经由输入设备332将命令和/或其他信息输入到计算机系统300中。输入设备332的例子包括但不限于字母数字输入设备(例如键盘)、指向设备、操纵杆、游戏手柄、音频输入设备(例如麦克风、语音响应系统等)、光标控制设备(例如,鼠标)、触控板、光学扫描仪、视频捕获设备(例如,静止照相机、视频照相机)、触摸屏及其任何组合。输入设备332可以通过各种接口(未示出)中的任何一种(包括但不限于串行接口、并行接口、游戏端口、usb接口、firewire接口、到总线312的直接接口及其任何组合)接口连接到总线312。输入设备332可以包括在下面进一步讨论的触摸屏接口,该触摸屏接口可以是显示器336的一部分或者与显示器336分离。输入设备332可以用作用于如上所述在图形界面中选择一个或更多个图形表示的用户选择设备。

用户还可以通过存储设备324(例如,可移动磁盘驱动器、闪存驱动器等)和/或网络接口设备340向计算机系统300输入命令和/或其他信息。网络接口设备(例如网络接口设备340)可以用于将计算机系统300连接到各种网络中的一个或更多个(例如网络344)以及连接到其的一个或更多个远程设备348。网络接口设备的例子包括但不限于网络接口卡(例如,移动网络接口卡、lan卡)、调制解调器及其任何组合。网络的例子包括但不限于广域网(例如,互联网、企业网络)、局域网(例如,与办公室、建筑物、校园或其他相对小的地理空间相关联的网络)、电话网络、与电话/语音提供商相关联的数据网络(例如,移动通信提供商数据和/或语音网络)、在两个计算设备之间的直接连接及其任何组合。网络(例如网络344)可以采用有线和/或无线通信模式。通常,任何网络拓扑可以被使用。信息(例如数据、软件320等)可以经由网络接口设备340被传递到计算机系统300和/或从计算机系统300传递。

计算机系统300还可以包括用于将可显示的图像传递到显示设备(例如显示设备336)的视频显示适配器352。显示设备的例子包括但不限于液晶显示器(lcd)、阴极射线管(crt)、等离子显示器、发光二极管(led)显示器及其任何组合。显示适配器352和显示设备336可以与处理器304结合来使用,以提供本公开的各方面的图形表示。除了显示设备之外,计算机系统300还可以包括一个或更多个其他外围输出设备,包括但不限于音频扬声器、打印机及其任何组合。这种外围输出设备可以通过外围接口356连接到总线312。外围接口的例子包括但不限于串行端口、usb连接、firewire连接、并行连接及其任何组合。

前述内容是本公开的说明性实施例的详细描述。注意在本说明书及其所附的权利要求中,除非另有特别规定或指示,例如在短语“x、y和z中的至少一个”和“x、y和z中的一个或更多个”中使用的连接语言应该被理解为意指在连接列表中的每一项目可以以除该列表中的所有其他项目之外的任何数目或者以结合在连接列表中的任何或所有其他项目的任何数目存在,每个项目也可以以任何数目存在。应用这个一般规则,在前述例子中的连接短语(其中连接列表由x、y和z组成)应各自包含:x中的一个或更多个;y中的一个或更多个;z中的一个或更多个;x中的一个或更多个和y中的一个或更多个;y中的一个或更多个和z中的一个或更多个;x中的一个或更多个和z中的一个或更多个;以及x中的一个或更多个、y中的一个或更多个和z中的一个或更多个。

可以做出各种修改和添加而不偏离本公开的精神和范围。上述各种实施例中的每一个的特征可以视情况与其他所描述的实施例的特征组合,以便在相关联的新实施例中提供多个特征组合。此外,虽然前文描述多个单独的实施例,但本文描述的内容仅仅说明本公开的原理的应用。此外,虽然本文的特定方法可被说明和/或描述为以特定顺序执行,但排序在普通技能范围内是高度可变的以实现本公开的各方面。因此,本描述注定仅作为例子被采用,而不以其他方式限制本公开的范围。

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