CN116011025B - 基于区块链的数字身份认证方法及系统 - Google Patents
基于区块链的数字身份认证方法及系统 Download PDFInfo
- Publication number
- CN116011025B CN116011025B CN202310283881.1A CN202310283881A CN116011025B CN 116011025 B CN116011025 B CN 116011025B CN 202310283881 A CN202310283881 A CN 202310283881A CN 116011025 B CN116011025 B CN 116011025B
- Authority
- CN
- China
- Prior art keywords
- user
- certificate
- credential
- template
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种基于区块链的数字身份认证方法及系统,属于区块链技术领域。所述方法包括:认证终端向用户终端发送凭据请求,凭据请求中携带有凭据模板的凭据模板标识,凭据模板由证书发行机构发布在区块链上;用户终端根据凭据模板标识对应的凭据模板获取用户的DID标识,根据DID标识获取m个用户证书,根据m个用户证书和凭据模板生成凭据和凭据证明,将凭据和凭据证明发送给认证终端,用户证书由证书发行机构通过区块链颁发给用户,m≥1;认证终端根据凭据证明对凭据进行验证,在验证通过后,根据凭据认证用户的数字身份。本申请中数字身份的所有信息不会被认证终端看到,从而能够保护用户的隐私,也可以提高数字身份认证的安全性。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种基于区块链的数字身份认证方法及系统。
背景技术
传统的数字身份由中心化的权威机构进行管理。以权威机构为CA(CertificateAuthority,证书授权)机构为例,CA机构先生成公钥和私钥,将私钥发送给用户进行保存,对公钥进行CA签名并封装成数字证书,CA机构对用户的数字身份进行背书。在很多对安全性要求较高的应用中,例如金融领域或政务领域的应用,目前都采用CA认证的方式管理用户的数字身份。
当通过中心化的CA机构管理数字证书时,无法防止CA被攻击或者CA作恶,从而导致数字身份的认证存在安全风险。另外,利用数字证书认证用户的数字身份时,数字身份的所有信息都会被认证方看到,从而无法保护用户的隐私。
发明内容
本申请提供了一种基于区块链的数字身份认证方法系及统,用于解决数字身份的认证存在安全风险,且数字身份的所有信息会被泄露,无法保护用户的隐私的问题。所述技术方案如下:
一方面,提供了一种基于区块链的数字身份认证方法,所述方法包括:
认证终端向用户终端发送凭据请求,所述凭据请求中携带有凭据模板的凭据模板标识,所述凭据模板由证书发行机构发布在区块链上;
所述用户终端根据所述凭据模板标识对应的凭据模板获取用户的去中心化数字身份DID标识,根据所述DID标识获取m个用户证书,根据所述m个用户证书和所述凭据模板生成凭据和凭据证明,将所述凭据和所述凭据证明发送给所述认证终端,所述用户证书由所述证书发行机构通过所述区块链颁发给所述用户,m≥1;
所述认证终端根据所述凭据证明对所述凭据进行验证,在验证通过后,根据所述凭据认证所述用户的数字身份。
在一种可能的实现方式中,所述根据所述DID标识获取m个用户证书,包括:
所述用户终端根据所述凭据模板和预设的映射关系确定需要获取的m个用户证书,所述映射关系用于表示凭据模板和用户证书之间的对应关系;
若所述用户终端中已经存储有所述m个用户证书且所述m个用户证书中均包含所述DID标识,则获取已存储的所述m个用户证书;
若所述用户终端中未存储包含所述DID标识的用户证书,或者,所述用户终端中存储有所述m个证书中的部分证书且所述部分证书中均包含所述DID标识,则向所述证书发行机构申请所需的其他用户证书,最终得到所述m个用户证书。
在一种可能的实现方式中,所述向所述证书发行机构申请所需的其他用户证书,包括:
所述用户终端向所述证书发行机构发送证书请求,所述证书请求中携带有证书模板的证书模板标识和所述DID标识,所述证书模板由所述证书发行机构发布在所述区块链上;
所述证书发行机构根据所述DID标识对所述用户进行身份认证,在身份认证通过后,根据所述证书模板标识、所述DID标识和本地数据库生成用户证书和证书证明,将所述用户证书和所述证书证明发送给所述用户终端,其中,所述用户证书中包含所述DID标识;
所述用户终端根据所述证书证明对所述用户证书进行验证,在验证通过后,将所述用户证书存储在本地。
在一种可能的实现方式中,所述根据所述证书模板标识、所述DID标识和本地数据库生成用户证书和证书证明,包括:
所述证书发行机构获取所述证书模板标识对应的证书模板,在所述本地数据库中查找与所述证书模板中的属性相匹配的表记录;
按照预设的第一电路约束条件,所述证书发行机构将所述表记录中的字段值和所述DID标识映射为所述证书模板中对应的属性值,并生成自定义属性值,得到用户证书;
所述证书发行机构根据所述用户证书中的属性值生成默克尔树根哈希,将所述默克尔树根哈希和所述用户证书中的属性值作为公开变量,将所述表记录中的字段值、所述用户证书中通过结构化查询语言SQL语句定义的属性值、所述表记录的用户签名和所述表记录的机构签名作为私有变量,根据所述公开变量和所述私有变量生成证书零知识证明,将所述证书零知识证明确定为证书证明。
在一种可能的实现方式中,所述第一电路约束条件包括:
当所述表记录对应于所述本地数据库中的一张数据表时,将所述表记录中的字段值映射为所述证书模板中对应的属性值;当所述表记录对应于所述本地数据库中的多张数据表时,根据所述表记录中的字段对所述多张数据表进行关联,并将所述表记录中的字段值映射为所述证书模板中对应的属性值;
当通过结构化查询语言SQL语句定义所述证书模板中的属性时,若所述SQL语句为选择操作语句,则将所述表记录中的字段值映射为所述证书模板中对应的属性值;若所述SQL语句为运算操作语句,则对所述表记录中满足条件的字段值进行逻辑运算,并将得到的第一运算结果映射为所述证书模板中对应的属性值;
分别对所述表记录的哈希信息、所述表记录的用户签名以及所述表记录的机构签名进行验签;
对所述自定义属性值进行机构签名。
在一种可能的实现方式中,所述用户终端根据所述证书证明对所述用户证书进行验证,包括:
所述用户终端根据所述证书零知识证明对所述用户证书进行验证;
所述用户终端验证所述公开变量与所述证书模板中的属性值是否相匹配;
所述用户终端验证所述自定义属性的机构签名。
在一种可能的实现方式中,所述根据所述m个用户证书和所述凭据模板生成凭据和凭据证明,包括:
按照预设的第二电路约束条件,所述用户终端将所述m个用户证书中的属性值映射为所述凭据模板中对应的属性值,得到凭据;
所述用户终端根据所述用户证书中的属性与所述凭据模板中的属性之间的关系生成凭据证明。
在一种可能的实现方式中,所述第二电路约束条件包括:
对所述用户证书的第一零知识证明进行验证;
将所述用户证书中的属性值映射为所述凭据模板中对应的属性值;
对所述用户证书中的属性值进行逻辑运算,将得到的第二运算结果映射为所述凭据模板中对应的属性值;
对所述用户证书中的属性值进行逻辑运算,将得到的第三运算结果是否满足约束条件映射为所述凭据模板中对应的属性值。
在一种可能的实现方式中,所述用户终端根据所述用户证书中的属性与所述凭据模板中的属性之间的关系生成凭据证明,包括:
若所述用户证书中的全部属性均与所述凭据模板中的属性相同,则所述用户终端将所述证书零知识证明确定为凭据证明;
若所述用户证书中的部分属性与所述凭据模板中的属性相同,且属性值的映射过程中不存在逻辑运算,则所述用户终端根据所述凭据中的属性值生成默克尔哈希,将所述默克尔哈希和所述证书零知识证明确定为凭据证明;
若所述用户证书中的部分属性与所述凭据模板中的属性相同,且属性值的映射过程中存在逻辑运算,或者,若所述凭据模板中的属性值是根据第三运算结果是否满足约束条件生成的,则所述用户终端将所述逻辑运算的规则和所述约束条件作为公开变量,将所述证书零知识证明和所述用户证书中的属性值作为私有变量,根据所述公开变量和所述私有变量生成凭据零知识证明,将所述凭据零知识证明确定为凭据证明。
在一种可能的实现方式中,所述认证终端根据所述凭据证明对所述凭据进行验证,包括:
当所述凭据证明包括证书零知识证明时,所述认证终端对所述证书零知识证明进行验证;
当所述凭据证明包括默克尔哈希和证书零知识证明时,所述认证终端根据所述默克尔哈希生成默克尔根哈希,对生成的默克尔根哈希和所述用户证书的默克尔根哈希进行验证,并对所述证书零知识证明进行验证;
当所述凭据证明包括凭据零知识证明时,所述认证终端对所述凭据零知识证明进行验证。
在一种可能的实现方式中,所述用户终端根据所述凭据模板标识对应的凭据模板获取用户的DID标识,包括:
所述用户终端将所述凭据模板标识对应的凭据模板输入预先训练好的场景分类模型中,并获取所述场景分类模型输出的场景信息,所述场景分类模型用于从所述凭据模板中提取场景特征,根据所述场景特征预测场景信息;
所述用户终端根据所述场景信息确定是获取旧的DID标识还是创建新的DID标识。
在一种可能的实现方式中,所述用户终端根据所述场景信息确定是获取旧的DID标识还是创建新的DID标识,包括:
当所述场景信息对应于所述用户终端未生成过的凭据的类别时,所述用户终端创建新的DID标识;
当所述场景信息对应于所述用户终端已生成的历史凭据的类别时,若所述历史凭据对应的用户证书与所述凭据模板对应的用户证书不存在交集,则所述用户终端创建新的DID标识;若所述凭据模板中的属性属于所述历史凭据中的属性的子集,则所述用户终端获取所述历史凭据对应的DID标识;若所述凭据模板中的属性不属于所述历史凭据中的属性的子集,则所述用户终端创建新的DID标识。
在一种可能的实现方式中,所述方法还包括:
当所述用户终端具有多个凭据,且需要将所述多个凭据共享给同一个认证终端时,所述用户终端降低所述多个凭据对应的DID的安全级别。
一方面,提供了一种基于区块链的数字身份认证系统,所述数字身份认证系统包括区块链、认证终端、用户终端和证书发行机构;
所述认证终端,用于向所述用户终端发送凭据请求,所述凭据请求中携带有凭据模板的凭据模板标识,所述凭据模板由所述证书发行机构发布在区块链上;
所述用户终端,用于根据所述凭据模板标识对应的凭据模板获取用户的去中心化数字身份DID标识,根据所述DID标识获取m个用户证书,根据所述m个用户证书和所述凭据模板生成凭据和凭据证明,将所述凭据和所述凭据证明发送给所述认证终端,所述用户证书由所述证书发行机构通过所述区块链颁发给所述用户,m≥1;
所述认证终端,还用于根据所述凭据证明对所述凭据进行验证,在验证通过后,根据所述凭据认证所述用户的数字身份。
本申请提供的技术方案的有益效果至少包括:
证书发行机构将证书模板和凭据模板发布在区块链上,用户终端根据证书模板向证书发行机构申请用户证书,证书发行机构根据本地数据库导出用户的表记录,并将表记录中的字段值映射到证书模板中,从而生成用户证书,且可以通过零知识证明来保证用户证书中信息的准确性;然后用户终端将用户证书保存在本地,可以保证所有信息均由用户私下保存,不会泄露数据,从而可以保护用户的隐私。用户终端根据凭据模板与用户证书之间的映射关系选择凭据模板,然后根据凭据模板选择性公开自己的身份信息,以生成凭据,且通过凭据证明来保证凭据中信息的准确性,这样,数字身份的所有信息不会被认证终端看到,从而能够保护用户的隐私,也可以提高数字身份认证的安全性。
通过DID来关联用户证书和凭据,并在不同场景下使用不同的DID,可以避免不同场景下的认证终端汇总同一DID对应的身份信息,从而能够保护用户的隐私。当用户将多个凭据共享给同一个认证终端时,能够对DID的安全性进行分析。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是DID的示意图;
图2是一种数字身份认证系统的结构示意图;
图3是基于区块链的数字身份认证方法的方法流程图;
图4是DID标识获取方法的方法流程图;
图5是用户证书获取方法的方法流程图;
图6是凭据和凭据证明获取方法的方法流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对DID(Decentralized Identity,去中心化数字身份)进行介绍。
基于区块链的数字身份管理,能够实现数字身份的统一认证,保护用户的数据的所有权及隐私权,保证身份数据的真实可信。DID的格式符合W3C标准,分为4个部分,分别为DID固定标识符,DID应用场景,DID存储的区块链标识,DID唯一的标识字符串,如图1所示。
将DID的公钥信息和描述信息封装成DID文档,存储在区块链上。不同链上的DID可以通过跨链技术实现相互的验证。通过将DID文档存在链上,可以保证了公钥信息不可篡改,所以DID拥有方用私钥生成的签名信息,验证方直接用链上公钥验证就可保证安全,实现了去中心化的PKI(Public Key Infrastructure,公钥基础设施)。DID公钥上链实现了数字身份的去中心化验证,不需要CA背书,由区块链保证数字身份的正确性和防篡改性。
DID文档包括公钥信息、身份描述信息、区块链信息、身份场景信息等。此外,DID文档还可以设定密钥找回的公钥。比如,用户A设定用户B的公钥为受信任的找回密钥,如果用户A的私钥丢失,就可以由用户B重新为用户A生成公私钥。
本实施例中涉及一种基于区块链的数字身份认证系统,该数字身份认证系统中包含区块链210、多个认证终端220、多个用户终端230和证书发行机构240,如图2所示。其中,每个认证终端220、每个用户终端230和证书发行机构240分别与区块链210相连,每个用户终端230分别认证终端220和证书发行机构240相连。
每个用户终端230和证书发行机构240都需要在区块链210上注册DID,对于生成的公私钥,将公钥封装成DID文档,然后将DID标识(也即图1中所示的DID标识符)作为key(键),将DID文档的json数据作为value(值)保存到区块链上。每个用户终端230和证书发行机构240都拥有至少一个DID。
证书发行机构240用于在区块链210上发布证书模板和凭据模板,下面对这两种模板进行说明:
(1)证书发行机构240可以设置证书模板中属性的名称、类型以及数据来源,并设置证书模板与本地数据库的映射关系,然后将证书模板和映射关系上链。比如,属性的名称包括颁发机构名称、证书拥有者DID标识、学号、课程名、成绩等;属性的类型包括字符串、整数等;数据来源可以是证书发行机构240的本地数据库中存储的数据表,比如学生表、成绩表等;也可以是SQL(Structured Query Language,结构化查询语言)语句,还可以是证书发行机构240的自定义。
(2)证书发行机构240可以设置凭据模板中属性的名称、类型以及数据来源,并设置凭据模板与用户证书之间的映射关系,然后将凭据模板和映射关系上链。比如,凭据模板为A公司的入职凭据模板,且根据映射关系确定对应的用户证书为大学毕业证书和B公司的离职证明,假设凭据模板中属性的名称包括毕业院校、凭据拥有者DID标识、平均成绩、离职单位、工作年限、自我介绍等;属性的类型包括字符串、整数等;其中,毕业院校、凭据拥有者DID标识和平均成绩的数据来源是大学毕业证书,离职单位的数据来源是B公司的离职证明,工作年限的数据来源是通过SQL语句对离职证明中的开始工作时间和结束工作时间进行计算得到的中间量;自我介绍的数据来源是证书发行机构240的自定义。
用户终端230用于根据证书模板和DID标识向证书发行机构240申请用户证书,并将用户证书保存在本地。然后,用户终端230用于根据凭据模板和用户证书生成凭据,将凭据提供给认证终端220。
认证终端220用于根据凭据对用户进行数字身份的认证。
请参考图3,其示出了本申请一个实施例提供的基于区块链的数字身份认证方法的方法流程图,该基于区块链的数字身份认证方法可以应用于数字身份认证系统中。该基于区块链的数字身份认证方法,可以包括:
步骤301,认证终端向用户终端发送凭据请求,该凭据请求中携带有凭据模板的凭据模板标识,凭据模板由证书发行机构发布在区块链上。
当认证终端需要认证某个用户的数字身份时,可以确定需要该用户提供的凭据所对应的凭据模板,再向该用户的用户终端发送携带有该凭据模板的凭据模板标识的凭据请求。
步骤302,用户终端根据凭据模板标识对应的凭据模板获取用户的DID标识,根据DID标识获取m个用户证书,根据m个用户证书和凭据模板生成凭据和凭据证明,将凭据和凭据证明发送给认证终端,用户证书由证书发行机构通过区块链颁发给用户,m≥1。
本实施例中,可以根据凭据模板确定对应的场景,并针对不同的场景使用不同的凭据,这样,一个场景下的认证终端只能知道该场景下的凭据,而无法知道其他场景下的凭据,也就无法对多个凭据进行信息汇总从而推导出用户的真实身份,保护了用户的隐私。具体的,用户终端可以根据凭据模板来获取用户的DID标识,该DID标识对应的DID可以是旧的DID,也可以是新创建的DID,可以根据具体情况来决定。
在根据凭据模板确定出对应的DID标识后,用户终端还需要根据映射关系确定与凭据模板对应的m个用户证书,在本地查找包含该DID标识的m个用户证书,再根据m个用户证书中的属性值和凭据模板生成凭据和凭据证明,将凭据和凭据证明反馈给认证终端。
步骤303,认证终端根据凭据证明对凭据进行验证,在验证通过后,根据凭据认证用户的数字身份。
认证终端需要根据凭据证明对凭据进行验证,以验证凭据是否根据正规的用户证书生成,若验证通过,则认证终端继续根据凭据认证用户的数字身份;若验证不通过,则认证终端重新向用户终端获取凭据,或者,认证终端可以确定用户的数字身份的认证失败。
综上所述,本申请实施例提供的基于区块链的数字身份认证方法,证书发行机构将证书模板和凭据模板发布在区块链上,用户终端根据证书模板向证书发行机构申请用户证书,证书发行机构根据本地数据库导出用户的表记录,并将表记录中的字段值映射到证书模板中,从而生成用户证书,且可以通过零知识证明来保证用户证书中信息的准确性;然后用户终端将用户证书保存在本地,可以保证所有信息均由用户私下保存,不会泄露数据,从而可以保护用户的隐私。用户终端根据凭据模板与用户证书之间的映射关系选择凭据模板,然后根据凭据模板选择性公开自己的身份信息,以生成凭据,且通过凭据证明来保证凭据中信息的准确性,这样,数字身份的所有信息不会被认证终端看到,从而能够保护用户的隐私,也可以提高数字身份认证的安全性。
如图4所示,在一个实施例中,用户终端可以通过以下步骤获取与凭据模板对应的DID标识。
步骤401,用户终端将凭据模板标识对应的凭据模板输入预先训练好的场景分类模型中,并获取场景分类模型输出的场景信息,该场景分类模型用于从凭据模板中提取场景特征,根据场景特征预测场景信息。
本实施例中,我们需要先定义场景,在不同的场景下,用户可以使用不同的DID来提供凭据,可以充分保护自己的隐私。其中,场景信息可以包括互联网公司员工,金融,教育等等。比如,在公司使用区块链工程师角色的DID;在处理孩子在学校的事务时,使用父亲角色的DID;在周末参加篮球运动的时候,使用运动员角色的DID。
在确定了场景之后,我们可以针对每个场景收集凭据,将收集到的凭据和场景信息作为样本输入初始化模型参数后的场景分类模型中,场景分类模型将凭据的名称、凭据中属性的名称、描述、证书中属性的名称等信息提取出来作为场景特征,再根据场景特征和场景信息迭代训练模型参数,最终得到训练好的场景分类模型。其中,场景分类模型可以是决策树、神经网络模型等。
在得到训练好的场景分类模型后,用户终端根据认证终端发送的凭据模板标识获取凭据模板,将该凭据模板输入场景分类模型中进行处理,并获取场景分类模型输出的场景信息。
步骤402,用户终端根据场景信息确定是获取旧的DID标识还是创建新的DID标识。
具体的,用户终端根据场景信息确定是获取旧的DID标识还是创建新的DID标识,可以包括:
(1)当场景信息对应于用户终端未生成过的凭据的类别时,用户终端创建新的DID标识。
假设用户已经生成过的历史凭据包括A公司的入职凭据和学历凭据,且根据场景信息确定本次需要生成收入凭据,由于收入凭据与入职凭据和学历凭据的类别不同,所以,用户终端需要创建新的DID,也即需要根据新的DID标识生成凭据。
(2)当场景信息对应于用户终端已生成的历史凭据的类别时,若历史凭据对应的用户证书与凭据模板对应的用户证书不存在交集,则用户终端创建新的DID标识;若凭据模板中的属性属于历史凭据中的属性的子集,则用户终端获取历史凭据对应的DID标识;若凭据模板中的属性不属于历史凭据中的属性的子集,则用户终端创建新的DID标识。
假设用户已经生成过的历史凭据包括A公司的入职凭据和学历凭据,且根据场景信息确定本次需要生成B公司的入职凭据,由于B公司的入职凭据与A公司的入职凭据都属于入职凭据这个类别,所以,可以认为场景信息对应于用户终端已生成的历史凭据的类别。
若历史凭据对应的用户证书与凭据模板对应的用户证书不存在交集,则用户终端创建新的DID标识。假设历史凭据为A公司的入职凭据,其对应于的用户证书为大学毕业证书,凭据模板对应的用户证书为C公司的离职证明,由于大学毕业证书和离职证明不同,所以,用户终端需要创建新的DID标识。
若凭据模板中的属性属于历史凭据中的属性的子集,则用户终端获取历史凭据对应的DID标识。假设历史凭据为A公司的入职凭据,其中包括属性1-3,凭据模板中的属性包括属性1-2,由于属性1-2是属性1-3的子集,所以,用户终端可以获取历史凭据的DID标识。
若凭据模板中的属性不属于历史凭据中的属性的子集,则用户终端创建新的DID标识。假设历史凭据为A公司的入职凭据,其中包括属性1-3,凭据模板中的属性包括属性3-4,由于属性3-4不是属性1-3的子集,所以,用户终端需要创建新的DID标识。
简单来说,当需要公开历史凭据中新的属性时,需要创建新的DID标识;当不会公开历史凭据中新的属性时,需要使用历史凭据的DID标识。
如图5所示,在一个实施例中,用户终端可以通过以下步骤获取m个用户证书。
步骤501,用户终端根据凭据模板和预设的映射关系确定需要获取的m个用户证书,该映射关系用于表示凭据模板和用户证书之间的对应关系。
证书发行机构会发布凭据模板和映射关系,用户终端可以根据映射关系查找与凭据模板对应的m个用户证书。
步骤502,若用户终端中已经存储有m个用户证书且m个用户证书中均包含DID标识,则获取已存储的m个用户证书。
步骤503,若用户终端中未存储包含DID标识的用户证书,或者,用户终端中存储有m个证书中的部分证书且部分证书中均包含DID标识,则向证书发行机构申请所需的其他用户证书,最终得到m个用户证书。
用户终端需要使用DID标识申请用户证书,申请流程如下:
(1)用户终端向证书发行机构发送证书请求,该证书请求中携带有证书模板的证书模板标识和DID标识,证书模板由证书发行机构发布在区块链上。
(2)证书发行机构根据DID标识对用户进行身份认证,在身份认证通过后,根据证书模板标识、DID标识和本地数据库生成用户证书和证书证明,将用户证书和证书证明发送给用户终端,其中,用户证书中包含DID标识。
可选的,用户终端可以提交KYC(Know Your Customer)身份认证信息,证书发行机构根据KYC身份认证信息对用户进行身份认证。
具体的,根据证书模板标识、DID标识和本地数据库生成用户证书和证书证明,可以包括:
(a)证书发行机构获取证书模板标识对应的证书模板,在本地数据库中查找与证书模板中的属性相匹配的表记录。
本地数据库是证书发行机构创建的数据库,当需要在本地数据库中创建数据表时,可以在每张数据表的字段中添加签名字段,以防止数据表被篡改。具体的,可以在每次在数据表中写入表记录时,用户和证书发行机构都需要对表记录进行签名,则签名字段中包括用户签名和机构签名。
假设证书模板为大学毕业证书模板,其包含的属性的名称包括学号、课程名和成绩,且学号属性与学生表中的学号字段相匹配,课程名属性和成绩属性分别与成绩表中的课程名字段和成绩字段相匹配,则可以确定与证书模板中的属性相匹配的表记录包括字段为学号的表记录、字段为课程名的表记录和字段为成绩的表记录。
(b)按照预设的第一电路约束条件,证书发行机构将表记录中的字段值和DID标识映射为证书模板中对应的属性值,并生成自定义属性值,得到用户证书。
其中,第一电路约束条件包括:
当表记录对应于本地数据库中的一张数据表时,将表记录中的字段值映射为证书模板中对应的属性值;当表记录对应于本地数据库中的多张数据表时,根据表记录中的字段对多张数据表进行关联,并将表记录中的字段值映射为证书模板中对应的属性值。即,若用户基于图形化UI(User Interface)操作的方式将数据表中的字段与用户证书中的属性进行相等关系的映射,那么,属性的数据来源就是表记录中的字段值。如果用户证书中不同属性的数据源为多张数据表中的字段值,则需要加入数据表之间的连接字段。此外,数据表中字段的类型必须和用户证书中属性的类型一致。
当通过SQL语句定义证书模板中的属性时,若SQL语句为选择操作语句,则将表记录中的字段值映射为证书模板中对应的属性值;若SQL语句为运算操作语句,则对表记录中满足条件的字段值进行逻辑运算,并将得到的第一运算结果映射为证书模板中对应的属性值。即,证书发行机构将SQL语句查询的返回值映射为用户证书中的属性值,且SQL语句返回的字段的类型必须与用户证书中属性的类型一致。其中,SQL语句支持单个字段的查询,以及count计数,sum求和等逻辑运算操作。
分别对表记录的哈希信息、表记录的用户签名以及表记录的机构签名进行验签。
对自定义属性值进行机构签名。即,对于来源不是数据库的属性,证书发行机构需要对属性进行赋值并签名。
具体的,证书发行机构根据定义的数据表中字段与用户证书中属性的映射关系,或者,根据SQL语句与用户证书中属性的映射关系,自动化地生成证书属性赋值API,再利用API基于第一电路约束对用户证书中的属性进行赋值,得到用户证书。
(c)证书发行机构根据用户证书中的属性值生成默克尔树根哈希,将默克尔树根哈希和用户证书中的属性值作为公开变量,将表记录中的字段值、用户证书中通过结构化查询语言SQL语句定义的属性值、表记录的用户签名和表记录的机构签名作为私有变量,根据公开变量和私有变量生成证书零知识证明,将证书零知识证明确定为证书证明。
(3)用户终端根据证书证明对用户证书进行验证,在验证通过后,将用户证书存储在本地。
具体的,用户终端根据证书证明对用户证书进行验证,可以包括:
用户终端根据证书零知识证明对用户证书进行验证;
用户终端验证公开变量与证书模板中的属性值是否相匹配;
用户终端验证自定义属性的机构签名。
在验证通过后,用户终端对用户证书进行私有化保存。
如图6所示,在一个实施例中,用户终端可以通过以下步骤生成凭据和凭据证明。
步骤601,按照预设的第二电路约束条件,用户终端将m个用户证书中的属性值映射为凭据模板中对应的属性值,得到凭据。
具体的,第二电路约束条件包括:
(1)对用户证书的第一零知识证明进行验证。
(2)将用户证书中的属性值映射为凭据模板中对应的属性值。
(3)对用户证书中的属性值进行逻辑运算,将得到的第二运算结果映射为凭据模板中对应的属性值。
对于逻辑运算的映射关系,用户终端需要对用户证书中的属性值进行逻辑运算,并保存的得到的第二运算结果。
比如,用户证书中的属性值包括开始工作日期和结束工作日期,且凭据中的属性为工作年限,则用户终端需要将结束工作日期减去开始工作日期,得到工作年限的属性值。
(4)对用户证书中的属性值进行逻辑运算,将得到的第三运算结果是否满足约束条件映射为凭据模板中对应的属性值。比如,约束条件为工作年限大于5年,则用户终端需要判断工作年限的属性值是否大于5。
步骤602,用户终端根据用户证书中的属性与凭据模板中的属性之间的关系生成凭据证明。
若凭据的属性值是证书发行机构自定义的,其凭据证明为机构签名;若凭据的属性值是根据用户证书中的属性值得到的,则可以通过以下步骤生成凭据证明:
(1)若用户证书中的全部属性均与凭据模板中的属性相同,则用户终端将证书零知识证明确定为凭据证明。
对应的,当凭据证明包括证书零知识证明时,认证终端对证书零知识证明进行验证。
(2)若用户证书中的部分属性与凭据模板中的属性相同,且属性值的映射过程中不存在逻辑运算,则用户终端根据凭据中的属性值生成默克尔哈希,将默克尔哈希和证书零知识证明确定为凭据证明。
对应的,当凭据证明包括默克尔哈希和证书零知识证明时,认证终端根据默克尔哈希生成默克尔根哈希,对生成的默克尔根哈希和用户证书的默克尔根哈希进行验证,并对证书零知识证明进行验证。
(3)若用户证书中的部分属性与凭据模板中的属性相同,且属性值的映射过程中存在逻辑运算,或者,若凭据模板中的属性值是根据第三运算结果是否满足约束条件生成的,则用户终端将逻辑运算的规则和约束条件作为公开变量,将证书零知识证明和用户证书中的属性值作为私有变量,根据公开变量和私有变量生成凭据零知识证明,将凭据零知识证明确定为凭据证明。
对应的,当凭据证明包括凭据零知识证明时,认证终端对凭据零知识证明进行验证。
本实施例中,当用户终端具有多个凭据,且需要将多个凭据共享给同一个认证终端时,用户终端降低多个凭据对应的DID的安全级别。
比如,若一个场景对应于一个DID,则该DID的安全级别为高级别;若一个场景对应于至少两个DID,则这些DID的安全级别为低级别,以便于对DID的安全性进行分析。
请参考图2,其示出了本申请一个实施例提供的基于区块链的数字身份认证系统的结构框图,该基于区块链的数字身份认证系统可以应用于数字身份认证系统中。该基于区块链的数字身份认证系统,可以包括:区块链210、认证终端220、用户终端230和证书发行机构240;
认证终端220,用于向用户终端230发送凭据请求,凭据请求中携带有凭据模板的凭据模板标识,凭据模板由证书发行机构240发布在区块链210上;
用户终端230,用于根据凭据模板标识对应的凭据模板获取用户的DID标识,根据DID标识获取m个用户证书,根据m个用户证书和凭据模板生成凭据和凭据证明,将凭据和凭据证明发送给认证终端220,用户证书由证书发行机构240通过区块链210颁发给用户,m≥1;
认证终端220,还用于根据凭据证明对凭据进行验证,在验证通过后,根据凭据认证用户的数字身份。
在一个可选的实施例中,用户终端230,还用于:
根据凭据模板和预设的映射关系确定需要获取的m个用户证书,映射关系用于表示凭据模板和用户证书之间的对应关系;
若用户终端230中已经存储有m个用户证书且m个用户证书中均包含DID标识,则获取已存储的m个用户证书;
若用户终端230中未存储包含DID标识的用户证书,或者,用户终端230中存储有m个证书中的部分证书且部分证书中均包含DID标识,则向证书发行机构240申请所需的其他用户证书,最终得到m个用户证书。
在一个可选的实施例中,用户终端230,还用于向证书发行机构240发送证书请求,证书请求中携带有证书模板的证书模板标识和DID标识,证书模板由证书发行机构240发布在区块链210上;
证书发行机构240,还用于根据DID标识对用户进行身份认证,在身份认证通过后,根据证书模板标识、DID标识和本地数据库生成用户证书和证书证明,将用户证书和证书证明发送给用户终端230,其中,用户证书中包含DID标识;
用户终端230,还用于根据证书证明对用户证书进行验证,在验证通过后,将用户证书存储在本地。
在一个可选的实施例中,证书发行机构240,还用于:
获取证书模板标识对应的证书模板,在本地数据库中查找与证书模板中的属性相匹配的表记录;
按照预设的第一电路约束条件,将表记录中的字段值和DID标识映射为证书模板中对应的属性值,并生成自定义属性值,得到用户证书;
根据用户证书中的属性值生成默克尔树根哈希,将默克尔树根哈希和用户证书中的属性值作为公开变量,将表记录中的字段值、用户证书中通过结构化查询语言SQL语句定义的属性值、表记录的用户签名和表记录的机构签名作为私有变量,根据公开变量和私有变量生成证书零知识证明,将证书零知识证明确定为证书证明。
在一个可选的实施例中,第一电路约束条件包括:
当表记录对应于本地数据库中的一张数据表时,将表记录中的字段值映射为证书模板中对应的属性值;当表记录对应于本地数据库中的多张数据表时,根据表记录中的字段对多张数据表进行关联,并将表记录中的字段值映射为证书模板中对应的属性值;
当通过结构化查询语言SQL语句定义证书模板中的属性时,若SQL语句为选择操作语句,则将表记录中的字段值映射为证书模板中对应的属性值;若SQL语句为运算操作语句,则对表记录中满足条件的字段值进行逻辑运算,并将得到的第一运算结果映射为证书模板中对应的属性值;
分别对表记录的哈希信息、表记录的用户签名以及表记录的机构签名进行验签;
对自定义属性值进行机构签名。
在一个可选的实施例中,用户终端230,还用于:
用户终端230根据证书零知识证明对用户证书进行验证;
用户终端230验证公开变量与证书模板中的属性值是否相匹配;
用户终端230验证自定义属性的机构签名。
在一个可选的实施例中,用户终端230,还用于:
按照预设的第二电路约束条件,将m个用户证书中的属性值映射为凭据模板中对应的属性值,得到凭据;
根据用户证书中的属性与凭据模板中的属性之间的关系生成凭据证明。
在一个可选的实施例中,第二电路约束条件包括:
对用户证书的第一零知识证明进行验证;
将用户证书中的属性值映射为凭据模板中对应的属性值;
对用户证书中的属性值进行逻辑运算,将得到的第二运算结果映射为凭据模板中对应的属性值;
对用户证书中的属性值进行逻辑运算,将得到的第三运算结果是否满足约束条件映射为凭据模板中对应的属性值。
在一个可选的实施例中,用户终端230,还用于:
若用户证书中的全部属性均与凭据模板中的属性相同,则将证书零知识证明确定为凭据证明;
若用户证书中的部分属性与凭据模板中的属性相同,且属性值的映射过程中不存在逻辑运算,则根据凭据中的属性值生成默克尔哈希,将默克尔哈希和证书零知识证明确定为凭据证明;
若用户证书中的部分属性与凭据模板中的属性相同,且属性值的映射过程中存在逻辑运算,或者,若凭据模板中的属性值是根据第三运算结果是否满足约束条件生成的,则将逻辑运算的规则和约束条件作为公开变量,将证书零知识证明和用户证书中的属性值作为私有变量,根据公开变量和私有变量生成凭据零知识证明,将凭据零知识证明确定为凭据证明。
在一个可选的实施例中,认证终端220,还用于:
当凭据证明包括证书零知识证明时,对证书零知识证明进行验证;
当凭据证明包括默克尔哈希和证书零知识证明时,根据默克尔哈希生成默克尔根哈希,对生成的默克尔根哈希和用户证书的默克尔根哈希进行验证,并对证书零知识证明进行验证;
当凭据证明包括凭据零知识证明时,对凭据零知识证明进行验证。
在一个可选的实施例中,用户终端230,还用于:
将凭据模板标识对应的凭据模板输入预先训练好的场景分类模型中,并获取场景分类模型输出的场景信息,场景分类模型用于从凭据模板中提取场景特征,根据场景特征预测场景信息;
根据场景信息确定是获取旧的DID标识还是创建新的DID标识。
在一个可选的实施例中,用户终端230,还用于:
当场景信息对应于用户终端230未生成过的凭据的类别时,创建新的DID标识;
当场景信息对应于用户终端230已生成的历史凭据的类别时,若历史凭据对应的用户证书与凭据模板对应的用户证书不存在交集,则创建新的DID标识;若凭据模板中的属性属于历史凭据中的属性的子集,则获取历史凭据对应的DID标识;若凭据模板中的属性不属于历史凭据中的属性的子集,则创建新的DID标识。
在一个可选的实施例中,用户终端230,还用于:
当用户终端230具有多个凭据,且需要将多个凭据共享给同一个认证终端220时,降低多个凭据对应的DID的安全级别。
综上所述,本申请实施例提供的基于区块链的数字身份认证系统,证书发行机构将证书模板和凭据模板发布在区块链上,用户终端根据证书模板向证书发行机构申请用户证书,证书发行机构根据本地数据库导出用户的表记录,并将表记录中的字段值映射到证书模板中,从而生成用户证书,且可以通过零知识证明来保证用户证书中信息的准确性;然后用户终端将用户证书保存在本地,可以保证所有信息均由用户私下保存,不会泄露数据,从而可以保护用户的隐私。用户终端根据凭据模板与用户证书之间的映射关系选择凭据模板,然后根据凭据模板选择性公开自己的身份信息,以生成凭据,且通过凭据证明来保证凭据中信息的准确性,这样,数字身份的所有信息不会被认证终端看到,从而能够保护用户的隐私,也可以提高数字身份认证的安全性。
通过DID来关联用户证书和凭据,并在不同场景下使用不同的DID,可以避免不同场景下的认证终端汇总同一DID对应的身份信息,从而能够保护用户的隐私。当用户将多个凭据共享给同一个认证终端时,能够对DID的安全性进行分析。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (10)
1.一种基于区块链的数字身份认证方法,其特征在于,所述方法包括:
认证终端向用户终端发送凭据请求,所述凭据请求中携带有凭据模板的凭据模板标识,所述凭据模板由证书发行机构发布在区块链上;
所述用户终端根据所述凭据模板标识对应的凭据模板获取用户的去中心化数字身份DID标识,根据所述DID标识获取m个用户证书,根据所述m个用户证书和所述凭据模板生成凭据和凭据证明,将所述凭据和所述凭据证明发送给所述认证终端,所述用户证书由所述证书发行机构通过所述区块链颁发给所述用户,m≥1;
所述认证终端根据所述凭据证明对所述凭据进行验证,在验证通过后,根据所述凭据认证所述用户的数字身份;
所述根据所述DID标识获取m个用户证书,包括:所述用户终端根据所述凭据模板和预设的映射关系确定需要获取的m个用户证书,所述映射关系用于表示凭据模板和用户证书之间的对应关系;若所述用户终端中已经存储有所述m个用户证书且所述m个用户证书中均包含所述DID标识,则获取已存储的所述m个用户证书;若所述用户终端中未存储包含所述DID标识的用户证书,或者,所述用户终端中存储有所述m个用户证书中的部分用户证书且所述部分用户证书中均包含所述DID标识,则向所述证书发行机构申请所需的其他用户证书,最终得到所述m个用户证书;
所述向所述证书发行机构申请所需的其他用户证书,包括:所述用户终端向所述证书发行机构发送证书请求,所述证书请求中携带有证书模板的证书模板标识和所述DID标识,所述证书模板由所述证书发行机构发布在所述区块链上;所述证书发行机构根据所述DID标识对所述用户进行身份认证,在身份认证通过后,根据所述证书模板标识、所述DID标识和本地数据库生成用户证书和证书证明,将所述用户证书和所述证书证明发送给所述用户终端,其中,所述用户证书中包含所述DID标识;所述用户终端根据所述证书证明对所述用户证书进行验证,在验证通过后,将所述用户证书存储在本地;
所述用户终端根据所述凭据模板标识对应的凭据模板获取用户的DID标识,包括:所述用户终端将所述凭据模板标识对应的凭据模板输入预先训练好的场景分类模型中,并获取所述场景分类模型输出的场景信息,所述场景分类模型用于从所述凭据模板中提取场景特征,根据所述场景特征预测场景信息;所述用户终端根据所述场景信息确定是获取旧的DID标识还是创建新的DID标识;
所述用户终端根据所述场景信息确定是获取旧的DID标识还是创建新的DID标识,包括:当所述场景信息对应于所述用户终端未生成过的凭据的类别时,所述用户终端创建新的DID标识;当所述场景信息对应于所述用户终端已生成的历史凭据的类别时,若所述历史凭据对应的用户证书与所述凭据模板对应的用户证书不存在交集,则所述用户终端创建新的DID标识;若所述凭据模板中的属性属于所述历史凭据中的属性的子集,则所述用户终端获取所述历史凭据对应的DID标识;若所述凭据模板中的属性不属于所述历史凭据中的属性的子集,则所述用户终端创建新的DID标识。
2.根据权利要求1所述的基于区块链的数字身份认证方法,其特征在于,所述根据所述证书模板标识、所述DID标识和本地数据库生成用户证书和证书证明,包括:
所述证书发行机构获取所述证书模板标识对应的证书模板,在所述本地数据库中查找与所述证书模板中的属性相匹配的表记录;
按照预设的第一电路约束条件,所述证书发行机构将所述表记录中的字段值和所述DID标识映射为所述证书模板中对应的属性值,并生成自定义属性值,得到用户证书;
所述证书发行机构根据所述用户证书中的属性值生成默克尔树根哈希,将所述默克尔树根哈希和所述用户证书中的属性值作为公开变量,将所述表记录中的字段值、所述用户证书中通过结构化查询语言SQL语句定义的属性值、所述表记录的用户签名和所述表记录的机构签名作为私有变量,根据所述公开变量和所述私有变量生成证书零知识证明,将所述证书零知识证明确定为证书证明。
3.根据权利要求2所述的基于区块链的数字身份认证方法,其特征在于,所述第一电路约束条件包括:
当所述表记录对应于所述本地数据库中的一张数据表时,将所述表记录中的字段值映射为所述证书模板中对应的属性值;当所述表记录对应于所述本地数据库中的多张数据表时,根据所述表记录中的字段对所述多张数据表进行关联,并将所述表记录中的字段值映射为所述证书模板中对应的属性值;
当通过结构化查询语言SQL语句定义所述证书模板中的属性时,若所述SQL语句为选择操作语句,则将所述表记录中的字段值映射为所述证书模板中对应的属性值;若所述SQL语句为运算操作语句,则对所述表记录中满足条件的字段值进行逻辑运算,并将得到的第一运算结果映射为所述证书模板中对应的属性值;
分别对所述表记录的哈希信息、所述表记录的用户签名以及所述表记录的机构签名进行验签;
对所述自定义属性值进行机构签名。
4.根据权利要求3所述的基于区块链的数字身份认证方法,其特征在于,所述用户终端根据所述证书证明对所述用户证书进行验证,包括:
所述用户终端根据所述证书零知识证明对所述用户证书进行验证;
所述用户终端验证所述公开变量与所述证书模板中的属性值是否相匹配;
所述用户终端验证所述自定义属性值的机构签名。
5.根据权利要求1所述的基于区块链的数字身份认证方法,其特征在于,所述根据所述m个用户证书和所述凭据模板生成凭据和凭据证明,包括:
按照预设的第二电路约束条件,所述用户终端将所述m个用户证书中的属性值映射为所述凭据模板中对应的属性值,得到凭据;
所述用户终端根据所述用户证书中的属性与所述凭据模板中的属性之间的关系生成凭据证明。
6.根据权利要求5所述的基于区块链的数字身份认证方法,其特征在于,所述第二电路约束条件包括:
对所述用户证书的证书零知识证明进行验证;
将所述用户证书中的属性值映射为所述凭据模板中对应的属性值;
对所述用户证书中的属性值进行逻辑运算,将得到的第二运算结果映射为所述凭据模板中对应的属性值;
对所述用户证书中的属性值进行逻辑运算,将得到的第三运算结果是否满足约束条件映射为所述凭据模板中对应的属性值。
7.根据权利要求6所述的基于区块链的数字身份认证方法,其特征在于,所述用户终端根据所述用户证书中的属性与所述凭据模板中的属性之间的关系生成凭据证明,包括:
若所述用户证书中的全部属性均与所述凭据模板中的属性相同,则所述用户终端将所述证书零知识证明确定为凭据证明;
若所述用户证书中的部分属性与所述凭据模板中的属性相同,且属性值的映射过程中不存在逻辑运算,则所述用户终端根据所述凭据中的属性值生成默克尔哈希,将所述默克尔哈希和所述证书零知识证明确定为凭据证明;
若所述用户证书中的部分属性与所述凭据模板中的属性相同,且属性值的映射过程中存在逻辑运算,或者,若所述凭据模板中的属性值是根据第三运算结果是否满足约束条件生成的,则所述用户终端将所述逻辑运算的规则和所述约束条件作为公开变量,将所述证书零知识证明和所述用户证书中的属性值作为私有变量,根据所述公开变量和所述私有变量生成凭据零知识证明,将所述凭据零知识证明确定为凭据证明。
8.根据权利要求7所述的基于区块链的数字身份认证方法,其特征在于,所述认证终端根据所述凭据证明对所述凭据进行验证,包括:
当所述凭据证明包括证书零知识证明时,所述认证终端对所述证书零知识证明进行验证;
当所述凭据证明包括默克尔哈希和证书零知识证明时,所述认证终端根据所述默克尔哈希生成默克尔树根哈希,对生成的默克尔树根哈希和所述用户证书的默克尔树根哈希进行验证,并对所述证书零知识证明进行验证;
当所述凭据证明包括凭据零知识证明时,所述认证终端对所述凭据零知识证明进行验证。
9.据权利要求1至8任一所述的基于区块链的数字身份认证方法,其特征在于,所述方法还包括:
当所述用户终端具有多个凭据,且需要将所述多个凭据共享给同一个认证终端时,所述用户终端降低所述多个凭据对应的DID的安全级别。
10.一种基于区块链的数字身份认证系统,其特征在于,所述数字身份认证系统包括区块链、认证终端、用户终端和证书发行机构;
所述认证终端,用于向所述用户终端发送凭据请求,所述凭据请求中携带有凭据模板的凭据模板标识,所述凭据模板由所述证书发行机构发布在区块链上;
所述用户终端,用于根据所述凭据模板标识对应的凭据模板获取用户的去中心化数字身份DID标识,根据所述DID标识获取m个用户证书,根据所述m个用户证书和所述凭据模板生成凭据和凭据证明,将所述凭据和所述凭据证明发送给所述认证终端,所述用户证书由所述证书发行机构通过所述区块链颁发给所述用户,m≥1;
所述认证终端,还用于根据所述凭据证明对所述凭据进行验证,在验证通过后,根据所述凭据认证所述用户的数字身份;
所述用户终端,还用于:所述用户终端根据所述凭据模板和预设的映射关系确定需要获取的m个用户证书,所述映射关系用于表示凭据模板和用户证书之间的对应关系;若所述用户终端中已经存储有所述m个用户证书且所述m个用户证书中均包含所述DID标识,则获取已存储的所述m个用户证书;若所述用户终端中未存储包含所述DID标识的用户证书,或者,所述用户终端中存储有所述m个用户证书中的部分用户证书且所述部分用户证书中均包含所述DID标识,则向所述证书发行机构申请所需的其他用户证书,最终得到所述m个用户证书;
所述用户终端,还用于:所述用户终端向所述证书发行机构发送证书请求,所述证书请求中携带有证书模板的证书模板标识和所述DID标识,所述证书模板由所述证书发行机构发布在所述区块链上;所述证书发行机构根据所述DID标识对所述用户进行身份认证,在身份认证通过后,根据所述证书模板标识、所述DID标识和本地数据库生成用户证书和证书证明,将所述用户证书和所述证书证明发送给所述用户终端,其中,所述用户证书中包含所述DID标识;所述用户终端根据所述证书证明对所述用户证书进行验证,在验证通过后,将所述用户证书存储在本地;
所述用户终端,还用于:所述用户终端将所述凭据模板标识对应的凭据模板输入预先训练好的场景分类模型中,并获取所述场景分类模型输出的场景信息,所述场景分类模型用于从所述凭据模板中提取场景特征,根据所述场景特征预测场景信息;所述用户终端根据所述场景信息确定是获取旧的DID标识还是创建新的DID标识;
所述用户终端,还用于:当所述场景信息对应于所述用户终端未生成过的凭据的类别时,所述用户终端创建新的DID标识;当所述场景信息对应于所述用户终端已生成的历史凭据的类别时,若所述历史凭据对应的用户证书与所述凭据模板对应的用户证书不存在交集,则所述用户终端创建新的DID标识;若所述凭据模板中的属性属于所述历史凭据中的属性的子集,则所述用户终端获取所述历史凭据对应的DID标识;若所述凭据模板中的属性不属于所述历史凭据中的属性的子集,则所述用户终端创建新的DID标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310283881.1A CN116011025B (zh) | 2023-03-22 | 2023-03-22 | 基于区块链的数字身份认证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310283881.1A CN116011025B (zh) | 2023-03-22 | 2023-03-22 | 基于区块链的数字身份认证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116011025A CN116011025A (zh) | 2023-04-25 |
CN116011025B true CN116011025B (zh) | 2023-08-04 |
Family
ID=86033894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310283881.1A Active CN116011025B (zh) | 2023-03-22 | 2023-03-22 | 基于区块链的数字身份认证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116011025B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111490873A (zh) * | 2020-03-25 | 2020-08-04 | 上海物融智能科技有限公司 | 基于区块链的证书信息处理方法及系统 |
CN113014392A (zh) * | 2021-02-19 | 2021-06-22 | 湖南大学 | 基于区块链的数字证书管理方法及系统、设备、存储介质 |
CN113037493A (zh) * | 2021-02-27 | 2021-06-25 | 上海泰砥科技有限公司 | 基于did身份的区块链零知识证明匿名凭证验证方法及系统 |
-
2023
- 2023-03-22 CN CN202310283881.1A patent/CN116011025B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111490873A (zh) * | 2020-03-25 | 2020-08-04 | 上海物融智能科技有限公司 | 基于区块链的证书信息处理方法及系统 |
CN113014392A (zh) * | 2021-02-19 | 2021-06-22 | 湖南大学 | 基于区块链的数字证书管理方法及系统、设备、存储介质 |
CN113037493A (zh) * | 2021-02-27 | 2021-06-25 | 上海泰砥科技有限公司 | 基于did身份的区块链零知识证明匿名凭证验证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116011025A (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943996B (zh) | 一种基于区块链的学历查询方法及装置 | |
US11552795B2 (en) | Key recovery | |
US10705801B2 (en) | Data processing systems for identity validation of data subject access requests and related methods | |
CN111989893B (zh) | 用于生成和链接零知识证明的方法、系统和计算机可读装置 | |
US20230246842A1 (en) | Compact recordation protocol | |
CN110771095A (zh) | 用于实现基于区块链的数字证书的系统和方法 | |
CN110800254A (zh) | 用于生成数字标记的系统和方法 | |
US11621851B2 (en) | Block chain proof for identification | |
US11509467B2 (en) | Story assisted mnemonic phrase | |
Hsu et al. | Design of an e-diploma system based on consortium blockchain and facial recognition | |
CN109858270A (zh) | 一种去中心化数字身份的构建方法和系统 | |
US20230254299A1 (en) | Apparatus and methods for credentialing users across user devices | |
CN110825814A (zh) | 一种基于国家人口基础信息创建公民身份区块链的方法 | |
Casola et al. | A policy-based methodology for security evaluation: A security metric for public key infrastructures | |
CN108540447A (zh) | 一种基于区块链的证书验证方法及系统 | |
CN113435990B (zh) | 基于规则引擎的凭证生成方法、装置和计算机设备 | |
CN116011025B (zh) | 基于区块链的数字身份认证方法及系统 | |
US11362806B2 (en) | System and methods for recording codes in a distributed environment | |
CN111858627A (zh) | 一种基于区块链的学位学历查询系统及其方法 | |
CN115345634A (zh) | 基于区块链的学历学位认证管理系统 | |
Suseno et al. | Strengthening data integrity in academic document recording with blockchain and InterPlanetary file system. | |
Bálint et al. | Comparative analysis of handwritten, biometric and digital signature | |
CN111275506A (zh) | 一种开具票据的方法以及区块链节点设备 | |
CN112560055B (zh) | 一种基于pki技术的可信电子证照系统及工作方法 | |
Sonawane et al. | Enriching Trustworthy trade in Decentralized system using Blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |