CN116112150A - 一种服务访问方法及装置 - Google Patents

一种服务访问方法及装置 Download PDF

Info

Publication number
CN116112150A
CN116112150A CN202111331322.0A CN202111331322A CN116112150A CN 116112150 A CN116112150 A CN 116112150A CN 202111331322 A CN202111331322 A CN 202111331322A CN 116112150 A CN116112150 A CN 116112150A
Authority
CN
China
Prior art keywords
service
identity
user
node
blacklist
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.)
Pending
Application number
CN202111331322.0A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202111331322.0A priority Critical patent/CN116112150A/zh
Publication of CN116112150A publication Critical patent/CN116112150A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Abstract

一种服务访问方法及装置,用于在失信用户通过新的DID向服务提供方请求服务时,服务提供方可准确识别出失信用户,避免为失信用户提供服务。在本申请中,方法包括:服务节点接收来自用户节点的零知识证据,零知识证据基于第一身份标识和服务黑名单生成,其中,第一身份标识是用户节点对应用户的真实身份标识,服务黑名单用于指示服务节点对应服务提供方拒绝提供服务的用户;服务节点根据零知识证据,确定服务黑名单中不包括第一身份标识时,向用户提供服务;以及,服务节点根据零知识证据,确定服务黑名单中包括第一身份标识时,拒绝向用户提供服务。

Description

