隐私可验证的动态did认证方法及系统

文档序号:1889530 发布日期:2021-11-26 浏览:21次 >En<

阅读说明:本技术 隐私可验证的动态did认证方法及系统 (Privacy verifiable dynamic DID authentication method and system ) 是由 连斌强 孙宗臣 王琪 于 2021-08-31 设计创作,主要内容包括:本发明提供了一种隐私可验证的动态DID认证方法和系统,包括:步骤S1:APP进行账户注册,将本地账户与DID ID绑定信息上传至可信服务器;步骤S2:App内进行属性修改,修改成功后调用可信服务器的CA证书生成功能,将CA证书在可信服务器和本地各存储一份;步骤S3:选择属性及对应的区间信息,对CA证书及区间信息进行验证并生成证明;步骤S4:将区间信息和证明结果进行链上验证。本发明将DID与BulletProofs相结合,可以实现隐私可验证的动态DID认证系统;能够防止被人恶意篡改区间数据,实现了应用BulletProofs在App端;采用预先计算证明上链以及并行证明产生,大大提高系统性能。(The invention provides a privacy verifiable dynamic DID authentication method and a system thereof, comprising: step S1: the APP registers an account, and uploads the binding information of a local account and the DID ID to a trusted server; step S2: the attribute modification is carried out in the App, the CA certificate generation function of the trusted server is called after the modification is successful, and the CA certificate is stored in the trusted server and the local area; step S3: selecting attributes and corresponding interval information, verifying the CA certificate and the interval information and generating a certificate; step S4: and performing on-chain verification on the interval information and the certification result. The invention combines DID and BulletProofs, and can realize a dynamic DID authentication system with verifiable privacy; the interval data can be prevented from being maliciously tampered by people, and the purpose that BulletProofs is applied to an App end is achieved; pre-computed proof chaining and parallel proof generation are employed to greatly improve system performance.)

隐私可验证的动态DID认证方法及系统

技术领域

本发明涉及数据隐私保护技术领域,具体地,涉及一种隐私可验证的动态DID认证方法及系统。

背景技术

随着互联网技术的不断发展,各种各样的数据也越来越多,数据的安全存储成为研究的关注焦点。如果把大量数据存储在本地,那么数据不能得到灵活的运用,所以也随之兴起大量的云服务。因为有云服务,越来越多的用户把数据存储在云端,这样用户就可以随时随地的访问和管理自己的数据。越来越多的政府、企业、个人都开始使用云存储系统来存储各种各样的文件。但是云存储也带来了各种各样的隐私泄露的问题。

移动互联网下,很多的隐私信息都得不到保护而泄露,DID方案解决了一部分场景下的隐私泄露,并不满足区间范围披露场景。DiD(Defense in Depth)的简单意思是指利用配制的多种安全防护设备对网络提供安全保护的网络技术。BulletProofs对证明结果只能验证是否为真,具体位于哪个区间无法获悉,存在可能性被人恶意篡改区间数据而无法发现。而且目前BulletProofs主要应用在服务端,在APP端的证明相对耗时,大约需要300ms左右。传统的方案基于哈希对比的方式进行选择性披露,容易造成隐私泄露。

专利文献CN110798483A(申请号:CN201911100036.6)公开了一种基于区块链的身份认证的方法,所述方法包括:用户通过安全设备访问第三方可信认证机构服务;第三方可信认证机构提供身份真实行等检测;DID生成器根据需求生成用户唯一分布式ID;身份链上用智能合约注册用户,保存DID和公钥,以及第三方信任机构标识。但是该发明不可以实现隐私的动态DID认证。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种隐私可验证的动态DID认证方法及系统。

根据本发明提供的一种隐私可验证的动态DID认证方法,包括:

步骤S1:APP进行账户注册,将本地账户与DID ID绑定信息上传至可信服务器;

步骤S2:App内进行属性修改,修改成功后调用可信服务器的CA证书生成功能,将CA证书在可信服务器和本地各存储一份;

步骤S3:选择属性及对应的区间信息,对CA证书及区间信息进行验证并生成证明;

步骤S4:将区间信息和证明结果进行链上验证。

