授权签名生成方法、节点管理方法、装置、设备和介质转让专利

申请号 : CN202010688996.5

文献号 : CN111741012B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 荆博

申请人 : 百度在线网络技术(北京)有限公司

摘要 :

本申请实施例公开了一种授权签名生成方法、节点管理方法、装置、设备和介质,涉及区块链技术,可用于云计算和云服务领域。其中,该授权签名生成方法包括:接收轻量级节点的授权签名生成请求;其中,授权签名生成请求中包括轻量级节点的数字证书;基于数字证书,为轻量级节点生成授权签名;其中,授权签名用于验证轻量级节点对全节点的访问权限。本申请实施例提供了一套新的轻量级节点管理方案,提高了全节点对轻量级节点的访问权限管理效率。

权利要求 :

1.一种授权签名生成方法,由区块链节点执行,所述区块链节点作为本机节点,所述方法包括:接收轻量级节点的授权签名生成请求;其中,所述授权签名生成请求中包括所述轻量级节点的数字证书,所述数字证书为所述轻量级节点向CA服务提供方申请获取的;

基于所述数字证书,为所述轻量级节点生成授权签名;其中,所述授权签名用于携带在轻量级节点发送的访问请求中发送至全节点,以供全节点验证所述轻量级节点对全节点的访问权限。

2.根据权利要求1所述的方法,其中,基于所述数字证书,为所述轻量级节点生成授权签名,包括:计算所述数字证书的哈希值,并确定有效时间戳;其中,所述有效时间戳用于定义所述轻量级节点对所述全节点的有效访问时间;

基于所述数字证书的哈希值、所述有效时间戳和本机密钥,为所述轻量级节点生成授权签名。

3.根据权利要求1所述的方法,其中,在所述接收轻量级节点的授权签名生成请求之后,所述方法还包括:根据所述数字证书中的发证方信息,确定目标发证方;

如果利用所述目标发证方的密钥验证所述数字证书有效,且所述数字证书未被撤销,则基于所述数字证书,为所述轻量级节点生成授权签名。

4.根据权利要求3所述的方法,其中,确定所述数字证书未被撤销,包括:获取所述目标发证方提供的证书撤销列表;

如果所述数字证书和所述证书撤销列表匹配不成功,则确定所述数字证书未被撤销。

5.根据权利要求1所述的方法,其中,所述方法还包括:向全节点发送所述授权签名对应的本机密钥;其中,发送的本机密钥用于所述全节点验证所述轻量级节点发送的访问请求中包括的授权签名的有效性。

6.一种轻量级节点管理方法,由全节点执行,基于利用权利要求1-5中任一项所述的授权签名生成方法生成的授权签名实现,所述管理方法包括:接收轻量级节点发送的访问请求;其中,所述访问请求中包括所述授权签名;

根据所述授权签名的验证结果,确定所述轻量级节点的访问权限。

7.根据权利要求6所述的方法,其中,根据所述授权签名的验证结果,确定所述轻量级节点的访问权限,包括:如果从所述访问请求中检测出签名字段,则确定所述访问请求中包括所述授权签名;

如果基于预先获取的所述授权签名对应的密钥,验证所述授权签名有效,则允许所述轻量级节点访问所述全节点。

8.根据权利要求7所述的方法,其中,所述访问请求中还包括数字证书和有效时间戳;

所述基于预先获取的生成所述授权签名对应的密钥,验证所述授权签名有效,包括:采用预先获取的生成所述授权签名对应的密钥,对所述授权签名进行验证,并在验证成功后从所述授权签名中获取所述数字证书的初始哈希值和初始有效时间戳;

计算所述访问请求中的数字证书的当前哈希值;

如果所述当前哈希值与所述初始哈希值一致,且所述初始有效时间戳和所述访问请求中的有效时间戳一致,则确定所述授权签名有效。

9.根据权利要求8所述的方法,其中,允许所述轻量级节点访问所述全节点,包括:如果确定所述轻量级节点的当前访问时间未超过所述有效时间戳对应的时间,则允许所述轻量级节点访问所述全节点。

10.根据权利要求8所述的方法,其中,在允许所述轻量级节点访问所述全节点之前,所述管理方法还包括:根据所述数字证书中的发证方信息,确定目标发证方;

如果确定所述目标发证方属于可信发证方,且所述授权签名有效,则允许所述轻量级节点访问所述全节点。

11.一种授权签名生成装置,配置于区块链节点中,所述区块链节点作为本机节点,所述装置包括:签名请求接收模块,用于接收轻量级节点的授权签名生成请求;其中,所述授权签名生成请求中包括所述轻量级节点的数字证书,所述数字证书为所述轻量级节点向CA服务提供方申请获取的;

授权签名生成模块,用于基于所述数字证书,为所述轻量级节点生成授权签名;其中,所述授权签名用于携带在轻量级节点发送的访问请求中发送至全节点,以供全节点验证所述轻量级节点对全节点的访问权限。

12.根据权利要求11所述的装置,其中,所述授权签名生成模块包括:哈希值与时间戳确定单元,用于计算所述数字证书的哈希值,并确定有效时间戳;其中,所述有效时间戳用于定义所述轻量级节点对所述全节点的有效访问时间;