一种服务访问方法及装置
技术领域
本申请涉及区块链技术领域,尤其涉及一种服务访问方法及装置。
背景技术
分布式身份服务是一种基于区块链的分布式身份管理技术,分布式身份服务可提供用户身份的创建、可验证凭证的注册、签发、验证等服务,为个人和企业用户提供统一的、可自解释的、移植性强的分布式身份标识(decentralized identity,DID),从而有效解决跨部门、跨企业、跨地域的身份认证难和隐私泄露等问题。
分布式身份服务中可涉及服务提供方、用户和签发方的通信,用户可通过自己的DID向签发方请求可验证声明(verifiable credential,VC),然后根据请求到的VC向服务提供方请求服务。目前在联盟链中,底层区块链能感知每个DID背后的真实身份,但对于上层应用,例如服务提供方是无法获取DID背后的真实身份的。若用户失信,则用户可重新生成新的DID,并利用该新的DID向服务提供方继续申请服务,从而导致“失信逃逸”。
如此,亟需提供一种方案,在用户失信之后,即使用户采用另外一个新的DID请求服务,服务提供方也可识别出该新的DID背后的用户为失信用户,并拒绝为该用户提供服务。
发明内容
本申请提供一种服务访问方法及装置,用于在失信用户通过新的DID向服务提供方请求服务时,服务提供方可准确识别出失信用户,避免为失信用户提供服务。
第一方面,本申请提供一种服务访问方法,包括:
服务节点接收来自用户节点的零知识证据,零知识证据基于第一身份标识和服务黑名单生成,其中,第一身份标识是用户节点对应用户的真实身份标识,服务黑名单用于指示服务节点对应服务提供方拒绝提供服务的用户;服务节点根据零知识证据确定服务黑名单中是否包括第一身份标识,具体的,服务节点根据零知识证据确定服务黑名单中不包括第一身份标识时,向用户提供服务,服务节点根据零知识证据,确定服务黑名单中包括第一身份标识时,拒绝向用户提供服务。
上述技术方案中,用户节点生成零知识证据,向服务节点发送零知识证据,该零知识证据可用于用户节点不向服务节点暴露用户的真实身份标识(即第一身份标识)的前提下,向服务节点证明用户的真实身份标识是否包含于服务黑名单中。通过该方式,即使黑名单用户生成新的用户DID,并基于该新的用户DID向签发节点请求新的用户DID对应的VC,并基于该VC向服务节点请求服务。但是对于服务节点来说,服务节点都可以基于该黑名单用户对应的用户节点发送的零知识证据,确定出该黑名单用户对应的真实身份标识包含于服务黑名单中,服务节点可拒绝向该黑名单用户提供服务,从而抵抗女巫攻击。
在一种可能的实现方式中,服务黑名单中包括服务匿名黑名单,服务匿名黑名单中包括M个随机化身份标识,M为正整数;M个随机化身份标识中的任一个随机化身份标识中包括哈希值和哈希值对应的随机数,哈希值是由哈希值指示的真实身份标识和哈希值对应的随机数组成的字符串经哈希处理得到的;其中,该随机化身份标识是服务节点预先记录的,或者是从第三方节点中获取的。
上述技术方案中,服务匿名黑名单中记录有黑名单用户的随机化身份标识,该随机化身份标识可以是根据黑名单用户的真实身份标识确定的,黑名单用户的随机化身份标识可以是服务节点预先记录的,或者是从第三方节点中获取的。如此,服务节点可获取到较为全面的黑名单用户的随机化身份标识,有助于服务节点较准确地识别出黑名单用户。进一步的,服务匿名黑名单中包括的是用户的随机化身份标识,如此,无需暴露用户的真实身份标识,有助于保障用户隐私。
在一种可能的实现方式中,服务节点根据零知识证据,确定服务黑名单中不包括第一身份标识,包括:服务节点根据服务匿名黑名单和零知识证据,确定M个随机化身份标识中不存在第一随机化身份标识;其中,第一随机化身份标识包括第一哈希值和第一哈希值对应的第一随机数,第一身份标识和第一随机数组成的字符串经哈希处理得到第一哈希值。
上述技术方案中,服务节点可根据服务匿名黑名单和零知识证据,确定用户是否在服务匿名黑名单中,如此,有助于服务节点较准确地识别出黑名单用户。
在一种可能的实现方式中,服务节点向用户提供服务之前,还包括:服务节点根据签发节点对应签发方的公钥和零知识证据,确定用户的身份标识背书是由签发方的私钥加密得到的;和/或,服务节点确定第二身份标识是基于用户的身份标识背书对应的真实身份标识生成的,其中,第二身份标识是第一身份标识对应的随机化身份标识。
上述技术方案中,服务节点可根据签发方的公钥,确定该身份标识背书是由签发方经签发方私钥加密的,或者理解为该身份标识背书是由签发方验证通过的。进而服务节点还可验证第二身份标识(即用户的随机化身份标识)是身份标识背书对应的真实身份标识生成的,如此,服务节点虽然不能感知第一身份标识(即用户的真实身份标识),但可确定第二身份标识是基于第一身份标识经随机化处理得到的。如此,有助于实现服务节点对用户的身份认证。
在一种可能的实现方式中,服务黑名单中包括服务明文黑名单,服务明文黑名单中包括N个真实身份标识,N为正整数;方法还包括:针对N个真实身份标识中的任一个,服务节点将真实身份标识和真实身份标识对应的随机数组成的字符串经哈希处理得到哈希值;将得到的哈希值和真实身份标识对应的随机数组成真实身份标识对应的随机化身份标识;服务节点将N个真实身份标识分别对应的随机化身份标识,组成服务明文黑名单对应的匿名黑名单;服务节点向第三方节点发送服务明文黑名单对应的匿名黑名单。
上述技术方案中,服务节点可与第三方节点共享黑名单,从而服务节点可以获取到较为全面的服务黑名单。进一步的,服务节点在向第三方节点提供服务黑名单时,会将服务黑名单中包括的服务明文黑名单进行随机化处理,从而保障服务明文黑名单中记录的黑名单用户的真实身份标识不被第三方节点获取,从而有助于保障用户隐私。
在一种可能的实现方式中,服务节点向用户提供服务之前,还包括:服务节点接收来自用户节点的可验证声明,其中可验证声明是由签发节点根据用户的分布式身份标识得到的;服务节点确定可验证声明验证通过。
上述技术方案中,服务节点还可根据可验证声明,对用户节点的分布式身份标识进一步验证,在验证通过之后再向用户提供服务。
第二方面,本申请提供一种服务访问方法,包括:
用户节点根据第一身份标识和服务黑名单,生成零知识证据,其中,第一身份标识是用户节点对应用户的真实身份标识,服务黑名单用于指示服务节点对应服务提供方拒绝提供服务的用户;用户节点向服务节点发送零知识证据,零知识证据用于服务节点证明服务黑名单中是否包括第一身份标识,具体的,服务节点根据零知识证据确定服务黑名单中不包括第一身份标识时,向用户提供服务,服务节点根据零知识证据,确定服务黑名单中包括第一身份标识时,拒绝向用户提供服务。
在一种可能的实现方式中,用户节点根据第一身份标识和服务黑名单,生成零知识证据,包括:用户节点根据第一身份标识、身份标识背书、第二身份标识、服务黑名单以及签发节点对应签发方的公钥,生成零知识证据;其中,身份标识背书是由签发方的私钥加密第一身份标识得到的,第二身份标识是第一身份标识对应的随机化身份标识。
在一种可能的实现方式中,还包括:用户节点向签发节点发送用户的分布式身份标识;用户节点接收来自签发节点的可验证声明,可验证声明是由签发节点根据用户的分布式身份标识得到的;用户节点向服务节点发送可验证声明,相应的,服务节点可以对可验证声明进行验证,并在验证通过之后向用户提供服务。
第三方面,本申请实施例提供一种服务访问装置,该装置具有实现上述第一方面或第一方面的任一种可能的实现方式中服务节点的功能,示例性的,该服务节点可以为服务器或服务器中的芯片,也可以为终端设备或终端设备中的芯片。
该装置也可以具有实现上述第二方面或第二方面的任一种可能的实现方式中用户节点的功能,该用户节点可以为终端设备或终端设备中的芯片。
上述服务访问装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,硬件或软件包括一个或多个与上述功能相对应的模块或单元或手段(means)。
在一种可能的实现方式中,该装置的结构中包括处理模块和收发模块,其中,处理模块被配置为支持该装置执行上述第一方面或第一方面的任一种实现方式中服务节点相应的功能,或者执行上述第二方面或第二方面的任一种实现方式中用户节点相应的功能。收发模块用于支持该装置与其他装置之间的通信,例如该装置为服务节点时,可接收来自用户节点的零知识证据。该装置还可以包括存储模块,存储模块与处理模块耦合,其保存有装置必要的程序指令和数据。作为一种示例,处理模块可为处理器,收发模块可以为收发器或通信接口等,存储模块可以为存储器,存储器可以和处理器集成在一起,也可以和处理器分离设置。
在另一种可能的实现方式中,该装置的结构中包括处理器,还可以包括存储器。处理器与存储器耦合,可用于执行存储器中存储的计算机程序指令,以使装置执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。可选地,该装置还包括通信接口,处理器与通信接口耦合。当装置为用户节点或服务节点时,该通信接口可以是收发器或输入/输出接口;当该装置为用户节点中包含的芯片或服务节点中包含的芯片时,该通信接口可以是芯片的输入/输出接口。可选地,收发器可以为收发电路,输入/输出接口可以是输入/输出电路。
第四方面,本申请实施例提供一种芯片系统,包括:处理器和存储器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该芯片系统实现上述第一方面或第一方面的任一种可能的实现方式中的方法,或实现上述第二方面或第二方面的任一种可能的实现方式中的方法。
可选地,该芯片系统还包括接口电路,该接口电路用于交互代码指令至处理器。
一方面,该芯片系统中的处理器可以为一个或多个,该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
另一方面,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上。
第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
第六方面,本申请实施例提供一种计算机程序产品,当计算机读取并执行计算机程序产品时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
第七方面,本申请实施例提供一种服务访问系统,该服务访问系统中包括服务节点、用户节点,其中服务节点用于实现第一方面或第一方面的任一种可能的实现方式中的方法,用户节点用于实现第二方面或第二方面的任一种可能的实现方式中的方法。可选的,该服务访问系统中还可以包括签发节点。
上述第二方面至第七方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。
附图说明
图1为一种分布式身份服务系统的架构图;
图2为一种用户请求服务时各节点的交互示意图;
图3为本申请示例性提供的一种服务访问方法的流程示意图;
图4为本申请示例性提供的一种服务黑名单的示意图;
图5为本申请示例性提供的一种服务节点获取第三方黑名单的示意图;
图6为本申请示例性提供的再一种服务访问方法的流程示意图;
图7为本申请示例性提供的一种服务访问装置的结构示意图;
图8为本申请示例性提供的再一种服务访问装置的结构示意图。
具体实施方式
为了更好的解释本申请实施例,先对本申请中的相关术语或技术解释:
区块链(blockchain):利用块链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学方式来保证数据传输和访问的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
分布式身份标识(decentralized identity,DID):DID为一种新的全球唯一标识符。DID不仅可以用于人,也可以用于万事万物,包括一辆车、一只动物,甚至是一台机器。相对于传统的基于公钥基础设施(public key infrastructure,PKI)的身份体系,基于区块链建立的分布式身份系统具有保证数据真实可信、保护用户隐私安全、可移植性强等特征,避免身份数据被单一的中心化权威机构控制,用户可自主管理自己的身份。
可验证声明(verifiable credential,VC):VC是签发方使用自己的DID给用户DID的某些属性做出背书而签发的描述性声明,并附加签发方的数字签名。服务提供方可通过验证VC,进而间接的验证用户的真实性。
零知识证明(zero-knowledge proofs,ZKPs):证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。零知识证明可应用于身份验证、数字签名、非确定性多项式问题(non-deterministic polynomial problems,NP问题)、水印检测、密钥交换等场景中。
NP问题:能在多项式时间内验证得出一个正确解的问题。
背书:原意是指票据转让时原持有人在票据背面加盖自己的印鉴证明该票据真实有效,它不是担保,而是证明或声明的意思。
女巫攻击:作用于对等(peer-to-peer,P2P)网络中的一种攻击形式,攻击者利用单个节点来伪造多个身份存在于P2P网络中,从而达到削弱网络的冗余性,降低网络健壮性,监视或干扰网络正常活动等目的。
分布式身份服务可涉及服务提供方、用户和签发方,其中,服务提供方可用于向用户提供服务,签发方可用于向用户提供VC,随后用户可通过该VC向服务提供方请求服务。
分布式身份服务可应用于多种场景中。如下示例性提供两种场景:
场景1,服务提供方可以是药房,用户可以是病人,签发方可以是医院,病人可先向医院申请VC,VC比如是医院开具的处方单,随后病人可以通过该处方单向药房购买药物。
场景2,服务提供方可以是银行,用户可以是贷款者,签发方可以是公安局,贷款者可先向公安局申请VC,VC比如是公安局开具的可贷款身份证明,随后贷款者可以通过该可贷款身份证明去银行贷款。
结合上述场景,如图1为本申请示例性提供的一种分布式身份服务系统,该分布式身份服务系统中包括签发节点、服务节点、用户节点和区块链。
其中,签发节点即签发方对应的节点,比如是签发方对应的服务器或终端。签发方可通过签发节点为用户提供VC。具体的,签发节点可使用签发方DID,给用户DID的某些属性签发描述性声明,并附加签发方的数字签名,从而得到该用户的VC。
服务节点即服务提供方对应的节点,比如是服务提供方对应的服务器或终端。服务提供方可通过服务节点验证VC,若确定VC通过验证,则可向用户提供服务。
用户节点即用户对应的节点,比如是终端。其中,终端也可以称为终端设备、用户设备(user equipment,UE)、移动台、移动终端等。终端可以广泛应用于各种场景,例如,设备到设备(device-to-device,D2D)、车物(vehicle to everything,V2X)通信、机器类通信(machine-type communication,MTC)、物联网(internet of things,IOT)、虚拟现实、增强现实、工业控制、自动驾驶、远程医疗、智能电网、智能家具、智能办公、智能穿戴、智能交通、智慧城市等。终端可以是手机、平板电脑、带无线收发功能的电脑、可穿戴设备、车辆、无人机、直升机、飞机、轮船、机器人、机械臂、智能家居设备等。本申请的实施例对终端所采用的具体技术和具体设备形态不做限定。
区块链中注册有用户DID和对应的DID文档,以及签发方DID和对应的DID文档,其中,DID文档中可包括DID对应的公钥、属性描述、时间戳等信息,比如用户DID文档中包括的属性描述可以是用户的身份认证能力、学习经历、从业经历等。
图2示例性提供一种用户向服务提供方请求服务时,各节点之间的交互示意图:
步骤201,用户节点向签发节点发送第一用户DID,以向签发节点请求第一VC,其中第一VC与第一用户DID相对应。
示例性的,用户节点可随机生成多个用户DID,用户DID具体可以是字符串,例如为did:ccp:1FsbKR6UpV6GW8o8szccdxXkquzTg2VZLL。用户节点可将用户DID和对应的DID文档,对应上传至区块链中,以在区块链中完成DID身份注册。
其中,第一用户DID是多个用户DID中的任一个。
步骤202,签发节点向用户节点发送第一VC。
示例性的,用户节点可向签发节点发送第一用户DID,相应的,签发节点根据第一用户DID,从区块链中获取第一用户DID对应的第一用户DID文档,签发节点根据第一用户DID文档中记载的属性描述,验证用户身份信息,进而向用户节点发送第一VC。
步骤203,用户节点向服务节点发送第一VC,以向服务节点请求服务。
其中,第一VC中可包括第一用户DID、签发方DID、服务信息,服务信息用于表征用户节点向服务节点请求的服务/业务。
结合上述场景1中例子,服务提供方是药房,用户是病人,签发方是医院,病人向医院申请的VC中可包括该病人的DID、医院的DID,以及服务信息(比如申请药物)。
步骤204,服务节点根据第一VC向区块链发送获取请求。其中获取请求中可包括第一用户DID和签发方DID。具体的,服务节点可根据第一用户DID向区块链请求第一用户DID文档,以及服务节点可根据签发方DID向区块链请求签发方DID文档。
步骤205,区块链向服务节点发送获取响应,其中,获取响应中包括第一用户DID文档和签发方DID文档。
步骤206,服务节点根据第一用户DID文档和签发方DID文档,若确定第一VC通过验证,则向用户提供服务;否则,拒绝向用户提供服务。
示例性的,服务节点在验证第一VC过程中,可根据签发方DID文档中的签发方的公钥,验证该第一VC是否由签发方的私钥签名得到的;服务节点在确定该第一VC是由签发方的私钥签名得到的之后,可进一步确定第一用户DID是否在服务黑名单中。
其中,服务节点中包括有服务黑名单,该服务黑名单中记载有黑名单用户的DID,黑名单用户可理解为失信用户,或者服务提供方拒绝服务的用户。
在一种可能的实现方式中,服务节点可确定第一用户DID是否包含于服务黑名单中:若确定第一用户DID包含于服务黑名单中,则可拒绝为该用户服务;若确定第一用户DID未包含于服务黑名单中,则可为该用户服务。
结合上述场景1中例子,服务提供方是药房,用户是病人,其中药房规定一个病人在一个月内只能购买一次某药物。
比如某个病人已经在2021年的10月1日够买了该药物,则药房可将该病人的DID增加至服务黑名单中,并在2021年的11月1日之后将该病人的DID从服务黑名单中删除,如此,可控制病人在每个月内只能从药房购买一次该药物。
进一步的,该病人若在2021年的10月10日再次向药房请求购买药物,则药房确定该病人的DID已经在服务黑名单中,拒绝向该病人售卖该药物。
而该病人若在2021年的11月10日再次向药房购买药物,则药房确定该病人的DID不在服务黑名单中,可向该病人售卖该药物。
上述技术方案中,签发节点验证用户DID是否在黑名单中,进而根据验证结果,确定是否向用户提供服务。但是在目前联盟链中,底层区块链能感知每个DID背后的真实身份,但对于上层应用,例如服务节点是无法获取用户DID背后的真实身份。若某个用户是黑名单用户,该用户DID记载于服务节点的黑名单中,但是该用户可重新生成新的DID,并利用该新的DID向服务提供方继续申请服务,从而导致“失信逃逸”。
为此,本申请提供一种服务访问方法,用于服务节点确定用户的真实身份是否在服务黑名单中,进而避免出现“失信逃逸”的问题。
具体可参见图3中流程图:
步骤301,用户节点根据第一身份标识和服务黑名单,生成零知识证据(可表示为π)。
其中,第一身份标识是用户节点对应用户的真实身份标识,第一身份标识比如是用户身份证号。服务黑名单用于指示服务节点对应的服务提供方拒绝提供服务的用户。
其中,零知识证据可用于用户节点在不暴露第一身份标识的情况下,向服务节点证明第一身份标识不在服务黑名单中。
在一种可能的实现方式中,用户节点可获取私有输入(可表示为a)和公共输入(可表示为x),根据私有输入、公共输入和证明密钥(可表示为pkproof),确定零知识证据。
其中私有输入为用户节点私有的输入参数,私有输入中可包括第一身份标识,即a=(id用户)。公共输入为用户节点和服务节点共有的输入参数,公共输入可包括服务黑名单(可表示为L),即x=(L)。示例性的,用户节点可将私有输入、公共输入和证明密钥作为证明的输入,得到证明的输出(即零知识证据),具体可参见关系式,当然具体确定零知识证据的方式也不仅限于下述公式,本申请这里对确定零知识证据的具体方式不做限定:
π=Prove(pkproof,a,x),其中a=(id用户),x=(L)。
如下对公共输入中的服务黑名单进一步数解释如下:
服务黑名单可包括有服务明文黑名单和服务匿名黑名单:
服务明文黑名单(可表示为Lpublic)中记录有黑名单用户的真实身份标识,示例性的,Lpublic={id1,…,idi|i∈1,2,…,N},其中,N为服务明文黑名单中黑名单用户的总数,N为正整数。
服务匿名黑名单(可表示为Lsecret)中记录有黑名单用户的随机化身份标识,随机化身份标识可以是根据黑名单用户的真实身份标识确定。示例性的,服务匿名黑名单具体可以表示为:Lsecret={billingid1,…,billingidj|j∈1,2,…,M},其中billingid为随机化身份标识,随机化身份标识中包括有哈希值和随机数,M为服务匿名黑名单中黑名单用户的总数,M为正整数。
示例性的,billingid={H(id||n),n),其中,H为哈希函数,||为两个字符串的连接操作,n为(即noce)为随机数,H(id||n)为真实身份标识和随机数拼接组成的字符串经哈希处理得到的哈希值。进一步的,哈希函数H为H:{0,1}*→{0,1}w,其中,w是固定正整数,即任意长度的字符串通过哈希函数生成固定长度的字符串。
如图4为本申请示例性提供的一种服务黑名单:
图4的左半部分为服务明文黑名单,服务明文黑名单中包括N个黑名单用户的真实身份标识,比如,idp1、idp2、idp3、……、idpN;图4的右半部分为服务匿名黑名单,服务匿名黑名单中包括M个黑名单用户的随机化身份标识,比如billingid1、billingid2、……billingidM。进一步的,图4示出的服务匿名黑名单中,billingid1={H(id1||n1),n1},其中,H(id1||n1)是id1和n1组成的字符串经哈希处理得到的,id1是黑名单用户1的真实身份标识,n1是与id1对应的随机数;其中,billingid2={H(id2||n2),n2},其中,H(id2||n2)是id2和n2组成的字符串经哈希处理得到的,id2是黑名单用户2的真实身份标识,n2是与id2对应的随机数,等等。
也可以理解,服务匿名黑名单中可包括多个哈希值,以及该多个哈希值分别对应的随机数。比如图4示出的服务匿名黑名单中,包括H(id1||n1)、H(id2||n2)、……、H(idM||nM),以及H(id1||n1)、H(id2||n2)、……、H(idM||nM)分别对应的随机数,即n1、n2、……、nM
服务黑名单可以是用户节点从签发节点或者服务节点中获取的。一个示例中,签发节点从服务节点中获取服务黑名单,然后将服务黑名单存储于签发节点中。进一步的,用户节点在向服务节点请求服务之前,可从签发节点中获取服务黑名单。
步骤302,用户节点向服务节点发送零知识证据。
步骤303,服务节点根据零知识证据,确定第一身份标识是否包含于服务黑名单中。
服务节点可获取公共输入,公共输入中可包括服务黑名单,即x=(L),公共输入中各参数的具体说明可参见上述步骤301中关于公共输入的描述。
进一步的,服务黑名单中可包括有服务明文黑名单和服务匿名黑名单:
服务明文黑名单可包括黑名单用户的真实身份标识,该黑名单用户的真实身份标识可以是服务提供方从官方机构中获取到的。
服务匿名黑名单中可包括黑名单用户的随机化身份标识,该黑名单用户的随机化身份标识可以是服务节点自己记录的。示例性的,服务节点接收来自用户节点的随机化身份标识,该随机化身份标识中可包括哈希值和随机数。服务节点可将该随机化身份标识记录在服务匿名黑名单中。可选的,服务节点在记录该随机化身份标识的预设时长之后,可将该随机化身份标识从服务匿名黑名单中删除。
举例来说,服务节点是药房,用户是病人,且药房规定一个病人在一个月内只能购买一次某药物,若病人已经在2021年的10月1日购买了该药物,则药房可以在服务匿名黑名单中记录该病人的随机化身份标识。进一步的,药房还可以在该病人购买药物的一个月之后(即2021年的11月1日)删除服务匿名黑名单中记载的该病人的随机化身份标识。
再一个具体实现中,服务节点可从一个或多个第三方节点中获取每个第三方节点的黑名单(可称为第三方黑名单),从而得到一个或多个第三方黑名单。服务节点将一个或多个第三方黑名单中包括的黑名单用户的随机化身份标识,记录于服务匿名黑名单中。
其中第三方节点可以是另外的服务节点,具体可参见图5中例子,服务节点是药房A,药房A对应于三个第三方节点,分别是药房B、药房C、药房D。具体的,药房A可从药房B中获取药房B的黑名单,以及从药房C中获取药房C的黑名单,以及从药房D中获取药房D的黑名单。进一步的,药房A可将药房B的黑名单中包括的黑名单用户的随机化身份标识,和药房C的黑名单中包括的黑名单用户的随机化身份标识,和药房D的黑名单中包括的黑名单用户的随机化身份标识,记录于服务匿名黑名单中。
如下,解释说明服务节点获取第三方黑名单的方式:
在一个可能场景中,服务节点可向第三方节点1请求第三方黑名单1,其中,第三方黑名单1中可进一步包括第三方明文黑名单1和第三方匿名黑名单1。
进一步的,第三方匿名黑名单1中包括多个黑名单用户的随机化身份标识,不存在用户信息泄露的问题,第三方节点1可直接将该第三方匿名黑名单1发送给服务节点。
而第三方明文黑名单1中包括多个黑名单用户的真实身份标识,为保障用户信息的安全性,第三方节点1需要将第三方明文黑名单1进行加密处理。具体地,第三方节点1对第三方明文黑名单1中每个真实身份标识进行随机化处理得到随机化身份标识,以得到第三方明文黑名单1对应的匿名黑名单,然后将第三方明文黑名单1对应的匿名黑名单发送给服务节点。
也可以理解,第三方节点1可向服务节点发送第三方黑名单1,其中第三方黑名单1中包括第三方匿名黑名单1,以及第三方明文黑名单1对应的匿名黑名单。在一个可能实现中,第三方黑名单1中可包括多个黑名单用户的随机化身份标识billingid,billingid={H(id||n),n},第三方黑名单1的格式可参见图4相关实施例中关于匿名黑名单的描述。
对于服务节点来说,服务节点不能读取到服务匿名黑名单中黑名单用户的真实身份标识,只能读取到服务匿名黑名单中黑名单用户的随机化身份标识。
在另外的可能场景中,服务节点还可接收来自第三方节点2的服务黑名单的获取请求,其中,服务黑名单中包括服务明文黑名单和服务匿名黑名单。
对于服务匿名黑名单,服务节点可直接将该服务匿名黑名单发送给第三方节点2。
对于服务明文黑名单,服务节点需要对服务明文黑名单进行加密处理,得到服务明文黑名单对应的匿名黑名单,然后再发送给第三方节点2。
具体的,针对于服务明文黑名单中的任一个真实身份标识,服务节点随机生成该真实身份标识对应的随机数,然后将该真实身份标识和对应的随机数组成字符串,对该组成的字符串进行哈希处理得到哈希值。进而将该哈希值和对应的随机数组成随机化身份标识,存储于服务明文黑名单对应的匿名黑名单中。
或者也可以理解,服务明文黑名单为Lpublic={idp1,…,idpi|i∈1,2,…,N},服务节点可随机选取一组随机数{n1,n2,…,nN},服务节点可确定billingidi={H(idpi||ni),ni},i∈1,…,N,从而可得到服务明文黑名单对应的匿名黑名单,具体可表示为L′secret={billingid′1,billingid′2,…,billingid′N}。
如此,服务明文黑名单对应的匿名黑名单中可包括多个黑名单用户的随机化身份标识,其中随机化身份标识中包括哈希值和随机数。
也可以理解,服务节点向第三方节点发送服务黑名单,服务黑名单中包括服务匿名黑名单,以及服务明文黑名单对应的匿名黑名单。对于第三方节点2来说,第三方节点2不能读取到服务黑名单中黑名单用户的真实身份标识,只能读取到服务黑名单中黑名单用户的随机化身份标识。
本申请中,第三方节点1和第三方节点2可以是同一个第三方节点,可以理解,第三方节点和服务节点二者可以互换黑名单,从而二者可实现黑名单共享。
服务节点可以与第三方节点共享黑名单,从而服务节点可以获取到较为全面的黑名单,有助于降低欺诈风险。进一步的,服务节点在向第三方节点提供服务黑名单时,会将服务黑名单中包括的服务明文黑名单进行随机化处理,从而保障服务明文黑名单中记录的黑名单用户的真实身份标识不被第三方节点获取,从而有助于保障用户隐私。
服务节点可根据公共输入和验证密钥(可表示为vkproof),验证第一身份标识是否包含于服务黑名单中。示例性的,服务节点可将公共输入、验证密钥和零知识证据,作为验证的输入,得到验证的输出(可表示为b),具体可参见关系式b=Verify(vkproof,x,π)。示例性的,若第一身份标识不包含于服务黑名单中,则表示验证成功,输出b=1;若第一身份标识包含于服务黑名单中,则表示验证失败,输出b=0。
基于服务黑名单中进一步包括服务明文黑名单和服务匿名黑名单,本申请的一个具体实现中,服务节点可分别执行如下两个步骤:
步骤1,服务节点确定第一身份标识是否包含于服务明文黑名单:
服务节点可根据公共输入、验证密钥和零知识证据,验证第一身份标识是否包含于服务明文黑名单中。本申请中,服务节点若确定服务明文黑名单中所有的真实身份标识均与第一身份标识不同,则服务节点可确定第一身份标识未包含于服务明文黑名单中。
步骤2,服务节点确定第一身份标识是否包含于服务匿名黑名单中:
服务节点还可根据公共输入、验证密钥和零知识证据,验证第一身份标识是否包含于服务匿名黑名单中:具体的,服务节点针对服务匿名黑名单中每个随机化身份标识(即哈希值和随机数),验证第一身份标识是否为该随机化身份标识指示的真实身份标识。
示例性的,针对任一个随机化身份标识,可将该随机化身份标识称为是随机化身份标识1,相应的,该随机化身份标识1中的哈希值可称为是哈希值1,该随机化身份标识1中的随机数可称为是随机数1。服务节点可验证第一身份标识与随机数1组成的字符串的哈希值,是否为哈希值1,若是,则表明第一身份标识是随机化身份标识1所指示的真实身份标识,服务节点可确定出第一身份标识包含于服务匿名黑名单中。
本申请中,若服务节点确定服务匿名黑名单中的所有随机化身份标识所指示的真实身份标识均与第一身份标识不同,服务节点可确定第一身份标识未包含于服务匿名黑名单中。
也可以理解,服务节点确定服务匿名黑名单中是否存在第一随机化身份标识,其中第一随机化身份标识中包括第一哈希值和第一随机数,第一身份标识与第一随机数组成的字符串的哈希值为第一哈希值。服务节点若确定服务匿名黑名单中包括第一随机化身份标识,则确定出第一身份标识包含于服务匿名黑名单中。服务节点若确定服务匿名黑名单中不包括第一随机化身份标识,则确定出第一身份标识不包含于服务匿名黑名单中。
通过上述步骤1和步骤2,服务节点若确定第一身份标识既不包含于服务明文黑名单中,也不包含于服务匿名黑名单中,则服务节点可确定该第一身份标识通过验证;服务节点若确定第一身份标识包含于服务明文黑名单中,和/或,第一身份标识包含于服务匿名黑名单中,则服务节点可确定该第一身份标识未通过验证。
服务节点若确定第一身份标识未包含于服务黑名单中,则执行步骤304;服务节点若确定第一身份标识包含于服务黑名单中,则执行步骤305。
步骤304,服务节点向用户提供服务。
步骤305,服务节点拒绝向用户提供服务。
结合上述场景1中例子,服务提供方是药房,用户是病人,签发方是医院,若药房确定病人未在服务黑名单中,则药房可向病人售卖药物;若药房确定病人在服务黑名单中,则药房拒绝向病人售卖药物。
结合上述场景2中例子,服务提供方是银行,用户是贷款者,签发方是公安局,若银行确定贷款者未在服务黑名单中,则银行可向贷款者审批贷款;若银行确定贷款者在服务黑名单中,则银行可拒绝向贷款者审批贷款。
上述技术方案中,用户节点生成零知识证据,向服务节点发送零知识证据,该零知识证据可用于用户节点不向服务节点暴露用户的真实身份标识(即第一身份标识)的前提下,向服务节点证明用户的真实身份标识是否包含于服务黑名单中。通过该方式,即使黑名单用户生成新的用户DID,并基于该新的用户DID向签发节点请求新的用户DID对应的VC,并基于该VC向服务节点请求服务。但是对于服务节点来说,服务节点都可以基于该黑名单用户对应的用户节点发送的零知识证据,确定出该黑名单用户对应的真实身份标识包含于服务黑名单中,服务节点可拒绝向该黑名单用户提供服务,从而抵抗女巫攻击。
需要补充的是,在另一种可能方式中,用户节点可在生成零知识证据之前,确定第一身份标识是否在服务黑名单中。若用户确定第一身份标识不在服务黑名单中,则生成零知识证据;若用户确定第一身份标识在服务黑名单中,则不生成零知识证据,即不向服务节点请求服务。在该情况中,用户节点向服务节点发送的零知识证据可用于向服务节点证明该用户节点对应用户的真实身份标识(即第一身份标识)不在服务黑名单中,相应的,服务节点在根据零知识证据确定第一身份标识不在服务黑名单之后,向用户提供服务。
在该可能方式中,用户节点可获取服务黑名单,并基于如下至少两种具体实现方式确定第一身份标识是否在服务黑名单中:
在一个具体实现中,用户节点可针对于服务匿名黑名单中任一个随机化身份标识,确定该随机化身份标识指示的真实身份标识是否为第一身份标识。其中,可将该任一个随机化身份标识称为是随机化身份标识2,随机化身份标识2中包括哈希值2和随机数2。用户节点可获取该随机化身份标识2中的随机数2,将第一身份标识和随机数2组成字符串,进而确定该字符串的哈希值,若该哈希值等于该随机化身份标识中的哈希值2,则可确定该随机化身份标识指示的真实身份标识是第一身份标识,也即第一身份标识包含于服务匿名黑名单中。进而用户节点可确定服务匿名黑名单中是否包含有第一身份标识。
在另一个具体实现中,用户节点若获取到服务明文黑名单,则可将第一身份标识与服务明文黑名单中的多个真实身份标识做比对,确定服务明文黑名单中是否包含有第一身份标识。用户节点若获取到服务明文黑名单对应的匿名黑名单,则可针对于其中的每个随机化身份标识,确定该随机化身份标识指示的真实身份标识是否为第一身份标识,具体可参见上述用户节点确定第一身份标识是否包含于服务匿名黑名单中的实现方式,进而用户节点可确定服务明文黑名单对应的匿名黑名单中是否包含有第一身份标识。
本申请中,用户节点确定第一身份标识是否包含于服务黑名单的实现方式,还可参见服务节点确定第一身份标识是否包含于服务黑名单的实现方式中描述,不再赘述。
还需要补充的是,用户节点还可以先向签发节点获取用户的身份标识背书(可表示为end),该身份标识背书可用于服务节点验证用户节点对应的用户身份信息。该实现方式可具体参见图6所示的流程图:
步骤601,用户节点向签发节点发送第一身份标识(可表示为id用户)。
步骤602,签发节点向用户节点发送身份标识背书(可表示为end)。
示例性的,签发节点接收到用户节点的第一身份标识之后,根据签发方的私钥(可表示为sk签发)加密第一身份标识,从而得到身份标识背书。其中,id用户、sk签发、end三者之间可满足关系式end=E(id用户,sk签发)。
步骤603,用户节点根据第一身份标识和第一身份标识对应的随机数(可表示为n用户),生成第二身份标识(可表示为id′用户)。
示例性的,用户节点选择第一身份标识对应的随机数,然后将第一身份标识和第一身份标识对应的随机数组成字符串,并对该字符串进行哈希处理得到第二身份标识,其中第一身份标识对应的随机数可以是用户节点随机选择的一个字符串。其中,id′用户、id用户和n用户三者满足关系式id′用户=H(id用户||n用户)。
可以理解,第二身份标识可以是用户节点根据第一身份标识对应的随机数,对第一身份标识进行随机化处理生成的、用于隐藏用户真实身份的标识。
本申请中,不限定步骤603,和步骤601、602的先后顺序,可以是用户节点从签发节点中获取到身份标识背书之后,生成第二身份标识;或者还可以是,用户节点从签发节点中获取到身份标识背书之前,生成第二身份标识;或者还可以是,用户节点从签发节点中获取到身份标识背书的同时,生成第二身份标识。
步骤604,用户节点根据第一身份标识、身份标识背书,以及签发方的公钥、第二身份标识、第一身份标识对应的随机数和服务黑名单,生成零知识证据。
本申请中,私有输入可包括第一身份标识和身份标识背书,即a=(end、id用户)。公共输入可包括第二身份标识、签发方的公钥(可表示为pk签发)、服务黑名单和第一身份标识对应的随机数,即x=(id′用户、pk签发、L、n用户)。
其中,签发方的公钥可以是用户节点从签发节点或区块链中获取的。一个示例中,用户节点在向签发节点发送第一身份标识之后,还可以接收到来自签发节点的签发方的公钥。再一个示例中,用户节点向区块链发送获取请求,该获取请求中包括签发方DID。相应的,区块链在接收到该获取请求之后,可根据该获取请求中的签发方DID,查找区块链存储中签发方DID对应的签发方的公钥,并将签发方的公钥发送至用户节点。
用户节点可将私有输入、公共输入和证明密钥作为证明的输入,得到证明的输出(即零知识证据),具体关系式为,π=Prove(pkproof,a,x),其中a=(end、id用户),x=(id′用户、pk签发、L、n用户)。
步骤605,用户节点向服务节点发送零知识证据、第二身份标识和第一身份标识对应的随机数。可选的,用户节点还可以向服务节点发送签发方的公钥。
一个示例中,用户节点可将零知识证据、第二身份标识和第一身份标识对应的随机数、签发方的公钥携带于一条消息中发送至服务节点。
步骤606,服务节点确定第一身份标识是否包含于服务黑名单中。
其中,服务节点若确定第一身份标识包含于服务黑名单中,则执行步骤610;服务节点若确定第一身份标识未包含于服务黑名单中,则执行步骤607。
步骤607,服务节点确定身份标识背书是否由签发节点生成。
其中,服务节点若确定身份标识背书不是由签发节点生成,则执行步骤610;服务节点若确定身份标识背书由签发节点生成,则执行步骤608。
服务节点可确定签发方的公钥是否可以解密身份标识背书,关系式可表示为end′=D(end,pk签发方),其中end′可以是服务节点根据签发方的公钥,解密身份标识背书得到的。具体的,若解密成功,服务节点则可确定身份标识背书是由签发节点生成的;若解密失败,服务节点则可确定身份标识背书不是由签发节点生成的。
本申请中,服务节点可从签发节点,或者区块链,或者用户节点中获取到的签发方的公钥,该签发方的公钥作为公共输入。一个示例中,服务节点向区块链发送获取请求,该获取请求中包括签发方DID。相应的,区块链根据该获取请求中的签发方DID,查找区块链存储中签发方DID对应的签发方的公钥,并将签发方的公钥发送至服务节点。
步骤608,服务节点确定第二身份标识是否为根据身份标识背书对应的真实身份标识生成的。其中,服务节点若确定第二身份标识不是根据身份标识背书对应的真实身份标识生成的,则执行步骤610;服务节点若确定第二身份标识是根据身份标识背书对应的真实身份标识生成的,则执行步骤609。
其中,身份标识背书对应的真实身份标识可以是由服务节点根据签发方的公钥解密身份标识背书得到,具体可参见步骤607中关系式end′=D(end,pk签发方)。随后,服务节点可将身份标识背书对应的真实身份标识和第一随机数组成字符串,并对该字符串进行哈希计算,确定得到的哈希值是否等于第二身份标识,即满足关系式id′用户=H(end′||n用户)。若该哈希值等于第二身份标识,则服务节点可确定第二身份标识是根据身份标识背书对应的真实身份标识生成的。若该哈希值不等于第二身份标识,则服务节点可确定第二身份标识不是根据身份标识背书对应的真实身份标识生成的。
步骤609,服务节点向用户提供服务。
步骤610,服务节点拒绝向用户提供服务。
需要说明的是,图6相关实施例中未详尽描述的内容,可参见图3相关实施例中的描述,具体的,步骤604中未详尽描述的内容可参见步骤301的相关描述,步骤606中未详尽描述的内容可参见步骤303的相关描述,步骤609、步骤610中未详尽描述的内容可参见步骤304、步骤305的相关描述,不再重复赘述。
上述技术方案中,用户节点向签发节点发送第一身份标识,签发节点可根据签发方的私钥对第一身份标识进行加密,得到身份标识背书,该身份标识背书可用于服务节点根据签发方的公钥,确定该身份标识背书是由签发方验证通过的。
之后,服务节点还可验证第二身份标识(即用户的随机化身份标识)是身份标识背书对应的真实身份标识生成的,如此,服务节点虽然不能感知第一身份标识(即用户的真实身份标识),但可确定第二身份标识是基于第一身份标识经随机化处理得到的。
本申请中,用户节点向服务节点发送零知识证据,服务节点根据零知识证据执行零知识证明,其中零知识证明可涉及到三个NP语句的成立证明,其中,第一NP语句为“第一身份标识不在服务黑名单中”,第二NP语句为“身份标识背书是由签发节点根据签发方的私钥生成的”,第三NP语句为“第二身份标识是签发节点根据身份标识背书对应的真实身份标识生成”,服务节点可依次验证第一NP语句、第二NP语句和第三NP语句,在前一个NP语句成立之后,验证下一个NP语句,其中任一个NP语句不成立,服务节点可确定该零知识证明未成功,可拒绝向用户提供服务。若三个NP语句均成立,服务节点可确定该零知识证明成功,可向用户提供服务。
本申请中,服务节点还可进一步验证VC的合法性,即判断该VC是否由签发方签发,以及VC中的属性是否满足申请条件,若VC的合法性验证通过,则向用户提供服务。
基于上述内容和相同构思,图7和图8为本申请提供的可能的装置的结构示意图。这些装置可以用于实现上述方法实施例中服务节点或用户节点的功能,因此也能实现上述方法实施例所具备的有益效果。
在本申请中,该装置可以是如图1所示的服务节点,也可以是如图1所示的用户节点。
如图7所示,该装置700包括处理模块701和收发模块702。装置700用于实现上述图3至图6相关方法实施例中服务节点或用户节点的功能。
当该装置700用于实现服务节点的功能时:
在一种可能的实现方式中,收发模块702,用于接收来自用户节点的零知识证据,零知识证据基于第一身份标识和服务黑名单生成,其中,第一身份标识是用户节点对应用户的真实身份标识,服务黑名单用于指示装置700对应服务提供方拒绝提供服务的用户;处理模块701,用于根据零知识证据,确定服务黑名单中不包括第一身份标识时,向用户提供服务;以及,确定服务黑名单中包括第一身份标识时,拒绝向用户提供服务。
在一种可能的实现方式中,服务黑名单中包括服务匿名黑名单,服务匿名黑名单中包括M个随机化身份标识,M为正整数;M个随机化身份标识中的任一个随机化身份标识中包括哈希值和哈希值对应的随机数,哈希值是由哈希值指示的真实身份标识和哈希值对应的随机数组成的字符串经哈希处理得到的;其中,该随机化身份标识可以是预先记录的,或者是收发模块702从第三方节点中获取的。
在一种可能的实现方式中,处理模块701根据零知识证据,确定服务黑名单中不包括第一身份标识时,具体用于:根据服务匿名黑名单和零知识证据,确定M个随机化身份标识中不存在第一随机化身份标识;其中,第一随机化身份标识包括第一哈希值和第一哈希值对应的第一随机数,第一身份标识和第一随机数组成的字符串经哈希处理得到第一哈希值。
在一种可能的实现方式中,处理模块701还用于:向用户提供服务之前,根据签发节点对应签发方的公钥和零知识证据,确定用户的身份标识背书是由签发方的私钥加密得到的;和/或,向用户提供服务之前,确定第二身份标识是基于用户的身份标识背书对应的真实身份标识生成的,其中,第二身份标识是第一身份标识对应的随机化身份标识。
在一种可能的实现方式中,服务黑名单中包括服务明文黑名单,服务明文黑名单中包括N个真实身份标识,N为正整数;处理模块701还用于:针对N个真实身份标识中的任一个,将真实身份标识和真实身份标识对应的随机数组成的字符串经哈希处理得到哈希值;将得到的哈希值和真实身份标识对应的随机数组成真实身份标识对应的随机化身份标识;将N个真实身份标识分别对应的随机化身份标识,组成服务明文黑名单对应的匿名黑名单;收发模块702还用于:向第三方节点发送服务明文黑名单对应的匿名黑名单。
在一种可能的实现方式中,收发模块702还用于,在处理模块701向用户提供服务之前,接收来自用户节点的可验证声明,可验证声明是由签发节点根据用户的分布式身份标识得到的;处理模块701,还用于在向用户提供服务之前,确定可验证声明验证通过。
当该装置700用于实现用户节点的功能时:
在一种可能的实现方式中,处理模块701,用于根据第一身份标识和服务黑名单,生成零知识证据,其中,第一身份标识是装置700对应用户的真实身份标识,服务黑名单用于指示服务节点对应服务提供方拒绝提供服务的用户;收发模块702,用于向服务节点发送零知识证据,零知识证据用于服务节点证明服务黑名单中不包括第一身份标识时向用户提供服务,以及用于服务节点证明服务黑名单中包括第一身份标识时拒绝向用户提供服务。
在一种可能的实现方式中,处理模块701根据第一身份标识和服务黑名单,生成零知识证据时,具体用于:根据第一身份标识、身份标识背书、第二身份标识、服务黑名单以及签发节点对应签发方的公钥,生成零知识证据;其中,身份标识背书是由签发方的私钥加密第一身份标识得到的,第二身份标识是第一身份标识对应的随机化身份标识。
在一种可能的实现方式中,收发模块702还用于:向签发节点发送用户的分布式身份标识;接收来自签发节点的可验证声明,可验证声明是由签发节点根据用户的分布式身份标识得到的;向服务节点发送可验证声明,以使得服务节点对可验证声明验证通过后向用户提供服务。
如图8所示为本申请实施例提供的装置800,图8所示的装置可以为图7所示的装置的一种硬件电路的实现方式。该装置可适用于前面所示出的流程图中,执行上述方法实施例中服务节点或者用户节点的功能。
为了便于说明,图8仅示出了该装置的主要部件。
图8所示的装置800包括通信接口810、处理器820和存储器830,其中存储器830用于存储程序指令和/或数据。处理器820可能和存储器830协同操作。处理器820可能执行存储器830中存储的程序指令。存储器830中存储的指令或程序被执行时,该处理器820用于执行上述实施例中处理模块701执行的操作,通信接口810用于执行上述实施例中收发模块702执行的操作。
存储器830和处理器820耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。所述存储器830中的至少一个可以包括于处理器820中。
在本申请实施例中,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。在本申请实施例中,通信接口为收发器时,收发器可以包括独立的接收器、独立的发射器;也可以集成收发功能的收发器、或者是通信接口。
装置800还可以包括通信线路840。其中,通信接口810、处理器820以及存储器830可以通过通信线路840相互连接;通信线路840可以是外设部件互连标准(peripheralcomponent interconnect,简称PCI)总线或扩展工业标准结构(extended industrystandard architecture,简称EISA)总线等。所述通信线路840可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于上述内容和相同构思,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,使得计算机执行上述方法实施例中服务节点的相关功能,或者执行上述方法实施例中用户节点的相关功能。
基于上述内容和相同构思,本申请实施例提供一种计算机程序产品,当计算机读取并执行计算机程序产品时,使得计算机执行上述方法实施例中服务节点的相关功能,或者执行上述方法实施例中用户节点的相关功能。
基于上述内容和相同构思,本申请实施例提供一种服务访问系统,该服务访问系统中包括服务节点、用户节点,其中服务节点用于实现上述方法实施例中服务节点的方法,用户节点用于实现上述方法实施例中用户节点的方法。
可选的,该服务访问系统中还可以包括签发节点。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (20)