优选地,所述步骤S1包括:

在App内输入信息进行账户注册,用Hash算法将账户密码信息存储至可信服务器;

注册成功后登录,App随机生成两对公私钥,私钥保存至用户端;

私钥保存完毕后,生成DID文件信息,依据DID文件信息通过多次哈希运算得到DIDID;

将DID ID与DID文件信息绑定进行数据上链,同时将本地账户与DID ID绑定信息上传至可信服务器。

优选地,所述步骤S2包括:

在App内进行属性修改,支持同时多属性修改,每次修改都需要验证身份;

App后台不直接存储属性信息,每当属性修改成功后,调用可信服务器的CA证书生成功能,并在服务器和本地各存储一份CA证书;针对不同的属性设置不同的过期时间;

在属性已有CA证书的情况下,再次修改后会吊销原有CA证书并重新生成一份全新的CA证书。

优选地,所述步骤S3包括:

App内的属性选择链上的区间信息生成BulletProofs范围证明,读取本地的CA证书检验是否有效;

所述检验无效包括:CA证书过期;被吊销;CA证书状态正常,但其值不符合所选区间范围;检验无效时,会直接在App内通过弹窗提示,并且弹窗需要用户点击确认操作才可关闭;

检验有效后判断是否符合所选区间,不符合所选区间直接提示不可操作原因,符合所选区间进行下一步;

选择区间信息作为BulletProofs初始化的参数,防止后续区间信息恶意篡改,调用BulletProofs生成证明方法得到证明结果,生成一个唯一的BP ID,用来将证明结果、范围区间ID、DID ID、有效时间信息进行绑定一起上传到链上,在App显示BP ID的二维码供验证;BP ID的二维码有设置的有效时间,指的是其生成证明对应属性的CA证书的过期时间内;

所述范围区间ID包括:每个属性信息系统都会初始化多个范围区间,用户生成的证明区间只能从中选取,链上部署了区间范围存证合约,通过该合约将这些区间信息以及对应的属性类别存储至链上,为了区分这些信息,每条上链信息都会匹配生成一个唯一的ID同步上传至链上,该操作由平台运营方触发;

一个属性需要生成证明的时候,根据其类别从范围区间存证合约上获取范围列表。

优选地,所述步骤S4包括:

扫描BP ID二维码,从链上查询到证明结果、范围区间ID、DID ID、有效时间这些信息;

将查询到的区间信息和证明结果进行链上验证,若区间信息遭到恶意篡改,链上验证将不会通过,若链上验证结果为真,结合有效时间验证是否通过;

整个过程无法得知到具体的相关属性信息,只能获取判断是否位于区间内。

根据本发明提供的一种隐私可验证的动态DID认证系统,包括:

系统M1:APP进行账户注册,将本地账户与DID ID绑定信息上传至可信服务器;

系统M2:App内进行属性修改,修改成功后调用可信服务器的CA证书生成功能,将CA证书在可信服务器和本地各存储一份;

系统M3:选择属性及对应的区间信息,对CA证书及区间信息进行验证并生成证明;

系统M4:将区间信息和证明结果进行链上验证。

优选地,所述系统M1包括:

在App内输入信息进行账户注册,用Hash算法将账户密码信息存储至可信服务器;

注册成功后登录,App随机生成两对公私钥,私钥保存至用户端;

私钥保存完毕后,生成DID文件信息,依据DID文件信息通过多次哈希运算得到DIDID;

将DID ID与DID文件信息绑定进行数据上链,同时将本地账户与DID ID绑定信息上传至可信服务器。

优选地,所述系统M2包括:

在App内进行属性修改,支持同时多属性修改,每次修改都需要验证身份;

App后台不直接存储属性信息,每当属性修改成功后,调用可信服务器的CA证书生成功能,并在服务器和本地各存储一份CA证书;针对不同的属性设置不同的过期时间;

在属性已有CA证书的情况下,再次修改后会吊销原有CA证书并重新生成一份全新的CA证书。

优选地,所述系统M3包括:

App内的属性选择链上的区间信息生成BulletProofs范围证明,读取本地的CA证书检验是否有效;

