CN110765210B - 基于区块链的鉴权方法、装置、设备和介质 - Google Patents
基于区块链的鉴权方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN110765210B CN110765210B CN201911046638.8A CN201911046638A CN110765210B CN 110765210 B CN110765210 B CN 110765210B CN 201911046638 A CN201911046638 A CN 201911046638A CN 110765210 B CN110765210 B CN 110765210B
- Authority
- CN
- China
- Prior art keywords
- authentication
- entity
- block chain
- rule
- authority
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000015654 memory Effects 0.000 claims description 19
- 238000005516 engineering process Methods 0.000 abstract description 3
- 102100040439 Adenylate kinase 4, mitochondrial Human genes 0.000 description 11
- 230000008901 benefit Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 108050004095 Adenylate kinase 4, mitochondrial Proteins 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 208000019585 progressive encephalomyelitis with rigidity and myoclonus Diseases 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004138 cluster model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种基于区块链的鉴权方法、装置、设备和介质,涉及计算机技术领域中的区块链技术。其中方法包括:获取目标实体的鉴权请求;其中鉴权请求中包括至少一个区块链账户的签名信息;从区块链中查询目标实体关联的鉴权规则;确定至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,以得到目标实体的鉴权结果。本申请实施例通过提供一种支持多种权限规则模型的具有高灵活性和高安全性的鉴权方案,以实现为不同实体设置不同的鉴权规则,从而增加了鉴权方式的多样性,并且不同权限规则能够支持自定义,提高了灵活性和扩展性。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及区块链技术,尤其涉及一种基于区块链的鉴权方法、装置、设备和介质。
背景技术
区块链支持账户创建,以通过创建的区块链账户,实现转账交易事务等操作。目前创建用户账户时,通常依据密钥生成算法,例如椭圆加密算法,生成区块链账户的私钥和公钥,然后利用哈希算法对公钥进行处理,生成区块链账户地址信息。当用户执行链上事务时,通过利用区块链账户的私钥对事物内容进行签名,以使区块链基于该账户的公钥对签名进行验签,即可证明事务内容是否为用户授权执行的。然而,上述鉴权方式较单一,灵活性、扩展性较差。
发明内容
本申请实施例提出一种基于区块链的鉴权方法、装置、设备和介质,通过提供一种支持多种权限规则模型的具有高灵活性和高安全性的鉴权方案,以实现为不同实体设置不同的鉴权规则,从而增加了鉴权方式的多样性,并且不同权限规则能够支持自定义,提高了灵活性和扩展性。
第一方面,本申请实施例提供了一种基于区块链的鉴权方法,该方法包括:
获取目标实体的鉴权请求;其中所述鉴权请求中包括至少一个区块链账户的签名信息;
从区块链中查询所述目标实体关联的鉴权规则;
确定所述至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,以得到目标实体的鉴权结果。
本申请实施例通过基于目标实体的鉴权请求中包括的至少一个区块链账户的签名信息,从区块链中查询目标实体关联的鉴权规则,然后确定至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,得到目标实体的鉴权结果。由此,通过提供一种支持多种权限规则模型的具有高灵活性和高安全性的鉴权方案,以实现为不同实体设置不同的鉴权规则,从而增加了鉴权方式的多样性,并且不同权限规则能够支持自定义,提高了灵活性和扩展性。
另外,根据本申请上述实施例的基于区块链的鉴权方法,还可以具有如下附加的技术特征:
可选的,从区块链中查询目标实体关联的鉴权规则,包括:
从区块链中查询目标实体的鉴权规则;其中,所述目标实体的鉴权规则包括目标实体的权限模型,以及包括目标实体的至少两个子实体的权限规则信息。
可选的,从区块链中查询目标实体关联的鉴权规则还包括:
若所述权限规则信息中嵌套有其他实体的鉴权规则,还从区块链中查询其他实体的鉴权规则;其中,所述其他实体的鉴权规则包括其他实体的权限模型,以及包括其他实体的至少两个子实体的权限规则信息。
上述申请中的一个实施例具有如下优点或有益效果:通过将不同权限规则嵌套在一个实体的鉴权规则中,实现权限规则的嵌套,具有高安全性。
可选的,确定所述至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,以得到目标实体的鉴权结果,包括:
以所述目标实体为根节点,以实体间父子关系构建子节点,得到鉴权树;
基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果。
可选的,基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果,包括:
根据所述至少一个区块链账户的签名信息,对所述鉴权树中的叶子节点进行鉴权;
根据所述叶子节点的鉴权结果,以及实体的权限模型和权限规则信息,对其他节点进行鉴权;
将根节点的鉴权结果作为所述目标实体的鉴权结果。
上述申请中的一个实施例具有如下优点或有益效果:从区块链中获取基于目标实体的鉴权规则创建一鉴权树,并从鉴权树的叶子节点从下至上对目标实体进行鉴权操作以得到鉴权结果,实现将权限规则完全链上存储,以实现去中心化鉴权,使得鉴权性能和安全性更好。
可选的,所述方法还包括:
在创建任一实体时,获取该实体的鉴权规则;其中该实体的鉴权规则包括该实体的权限模型,以及包括至少该实体两个子实体的权限规则信息;
将该实体的鉴权规则写入区块链中。
可选的,获取该实体的权限模型,包括:
从候选权限模型中选择该实体的权限模型;其中,所述候选权限模型通过插件形式部署到区块链中。
上述申请中的一个实施例具有如下优点或有益效果:在创建实体的同时,支持用户根据需要自定义对该实体定制个性化鉴权规则,并将鉴权规则写入区块链中,为后续对该实体进行鉴权时从区块链中获取对应鉴权规则并进行鉴权提供了条件。
第二方面,本申请实施例还公开了一种基于区块链的鉴权装置,包括:
获取模块,用于获取目标实体的鉴权请求;其中所述鉴权请求中包括至少一个区块链账户的签名信息;
查询模块,用于从区块链中查询所述目标实体关联的鉴权规则;
确定模块,用于确定所述至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,以得到目标实体的鉴权结果。
第三方面,本申请实施例还公开了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任一实施例所述的基于区块链的鉴权方法。
第四方面,本申请实施例还公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任一实施例所述的基于区块链的鉴权方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的一种基于区块链的鉴权方法的流程示意图;
图2是本申请实施例提供的另一种基于区块链的鉴权方法的流程示意图;
图3是本申请实施例提供的鉴权树为PERM-Tree并对目标实体进行鉴权的示意图;
图4是本申请实施例提供的一种基于区块链的鉴权装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例针对相关技术中,对区块链账户发起的事务请求进行鉴权时,存在的鉴权方式单一,灵活性、扩展性较差的问题,提出了一种基于区块链的鉴权方法、装置、设备和介质。
本申请实施例,通过基于目标实体的鉴权请求中包括的至少一个区块链账户的签名信息,从区块链中查询目标实体关联的鉴权规则,然后确定至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,得到目标实体的鉴权结果。由此,通过提供一种支持多种权限规则模型的具有高灵活性和高安全性的鉴权方案,以实现为不同实体设置不同的鉴权规则,从而增加了鉴权方式的多样性,并且不同权限规则能够支持自定义,提高了灵活性和扩展性。
为了清楚说明本申请实施例提供的基于区块链的鉴权方法中,对目标实体基于与其关联的鉴权规则进行鉴权的过程,下面首先对本申请实施例中在区块链中创建实体以及为该实体定制对应鉴权规则进行说明。
图1是本申请实施例提供的一种基于区块链的鉴权方法的流程示意图,本申请实施例提供的基于区块链的鉴权方法,可由基于区块链的鉴权装置来执行,该装置可以由软件和/硬件实现,可集成于电子设备的内部,该电子设备优选是区块链。该方法包括如下步骤:
S101,在创建任一实体时,获取该实体的鉴权规则;其中该实体的鉴权规则包括该实体的权限模型,以及包括该实体的至少两个子实体的权限规则信息。
在本实施例中,该实体是指对链上数据元素具有读写操作,且关联有至少两个密钥的对象,例如合约账户,合约接口等,此处不做具体限定。子实体可以为关联有一个密钥的对象,也可以为关联有至少两个密钥的对象。
其中,合约账户指为智能合约账户模型中的智能合约所分配的合约级账户,由需要部署智能合约的一个或多个用户账户,调用基础智能合约来创建,用于对智能合约进行部署和/或管理。该实体的鉴权规则包括该实体的权限模型和权限规则信息,权限规则信息为包括至少两个子实体的规则信息。
示例性的,本实施例可首先基于语言编写智能合约,以通过智能合约得到合约账户、合约接口等实体。然后,再获取创建的实体的鉴权规则。其中编写智能合约的语言可为Solidity、Serpent等。
具体的,本实施例获取创建实体的鉴权规则,包括获取该实体的权限模型,以及包括该实体的至少两个子实体的权限规则信息。
其中,获取该实体的权限模型包括:从候选权限模型中选择该实体的权限模型;其中,所述候选权限模型通过插件形式部署到区块链中。
本实施例中候选权限模型可以是基于签名授权的逻辑运算规则,例如:阈值模型、账户地址(Account Key,简称AK)集模型、CA(Certification Authority,简称CA)证书模型及社区治理模型等。
其中,阈值模型,是指每个实体持有一定权重的权限,当鉴权实体的总权重达到预设阈值时,则表示鉴权通过。AK集模型,是指通过集合中的AK对之间的与或非等逻辑表达式,决定是否鉴权通过。CA模型,是指用CA的公钥对待验证书上的签名进行验证,一旦验证通过,该证书就被认为是有效的。
具体实现时,可根据需要从区块链中部署的候选权限模型中选取一个权限模型,作为该实体的权限模型。其中,在获取该实体的权限模型的同时,还为获取的权限模型设定具体的鉴权规则。
需要说明的是,本实施例通过插件形式将候选权限模型部署到区块链中之前,首先通过部署候选权限模型的区块链作为发起方向区块链系统发起投票提案事务,以使区块链系统中各区块链对该提案事务进行投票,使得部署候选权限模型的区块链可依据投票结果执行相应操作。若投票通过则响应候选权限模型部署操作,以将候选权限模通过插件形式进行部署。若投票不通过则不响应候选权项模型部署操作。
进一步的,获取包括该实体的至少两个子实体的权限规则信息,可通过如下方式实现:第一种方式,可从区块链上查询获取包括该实体的至少两个子实体预先设置的权限规则信息;第二种方式,根据需要从候选权限规则中获取对应的权限规则,为包括该实体的至少两个子实体进行权限规则信息的定制化设置,此处对其不做具体限定。
S102,将该实体的鉴权规则写入区块链中。
示例性的,获取创建的任一实体的鉴权规则之后,将该实体的鉴权规则写入区块链中之前,向区块链系统发送投票提案事务,以使区块链系统中各区块链对提案事务进行投票,并根据投票结果,若投票通过则响应鉴权规则写入区块链中的操作。
其中,将该实体的鉴权规则写入区块链中时,可将该实体与其对应的鉴权规则按照对应关系进行写入,或者也可以将实体作为鉴权规则的标识信息进行写入,此处不做限定。
为了便于表述,可以将关联有至少两个密钥的对象称为第一类实体,关联有唯一密钥的对象称为第二类实体。需要说明的是,第一类实体的鉴权规则在区块链中存储,而第二类实体的鉴权规则无需存储到区块链中,只需在区块链客户端存储即可。
本申请实施例提供的基于区块链的鉴权方法,基于实际需要可在区块链上创建任一实体,并为创建的实体获取鉴权规则,然后将获取的鉴权规则写入区块链中,以为后续对该实体发送的鉴权请求进行鉴权时,可从区块链中获取对应鉴权规则并进行鉴权提供条件。
通过上述介绍可知,本申请实施例在创建任一实体时,可根据实际需要为该实体定制鉴权规则,并将鉴权规则写入至区块链中,以为后续利用该鉴权规则对实体进行鉴权提供条件。基于上述实施例,下面对本申请实施例提出的基于区块链的鉴权方法中对目标实体(第一类实体)进行鉴权的过程进行详细说明。
如图2所示,该方法可以包括:
S201,获取目标实体的鉴权请求;其中所述鉴权请求中包括至少一个区块链账户的签名信息。
在本实施例中,目标实体可以是合约账户、合约接口等。本实施例中合约账户可以是多个用户共同创建的一个合约账户,也可以是一个用户创建的一个合约账户,此处不做限定。
其中,个人通过创建合约账户可以防止密钥丢失,导致的资产丢失。例如,用户A创建一合约账户,并设置鉴权规则时三把密钥,任意两把密钥就可鉴权通过,那么当其中一把密钥丢失之后,用户A仍可通过剩余两把密钥鉴权通过,从而不会导致用户A的资产丢失,保证了用户资产安全。
可选的,用户需要执行资金交易等事务时,通过向区块链发送事务请求,此时区块链可基于接收到事务请求对该事务请求所涉及的目标实体进行鉴权操作,以确定该事务请求是否被授权。
具体实现时,可对获取到的目标实体的鉴权请求进行解析,获取该请求中包括的至少一个区块链账户的签名信息。在本实施例中,签名信息可为利用区块链账户的私钥进行加密后的事务内容。
S202,从区块链中查询所述目标实体关联的鉴权规则。
由于获取的目标实体具有标识信息,因此本实施例可基于目标实体的标识信息从区块链中查询与该目标实体关联的鉴权规则。其中,目标实体的标识信息是指能够唯一识别目标实体身份的信息,例如实体编号或者实体名称等。
可选的,基于上述实施例可知,当创建实体时,可将该实体的鉴权规则写入区块链中,为此本实施例从区块链中查询目标实体关联的鉴权规则可包括:从区块链中查询目标实体的鉴权规则;其中,所述目标实体的鉴权规则包括目标实体的权限模型,以及包括目标实体的至少两个子实体的权限规则信息。具体实现过程可参见上述实施例,此处对其不做过多赘述。
在实际应用过程中,为了提高数据信息的安全性,在获取创建的实体的鉴权规则时还将其他实体的鉴权规则嵌套在自身对应的鉴权规则中,以构成鉴权规则的嵌套规则。对此,本实施例从区块链中查询目标实体关联的鉴权规则还包括:若所述权限规则信息中嵌套有其他实体的鉴权规则,还从区块链中查询其他实体的鉴权规则;其中,所述其他实体的鉴权规则包括其他实体的权限模型,以及包括其他实体的至少两个子实体的权限规则信息。
S203,确定所述至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,以得到目标实体的鉴权结果。
示例性的,从区块链中查询到目标实体关联的鉴权规则之后,本实施例可以目标实体为根节点,以鉴权规则中包括的至少两个子实体和/或其他实体,与目标实体间的父子关系构建子节点,得到鉴权树。然后基于鉴权规则,确定至少一个区块链账户的签名信息是否符合鉴权规则,以得到目标实体的鉴权结果。
其中,鉴权树构建过程是以目标实体为根节点,子实体为子节点从上至下构建鉴权树。
在得到鉴权树之后,按层遍历鉴权树,从叶子节点开始由下至上进行鉴权直至达到节点为根节点为止,得到目标实体的鉴权结果。
其中,叶子节点可直接通过输入信息(例如区块链账户的签名信息)判定实体,例如一个AK地址的签名,或者一个CA整数的签名。
中间节点则不能直接通过输入信息判定实体,需要获取实体在链上存储的权限规则进行判定。例如,合约账户或合约接口等。
也就是说,本实施例基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果,包括:
根据所述至少一个区块链账户的签名信息,对所述鉴权树中的叶子节点进行鉴权;
根据所述叶子节点的鉴权结果,以及实体的权限模型和权限规则信息,对其他节点进行鉴权;
将根节点的鉴权结果作为所述目标实体的鉴权结果。
下面通过一个示例对基于鉴权树确定至少一个区块链账户的签名信息是否符合鉴权规则,以得到目标实体的鉴权结果进行说明。
如图3所示,鉴权树为可扩展规则权限树模型(Permission on Extensible RuleModel Tree,简称PERM-Tree),其中目标实体为合约接口A,且该合约接口A的鉴权规则包括:阈值模型,以及AK1和AK2的权限规则信息,且合约接口A的鉴权规则中嵌套有合约账户B的鉴权规则:AK集群模型,以及AK3和AK4的权限规则信息。图3中判定合约接口A鉴权通过阈值为权重和值大于或者等于0.6,AK1的权限规则为权重为0.3,AK2的权限规则为权重为0.2,合约账户B的权限规则为权重为0.5,其中判定合约账户B鉴权通过的条件为:当AK3或AK4中任一验签通过即确定鉴权通过,其中AK3和AK4的权限规则为AK3||AK4。
基于图3的鉴权树对合约接口A进行鉴权可如下:首先判断AK3和AK4各自对应的区块链用户的签名信息是否符合鉴权规则,若AK3对应的区块链用户的签名信息符合鉴权规则,则确定合约账户B鉴权通过,并判断AK1和AK2分别对应的区块链用户的签名信息哪一个符合对应鉴权规则,若AK1和AK2对应的区块链用户的签名信息都符合各自对应的鉴权规则,则将合约账户B的权重0.5、AK1的权重0.3以及AK2的权重0.2相加,得到总权重为1大于合约接口A的鉴权通过阈值,此时即可确定合约接口A的鉴权结果为通过。
本申请实施例通过基于目标实体的鉴权请求中包括的至少一个区块链账户的签名信息,从区块链中查询目标实体关联的鉴权规则,然后确定至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,得到目标实体的鉴权结果。由此,通过提供一种支持多种权限规则模型的具有高灵活性和高安全性的鉴权方案,以实现为不同实体设置不同的鉴权规则,从而增加了鉴权方式的多样性,并且不同权限规则能够支持自定义,提高了灵活性和扩展性。
在上述实施例的基础上,S203之后还包括:接收目标实体的鉴权规则更新请求,并基于鉴权规则更新请求对目标实体的鉴权规则进行更新。
其中,对目标实体的鉴权规则进行更新可以是相同权限模型下的不同配置,也可以更新为与当前不同的权限模型等,此处不做限定。
可选的,基于鉴权规则更新请求,对目标实体的鉴权规则进行更新之前,首先按照现有鉴权规则,对鉴权规则更新请求对应目标实体是否具有写权限进行验证,若验证为有时,则允许写入新的权限规则,否则不允许写入新的权限规则。
通过在对目标实体的鉴权规则进行更新之前,验证目标实体是否具有写权限,若有则允许对目标实体的鉴权规则进行更新,从而可确保对目标实体的鉴权规则不被恶意篡改,提高安全性。
图4是本申请实施例提供的一种基于区块链的鉴权装置的结构示意图。该基于区块链的鉴权装置可以采用软件和/或硬件的方式实现,并可集成在电子设备上。该电子设备优选是区块链。
如图4所示,本实施例公开的一种基于区块链的鉴权装置400可以包括获取模块410、查询模块420和确定模块430,其中:
获取模块410,用于获取目标实体的鉴权请求;其中所述鉴权请求中包括至少一个区块链账户的签名信息;
查询模块420,用于从区块链中查询所述目标实体关联的鉴权规则;
确定模块430,用于确定所述至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,以得到目标实体的鉴权结果。
作为本申请的一种可选的实现形式,查询模块420,具体用于:
从区块链中查询目标实体的鉴权规则;其中,所述目标实体的鉴权规则包括目标实体的权限模型,以及包括目标实体的至少两个子实体的权限规则信息。
作为本申请的一种可选的实现形式,查询模块420,还用于:
若所述权限规则信息中嵌套有其他实体的鉴权规则,还从区块链中查询其他实体的鉴权规则;其中,所述其他实体的鉴权规则包括其他实体的权限模型,以及包括其他实体的至少两个子实体的权限规则信息。
作为本申请的一种可选的实现形式,确定模块430,具体用于:
以所述目标实体为根节点,以实体间父子关系构建子节点,得到鉴权树;
基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果。
作为本申请的一种可选的实现形式,确定模块430还用于:
基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果,包括:
根据所述至少一个区块链账户的签名信息,对所述鉴权树中的叶子节点进行鉴权;
根据所述叶子节点的鉴权结果,以及实体的权限模型和权限规则信息,对其他节点进行鉴权;
将根节点的鉴权结果作为所述目标实体的鉴权结果。
作为本申请的一种可选的实现形式,所述基于区块链的鉴权装置400还包括:第二获取模块和写入模块,其中:
第二获取模块,用于在创建任一实体时,获取该实体的鉴权规则;其中该实体的鉴权规则包括该实体的权限模型,以及包括该实体的至少两个子实体的权限规则信息;
写入模块,用于将该实体的鉴权规则写入区块链中。
作为本申请的一种可选的实现形式,第二获取模块,具体用于:
从候选权限模型中选择该实体的权限模型;其中,所述候选权限模型通过插件形式部署到区块链中。
需要说明的是,前述对基于区块链的鉴权方法实施例的解释说明也适用于该实施例的基于区块链的鉴权装置,其实现原理类似,此处不再赘述。
本实施例提供的基于区块链的鉴权装置,通过基于目标实体的鉴权请求中包括的至少一个区块链账户的签名信息,从区块链中查询目标实体关联的鉴权规则,然后确定至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,得到目标实体的鉴权结果。由此,通过提供一种支持多种权限规则模型的具有高灵活性和高安全性的鉴权方案,以实现为不同实体设置不同的鉴权规则,从而增加了鉴权方式的多样性,并且不同权限规则能够支持自定义,提高了灵活性和扩展性。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是根据本申请实施例的基于区块链的鉴权方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的基于区块链的鉴权方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的基于区块链的鉴权方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的基于区块链的鉴权方法对应的程序指令/模块(例如,附图4所示的获取模块410、查询模块420和确定模块430)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于区块链的鉴权方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于区块链的鉴权方法的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至基于区块链的鉴权方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
基于区块链的鉴权方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与基于区块链的鉴权方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过基于目标实体的鉴权请求中包括的至少一个区块链账户的签名信息,从区块链中查询目标实体关联的鉴权规则,然后确定至少一个区块链账户的签名信息是否符合目标实体关联的鉴权规则,得到目标实体的鉴权结果。由此,通过提供一种支持多种权限规则模型的具有高灵活性和高安全性的鉴权方案,以实现为不同实体设置不同的鉴权规则,从而增加了鉴权方式的多样性,并且不同权限规则能够支持自定义,提高了灵活性和扩展性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (7)
1.一种基于区块链的鉴权方法,其特征在于,包括:
在创建任一实体时,获取该实体的鉴权规则;其中,该实体的鉴权规则包括实体的权限模型,以及包括该实体的至少两个子实体的权限规则信息;
向区块链系统发送投票提案事务,使区块链系统中各区块链节点对提案事务进行投票,若投票通过,则将实体的鉴权规则写入区块链;
获取目标实体的鉴权请求;其中所述鉴权请求中包括至少一个区块链账户的签名信息;
从区块链中查询目标实体关联的鉴权规则;
以所述目标实体为根节点,以实体间父子关系构建子节点,得到鉴权树;
基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果;
其中,在创建任一实体时,获取该实体的鉴权规则包括:
从区块链中部署的候选权限模型中选取一个权限模型,作为所述实体的权限模型,并为获取的权限模型设定具体的鉴权规则;
从候选权限规则中获取对应的权限规则,为所述包括实体的至少两个子实体进行权限规则信息的定制化设置。
2.根据权利要求1所述的方法,其特征在于,从区块链中查询目标实体关联的鉴权规则还包括:若所述权限规则信息中嵌套有其他实体的鉴权规则,还从区块链中查询其他实体的鉴权规则;其中,所述其他实体的鉴权规则包括其他实体的权限模型,以及包括其他实体的至少两个子实体的权限规则信息。
3.根据权利要求1所述的方法,其特征在于,基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果,包括:
根据所述至少一个区块链账户的签名信息,对所述鉴权树中的叶子节点进行鉴权;
根据所述叶子节点的鉴权结果,以及实体的权限模型和权限规则信息,对其他节点进行鉴权;
将根节点的鉴权结果作为所述目标实体的鉴权结果。
4.根据权利要求1所述的方法,其特征在于,所述候选权限模型通过插件形式部署到区块链中。
5.一种基于区块链的鉴权装置,其特征在于,包括:
第二获取模块,用于在创建任一实体时,获取该实体的鉴权规则;其中,该实体的鉴权规则包括实体的权限模型,以及包括该实体的至少两个子实体的权限规则信息;
写入模块,用于向区块链系统发送投票提案事务,使区块链系统中各区块链节点对提案事务进行投票,若投票通过,则将实体的鉴权规则写入区块链;
获取模块,用于获取目标实体的鉴权请求;其中所述鉴权请求中包括至少一个区块链账户的签名信息;
查询模块,用于从区块链中查询目标实体关联的鉴权规则;
确定模块,用于以所述目标实体为根节点,以实体间父子关系构建子节点,得到鉴权树;
基于所述鉴权树,确定所述至少一个区块链账户的签名信息是否符合所述鉴权规则,以得到目标实体的鉴权结果;
其中,在创建任一实体时,获取该实体的鉴权规则包括:
从区块链中部署的候选权限模型中选取一个权限模型,作为所述实体的权限模型,并为获取的权限模型设定具体的鉴权规则;
从候选权限规则中获取对应的权限规则,为所述包括实体的至少两个子实体进行权限规则信息的定制化设置。
6.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的基于区块链的鉴权方法。
7.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的基于区块链的鉴权方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911046638.8A CN110765210B (zh) | 2019-10-30 | 2019-10-30 | 基于区块链的鉴权方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911046638.8A CN110765210B (zh) | 2019-10-30 | 2019-10-30 | 基于区块链的鉴权方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110765210A CN110765210A (zh) | 2020-02-07 |
CN110765210B true CN110765210B (zh) | 2022-09-27 |
Family
ID=69334664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911046638.8A Active CN110765210B (zh) | 2019-10-30 | 2019-10-30 | 基于区块链的鉴权方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765210B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114186205A (zh) * | 2021-11-09 | 2022-03-15 | 海南火链科技有限公司 | 基于区块链的签名鉴别方法、装置及计算机设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679045B (zh) * | 2016-08-01 | 2021-08-31 | 华为技术有限公司 | 版权授权管理方法及系统 |
CN109583887B (zh) * | 2018-10-26 | 2024-04-05 | 创新先进技术有限公司 | 一种区块链的交易方法和装置 |
CN109522735B (zh) * | 2018-11-29 | 2021-06-22 | 上海信联信息发展股份有限公司 | 一种基于智能合约的数据权限验证方法及装置 |
CN110096857B (zh) * | 2019-05-07 | 2021-03-19 | 百度在线网络技术(北京)有限公司 | 区块链系统的权限管理方法、装置、设备和介质 |
-
2019
- 2019-10-30 CN CN201911046638.8A patent/CN110765210B/zh active Active
Non-Patent Citations (2)
Title |
---|
An Identity Management System Based on Blockchain;Yuan Liu 等;《 2017 15th Annual Conference on Privacy, Security and Trust 》;20181001;第44-53页 * |
基于DSL和区块链技术的可编程智能合约设计与实现;朱忠宁;《中国优秀硕士学位论文全文数据库》;20180615;第I138-121页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110765210A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110958223B (zh) | 基于区块链的委托授权方法、装置、设备和介质 | |
KR20210049721A (ko) | 블록체인에 기반한 데이터 처리 방법, 장치, 기기, 저장매체 및 프로그램 | |
CN104823207B (zh) | 通过与随机成分组合来保护用于移动支付应用程序的个人识别号码 | |
US10749679B2 (en) | Authentication and authorization using tokens with action identification | |
JP7069286B2 (ja) | プライバシーデータの処理方法、プライバシーデータの処理装置、機器及び媒体 | |
JP2022523595A (ja) | 鍵を分割及び復元するための方法、プログラム製品、記憶媒体、並びにシステム | |
CN111666578A (zh) | 数据管理的方法、装置、电子设备及计算机可读存储介质 | |
US10432622B2 (en) | Securing biometric data through template distribution | |
WO2015116998A2 (en) | Electronic transfer and obligation enforcement system | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
US10397259B2 (en) | Cyber security event detection | |
CN113271211A (zh) | 一种数字身份验证系统、方法、电子设备及存储介质 | |
CN111737365B (zh) | 存证处理方法、装置、设备和存储介质 | |
CN107908979B (zh) | 用于在区块链中进行配置和背书的方法和电子设备 | |
CN110866740B (zh) | 一种区块链事务请求的处理方法、装置、电子设备和介质 | |
CN110795763B (zh) | 电子证照处理方法、查询方法、装置、设备、平台和介质 | |
CN111310204A (zh) | 数据处理的方法及装置 | |
CN111741015A (zh) | 区块链网络中操作处理方法、装置、设备和介质 | |
CN111935318A (zh) | 跨链数据验证方法、装置、设备及介质 | |
US11640450B2 (en) | Authentication using features extracted based on cursor locations | |
CN111741012B (zh) | 授权签名生成方法、节点管理方法、装置、设备和介质 | |
CN113935070B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
CN111352706A (zh) | 一种数据访问方法、装置、设备及存储介质 | |
CN111339114A (zh) | 一种数据访问方法、装置、设备及存储介质 | |
CN111339193A (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 |