1.一种服务访问方法,其特征在于,包括:
服务节点接收来自用户节点的零知识证据,所述零知识证据基于第一身份标识和服务黑名单生成,其中,所述第一身份标识是所述用户节点对应用户的真实身份标识,所述服务黑名单用于指示所述服务节点对应服务提供方拒绝提供服务的用户;
所述服务节点根据所述零知识证据,确定所述服务黑名单中不包括所述第一身份标识时,向所述用户提供服务;以及,确定所述服务黑名单中包括所述第一身份标识时,拒绝向所述用户提供服务。
2.如权利要求1所述的方法,其特征在于,所述服务黑名单中包括服务匿名黑名单,所述服务匿名黑名单中包括M个随机化身份标识,所述M为正整数;
所述M个随机化身份标识中的任一个所述随机化身份标识中包括哈希值和所述哈希值对应的随机数,所述哈希值是由所述哈希值指示的真实身份标识和所述哈希值对应的随机数组成的字符串经哈希处理得到的;
所述随机化身份标识是所述服务节点预先记录的,或者是从第三方节点中获取的。
3.如权利要求2所述的方法,其特征在于,所述服务节点根据所述零知识证据,确定所述服务黑名单中不包括所述第一身份标识,包括:
所述服务节点根据所述服务匿名黑名单和所述零知识证据,确定所述M个随机化身份标识中不存在第一随机化身份标识;
其中,所述第一随机化身份标识包括第一哈希值和所述第一哈希值对应的第一随机数,所述第一身份标识和所述第一随机数组成的字符串经哈希处理得到所述第一哈希值。
4.如权利要求1所述的方法,其特征在于,所述服务节点向所述用户提供服务之前,还包括:
所述服务节点根据签发节点对应签发方的公钥和所述零知识证据,确定所述用户的身份标识背书是由所述签发方的私钥加密得到的;和/或,
所述服务节点确定第二身份标识是基于所述用户的身份标识背书对应的真实身份标识生成的,其中,所述第二身份标识是所述第一身份标识对应的随机化身份标识。
5.如权利要求1所述的方法,其特征在于,所述服务黑名单中包括服务明文黑名单,所述服务明文黑名单中包括N个真实身份标识,所述N为正整数;
所述方法还包括:
针对所述N个真实身份标识中的任一个,所述服务节点将所述真实身份标识和所述真实身份标识对应的随机数组成的字符串经哈希处理得到哈希值;将得到的所述哈希值和所述真实身份标识对应的随机数组成所述真实身份标识对应的随机化身份标识;
所述服务节点将所述N个真实身份标识分别对应的随机化身份标识,组成所述服务明文黑名单对应的匿名黑名单;
所述服务节点向第三方节点发送所述服务明文黑名单对应的匿名黑名单。
6.如权利要求1至5任一项所述的方法,其特征在于,所述服务节点向所述用户提供服务之前,还包括:
所述服务节点接收来自所述用户节点的可验证声明,所述可验证声明是由签发节点根据所述用户的分布式身份标识得到的;
所述服务节点确定所述可验证声明验证通过。
7.一种服务访问方法,其特征在于,包括:
用户节点根据第一身份标识和服务黑名单,生成零知识证据,其中,所述第一身份标识是所述用户节点对应用户的真实身份标识,所述服务黑名单用于指示服务节点对应服务提供方拒绝提供服务的用户;
所述用户节点向所述服务节点发送所述零知识证据,所述零知识证据用于所述服务节点证明所述服务黑名单中不包括所述第一身份标识时向所述用户提供服务,以及用于所述服务节点证明所述服务黑名单中包括所述第一身份标识时拒绝向所述用户提供服务。
8.如权利要求7所述的方法,其特征在于,所述用户节点根据第一身份标识和服务黑名单,生成零知识证据,包括:
所述用户节点根据所述第一身份标识、身份标识背书、第二身份标识、所述服务黑名单以及签发节点对应签发方的公钥,生成所述零知识证据;
其中,所述身份标识背书是由所述签发方的私钥加密所述第一身份标识得到的,所述第二身份标识是所述第一身份标识对应的随机化身份标识。
9.如权利要求7或8所述的方法,其特征在于,还包括:
所述用户节点向签发节点发送所述用户的分布式身份标识;
所述用户节点接收来自所述签发节点的可验证声明,所述可验证声明是由所述签发节点根据所述用户的分布式身份标识得到的;
所述用户节点向所述服务节点发送所述可验证声明,以使所述服务节点对所述可验证声明验证通过后向所述用户提供服务。
10.一种服务访问装置,其特征在于,包括:
收发模块,用于接收来自用户节点的零知识证据,所述零知识证据基于第一身份标识和服务黑名单生成,其中,所述第一身份标识是所述用户节点对应用户的真实身份标识,所述服务黑名单用于指示所述装置对应服务提供方拒绝提供服务的用户;
处理模块,用于根据所述零知识证据,确定所述服务黑名单中不包括所述第一身份标识时,向所述用户提供服务;以及,确定所述服务黑名单中包括所述第一身份标识时,拒绝向所述用户提供服务。
11.如权利要求10所述的装置,其特征在于,所述服务黑名单中包括服务匿名黑名单,所述服务匿名黑名单中包括M个随机化身份标识,所述M为正整数;
所述M个随机化身份标识中的任一个所述随机化身份标识中包括哈希值和所述哈希值对应的随机数,所述哈希值是由所述哈希值指示的真实身份标识和所述哈希值对应的随机数组成的字符串经哈希处理得到的;
所述随机化身份标识是预先记录的,或者是所述收发模块从第三方节点中获取的。
12.如权利要求11所述的装置,其特征在于,所述处理模块根据所述零知识证据,确定所述服务黑名单中不包括所述第一身份标识时,具体用于:
根据所述服务匿名黑名单和所述零知识证据,确定所述M个随机化身份标识中不存在第一随机化身份标识;
其中,所述第一随机化身份标识包括第一哈希值和所述第一哈希值对应的第一随机数,所述第一身份标识和所述第一随机数组成的字符串经哈希处理得到所述第一哈希值。
13.如权利要求10所述的装置,其特征在于,所述处理模块还用于:
向所述用户提供服务之前,根据签发节点对应签发方的公钥和所述零知识证据,确定所述用户的身份标识背书是由所述签发方的私钥加密得到的;和/或,
向所述用户提供服务之前,确定第二身份标识是基于所述用户的身份标识背书对应的真实身份标识生成的,其中,所述第二身份标识是所述第一身份标识对应的随机化身份标识。
14.如权利要求10所述的装置,其特征在于,所述服务黑名单中包括服务明文黑名单,所述服务明文黑名单中包括N个真实身份标识,所述N为正整数;
所述处理模块还用于:
针对所述N个真实身份标识中的任一个,将所述真实身份标识和所述真实身份标识对应的随机数组成的字符串经哈希处理得到哈希值;将得到的所述哈希值和所述真实身份标识对应的随机数组成所述真实身份标识对应的随机化身份标识;将所述N个真实身份标识分别对应的随机化身份标识,组成所述服务明文黑名单对应的匿名黑名单;
所述收发模块还用于:
向第三方节点发送所述服务明文黑名单对应的匿名黑名单。
15.如权利要求10至14任一项所述的装置,其特征在于,所述收发模块,还用于在所述处理模块向所述用户提供服务之前,接收来自所述用户节点的可验证声明,所述可验证声明是由签发节点根据所述用户的分布式身份标识得到的;
所述处理模块,还用于在向所述用户提供服务之前,确定所述可验证声明验证通过。
16.一种服务访问装置,其特征在于,包括:
处理模块,用于根据第一身份标识和服务黑名单,生成零知识证据,其中,所述第一身份标识是所述装置对应用户的真实身份标识,所述服务黑名单用于指示服务节点对应服务提供方拒绝提供服务的用户;
收发模块,用于向所述服务节点发送所述零知识证据,所述零知识证据用于所述服务节点证明所述服务黑名单中不包括所述第一身份标识时向所述用户提供服务,以及用于所述服务节点证明所述服务黑名单中包括所述第一身份标识时拒绝向所述用户提供服务。
17.如权利要求16所述的装置,其特征在于,所述处理模块根据第一身份标识和服务黑名单,生成零知识证据时,具体用于:
根据所述第一身份标识、身份标识背书、第二身份标识、所述服务黑名单以及签发节点对应签发方的公钥,生成所述零知识证据;
其中,所述身份标识背书是由所述签发方的私钥加密所述第一身份标识得到的,所述第二身份标识是所述第一身份标识对应的随机化身份标识。
18.如权利要求16或17所述的装置,其特征在于,所述收发模块还用于:
向签发节点发送所述用户的分布式身份标识;
接收来自所述签发节点的可验证声明,所述可验证声明是由所述签发节点根据所述用户的分布式身份标识得到的;
向所述服务节点发送所述可验证声明,以使所述服务节点对所述可验证声明验证通过后向所述用户提供服务。
19.一种计算设备,其特征在于,包括处理器,所述处理器与存储器耦合,所述存储器存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述计算设备执行如权利要求1至6,或如权利要求7至9中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被装置执行时,实现如权利要求1至6,或如权利要求7至9中任一项所述的方法。
CN202111331322.0A 2021-11-11 2021-11-11 一种服务访问方法及装置 Pending CN116112150A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111331322.0A CN116112150A (zh) 2021-11-11 2021-11-11 一种服务访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111331322.0A CN116112150A (zh) 2021-11-11 2021-11-11 一种服务访问方法及装置

Publications (1)

Publication Number Publication Date
CN116112150A true CN116112150A (zh) 2023-05-12

Family

ID=86266155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111331322.0A Pending CN116112150A (zh) 2021-11-11 2021-11-11 一种服务访问方法及装置

Country Status (1)

Country Link
CN (1) CN116112150A (zh)

Similar Documents

Publication Publication Date Title
US10516538B2 (en) System and method for digitally signing documents using biometric data in a blockchain or PKI
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
EP3685334B1 (en) Improving integrity of communications between blockchain networks and external data sources
CN109862041B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
CN110933108B (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
US10003582B2 (en) Technologies for synchronizing and restoring reference templates
US11159307B2 (en) Ad-hoc trusted groups on a blockchain
JP6547079B1 (ja) 登録・認可方法、装置及びシステム
US10630488B2 (en) Method and apparatus for managing application identifier
KR101985179B1 (ko) 블록체인 기반의 ID as a Service
US10439809B2 (en) Method and apparatus for managing application identifier
CN110599342B (zh) 基于区块链的身份信息的授权方法及装置
WO2021190197A1 (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
Kravitz Transaction immutability and reputation traceability: Blockchain as a platform for access controlled iot and human interactivity
KR102157695B1 (ko) 익명 디지털 아이덴티티 수립 방법
CN113328854A (zh) 基于区块链的业务处理方法及系统
CN115913677A (zh) 一种基于区块链的协作边缘存储数据隐私保护系统及方法
CN113328860A (zh) 一种基于区块链的用户隐私数据安全提供方法
CN116112150A (zh) 一种服务访问方法及装置
TWM585941U (zh) 帳戶資料處理系統
CN115150184B (zh) 一种元数据在fabric区块链证书中应用的方法及其系统
CN117834151A (zh) 基于区块链的数据隐私保护方法、装置及电子设备
CN115276998A (zh) 物联网身份认证方法、装置和物联网设备
CN115720137A (zh) 一种信息管理的系统、方法以及装置
CN115549958A (zh) 一种密钥更换的方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication