CN117879829A - 一种权限控制方法及设备 - Google Patents
一种权限控制方法及设备 Download PDFInfo
- Publication number
- CN117879829A CN117879829A CN202311708251.0A CN202311708251A CN117879829A CN 117879829 A CN117879829 A CN 117879829A CN 202311708251 A CN202311708251 A CN 202311708251A CN 117879829 A CN117879829 A CN 117879829A
- Authority
- CN
- China
- Prior art keywords
- certificate
- digital certificate
- address
- contract
- participant
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012795 verification Methods 0.000 claims abstract description 61
- 230000006870 function Effects 0.000 claims description 79
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008520 organization Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 10
- 239000003607 modifier Substances 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000446 fuel Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000010257 thawing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种权限控制方法及设备,涉及区块链技术领域,该方法包括:参与者对数字证书的颁发地址进行本地校验后,在区块链系统中部署相应的智能合约,然后通过智能合约对数字证书进行解析和校验,并在校验通过时将数字证书保存在智能合约中,无需再引入中心化的治理者在链下完成数字证书的解析和校验,这样大大增强了数字证书的安全性,避免了单点故障的问题。其次,智能合约一旦部署在区块链上,其代码和状态是不可篡改的,这意味着智能合约执行的结果无法被恶意修改,确保了智能合约的可信度和安全性。另外,通过智能合约调用业务合约中的目标函数,并以智能合约为载体,对参与者进行权限控制,使得权限控制效率更高,兼容性更好。
Description
技术领域
本申请实施例涉及区块链技术领域,尤其涉及一种权限控制方法及设备。
背景技术
在传统的互联网应用领域,通常采用基于PKI/CA的基础设施来实现账户和权限管理。即,网络节点向权威认证中心申请数字证书,权威认证中心在进行身份认证后向该网络节点颁发数字证书。同理,已获得数字证书的网络节点,也可以颁发下一级的数字证书,依次类推,以此获得证书链进行权限管理。
随着区块链中智能合约的业务日益丰富,越来越多的智能合约需要引入权限控制。作为经过成熟验证的PKI/CA体系,在区块链中引入并使用是非常自然的选择。在现实的业务中,区块链的参与者包括了治理者、多个机构、每个机构下级的子机构。治理者和每个机构都向CA申请数字证书,同时每个机构都给下属的子机构颁发了数字证书。治理者作为中间代理人,将各个机构以及机构下的子机构的数字证书进行校验后,复刻到区块链上,从而实现在区块链上通过数字证书进行权限控制。
在上述方案中,数字证书的解析和校验是由中心化的治理者在链下完成的,这意味着存在单一的控制点,可能存在单点故障的问题,同时还存在治理者可能作恶的问题。
发明内容
本申请实施例提供了一种权限控制方法及设备,用于提高数字证书的安全性以及权限控制的效率。
一方面,本申请实施例提供了一种权限控制方法,应用于多级机构中的每个参与者,包括:
获取所述参与者的数字证书;
基于所述数字证书的哈希值,以及所述数字证书中的签名信息和类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址进行校验;
在校验通过时在区块链系统上部署所述参与者对应的智能合约,并将所述数字证书、在所述证书管理合约注册的所述数字证书的参考颁发地址和所述类型参数上传至所述智能合约,以使所述智能合约基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备访问所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
本申请实施例中,参与者对数字证书的颁发地址进行本地校验后,在区块链系统中部署智能合约,并通过智能合约对数字证书进行校验,并在校验通过时将数字证书保存在智能合约中,无需再引入任何中间人,大大增强了数字证书的安全性,避免了单点故障的问题。其次,智能合约一旦部署在区块链上,其代码和状态是不可篡改的,这意味着智能合约执行的结果无法被恶意修改,确保了智能合约的可信度和安全性。另外,通过智能合约调用业务合约中的目标函数,并以智能合约为载体,对参与者进行权限控制,使得权限控制效率更高,兼容性更好。
一方面,本申请实施例提供了一种权限控制方法,应用于区块链系统,包括:
将参与者上传的数字证书、所述数字证书中的类型参数、所述数字证书的参考颁发地址传入智能合约;所述智能合约是所述参与者基于所述数字证书的哈希值、所述数字证书中的签名信息和所述类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址校验通过时部署的,所述参考颁发地址注册在证书管理合约中;
通过所述智能合约,基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
响应于所述参与者的调用操作,通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备调用所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
一方面,本申请实施例提供了一种权限控制装置,应用于多级机构中的每个参与者,包括:
获取模块,用于获取所述参与者的数字证书;
第一校验模块,用于基于所述数字证书的哈希值,以及所述数字证书中的签名信息和类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址进行校验;
发送模块,用于在校验通过时在区块链系统上部署所述参与者对应的智能合约,并将所述数字证书、在所述证书管理合约注册的所述数字证书的参考颁发地址和所述类型参数上传至所述智能合约,以使所述智能合约基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
调用模块,用于通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备访问所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
可选地,所述第一校验模块还用于:
对所述参与者的公钥进行哈希计算,获得目标哈希值;
从所述目标哈希值中提取所述参与者的账户地址。
可选地,若所述参与者为一级机构,则所述参考颁发地址为所述参与者的账户地址;
若所述参与者为非一级机构,则所述参考颁发地址为所述参与者的上一级机构的参与者的账户地址。
可选地,所述第一校验模块具体用于:
将所述类型参数设置为第一参考值,并基于所述数字证书的哈希值、所述数字证书中的签名信息和所述第一参考值,确实所述目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述目标颁发地址校验通过;
若所述目标颁发地址与所述参考颁发地址不一致,则将所述类型参数设置为第二参考值,并基于所述数字证书的哈希值、所述数字证书中的签名信息和所述第二参考值,确实所述目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述目标颁发地址校验通过。
可选地,所述调用模块还用于:
将所述证书管理合约的地址传入所述业务合约中;
针对所述业务合约中的各个业务函数,分别执行以下操作:
通过所述证书管理合约以及预设的权限控制规则,构建一个业务函数对应的权限管理器,所述权限控制规则与在所述证书管理合约中注册的智能合约关联;
将所述权限管理器添加至所述一个业务函数中。
可选地,所述第一校验模块还用于:
当所述数字证书和所述参与者的账户地址更新时,基于新证书的哈希值,以及所述新证书中的签名信息和类型参数,确定所述新证书的目标颁发地址,并对所述目标颁发地址进行校验;
所述发送模块还用于:
在校验通过时,将所述新证书、所述新证书的新参考颁发地址和所述类型参数上传至所述智能合约,以使所述智能合约基于所述新参考颁发地址和所述类型参数,对所述新证书进行校验,并在校验通过时将所述智能合约中的所述数字证书替换为所述新证书。
一方面,本申请实施例提供了一种权限控制装置,应用于区块链系统,包括:
接收模块,用于将参与者上传的数字证书、所述数字证书中的类型参数、所述数字证书的参考颁发地址传入智能合约;所述智能合约是所述参与者基于所述数字证书的哈希值、所述数字证书中的签名信息和所述类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址校验通过时部署的,所述参考颁发地址注册在证书管理合约中;
第二校验模块,用于通过所述智能合约,基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
处理模块,用于响应于所述参与者的调用操作,通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备调用所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
可选地,所述第二校验模块具体用于:
从所述数字证书中截取证书部分内容;
从所述证书部分内容中提取所述参与者的公钥,并基于所述公钥生成证书所有者地址;
若所述证书所有者地址与所述参与者的账户地址一致,则基于所述数字证书的哈希值、所述数字证书中的签名信息和所述类型参数,确定所述数字证书的目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述数字证书校验通过。
可选地,所述第二校验模块还用于:
所述从所述数字证书中截取证书部分内容之前,分别对所述数字证书的证书长度和证书格式进行校验,并在均校验通过时,确定所述证书部分内容在所述数字证书中的起始位置,以及所述证书部分内容的内容长度;
所述第二校验模块具体用于:
从所述起始位置开始,从所述数字证书中截取所述内容长度的证书部分内容。
可选地,所述第二校验模块具体用于:
在校验通过时,将所述数字证书、所述证书所有者地址、所述目标颁发地址、所述数字证书中的签名信息和所述类型参数保存在所述智能合约中。
一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权限控制方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述权限控制方法的步骤。
一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述权限控制方法的步骤。
本申请实施例中,参与者对数字证书的颁发地址进行本地校验后,在区块链系统中部署智能合约,并通过智能合约对数字证书进行校验,并在校验通过时将数字证书保存在智能合约中,无需再引入任何中间人,大大增强了数字证书的安全性,避免了单点故障的问题。其次,智能合约一旦部署在区块链上,其代码和状态是不可篡改的,这意味着智能合约执行的结果无法被恶意修改,确保了智能合约的可信度和安全性。另外,通过智能合约调用业务合约中的目标函数,并以智能合约为载体,对参与者进行权限控制,使得权限控制效率更高,兼容性更好。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种证书链的示意图;
图2为本申请实施例提供的一种系统架构的结构示意图;
图3为本申请实施例提供的一种权限控制方法的流程示意图;
图4为本申请实施例提供的一种截取证书部分内容方法的流程示意图;
图5为本申请实施例提供的一种权限控制装置的结构示意图;
图6为本申请实施例提供的一种权限控制装置的结构示意图;
图7为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
区块链:信息技术领域的一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成,由于账本是分布式存储的,而且区块是经过共识的,所以具有不可篡改、可追溯、共同维护等特征。按开放程度可以将区块链划分为:公共链、联盟链、私有链。
私钥和公钥:在非对称加密领域,对数据的加解密、签名都依赖于密钥对。在密钥对中,公开的密钥叫公钥,只有自己知道的叫私钥。非对称加密有许多体系,最著名的是RSA、DH、ECDSA,其中,ECDSA是区块链领域采纳的密钥体系,也称为椭圆曲线体系,该体系中,私钥是一个某范围内的整数,公钥则是曲线上的一个点。
曲线:在椭圆曲线体系中,密钥生成依赖于曲线参数,一条曲线中合法的密钥对,在另一条曲线的环境中,就是非法密钥。最经典的曲线之一就是secp256k1,为多种主流区块链采纳。
PKI/CA:PKI(Public Key Infrastructure,简称公钥基础设施)技术采用数字证书管理用户的公钥,通过CA(Certificate Authority,简称电子认证服务)认证中心对用户的身份信息进行验证,将用户的公钥与用户的实体信息进行绑定,在互联网上认证用户的信息。
数字证书:也称公开密钥证书,是指用于电子信息活动中电子文件行为主体的验证和证明,并可实现电子文件保密性和完整性的电子数据。数字证书是一个经证书认证中心发行的文件。
数字签名:Digital Signature,又称公钥数字签名、电子签章,是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
多级证书颁发:证书可进行多级颁发,可选择上级证书并请求颁发,生成证书链,使用方便,操作便捷。举例来书,参见图1,为本申请实施例提供的一种证书链的示意图,包括:根证书、二级证书和三级证书,其中,每级证书包括:所有者信息、颁发者信息、证书签名,其中,根证书由电子认证服务颁发,二级证书由根证书所在机构颁发,三级证书由二级证书所在机构颁发。
EOA:Externally Owned Account,是区块链中常见的账户类型之一,与智能合约账户(Contract Account)相对应。EOA通过私钥控制和直接拥有资产的特性,为用户提供了更直接、自主和个人化的账户管理方式。它是由私钥控制的账户,由个人或实体直接拥有和管理。EOA可以用于发送交易、部署智能合约、接收和持有资产等操作。
AA合约,Account Abstraction,是一种智能合约。AA合约是区块链上的一种特殊类型的智能合约,AA账户可以包含智能合约代码,这些代码定义了账户的行为和功能。AA账户的代码可以被其他合约调用,从而实现更复杂的逻辑和交互。AA合约提供了一种可靠、透明、安全和自主的方式来实现复杂的业务逻辑和交互。AA合约具有以下特点:
独立的外部所有权:与外部账户(Externally Owned Account,EOA)不同,AA账户没有与之关联的外部所有者私钥。这意味着AA账户的操作和状态更新是通过执行智能合约代码来实现的,而不是由外部私钥的签名控制。这增加了账户的灵活性和安全性。可编程性:AA账户可以包含智能合约代码,这些代码定义了账户的行为和功能。通过编写智能合约代码,可以实现更复杂的逻辑和交互。AA账户的代码可以被其他合约调用,从而实现了更灵活的功能扩展。
燃料费用支付:AA账户的交易执行和消息调用都需要支付燃料费用(Gas),用于执行计算和状态更新。燃料费用是区块链网络中的一种资源,用于确保计算的正确性和防止滥用。AA账户的燃料费用由交易发起者提供。
参考图2,其为本申请实施例适用的一种系统架构图,该系统架构至少包括多级机构中的参与者201和区块链系统202。
每级机构包括至少一个参与者。参与者201可以是终端设备,比如智能手机、平板电脑、笔记本电脑、台式计算机、智能家电、智能语音交互设备、智能车载设备等,但并不局限于此。
参与者201也可以是独立的物理服务器,还可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
多级机构的数字证书就组成了一个证书链。证书链(Certificate Chain)是一系列数字证书的集合,用于验证某个特定数字证书的有效性和可信度。证书链由根证书、中间证书和终端证书组成,形成了一种层级结构。
区块链系统202包括多个区块链节点,每个区块链节点可以是终端设备,也可以是服务器,但并不局限于此。参与者201和区块链系统202可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
每个参与者201可以在区块链系统202中部署相应的智能合约(比如AA合约),然后通过智能合约对数字证书进行解析和校验之后,将数字证书保存在智能合约中。
基于图2所示的系统架构图,本申请实施例提供了一种权限控制方法的流程,如图3所示,该方法的流程由多级机构中的每个参与者与区块链系统交互执行,包括以下步骤:
步骤S301,参与者获取数字证书。
具体地,数字证书可以是DER格式表示的十六进制编码的比特值。
当参与者为一级机构的设备(即参与者为治理者)时,治理者先生成私钥Sk,然后通过私钥Sk颁发x509协议的数字证书(即根证书)。
当参与者为非一级机构的设备时,参与者先生成私钥Sk,然后向上一级机构的参与者申请数字证书,上一级机构的参与者相应颁发数字证书。
举例来说,当参与者为二级机构的设备时,向一级机构的参与者申请数字证书,一级机构的参与者为二级机构的参与者颁发数字证书。
当参与者为三级机构的设备时,向二级机构的参与者申请数字证书,二级机构的参与者为三级机构的参与者颁发数字证书。
在一些实施例中,由于区块链网络只支持Secp256k1的加密曲线的私钥,为了使链下生成的数字证书能够在链上进行校验,本申请以secp256k1曲线为加密曲线生成私钥Sk,从而保持数字证书和区块链加密算法的兼容。这样生成的私钥Sk,既可以用于签署数字证书,也可以用于在链上对数字证书进行验证,实现了私钥的有效复用,避免了管理多个私钥。采用相同的密钥生成算法生成用于颁发数字证书的私钥,以及区块链签名的私钥,打通了证书签名和区块链签名的算法,使得签名的校验能够互通,减少了额外的权限控制操作。
在一些实施例中,对参与者的公钥进行哈希计算,获得目标哈希值;然后从目标哈希值中提取参与者的账户地址。
具体地,参与者的账户地址可以是EOA地址。参与者先基于私钥Sk和椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)生成公钥Pk,常用的Ethereum曲线是椭圆曲线secp256k1。
采用Keccak-256哈希算法(也称为SHA-3的一个变种)对公钥Pk进行哈希计算,得到一个256位的目标哈希值。然后取目标哈希值的最后20个字节(160位),为参与者的账户地址。
在一些实施例中,治理者部署一个证书管理合约。该证书管理合约包括以下的核心函数:setRootPubKey:注册根证书的颁发地址;register:注册证书的颁发地址;
validateIssuer:检查证书的颁发者的账户地址是否已在合约内部注册,且状态正常。
traverseCert:检查证书的颁发者的账户地址是否已在合约内部注册,且状态正常。根据证书链的关系,逐层向上检查,直到顶部的根证书为止。
治理者部署完证书管理合约后,每级参与者调用证书管理合约中的register函数,输入数字证书的颁发者的账户地址,实现在证书管理合约中注册数字证书的参考颁发地址。
若参与者为一级机构,则参考颁发地址为参与者的账户地址。若参与者为非一级机构,则参考颁发地址为参与者的上一级机构的账户地址。
举例来说,当参与者为治理者时,参考颁发地址为治理者的EOA地址。
当参与者为二级机构的参与者时,参考颁发地址为治理者的EOA地址。
当参与者为三级机构的参与者时,参考颁发地址为二级机构的参与者的EOA地址。
步骤S302,参与者基于数字证书的哈希值,以及数字证书中的签名信息和类型参数,确定数字证书的目标颁发地址,并对目标颁发地址进行校验。
具体地,数字证书的最后一个部分,即为数字证书的颁发者的签名信息,该签名信息包括:参数r和参数s,每个参数的长度为32字节或33字节。具体采用以下方式从数字证书中截取参数r和参数s:
截取数字证书中倒数第33字节,判断是否为0x00。如果为0x00,则截取倒数第34字节,并判断倒数第34字节是否为0x21。如果为0x21,则参数s的长度为33字节,并截取数字证书中最末尾的33字节的内容作为参数s;如果不是0x21,该证书格式有误。
如果不是0x00,则截取倒数第33字节,并判断倒数第33字节是否为0x20,如果是,则参数s的长度为32字节,并截取最末尾的32字节作为参数s;如果不是0x20,该证书格式有误。
从数字证书中截取参数s后,在数字证书的保留内容中截取参数r,具体如下:
截取保留内容中倒数第33字节,判断是否为0x00。如果为0x00,则截取倒数第34字节,并判断倒数第34字节是否为0x21。如果为0x21,则参数r的长度为33字节,并截取保留内容中最末尾的33字节的内容作为参数r;如果不是0x21,该证书格式有误。
如果不是0x00,则截取倒数第33字节,并判断倒数第33字节是否为0x20,如果是,则参数r的长度为32字节,并截取保留内容中最末尾的32字节作为参数r;如果不是0x20,该证书格式有误。
在一些实施例中,类型参数可以是第一参考值或者第二参考值。将类型参数设置为第一参考值,并基于数字证书的哈希值、数字证书中的签名信息和第一参考值,确实目标颁发地址。
若目标颁发地址与参考颁发地址一致,则目标颁发地址校验通过;
若目标颁发地址与参考颁发地址不一致,则将类型参数设置为第二参考值,并基于数字证书的哈希值、数字证书中的签名信息和第二参考值,确实目标颁发地址;
若目标颁发地址与参考颁发地址一致,则目标颁发地址校验通过。若目标颁发地址与参考颁发地址不一致,则目标颁发地址校验不通过。
在实际应用中,通过solidity ecrecovery工具,基于参数r、参数s、类型参数v以及数字证书的哈希值,还原出数字证书的目标颁发地址。
举例来说,设定参与者为治理者,证书管理合约注册的数字证书的参考颁发地址为治理者的EOA地址,类型参数v的值为27或28。
当类型参数v=27时,还原出数字证书的目标颁发地址为addr1;当类型参数v=28时,还原出数字证书的目标颁发地址为addr2。
如果addr1和addr2中任意一个地址等于治理者的EOA地址,则根证书验证通过。如果addr1等于治理者的EOA地址,则可以确定类型参数v=27;如果addr2等于治理者的EOA地址,则可以确定类型参数v=28。
如果addr1和addr2与治理者的EOA地址都不相等,则判断数字证书有误。
通过在链下对数字证书进行验证,大大简化了链上的处理逻辑,在不影响对证书校验的前提下,节省了链上资源,加速了区块链处理的速度。
步骤S303,参与者在校验通过时在区块链系统上部署参与者对应的智能合约,并将数字证书、数字证书的参考颁发地址和类型参数上传至智能合约。
具体地,参与者在区块链系统中部署一个自身的智能合约(AA合约),同时将参与者的AA合约地址与参与者的账户地址之间的映射关系保存到区块链系统中。
AA合约包含以下核心的函数:
registerCert:注册AA合约对应的参与者的EOA地址和数字证书,该函数会触发对数字证书的校验。
freeze:冻结该AA合约的状态。
unfreeze:解冻该AA合约的状态。
proxyExecute:代理执行函数。可通过该函数代理调用任何其他业务合约的函数,从而实现该AA合约调用其他业务合约的效果。调用时产生的任何账户的状态的变化将会被存储在此AA合约中,而非参与者的EOA账户中。
isNormal:判断本AA合约是否正常。
getCertificate:返回注册的数字证书的状态。
参与者部署智能合约的过程中,调用registerCert函数,并传入数字证书、数字证书的参考颁发地址和类型参数,并使用参与者的私钥Sk进行签名。registerCert函数触发智能合约解析和校验数字证书。另外,还可以验证数字证书的颁发地址是否已在证书管理合约中注册等。
步骤S304,区块链系统通过智能合约,基于数字证书的参考颁发地址和类型参数,对数字证书进行校验。
在一些实施例中,分别对数字证书的证书长度和证书格式进行校验,并在均校验通过时,确定证书部分内容在数字证书中的起始位置,以及证书部分内容的内容长度。从起始位置开始,从数字证书中截取内容长度的证书部分内容。
具体地,检查数字证书的证书长度,若数字证书的证书长度超过80字节,则证书长度校验通过。检查数字证书的第一个字节是否为0x30,若是,则证书格式校验通过。
在确定证书长度和证书格式均校验通过时,通过以下步骤从数字证书中截取证书部分内容,参见图4:
步骤401,检查数字证书的第二个字节是否大于等于0x82,若是,则执行步骤402,否则结束。
步骤402,将第二个字节并减去0x80,获得长度len1。
比如,当第二个字节为0x82,则长度len1=0x82-0x80=2。
步骤403、根据长度len1,计算序号index2。
具体地,采用以下公式(1)计算序号index2:
index2=1+len1+2………(1)
举例来说,当长度len1=2时,index2=1+2+2=5。
步骤404、从数字证书中获取第index2个字节,并基于第index2个字节,确定长度len2。
具体地,采用以下公式(2)计算长度len2:
len2=cert[index2]-0x80………(2)
其中,cert[index2]表示数字证书中第index2个字节。
步骤405、判断长度len2是否大于等于2,若是,则执行步骤406,否则结束。
步骤406、基于长度len2,确定证书部分内容的内容长度。
举例来说,cert[5]=0x82,则len2=0x82-0x80=2,则证书部分内容的内容长度为2个字节。
步骤407、以cert[index2-1]作为起始位置,从数字证书中截取长度len2的字节数组(即证书部分内容S)。
在一些实施例中,从证书部分内容中提取参与者的公钥,并基于公钥生成证书所有者地址;若证书所有者地址与参与者的账户地址一致,则基于数字证书的哈希值、数字证书中的签名信息和类型参数,确定数字证书的目标颁发地址;若目标颁发地址与参考颁发地址一致,则数字证书校验通过。
具体地,当从证书部分内容中检索到子串hex"03420004"时,则截取证书部分内容中该子串后的64字节,作为参与者的公钥Pk。然后对公钥Pk进行哈希计算,获得哈希值。再取哈希值的后20个字节作为证书所有者地址。
将证书所有者地址与参与者的账户地址(在部署AA合约时,区块链系统中保存了AA合约地址与参与者的账户地址之间的映射关系)进行比对,如果不相等,则确定数字证书有误。如果相等,则计算数字证书的哈希值,以及从数字证书中解析出签名信息(参数r和参数s),具体解析方法在前文已有介绍,此处不再赘述。
基于数字证书的哈希值、参数r、参数s以及参与者传入智能合约的类型参数v,恢复出数字证书的目标颁发地址。
将目标颁发地址与参与者传入智能合约的参考颁发地址进行比对,如果不相等,则确定数字证书有误。如果相等,则数字证书校验通过。
步骤S305,区块链系统在校验通过时将数字证书保存在智能合约中。
具体地,将数字证书、证书所有者地址、目标颁发地址、数字证书中的签名信息和类型参数保存在智能合约中。初始化智能合约的状态为已注册,且状态正常。
步骤S306,参与者通过智能合约调用业务合约中的目标函数。
具体地,参与者在调用业务合约中的业务函数之前,需要针对每个业务函数配置权限管理器。当然,除了参与者之外角色也可以构建业务函数的权限管理器。
在一些实施例中,将证书管理合约的地址传入业务合约中;针对业务合约中的各个业务函数,分别执行以下操作:
通过证书管理合约以及预设的权限控制规则,构建一个业务函数对应的权限管理器,权限控制规则与在证书管理合约中注册的智能合约关联;然后将权限管理器添加至该业务函数中。
具体地,利用证书管理合约开放的API来构造业务合约中各个业务函数对应的权限管理器(Modifier)。权限管理器中定义业务函数的权限控制规则。权限控制规则可以根据实际业务需求进行设置。
举例来说:针对业务合约中的set函数,构造以下Modifier,Modifier中的权限控制规则:
校验调用set函数的AA合约的状态是否正常;或者,
校验调用set函数的AA合约对应的参与者是否位于某个机构下,且该参与者的AA合约是否正常;或者,
校验调用set函数的AA合约的参与者是否位于某几个机构下,且参与者的AA合约是否正常。
将权限管理器(Modifier)添加到业务合约的set函数中,即可获得set函数的权限控制效果。
本申请实施例中,通过在每个业务合约中设置用于权限控制的Modifier,帮助业务合约的权限控制粒度更细,也更为灵活。业务合约可以通过Modifier组合和定义更为个性化和灵活的权限控制逻辑。
步骤S307,区块链系统的业务合约中的权限管理器,基于数字证书判断智能合约是否具备调用目标函数的权限。
步骤S308,区块链系统在确定智能合约具备调用目标函数的权限时,执行目标函数。
步骤S309,区块链系统返回相应的执行结果至参与者。
具体地,在AA合约中定义了proxyExecute函数,该函数接收目标合约地址和payload作为参数,其中,目标合约地址是需要调用的业务合约的地址,payload是对目标合约的业务函数调用情况进行编码和签名后的参数。
参与者使用AA合约中proxyExecute函数触发调用业务合约中的目标函数。业务合约中目标函数的Modifier校验AA合约是否有调用目标函数的权限,若具有权限,则执行目标函数,并返回相应执行结果至参与者,否则将权限校验失败的消息返回参与者。
参与者调用任何业务合约,都可以通过AA合约中的proxyExecute函数来代理执行。当使用proxyExecute函数调用时,所使用的底层的msg.sender是使用的AA合约,而不是EOA账户,这就实现了通过控制和管理AA合约的地址,来决定参与者账户的权限。
本申请实施例中,参与者对数字证书的颁发地址进行本地校验后,在区块链系统中部署智能合约,并通过智能合约对数字证书进行校验,并在校验通过时将数字证书保存在智能合约中,无需再引入任何中间人,大大增强了数字证书的安全性,避免了单点故障的问题。其次,智能合约一旦部署在区块链上,其代码和状态是不可篡改的,这意味着智能合约执行的结果无法被恶意修改,确保了智能合约的可信度和安全性。另外,通过智能合约调用业务合约中的目标函数,并以智能合约为载体,对参与者进行权限控制,使得权限控制效率更高,兼容性更好。
在一些实施例中,当数字证书和参与者的账户地址更新时,基于新证书的哈希值,以及新证书中的签名信息和类型参数,确定新证书的目标颁发地址,并对目标颁发地址进行校验;
在校验通过时,将新证书、新证书的新参考颁发地址和类型参数上传至智能合约,以使智能合约基于新参考颁发地址和类型参数,对新证书进行校验,并在校验通过时将智能合约中原本的数字证书替换为新证书。
具体地,当参与者的私钥泄露或丢失的时候,参与者需要重新获得数字证书(即新证书)。若参与者为治理者,则重新颁发数字证书;若参与者不是治理者,则要求上级机构的参与者重新颁发新的数字证书。
参与者重新调用registerCert接口来注册新证书至AA合约。此时,参与者在AA合约中的账户地址和数字证书都会更新,但AA合约地址以及相关的历史数据均保持不变。
参与者可以在AA合约中,自由定义重置账户地址的逻辑,借助AA合约中部署中引入的CertManager的地址,调用CertManager合约中的各类控制和判断的逻辑。
本申请实施例中,当参与者的数字证书和参与者的账户地址更新时,参与者将新证书注册到AA合约中,AA合约中相应更新数字证书和参与者的账户地址,而AA合约地址以及相关的历史数据均保持不变,那么,业务合约中权限管理器的权限控制规则不需要相应更新,这样提高权限管理的效率,降低了成本。
基于相同的技术构思,本申请实施例提供了一种权限控制装置的结构示意图,如图5所示,该权限控制装置500包括:
获取模块501,用于获取所述参与者的数字证书;
第一校验模块502,用于基于所述数字证书的哈希值,以及所述数字证书中的签名信息和类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址进行校验;
发送模块503,用于在校验通过时在区块链系统上部署所述参与者对应的智能合约,并将所述数字证书、在所述证书管理合约注册的所述数字证书的参考颁发地址和所述类型参数上传至所述智能合约,以使所述智能合约基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
调用模块504,用于通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备访问所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
可选地,所述第一校验模块502还用于:
对所述参与者的公钥进行哈希计算,获得目标哈希值;
从所述目标哈希值中提取所述参与者的账户地址。
可选地,若所述参与者为一级机构,则所述参考颁发地址为所述参与者的账户地址;
若所述参与者为非一级机构,则所述参考颁发地址为所述参与者的上一级机构的参与者的账户地址。
可选地,所述第一校验模块502具体用于:
将所述类型参数设置为第一参考值,并基于所述数字证书的哈希值、所述数字证书中的签名信息和所述第一参考值,确实所述目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述目标颁发地址校验通过;
若所述目标颁发地址与所述参考颁发地址不一致,则将所述类型参数设置为第二参考值,并基于所述数字证书的哈希值、所述数字证书中的签名信息和所述第二参考值,确实所述目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述目标颁发地址校验通过。
可选地,所述调用模块504还用于:
将所述证书管理合约的地址传入所述业务合约中;
针对所述业务合约中的各个业务函数,分别执行以下操作:
通过所述证书管理合约以及预设的权限控制规则,构建一个业务函数对应的权限管理器,所述权限控制规则与在所述证书管理合约中注册的智能合约关联;
将所述权限管理器添加至所述一个业务函数中。
可选地,所述第一校验模块502还用于:
当所述数字证书和所述参与者的账户地址更新时,基于新证书的哈希值,以及所述新证书中的签名信息和类型参数,确定所述新证书的目标颁发地址,并对所述目标颁发地址进行校验;
所述发送模块503还用于:
在校验通过时,将所述新证书、所述新证书的新参考颁发地址和所述类型参数上传至所述智能合约,以使所述智能合约基于所述新参考颁发地址和所述类型参数,对所述新证书进行校验,并在校验通过时将所述智能合约中的所述数字证书替换为所述新证书。
基于相同的技术构思,本申请实施例提供了一种权限控制装置的结构示意图,应用于区块链系统,如图6所示,该权限控制装置600包括:
接收模块601,用于将参与者上传的数字证书、所述数字证书中的类型参数、所述数字证书的参考颁发地址传入智能合约;所述智能合约是所述参与者基于所述数字证书的哈希值、所述数字证书中的签名信息和所述类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址校验通过时部署的,所述参考颁发地址注册在证书管理合约中;
第二校验模块602,用于通过所述智能合约,基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
处理模块603,用于响应于所述参与者的调用操作,通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备调用所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
可选地,所述第二校验模块602具体用于:
从所述数字证书中截取证书部分内容;
从所述证书部分内容中提取所述参与者的公钥,并基于所述公钥生成证书所有者地址;
若所述证书所有者地址与所述参与者的账户地址一致,则基于所述数字证书的哈希值、所述数字证书中的签名信息和所述类型参数,确定所述数字证书的目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述数字证书校验通过。
可选地,所述第二校验模块602还用于:
所述从所述数字证书中截取证书部分内容之前,分别对所述数字证书的证书长度和证书格式进行校验,并在均校验通过时,确定所述证书部分内容在所述数字证书中的起始位置,以及所述证书部分内容的内容长度;
所述第二校验模块602具体用于:
从所述起始位置开始,从所述数字证书中截取所述内容长度的证书部分内容。
可选地,所述第二校验模块602具体用于:
在校验通过时,将所述数字证书、所述证书所有者地址、所述目标颁发地址、所述数字证书中的签名信息和所述类型参数保存在所述智能合约中。
本申请实施例中,参与者对数字证书的颁发地址进行本地校验后,在区块链系统中部署智能合约,并通过智能合约对数字证书进行校验,并在校验通过时将数字证书保存在智能合约中,无需再引入任何中间人,大大增强了数字证书的安全性,避免了单点故障的问题。其次,智能合约一旦部署在区块链上,其代码和状态是不可篡改的,这意味着智能合约执行的结果无法被恶意修改,确保了智能合约的可信度和安全性。另外,通过智能合约调用业务合约中的目标函数,并以智能合约为载体,对参与者进行权限控制,使得权限控制效率更高,兼容性更好。
基于相同的技术构思,本申请实施例提供了一种计算机设备,该计算机设备可以是图2所示的参与者201和/或区块链系统202,如图7所示,包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本申请实施例中不限定处理器701与存储器702之间的具体连接介质,图7中处理器701和存储器702之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行上述权限控制方法的步骤。
其中,处理器701是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,从而实现权限控制。可选的,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机设备存取的任何其他介质,但不限于此。本申请实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得计算机设备执行上述权限控制方法的步骤。
基于同一发明构思,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述图像处理方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机设备或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备或其他可编程数据处理设备上,使得在计算机设备或其他可编程设备上执行一系列操作步骤以产生计算机设备实现的处理,从而在计算机设备或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种权限控制方法,应用于多级机构中的每个参与者,其特征在于,包括:
获取所述参与者的数字证书;
基于所述数字证书的哈希值,以及所述数字证书中的签名信息和类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址进行校验;
在校验通过时在区块链系统上部署所述参与者对应的智能合约,并将所述数字证书、在所述证书管理合约注册的所述数字证书的参考颁发地址和所述类型参数上传至所述智能合约,以使所述智能合约基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备访问所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
2.如权利要求1所述的方法,其特征在于,还包括:
对所述参与者的公钥进行哈希计算,获得目标哈希值;
从所述目标哈希值中提取所述参与者的账户地址。
3.如权利要求2所述的方法,其特征在于,还包括:
若所述参与者为一级机构,则所述参考颁发地址为所述参与者的账户地址;
若所述参与者为非一级机构,则所述参考颁发地址为所述参与者的上一级机构的参与者的账户地址。
4.如权利要求1所述的方法,其特征在于,所述基于所述数字证书的哈希值,以及所述数字证书中的签名信息和类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址进行校验,包括:
将所述类型参数设置为第一参考值,并基于所述数字证书的哈希值、所述数字证书中的签名信息和所述第一参考值,确实所述目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述目标颁发地址校验通过;
若所述目标颁发地址与所述参考颁发地址不一致,则将所述类型参数设置为第二参考值,并基于所述数字证书的哈希值、所述数字证书中的签名信息和所述第二参考值,确实所述目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述目标颁发地址校验通过。
5.如权利要求3所述的方法,其特征在于,还包括:
将所述证书管理合约的地址传入所述业务合约中;
针对所述业务合约中的各个业务函数,分别执行以下操作:
通过所述证书管理合约以及预设的权限控制规则,构建一个业务函数对应的权限管理器,所述权限控制规则与在所述证书管理合约中注册的智能合约关联;
将所述权限管理器添加至所述一个业务函数中。
6.如权利要求3所述的方法,其特征在于,还包括:
当所述数字证书和所述参与者的账户地址更新时,基于新证书的哈希值,以及所述新证书中的签名信息和类型参数,确定所述新证书的目标颁发地址,并对所述目标颁发地址进行校验;
在校验通过时,将所述新证书、所述新证书的新参考颁发地址和所述类型参数上传至所述智能合约,以使所述智能合约基于所述新参考颁发地址和所述类型参数,对所述新证书进行校验,并在校验通过时将所述智能合约中的所述数字证书替换为所述新证书。
7.一种权限控制方法,应用于区块链系统,其特征在于,包括:
将参与者上传的数字证书、所述数字证书中的类型参数、所述数字证书的参考颁发地址传入智能合约;所述智能合约是所述参与者基于所述数字证书的哈希值、所述数字证书中的签名信息和所述类型参数,确定所述数字证书的目标颁发地址,并对所述目标颁发地址校验通过时部署的,所述参考颁发地址注册在证书管理合约中;
通过所述智能合约,基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,并在校验通过时将所述数字证书保存在所述智能合约中;
响应于所述参与者的调用操作,通过所述智能合约调用业务合约中的目标函数,以使所述业务合约中的权限管理器基于所述数字证书,判断所述智能合约是否具备调用所述目标函数的权限;若是,则执行所述目标函数,并返回相应的执行结果至所述参与者。
8.如权利要求7所述的方法,其特征在于,所述基于所述参考颁发地址和所述类型参数,对所述数字证书进行校验,包括:
从所述数字证书中截取证书部分内容;
从所述证书部分内容中提取所述参与者的公钥,并基于所述公钥生成证书所有者地址;
若所述证书所有者地址与所述参与者的账户地址一致,则基于所述数字证书的哈希值、所述数字证书中的签名信息和所述类型参数,确定所述数字证书的目标颁发地址;
若所述目标颁发地址与所述参考颁发地址一致,则所述数字证书校验通过。
9.如权利要求8所述的方法,其特征在于,所述从所述数字证书中截取证书部分内容之前,还包括:
分别对所述数字证书的证书长度和证书格式进行校验,并在均校验通过时,确定所述证书部分内容在所述数字证书中的起始位置,以及所述证书部分内容的内容长度;
所述从所述数字证书中截取证书部分内容,包括:
从所述起始位置开始,从所述数字证书中截取所述内容长度的证书部分内容。
10.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至9任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311708251.0A CN117879829A (zh) | 2023-12-12 | 2023-12-12 | 一种权限控制方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311708251.0A CN117879829A (zh) | 2023-12-12 | 2023-12-12 | 一种权限控制方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117879829A true CN117879829A (zh) | 2024-04-12 |
Family
ID=90589232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311708251.0A Pending CN117879829A (zh) | 2023-12-12 | 2023-12-12 | 一种权限控制方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117879829A (zh) |
-
2023
- 2023-12-12 CN CN202311708251.0A patent/CN117879829A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111095899B (zh) | 针对可信执行环境的分布式密钥管理 | |
CN110602138B (zh) | 区块链网络的数据处理方法、装置、电子设备及存储介质 | |
US11159526B2 (en) | System and method for decentralized-identifier authentication | |
EP4120114A1 (en) | Data processing method and apparatus, smart device and storage medium | |
CN110147994B (zh) | 一种基于同态加密的区块链的即时执行方法 | |
CN108833081B (zh) | 一种基于区块链的设备组网认证方法 | |
CN112396423B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN111144881A (zh) | 对资产转移数据的选择性访问 | |
CN111095256A (zh) | 在可信执行环境中安全地执行智能合约操作 | |
CN112215608A (zh) | 数据处理方法和装置 | |
CN110177124B (zh) | 基于区块链的身份认证方法及相关设备 | |
CN113328997B (zh) | 联盟链跨链系统及方法 | |
CN113541970B (zh) | 分布式标识符的使用方法和分布式标识符使用系统 | |
CN110908786A (zh) | 一种智能合约调用方法、装置及介质 | |
CN112446039A (zh) | 区块链交易处理方法、装置、设备和存储介质 | |
CN115380303A (zh) | 基于区块链的可信平台 | |
JP2023530594A (ja) | 分散型データベースにおける許可されたイベント処理 | |
CN113255014A (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
CN115883154A (zh) | 访问凭证的颁发方法、基于区块链的数据访问方法及装置 | |
CN112184245B (zh) | 一种跨区块链的交易身份确认方法及装置 | |
CN111178896B (zh) | 乘车支付方法、装置及存储介质 | |
CN116975901A (zh) | 基于区块链的身份验证方法、装置、设备、介质及产品 | |
CN117879829A (zh) | 一种权限控制方法及设备 | |
CN113869901A (zh) | 密钥生成方法、装置、计算机可读存储介质及计算机设备 | |
US20220067727A1 (en) | Method for operating a distributed database system, distributed database system, and industrial automation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |