1.本发明属于身份管理技术领域,涉及一种基于区块链的自主身份管理方法。
背景技术:2.随着科技的发展,目前人们所处的世界由各种各样的数据驱动,因此保护用户的数据和身份是当务之急。互联网技术的不断发展,人们需要应对针对身份管理的安全和隐私问题。现实生活中身份证、驾照、护照等可以由权威机构担保为用户建立个人身份,但网络中数字身份的建立和授权难以保证可靠性与安全性。服务商作为第三方往往需要借助一个身份管理系统授权和认证用户身份,用户身份数据无法直接控制,需对中心化的身份管理系统足够信任。个人数据泄露和平台贩卖用户身份问题层出不群,当中心化身份管理机构受到攻击或者运行故障,用户的生活将会被影响,不能实现实体间交互并维护用户隐私及安全。
技术实现要素:3.本发明的目的在于克服上述现有技术的缺点,提供了一种基于区块链的自主身份管理方法,该方法能够实现实体间交互并维护用户隐私及安全。
4.为达到上述目的,本发明所述的基于区块链的自主身份管理方法包括系统的初始化、注册与登录、服务获取以及评估更新。
5.所述系统的初始化包括实体节点的部署、认证联盟组建以及主密钥的生成;
6.其中,所述实体节点的部署的具体过程为:采用以太坊作为基础区块链,数据源由政府部门或者社交平台提供,服务商为云存储提供商或者金融服务机构,管理平台由智能合约构建并作为可信的第三方;
7.所述认证联盟组建的具体过程为:采用权威证明作为共识机制来定制化以太坊,组建认证联盟,各实体间链下交互时构建安全通道,在区块链中,交易和区块的发布需要经过联盟共识;
8.所述主密钥的生成的具体过程为:用户产生两个基础的密钥作为初始密钥,用于后续交互子密钥生成,其中,所述两个基础的密钥包括数据访问密钥dak及身份授权密钥iak。
9.注册与登录包括数据源注册、管理平台注册及管理平台登录。
10.所述数据源注册包含以下步骤:
11.1)用户通过ecdsa密钥生成算法利用数据访问密钥dak生成相互独立的数据源密钥dsk;
12.2)用户向数据源注册并分发密钥,将数据源密钥dsk与数据源关联。
13.所述管理平台注册的具体过程为:
14.3)用户通过ecdsa密钥生成算法利用身份授权密钥iak生成相互独立的身份管理密钥imk;
15.4)用户输入参数注册管理平台,其中,输入参数包括用户名、密码及身份管理密钥imk。
16.所述管理平台的登录过程为:
17.5)用户向客户端中输入已注册的用户名及密码,当用户名及密码正确时,则客户端跳转至双因素验证阶段,并发送双因素认证验证码至用户端,再转至步骤6);否则,则跳转至登陆失败状态;
18.6)用户将所述双因素认证验证码反馈给管理平台,当双因素验证通过后,则转至步骤7);否则,跳转至失败状态;
19.7)用户利用身份管理密钥imk生成对应的登录密钥,其中,用户每次产生一个登录密钥对应一个定位参数i,再将登录密钥及定位参数i一起发送给管理平台;
20.8)管理平台预存有用户注册时提供的身份管理密钥imk,利用该身份管理密钥imk与定位参数i,验证生成登录密钥,当管理平台产生的登录密钥与用户输入的登录密钥匹配,则用户认证成功;否则,用户身份登录认证失败。
21.服务获取包括用户身份的认定、身份的认证授权及隐私保护;
22.其中,所述用户身份的认定过程为:
23.9)用户注册并登录服务商,发送服务获取请求;
24.10)服务商将用户重定位到管理平台,用户登录管理平台后,选择用于提供给服务商的身份属性;
25.11)用户依据自身的服务获取需求选择对应的数据源,并向该数据源获取相应的身份属性认证。
26.步骤11)的具体过程为:
27.12)用户生成代理重加密密钥prek;
28.13)用户利用代理重加密密钥prek加密身份数据及数据源密钥dsk,将加密内容inf
prek
发送给管理平台;
29.14)用户利用数据源的公钥加密prek,通过公钥加密prek对数据源的密钥dsk和所需的身份信息进行重加密,再将加密内容inf2ds
prek
发送给数据源;
30.15)数据源收到用户发送的加密内容inf2ds
prek
后利用私钥解密,依据密钥dsk进行系统内匹配,根据所需的身份信息及用户注册时的信息进行核对,当核对通过,则数据源向管理平台发送用户身份认证通过标志flag
suc
;
31.16)数据源将本次用户的数据访问写入交易,再发送到区块链进行记录;
32.17)管理平台在收到数据源的认证通过信号flag
suc
后,用户的客户端界面同步收到认证成功提醒时,则用户发送重加密密钥prek给管理平台,管理平台利用重加密密钥prek对保存的信息inf
prek
解密。
33.评估更新的具体过程为:
34.18)管理平台对解密的身份属性进行信誉评估,将身份信息和对应的评估结果发送给服务商;
35.19)服务商在提供服务前,设置信誉阈值,当管理平台发送的身份属性及信誉评估结果满足信誉阈值时,则服务商向用户提供服务;
36.20)管理平台在用户及服务商完成一次完整的身份认证后,建立(用户,服务商,数
据源,身份属性)四元组构成的映射关系并进行存储;
37.21)当任一项用户属性被多次使用,则该身份属性的信誉值会增加;当任一项身份属性提供给服务商后被驳回,则该属性的信誉值会下降;
38.22)对于无法满足服务商信誉阈值的身份属性,身份管理者单独将(用户,服务商,数据源,身份属性)四元组利用存在性证明机制进行保存,便于后期快速访问和属性筛查。
39.所述评估更新还包括:
40.23)用户向管理平台发起匿名更新请求,管理平台定期询问用户授权匿名更新,用户发送匿名更新请求pureq=(sig
usr
,req
pu
,p
usr
),其中,sig为用户的数字签名,req
pu
为带有时间戳的匿名更新请求,p
usr
为用户的旧匿名;
41.24)管理平台收到所述匿名更新请求后,对用户的签名及旧匿名进行校验,当验证通过,则管理平台更改系统存储的(用户,服务商,数据源,身份属性)四元组以及布谷鸟过滤器,然后用户访问数据源或者获取服务时,则会收到来自管理平台的新匿名;当旧匿名验证失败时,则管理平台为用户的请求返回一个新的匿名作为新的身份np
usr
=enc(p
usr
,sig
usr
)。
42.本发明具有以下有益效果:
43.本发明所述的基于区块链的自主身份管理方法在具体操作时,包括系统的初始化、注册与登录、服务获取以及评估更新,用户可以完全自主掌控自己的身份信息,通过管理平台选择不同的数据源作为认证方以应用于不同的服务商;另外需要说明的是,在身份认证授权过程中保证用户隐私不泄露的问题,通过代理重加密技术在不需要将身份信息完全依托给第三方的情况下,实现身份的认证和授权,细粒度且安全地进行身份管理,以实现实体间交互并维护用户隐私及安全,保证服务提供的平稳性,减少冗余空间的占用。
附图说明
44.图1为本发明的概览图;
45.图2为本发明的密钥生成示意图;
46.图3为本发明的服务获取流程图。
具体实施方式
47.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,不是全部的实施例,而并非要限制本发明公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要的混淆本发明公开的概念。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
48.在附图中示出了根据本发明公开实施例的结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
49.本发明所述的基于区块链的自主身份管理系统包括用户、管理平台、服务商及数据源,其中,用户通过管理平台借助数据源来获得身份认证,服务商及用户通过管理平台进行交互。
50.本发明所述的基于区块链的自主身份管理方法包括在数据源注册、与管理平台交互、向服务商获取服务,具体通过初始化模块、注册与登录模块、服务获取模块及评估更新模块实现。
51.其中,所述初始化模块用于系统基础设施搭建以及系统启动条件实现,包含实体节点部署、认证联盟组建功能及主密钥生成功能。
52.实体节点部署功能:本实施例的实体均作为一条私有的区块链的节点,本发明采用以太坊(ethereum)作为基础区块链,其中,数据源由政府部门或者社交平台提供,服务商为云存储提供商或者金融服务机构,管理平台由智能合约构建并作为可信的第三方,本实施例的私有链具有准入机制,节点加入系统需要登记。
53.认证联盟组建功能,面向用户自主控制身份属性的需求,并考虑多数据源联合的特点,本发明采用权威证明(proof of authority,poa)作为共识机制来定制化以太坊,组建认证联盟。另外,各实体间链下交互时构建安全可靠的通道。在区块链中,交易和区块的发布需要经过联盟共识,相较于公有区块链,具备较高的安全性;相较于工作量证明机制(proof of work,pow),不需要耗费大量计算就可达成共识。
54.主密钥生成功能,用户产生两个基础的密钥作为初始密钥,用于后续交互子密钥生成,包括数据访问密钥dak及身份授权密钥iak。
55.注册与登录模块实现用户向数据源和管理平台交互,包含数据源注册功能、管理平台注册及管理平台登录功能。
56.其中,数据源注册包含以下步骤:
57.1)如图2所示,用户通过ecdsa密钥生成算法利用数据访问密钥dak生成相互独立的数据源密钥dsk;
58.2)用户向数据源注册并分发密钥,将数据源密钥dsk与数据源关联;
59.其中,管理平台注册功能,管理平台提供用户用于注册登录的客户端,用户通过该客户端的前端页面与管理平台交互,如图2所示,具体过程为:
60.3)用户通过ecdsa密钥生成算法利用身份授权密钥iak生成相互独立的身份管理密钥imk;
61.其中,管理平台由多个身份管理节点组成,每个身份管理节点关联多个数据源;管理平台由智能合约实现,身份管理节点发布并部署合约到以太坊区块链,向用户开放客户端接口;
62.4)用户输入参数注册管理平台,其中,输入参数包括用户名、密码及身份管理密钥imk。
63.其中,管理平台的登录功能,设置双因素认证机制(two-factor authentication,2fa),具体实现过程为:
64.5)用户向客户端中输入已注册的用户名及密码,当用户名及密码正确时,则客户端跳转至双因素验证阶段,并发送双因素认证验证码至用户端,再转至步骤6);否则,则跳转至登陆失败状态;
65.6)用户将所述双因素认证验证码(如短信验证码)反馈给管理平台;当双因素验证通过后,则执行步骤7);否则,跳转至失败状态;
66.7)如图1所示,用户利用身份管理密钥imk生成对应的登录密钥,其中,密钥生成是分级的,用户每次产生一个登录密钥对应一个定位参数i,再将登录密钥及定位参数i一起发送给管理平台;
67.8)管理平台预存有用户注册时提供的身份管理密钥imk,利用该身份管理密钥imk与定位参数i,验证生成所述登录密钥,当管理平台产生的登录密钥与用户输入的登录密钥匹配,则用户认证成功;否则,用户身份登录认证失败。
68.本实施例所述服务获取模块,用于用户向服务商获取所需的服务,服务商需要确定用户身份被认证,涉及身份的认证授权及隐私保护等问题,具体操作过程为:
69.9)用户注册并登录服务商,发送服务获取请求;
70.10)服务商将用户重定位到管理平台,用户登录管理平台后,选择用于提供给服务商的身份属性;
71.11)用户依据自身的服务需求选择对应的数据源,并向该数据源获取相应的身份属性认证。
72.本实施例定义身份由多个属性组成,例如名字、出生日期及年龄等,不同的数据源提供的属性内容及真实性不同,管理平台对所述身份属性进行标识评估。
73.本实施例所述的身份真实性体现在数据源对于各身份属性的权威性及可靠性。例如,用户需要登录某银行服务,需要名字及身份证号码,则其通过管理平台选取的数据源可以是公安部门登记的居民身份信息;当用户需要登录某云服务提供商,则只需要名字或昵称,可以选择社交媒体的身份信息,如微信的个人信息作为数据源。
74.本实施例的身份认证和授权的主要思想是:i)用户依据需要向服务商提供的身份属性选择数据源;ii)数据源收到用户的身份属性及自身系统存有的信息,对用户的身份信息进行认证;iii)数据源将认证结果发送给管理平台;iv)管理平台作为服务商与用户的沟通桥梁,依据身份认证结果对用户获取服务商服务进行授权。
75.本实施例中用户向数据源获取身份信息证明的过程采用代理重加密机制(proxy re-encryption),实现密文传输的同时数据源可对用户身份属性进行认证,并且管理平台在获得来自数据源的身份认证后才能接触用户数据,保障用户对身份信息的细粒度自主控制,具体过程为:
76.12)用户在初始化模块生成代理重加密密钥prek;
77.13)用户利用代理重加密密钥prek加密身份数据及数据源密钥dsk,将加密内容inf
prek
发送给管理平台;
78.131)用户将代理重加密密钥prek发送给数据源及管理平台;
79.132)用户通过管理平台与其余实体交互,所述加密内容inf
prek
虽然经过管理者平台,但是在获取到用户分享的prek前无法被其解密;
80.14)用户利用数据源的公钥加密prek,通过公钥加密prek对数据源的密钥dsk和所需的身份信息进行重加密,再将加密内容inf2ds
prek
发送给数据源;
81.15)数据源收到用户发送的加密内容inf2ds
prek
后利用私钥解密,依据密钥dsk进行系统内匹配,根据所需的身份信息及用户注册时的信息进行核对,当核对通过,则数据源
向管理平台发送用户身份认证通过标志flag
suc
;
82.16)数据源将本次用户的数据访问写入交易,再发送到区块链进行记录,所述交易包含的信息包括用户访问请求、管理平台和服务商的声明及所需身份属性声明,其中,服务商和所需属性由用户发送的加密信息包含;
83.数据源实体可以看作是用户身份信息的保管者及认证者,通过细粒度的密钥交换,保证用户对身份信息的自主控制。此外,数据源实体对用户访问身份信息作为事件记录到区块链备案,保证数据的完整性和可追溯性。
84.17)管理平台在收到数据源的认证通过信号flag
suc
后,用户的客户端界面同步收到认证成功提醒,用户发送重加密密钥prek给管理平台,管理平台利用重加密密钥prek对保存的信息inf
prek
解密。
85.所述管理平台具备两种作用,一方面接收及传递用户的身份信息;另一方面对用户的各身份属性进行评估。除区块链结构带来的分布式对等可信外,数据源在区块链存储的信息为用户及管理平台增加信任担保。
86.所述评估更新模块旨在优化完善身份管理方法,解决用户多次访问数据冗余问题,评估身份属性可靠程度,对用户匿名进行定期更新,具体实现过程为:
87.18)管理平台对解密的身份属性进行信誉评估,将身份信息和对应的评估结果发送给服务商;
88.19)服务商在提供服务前,设置的所需属性应满足的信誉阈值,当管理平台发送的身份属性及信誉评估结果满足信誉阈值时,则服务商向用户提供服务;
89.20)管理平台在用户及服务商完成一次完整的身份认证后,建立(用户,服务商,数据源,身份属性)四元组构成的映射关系并进行存储;
90.21)当任一项用户属性被多次使用,则该身份属性的信誉值会增加;当任一项身份属性提供给服务商后被驳回,则该属性的信誉值会下降;
91.22)对于无法满足服务商信誉阈值的身份属性,身份管理者单独将(用户,服务商,数据源,身份属性)四元组利用存在性证明机制进行保存,便于后期快速访问和属性筛查。
92.本实施例中存在性证明需要满足可删除、便于检索等特性,传统的存在性证明采用的布隆过滤器(bloom filter)无法实现可删除并且具备较高的误报率,本发明采用改进的布谷鸟过滤器(cooker filter)记录不良身份属性,实现可删除和低误报率,可看作经过数据压缩的检索表。
93.本实施例中用户在注册管理平台时,采用匿名(可以是由公钥生成的随机字符串),但当一直保持静态的匿名时,服务商可能会通过区块链记录和自己的服务访问记录定位到用户。本实施例采用匿名更新的方法对用户登记的匿名定期更新,进而优化保障用户隐私。本实施例的匿名更新发生在隐私泄露或者管理平台定期更新两种情况。本实施例的匿名更新不会增加太多的额外开销,可以对用户隐私安全进一步保护,具体实施步骤如下:
94.23)用户向管理平台发起匿名更新请求,管理平台定期询问用户授权匿名更新,用户发送匿名更新请求pureq=(sig
usr
,req
pu
,p
usr
),其中,sig为用户的数字签名,req
pu
为带有时间戳的匿名更新请求,p
usr
为用户的旧匿名;
95.24)管理平台收到所述匿名更新请求后,对用户的签名及旧匿名进行校验,当验证通过,则管理平台更改系统存储的(用户,服务商,数据源,身份属性)四元组以及布谷鸟过
滤器,然后用户访问数据源或者获取服务时,则会收到来自管理平台的新匿名;当旧匿名验证失败时,则管理平台为用户的请求返回一个新的匿名作为新的身份np
usr
=enc(p
usr
,sig
usr
)。
96.应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。