签名生成单元,用于基于所述数字证书的哈希值、所述有效时间戳和本机密钥,为所述轻量级节点生成授权签名。

13.根据权利要求11所述的装置,其中,所述装置还包括:发证方确定模块,用于在所述签名请求接收模块执行所述接收轻量级节点的授权签名生成请求之后,根据所述数字证书中的发证方信息,确定目标发证方;

证书验证模块,用于利用所述目标发证方的密钥验证所述数字证书是否有效;

撤销确定模块,用于确定所述数字证书是否被撤销;

所述授权签名生成模块用于:如果利用所述目标发证方的密钥验证所述数字证书有效,且所述数字证书未被撤销,则基于所述数字证书,为所述轻量级节点生成授权签名。

14.根据权利要求13所述的装置,其中,所述撤销确定模块包括:列表获取单元,用于获取所述目标发证方提供的证书撤销列表;

撤销确定单元,用于如果所述数字证书和所述证书撤销列表匹配不成功,则确定所述数字证书未被撤销。

15.根据权利要求11所述的装置,其中,所述装置还包括:密钥发送模块,用于向全节点发送所述授权签名对应的本机密钥;其中,发送的本机密钥用于所述全节点验证所述轻量级节点发送的访问请求中包括的授权签名的有效性。

16.一种轻量级节点管理装置,配置于全节点中,基于利用权利要求1-5中任一项所述的授权签名生成方法生成的授权签名实现,所述管理装置包括:访问请求接收模块,用于接收轻量级节点发送的访问请求;其中,所述访问请求中包括所述授权签名;

访问权限确定模块,用于根据所述授权签名的验证结果,确定所述轻量级节点的访问权限。

17.根据权利要求16所述的装置,其中,所述访问权限确定模块包括:字段检测单元,用于如果从所述访问请求中检测出签名字段,则确定所述访问请求中包括所述授权签名;

访问允许单元,用于如果基于预先获取的所述授权签名对应的密钥,验证所述授权签名有效,则允许所述轻量级节点访问所述全节点。

18.根据权利要求17所述的装置,其中,所述访问请求中还包括数字证书和有效时间戳;

所述访问权限确定模块还包括:

验证与获取单元,用于采用预先获取的生成所述授权签名对应的密钥,对所述授权签名进行验证,并在验证成功后从所述授权签名中获取所述数字证书的初始哈希值和初始有效时间戳;

哈希计算单元,用于计算所述访问请求中的数字证书的当前哈希值;

有效性确定单元,用于如果所述当前哈希值与所述初始哈希值一致,且所述初始有效时间戳和所述访问请求中的有效时间戳一致,则确定所述授权签名有效。

19.根据权利要求18所述的装置,其中,所述访问允许单元具体用于:如果确定所述授权签名有效,且确定所述轻量级节点的当前访问时间未超过所述有效时间戳对应的时间,则允许所述轻量级节点访问所述全节点。

20.根据权利要求18所述的装置,其中,所述访问权限确定模块还包括:发证方确定单元,用于在所述访问允许单元执行允许所述轻量级节点访问所述全节点的操作之前,根据所述数字证书中的发证方信息,确定目标发证方;

所述访问允许单元,具体用于如果确定所述目标发证方属于可信发证方,且所述授权签名有效,则允许所述轻量级节点访问所述全节点。

21.一种电子设备,其中,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的授权签名生成方法,和/或执行权利要求6-10中任一项所述的轻量级节点管理方法。

22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行权利要求1-5中任一项所述的授权签名生成方法,和/或执行权利要求6-10中任一项所述的轻量级节点管理方法。

说明书 :

授权签名生成方法、节点管理方法、装置、设备和介质

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及区块链技术,具体涉及一种授权签名生成方法、节点管理方法、装置、设备和介质。

背景技术

[0002] 目前,在区块链场景中,出于合规性、安全性、隐私性和节点性能的考虑,有些服务机构会严格控制针对自己名下的全节点的访问策略。例如,银行机构仅希望自己控制的轻量级节点,如服务器业务系统、手机应用程序(Application,APP)等,才能访问自己名下的全节点。其中,各服务机构利用电子认证服务(Certificate Authority,CA)机制对自己的轻量级节点进行权限控制,是一项有效措施。
[0003] 然而,如何提高全节点对轻量级节点的访问权限管理效率仍是亟待解决的问题。

发明内容

