会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 账户身份服务系统 / 账户管理方法、账户管理设备和账户管理系统

账户管理方法、账户管理设备和账户管理系统

申请号 CN202310245619.8 申请日 2023-03-14 公开(公告)号 CN116260648A 公开(公告)日 2023-06-13
申请人 蚂蚁区块链科技(上海)有限公司; 发明人 陈远; 李书博; 孙善禄; 代平;
摘要 本说明书实施例提供一种账户管理方法、账户管理设备和账户管理系统。该账户管理方法包括:服务端的服务组件从客户端的客户组件获取来自用户方的场景身份注册数据;服务组件根据场景身份注册数据,配置与用户方相关联的场景信息;以及服务组件在场景链上配置用户方的与场景相关联的场景身份。
权利要求

1.一种账户管理方法,包括:

服务端的服务组件从客户端的客户组件获取来自用户方的场景身份注册数据,其中,与所述用户方的去中心化身份关联的身份文档被存储在身份链上;

所述服务组件根据所述场景身份注册数据,配置与所述用户方相关联的场景信息;以及所述服务组件在场景链上配置所述用户方的与场景相关联的场景身份。

2.根据权利要求1所述的账户管理方法,其中,所述场景身份注册数据包括选定场景列表数据,所述选定场景列表数据被配置为指示所述用户方从候选场景列表数据中选定的一个或多个场景。

3.根据权利要求2所述的账户管理方法,其中,所述候选场景列表数据是由所述服务组件传输给所述客户组件的。

4.根据权利要求2所述的账户管理方法,其中,所述场景身份注册数据还包括第一签名数据,所述第一签名数据是利用所述用户方的控制私钥对所述选定场景列表数据进行签名来产生的。

5.根据权利要求4所述的账户管理方法,其中,所述控制私钥被存储在所述客户端的第一可信执行环境中,且在所述第一可信执行环境中利用所述控制私钥对所述选定场景列表数据进行签名来产生所述第一签名数据。

6.根据权利要求4所述的账户管理方法,其中,所述控制私钥被存储在不同于所述客户端和所述服务端的密钥托管端中。

7.根据权利要求4所述的账户管理方法,其中,所述服务组件根据所述场景身份注册数据,配置与所述用户方相关联的场景信息包括:所述服务组件利用所述用户方的控制公钥对所述第一签名数据进行验签,其中,所述控制公钥与所述控制私钥相匹配,且所述控制公钥被包含在与所述用户方的去中心化身份关联的身份文档中;以及当验签通过时,所述服务组件根据所述选定场景列表数据来更新与所述用户方相关联的场景信息。

8.根据权利要求7所述的账户管理方法,其中,与所述用户方相关联的场景信息被包含在与所述用户方的去中心化身份关联的身份文档中;

当验签通过时,所述服务组件根据所述选定场景列表数据来更新与所述用户方相关联的场景信息包括:当验签通过时,所述服务组件从所述身份链获取与所述用户方的去中心化身份关联的身份文档;以及所述服务组件根据所述选定场景列表数据来更新所述身份文档中包含的场景信息,并将更新的身份文档传输给所述身份链以供所述身份链存储。

9.根据权利要求7所述的账户管理方法,其中,与所述用户方相关联的场景信息被存储在独立于所述身份链和所述场景链设置的链下数据库中。

10.根据权利要求1所述的账户管理方法,其中,所述服务组件在场景链上配置所述用户方的与场景相关联的场景身份包括:所述服务组件在所述场景链上建立所述用户方的场景账户作为所述场景身份。

11.根据权利要求1所述的账户管理方法,其中,所述服务组件在场景链上配置所述用户方的与场景相关联的场景身份包括:所述服务组件将所述用户方的身份信息作为所述场景身份绑定到所述场景链上的智能合约中。

12.根据权利要求1所述的账户管理方法,其中,所述身份链和所述场景链为同一区块链。

13.根据权利要求1所述的账户管理方法,其中,所述身份链和所述场景链为不同的区块链。

14.根据权利要求1所述的账户管理方法,还包括:

在所述服务组件处注册运营方的与场景相关联的场景链。

15.根据权利要求14所述的账户管理方法,其中,在所述服务组件处注册运营方的与场景相关联的场景链包括:所述服务组件获取来自所述运营方的场景注册数据,其中,所述场景注册数据包括与场景相关联的场景链的场景链配置数据、智能合约配置数据和场景描述数据;

所述服务组件根据所述场景链配置数据建立与所述场景链之间的连接;

所述服务组件根据所述智能合约配置数据部署所述场景链的智能合约;以及所述服务组件记录包括所述场景描述数据的至少部分场景注册数据以建立场景。

16.根据权利要求1所述的账户管理方法,还包括:

在所述身份链上注册所述用户方的去中心化身份。

17.根据权利要求16所述的账户管理方法,其中,在所述身份链上注册所述用户方的去中心化身份包括:所述服务组件从所述客户组件获取所述用户方的身份注册数据,其中,所述身份注册数据包括身份核验信息;

所述服务组件对所述身份核验信息进行验证;

当验证通过时,所述服务组件为所述用户方分配去中心化身份,并将所述去中心化身份传输到所述第一可信执行环境中;

所述服务组件从所述第一可信执行环境中获取所述用户方的控制公钥;

所述服务组件根据所述去中心化身份和所述控制公钥配置与所述用户方的去中心化身份关联的身份文档;以及所述服务组件基于所述身份文档在所述身份链上注册所述用户方的去中心化身份。

18.根据权利要求17所述的账户管理方法,其中,所述身份核验信息包括二要素信息和生物核身信息。

19.根据权利要求17所述的账户管理方法,其中,所述身份注册数据还包括用户名信息;

当验证通过时,所述服务组件为所述用户方分配去中心化身份包括:所述服务组件为所述用户方建立与所述用户名信息相关联的去中心化身份。

20.根据权利要求17所述的账户管理方法,其中,所述服务组件将所述去中心化身份传输到所述第一可信执行环境中包括:所述服务组件利用服务私钥对所述去中心化身份进行签名以产生第二签名数据,以及所述服务组件将所述去中心化身份和所述第二签名数据传输到所述第一可信执行环境中。

21.根据权利要求20所述的账户管理方法,其中,在所述身份链上注册所述用户方的去中心化身份还包括:在所述第一可信执行环境中,利用服务公钥对所述第二签名数据进行验签,其中,所述服务公钥与所述服务私钥相匹配;

当验签通过时,在所述第一可信执行环境中产生所述用户方的控制公钥和控制私钥,其中,所述控制公钥与所述控制私钥相匹配;以及将所述去中心化身份和所述控制公钥从所述第一可信执行环境传输给所述服务组件,并将所述控制私钥存储在所述第一可信执行环境中。

22.根据权利要求1所述的账户管理方法,还包括:

产生所述用户方的恢复公钥和恢复私钥,其中,所述恢复公钥与所述恢复私钥相匹配。

23.根据权利要求22所述的账户管理方法,其中,产生所述用户方的恢复公钥和恢复私钥包括:所述服务组件从所述客户组件获取所述用户方的恢复密钥数据;

所述服务组件根据所述恢复密钥数据,产生所述用户方的恢复公钥和恢复私钥;以及所述服务组件将所述用户方的去中心化身份和所述恢复公钥关联地存储到所述身份链上。

24.根据权利要求23所述的账户管理方法,其中,产生所述用户方的恢复公钥和恢复私钥还包括:所述客户组件获取来自所述用户方的恢复密钥数据,并将所述恢复密钥数据传输到所述第一可信执行环境中;

在所述第一可信执行环境中,利用所述用户方的控制私钥对所述恢复密钥数据进行签名以产生第三签名数据,并将所述第三签名数据从所述第一可信执行环境传输到所述客户组件。

25.根据权利要求24所述的账户管理方法,其中,所述服务组件根据所述恢复密钥数据,产生所述用户方的恢复公钥和恢复私钥包括:所述服务组件利用所述用户方的控制公钥对所述第三签名数据进行验签;以及当验签通过时,所述服务组件产生所述用户方的恢复公钥和恢复私钥。

26.根据权利要求22所述的账户管理方法,其中,产生所述用户方的恢复公钥和恢复私钥包括:所述服务组件从所述客户组件获取所述用户方的恢复密钥数据,并将所述恢复密钥数据传输给可信链,其中,所述可信链在所述服务端的第二可信执行环境中存储和运行;

在所述第二可信执行环境中,根据所述恢复密钥数据产生所述用户方的恢复公钥和恢复私钥,其中,所述恢复私钥被存储在所述第二可信执行环境中;

所述服务组件从所述第二可信执行环境获取所述用户方的恢复公钥;以及所述服务组件将所述用户方的去中心化身份和恢复公钥关联地存储到所述身份链上。

27.根据权利要求26所述的账户管理方法,其中,产生所述用户方的恢复公钥和恢复私钥还包括:所述客户组件获取来自所述用户方的恢复密钥数据以及所述可信链的链公钥;

所述客户组件利用所述链公钥对所述恢复密钥数据进行加密以产生加密的恢复密钥数据,并将所述加密的恢复密钥数据传输到所述第一可信执行环境中;

在所述第一可信执行环境中,利用所述用户方的控制私钥对所述加密的恢复密钥数据进行签名以产生第四签名数据,并将所述第四签名数据从所述第一可信执行环境传输到所述客户组件。

28.根据权利要求27所述的账户管理方法,其中,所述服务组件从所述客户组件获取所述用户方的恢复密钥数据,并将所述恢复密钥数据传输给可信链包括:所述服务组件利用所述用户方的控制公钥对所述第四签名数据进行验签;以及当验签通过时,所述服务组件将所述加密的恢复密钥数据传输给所述可信链。

29.根据权利要求28所述的账户管理方法,其中,在所述第二可信执行环境中,根据所述恢复密钥数据产生所述用户方的恢复公钥和恢复私钥包括:在所述第二可信执行环境中,利用所述可信链的链私钥对所述加密的恢复密钥数据进行解密,以产生所述恢复密钥数据,其中,所述链公钥与所述链私钥相匹配;以及在所述第二可信执行环境中,根据所述恢复密钥数据产生所述用户方的恢复公钥和恢复私钥,并存储所述恢复密钥数据。

30.根据权利要求26所述的账户管理方法,其中,所述可信链与所述身份链为同一区块链。

31.根据权利要求23或26所述的账户管理方法,其中,所述恢复密钥数据包括由用户方设置的恢复问题和与所述恢复问题相匹配的恢复答案。

32.根据权利要求22所述的账户管理方法,还包括:利用所述用户方的恢复公钥和恢复私钥来更新所述用户方的控制公钥和控制私钥。

33.根据权利要求32所述的账户管理方法,其中,利用所述用户方的恢复公钥和恢复私钥来更新所述用户方的控制公钥和控制私钥包括:所述服务组件从所述客户组件获取所述用户方的身份核验信息;

所述服务组件对所述身份核验信息进行验证;

当验证通过时,利用所述用户方的恢复私钥基于所述用户方的更新的控制公钥进行签名以产生第五签名数据;

所述服务组件利用所述用户方的恢复公钥对所述第五签名数据进行验签;以及当验签通过时,所述服务组件更新与所述用户方的去中心化身份关联的身份文档,以将更新的控制公钥配置在所述身份文档中。

34.根据权利要求33所述的账户管理方法,其中,当验证通过时,利用所述用户方的恢复私钥基于所述用户方的更新的控制公钥进行签名以产生第五签名数据包括:当验证通过时,所述服务组件从所述客户组件获取所述用户方的更新的控制公钥;

所述服务组件对所述更新的控制公钥进行哈希计算,以产生第一哈希值;

所述服务组件将所述第一哈希值传输给密钥托管端;以及在所述密钥托管端中,利用所述用户方的恢复私钥对所述第一哈希值进行签名以产生所述第五签名数据。

35.根据权利要求32所述的账户管理方法,其中,利用所述用户方的恢复公钥和恢复私钥来更新所述用户方的控制公钥和控制私钥包括:所述服务组件从所述客户组件获取所述用户方的身份核验信息;

所述服务组件对所述身份核验信息进行验证;

当验证通过时,所述服务组件从可信链获取由所述用户方设置的恢复密钥数据中的恢复问题,并将所述用户方的去中心化身份和所述恢复问题传输给所述客户组件,其中,所述可信链在所述服务端的第二可信执行环境中存储和运行;

所述服务组件从所述客户端获取第一密钥更新数据,其中,所述第一密钥更新数据包括所述用户方的去中心化身份、针对所述恢复问题的答案信息和更新的控制公钥;

所述服务组件将基于所述第一密钥更新数据产生的第二密钥更新数据传输给所述可信链;

所述服务组件从所述可信链获取利用所述用户方的恢复私钥对所述第二密钥更新数据的至少一部分进行签名所产生的第六签名数据;

所述服务组件利用所述用户方的恢复公钥对所述第六签名数据进行验签;以及当验签通过时,所述服务组件更新与所述用户方的去中心化身份相关联的身份文档,以将更新的控制公钥配置在所述身份文档中。

36.根据权利要求35所述的账户管理方法,其中,所述第二密钥更新数据包括所述用户方的去中心化身份、针对所述恢复问题的答案信息和对所述更新的控制公钥进行哈希计算所产生的第二哈希值。

37.根据权利要求36所述的账户管理方法,其中,利用所述用户方的恢复公钥和恢复私钥来更新所述用户方的控制公钥和控制私钥还包括:在所述第二可信执行环境中,比对所述答案信息和所述恢复密钥数据中的恢复答案;

当所述答案信息与所述恢复答案一致时,利用所述用户方的恢复私钥对所述第二哈希值进行签名,以产生所述第六签名数据;以及将所述第六签名数据从所述第二可信执行环境传输给所述服务组件。

38.根据权利要求35所述的账户管理方法,其中,利用所述用户方的恢复公钥和恢复私钥来更新所述用户方的控制公钥和控制私钥还包括:所述客户组件获取来自所述用户方的答案信息;以及

在所述第一可信执行环境中,产生更新的控制公钥和更新的控制私钥,并将所述更新的控制公钥从所述第一可信执行环境传输给所述服务组件,将所述更新的控制私钥保存在所述第一可信执行环境中。

39.根据权利要求31所述的账户管理方法,其中,利用所述用户方的恢复公钥和恢复私钥来更新所述用户方的控制公钥和控制私钥还包括:所述服务组件对所述用户方的场景身份进行更新,以将更新的控制公钥配置在所述场景身份中。

40.一种账户管理设备,包括:

通信模块,被配置为从客户端的客户组件获取来自用户方的场景身份注册数据,其中,与所述用户方的去中心化身份关联的身份文档被存储在身份链上;以及场景身份注册模块,被配置为根据所述场景身份注册数据,配置与所述用户方相关联的场景信息,和在场景链上配置所述用户方的与场景相关联的场景身份。

41.根据权利要求40所述的账户管理设备,还包括:场景链注册模块,被配置为注册运营方的与场景相关联的场景链。

42.根据权利要求40所述的账户管理设备,还包括:身份注册模块,被配置为在所述身份链上注册所述用户方的去中心化身份。

43.根据权利要求40所述的账户管理设备,还包括:恢复密钥模块,被配置为产生所述用户方的恢复公钥和恢复私钥,其中,所述恢复公钥与所述恢复私钥相匹配。

44.根据权利要求43所述的账户管理设备,还包括:密钥更新模块,被配置为利用所述用户方的恢复公钥和恢复私钥来更新所述用户方的控制公钥和控制私钥。

45.一种账户管理系统,包括:

根据权利要求40至44中任一项所述的账户管理设备;

客户端;以及

存储有与用户方的去中心化身份关联的身份文档和场景身份的区块链。

说明书全文

账户管理方法、账户管理设备和账户管理系统

技术领域

[0001] 本说明书实施例属于区块链技术领域,尤其涉及一种账户管理方法、账户管理设备和账户管理系统。

背景技术

[0002] 随着数字化进程的不断发展,开发出了越来越多的业务场景来为用户方提供相应的服务。通常情况下,用户方需要在每种业务场景下建立其身份或账户,而业务场景的运营方可以采用中心化的方式来管理其所有用户的身份或账户。这将导致同一个用户方在多个业务场景下的多个身份或账户之间常常是彼此割裂的,难以有效整合。另外,由于一般是由运营方的上层应用来代理进行用户方的具体操作,因此也带来了一定的安全风险。因而,有必要改进在多个业务场景下管理用户的身份或账户的方式。

发明内容

[0003] 本说明书一个或多个实施例的目的在于提供一种账户管理方法、账户管理设备和账户管理系统,以整合用户在不同的业务场景下的身份,并实现分布式的账户管理来保障账户安全性。
[0004] 根据本说明书一个或多个实施例的第一方面,提供了一种账户管理方法,包括:服务端的服务组件从客户端的客户组件获取来自用户方的场景身份注册数据,其中,与用户方的去中心化身份关联的身份文档被存储在身份链上;服务组件根据场景身份注册数据,配置与用户方相关联的场景信息;以及服务组件在场景链上配置用户方的与场景相关联的场景身份。
[0005] 根据本说明书一个或多个实施例的第二方面,提供了一种账户管理设备,包括通信模块和场景身份注册模块,通信模块被配置为从客户端的客户组件获取来自用户方的场景身份注册数据,其中,与用户方的去中心化身份关联的身份文档被存储在身份链上,场景身份注册模块被配置为根据场景身份注册数据,配置与用户方相关联的场景信息,和在场景链上配置用户方的与场景相关联的场景身份。
[0006] 根据本说明书一个或多个实施例的第三方面,提供了一种账户管理系统,包括如上所述的账户管理设备、客户端以及存储有与用户方的去中心化身份关联的身份文档和场景身份的区块链。

附图说明

[0007] 为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0008] 图1是本说明书一实施例的账户管理方法中在身份链上注册用户方的去中心化身份的示意图;
[0009] 图2是本说明书一实施例的账户管理方法中在服务组件处注册运营方的与场景相关联的场景链的流程示意图;
[0010] 图3是本说明书一实施例中账户管理方法的流程示意图;
[0011] 图4是本说明书一具体示例中账户管理方法的示意图;
[0012] 图5是本说明书一实施例的账户管理方法中产生用户方的恢复公钥和恢复私钥的示意图;
[0013] 图6是本说明书另一实施例的账户管理方法中产生用户方的恢复公钥和恢复私钥的示意图;
[0014] 图7是本说明书一实施例的账户管理方法中利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥的示意图;
[0015] 图8是本说明书另一实施例的账户管理方法中利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥的示意图;
[0016] 图9是本说明书一实施例中账户管理设备的示意图;
[0017] 图10是本说明书一实施例中账户管理系统的示意图。

具体实施方式