所述检验无效包括:CA证书过期;被吊销;CA证书状态正常,但其值不符合所选区间范围;检验无效时,会直接在App内通过弹窗提示,并且弹窗需要用户点击确认操作才可关闭;

检验有效后判断是否符合所选区间,不符合所选区间直接提示不可操作原因,符合所选区间进行下一步;

选择区间信息作为BulletProofs初始化的参数,防止后续区间信息恶意篡改,调用BulletProofs生成证明方法得到证明结果,生成一个唯一的BP ID,用来将证明结果、范围区间ID、DID ID、有效时间信息进行绑定一起上传到链上,在App显示BP ID的二维码供验证;BP ID的二维码有设置的有效时间,指的是其生成证明对应属性的CA证书的过期时间内;

所述范围区间ID包括:每个属性信息系统都会初始化多个范围区间,用户生成的证明区间只能从中选取,链上部署了区间范围存证合约,通过该合约将这些区间信息以及对应的属性类别存储至链上,为了区分这些信息,每条上链信息都会匹配生成一个唯一的ID同步上传至链上,该操作由平台运营方触发;

一个属性需要生成证明的时候,根据其类别从范围区间存证合约上获取范围列表。

优选地,所述系统M4包括:

扫描BP ID二维码,从链上查询到证明结果、范围区间ID、DID ID、有效时间这些信息;

将查询到的区间信息和证明结果进行链上验证,若区间信息遭到恶意篡改,链上验证将不会通过,若链上验证结果为真,结合有效时间验证是否通过;

整个过程无法得知到具体的相关属性信息,只能获取判断是否位于区间内。

与现有技术相比,本发明具有如下的有益效果:

1、本发明将DID与BulletProofs相结合,可以实现隐私可验证的动态DID认证系统;

2、本发明能够防止被人恶意篡改区间数据;

3、本发明实现了应用BulletProofs在App端;

4、本发明采用预先计算证明上链以及并行证明产生,大大提高系统性能。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为DID账号绑定及属性CA证书生成流程;

图2为BulletProofs生成、验证流程。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

实施例1

根据本发明提供的一种隐私可验证的动态DID认证方法,如图1-图2所示,包括:

步骤S1:APP进行账户注册,将本地账户与DID ID绑定信息上传至可信服务器;

步骤S2:App内进行属性修改,修改成功后调用可信服务器的CA证书生成功能,将CA证书在可信服务器和本地各存储一份;

步骤S3:选择属性及对应的区间信息,对CA证书及区间信息进行验证并生成证明;

步骤S4:将区间信息和证明结果进行链上验证。

具体地,所述步骤S1包括:

在App内输入信息进行账户注册,用Hash算法将账户密码信息存储至可信服务器;

注册成功后登录,App随机生成两对公私钥,私钥保存至用户端;

私钥保存完毕后,生成DID文件信息,依据DID文件信息通过多次哈希运算得到DIDID;

将DID ID与DID文件信息绑定进行数据上链,同时将本地账户与DID ID绑定信息上传至可信服务器。

具体地,所述步骤S2包括:

在App内进行属性修改,支持同时多属性修改,每次修改都需要验证身份;

App后台不直接存储属性信息,每当属性修改成功后,调用可信服务器的CA证书生成功能,并在服务器和本地各存储一份CA证书;针对不同的属性设置不同的过期时间;

在属性已有CA证书的情况下,再次修改后会吊销原有CA证书并重新生成一份全新的CA证书。

具体地,所述步骤S3包括:

App内的属性选择链上的区间信息生成BulletProofs范围证明,读取本地的CA证书检验是否有效;

所述检验无效包括:CA证书过期;被吊销;CA证书状态正常,但其值不符合所选区间范围;检验无效时,会直接在App内通过弹窗提示,并且弹窗需要用户点击确认操作才可关闭;

检验有效后判断是否符合所选区间,不符合所选区间直接提示不可操作原因,符合所选区间进行下一步;

