法律状态公告日
法律状态信息
法律状态
2022-07-05
授权
发明专利权授予
技术领域
本发明属于信息安全中身份管理技术领域,尤其涉及一种隐私保护的安全去中心化自我主权身份认证协议方法。
背景技术
安全的身份认证协议是网络空间安全稳定发展的一个必要前提。在如今大数据搜索、人脸识别、云计算和中心化认证等互联网环境下,庞大的数据和智能算法给社会带来便利的同时,也给用户的数字身份隐私泄露带来了巨大的隐患。
早期的身份信息管理从单点登录身份模型,发展到联合身份认证模型,再演变为以OpenID为主的以用户为中心认证模型。这些方案都摆脱不了认证过程造成的隐私泄露、缺少对自己身份的可控性和集中式的身份认证,导致身份数据始终不属于自己。于是近年来有人提出了自我主权(Self-Sovereign Identity,SSI)的概念,它能提供一种可移植、安全和可控的身份的方式,将数字身份由用户管理。Allen等最早提出SSI必须满足十个属性。但是这些属性太过抽象,不利于理解和开发,Andrew等又将SSI属性分为可控性、安全性、可移植性和可控性、可接受、零成本。这些分类虽然名称不同,但含义类似。为了避免分歧,Ferdous等对之前的分类进行了全面分析,把相似的属性提炼出来,创建了一个扩展的分类,分别为基础属性、安全性、可控性、灵活性和持久性。最终,可以从分析SSI的定义发展了解到属性的要求主要围绕三个方面:安全性、可控性和可移植性。
作为新一代的身份认证概念,很多企业都在尝试开发SSI身份系统。而大部分还在测试的SSI系统都是基于区块链的,区块链技术虽然可以提供各种技术优势,但是对于实现SSI的细粒度授权和隐私保护,仍然存在一些缺陷。联盟链结合了公共链和私有链,通过节点选举或投票来达成公式的一种半中心化区块链类型。相对于公共链开放所有节点拥有计票权力来说更为严格,加入联盟链的节点需经过审核,但对比私有链去中心化程度更高,预设的节点可以在区块链中进行交易。
目前的SSI身份认证协议不仅不支持身份信息授权的细粒度控制,而且没有考虑身份信息的隐私保护。而传统的策略控制签名可以实现细粒度共享,但公开的访问策略会在认证时受到不同程度的隐私泄露。
发明内容
为了解决上述问题,本发明提供了一种隐私保护的安全去中心化自我主权身份认证协议方法,本发明基于自我主权的特性,使用W3C规划的分布式标识符作为统一标识符实现在分布式域和中心域身份平台互相通用,满足可移植性。然后利用支持策略隐藏的策略控制签名方案和可验证声明标准结合对用户身份信息进行断言,实现身份数据细粒度授权和隐私保护。然后将不暴露隐私的可验证声明存储在底层联盟链作为信任背书,实现不对同身份域的数据访问,满足安全性和去中心化验证。
本发明所采用的技术方案是:一种隐私保护的安全去中心化自我主权身份认证协议方法,其特征在于:
基于联盟链的特征,发明了一种满足自我主权身份属性,用户拥有对身份数据控制唯一控制权的身份认证协议;本发明所设计协议的参与方包括用户终端、服务端、可信第三方、组织节点、区块链存储节点和个人存储,包含以下步骤:
步骤1:分布式域身份注册,参与方包括:用户终端、组织节点、区块链存储和世界状态;用户请求分布式标识符分布式域注册,组织节点收到请求生成分布式标识符和分布式标识符文档;组织节点处理数据后,区块链存储数据并使用世界状态来保存分布式标识符最新的状态,最后返回分布式标识符完成注册;
步骤2:中心域身份注册,参与方包括:用户终端、可信第三方和个人存储;用户请求可验证声明中心域注册,可信第三方验证数据,产生可验证声明和属性证书返回给用户,用户使用策略控制签名对可验证声明进行签名产生策略可验证声明,用户在个人存储中保存策略可验证声明完成中心域注册;
步骤3:用户请求分布式域认证服务,服务端通过组织节点解析分布式标识符,检查世界状态中的分布式标识符是否有效,若有效则从区块链中返回分布式标识符文档;服务端通过分布式标识符文档进行认证,验证成功则授权登录;
步骤4:用户请求中心域认证服务,服务端验证策略可验证声明和分布式标识符权威性,验证成功则授权登录;
步骤5:用户请求分布式标识符分布式域身份吊销,组织节点解析请求,更改分布式标识符世界状态,分布式标识符身份吊销完成;
步骤6:用户请求可验证声明中心域身份吊销,吊销节点解析,更新可验证声明吊销列表,可验证声明身份吊销成功。
作为优选,步骤1所述用户请求分布式标识符分布式域注册的方法为:
用户使用客户端进行请求来创建分布式标识符,首先在客户端产生随机种子,生成公私钥对
步骤1所述生成分布式标识符文档为:
计算公钥和组织节点的端口等验证信息得到DIDD=SetDIDD(PK,ST);其中PK为公钥,ST为端口等验证信息,DIDD为分布式标识符文档;函数SetDIDD将解析当前版本、创建时间和更新时间,记录公钥发行人,公钥机制和公钥内容,记录端口信息ST和认证方式,以JSON格式保存所有类型名称和对应数值生成分布式标识符文档;
步骤1所述生成分布式标识符的方法为:
计算分布式标识符文档,使用分布式标识符方法得到DID=PPCS-SSI method(Base58((sha256(DIDD)));其中DIDD为分布式标识符文档,sha256为哈希函数,base58为编码函数,方法PPCS-SSI method为支持隐私自我主权的DID生成方法,主要对分布式标识符文档进行sha256处理后,再使用Base58做编码,然后添加did:PPCS-SSI method在结果前生成DID;
步骤1所述区块链存储数据的方法为:
将分布式标识符与分布式标识符文档以键值对的形式存放在域内的区块链中,通过解析分布式标识符可以得到分布式标识符文档;
步骤1所述使用世界状态来保存分布式标识符最新的状态的方法为:
世界状态表示链交易日志所有值地最新值,新建以分布式标识符为键,分布式标识符文档为值的有效数据提交到世界状态;
步骤1所述返回分布式标识符的方法为:
分布式标识符注册完成后通过加密通道返回分布式标识符给用户终端,本地存储后完成去中心化域注册。
作为优选,步骤2所述用户请求可验证声明中心域注册的方法为:
用户使用客户端录入个人可标识属性和数字资产,例如年龄和驾驶证等;然后以加密通道将分布式标识符和需要验证的数字身份提交给可信第三方;
步骤2所述可信第三方验证数据的方法为:
对用户的数字身份进行确认,确认成功后,使用可信第三方分布式标识符的私钥SK
同时为了可以验证他人的签名,根据用户的属性生成属性证书Cre,并将可验证声明和属性证书Cre返回给用户;
步骤2所述用户生成策略可验证声明方法为:
用户接收可验证声明和属性证书,客户端通过策略控制签名算法使用访问策略对可验证声明进行签名σ=Sign(POL,VC,DID);其中POL为用户制定的访问策略,VC为可验证声明,DID为用户的分布式标识符;函数Sign为策略控制签名,通过用户私钥对可验证声明进行签名,同时在签名上附加访问策略,最后签名连接可验证声明得到策略可验证声明PVC;
步骤2所述策略可验证声明存储方法为:
用户将策略可验证声明存储到私人云存储上,完成中心化域注册。
作为优选,步骤3所述用户请求服务方法为:
用户选择服务类型,发送个人分布式标识符给服务端;
步骤3所述服务端解析分布式标识符方法为:
服务端收到用户分布式标识符,根据用户所需要的服务进入身份域内,再通过区块链组织节点对分布式标识符进行解析,得到分布式标识符文档;
步骤3所述分布式标识符世界状态检查方法为:
得到分布式标识符文档后,世界状态提供对这些键的最新值的直接访问,先检查世界状态,是否在有效期内;若有效,则进行返回状态,并得到分布式标识符文档的信息;
步骤3所述分布式标识符认证方法:
服务端得到分布式标识符文档后,使用身份认证组件的信息运行验证算法进行验证;首先使用分布式标识符文档中的公钥对挑战值加密得到CT=En(Nonce,DIDD(PK)),其中CT为加密后的挑战值,Nonce为明文挑战值,DIDD(PK)为分布式标识符文档中的公钥,函数En为公钥加密;经过挑战应答后,用户终端解密挑战值PT=De(CT,SK)发送给服务端,其中SK为用户私钥,CT为加密后的挑战值,PT为解密后的应答值;若Nonce=PT,则服务端验证成功;
如果验证算法通过,证明分布式标识符登录成功,认证结束。
作为优选,步骤4所述用户请求中心域认证的方法为:
根据服务端返回认证所需要的身份资格要求,用户从个人云端获取选择有关身份的策略可验证声明策略可验证声明和分布式标识符,将分布式标识符和策略可验证声明发送给服务端;
步骤4所述服务端验证策略可验证声明的方法为:
服务端使用属于自己的属性证书来验证策略可验证声明上的策略控制签名Checkpol=(POL,Cre),其中,POL为策略可验证声明附带的访问策略,Cre为拥有属性值的属性证书,函数Checkpol通过配对属性证书中的属性是否满足访问策略;若满足,则服务端得到可验证声明;
步骤4所述服务端验证可验证声明的方法为:
首先根据所签署可验证声明的可信第三方分布式标识符获得对应的联盟链上的分布式标识符文档,如果提前没有认证第三方,需要步骤3中进行分布式域认证,从而得到获取可验证声明上用户身份声明的签名来验证权威性;可验证声明验证分布式标识符Verify(DID
作为优选,步骤5所述用户请求分布式标识符分布式域身份吊销的方法为:
用户提交分布式标识符吊销请求发送给组织节点;
步骤5所述组织节点解析请求的方法为:
组织节点收到分布式标识符请求后,根据分布式标识符地址返回所需的资源,处理信息解析为分布式标识符文档;
步骤5所述更改分布式标识符世界状态的方法为:
根据分布式标识符文档更新所附带的分布式标识符世界状态,将分布式标识符最新状态设置为已吊销,并记录时间;返回状态详情给用户,分布式标识符吊销成功。
作为优选,步骤6所述用户请求可验证声明中心域身份吊销的方法为:
用户从个人云端提交策略可验证声明身份吊销,发出策略可验证声明吊销请求;
步骤6所述吊销节点解析的方法为:
从声明中取出可以检查吊销状态的吊销节点列表,获取吊销列表,将列表中可验证声明的状态更新为吊销状态;返回信息后,身份吊销成功。
本发明其满足三个要求:一是利用支持策略隐藏的策略控制签名方案和可验证声明标准结合对用户身份信息进行断言,实现身份数据细粒度授权和隐私保护。二是使用W3C规划的分布式标识符作为统一标识符实现在分布式域和中心域身份平台互相通用,满足可移植性。三是将不暴露隐私的可验证声明存储在底层联盟链作为信任背书,实现不对同身份域的数据访问,满足安全性和去中心化验证。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1:是本发明实施例的分布式域注册阶段;
图2:是本发明实施例的中心域注册阶段;
图3:是本发明实施例的分布式域认证阶段;
图4:是本发明实施例的中心域认证阶段;
图5:是本发明实施例的分布式域吊销阶段;
图6:是本发明实施例的中心域吊销阶段;
图7:是本发明方法流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本发明采用的技术方案是:借助联盟链和分布式标识符结合,将分布式标识符作为全局标识符为用户去中心化域进行注册、认证和吊销。最后使用策略控制签名对可验证声明进行封装产生策略可验证声明,实现用户在中心化域中对身份注册的访问权限控制、认证和吊销。
请见图1-图7,本发明提供的一种基于联盟链的支持隐私保护主权身份认证方法,包括以下步骤:
一种隐私保护的安全去中心化自我主权身份认证协议方法,其特征在于:
基于联盟链的特征,发明了一种满足自我主权身份属性,用户拥有对身份数据控制唯一控制权的身份认证协议;本发明所设计协议的参与方包括用户终端、服务端、可信第三方、组织节点、区块链存储节点和个人存储,包含以下步骤:
步骤1:分布式域身份注册,参与方包括:用户终端、组织节点、区块链存储和世界状态;用户请求分布式标识符分布式域注册,组织节点收到请求生成分布式标识符和分布式标识符文档;组织节点处理数据后,区块链存储数据并使用世界状态来保存分布式标识符最新的状态,最后返回分布式标识符完成注册;
步骤1所述用户请求分布式标识符分布式域注册的方法为:
用户使用客户端进行请求来创建分布式标识符,例如选择学术门户网站进行注册,不需要提供详细证明的快速认证场景。首先在客户端产生随机种子,生成公私钥对
步骤1所述生成分布式标识符文档为:
计算公钥和学术门户组织节点的端口等验证信息得到DIDD=SetDIDD(PK,ST);其中PK为公钥,ST为端口、服务类型等验证信息,DIDD为分布式标识符文档;函数SetDIDD将解析当前版本、创建时间和更新时间,记录公钥发行人,公钥机制和公钥内容,记录端口信息ST和认证方式,以JSON格式保存所有类型名称和对应数值生成分布式标识符文档;
步骤1所述生成分布式标识符的方法为:
计算分布式标识符文档,使用分布式标识符方法得到DID=PPCS-SSI method(Base58((sha256(DIDD)));其中DIDD为分布式标识符文档,sha256为哈希函数,base58为编码函数,方法PPCS-SSI method为支持隐私自我主权的DID生成方法,主要对分布式标识符文档进行sha256处理后,再使用Base58做编码,然后添加did:PPCS-SSI method在结果前生成DID;
步骤1所述区块链存储数据的方法为:
将分布式标识符与分布式标识符文档以键值对的形式存放在域内的区块链中,通过解析分布式标识符可以得到分布式标识符文档;
步骤1所述使用世界状态来保存分布式标识符最新的状态的方法为:
世界状态表示链交易日志所有值的最新值,新建以分布式标识符为键,分布式标识符文档为值的有效数据提交到世界状态;
步骤1所述返回分布式标识符的方法为:
分布式标识符注册完成后通过加密通道返回分布式标识符给用户终端,本地存储后完成去中心化域注册。
步骤2:中心域身份注册,参与方包括:用户终端、可信第三方和个人存储;用户请求可验证声明中心域注册,可信第三方验证数据,产生可验证声明和属性证书返回给用户,用户使用策略控制签名对可验证声明进行签名产生策略可验证声明,用户在个人存储中保存策略可验证声明完成中心域注册;
步骤2所述用户请求可验证声明中心域注册的方法为:
中心域身份注册适合需要某种身份达到某些权限的服务,例如请求医疗网络身份注册。首先用户使用客户端录入个人可标识属性和数字资产,例如医疗记录所需的年龄、身高、体重、血压、职业或身份证、驾驶证等;然后以加密通道将分布式标识符和需要验证的数字身份提交给可信第三方;
步骤2所述可信第三方验证数据的方法为:
对用户的数字身份进行确认,确认成功后,使用可信第三方分布式标识符的私钥SK
同时为了可以验证他人的签名,根据用户的属性生成属性证书Cre,并将可验证声明和属性证书Cre返回给用户;
步骤2所述用户生成策略可验证声明方法为:
用户接收可验证声明和属性证书,客户端通过策略控制签名算法使用访问策略对可验证声明进行签名σ=Sign(POL,VC,DID);其中POL为用户制定的访问策略,例如用户定制的访问策略为(内科∧门诊∧(医生∨护士))。VC为可验证声明,DID为用户的分布式标识符;函数Sign为策略控制签名,通过用户私钥对可验证声明进行签名,同时在签名上附加访问策略,最后签名连接可验证声明得到策略可验证声明PVC,根据附加的访问策略表示能够正确验证可验证声明的人必须具有属性为内科门诊的医生或护士;
步骤2所述策略可验证声明存储方法为:
用户将策略可验证声明存储到私人云存储上,完成中心化域注册。
步骤3:用户请求分布式域认证服务,服务端通过组织节点解析分布式标识符,检查世界状态中的分布式标识符是否有效,若有效则从区块链中返回分布式标识符文档;服务端通过分布式标识符文档进行认证,验证成功则授权登录;
步骤3所述用户请求服务方法为:
用户选择服务类型,发送个人分布式标识符给服务端;
步骤3所述服务端解析分布式标识符方法为:
服务端收到用户分布式标识符,根据用户所需要的服务进入身份域内,再通过区块链组织节点对分布式标识符进行解析,得到分布式标识符文档;
步骤3所述分布式标识符世界状态检查方法为:
得到分布式标识符文档后,世界状态提供对这些键的最新值的直接访问,先检查世界状态,是否在有效期内;若有效,则进行返回状态,并得到分布式标识符文档的信息;
步骤3所述分布式标识符认证方法:
服务端得到分布式标识符文档后,使用身份认证组件的信息运行验证算法进行验证;首先使用分布式标识符文档中的公钥对挑战值加密得到CT=En(Nonce,DIDD(PK)),其中CT为加密后的挑战值,Nonce为明文挑战值,DIDD(PK)为分布式标识符文档中的公钥,函数En为公钥加密;经过挑战应答后,用户终端解密挑战值PT=De(CT,SK)发送给服务端,其中SK为用户私钥,CT为加密后的挑战值,PT为解密后的应答值;若Nonce=PT,则服务端验证成功;
如果验证算法通过,证明分布式标识符登录成功,认证结束。
步骤4:用户请求中心域认证服务,服务端验证策略可验证声明和分布式标识符权威性,验证成功则授权登录;
步骤4所述用户请求中心域认证的方法为:
根据服务端返回认证所需要的身份资格要求,用户从个人云端获取选择有关身份的策略可验证声明策略可验证声明和分布式标识符,将分布式标识符和策略可验证声明发送给服务端;
步骤4所述服务端验证策略可验证声明的方法为:
服务端使用属于自己的属性证书来验证策略可验证声明上的策略控制签名Checkpol=(POL,Cre),其中,POL为策略可验证声明附带的访问策略,如(内科∧门诊∧(医生∨护士)),Cre为拥有属性值的属性证书,函数Checkpol通过配对属性证书中的属性是否满足访问策略;如Cre中的属性为外科门诊医生则无法正确验证。若具有属性为内科门诊的医生或护士满足,则服务端得到可验证声明;
步骤4所述服务端验证可验证声明的方法为:
首先根据所签署可验证声明的可信第三方分布式标识符获得对应的联盟链上的分布式标识符文档,如果提前没有认证第三方,需要步骤3中进行分布式域认证,从而得到获取可验证声明上用户身份声明的签名来验证权威性,如用户所签署的可验证声明为某个信托公司,则需要信托公司的分布式标识符之前已完成了分布式域认证;可验证声明验证分布式标识符Verify(DID
步骤5:用户请求分布式标识符分布式域身份吊销,组织节点解析请求,更改分布式标识符世界状态,分布式标识符身份吊销完成;
步骤5所述用户请求分布式标识符分布式域身份吊销的方法为:
用户提交分布式标识符吊销请求发送给组织节点;
步骤5所述组织节点解析请求的方法为:
组织节点收到分布式标识符请求后,根据分布式标识符地址返回所需的资源,处理信息解析为分布式标识符文档;
步骤5所述更改分布式标识符世界状态的方法为:
根据分布式标识符文档更新所附带的分布式标识符世界状态,将分布式标识符最新状态设置为已吊销,并记录时间;返回状态详情给用户,分布式标识符吊销成功。
步骤6:用户请求可验证声明中心域身份吊销,吊销节点解析,更新可验证声明吊销列表,可验证声明身份吊销成功。
步骤6所述用户请求可验证声明中心域身份吊销的方法为:
用户从个人云端提交策略可验证声明身份吊销,发出策略可验证声明吊销请求;
步骤6所述吊销节点解析的方法为:
从声明中取出可以检查吊销状态的吊销节点列表,获取吊销列表,将列表中可验证声明的状态更新为吊销状态;返回信息后,身份吊销成功。
应当理解的是,本说明书未详细阐述的部分均属于现有技术,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。