CN115694838A - 基于可验证凭证与零知识证明的匿名可信访问控制方法 - Google Patents

基于可验证凭证与零知识证明的匿名可信访问控制方法 Download PDF

Info

Publication number
CN115694838A
CN115694838A CN202211346797.1A CN202211346797A CN115694838A CN 115694838 A CN115694838 A CN 115694838A CN 202211346797 A CN202211346797 A CN 202211346797A CN 115694838 A CN115694838 A CN 115694838A
Authority
CN
China
Prior art keywords
attribute
verifiable
user
proof
anonymous
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.)
Granted
Application number
CN202211346797.1A
Other languages
English (en)
Other versions
CN115694838B (zh
Inventor
叶春明
叶春晓
张亚兵
金焱
杨孟青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University
Original Assignee
Chongqing University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing University filed Critical Chongqing University
Priority to CN202211346797.1A priority Critical patent/CN115694838B/zh
Publication of CN115694838A publication Critical patent/CN115694838A/zh
Application granted granted Critical
Publication of CN115694838B publication Critical patent/CN115694838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于可验证凭证与零知识证明的匿名可信访问控制方法,属于信息安全领域。该方法包括:设计属性可验证凭证管理方法,以可验证凭证形式存储用户属性信息;设计基于零知识证明地匿名用户属性验证方法,在不暴露用户真实身份信息地情况下完成访问请求者属性验证;结合属性可验证凭证管理与零知识证明属性验证方法,设计基于区块链地分布式访问控制流程,实现匿名访问请求者地访问授权。本发明通过区块链技术实现了去中心化的细粒度、动态地访问控制,利用属性可验证凭证解决了分布式访问控制模型中访问主体属性的可信、防篡改性的问题,同时利用零知识证明进行匿名属性验证,在验证过程中为访问主体提供了隐私保护。

Description

基于可验证凭证与零知识证明的匿名可信访问控制方法
技术领域
本发明属于信息安全领域,涉及基于可验证凭证与零知识证明的匿名可信访问控制方法。
背景技术
随着物联网和云计算的迅猛发展,在万物互联时代背景下,人们所享受到的各类服务均离不开数据的共享,因此保障数据共享交互过程中的信息安全是必要的需求,而访问控制是其中关键的一环。访问控制作为一种能够保障数据和资源安全共享的重要机制,其通过特定的访问策略管理来保证用户拥有的资源访问权限与实际对资源的使用权限对应,防止用户在不拥有相关权限的情况下非法访问数据资源。
传统的访问控制技术如自主访问控制(DAC)、强制访问控制(MAC)与基于角色的访问控制(RBAC)等集中式访问控制方法存在访问控制粒度大、扩展性差、管理不够灵活等问题,无法满足大规模物联网场景中对于更灵活、更细粒度访问控制机制的需求。基于属性的访问控制(ABAC)是一种更为灵活、动态、具有细粒度的方法,其根据用户的属性分布是否满足资源的访问策略来进行访问控制决策,同时可以在规模不断扩大的情况下动态调整访问控制域,具有较高的可扩展性。
但与传统的集中式访问控制方法一样,ABAC模型也采用中心化管理方式,由策略决策点对所有访问请求进行统一决策处理,过分依赖于中心化的策略决策点,存在访问权限判决透明度问题。同时,传统ABAC模型中访问请求者属性信息由用户直接申请,中心化存储在系统数据库中,由策略信息点(PIP)统一管理,可能存在访问者属性不可信、被篡改等问题。此外,用户真实身份及属性信息在存储和验证过程中直接暴露在公共网络环境下,存在用户隐私信息过度泄露风险。
区块链应用了点对点通信、非对称加密、分布式共识、数字签名等技术并实现了智能合约,具有去中心化、公开透明、不可篡改的特性,能够打破各陌生节点之间的信任壁垒,创建基于对不可篡改数据信任的可信环境,与分布式的物联网环境相契合,是一种较好的去中心化解决方案,能够有效加强访问控制系统的可信性与安全性。
零知识证明作为一种具有隐私保护能力的证明算法,指证明方能够在不向验证方提供任何有用信息的情况下,使验证方相信某个论断的正确性。通过零知识证明方法,证明方向验证发证明并使其相信自己知道或拥有某一秘密,或证明一个声明是真实的,但在证明过程中不会向验证方泄露任何关于被证明消息的信息。零知识证明提供了一种在完成可信验证的同时保护内部敏感数据隐私的方法,极大地提高了用户隐私信息安全性。
发明内容
有鉴于此,本发明的目的在于提供一种基于可验证凭证与零知识证明的匿名可信访问控制方法,实现非中心化的具有细粒度、动态调整的分布式访问授权;同时保障访问请求者的属性信息的可信性与不可篡改性,挺高访问模型的安全性;此外避免了在属性验证过程中用户真实信息的直接暴露,最大程度保障了访问者身份隐私的安全性。
为达到上述目的,本发明提供如下技术方案:
基于可验证凭证与零知识证明的匿名可信访问控制方法,该方法包括以下步骤:
S1:设计用户属性可验证凭证管理方法;
通过以可验证凭证为载体记录访问者用户属性,设计用户属性可验证凭证申请、颁发与管理方法,实现用户属性的可信与不可篡改;
S2:设计基于零知识证明的匿名属性验证方法;
根据零知识证明算法,设计用户属性可验证凭证的匿名验证方法,在不暴露用户真实身份的情况下实现用户属性的可信验证,并将其验证结果应用到访问控制的决策网络中;
S3:设计基于可验证凭证与零知识证明的分布式访问控制授权流程;
结合可验证凭证管理与用户属性零知识证明方法,设计基于区块链的分布式访问控制授权流程,设计访问控制过程中所需智能合约,完成安全可信的分布式访问控制。
可选的,所述S1中,设计用户属性可验证凭证管理方法,具体包含以下步骤:
S11:用户生成一个会话密钥ks,使用会话密钥ks加密包含自己属性证明内容的注册信息ottConti得到密文消息δ1=Enc(ks,attConti),再使用IA的公钥PKIA对会话密钥ks加密后得到密文消息δ2=Enc(PKIA,ks),将自身标识DIDi、密文消息δ1、密文消息δ2组合成属性可验证凭证申请请求requestProof(DIDi,δ1,δ2);
S12:IA接收到请求后,首先验证请求的合法性,再使用自己私钥SKIA解密密文消息δ2获取会话密钥ks=Dec(δ2,SKIA),使用会话密钥ks解密密文消息δ1获取用户的属性注册信息attConti=Dec(δ1,ks),并对attConti进行审核;
S13:属性注册信息attConti通过审核后,创建一对ECC公私钥对(PKi,SKi),并嵌入PKi为属性可验证凭证创建唯一标识idi
S14:根据用户提交的属性注册信息attConti生成属性秘密知识f,由f生成密钥对{pki,vki},以及属性可验证凭证proofi,其中,{pki,vki}为一对证明密钥和验证密钥,用于后续零知识证明的生成和验证,属性可验证凭证proofi里包含凭证idi、凭证状态statei、凭证hash、用户唯一身份表示DIDi、证书管理公钥的hash、对用户属性的一组描述信息和IA的私钥签名信息;
S15:IA构建一段内容固定的智能合约代码,将验证密钥vki嵌入到此智能合约中,作为秘密知识f的可信验证手段,并获取该合约的地址addri及代码哈希codehash;
S16:IA使用凭证申请者公钥将属性可验证凭证proofi、证明密钥pki、秘密知识f、属性可验证凭证的hash和一组经过IA私钥签名的属性描述信息proofDesi一起加密后发送给凭证申请者;
S17:IA将生成的属性可验证凭证idi、凭证状态statei、凭证hash、凭证验证智能合约地址addri及代码哈希codehash发布到区块链上进行记录;
S18:凭证申请者接收到IA返回的消息后,使用自身私钥解密得到相关信息内容,同时将属性可验证凭证proofi、证明密钥pki、秘密知识f、属性描述信息proofDesi进行本地存储,并将凭证idi与对应状态statei更新到自身账户中。
可选的,所述S2中,设计基于零知识证明的匿名属性验证方法,具体包含以下步骤:
S21:匿名用户生成一个会话密钥ks,对验证请求内容verConti、属性可验证凭证idi、凭证描述信息proofDesi、以及一个随机数n进行加密得到密文消息δ1=Ennc(ks,verConti,proofDesi,n),在区块链上根据服务提供商s的唯一标识id通过requestPK(id)查询服务提供商s的公钥PKs,并使用PKs将会话密钥ks进行加密,得到密文消息δ2=Enc(PKs,ks);
S22:匿名用户将密文消息δ1和密文消息c生成一个属性验证请求requestVer(δ1,δ2),并向s发送该服务请求,特别注意此处不使用用户自身DIDi,以达到隐藏访问者真实身份的目的;
S23:s收到属性验证服务请求后使用自己的私钥SKs解密密文消息δ2获取会话密钥ks=Dec(δ2,SKs),再使用会话密钥解密密文消息δ1,得到验证请求内容verConti、属性可验证凭证idi、凭证描述信息proofDesi和随机数n;
S24:s通过属性可验证凭证idi在区块链上查询验证该凭证的状态是否有效,再验证proofDesi内描述的信息列表是否符合所需要的属性要求;
S25:s在确认属性凭证描述proofDesi符合属性需求之后,进一步确认该匿名用户确实持有此属性可验证凭证,s随机产生一组公开输入
Figure BDA0003917494910000031
并将解密后的随机数n使用会话密钥ks加密后发送给该匿名用户;
S26:匿名用户接收到s发送的消息后解密得到公开输入
Figure BDA0003917494910000046
并根据自己所持有的秘密知识f,计算得到一组私有输入
Figure BDA0003917494910000041
S27:用户基于公开输入
Figure BDA0003917494910000042
私有输入
Figure BDA0003917494910000043
以及本地存储的属性可验证凭证证明密钥pki,计算得到一个大小恒定的证明ω,将其使用会话密钥ks加密后发送给s;
S28:s解密得到证明ω,将其与自己创建的公共输入
Figure BDA0003917494910000044
一起根据智能合约地址addri调用属性验证智能合约进行验证;
S29:属性验证智能合约使用内部验证密钥vki,计算验证基于公开输入
Figure BDA0003917494910000045
所计算的证明ω是否正确,返回验证结果,即在不知道匿名用户真实身份的情况下完成了用户属性验证。
可选的,所述S3中,设计基于可验证凭证与零知识证明的分布式访问控制授权流程,具体包含以下步骤:
S31:匿名访问请求者按照所述属性可验证凭证管理方法从权威机构IA处获取属性可验证凭证相关信息后,首先生成一个会话密钥ks和一对公私钥对(PKi,SKi),使用会话密钥ks将访问请求信息req=(opers,resIDi,proofs=[proofDes1,proofDes2,...])加密得到密文消息δ1=Enc(ks,req),其中opers表示访问操作类型、resIDi表示资源主体、proofs表示属性可验证凭证信息[proofDes1,proofDes2,...],同时使用访问控制主体端策略执行点D-PEP的公钥PKPEP加密会话密钥ks得到密文消息δ2=Enc(PKPEP,ks),创建一个访问请求reqAccess(PKi,δ1,δ2),并向D-PEP发送访问请求;
S32:D-PEP接收到访问请求后,使用自身私钥解密密文消息δ2获取会话密钥ks,再使用ks解密δ1获取访问请求相关信息,根据资源主体resIDi在区块链上查询该资源对应的访问策略policyID,再创建访问请求
Figure BDA0003917494910000047
发送给策略决策网络D-PDP,其中σS-PEP是D-PEP用自己私钥PKcs进行的签名;
S33:策略决策网络D-PDP中任一节点接收到AAR请求后,根据policyID在策略管理网络(D-PDS)上查询获得资源主体resIDi对应的访问控制策略policyi及其策略验证合约地址policyVerAddri,接着调用该策略评估智能合约进行策略验证;
S34:策略评估智能合约验证过程按照所述基于零知识证明的匿名属性验证方法,分别校验访问者是否真实拥有访问策略所要求的属性特征,并通过区块链共识对访问请求做出裁决得到裁决信息decisioni,其中包括裁决结果及有效时间,同时将裁决记录Tx=(req,decisioni)记录于区块链账本中,将裁决TxIDi发送给策略执行网络D-PEP;
S35:策略执行网络D-PEP接收到裁决信息TxIDi后,从区块链获取具体裁决信息Tx,验证裁决信息decisioni的有效性,根据裁决结果在区块链中查询req中资源主体resIDi对应的访问授权智能合约地址policyExeAddri,调用对应的访问授权智能合约对匿名访问者进行访问授权。
本发明的有益效果在于:
本发明相较于传统的访问控制方式,能够在非信任网络下以去中心化的方式提供细粒度、动态地访问授权。本发明以用户属性作为访问控制策略的切入点,基于区块链的去中心化、公开透明、不可篡改特性,以区块链分布式策略决策网络节点代替传统ABAC模型中单一的策略决策点,保证了访问授权决策过程的公开透明性,提高了访问控制系统的可信度,同时降低了系统单点失败影响,提高了访问控制系统可用性。
本发明保证了访问请求者属性的可信性与不可篡改性。可验证凭证是权威机构验证信息后为申请者颁发的能够进行可信验证的凭证,基于对权威机构的信任,可验证凭证具有可信性。本发明以可验证凭证形式为载体记录用户属性信息,用户信息经权威机构验证后获得其颁发的属性可验证凭证及相关证明信息存储与用户本地,当进行访问请求时提供属性可验证凭证相关信息进行验证,保障了访问请求者属性的可信与不可篡改。
本发明保证了访问请求者身份信息隐私安全性。本发明结合零知识证明方法,在访问请求者属性凭证验证过程中隐藏了用户真实身份信息,同时完成了匿名访问请求者属性的可信验证,访问控制主体只知道该访问者满足访问策略规定的属性要求,但无法获取访问者真实身份,避免了用户真实信息的直接泄露,保护了用户隐私信息安全。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为本实施例中基于可验证凭证与零知识证明的匿名可信分布式访问控制模型;
图2为本发明的基于零知识证明的属性验证示意图;
图3为本发明的分布式匿名访问授权流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
如图1所示,一种基于可验证凭证与零知识证明的匿名可信分布式访问控制模型,由策略执行网络(D-PEP)、策略决策网络(D-PDP)、策略管理网络(D-PDS)、属性可验证凭证管理智能合约、零知识证明属性验证智能合约、策略评估智能合约组成。
本方法首先设计属性可验证凭证管理方法,以可验证凭证形式存储用户属性信息;接着设计基于零知识证明地匿名用户属性验证方法,在不暴露用户真实身份信息地情况下完成访问请求者属性验证;最后结合属性可验证凭证管理与零知识证明属性验证方法,设计基于区块链地分布式访问控制流程,实现匿名访问请求者地访问授权。
用户属性可验证凭证管理方法设计,具体流程如下:
第一步,用户首先生成一个会话密钥ks,使用会话密钥ks加密包含自己属性证明内容的注册信息attConti得到密文消息δ1=Enc(ks,attConti),再使用IA的公钥PKIA对会话密钥ks加密后得到密文消息δ2=Enc(PKIA,ks),将自身标识DIDi、密文消息δ1、密文消息δ2组合成属性可验证凭证申请请求requestProof(DIDi,δ1,δ2)。
第二步,在IA接收到请求后,首先验证请求的合法性,再使用自己私钥SKIA解密密文消息δ2获取会话密钥ks=Dec(δ2,SKIA),使用会话密钥ks解密密文消息δ1获取用户的属性注册信息attConti=Dec(δ1,ks),并对attConti进行审核。
第三步,当IA对用户申请地属性注册信息attConti通过审核后,创建一对ECC公私钥对(PKi,SKi),并嵌入PKi为属性可验证凭证创建唯一标识idi
第四步,IA根据用户提交的属性注册信息attConti生成属性秘密知识f,由f生成密钥对{pki,vki},以及属性可验证凭证proofi,其中,{pki,vki}为一对证明密钥和验证密钥,用于后续零知识证明的生成和验证,属性可验证凭证proofi里包含凭证idi、凭证状态statei、凭证hash、用户唯一身份表示DIDi、证书管理公钥的hash、对用户属性的一组描述信息和IA的私钥签名信息。
第五步,IA构建一段内容固定的智能合约代码,将验证密钥vki嵌入到此智能合约中,作为秘密知识f的可信验证手段,并获取该合约的地址addri及代码哈希codehash。
第六步,IA使用凭证申请者公钥将属性可验证凭证proofi、证明密钥pki、秘密知识f、属性可验证凭证的hash和一组经过IA私钥签名的属性描述信息proofDesi一起加密后发送给凭证申请者。
第七步,IA将生成的属性可验证凭证idi、凭证状态statei、凭证hash、凭证验证智能合约地址addri及代码哈希codehash发布到区块链上进行记录。
第八步,凭证申请者接收到IA返回的消息后,使用自身私钥解密得到相关信息内容,同时将属性可验证凭证proofi、证明密钥pki、秘密知识f、属性描述信息proofDesi进行本地存储,并将凭证idi与对应状态statei更新到自身账户中。
如图2所示,基于零知识证明的匿名属性验证方法设计,具体流程如下:
第一步,匿名用户生成一个会话密钥ks,对验证请求内容verConti、属性可验证凭证idi、凭证描述信息proofDesi、以及一个随机数n进行加密得到密文消息δ1=Enc(ks,verConti,proofDesi,n),在区块链上根据服务提供商s的唯一标识id通过requestPK(id)查询服务提供商s的公钥PKs,并使用PKs将会话密钥ks进行加密,得到密文消息δ2=Enc(PKs,ks);
第二步,匿名用户将密文消息δ1和密文消息c生成一个属性验证请求requestVer(δ1,δ2),并向服务提供商s发送该服务请求,特别注意此处不使用用户自身DIDi,以达到隐藏访问者真实身份的目的;
第三步,服务提供商s收到属性验证服务请求后使用自己的私钥SKs解密密文消息δ2获取会话密钥ks=Dec(δ2,SKs),再使用会话密钥解密密文消息δ1,得到验证请求内容verConti、属性可验证凭证idi、凭证描述信息proofDesi和随机数n;
第四步,服务提供商s通过属性可验证凭证idi在区块链上查询验证该凭证的状态是否有效,再验证proofDesi内描述的信息列表是否符合所需要的属性要求;
第五步,服务提供商s在确认了属性凭证描述proofDesi符合属性需求之后,进一步确认该匿名用户确实持有此属性可验证凭证,为此,服务提供商s将随机产生一组公开输入
Figure BDA0003917494910000086
并将解密后的随机数n使用会话密钥ks加密后发送给该匿名用户;
第六步,匿名用户接收到服务提供商s发送的消息后解密得到公开输入
Figure BDA0003917494910000087
并根据自己所持有的秘密知识f,计算得到一组私有输入
Figure BDA0003917494910000081
第七步,用户基于公开输入
Figure BDA0003917494910000082
私有输入
Figure BDA0003917494910000083
以及本地存储的属性可验证凭证证明密钥pki,计算得到一个大小恒定的证明ω,将其使用会话密钥ks加密后发送给服务提供商s;
第八步,服务提供商s解密得到证明ω,将其与自己创建的公共输入
Figure BDA0003917494910000084
一起根据智能合约地址addri调用属性验证智能合约进行验证;
第九步,属性验证智能合约使用内部验证密钥vki,计算验证基于公开输入
Figure BDA0003917494910000085
所计算的证明ω是否正确,返回验证结果,即在不知道匿名用户真实身份的情况下完成了用户属性验证。
如图3所示,结合属性可验证凭证管理与零知识证明属性验证方法的分布式访问控制授权流程,具体流程如下:
第一步,匿名访问请求者按照前述属性可验证凭证管理方法从权威机构(IA)处获取属性可验证凭证相关信息后,首先生成一个会话密钥ks和一对公私钥对(PKi,SKi),使用会话密钥ks将访问请求信息req=(opers,resIDi,proofs=[proofDes1,proofDes2,...])加密得到密文消息δ1=Enc(ks,req),其中opers表示访问操作类型、resIDi表示资源主体、proofs表示属性可验证凭证信息[proofDes1,proofDes2,...],同时使用访问控制主体端策略执行点(D-PEP)的公钥PKPEP加密会话密钥ks得到密文消息δ2=Enc(PKPEP,ks),创建一个访问请求reqAccess(PKi,δ1,δ2),并向D-PEP发送访问请求;
第二步,D-PEP接收到访问请求后,使用自身私钥解密密文消息δ2获取会话密钥ks,再使用ks解密δ1获取访问请求相关信息,根据资源主体resIDi在区块链上查询该资源对应的访问策略policyID,再创建访问请求
Figure BDA0003917494910000088
发送给策略决策网络D-PDP,其中σS-PEP是D-PEP用自己私钥PKcs进行的签名;
第三步,策略决策网络D-PDP中任一节点接收到AAR请求后,根据policyID在策略管理网络(D-PDS)上查询获得资源主体resIDi对应的访问控制策略policyi及其策略评估智能合约地址policyVerAddri,接着调用该策略评估合约进行策略验证;
第四步,策略评估智能合约验证过程按照前述基于零知识证明的匿名属性验证方法,分别校验访问者是否真实拥有访问策略所要求的属性特征,并通过区块链共识对访问请求做出裁决得到裁决信息decisioni,其中包括裁决结果及有效时间,同时将裁决记录Tx=(req,decisioni)记录于区块链账本中,将裁决TxIDi发送给策略执行网络D-PEP;
第五步,策略执行网络D-PEP接收到裁决信息TxIDi后,从区块链获取具体裁决信息Tx,验证裁决信息decisioni的有效性,根据裁决结果在区块链中查询req中资源主体resIDi对应的访问授权智能合约地址policyExeAddri,调用对应的访问授权智能合约对匿名访问者进行访问授权。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (4)

1.基于可验证凭证与零知识证明的匿名可信访问控制方法,其特征在于:该方法包括以下步骤:
S1:设计用户属性可验证凭证管理方法;
通过以可验证凭证为载体记录访问者用户属性,设计用户属性可验证凭证申请、颁发与管理方法,实现用户属性的可信与不可篡改;
S2:设计基于零知识证明的匿名属性验证方法;
根据零知识证明算法,设计用户属性可验证凭证的匿名验证方法,在不暴露用户真实身份的情况下实现用户属性的可信验证,并将其验证结果应用到访问控制的决策网络中;
S3:设计基于可验证凭证与零知识证明的分布式访问控制授权流程;
结合可验证凭证管理与用户属性零知识证明方法,设计基于区块链的分布式访问控制授权流程,设计访问控制过程中所需智能合约,完成安全可信的分布式访问控制。
2.根据权利要求1所述的基于可验证凭证与零知识证明的匿名可信访问控制方法,其特征在于:所述S1中,设计用户属性可验证凭证管理方法,具体包含以下步骤:
S11:用户生成一个会话密钥ks,使用会话密钥ks加密包含自己属性证明内容的注册信息attConti得到密文消息δ1=Enc(ks,attConti),再使用IA的公钥PKIA对会话密钥ks加密后得到密文消息δ2=Enc(PKIA,ks),将自身标识DIDi、密文消息δ1、密文消息δ2组合成属性可验证凭证申请请求requestProof(DIDi,δ1,δ2);
S12:IA接收到请求后,首先验证请求的合法性,再使用自己私钥SKIA解密密文消息δ2获取会话密钥ks=Dec(δ2,SKIA),使用会话密钥ks解密密文消息δ1获取用户的属性注册信息attConti=Dec(δ1,ks),并对attConti进行审核;
S13:属性注册信息attConti通过审核后,创建一对ECC公私钥对(PKi,SKi),并嵌入PKi为属性可验证凭证创建唯一标识idi
S14:根据用户提交的属性注册信息attConti生成属性秘密知识f,由f生成密钥对{pki,vki},以及属性可验证凭证proofi,其中,{pki,vki}为一对证明密钥和验证密钥,用于后续零知识证明的生成和验证,属性可验证凭证proofi里包含凭证idi、凭证状态statei、凭证hash、用户唯一身份表示DIDi、证书管理公钥的hash、对用户属性的一组描述信息和IA的私钥签名信息;
S15:IA构建一段内容固定的智能合约代码,将验证密钥vki嵌入到此智能合约中,作为秘密知识f的可信验证手段,并获取该合约的地址addri及代码哈希codehash;
S16:IA使用凭证申请者公钥将属性可验证凭证proofi、证明密钥pki、秘密知识f、属性可验证凭证的hash和一组经过IA私钥签名的属性描述信息proofDesi一起加密后发送给凭证申请者;
S17:IA将生成的属性可验证凭证idi、凭证状态statei、凭证hash、凭证验证智能合约地址addri及代码哈希codehash发布到区块链上进行记录;
S18:凭证申请者接收到IA返回的消息后,使用自身私钥解密得到相关信息内容,同时将属性可验证凭证proofi、证明密钥pki、秘密知识f、属性描述信息proofDesi进行本地存储,并将凭证idi与对应状态statei更新到自身账户中。
3.根据权利要求2所述的基于可验证凭证与零知识证明的匿名可信访问控制方法,其特征在于:所述S2中,设计基于零知识证明的匿名属性验证方法,具体包含以下步骤:
S21:匿名用户生成一个会话密钥ks,对验证请求内容verConti、属性可验证凭证idi、凭证描述信息proofDesi、以及一个随机数n进行加密得到密文消息δ1=Enc(ks,verConti,proofDesi,n),在区块链上根据服务提供商s的唯一标识id通过requestPK(id)查询服务提供商s的公钥PKs,并使用PKs将会话密钥ks进行加密,得到密文消息δ2=Enc(PKs,ks);
S22:匿名用户将密文消息δ1和密文消息c生成一个属性验证请求requestVer(δ1,δ2),并向s发送该服务请求,特别注意此处不使用用户自身DIDi,以达到隐藏访问者真实身份的目的;
S23:s收到属性验证服务请求后使用自己的私钥SKs解密密文消息δ2获取会话密钥ks=Dec(δ2,SKs),再使用会话密钥解密密文消息δ1,得到验证请求内容verConti、属性可验证凭证idi、凭证描述信息proofDesi和随机数n;
S24:s通过属性可验证凭证idi在区块链上查询验证该凭证的状态是否有效,再验证proofDesi内描述的信息列表是否符合所需要的属性要求;
S25:s在确认属性凭证描述proofDesi符合属性需求之后,进一步确认该匿名用户确实持有此属性可验证凭证,s随机产生一组公开输入
Figure FDA0003917494900000021
并将解密后的随机数n使用会话密钥ks加密后发送给该匿名用户;
S26:匿名用户接收到s发送的消息后解密得到公开输入
Figure FDA0003917494900000022
并根据自己所持有的秘密知识f,计算得到一组私有输入
Figure FDA0003917494900000023
S27:用户基于公开输入
Figure FDA0003917494900000024
私有输入
Figure FDA0003917494900000025
以及本地存储的属性可验证凭证证明密钥pki,计算得到一个大小恒定的证明ω,将其使用会话密钥ks加密后发送给s;
S28:s解密得到证明ω,将其与自己创建的公共输入
Figure FDA0003917494900000026
一起根据智能合约地址addri调用属性验证智能合约进行验证;
S29:属性验证智能合约使用内部验证密钥vki,计算验证基于公开输入
Figure FDA0003917494900000031
所计算的证明ω是否正确,返回验证结果,即在不知道匿名用户真实身份的情况下完成了用户属性验证。
4.根据权利要求3所述的基于可验证凭证与零知识证明的匿名可信访问控制方法,其特征在于:所述S3中,设计基于可验证凭证与零知识证明的分布式访问控制授权流程,具体包含以下步骤:
S31:匿名访问请求者按照所述属性可验证凭证管理方法从权威机构IA处获取属性可验证凭证相关信息后,首先生成一个会话密钥ks和一对公私钥对(PKi,SKi),使用会话密钥ks将访问请求信息req=(opers,resIDi,proofs=[proofDes1,proofDes2,...])加密得到密文消息δ1=Enc(ks,req),其中opers表示访问操作类型、resIDi表示资源主体、proofs表示属性可验证凭证信息[proofDes1,proofDes2,...],同时使用访问控制主体端策略执行点D-PEP的公钥PKPEP加密会话密钥ks得到密文消息δ2=Enc(PKPEP,ks),创建一个访问请求reqAccess(PKi,δ1,δ2),并向D-PEP发送访问请求;
S32:D-PEP接收到访问请求后,使用自身私钥解密密文消息δ2获取会话密钥ks,再使用ks解密δ1获取访问请求相关信息,根据资源主体resIDi在区块链上查询该资源对应的访问策略policyID,再创建访问请求
Figure FDA0003917494900000032
发送给策略决策网络D-PDP,其中σS-PEP是D-PEP用自己私钥PKcs进行的签名;
S33:策略决策网络D-PDP中任一节点接收到AAR请求后,根据policyID在策略管理网络(D-PDS)上查询获得资源主体resIDi对应的访问控制策略policyi及其策略验证合约地址policyVerAddri,接着调用该策略评估智能合约进行策略验证;
S34:策略评估智能合约验证过程按照所述基于零知识证明的匿名属性验证方法,分别校验访问者是否真实拥有访问策略所要求的属性特征,并通过区块链共识对访问请求做出裁决得到裁决信息decisioni,其中包括裁决结果及有效时间,同时将裁决记录Tx=(req,decisioni)记录于区块链账本中,将裁决TxIDi发送给策略执行网络D-PEP;
S35:策略执行网络D-PEP接收到裁决信息TxIDi后,从区块链获取具体裁决信息Tx,验证裁决信息decisioni的有效性,根据裁决结果在区块链中查询req中资源主体resIDi对应的访问授权智能合约地址policyExeAddri,调用对应的访问授权智能合约对匿名访问者进行访问授权。
CN202211346797.1A 2022-10-31 2022-10-31 基于可验证凭证与零知识证明的匿名可信访问控制方法 Active CN115694838B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211346797.1A CN115694838B (zh) 2022-10-31 2022-10-31 基于可验证凭证与零知识证明的匿名可信访问控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211346797.1A CN115694838B (zh) 2022-10-31 2022-10-31 基于可验证凭证与零知识证明的匿名可信访问控制方法

Publications (2)

Publication Number Publication Date
CN115694838A true CN115694838A (zh) 2023-02-03
CN115694838B CN115694838B (zh) 2024-09-27

Family

ID=85045525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211346797.1A Active CN115694838B (zh) 2022-10-31 2022-10-31 基于可验证凭证与零知识证明的匿名可信访问控制方法

Country Status (1)

Country Link
CN (1) CN115694838B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116800435A (zh) * 2023-08-21 2023-09-22 成都信息工程大学 基于零知识证明和跨链的访问控制方法、系统及存储介质
CN117640108A (zh) * 2023-12-18 2024-03-01 北京数盾信息科技有限公司 一种基于零知识证明的区块认证方法
CN118353605A (zh) * 2024-06-14 2024-07-16 长江三峡集团实业发展(北京)有限公司 分布式匿名认证方法、装置、系统及存储介质
CN118839377A (zh) * 2024-09-10 2024-10-25 成都信息工程大学 一种基于非交互式零知识证明的隐私保护方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110493347A (zh) * 2019-08-26 2019-11-22 重庆邮电大学 基于区块链的大规模云存储中数据访问控制方法及系统
US20190394175A1 (en) * 2018-06-21 2019-12-26 University Of Maryland, Baltimore County Systems and methods for permissioned blockchain infrastructure with fine-grained access control and confidentiality-preserving publish/subscribe messaging
CN110719176A (zh) * 2019-10-22 2020-01-21 黑龙江工业学院 基于区块链的物流隐私保护方法、系统和可读存储介质
US20210160223A1 (en) * 2019-11-25 2021-05-27 Electronics And Telecommunications Research Institute Anonymous credential authentication system and method thereof
CN112989415A (zh) * 2021-03-23 2021-06-18 广东工业大学 一种基于区块链的隐私数据存储与访问控制方法及系统
CN113256290A (zh) * 2021-05-14 2021-08-13 杭州链网科技有限公司 去中心化加密通讯与交易系统
CN114826572A (zh) * 2022-03-31 2022-07-29 西安电子科技大学 支持属性隐私保护的去中心化众包方法、系统及终端
CN114900290A (zh) * 2022-03-07 2022-08-12 南京信息工程大学 一种基于区块链的数据交易模型和隐私保护方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190394175A1 (en) * 2018-06-21 2019-12-26 University Of Maryland, Baltimore County Systems and methods for permissioned blockchain infrastructure with fine-grained access control and confidentiality-preserving publish/subscribe messaging
CN110493347A (zh) * 2019-08-26 2019-11-22 重庆邮电大学 基于区块链的大规模云存储中数据访问控制方法及系统
CN110719176A (zh) * 2019-10-22 2020-01-21 黑龙江工业学院 基于区块链的物流隐私保护方法、系统和可读存储介质
US20210160223A1 (en) * 2019-11-25 2021-05-27 Electronics And Telecommunications Research Institute Anonymous credential authentication system and method thereof
CN112989415A (zh) * 2021-03-23 2021-06-18 广东工业大学 一种基于区块链的隐私数据存储与访问控制方法及系统
CN113256290A (zh) * 2021-05-14 2021-08-13 杭州链网科技有限公司 去中心化加密通讯与交易系统
CN114900290A (zh) * 2022-03-07 2022-08-12 南京信息工程大学 一种基于区块链的数据交易模型和隐私保护方法
CN114826572A (zh) * 2022-03-31 2022-07-29 西安电子科技大学 支持属性隐私保护的去中心化众包方法、系统及终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SYED YAWAR ABBAS ZAIDI: "An Attribute-Based Access Control for IoT Using Blockchain and Smart Contracts", SUSTAINABILITY, 23 September 2021 (2021-09-23) *
XIAOHUI YANG: "Blockchain-Based Multiple Authorities Attribute-Based Encryption for EHR Access Control Scheme", APPLIED SCIENCES, 25 October 2022 (2022-10-25) *
董贵山;陈宇翔;范佳;郝尧;李枫;: "区块链应用中的隐私保护策略研究", 计算机科学, no. 05, 15 May 2019 (2019-05-15) *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116800435A (zh) * 2023-08-21 2023-09-22 成都信息工程大学 基于零知识证明和跨链的访问控制方法、系统及存储介质
CN116800435B (zh) * 2023-08-21 2023-12-19 成都信息工程大学 基于零知识证明和跨链的访问控制方法、系统及存储介质
CN117640108A (zh) * 2023-12-18 2024-03-01 北京数盾信息科技有限公司 一种基于零知识证明的区块认证方法
CN117640108B (zh) * 2023-12-18 2024-07-23 数盾信息科技股份有限公司 一种基于零知识证明的区块认证方法
CN118353605A (zh) * 2024-06-14 2024-07-16 长江三峡集团实业发展(北京)有限公司 分布式匿名认证方法、装置、系统及存储介质
CN118839377A (zh) * 2024-09-10 2024-10-25 成都信息工程大学 一种基于非交互式零知识证明的隐私保护方法及系统
CN118839377B (zh) * 2024-09-10 2024-12-03 成都信息工程大学 一种基于非交互式零知识证明的隐私保护方法及系统

Also Published As

Publication number Publication date
CN115694838B (zh) 2024-09-27

Similar Documents

Publication Publication Date Title
CN112989415B (zh) 一种基于区块链的隐私数据存储与访问控制方法及系统
US10979418B2 (en) Template-based distributed certificate issuance in a multi-tenant environment
Xu et al. An identity management and authentication scheme based on redactable blockchain for mobile networks
CN114186248B (zh) 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法
WO2021179449A1 (zh) 一种基于证书身份认证的拟态防御系统及证书签发方法
CN103856477B (zh) 一种可信计算系统及相应的认证方法和设备
US9912485B2 (en) Method and apparatus for embedding secret information in digital certificates
US8843415B2 (en) Secure software service systems and methods
KR102318637B1 (ko) 데이터 전송 방법, 데이터의 사용 제어 방법 및 암호 장치
CN115694838B (zh) 基于可验证凭证与零知识证明的匿名可信访问控制方法
US20170147808A1 (en) Tokens for multi-tenant transaction database identity, attribute and reputation management
CN109818757A (zh) 云存储数据访问控制方法、属性证书颁发方法及系统
Tong et al. CCAP: a complete cross-domain authentication based on blockchain for Internet of Things
CN101834853A (zh) 匿名资源共享方法和系统
CN113761582A (zh) 基于群签名的可监管区块链交易隐私保护方法及系统
CN105516119A (zh) 基于代理重签名的跨域身份认证方法
JP2023527815A (ja) 非中央集権化されたコンピュータ・ネットワークを介したセキュアなデータ転送のための方法、装置、及びコンピュータ可読媒体
CN102143178A (zh) 一种网络教学管理系统
Win et al. Privacy enabled digital rights management without trusted third party assumption
Downnard Public-key cryptography extensions into Kerberos
Shahraki et al. Attribute-based data access control for multi-authority system
Mao et al. BTAA: Blockchain and TEE-Assisted Authentication for IoT Systems
CN115913513B (zh) 支持隐私保护的分布式可信数据交易方法、系统及装置
CN118537017B (zh) 一种基于指定验证方非交互零知识证明的交易验证方法
CN114091009A (zh) 利用分布式身份标识建立安全链接的方法

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