[0004] 本申请提供一种授权签名生成方法、节点管理方法、装置、设备和介质,以提供一套新的轻量级节点管理方案,提高全节点对轻量级节点的访问权限管理效率。
[0005] 根据本申请实施例的一方面,提供了一种授权签名生成方法,包括:
[0006] 接收轻量级节点的授权签名生成请求;其中,所述授权签名生成请求中包括所述轻量级节点的数字证书;
[0007] 基于所述数字证书,为所述轻量级节点生成授权签名;其中,所述授权签名用于验证所述轻量级节点对全节点的访问权限。
[0008] 根据本申请实施例的另一方面,提供了一种轻量级节点管理方法,基于利用本申请实施例中任一所述的授权签名生成方法生成的授权签名实现,所述管理方法包括:
[0009] 接收轻量级节点发送的访问请求;其中,所述访问请求中包括所述授权签名;
[0010] 根据所述授权签名的验证结果,确定所述轻量级节点的访问权限。
[0011] 根据本申请实施例的另一方面,提供了一种授权签名生成装置,包括:
[0012] 签名请求接收模块,用于接收轻量级节点的授权签名生成请求;其中,所述授权签名生成请求中包括所述轻量级节点的数字证书;
[0013] 授权签名生成模块,用于基于所述数字证书,为所述轻量级节点生成授权签名;其中,所述授权签名用于验证所述轻量级节点对全节点的访问权限。
[0014] 根据本申请实施例的另一方面,提供了一种轻量级节点管理装置,基于利用本申请实施例任一所述的授权签名生成方法生成的授权签名实现,所述管理装置包括:
[0015] 访问请求接收模块,用于接收轻量级节点发送的访问请求;其中,所述访问请求中包括所述授权签名;
[0016] 访问权限确定模块,用于根据所述授权签名的验证结果,确定所述轻量级节点的访问权限。
[0017] 根据本申请实施例的另一方面,提供了一种电子设备,包括:
[0018] 至少一个处理器;以及
[0019] 与所述至少一个处理器通信连接的存储器;其中,
[0020] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例任一所述的授权签名生成方法,和/或执行如本申请实施例任一所述的轻量级节点管理方法。
[0021] 根据本申请实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行如本申请实施例任一所述的授权签名生成方法,和/或执行如本申请实施例任一所述的轻量级节点管理方法。
[0022] 根据本申请实施例的技术方案,通过在轻量级节点访问全节点之前,为轻量级节点生成访问授权签名,轻量级节点可以将该授权签名携带在访问请求中发送至全节点,全节点根据访问请求中的授权签名确定轻量级节点的访问权限,整体上提供了一套新的轻量级节点管理方案,提高了全节点对轻量级节点的访问权限管理效率。
[0023] 应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0024] 附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0025] 图1是根据本申请实施例公开的一种授权签名生成方法的流程图;
[0026] 图2是根据本申请实施例公开的另一种授权签名生成方法的流程图;
[0027] 图3是根据本申请实施例公开的一种轻量级节点管理方法的流程图;
[0028] 图4是根据本申请实施例公开的另一种轻量级节点管理方法的流程图;
[0029] 图5是根据本申请实施例公开的一种轻量级节点管理架构的示意图;
[0030] 图6是根据本申请实施例公开的一种授权签名生成装置的结构示意图;
[0031] 图7是根据本申请实施例公开的一种轻量级节点管理装置的结构示意图;
[0032] 图8是根据本申请实施例公开的一种电子设备的框图。

具体实施方式

