CN113868691B - 一种基于云原生的区块链的授权运行方法及装置 - Google Patents
一种基于云原生的区块链的授权运行方法及装置 Download PDFInfo
- Publication number
- CN113868691B CN113868691B CN202111459866.5A CN202111459866A CN113868691B CN 113868691 B CN113868691 B CN 113868691B CN 202111459866 A CN202111459866 A CN 202111459866A CN 113868691 B CN113868691 B CN 113868691B
- Authority
- CN
- China
- Prior art keywords
- block chain
- authorization information
- cluster
- public key
- operated
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种基于云原生的区块链的授权运行方法及装置,所述方法包括:从预设的文件映射区域内,获取区块链许可证;其中,所述预设的文件映射区域与用于运行区块链节点的运行环境相关联;从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;若所述授权信息的合法性校验通过,则开放所述运行环境的运行权限,以在所述运行环境中,基于所述授权信息中包括的运行参数,部署并运行所述待运行的区块链节点。应用本方案,可以以非侵入的方式实现云原生环境下的区块链授权运行,有助于改善软件的可移植性和安全性。
Description
技术领域
本说明书涉及区块链技术领域,尤其涉及一种基于云原生的区块链的授权运行方法及装置。
背景技术
对于互联网企业而言,常常需要自行搭建区块链以满足自身的存证、共识、资产管理等业务需求,而具体使用的区块链则往往来自于更底层的区块链开发企业;这些区块链开发企业可以根据上层企业的需求,定制化开发产品性质的区块链;而在这种模式下,为了保障区块链开发企业的权益、避免盗版,与商业版本的工程软件、设计软件类似,作为商业产品的区块链也需要具备授权运行的功能。
在相关技术中,上述区块链的执行代码中可以包含有授权校验相关的内容,在区块链被部署启动后,这部分与授权校验相关的内容就会尝试通过校验许可证等方式,保证当前运行的区块链副本仅在获得授权的情况下运行。然而,在云环境下,采用上述设计方案则可能需要区块链从容器环境外获取许可证或者硬件识别码,容易造成安全隐患。
发明内容
有鉴于此,本说明书公开了一种基于云原生的区块链的授权运行方法和装置。
根据本说明书实施例的第一方面,公开了一种基于云原生的区块链的授权运行方法,包括:
从预设的文件映射区域内,获取区块链许可证;其中,所述预设的文件映射区域与用于运行区块链节点的运行环境相关联;
从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
若所述授权信息的合法性校验通过,则开放所述运行环境的运行权限,以在所述运行环境中,基于所述授权信息中包括的运行参数,部署并运行所述待运行的区块链节点。
可选的,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群所支持的全部运行环境;所述预设的文件映射区域包括:与预设的集群operator处于同一命名空间的Configmap文件或者secret文件;
所述从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性,包括:
调用所述集群operator,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述开放所述运行环境的运行权限,包括:授权所述Kubernetes集群作为所述待运行的区块链的运行环境。
可选的,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群中用于运行区块链节点的pod;所述预设的文件映射区域包括:与所述用于运行区块链节点的pod处于同一命名空间的Configmap文件或者secret文件;
所述从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性,包括:
调用所述用于运行区块链节点的pod的初始化容器init container,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述开放所述运行环境的运行权限,包括:授权所述用于运行区块链节点的pod作为所述待运行的区块链的运行环境。
可选的,所述授权信息包括下列信息中的任意一种或者多种的组合:
所述待运行区块链的命名规范;
所述待运行区块链的可运行数量上限;
所述待运行区块链的可运行时间区间。
可选的,所述云原生集群从预设的文件映射区域内,获取区块链许可证,包括:
云原生集群从预设的文件映射区域内,获取经所述云原生集群公钥加密的区块链许可证,并对所述区块链许可证使用所述云原生集群的私钥进行解密。
根据本说明书实施例的第二方面,公开了一种基于云原生的区块链的授权运行装置,包括:
获取模块,从预设的文件映射区域内,获取区块链许可证;其中,所述预设的文件映射区域与用于运行区块链节点的运行环境相关联;
校验模块,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
授权模块,若所述授权信息的合法性校验通过,则开放所述运行环境的运行权限,以在所述运行环境中,基于所述授权信息中包括的运行参数,部署并运行所述待运行的区块链节点。
可选的,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群所支持的全部运行环境;所述预设的文件映射区域包括:与预设的集群operator处于同一命名空间的Configmap文件或者secret文件;
所述校验模块进一步:
调用所述集群operator,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述授权模块进一步:授权所述Kubernetes集群作为所述待运行的区块链的运行环境。
可选的,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群中用于运行区块链节点的pod;所述预设的文件映射区域包括:与所述用于运行区块链节点的pod处于同一命名空间的Configmap文件或者secret文件;
所述校验模块进一步:
调用所述用于运行区块链节点的pod的初始化容器init container,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述授权模块进一步:授权所述用于运行区块链节点的pod作为所述待运行的区块链的运行环境。
可选的,所述授权信息包括下列信息中的任意一种或者多种的组合:
所述待运行区块链的命名规范;
所述待运行区块链的可运行数量上限;
所述待运行区块链的可运行时间区间。
可选的,所述获取模块进一步:从预设的文件映射区域内,获取经所述云原生集群公钥加密的区块链许可证,并对所述区块链许可证使用所述云原生集群的私钥进行解密。
根据本说明书实施例的第三方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方面实施例所述的方法。
根据本说明书实施例的第四方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方面实施例所述的方法。
以上技术方案中,由于实际进行合法性校验的步骤在云原生集群层面上执行,校验过程所使用的区块链许可证亦为从云原生集群的预设文件映射区域内获取,并且,对区块链节点的运行控制是通过控制运行环境的运行权限实现的;因此,上述过程中不涉及运行环境内外文件流的打通,也就避免了相关技术中由于跨运行环境的数据读取造成的安全隐患。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书示出的一种相关技术中授权运行区块链的情景示例图;
图2是本说明书示出的一种基于云原生的区块链的授权运行方法的流程示例图;
图3是本说明书示出的一种云原生环境下授权运行区块链的逻辑示例图;
图4是本说明书示出的一种基于云原生的区块链的授权运行装置的结构示例图;
图5是本说明书示出的一种用于基于云原生的区块链的授权运行的计算机设备的结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的***和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
对于互联网企业而言,常常需要自行搭建区块链以满足自身的存证、共识、资产管理等业务需求,而具体使用的区块链则往往来自于更底层的区块链开发企业;这些区块链开发企业可以根据上层企业的需求,定制化开发产品性质的区块链;而在这种模式下,为了保障区块链开发企业的权益、避免盗版,与商业版本的工程软件、设计软件类似,作为商业产品的区块链也需要具备授权运行的功能。
在相关技术中,上述区块链的执行代码中可以包含有授权校验相关的内容,在区块链被部署启动后,这部分与授权校验相关的内容就会尝试通过校验许可证等方式,保证当前运行的区块链副本仅在获得授权的情况下运行。
请参见图1,图1是本说明书示出的一相关技术中授权运行区块链的情景示例图;在该示例中,上述区块链的节点被部署在云原生集群的容器之中,可以作为一种云原生应用存在,并通过执行其内部的权限校验代码来读取集群中的许可证、以及设备信息,进而确认当前集群是否具备执行权限;通常,云原生应用指基于云原生思想进行开发部署的计算机应用,相对传统计算机应用程序而言具备高弹性、易共享、高可用、迭代灵活等优势,但相应的,云原生应用通常是运行在集群搭载的、相对隔离的容器环境中,显然,在云环境下采用上述设计方案,需要区块链从容器环境外获取许可证或者硬件识别码,容易造成安全隐患。
基于此,本说明书提出一种基于云原生的、通过在运行区块链节点的运行环境中完成区块链的授权校验、以及运行许可的技术方案。
在实现时,用于运行区块链节点的运行环境可以与一预设的文件映射区域相关联,而携带待运行的区块链的授权信息、数字签名、验签公钥等信息的区块链许可证则可以存储在该文件映射区域内中,而权限校验代码不被设计在上述区块链的代码中,而是被设计在上述用于运行区块链节点的运行环境层面上,以便在授权信息的合法性校验通过的情况下开放运行环境权限、部署区块链节点。
以上技术方案中,由于实际进行合法性校验的步骤在云原生集群层面上执行,校验过程所使用的区块链许可证亦为从云原生集群的预设文件映射区域内获取,并且,对区块链节点的运行控制是通过控制运行环境的运行权限实现的;因此,上述过程中不涉及运行环境内外文件流的打通,也就避免了相关技术中由于跨运行环境的数据读取造成的安全隐患。
此外,从软件封装和分发角度考虑,如果采用前述相关技术,则不利于针对不同的客户快速部署不同版本的应用软件;例如,对于同样内部功能的软件X而言,如果需要使用机器特征码对客户A进行授权校验,又需要使用授权证书对客户B进行授权校验,那么即使软件X的内部功能没有变化,软件分销商也需要针对客户A和B分别给出不同的软件X的部署封包。而如果采用上述方案,校验不再设立在软件服务内部,而是设立在软件服务的运行环境中,从运行环境层面阻断未授权的执行动作,如此可避免权限校验环节对软件功能本体的侵入,有利于提高软件封装的效率、并降低软件的维护难度。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图2,图2是本说明书一实施例提供的一种基于云原生的区块链的授权运行方法的流程示例图,该方法可以应用于任意云原生集群;该方法可以包括以下步骤:
S201,从预设的文件映射区域内,获取区块链许可证;其中,所述预设的文件映射区域与用于运行区块链节点的运行环境相关联;
S202,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
S203,若所述授权信息的合法性校验通过,则开放所述运行环境的运行权限,以在所述运行环境中,基于所述授权信息中包括的运行参数,部署并运行所述待运行的区块链节点。
上述区块链,可以包括任意形式的区块链。区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的技术;通常,区块链具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性。区块链一般被划分为三种类型:公有链(PublicBlockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。通常各种类型的区块链性质可能存在差异,进而可以用于满足不同的技术需求;例如,如果希望获得最高的去中心化程度,则可以选用公有链;如果希望兼顾去中心化程度和性能,则可以选用联盟链等等。各种形式的区块链各有优势,本领域技术人员可以根据具体的业务需求自行选择上述区块链的类型;由于本说明书示出的方案重点在于云原生环境下区块链的配置、授权执行过程,而不关注区块链具体完成的业务,因此本说明书不限定上述区块链的具体类型。
上述云原生集群,可以指任意具备云原生性质的、包含多台计算机设备的计算机集群;通常,云原生集群中的多台计算机设备可以由统一的软件进行调度,而用于调度的软件的名称也常被代指集群;例如,Kubernetes是业内一种容器编排引擎,又称K8s,它可以被部署在云原生集群上,并将云原生集群中的计算机作为节点进行调度,在这种情况下,部署有Kubernetes的集群也可以被称为Kubernetes集群。
上述用于运行区块链节点的运行环境,则可以根据上述云原生集群的含义而确定;例如,如果上述云原生集群是Kubernetes集群,则相应的上述用于区块链节点的运行环境,则可以指Kubernetes集群中用于运行区块链的一个或者多个Pod,其中具体包括的Pod的数量则可以取决于上述授权运行机制所需控制的范围,即,如果该授权运行机制需要控制1个pod内运行的区块链节点,则上述用于区块链节点的运行环境可以指上述1个pod;如果该授权运行机制需要控制整个Kubernetes集群中所有的区块链节点,则上述用于区块链节点的运行环境也就可以指代上述整个集群。
在本说明书中,上述云原生集群可以从预设的文件映射区域内,获取区块链许可证;其中,上述预设的文件映射区域与用于运行区块链节点的运行环境相关联;继续以上述云原生集群为Kubernetes集群为例,则上述预设的文件映射区域则可以是Kubernetes集群中的configmap文件或者secret文件等等;本领域普通技术人员可知,configmap与secret文件仅存在惯用用途差别,除此之外亦可以使用其他文件映射方式对上述区块链许可证进行存储。
其中,上述区块链许可证所使用的数据格式、是否进行加密等等设计细节均可以由本领域普通技术人员根据具体业务需求进行设计,本说明书无需进行详细限定。
在一种具体实施方式中,上述区块链许可证可以是经过加密的区块链许可证;具体而言,上述云原生集群从预设的文件映射区域内,获取区块链许可证的过程,可以具体指:云原生集群从预设的文件映射区域内,获取经上述云原生集群公钥加密的区块链许可证,并对上述区块链许可证使用上述云原生集群的私钥进行解密。由于经上述云原生集群公钥加密的区块链许可证仅能由上述云原生集群的私钥进行解密,而该私钥并不公开仅由上述云原生集群持有,因此可以保证只有上述云原生集群能够解密该加密后的区块链许可证,进而避免上述区块链许可证被盗用的情况。
在本说明书中,上述云原生集群在获取到上述区块链许可证之后,可以从上述区块链许可证中获取待运行的区块链的授权信息、上述授权信息的数字签名、以及上述数字签名的验签公钥,并基于上述验签公钥校验上述授权信息的合法性;当然可以理解的是,上述授权信息的合法性可以不仅仅包括基于上述数字签名的完整性校验,还可以包括与上述运行环境的信息校验,举例而言,假设上述区块链的授权信息中包含授权集群的机器码,则上述云原生集群即可在通过上述数字签名和验签公钥对上述授权集群的机器码的完整性进行校验,完整性校验通过后,再获取到该集群的机器码与上述授权集群的机器码进行比对,如果机器码比对亦通过,则证明该区块链许可证中的授权信息是一条针对本集群的合法授权信息。
在一种具体实施方式中,上述授权信息可以包括下列信息中的任意一种或者多种的组合:
上述待运行区块链的命名规范;具体而言,该项信息可以要求待运行区块链的命名保有开发商或经销商指定的前后缀、标签,例如使得区块链的命名为“AA链-BB公司-CC集群-n号链”,使得他人可以直接从区块链命名中确定该区块链是BB公司下属的CC集群中运行的n号AA链。
上述待运行区块链的可运行数量上限;具体而言,该项信息可以在上述运行环境中需要运行多个区块链,例如,上述运行环境为整个集群的情况下,对待运行的区块链的数量进行限制,例如该集群只购买了3条AA区块链的情况下,就可以用该项信息来限制该集群只能运行至多3条AA区块链。
上述待运行区块链的可运行时间区间;具体而言,该项信息可以对待运行的区块链的可运行时间区间进行限制;其具体形式可以是时间段起点+时长,也可以是时间起点+时间段终点,本说明书对其具体形式无需限定;例如该集群只购买了3年AA区块链的使用权情况下,就可以用该项信息来限制该集群只能运行至多3年AA区块链。
当然可以理解的是,为了进一步保障隐私信息不被泄露,上述授权信息在实际使用过程中也可以采用散列算法进行保护;举例而言,假设上述云原生集群申请了以“My_Blockchain_ABC”为前缀、可运行时间为“2020.1.1-2030.1.1”的许可证,那么签发机构则可以对上述授权信息(“My_Blockchain_ABC”与“2020.1.1-2030.1.1”)采用SM3等散列算法进行散列处理,得到对应的散列值,再对上述散列值进行数字签名,则对于上述云原生集群而言,其只需要在本地根据上述授权信息(“My_Blockchain_ABC”与“2020.1.1-2030.1.1”)重建预期的授权信息,并与区块链许可证中携带的、经签发机构签名认证的授权信息进行比对,如果散列值相匹配,则可以在许可证中不包含授权信息明文的情况下,证明上述授权信息(“My_Blockchain_ABC”与“2020.1.1-2030.1.1”)的有效性。
在本说明书中,若上述授权信息的合法性校验通过,则上述云原生集群可以开放上述运行环境的运行权限,以在上述运行环境中,基于上述授权信息中可以包括的运行参数,部署并运行上述待运行的区块链节点。具体而言,由于上述授权信息中包含了区块链的运行参数,因此上述运行环境可以在得到运行上述待运行的区块链的运行权限后,使用上述运行参数部署并运行上述待运行的区块链的节点;可以想见的,如果上述授权信息的合法性校验未通过,则上述云原生集群就不会开放上述运行环境的运行权限,进而保证上述待运行的区块链的节点不会被越权运行。
也就是说,上述方案不仅实现了对基于云原生的区块链运行与否的限制,还实现了对于上述区块链的运行参数方面的限制,例如,假设上述授权信息中包含了上述待运行区块链的命名规范、可运行数量上限、可运行时间区间,则上述待运行的区块链也就需要按照上述命名规范、可运行数量上限、可运行时间区间来运行。
在一种具体实施方式中,上述云原生集群可以包括Kubernetes集群;上述运行环境可以包括:上述Kubernetes集群所支持的全部运行环境;上述预设的文件映射区域可以包括:与预设的集群operator处于同一命名空间的Configmap文件或者secret文件;在此情况下,即意味着上述授权执行机制的作用范围为整个Kubernetes集群,那么上述从上述区块链许可证中获取待运行的区块链的授权信息、上述授权信息的数字签名、以及上述数字签名的验签公钥,并基于上述验签公钥,校验上述授权信息的合法性的过程,就可以具体为:调用上述集群operator,从上述区块链许可证中获取待运行的区块链的授权信息、上述授权信息的数字签名、以及上述数字签名的验签公钥,再基于上述验签公钥,校验上述授权信息的合法性;而上述开放上述运行环境的运行权限的具体方式,则可以是:授权上述Kubernetes集群作为上述待运行的区块链的运行环境。
在示出的另一具体实施方式中,上述云原生集群可以包括Kubernetes集群;上述运行环境可以包括:上述Kubernetes集群中用于运行区块链节点的pod;上述预设的文件映射区域可以包括:与上述用于运行区块链节点的pod处于同一命名空间的Configmap文件或者secret文件;在此情况下,即意味着上述授权执行机制的作用范围为Kubernetes集群中的一个pod,那么上述从上述区块链许可证中获取待运行的区块链的授权信息、上述授权信息的数字签名、以及上述数字签名的验签公钥,并基于上述验签公钥,校验上述授权信息的合法性的具体过程,可以包括:调用上述用于运行区块链节点的pod的初始化容器initcontainer,从上述区块链许可证中获取待运行的区块链的授权信息、上述授权信息的数字签名、以及上述数字签名的验签公钥,再基于上述验签公钥,校验上述授权信息的合法性;在需要对上述运行环境开放运行权限时,则可以:授权上述用于运行区块链节点的pod作为上述待运行的区块链的运行环境。
从以上方案可以看出,在Kubernetes环境下,如果需要对整个集群或者多个pod进行大范围的授权控制,可以通过对Kubernetes operator的定制化开发来完成对于上述区块链许可证的校验环节,而将上述区块链许可证预先存储在与上述operator处于同一命名空间的configmap或者secret文件中;而如果需要实现单链级别的控制,则可以使用运行区块链节点的pod的init container来检测区块链许可证的合法性,而将上述区块链许可证预先存储在与上述pod处于同一命名空间的configmap或者secret文件中。
可以理解的是,虽然本说明书中多以Kubernetes集群为例进行方案描述,但本质上该技术方案的构思重点在于从运行环境层面而非软件内部完成对于软件的授权执行,因此除了Kubernetes集群以外,针对其他基于Kubernetes集群的ACK、Openshift等等,或者不基于Kubernetes的云原生平台,本领域技术人员均可以完成相应的适配和移植工作,本说明书无需对全部可能的实现环境进行列举。
请参见图3,图3是本说明书示出的一种云原生环境下授权运行区块链的逻辑示例图;在该示例中,与前述图1中示例类似,云原生集群中依然可以存在n个容器环境、永久性存储的许可证以及设备信息,但对许可证的读取、校验等操作不再由容器环境中运行的区块链节点中的代码执行,而是由容器环境本身包含的控制代码来完成;也就是说,本方案中与许可证相关的软件实现由容器环境这一层面完成,而运行环境之内的区块链节点可以不包含任何用于校验区块链许可证的代码,而专注于区块链本身的业务和功能。相对于如图1所示的传统方案而言,区块链本身的代码可以更加纯粹、更利于维护,也能够减少区块链代码与容器之外的许可证、设备信息等数据的交互,降低数据误操作风险。
上述内容即为本说明书针对所述基于云原生的区块链的授权运行方法的全部实施例。由上述实施例可知,应用上述方案,由于实际进行合法性校验的步骤在云原生集群层面上执行,校验过程所使用的区块链许可证亦为从云原生集群的预设文件映射区域内获取,并且,对区块链节点的运行控制是通过控制运行环境的运行权限实现的;因此,上述过程中不涉及运行环境内外文件流的打通,也就避免了相关技术中由于跨运行环境的数据读取造成的安全隐患;而且,可避免权限校验环节对软件功能本体的侵入,有利于提高软件封装的效率、并降低软件的维护难度。本说明书还提供了对应的基于云原生的区块链的授权运行装置的实施例如下:
本说明书提出一种基于云原生的区块链的授权运行装置,请参见图4,图4为本说明书示出的一基于云原生的区块链的授权运行装置的结构示例图,该装置可以包括:
获取模块401,从预设的文件映射区域内,获取区块链许可证;其中,所述预设的文件映射区域与用于运行区块链节点的运行环境相关联;
校验模块402,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
授权模块403,若所述授权信息的合法性校验通过,则开放所述运行环境的运行权限,以在所述运行环境中,基于所述授权信息中包括的运行参数,部署并运行所述待运行的区块链节点。
在一种具体实施方式中,上述云原生集群可以包括Kubernetes集群;上述运行环境可以包括:上述Kubernetes集群所支持的全部运行环境;上述预设的文件映射区域可以包括:与预设的集群operator处于同一命名空间的Configmap文件或者secret文件;上述校验模块可以进一步:调用上述集群operator,从上述区块链许可证中获取待运行的区块链的授权信息、上述授权信息的数字签名、以及上述数字签名的验签公钥,并基于上述验签公钥,校验上述授权信息的合法性;上述授权模块可以进一步:授权上述Kubernetes集群作为上述待运行的区块链的运行环境。
在一种具体实施方式中,上述云原生集群可以包括Kubernetes集群;上述运行环境可以包括:上述Kubernetes集群中用于运行区块链节点的pod;上述预设的文件映射区域可以包括:与上述用于运行区块链节点的pod处于同一命名空间的Configmap文件或者secret文件;上述校验模块可以进一步:调用上述用于运行区块链节点的pod的初始化容器init container,从上述区块链许可证中获取待运行的区块链的授权信息、上述授权信息的数字签名、以及上述数字签名的验签公钥,并基于上述验签公钥,校验上述授权信息的合法性;上述授权模块可以进一步:授权上述用于运行区块链节点的pod作为上述待运行的区块链的运行环境。
在一种具体实施方式中,上述授权信息可以包括下列信息中的任意一种或者多种的组合:上述待运行区块链的命名规范;上述待运行区块链的可运行数量上限;上述待运行区块链的可运行时间区间。
在一种具体实施方式中,上述获取模块可以进一步:从预设的文件映射区域内,获取经上述云原生集群公钥加密的区块链许可证,并对上述区块链许可证使用上述云原生集群的私钥进行解密。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的基于云原生的区块链的授权运行方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的基于云原生的区块链的授权运行方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (12)
1.一种基于云原生的区块链的授权运行方法,应用于云原生集群,包括:
从预设的文件映射区域内,获取区块链许可证;其中,所述预设的文件映射区域与用于运行区块链节点的运行环境相关联;
从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并校验所述授权信息的合法性;其中,所述校验所述授权信息的合法性,包括:基于所述验签公钥和所述数字签名校验所述授权信息的完整性,以及,校验所述授权信息与所述运行环境是否匹配;
若所述授权信息的合法性校验通过,则开放所述运行环境的运行权限,以在所述运行环境中,基于所述授权信息中包括的运行参数,部署并运行所述待运行的区块链节点。
2.根据权利要求1所述的方法,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群所支持的全部运行环境;所述预设的文件映射区域包括:与预设的集群operator处于同一命名空间的Configmap文件或者secret文件;
所述从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性,包括:
调用所述集群operator,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述开放所述运行环境的运行权限,包括:授权所述Kubernetes集群作为所述待运行的区块链的运行环境。
3.根据权利要求1所述的方法,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群中用于运行区块链节点的pod;所述预设的文件映射区域包括:与所述用于运行区块链节点的pod处于同一命名空间的Configmap文件或者secret文件;
所述从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性,包括:
调用所述用于运行区块链节点的pod的初始化容器init container,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述开放所述运行环境的运行权限,包括:授权所述用于运行区块链节点的pod作为所述待运行的区块链的运行环境。
4.根据权利要求1所述的方法,所述授权信息包括下列信息中的任意一种或者多种的组合:
所述待运行区块链的命名规范;
所述待运行区块链的可运行数量上限;
所述待运行区块链的可运行时间区间。
5.根据权利要求1所述的方法,所述云原生集群从预设的文件映射区域内,获取区块链许可证,包括:
云原生集群从预设的文件映射区域内,获取经所述云原生集群公钥加密的区块链许可证,并对所述区块链许可证使用所述云原生集群的私钥进行解密。
6.一种基于云原生的区块链的授权运行装置,应用于云原生集群,包括:
获取模块,从预设的文件映射区域内,获取区块链许可证;其中,所述预设的文件映射区域与用于运行区块链节点的运行环境相关联;
校验模块,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并校验所述授权信息的合法性;其中,所述校验所述授权信息的合法性,包括:基于所述验签公钥和所述数字签名校验所述授权信息的完整性,以及,校验所述授权信息与所述运行环境是否匹配;
授权模块,若所述授权信息的合法性校验通过,则开放所述运行环境的运行权限,以在所述运行环境中,基于所述授权信息中包括的运行参数,部署并运行所述待运行的区块链节点。
7.根据权利要求6所述的装置,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群所支持的全部运行环境;所述预设的文件映射区域包括:与预设的集群operator处于同一命名空间的Configmap文件或者secret文件;
所述校验模块进一步:
调用所述集群operator,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述授权模块进一步:授权所述Kubernetes集群作为所述待运行的区块链的运行环境。
8.根据权利要求6所述的装置,所述云原生集群包括Kubernetes集群;所述运行环境包括:所述Kubernetes集群中用于运行区块链节点的pod;所述预设的文件映射区域包括:与所述用于运行区块链节点的pod处于同一命名空间的Configmap文件或者secret文件;
所述校验模块进一步:
调用所述用于运行区块链节点的pod的初始化容器init container,从所述区块链许可证中获取待运行的区块链的授权信息、所述授权信息的数字签名、以及所述数字签名的验签公钥,并基于所述验签公钥,校验所述授权信息的合法性;
所述授权模块进一步:授权所述用于运行区块链节点的pod作为所述待运行的区块链的运行环境。
9.根据权利要求6所述的装置,所述授权信息包括下列信息中的任意一种或者多种的组合:
所述待运行区块链的命名规范;
所述待运行区块链的可运行数量上限;
所述待运行区块链的可运行时间区间。
10.根据权利要求6所述的装置,所述获取模块进一步:
从预设的文件映射区域内,获取经所述云原生集群公钥加密的区块链许可证,并对所述区块链许可证使用所述云原生集群的私钥进行解密。
11.一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现权利要求1~5任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459866.5A CN113868691B (zh) | 2021-12-02 | 2021-12-02 | 一种基于云原生的区块链的授权运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459866.5A CN113868691B (zh) | 2021-12-02 | 2021-12-02 | 一种基于云原生的区块链的授权运行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868691A CN113868691A (zh) | 2021-12-31 |
CN113868691B true CN113868691B (zh) | 2022-05-24 |
Family
ID=78985691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111459866.5A Active CN113868691B (zh) | 2021-12-02 | 2021-12-02 | 一种基于云原生的区块链的授权运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113868691B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277147B (zh) * | 2022-07-21 | 2024-06-11 | 深圳壹账通智能科技有限公司 | 文件溯源验证方法、电子设备及可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2569278A (en) * | 2017-10-23 | 2019-06-19 | Cygnetise Ltd | Methods and apparatus for verifying a user transaction |
CN108055132B (zh) * | 2017-11-16 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 一种业务授权的方法、装置及设备 |
CN108921551B (zh) * | 2018-06-11 | 2021-07-27 | 西安纸贵互联网科技有限公司 | 基于Kubernetes平台的联盟区块链*** |
CN109753769B (zh) * | 2018-11-23 | 2021-03-02 | 众安信息技术服务有限公司 | 一种基于区块链的软件授权方法及*** |
CN112738215B (zh) * | 2020-12-28 | 2023-03-24 | 杭州趣链科技有限公司 | 区块链节点的授权方法、装置、终端设备及介质 |
-
2021
- 2021-12-02 CN CN202111459866.5A patent/CN113868691B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113868691A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10419216B2 (en) | Keying infrastructure | |
US9049013B2 (en) | Trusted security zone containers for the protection and confidentiality of trusted service manager data | |
US8683579B2 (en) | Software activation using digital licenses | |
CN109313690A (zh) | 自包含的加密引导策略验证 | |
CN110245518B (zh) | 一种数据存储方法、装置及设备 | |
KR20130084671A (ko) | 애플리케이션 사용 정책 시행 | |
KR20200000448A (ko) | 소프트웨어 활성화 및 라이센스 추적을 위한 시스템 및 방법 | |
CN109086578A (zh) | 一种软件授权使用的方法、设备及存储介质 | |
CN112507291A (zh) | Android设备的唯一标识的生成方法和装置 | |
CN111460400A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN109117605B (zh) | 一种鉴权方法及其装置、设备和存储介质 | |
US9449193B2 (en) | Information processing apparatus | |
CN114358764A (zh) | 基于区块链中智能合约的隐私计算方法及相关设备 | |
CN113868691B (zh) | 一种基于云原生的区块链的授权运行方法及装置 | |
CN111783051A (zh) | 身份认证方法及装置和电子设备 | |
US11244031B2 (en) | License data structure including license aggregation | |
CN110851851A (zh) | 一种块链式账本中的权限管理方法、装置及设备 | |
CN101324914B (zh) | 一种防盗版的方法和装置 | |
CN111611551B (zh) | 一种基于国密算法的动态链接库保护方法及其*** | |
CN111046440B (zh) | 一种安全区域内容的篡改验证方法及*** | |
CN114372280A (zh) | 一种基于多签智能合约的区块链业务执行方法及装置 | |
CN113806335A (zh) | 一种应用于区块链的数据迁移方法及装置 | |
CN111611587A (zh) | 安全数据处理设备 | |
CN114331442B (zh) | 一种区块链中智能合约的调用方法及装置 | |
WO2018017019A1 (en) | Personal security device and method |
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 |