选择区间信息作为BulletProofs初始化的参数,防止后续区间信息恶意篡改,调用BulletProofs生成证明方法得到证明结果,生成一个唯一的BP ID,用来将证明结果、范围区间ID、DID ID、有效时间信息进行绑定一起上传到链上,在App显示BP ID的二维码供验证;BP ID的二维码有设置的有效时间,指的是其生成证明对应属性的CA证书的过期时间内;

所述范围区间ID包括:每个属性信息系统都会初始化多个范围区间,用户生成的证明区间只能从中选取,链上部署了区间范围存证合约,通过该合约将这些区间信息以及对应的属性类别存储至链上,为了区分这些信息,每条上链信息都会匹配生成一个唯一的ID同步上传至链上,该操作由平台运营方触发;

一个属性需要生成证明的时候,根据其类别从范围区间存证合约上获取范围列表。

具体地,所述步骤S4包括:

扫描BP ID二维码,从链上查询到证明结果、范围区间ID、DID ID、有效时间这些信息;

将查询到的区间信息和证明结果进行链上验证,若区间信息遭到恶意篡改,链上验证将不会通过,若链上验证结果为真,结合有效时间验证是否通过;

整个过程无法得知到具体的相关属性信息,只能获取判断是否位于区间内。

实施例2

实施例2为实施例1的优选例,以更为具体地对本发明进行说明。

本方案实现了应用在App端。基于不同的属性动态产生相应的证明,通过范围滑动(支持范围自定义)仅需采用一组固定的参数,完成各种属性和不同范围的证明;同时,链上只需要采用相同的固定的参数,在合约侧实现证明的验证;另外,属性的范围也会进行链上存证,克服了现有方案中,直接暴露属性的隐私问题。

所述区块链系统具备数据上链、智能合约(范围区间存证、BulletProofs验证合约)部署修改以及等功能;

所述用户具备DID身份管理(包括创建、修改以及注销)、BulletProofs范围证明生成的能力;

所述商户具备验证BulletProofs范围证明结果的能力。

所述可信任服务器具备对用户的多属性进行CA证书签发。

主要包括DID账户绑定、多属性CA证书生成、BulletProof范围证明生成、以及验证BulletProof结果环节。

1、DID账户绑定

1)用户注册

用户在App进行账户、密码等信息填写进行账户注册,Hash存储至可信服务器,用于后面与DID账户进行一对一进行绑定。

2)DID创建

注册成功后登录,App随机生成两对公私钥,用户进行私钥保存;

私钥保存完毕后,进行Did Document信息生成,然后依据Did Document信息通过多次哈希运算得到Did ID;DID文件生成包括:生成两对公私钥;生成BaseDID Document;对Base DID Document做sha256;对上面的结果再做ripemd160;对上面的结果做base58;在上面的结果前添加DID:wx:作为最终的DID

将Did ID与Document信息绑定进行上链,同时将本地账户与Did ID绑定信息上传至可信服务器。

2、多属性CA证书生成

在App内进行属性修改,每次修改都需要验证是否为本人(可通过交易密码、人脸识别等方案进行识别),这些属性包括但不局限于年龄、身高、收入。

App后台不直接存储这些属性信息,每当属性修改成功后,会调用可信服务器的CA证书生成功能,并将CA证书在服务器和App各存储一份;同时针对不同的属性,会设置不同的过期时间(比如年龄每过一年就会增长一岁,它的有效时间为生成当日与下一年生日的时间差)。

属性已有CA证书,再次修改后会吊销原有CA证书,并重新生成一份全新的CA证书。

可同时支持多属性修改。

3、BulletProof范围证明生成

1)App一个属性选择链上一个区间进行BulletProof范围证明生成的时候,会先读取本地的CA证书看是否有效,有效的话再判断是否符合所选区间,如果不符合直接提示不可操作原因(避免无意义的证明生成),符合进行下一步;

2)选择区间信息作为BulletProof初始化的参数之一(验证时BulletProof初始化也需要对应区间信息),可以防止后续区间信息恶意篡改,然后调用BulletProof生成证明方法得到证明结果,通过自定义的算法生成一个唯一的BP ID,用来将证明结果、范围区间ID、Did ID、有效时间等信息进行绑定一起上传到链上,然后在App显示BP ID的二维码(该二维码会有一定的有效时间),供商户验证;