[0033] 以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0034] 图1是根据本申请实施例公开的一种授权签名生成方法的流程图,本申请实施例可以适用于当同一机构利用不同的CA服务提供方为自己名下的轻量级节点提供数字证书,该机构控制的全节点如何高效管理轻量级节点对自身的访问权限的情况。本申请实施例公开的授权签名生成方法可以由授权签名生成装置执行。该装置可以采用软件和/或硬件实现,并可以配置在区块链节点中。区块链节点可以部署在任意的具有计算能力的电子设备上,例如终端、服务器等。
[0035] 如图1所示,本申请实施例公开的授权签名生成方法可以包括:
[0036] S101、接收轻量级节点的授权签名生成请求;其中,授权签名生成请求中包括轻量级节点的数字证书。
[0037] 在本申请实施例中,轻量级节点在向本机节点(即用于执行授权签名生成方法的区块链节点)发送授权签名生成请求之前,已经预先向CA服务提供方申请并获取数字证书,即完成身份认证操作。针对不同的轻量级节点,选择的CA服务提供方可以不同。轻量级节点向本级节点发送授权签名生成请求,请求本机节点基于其数字证书为其生成关于访问全节点的授权签名。授权签名生成请求中可以包括但不限于轻量级节点的数字签名、轻量级节点向全节点请求的访问内容、数字证书等内容。
[0038] S102、基于数字证书,为轻量级节点生成授权签名;其中,授权签名用于验证轻量级节点对全节点的访问权限。
[0039] 示例性的,本机节点收到授权签名生成请求后,可以利用预先获取的轻量级节点的密钥,对轻量级节点的数字签名进行验证,如果验证成功,则基于轻量级节点的数字证书,为其生成授权签名;并且,本机节点还可以验证轻量级节点向全节点请求的访问内容,例如访问内容是否合规、是否涉及敏感信息等,如果访问内容也验证通过,则基于轻量级节点的数字证书,为其生成授权签名;进一步的,本机节点还可以利用与轻量级节点的数字证书对应的密钥,对数字证书进行验证,如果验证成功,即确定数字证书是真实有效的,则执行授权签名的生成操作。
[0040] 本机节点可以利用本地密钥对轻量级节点的数字证书、向全节点请求的访问内容等数据,进行加密,从而得到授权签名,然后将授权签名返回给轻量级节点。轻量级节点收到授权签名后,可以将其作为一种访问凭证,携带在访问请求中并向全节点发送,使得全节点对授权签名验证通过后,允许轻量级节点的访问。
[0041] 根据本申请实施例的技术方案,通过在轻量级节点访问全节点之前,基于轻量级节点的数字证书为轻量级节点生成访问授权签名,轻量级节点可以将该授权签名携带在访问请求中发送至全节点,全节点根据访问请求中的授权签名确定轻量级节点的访问权限,整体上提供了一套新的轻量级节点管理方案,对全节点而言,针对来自不同轻量级节点的访问请求,无需通过逐个与数字证书发证方进行交互实现对轻量级节点的数字证书的验证,进而确定轻量级节点的访问权限,提高了全节点对轻量级节点的访问权限管理效率,解决了现有方案中全节点对轻量级节点的访问权限管理效率较低的问题;并且,本申请实施例降低了全节点与轻量级节点之间授权管理系统的复杂度和维护成本,降低了全节点对轻量级节点的访问权限控制复杂度,有助于提升区块链网络性能。
[0042] 在上述技术方案的基础上,可选的,基于数字证书,为轻量级节点生成授权签名,包括:
[0043] 计算数字证书的哈希值,并确定有效时间戳;其中,有效时间戳用于定义轻量级节点对全节点的有效访问时间,在每次生成授权签名的过程中均可以为轻量级节点生成对应的有效时间戳;
[0044] 基于数字证书的哈希值、有效时间戳和本机密钥,为轻量级节点生成授权签名。
[0045] 其中,本机节点可以利用任意可用的哈希算法计算轻量级节点的数字证书的哈希值,同时,为该轻量级节点生成有效时间戳,即在该有效时间戳定义的时间之前,轻量级节点对全节点的访问有效,否则超时后全节点可以拒绝轻量级节点的访问,轻量级节点需要重新请求生成授权签名并重新向全节点发送访问请求,或者轻量级节点需要向本机节点请求更新有效时间戳并重新向全节点发送访问请求。本机节点可以利用本机密钥对数字证书的哈希值和有效时间戳进行加密,得到轻量级节点的授权签名,然后返回给轻量级节点。通过在授权签名生成过程中,为轻量级节点生成有效时间戳,可以有效管控轻量级节点对全节点的访问,有效控制一定时间内全节点允许的访问请求数量,减少轻量级节点的恶意访问次数,确保区块链网络的正常运行。
[0046] 可选的,本申请实施例公开的授权签名生成方法还包括:
[0047] 向全节点发送授权签名对应的本机密钥;其中,发送的本机密钥用于全节点验证轻量级节点发送的访问请求中包括的授权签名的有效性。
[0048] 其中,本机节点在生成授权签名过程中使用的本机密钥和发送至全节点的密钥,可以是利用任意可用的加密算法得到,例如可以是利用非对称加密算法得到的私钥和公钥等。通过本机节点主动向全节点发送本机密钥,全节点预先存储该密钥,有助于提高全节点对授权签名的验证便利性。
[0049] 当然,全节点也可以根据需求向本机节点发送密钥获取请求,以请求获取本机节点的密钥,本申请实施例对此不作具体限定。
[0050] 图2是根据本申请实施例公开的另一种授权签名生成方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。如图2所示,该方法可以包括:
[0051] S201、接收轻量级节点的授权签名生成请求;其中,授权签名生成请求中包括轻量级节点的数字证书。
[0052] S202、根据数字证书中的发证方信息,确定目标发证方。
[0053] 其中,数字证书中的信息可以包括但不限于:证书基础数据(如证书版本、序列号等)、轻量级节点的信息、发证方信息、发证方的数字签名等等,可以根据具体需求而定。轻量级节点的信息可以包括用于唯一性标识轻量级节点的节点标识,发证方信息可以包括用于唯一性标识发证方的身份标识。因此,本机节点可以根据数字证书中的发证方信息确定当前的目标发证方。
[0054] S203、利用目标发证方的密钥验证数字证书是否有效。
[0055] 本机节点可以按照发证方与密钥的对应关系,预选存储不同数字证书发证方的密钥,当确定当前目标发证方之后,自动匹配获取其密钥,用于验证轻量级节点的数字证书是否有效。例如,数字证书中包括发证方的私钥签名,本机节点利用预先获取的发证方的公钥来验证私钥签名,从而确定该数字证书是否有效。如果验证通过,即数字证书有效,则继续执行操作S204,如果验证失败,即数字证书无效,则拒绝为轻量级节点生成授权签名,进而轻量级节点不会拥有访问全节点的权限。
[0056] S204、确定数字证书是否被撤销。
[0057] 如果确定轻量级节点的数字证书有效,则进一步确定数字证书是否被撤销,具体的,可以将有效的数字证书发送至目标发证方,请求目标发证方确认该数字证书是否被撤销,并将确认结果返回给本机节点;也可以通过与目标发证方进行交互,预先获取证书撤销列表,通过在该证书撤销列表中进行匹配,确认当前数字证书是否被撤销。
[0058] 示例性的,确定数字证书是否被撤销包括:获取目标发证方提供的证书撤销列表;如果数字证书和证书撤销列表匹配不成功,则确定数字证书未被撤销,即证书撤销列表上不包括当前数字证书,当前数字证书未被撤销,否则被撤销。
[0059] S205、如果利用目标发证方的密钥验证数字证书有效,且数字证书未被撤销,则基于数字证书,为轻量级节点生成授权签名。
[0060] 其中,授权签名用于验证轻量级节点对全节点的访问权限。
[0061] 根据本申请实施例的技术方案,本机节点在收到轻量级节点的授权签名生成请求后,当验证轻量级节点的数字证书有效且未被撤销时,为轻量级节点生成授权签名,实现了对生成授权签名的有效制约,保证了为轻量级节点提供有效、合规的授权签名,进而为全节点高效管理轻量级节点的访问权限奠定了基础;轻量级节点收到授权签名后,可以将该授权签名携带在访问请求中发送至全节点,对全节点而言,针对来自不同轻量级节点的访问请求,无需通过逐个与数字证书发证方进行交互实现对轻量级节点的数字证书的验证,进而确定轻量级节点的访问权限,提高了全节点对轻量级节点的访问权限管理效率,解决了现有方案中全节点对轻量级节点的访问权限管理效率较低的问题。
[0062] 图3是根据本申请实施例公开的一种轻量级节点管理方法的流程图,本申请实施例可以适用于当同一机构利用不同的CA服务提供方为自己名下的轻量级节点提供数字证书,该机构控制的全节点如何高效管理轻量级节点对自身的访问权限的情况。并且,本申请实施例公开的轻量级节点管理方法基于利用本申请实施例公开的任意授权签名生成方法生成的授权签名实现,即本申请实施例公开的轻量级节点管理方法与本申请实施例公开的授权签名生成方法配合执行,关于轻量级节点管理方法实施例中未详细解释的内容,可以参照授权签名生成方法实施例中的描述。
[0063] 本申请实施例公开的轻量级节点管理方法可以由轻量级节点管理装置执行。该装置可以采用软件和/或硬件实现,并可以配置在区块链节点中,该区块链节点优选为全节点。区块链节点可以部署在任意的具有计算能力的电子设备上,例如终端、服务器等。以下以全节点为例,对本申请实施例进行解释。
[0064] 并且,需要说明的是,轻量级节点管理装置和前述授权签名生成装置可以配置在同一区块链节点上,也可以配置在不同的区块链节点上,换言之,本申请实施例公开的授权签名生成方法和轻量级节点管理方法可以由同一区块链节点执行,也可以分别由不同的区块链节点执行。
[0065] 如图3所示,本申请实施例公开的轻量级节点管理方法可以包括:
[0066] S301、接收轻量级节点发送的访问请求;其中,访问请求中包括授权签名。
[0067] 轻量级节点的授权证书基于轻量级节点的数字证书生成。轻量级节点收到授权签名后,基于该授权签名,生成访问请求并向全节点发送。访问请求中可以包括但不限于轻量级节点的节点标识、授权签名、轻量级节点请求访问的内容、轻量级节点的数字签名等。
[0068] S302、根据授权签名的验证结果,确定轻量级节点的访问权限。
[0069] 全节点可以利用预先设置的授权签名验证策略对访问请求中的授权签名进行验证,授权签名验证策略中定义了不同访问权限对应的授权签名需要满足的条件,例如授权签名是否被携带在访问请求中一并发送给全节点、授权签名是否真实有效等。如果验证结果为验证通过,则允许轻量级节点的访问,如果验证结果为验证失败,则拒绝轻量级节点的访问,从而实现对可访问本机的轻量级节点的有效管控。
[0070] 可选的,根据授权签名的验证结果,确定轻量级节点的访问权限,包括:
[0071] 如果从访问请求中检测出签名字段,则确定访问请求中包括授权签名;
[0072] 如果基于预先获取的授权签名对应的密钥,验证授权签名有效,则允许轻量级节点访问本机。
[0073] 根据访问请求中可以包括的内容,访问请求中可以包括签名字段在内的多个字段,如果全节点在轻量级节点的访问请求中检测到签名字段,则说明轻量级节点预先基于数字证书获取了授权签名,然后继续验证授权签名是否有效,如果有效,则允许轻量级节点的访问,如果无效,则拒绝轻量级节点的访问;如果全节点在轻量级节点的访问请求中未检测到签名字段,则可以认为轻量级节点未获取授权签名,可以拒绝轻量级节点的访问。其中,如果用于执行授权签名生成方法的区块链节点在生成授权签名过程中使用的是本地私钥,则全节点对授权签名验证过程中使用的密钥为前述区块链节点的公钥。
[0074] 根据本申请实施例的技术方案,通过在轻量级节点访问全节点之前,基于轻量级节点的数字证书为轻量级节点生成访问授权签名,轻量级节点可以将该授权签名携带在访问请求中发送至全节点,全节点对访问请求中的授权签名进行验证,并根据验证结果确定轻量级节点的访问权限,对全节点而言,针对来自不同轻量级节点的访问请求,无需通过逐个与数字证书发证方进行交互实现对轻量级节点的数字证书的验证,进而确定轻量级节点的访问权限,提高了全节点对轻量级节点的访问权限管理效率,解决了现有方案中全节点对轻量级节点的访问权限管理效率较低的问题;并且,本申请实施例降低了全节点与轻量级节点之间授权管理系统的复杂度和维护成本,降低了全节点对轻量级节点的访问权限控制复杂度,有助于提升区块链网络性能。
[0075] 图4是根据本申请实施例公开的另一种轻量级节点管理方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。如图4所示,该方法可以包括:
[0076] S401、接收轻量级节点发送的访问请求;其中,访问请求中包括授权签名、数字证书和有效时间戳。
[0077] 其中,授权签名可以基于轻量级节点的数字证书的哈希值和有效时间戳生成。该有效时间戳用于定义轻量级节点对全节点的有效访问时间,即在该有效时间戳定义的时间之前,轻量级节点对全节点的访问有效,轻量级节点收到授权签名后,需要在一定时间内向全节点发送访问请求,否则超时后全节点可以拒绝轻量级节点的访问,轻量级节点需要重新请求生成授权签名并重新向全节点发送访问请求,或者请求更新有效时间戳并重新向全节点发送访问请求。
[0078] S402、如果从访问请求中检测出签名字段,则确定访问请求中包括授权签名。
[0079] 如果从访问请求中未检测出签名字段,则可以拒绝轻量级节点的访问。
[0080] S403、采用预先获取的授权签名对应的密钥,对授权签名进行验证,并在验证成功后从授权签名中获取数字证书的初始哈希值和初始有效时间戳。
[0081] 其中,此处所提及的授权签名对应的密钥即指为轻量级节点生成授权签名时区块链节点使用的密钥。例如,如果为轻量级节点生成授权签名时,使用的区块链节点的本地私钥,则验证授权签名时,使用的密钥即为该区块链节点的公钥。如果授权签名验证成功,则可以继续执行后续操作,如果授权签名验证失败,则可以拒绝轻量级节点的访问。
[0082] S404、计算访问请求中的数字证书的当前哈希值。
[0083] 全节点可以采用授权签名生成过程中所利用的哈希算法,重新计算当前接收的访问请求中数字证书的哈希值。
[0084] S405、如果当前哈希值与初始哈希值一致,且初始有效时间戳和访问请求中的有效时间戳一致,则确定授权签名有效。
[0085] 将计算得到的当前哈希值和初始哈希值进行比较,数值相同即一致,将当前访问请求中携带的有效时间戳和初始时间戳进行比较,对应的时间数值相同即一致。如果前述哈希值比对和时间戳比对的结果均为一致,则确定授权签名有效,可以允许轻量级节点的访问,否则任一项比对结果为不一致,则确定授权签名无效,拒绝轻量级节点的访问。
[0086] S406、允许轻量级节点访问本机。
[0087] 在通常情况下,可以认为轻量级节点收到授权签名后,会及时向全节点发送访问请求,当前访问时间一般不会超过访问请求中的有效时间戳对应的时间,进而哈希值比对和时间戳比对的结果均为一致,则可以允许轻量级节点的访问。但是,为了进一步确保当前访问时间未超过有效时间戳对应的时间,可以在确定授权签名有效后,增加当前访问时间与有效时间戳的比对操作。即进一步的,允许轻量级节点访问本机包括:如果确定轻量级节点的当前访问时间未超过有效时间戳对应的时间,则允许轻量级节点访问本机。如果确定轻量级节点的当前访问时间超过有效时间戳对应的时间,则拒绝轻量级节点访问本机。通过当前访问时间与有效时间戳之间的比对,实现了有效管控轻量级节点对全节点的访问,有效控制了一定时间内全节点允许的访问请求数量,减少了轻量级节点的恶意访问次数,确保了区块链网络的正常运行。
[0088] 根据本申请实施例的技术方案,轻量级节点将预先获取的授权签名携带在访问请求中发送至全节点,全节点对访问请求中的授权签名进行密钥验证、哈希值验证和有效时间戳验证,并根据验证结果确定轻量级节点的访问权限,对全节点而言,针对来自不同轻量级节点的访问请求,无需通过逐个与数字证书发证方进行交互实现对轻量级节点的数字证书的验证,进而确定轻量级节点的访问权限,实现了对可访问本机的轻量级节点的有效管控,提高了全节点对轻量级节点的访问权限管理效率,解决了现有方案中全节点对轻量级节点的访问权限管理效率较低的问题。
[0089] 可选的,在允许轻量级节点访问本机之前,所本申请实施例公开的轻量级节点管理方法还包括:
[0090] 根据数字证书中的发证方信息,确定目标发证方;
[0091] 如果确定目标发证方属于可信发证方,且授权签名有效,则允许轻量级节点访问本机。
[0092] 全节点可以预先统计本机信任的可信发证方,例如以信息列表的形式存储在本地,如果目标发证方在信息列表中匹配成功,则可以确定当前目标发证属于可信发证方,即轻量级节点的数字证书是全节点认可的发证方为其生成,允许轻量级节点访问本机的概率较大。如果目标发证不属于可信发证方,则拒绝轻量级节点的访问。通过全节点验证轻量级节点的数字证书对应的发证方是否属于可信发证方,进一步实现了对轻量级节点的访问权限的约束,限制了可以访问全节点的轻量级节点的数量,进一步协助提升了区块链网络性能。
[0093] 图5是根据本申请实施例公开的一种轻量级节点管理架构的示意图,对本申请实施例进行示例性说明,但不应理解为对本申请实施例的具体限定。如图5所示,具体以2种CA服务提供方为例,即CA1证书授权服务方和CA2证书授权服务方,任意全节点下管理的每个轻量级节点,均可以向任一CA服务提供方申请数字证书。轻量级节点身份认证通过后,可以基于数字证书向授权签名生成节点发送授权签名生成请求,以请求授权签名生成节点为其生成当前阶段访问全节点所需的授权签名。
[0094] 授权签名生成节点上部署轻量级节点权限认证服务,可以利用轻量级节点的数字证书所对应的目标发证方的密钥,验证数字证书,例如轻量级节点向CA1证书授权服务方申请数字证书,则授权签名生成节点需要利用CA1证书授权服务方的公钥验证数字证书是否有效;验证数字证书有效后,授权签名生成节点还可以调用已撤销证书查询服务,确认轻量级节点的数字证书是否被撤销,其中,根据数字证书发证方的不同,需要调用与发证方对应的已撤销证书查询服务。在查询过程中,授权签名生成节点可以通过与不同发证方进行交互,获取发证方提供的证书撤销列表,然后存储在本地,通过列表匹配,确认轻量级节点的数字证书是否被撤销。如果确定轻量级节点的数字证书有效且未被撤销,则可以调用轻量级节点权限签名生成服务,为轻量级节点生成授权签名,并反馈给轻量级节点。
[0095] 其中,轻量级节点权限签名生成服务可以部署在授权签名生成节点,也可以部署在其他新的区块链节点上,本申请实施例对此不作具体限定。
[0096] 轻量级节点收到授权签名后,可以基于授权签名、数字证书等数据向全节点发送访问请求。全节点收到该访问请求后,可以调用轻量级节点权限验证服务,对访问请求中的授权签名进行验证,同时可以查询访问请求中数字证书的发证方是否属于全节点认可的可信发证方,即认可的可信CA机构。如果授权签名验证通过,且访问请求中数字证书的发证方属于全节点认可的可信发证方,则可以允许轻量级节点的访问,否则任一项不满足,则可以拒绝轻量级节点的访问。轻量级节点权限验证服务和可信发证方查询服务,可以部署在全节点上,也可以分别部署在其他新的区块链节点上,具体可以根据业务需求进行部署,本申请实施例对此不作具体限定。
[0097] 进一步的,如果轻量级节点的访问请求中携带有授权签名生成节点为其生成的有效时间戳,全节点还可以进一步确定轻量级节点的当前访问时间是否超过有效时间戳对应的时间,如果未超过,可以允许轻量级节点的访问,如果超过,可以拒绝轻量级节点的访问。
[0098] 图6是根据本申请实施例公开的一种授权签名生成装置的结构示意图,本申请实施例可以适用于当同一机构利用不同的CA服务提供方为自己名下的轻量级节点提供数字证书,该机构控制的全节点如何高效管理轻量级节点对自身的访问权限的情况。本申请实施例公开的授权签名生成装置可以采用软件和/或硬件实现,并可以配置在区块链节点中。区块链节点可以部署在任意的具有计算能力的电子设备上,例如终端、服务器等。
[0099] 如图6所示,本申请实施例公开的授权签名生成装置600可以包括签名请求接收模块601和授权签名生成模块602,其中:
[0100] 签名请求接收模块601,用于接收轻量级节点的授权签名生成请求;其中,授权签名生成请求中包括轻量级节点的数字证书;
[0101] 授权签名生成模块602,用于基于数字证书,为轻量级节点生成授权签名;其中,授权签名用于验证轻量级节点对全节点的访问权限。
[0102] 可选的,授权签名生成模块602包括:
[0103] 哈希值与时间戳确定单元,用于计算数字证书的哈希值,并确定有效时间戳;其中,有效时间戳用于定义轻量级节点对全节点的有效访问时间;
[0104] 签名生成单元,用于基于数字证书的哈希值、有效时间戳和本机密钥,为轻量级节点生成授权签名。
[0105] 可选的,本申请实施例公开的授权签名生成装置还包括:
[0106] 发证方确定模块,用于在签名请求接收模块601执行接收轻量级节点的授权签名生成请求之后,根据数字证书中的发证方信息,确定目标发证方;
[0107] 证书验证模块,用于利用目标发证方的密钥验证数字证书是否有效;
[0108] 撤销确定模块,用于确定数字证书是否被撤销;
[0109] 授权签名生成模块602用于:如果利用目标发证方的密钥验证数字证书有效,且数字证书未被撤销,则基于数字证书,为轻量级节点生成授权签名。
[0110] 可选的,撤销确定模块包括:
[0111] 列表获取单元,用于获取目标发证方提供的证书撤销列表;
[0112] 撤销确定单元,用于如果数字证书和证书撤销列表匹配不成功,则确定数字证书未被撤销。
[0113] 可选的,本申请实施例公开的授权签名生成装置还包括:
[0114] 密钥发送模块,用于向全节点发送授权签名对应的本机密钥;其中,发送的本机密钥用于全节点验证轻量级节点发送的访问请求中包括的授权签名的有效性。
[0115] 本申请实施例所公开的授权签名生成装置600可执行本申请实施例所公开的授权签名生成方法,具备执行方法相应的功能模块和有益效果。本申请装置实施例中未详尽描述的内容可以参考本申请任意方法实施例中的描述。
[0116] 图7是根据本申请实施例公开的一种轻量级节点管理装置的结构示意图,本申请实施例可以适用于当同一机构利用不同的CA服务提供方为自己名下的轻量级节点提供数字证书,该机构控制的全节点如何高效管理轻量级节点对自身的访问权限的情况。并且,本申请实施例公开的轻量级节点管理装置基于利用本申请实施例中任意授权签名生成方法生成的授权签名实现。以下描述中未详细介绍的内容可以参考上述实施例中的描述。
[0117] 该轻量级节点管理装置可以采用软件和/或硬件实现,并可以配置在区块链节点中。区块链节点可以部署在任意的具有计算能力的电子设备上,例如终端、服务器等。此外,轻量级节点管理装置和前述授权签名生成装置可以配置在同一区块链节点上,也可以配置在不同的区块链节点上。
[0118] 如图7所示,本申请实施例公开的轻量级节点管理装置700可以包括访问请求接收模块701和访问权限确定模块702,其中:
[0119] 访问请求接收模块701,用于接收轻量级节点发送的访问请求;其中,访问请求中包括授权签名;
[0120] 访问权限确定模块702,用于根据授权签名的验证结果,确定轻量级节点的访问权限。
[0121] 可选的,访问权限确定模块702包括:
[0122] 字段检测单元,用于如果从访问请求中检测出签名字段,则确定访问请求中包括授权签名;
[0123] 访问允许单元,用于如果基于预先获取的授权签名对应的密钥,验证授权签名有效,则允许轻量级节点访问本机。
[0124] 可选的,访问请求中还包括数字证书和有效时间戳;
[0125] 访问权限确定模块702还包括:
[0126] 验证与获取单元,用于采用预先获取的授权签名对应的密钥,对授权签名进行验证,并在验证成功后从授权签名中获取数字证书的初始哈希值和初始有效时间戳;
[0127] 哈希计算单元,用于计算访问请求中的数字证书的当前哈希值;
[0128] 有效性确定单元,用于如果当前哈希值与初始哈希值一致,且初始有效时间戳和访问请求中的有效时间戳一致,则确定授权签名有效。
[0129] 可选的,访问允许单元具体用于:
[0130] 如果确定授权签名有效,且确定轻量级节点的当前访问时间未超过有效时间戳对应的时间,则允许轻量级节点访问本机。
[0131] 可选的,访问权限确定模块702还包括:
[0132] 发证方确定单元,用于在访问允许单元执行允许轻量级节点访问本机的操作之前,根据数字证书中的发证方信息,确定目标发证方;
[0133] 访问允许单元,具体用于如果确定目标发证方属于可信发证方,且授权签名有效,则允许轻量级节点访问本机。
[0134] 本申请实施例所公开的轻量级节点管理装置700可执行本申请实施例所公开的任意轻量级节点管理方法,具备执行方法相应的功能模块和有益效果。本申请装置实施例中未详尽描述的内容可以参考本申请任意方法实施例中的描述。
[0135] 根据本申请的实施例,本申请实施例还提供了一种电子设备和一种可读存储介质。
[0136] 如图8所示,图8是用于实现本申请实施例中授权签名生成方法和/或轻量级节点管理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请实施例的实现。
[0137] 如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作,例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统。图8中以一个处理器801为例。
[0138] 存储器802即为本申请实施例所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请实施例所提供的授权签名生成方法和/或轻量级节点管理方法。本申请实施例的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请实施例所提供的授权签名生成方法和/或轻量级节点管理方法。
[0139] 存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中授权签名生成方法和/或轻量级节点管理方法对应的程序指令/模块,例如附图6所示的签名请求接收模块601和授权签名生成模块602,或者,例如图7所示的访问请求接收模块701和访问权限确定模块702。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中的授权签名生成方法和/或轻量级节点管理方法。
[0140] 存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至用于实现本实施例中授权签名生成方法和/或轻量级节点管理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0141] 用于实现本申请实施例中授权签名生成方法和/或轻量级节点管理方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
[0142] 输入装置803可接收输入的数字或字符信息,以及产生与用于实现本实施例中授权签名生成方法和/或轻量级节点管理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置和触觉反馈装置等,其中,辅助照明装置例如发光二极管(Light Emitting Diode,LED);触觉反馈装置例如,振动电机等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、LED显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0143] 此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路(Application Specific Integrated Circuit,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0144] 这些计算程序,也称作程序、软件、软件应用、或者代码,包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置,例如,磁盘、光盘、存储器、可编程逻辑装置(Programmable Logic Device,PLD),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0145] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置,例如,阴极射线管(Cathode Ray Tube,CRT)或者LCD监视器;以及键盘和指向装置,例如,鼠标或者轨迹球,用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈、或者触觉反馈;并且可以用任何形式,包括声输入、语音输入或者、触觉输入,来接收来自用户的输入。
[0146] 可以将此处描述的系统和技术实施在包括后台部件的计算系统,例如,作为数据服务器,或者实施在包括中间件部件的计算系统,例如,应用服务器,或者实施在包括前端部件的计算系统,例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互,或者实施在包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信,例如通信网络,来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、互联网和区块链网络。
[0147] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0148] 根据本申请实施例的技术方案,通过在轻量级节点访问全节点之前,为轻量级节点生成访问授权签名,轻量级节点可以将该授权签名携带在访问请求中发送至全节点,全节点根据访问请求中的授权签名确定轻量级节点的访问权限,整体上提供了一套新的轻量级节点管理方案,提高了全节点对轻量级节点的访问权限管理效率。
[0149] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0150] 上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。