[0018] 为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0019] 区块链是一种利用加密算法和点对点传输技术构建的分布式网络数据存储技术,其具有去中心化、防篡改、可溯源等特点。在区块链中,数据可以不再存储于一个中心化的硬件或管理机构,而是由权利和义务对等的区块链节点来共同维护;数据可以被记录在区块链技术构建的系统的多个节点上,能够实现在任意时间查看任何节点保存在本地区块链中的数据;一旦数据经过验证并添加到区块链,就可以被永久地存储起来,利用共识算法和哈希链式数据存储技术能够实现数据的不可篡改,从而保证数据的安全性和真实性。
[0020] 可信执行环境(Trusted Execution Environment,TEE)是指服务端或客户端中的安全可信区域(TrustZone),以保证放入其中的代码和数据的安全性、机密性和完整性。可信执行环境提供了一种隔离的执行环境或者说独立运行的小型操作系统,该操作系统以系统调用(由TrustZone内核直接处理)的方式直接提供少数服务,其代码和数据可以在可信执行环境中运行,且在运行过程中可以保证不被常规操作系统干扰,从而保证代码和数据的机密性、完整性和安全性。
[0021] 基于区块链技术的去中心化的身份服务(Decentralized Identifier Service,DIS)可以为用户提供不受单一的注册中心、身份服务商或认证中心限制的,由自己控制的去中心化身份(DID)。然而,当前的DIS系统主要为企业端(B端)的业务场景提供服务,在大部分业务场景中,采用密钥托管方式来帮助客户端(C端)或者用户方管理密钥。这样,在不同的业务场景之间,同一个用户方的多个密钥常常是彼此独立的,换句话说,同一个用户方在不同的业务场景中的身份是彼此割裂的,难以被有效整合。此外,用户方的链上操作通常是由上层应用代理进行的,这样无法保证上层应用不模拟用户方的行为进行作恶,因此存在一定的安全合规风险。
[0022] 为了解决上述问题,本说明书一个或多个实施例提出了一种直接为用户方提供账户管理服务的账户管理方法,该账户管理方法可以帮助用户方安全地管理密钥,可以结合DIS技术的托管模式来统一管理各个业务场景下的链上账户,使用户方的身份与业务场景解耦,并可以通过智能合约来协助用户方进行能够保证隐私安全的链上操作。
[0023] 在本说明书一个或多个实施例的账户管理方法中,通常涉及客户端和服务端两者之间的信息交互。其中,客户端可以包括例如用户方的智能手机、平板电脑、智能电视等移动终端。客户端可以基于安卓操作系统、IOS操作系统或者其他的操作系统运行,在此不作限制。在客户端中可以设置第一可信执行环境用于安全存储和计算等,此外客户端中还可以包括设置在第一可信执行环境之外的客户组件,用于进行其他存储和计算。服务端中可以包括为用户方提供相应服务的服务组件,此外服务端中还可以包括用于记录用户方的身份信息的一条或多条区块链。另外,在一些实施例中,也可以在服务端中设置第二可信执行环境,并将例如区块链等存储在第二可信执行环境中,以保障数据的安全性。在一些实施例中,客户组件和服务组件可以是基于以区块链实现的分布式移动端上组件服务的,该服务可以提供分布式可信链路以实现移动端与区块链的服务之间的交互。
[0024] 在本说明书一个或多个实施例中,账户管理方法可以包括在身份链上注册用户方的去中心化身份。其中,用户方的去中心化身份可以是独立于具体的业务场景而注册或建立的,相应地,身份链也可以是独立于具体的业务场景而存在的,然后用户方可以基于该通用的去中心化身份进一步建立与各个业务场景对应的场景身份。
[0025] 在一些实施例中,与身份链上的去中心化身份相关联的身份账户中包含的信息可以包括用户方的身份标识(Identity)和身份文档(Doc)。具体而言,可以在身份链上开设区块链账户,利用该区块链账户可以执行信息的上链操作。区块链账户下可以设置一个或多个智能合约,用于实现相应的功能。其中,身份账户可以是建立在预设智能合约下的、用于记录用户方的信息的账户。在身份账户的身份文档中可以定义用户方的去中心化身份和公钥。身份文档可以包括一个或多个公钥,例如包括用户方设置的一个或多个控制公钥以及恢复公钥等,如后文将详细描述的。在一些实施例中,在身份文档中还可以定义与用户方相关联的业务场景的场景信息(Scence),这些场景信息具体可以指示场景的内容、场景所在的区块链以及场景相关的智能合约等。然而,可以理解的是,在一些实施例中,取决于用户方的意愿等因素,也可以不在区块链上存储与用户方相关联的场景信息,而是将这些场景信息另外存储在独立于区块链设置的链下数据库中或存储在其他地方,在此不作限制。由此可见,在身份链上存储的身份文档中,至少包括用户方的去中心化身份和公钥。另外,为了建立用户方与业务场景之间的连接,在场景链中可以记录用户的场景身份。场景身份可以以场景链上的场景账户的形式存在,或者以被绑定到场景链上的智能合约中的身份信息的形式存在。具体而言,在一些实施例中,场景链可以对身份链上的DID智能合约进行监听。一旦用户方给出指令需要开通某个业务场景(例如,用户可以通过选择场景列表中的场景来进行开通),则与该业务场景对应的场景链可以从身份链处获取将要开通该业务场景的DID,并在场景链上建立相应的场景账户。与身份账户类似,该场景账户可以是建立在场景链的智能合约下的。此外,场景账户可以从与DID对应的身份文档中同步所需的信息,例如同步控制公钥等,或者,在场景账户中也可以另外记录与业务场景有关的其他信息。在一些实施例中,记录在场景链上的用户方的场景身份可以至少包括用于指示场景的场景标识、用户的去中心化身份和至少一个公钥(包括控制公钥和恢复公钥等)。然而,可以理解的是,用户方的场景身份中也可以包括其他内容,只要通过该场景身份可以确定用户方所处的业务场景、用户方的身份和为了完成相应的业务活动所需的用户方的相关信息即可。
[0026] 具体而言,如图1所示,在身份链上注册用户方的去中心化身份可以包括:
[0027] 步骤S101,服务组件从客户组件获取用户方的身份注册数据。
[0028] 其中,身份注册数据可以包括身份核验信息。在一些实施例中,身份注册数据还可以包括该用户方在身份链上的用户名信息(昵称)等。身份核验信息可以用于对用户方进行实人(KYC)认证。在一些实施例中,身份核验信息可以包括二要素信息(身份证号和姓名)。或者,身份核验信息也可以包括能够唯一地指示用户方的其他号码(例如,个人的护照号、驾驶证号、税务号、银行卡号、手机号,企业等组织的统一社会信用代码等)和名称等信息。
同时,身份核验信息还可以包括用户方的生物核身信息,例如可以包括用户方的面部信息、指纹信息和声音信息中的至少一者。
[0029] 然后,在身份链上注册用户方的去中心化身份可以包括:
[0030] 步骤S103,服务组件对身份核验信息进行验证。
[0031] 具体而言,服务组件可以通过身份核验平台来对用户方提供的身份核验信息进行验证。身份核验平台可以被设置在身份链上或者独立于身份链设置(例如,身份核验平台可以是公安机关设置的中心化的身份核验平台)。服务组件可以将身份核验信息传输给身份核验平台,由身份核验平台根据身份核验信息对用户方的身份进行验证。在核验过程中,身份核验平台可以比对用户方提供的身份核验信息是否与预存的信息相匹配,并将验证结果返回给服务组件。
[0032] 返回图1,在身份链上注册用户方的去中心化身份还可以包括:
[0033] 步骤S105,当验证通过时,服务组件为用户方分配去中心化身份;以及[0034] 步骤S107,服务组件将去中心化身份传输到第一可信执行环境中。
[0035] 其中,服务组件为用户方分配去中心化身份可以包括为用户方建立与用户名信息相关联的去中心化身份(DID)。
[0036] 此外,为了保证用户方的去中心化身份安全地从服务组件传输到第一可信执行环境中,服务组件将去中心化身份传输到第一可信执行环境中可以包括服务组件利用服务私钥对去中心化身份进行签名以产生第二签名数据,以及服务组件将去中心化身份和第二签名数据传输到第一可信执行环境中。
[0037] 相应地,如图1所示,在身份链上注册用户方的去中心化身份还可以包括:
[0038] 步骤S109,在第一可信执行环境中,利用服务公钥对第二签名数据进行验签。
[0039] 其中,服务公钥和服务私钥可以是基于非对称加密算法的,例如基于公钥密码体制(RSA)。利用服务公钥对由服务私钥进行签名的信息进行验签,可以保证信息来源于期望的服务组件,从而确保安全性。
[0040] 进一步地,如图1所示,在身份链上注册用户方的去中心化身份还可以包括:
[0041] 步骤S111,当验签通过时,在第一可信执行环境中产生用户方的控制公钥和控制私钥;
[0042] 步骤S113,将去中心化身份和控制公钥从第一可信执行环境传输给服务组件;以及
[0043] 步骤S115,将控制私钥存储在第一可信执行环境中。
[0044] 其中,控制公钥和控制私钥也是基于非对称加密算法的,例如基于公钥密码体制(RSA)。在各种业务场景中,用户方可以在第一可信执行环境中使用其控制私钥对相关的信息进行签名,而接收到签名数据的相对方则可以使用用户方的控制公钥在相应的业务场景下对签名数据进行验签,并在验签通过后将所需的信息更新到身份链和/或场景链中。由于控制私钥在客户端的第一可信执行环境中产生,且被存储在第一可信执行环境中,而不会泄露到第一可信执行环境之外,因此能够很好地保证控制私钥仅能被用户方本人使用,进而保证了数据和业务的安全性。在一具体示例中,控制公钥和控制私钥可以基于椭圆曲线签名算法来产生,例如使用R1曲线来产生。然而可以理解的是,也可以采用其他数字签名算法来产生控制公钥和控制私钥,这里不作限制。
[0045] 另外,考虑到控制公钥是首次从第一可信执行环境中传输给服务组件的,因此在这里传输去中心化身份和控制公钥给服务组件时,可以不利用所产生的控制私钥对要传输的信息进行签名,而是直接将控制公钥连同去中心化身份一起(或者控制公钥)传输给服务组件。然而可以理解的是,在另一些具体示例中,也可以在第一可信执行环境中利用第一可信执行环境的私钥对去中心化身份和控制公钥(或者控制公钥)进行签名以产生相应的签名数据,并将去中心化身份和控制公钥(或者控制公钥)连同相应的签名数据一起传输给服务组件,而服务组件可以利用接收到的第一可信执行环境的公钥对签名数据进行验签,并在验签通过后再执行后续步骤。
[0046] 进一步地,如图1所示,在服务组件从第一可信执行环境中获取到用户方的控制公钥之后,在身份链上注册用户方的去中心化身份还可以包括:
[0047] 步骤S117,服务组件根据去中心化身份和控制公钥配置与用户方的去中心化身份关联的身份文档。
[0048] 其中,可以根据需要而基于预设的文档格式来配置用户方的身份文档,在此不作限制。如上文所述,在身份文档中至少包括用户方的去中心化身份和控制公钥。
[0049] 进一步地,如图1所示,在身份链上注册用户方的去中心化身份还可以包括:
[0050] 步骤S119,服务组件基于身份文档在身份链上注册用户方的去中心化身份。
[0051] 具体而言,可以通过调用身份链上的相应的智能合约来完成用户方的去中心化身份的注册。首先,可以在身份链上开设一个区块链账户,服务组件可以利用该区块链账户将所配置的身份文档传输到相应的智能合约下,以在该智能合约下基于该身份文档进行身份账户的注册,从而实现在身份链上注册用户方的去中心化身份。
[0052] 如图1所示,当在身份链上成功注册或建立了用户方的去中心化身份之后,身份链还可以将成功消息反馈给服务组件,而服务组件可以进一步将成功消息反馈给客户组件,以便用户方在客户端上了解其去中心化身份的注册情况。
[0053] 当在身份链上注册了用户方的去中心化身份之后,用户方可以基于该去中心化身份在各种具体的业务场景下建立其相应的场景身份。作为前提,账户管理方法还可以包括在服务组件处注册运营方的与场景相关联的场景链。在预先注册了与各种业务场景对应的场景链之后,服务组件可以帮助用户方基于其去中心化身份来建立相应的场景身份。
[0054] 具体而言,如图2所示,在服务组件处注册运营方的与场景相关联的场景链可以包括:
[0055] 步骤S201,服务组件获取来自运营方的场景注册数据。
[0056] 其中,场景注册数据可以包括与场景相关联的场景链的场景链配置数据、智能合约配置数据和场景描述数据。
[0057] 然后,服务组件可以根据场景链配置数据来进行初始化场景链的操作,即图2中所示的步骤S203,服务组件根据场景链配置数据找到相应的场景链,从而能够建立与场景链之间的连接。这样,服务组件可以进行与场景链之间的信息交互。当建立连接成功后,场景链可以将成功消息传输给服务组件,且服务组件可以进一步把成功消息传输给运营方,以告知运营方当前的场景链初始化状态。
[0058] 此外,如图3所示,在服务组件处注册运营方的与场景相关联的场景链还可以包括:步骤S205,服务组件根据智能合约配置数据部署场景链的智能合约。这样,服务组件可以指示场景链通过调用相应的智能合约来完成期望的操作。类似地,在完成智能合约的部署之后,场景链可以将成功消息传输给服务组件,且服务组件可以进一步把成功消息传输给运营方,以告知运营方当前的智能合约部署状态。
[0059] 在完成服务组件与场景链之间的连接和在服务组件中部署好智能合约之后,可以执行步骤S207,服务组件记录包括场景描述数据的至少部分场景注册数据以建立场景。其中,场景描述数据用于描述或说明场景的有关基本信息。在一些实施例中,所记录的部分场景注册数据还可以包括用于指示场景链的场景链标识、用于描述智能合约的智能合约信息以及其他扩展信息等。服务组件可以将上述至少部分场景注册数据记录在区块链上,或者也可以记录在链下数据库中,在此不作限制。类似地,当完成场景的建立后,服务组件可以将成功消息传输给运营方,以告知运营方当前的场景建立状态。
[0060] 当在服务组件处完成场景链的注册后,用户方可以基于去中心化身份从服务组件所提供的场景中选择期望加入的业务场景,并完成在与所选择的场景相关联的场景链上的场景身份的注册。具体而言,如图3所示,账户管理方法可以包括:
[0061] 步骤S310,服务端的服务组件从客户端的客户组件获取来自用户方的场景身份注册数据。
[0062] 在一些实施例中,场景身份注册数据可以包括被配置为指示用户方选定的一个或多个场景的选定场景列表数据。在一具体示例中,用户方可以从服务组件所提供的候选场景列表数据中选择其期望加入的一个或多个场景以产生选定场景列表数据。另外,在一些实施例中,用户方还可以对选定场景列表数据进行签名以保证安全性。
[0063] 如图4所示,服务端的服务组件从客户端的客户组件获取来自用户方的场景身份注册数据具体可以包括:
[0064] 步骤S301,服务组件主动地或者基于客户组件的请求将候选场景列表数据传输给客户组件;
[0065] 步骤S303,客户组件从用户方获取被选定的一个或多个场景,并根据该一个或多个场景来配置选定场景列表数据;
[0066] 步骤S305,客户组件将选定场景列表数据传输到第一可信执行环境中;
[0067] 步骤S307,在第一可信执行环境中,利用用户方的控制私钥对选定场景列表数据进行签名以产生第一签名数据;
[0068] 步骤S309,将第一签名数据从第一可信执行环境传输到客户组件;以及[0069] 步骤S311,客户组件将选定场景列表数据和第一签名数据一起传输给服务组件。
[0070] 然而,可以理解的是,在其他一些实施例中,用户方的控制私钥也可能被存储在不同于客户端和服务端的第三方的密钥托管端中。在这种情况下,可以在密钥托管端中利用用户方的控制私钥对选定场景列表数据进行签名以产生第一签名数据。
[0071] 返回图3,账户管理方法还可以包括:
[0072] 步骤S330,服务组件根据场景身份注册数据,配置与用户方相关联的场景信息。
[0073] 具体而言,如图4所示,服务组件根据场景身份注册数据,配置与用户方相关联的场景信息可以包括:
[0074] 步骤S313,服务组件利用用户方的控制公钥对第一签名数据进行验签。
[0075] 其中,控制公钥与控制私钥是相匹配的,且如上文所述,控制公钥可以被包含在与用户方的去中心化身份管理的身份文档中,因而服务组件可以从身份链中获取到用户方的控制公钥。
[0076] 然后,当验签通过时,服务组件可以根据选定场景列表数据来更新与用户方相关联的场景信息。
[0077] 在一些实施例中,与用户方相关联的场景信息可以被包含在用户方的身份链上的身份文档中。相应地,如图4所示,当验签通过时,服务组件根据选定场景列表数据来更新与用户方相关联的场景信息可以包括:
[0078] 步骤S315,当验签通过时,服务组件从身份链获取与用户方的去中心化身份关联的身份文档;
[0079] 步骤S317,服务组件根据选定场景列表数据来更新身份文档中包含的场景信息;以及
[0080] 步骤S319,服务组件将更新的身份文档传输给身份链以供身份链存储。
[0081] 另外,在完成身份文档的上链储存后,身份链可以将成功消息传输给服务组件以进行反馈。
[0082] 然而,在另一些实施例中,场景信息也可以不被包含在身份文档中进行上链存储,而是被存储在独立于身份链和场景链设置的链下数据库中或存储在其他地方,以更好地保护用户方的隐私。在这种情况下,服务组件可以从链下数据库等处获取场景信息,并在完成对场景信息的更新后将更新的场景信息返回给链下数据库等处以供存储。
[0083] 如图3和图4所示,账户管理方法还可以包括:
[0084] 步骤S350,服务组件在场景链上配置用户方的与场景相关联的场景身份。
[0085] 具体而言,在一些实施例中,服务组件在场景链上配置用户方的与场景相关联的场景身份可以包括服务组件在场景链上建立用户方的场景账户作为场景身份。场景链上的场景账户可以与身份链上的身份账户相似,场景账户可以包括场景身份文档,其中记录场景标识、用户方的去中心化身份和公钥等信息。
[0086] 或者,在另一些实施例中,服务组件可以将用户方的身份信息作为场景身份绑定到场景链上的智能合约中,以实现在场景链上配置用户方的与场景相关联的场景身份。也就是说,可以通过调用场景链上的智能合约来完成与用户方的场景身份相关联的操作,而不直接在场景链上建立用户方的账户。
[0087] 如图4所示,在完成场景身份的配置后,场景链还可以将成功消息传输给服务组件,服务组件可以进一步将成功消息传输给客户组件,以便告知用户方其场景身份的配置状态。
[0088] 如上文所述的,用户方的去中心化身份的身份文档可以被存储在身份链上,而与各个业务场景相关联的场景身份可以被建立在相应的场景链上。在一具体示例中,每个场景可以对应于一条场景链。在另一具体示例中,多个场景可以对应于同一条场景链。或者,在又一具体示例中,一个场景也可以对应于多条场景链。另外,在一些情况下,至少部分场景链和身份链可以是同一区块链,以节约区块链资源。然而,可以理解的是,身份链和场景链也可以被分别设置为不同的区块链。
[0089] 在本说明书一个或多个实施例中,为了方便用户方新增或修改控制公钥和控制私钥(例如,在用户方的客户端丢失或者被其他人盗用等情况下),账户管理方法还可以包括产生用户方的恢复公钥和恢复私钥。其中,恢复公钥与恢复私钥是相匹配的,例如恢复公钥和恢复私钥可以是基于非对称加密算法的,例如基于公钥密码体制(RSA)。在用户方需要新增或修改控制公钥和控制私钥的情况下,可以基于恢复公钥和恢复私钥来安全地重置控制公钥和控制私钥。
[0090] 在一实施例中,产生用户方的恢复公钥和恢复私钥可以包括:服务组件从客户组件获取用户方的恢复密钥数据。
[0091] 其中,恢复密钥数据可以用于在用户方请求新增或修改控制公钥和控制私钥时,对用户方的身份进行验证,换句话说,恢复密钥数据可以用于确认请求新增或修改控制公钥和控制私钥的一方的确是与相关的去中心化身份对应的用户方。用户方可以采用多种方式来设置恢复密钥数据。例如,在一具体示例中,恢复密钥数据可以包括由用户方设置的恢复问题和与恢复问题相匹配的恢复答案。当用户方需要新增或修改控制公钥和控制私钥时,可以提供针对恢复问题的答案信息,当所提供的答案信息与预先存储的恢复答案一致时,可以确认该用户方的身份,从而继续进行新增或修改控制公钥和控制私钥的操作,如后文中将详细描述的。或者,用户方也可以采用其他方式来配置恢复密钥数据,例如用户方可以将恢复密码等包含在恢复密钥数据中,在此不作限制。
[0092] 为了保障恢复密钥数据的安全性,用户方还可以利用其控制私钥对恢复密钥数据进行签名以产生第三签名数据,并将恢复密钥数据和第三签名数据一起从客户组件传输到服务组件,以指示服务组件产生恢复公钥和恢复私钥。具体而言,如图5所示,产生用户方的恢复公钥和恢复私钥可以包括:
[0093] 步骤S401,客户组件获取来自用户方的恢复密钥数据,并将恢复密钥数据传输到第一可信执行环境中;
[0094] 步骤S403,在第一可信执行环境中,利用用户方的控制私钥对恢复密钥数据进行签名以产生第三签名数据,并将第三签名数据从第一可信执行环境传输到客户组件;以及[0095] 步骤S405,服务组件从客户组件获取恢复密钥数据和第三签名数据。
[0096] 进一步地,产生用户方的恢复公钥和恢复私钥还可以包括:服务组件根据恢复密钥数据,产生用户方的恢复公钥和恢复私钥。
[0097] 具体而言,如图5所示,服务组件根据恢复密钥数据,产生用户方的恢复公钥和恢复私钥可以包括:
[0098] 步骤S407,服务组件利用用户方的控制公钥对第三签名数据进行验签;以及[0099] 步骤S409,当验签通过时,服务组件产生用户方的恢复公钥和恢复私钥。
[0100] 在一具体示例中,恢复公钥和恢复私钥可以基于椭圆曲线签名算法来产生,例如使用R1曲线来产生。然而可以理解的是,也可以采用其他数字签名算法来产生恢复公钥和恢复私钥,这里不作限制。
[0101] 进一步地,产生用户方的恢复公钥和恢复私钥还可以包括:
[0102] 步骤S411,服务组件将用户方的去中心化身份和恢复公钥关联地存储到身份链上。
[0103] 这样,当用户方需要新增或修改控制公钥和控制私钥时,可以采用恢复公钥和恢复私钥来保证重置控制密钥过程的安全性,如后文将详细描述的。
[0104] 另外,当用户方的恢复公钥和恢复私钥被成功地产生后,服务组件可以将成功消息传输给客户组件,以告知用户方恢复公钥和恢复私钥的建立状态。
[0105] 然而,在上述实施例中,恢复公钥和恢复私钥一般是在服务组件中产生的,这导致恢复私钥可能被泄漏而产生一定的安全隐患。为了解决上述问题,在本说明书另一实施例中,可以在服务端中设置第二可信执行环境,并在该第二可信执行环境中产生恢复公钥和恢复私钥,并将恢复私钥存储在第二可信执行环境中的可信链上,从而提高恢复密钥的安全性。在一些实施例中,可以利用可信链的链公钥对要传输到第二可信执行环境中的信息进行加密,并在可信链中利用与链公钥相匹配的链私钥对该信息进行解密,然后进行相应的隐私计算,以保证安全形。
[0106] 具体而言,产生用户方的恢复公钥和恢复私钥可以包括:服务组件从客户组件获取用户方的恢复密钥数据,并将恢复密钥数据传输给可信链。
[0107] 类似地,恢复密钥数据可以用于在用户方请求新增或修改控制公钥和控制私钥时,对用户方的身份进行验证。在一具体示例中,恢复密钥数据可以包括由用户方设置的恢复问题和与恢复问题相匹配的恢复答案。或者,用户方也可以采用其他方式来配置恢复密钥数据,在此不作限制。
[0108] 为了保障恢复密钥数据的安全性,可以利用可信链的链公钥对恢复密钥数据进行加密,并利用用户方的控制私钥对加密的恢复密钥数据进行签名以产生第四签名数据,并将加密的恢复密钥数据和第四签名数据一起传输到服务组件中,再由服务组件将通过验签的加密的恢复密钥数据传输到第二可信执行环境中。具体而言,如图6所示,产生用户方的恢复公钥和恢复私钥可以包括:
[0109] 步骤S421,客户组件获取来自用户方的恢复密钥数据;
[0110] 步骤S423,客户组件获取来自可信链的链公钥;
[0111] 步骤S425,客户组件利用链公钥对恢复密钥数据进行加密以产生加密的恢复密钥数据;
[0112] 步骤S427,客户组件将加密的恢复密钥数据传输到第一可信执行环境中;
[0113] 步骤S429,在第一可信执行环境中,利用用户方的控制私钥对加密的恢复密钥数据进行签名以产生第四签名数据,并将第四签名数据从第一可信执行环境传输到客户组件。
[0114] 相应地,如图6所示,产生用户方的恢复公钥和恢复私钥可以包括:
[0115] 步骤S431,服务组件从客户组件获取加密的恢复密钥数据和第四签名数据;
[0116] 步骤S433,服务组件利用用户方的控制公钥对第四签名数据进行验签;
[0117] 步骤S435,当验签通过时,服务组件将加密的恢复密钥数据传输给可信链。
[0118] 可以理解的是,在其他一些实施例中,在没有对加密的恢复密钥数据进行签名的情况下,服务组件也可以直接将恢复密钥数据传输给在服务端的第二可信执行环境中的可信链。
[0119] 进一步地,产生用户方的恢复公钥和恢复私钥还可以包括在第二可信执行环境中,根据恢复密钥数据产生用户方的相匹配的恢复公钥和恢复私钥。
[0120] 具体而言,如图6所示,在第二可信执行环境中,根据恢复密钥数据产生用户方的相匹配的恢复公钥和恢复私钥可以包括:
[0121] 步骤S437,在第二可信执行环境中,利用可信链的链私钥对加密的恢复密钥数据进行解密,以产生恢复密钥数据;以及
[0122] 步骤S439,在第二可信执行环境中,根据恢复密钥数据产生用户方的相匹配的恢复公钥和恢复私钥,并存储恢复密钥数据。
[0123] 如上文所述,恢复公钥和恢复私钥是相匹配的,它们可以是基于非对称加密算法的,例如基于公钥密码体制(RSA)。在一具体示例中,恢复公钥和恢复私钥可以基于椭圆曲线签名算法来产生,例如使用R1曲线来产生。然而,可以理解的是,也可以采用其他数字签名算法来产生恢复公钥和恢复私钥,这里不作限制。
[0124] 此外,由于用于验证用户的身份的恢复密钥数据被加密传输,且解密后的恢复密钥数据被存储在第二可信执行环境中,因此可以很好地保障该恢复密钥数据的安全性,避免用户方之外的其他人利用泄漏的恢复密钥数据非法新增或修改用户方的控制公钥和控制私钥。
[0125] 进一步地,如图6所示,产生用户方的恢复公钥和恢复私钥还可以包括:
[0126] 步骤S441,服务组件从第二可信执行环境获取用户方的恢复公钥;以及[0127] 步骤S443,服务组件将用户方的去中心化身份和恢复公钥关联地存储到身份链上。
[0128] 这样,当用户方需要新增或修改控制公钥和控制私钥时,可以采用恢复公钥和恢复私钥来保证重置控制密钥过程的安全性,如后文将详细描述的。
[0129] 另外,当用户方的恢复公钥和恢复私钥被成功地产生后,服务组件可以将成功消息传输给客户组件,以告知用户方恢复公钥和恢复私钥的建立状态。
[0130] 在本说明书的一些实施例中,为了节约区块链资源,可信链与身份链可以是同一区块链,且被设置在服务端的第二可信执行环境中。对于设置在第二可信执行环境中的区块链而言,其通常采用适合于可信执行环境的安全的方式来与外界进行必要的交互。相应地,存储在身份链上的身份文档可以具有更好的安全性。然而,可以理解的是,在其他一些实施例中,可信链和身份链也可以是不同的两条区块链,其中可信链上至少存储了用户方的恢复密钥数据和恢复私钥,而身份链上存储了用户方的去中心化身份及其身份文档。
[0131] 如上文所述,在本说明书一个或多个实施例中,当用户方的控制公钥和控制私钥丢失时,可以利用其恢复公钥和恢复私钥来安全地新增或修改控制公钥和控制私钥。也就是说,本说明书一个或多个实施例的账户管理方法还可以包括利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥。
[0132] 在一些实施例中,如图7所示,利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥可以包括:
[0133] 步骤S501,服务组件从客户组件获取来自用户方的身份核验信息。
[0134] 如上文所述,身份核验信息可以用于对用户方进行实人(KYC)认证。在一些实施例中,身份核验信息可以包括二要素信息(身份证号和姓名)。或者,身份核验信息也可以包括能够唯一地指示用户方的其他号码(例如,个人的护照号、驾驶证号、税务号、银行卡号、手机号,企业等组织的统一社会信用代码等)和名称等信息。同时,身份核验信息还可以包括用户方的生物核身信息,例如可以包括用户方的面部信息、指纹信息和声音信息中的至少一者。
[0135] 然后,如图7所示,利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥可以包括:
[0136] 步骤S503,服务组件对身份核验信息进行验证。
[0137] 具体而言,服务组件可以通过身份核验平台来对用户方提供的身份核验信息进行验证。身份核验平台可以被设置在身份链上或者独立于身份链设置(例如,身份核验平台可以是公安机关设置的中心化的身份核验平台)。服务组件可以将身份核验信息传输给身份核验平台,由身份核验平台根据身份核验信息对用户方的身份进行验证。在核验过程中,身份核验平台可以比对用户方提供的身份核验信息是否与预存的信息相匹配,并将验证结果返回给服务组件。
[0138] 进一步地,当验证通过时,可以利用用户方的恢复私钥基于用户方的更新的控制公钥进行签名以产生第五签名数据。
[0139] 其中,用户方的恢复私钥可以被储存在第三方的密钥托管端中,且第五签名数据在密钥托管端中产生。
[0140] 此外,在一些实施例中,可以对更新的控制公钥的哈希值进行签名以产生第五签名数据。具体而言,如图7所示,当验证通过时,利用用户方的恢复私钥基于用户方的更新的控制公钥进行签名以产生第五签名数据可以包括:
[0141] 步骤S505,当验证通过时,服务组件从客户组件获取用户方的更新的控制公钥;
[0142] 步骤S507,服务组件对更新的控制公钥进行哈希计算,以产生第一哈希值;
[0143] 步骤S509,服务组件将第一哈希值传输给密钥托管端;
[0144] 步骤S511,在密钥托管端中,利用用户方的恢复私钥对第一哈希值进行签名以产生第五签名数据。
[0145] 可以理解的是,在其他一些实施例中,也可以直接对更新的控制公钥进行签名以产生第五签名数据。
[0146] 然后,如图7所示,继续到步骤S513,服务组件利用用户方的恢复公钥对第五签名数据进行验签;以及
[0147] 步骤S515,当验签通过时,服务组件更新与用户方的去中心化身份关联的身份文档,以将更新的控制公钥配置在身份文档中。
[0148] 如上文所述,服务组件可以从身份链中获取用户方的去中心化身份的身份文档,并将更新的控制公钥配置在身份文档中,然后将更新后的身份文档传输给身份链上链存储。此外,在配置成功后,身份链可以将成功消息传输给服务组件。
[0149] 进一步地,如图7所示,利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥还可以包括:
[0150] 步骤S517,服务组件对用户方的场景身份进行更新,以将更新的控制公钥配置在场景身份中。
[0151] 具体而言,服务组件可以对场景链上的场景账户进行更新,或者对场景链的智能合约中的身份信息进行相应的更新。
[0152] 在另一些实施例中,如图8所示,利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥可以包括:
[0153] 步骤S521,服务组件从客户组件获取来自用户方的身份核验信息。
[0154] 如上文所述,身份核验信息可以用于对用户方进行实人(KYC)认证。在一些实施例中,身份核验信息可以包括二要素信息(身份证号和姓名)。或者,身份核验信息也可以包括能够唯一地指示用户方的其他号码(例如,个人的护照号、驾驶证号、税务号、银行卡号、手机号,企业等组织的统一社会信用代码等)和名称等信息。同时,身份核验信息还可以包括用户方的生物核身信息,例如可以包括用户方的面部信息、指纹信息和声音信息中的至少一者。
[0155] 然后,进行到步骤S523,服务组件对身份核验信息进行验证。
[0156] 具体而言,服务组件可以通过身份核验平台来对用户方提供的身份核验信息进行验证。身份核验平台可以被设置在身份链上或者独立于身份链设置(例如,身份核验平台可以是公安机关设置的中心化的身份核验平台)。服务组件可以将身份核验信息传输给身份核验平台,由身份核验平台根据身份核验信息对用户方的身份进行验证。在核验过程中,身份核验平台可以比对用户方提供的身份核验信息是否与预存的信息相匹配,并将验证结果返回给服务组件。
[0157] 进一步地,利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥可以包括:
[0158] 步骤S525,当验证通过时,服务组件从可信链获取用户方设置的恢复密钥数据中的恢复问题;以及
[0159] 步骤S527,服务组件将用户方的去中心化身份和恢复问题传输给客户组件。
[0160] 其中,可信链是在服务端的第二可信执行环境中存储和运行的。客户组件可以将恢复问题呈现给用户方,并获取来自所述用户方的答案信息(步骤S529)。
[0161] 然后,继续到步骤S531,客户组件将答案信息传输到第一可信执行环境中;
[0162] 步骤S533,在第一可信执行环境中,产生更新的控制公钥和更新的控制私钥,其中更新的控制私钥被存储在第一可信执行环境中;以及
[0163] 步骤S535,将用户方的去中心化身份、答案信息、更新的控制公钥包含在第一密钥更新数据中传输给服务组件。
[0164] 在一些实施例中,还可以在第一可信执行环境中利用更新的控制私钥对第一密钥更新数据进行签名,并将该签名数据连同第一密钥更新数据一起传输给服务组件。当服务组件接收到第一密钥更新数据和相应的签名数据时,可以利用更新的控制公钥对签名数据进行验签,然后进行后续的操作。
[0165] 当服务组件从客户端获取到第一密钥更新数据后,可以将基于第一密钥更新数据产生的第二密钥更新数据传输给可信链,以便可信链对用户方的身份进行验证。在一些实施例中,第二密钥更新数据可以包括用户方的去中心化身份、针对恢复问题的答案信息和对更新的控制公钥进行哈希计算所产生的第二哈希值。
[0166] 返回图8,利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥可以包括:
[0167] 步骤S537,服务组件对更新的控制公钥进行计算以产生第二哈希值;以及[0168] 步骤S539,服务组件将用户方的去中心化身份、答案信息以及第二哈希值包含在第二密钥更新数据中传输给可信链。
[0169] 然而,可以理解的是,在一些实施例中,也可以直接将第一密钥更新数据作为第二密钥更新数据传输给可信链,以便可信链对用户方的身份进行验证。具体的验证过程可以包括:
[0170] 步骤S541,在第二可信执行环境中,比对答案信息和恢复密钥数据中的恢复答案;
[0171] 步骤S543,当答案信息与恢复答案一致时,利用用户方的恢复私钥对第二哈希值进行签名,以产生第六签名数据;以及
[0172] 步骤S545,将第六签名数据从第二可信执行环境传输给服务组件。
[0173] 当服务组件从第二可信执行环境获取到第六签名数据后,可以继续到步骤S547,服务组件利用用户方的恢复公钥对第六签名数据进行验签;以及
[0174] 步骤S549,当验签通过时,服务组件更新与用户方的去中心化身份相关联的身份文档,以将更新的控制公钥配置在身份文档中。
[0175] 如上文所述,服务组件可以从身份链中获取用户方的去中心化身份的身份文档,并将更新的控制公钥配置在身份文档中,然后将更新后的身份文档传输给身份链上链存储。此外,在配置成功后,身份链可以将成功消息传输给服务组件。
[0176] 进一步地,如图8所示,利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥还可以包括:
[0177] 步骤S517,服务组件对用户方的场景身份进行更新,以将更新的控制公钥配置在场景身份中。
[0178] 具体而言,服务组件可以对场景链上的场景账户进行更新,或者对场景链的智能合约中的身份信息进行相应的更新。
[0179] 此外,在配置成功后,场景链可以将成功消息传输给服务组件,服务组件进一步将成功消息传输给客户组件。
[0180] 本说明书一个或多个实施例的账户管理方法能够协助C端用户管理在各个场景下的场景身份和相应的链上资产。具体而言,基于可信执行环境技术,可以保障存储在其中的私钥的安全性。此外,基于区块链构造了去中心化身份体系,并使身份信息与具体的业务场景解耦,可以极大地方便用户对其身份信息进行管理。例如,在新增业务场景的情况下,可以通过新增场景链来扩展业务场景,简化了新增场景流程。
[0181] 本说明书一个或多个实施例还提供了一种账户管理设备,如图9所示,该账户管理设备可以包括通信模块910和场景身份注册模块920。其中,通信模块910可以被配置为从客户端的客户组件获取来自用户方的场景身份注册数据,场景身份注册模块920可以被配置为根据场景身份注册数据,配置与用户方相关联的场景信息,和在场景链上配置用户方的与场景相关联的场景身份。
[0182] 此外,账户管理设备还可以包括被配置为注册运营方的与场景相关联的场景链的场景链注册模块930、被配置为在身份链上注册用户方的去中心化身份的身份注册模块940、被配置为产生用户方的恢复公钥和恢复私钥的恢复密钥模块950以及被配置为利用用户方的恢复公钥和恢复私钥来更新用户方的控制公钥和控制私钥的密钥更新模块960中的一者或多者,用于执行如上文的账户管理方法中的相应的步骤。
[0183] 本说明书一个或多个实施例还提供了一种账户管理系统,如图10所示,该账户管理系统可以包括如上文所述的一个或多个账户管理设备900、客户端800以及存储有与用户方的去中心化身份关联的身份文档和场景身份的区块链700。该区块链700可以提供去中心化身份服务以实现分布式账户管理,其可以是上文所述的身份链、场景链和可信链中的一者或多者。
[0184] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由使用者对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very‑High‑Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0185] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0186] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0187] 虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
[0188] 为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
[0189] 本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0190] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0191] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0192] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0193] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0194] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0195] 本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0196] 本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0197] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0198] 以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。