3)上述只是针对一个属性的BulletProof范围证明情况说明,实际可支持多个证明合并一起生成;

4、验证BulletProof结果

商户扫描用户提供的BP ID二维码,从链上查询到范围区间ID、证明结果、范围区间ID、Did ID、有效时间等信息;

将查询到的区间信息和证明结果进行链上验证(若区间信息遭到恶意篡改,最终链上验证将不会通过),若结果为真,再结合有效时间等信息最终验证是否通过。整个过程商户完全无法得知到用户的相关属性信息,只能获取判断是否位于区间内。

实施例3

本领域技术人员可以将本发明提供的一种隐私可验证的动态DID认证方法,理解为隐私可验证的动态DID认证系统的具体实施方式,即所述隐私可验证的动态DID认证系统可以通过执行所述隐私可验证的动态DID认证方法的步骤流程予以实现。

根据本发明提供的一种隐私可验证的动态DID认证系统,包括:

系统M1:APP进行账户注册,将本地账户与DID ID绑定信息上传至可信服务器;

系统M2:App内进行属性修改,修改成功后调用可信服务器的CA证书生成功能,将CA证书在可信服务器和本地各存储一份;

系统M3:选择属性及对应的区间信息,对CA证书及区间信息进行验证并生成证明;

系统M4:将区间信息和证明结果进行链上验证。

具体地,所述系统M1包括:

在App内输入信息进行账户注册,用Hash算法将账户密码信息存储至可信服务器;

注册成功后登录,App随机生成两对公私钥,私钥保存至用户端;

私钥保存完毕后,生成DID文件信息,依据DID文件信息通过多次哈希运算得到DIDID;

将DID ID与DID文件信息绑定进行数据上链,同时将本地账户与DID ID绑定信息上传至可信服务器。

具体地,所述系统M2包括:

在App内进行属性修改,支持同时多属性修改,每次修改都需要验证身份;

App后台不直接存储属性信息,每当属性修改成功后,调用可信服务器的CA证书生成功能,并在服务器和本地各存储一份CA证书;针对不同的属性设置不同的过期时间;

在属性已有CA证书的情况下,再次修改后会吊销原有CA证书并重新生成一份全新的CA证书。

具体地,所述系统M3包括:

App内的属性选择链上的区间信息生成BulletProofs范围证明,读取本地的CA证书检验是否有效;

所述检验无效包括:CA证书过期;被吊销;CA证书状态正常,但其值不符合所选区间范围;检验无效时,会直接在App内通过弹窗提示,并且弹窗需要用户点击确认操作才可关闭;

检验有效后判断是否符合所选区间,不符合所选区间直接提示不可操作原因,符合所选区间进行下一步;

选择区间信息作为BulletProofs初始化的参数,防止后续区间信息恶意篡改,调用BulletProofs生成证明方法得到证明结果,生成一个唯一的BP ID,用来将证明结果、范围区间ID、DID ID、有效时间信息进行绑定一起上传到链上,在App显示BP ID的二维码供验证;BP ID的二维码有设置的有效时间,指的是其生成证明对应属性的CA证书的过期时间内;

所述范围区间ID包括:每个属性信息系统都会初始化多个范围区间,用户生成的证明区间只能从中选取,链上部署了区间范围存证合约,通过该合约将这些区间信息以及对应的属性类别存储至链上,为了区分这些信息,每条上链信息都会匹配生成一个唯一的ID同步上传至链上,该操作由平台运营方触发;

一个属性需要生成证明的时候,根据其类别从范围区间存证合约上获取范围列表。

具体地,所述系统M4包括:

扫描BP ID二维码,从链上查询到证明结果、范围区间ID、DID ID、有效时间这些信息;

将查询到的区间信息和证明结果进行链上验证,若区间信息遭到恶意篡改,链上验证将不会通过,若链上验证结果为真,结合有效时间验证是否通过;

整个过程无法得知到具体的相关属性信息,只能获取判断是否位于区间内。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于分布式数字身份实现凭证验证的方法及相关装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类