一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种许可证应用方法及装置与流程

2021-11-10 02:11:00 来源:中国专利 TAG:


1.本说明书涉及云应用技术领域,尤其涉及一种许可证应用方法及装置。


背景技术:

2.通常,应用软件经销商可以使用运行环境识别技术,保证应用软件仅能在被许可的客户的设备上运行;具体而言,可以根据应用软件采集到的环境描述信息(例如ip地址、mac地址等等)识别运行环境,进而确定该环境是否为授权的客户的设备。
3.但是,在云应用场景下,客户的设备常常是计算集群,云应用可以运行在容器或者虚拟机中,而容器或者虚拟机中的环境描述信息大多都支持自定义,因此未获得授权的客户很容易伪造出与授权客户相同的环境描述信息,导致识别机制可能将未获得授权的客户的设备误识别为授权的客户的设备,无法保证应用软件仅在被许可的客户的设备上运行。


技术实现要素:

4.有鉴于此,本说明书公开了一种许可证应用方法和装置。
5.根据本说明书实施例的第一方面,公开了一种许可证应用方法,应用于许可证管理服务器,包括:
6.获取第一计算集群的根证书,所述第一计算集群预先被授予了云应用的运行权限;
7.基于所述根证书生成与所述第一计算集群对应的云应用许可证;
8.将所述云应用许可证与所述云应用的执行代码绑定并分发至第二计算集群进行部署,以使所述第二计算集群在被识别为第一计算集群的情况下,执行所述云应用的执行代码;
9.其中,所述第二计算集群被识别为第一计算集群的条件包括:所述第二计算集群的根证书与所述云应用许可证相匹配。
10.可选的,所述基于所述根证书生成与所述第一计算集群对应的云应用许可证,包括:
11.计算所述第一计算集群的根证书的完整性校验信息;
12.生成与所述第一计算集群对应的、携带所述完整性校验信息的云应用许可证;
13.所述第二计算集群被识别为第一计算集群的条件包括:
14.所述第二计算集群的根证书与所述云应用许可证中携带的所述完整性校验信息相匹配。
15.可选的,所述计算所述第一计算集群的根证书完整性校验值,包括:
16.将所述云应用的识别码作为盐值与所述第一计算集群的根证书组合,计算所述第一计算集群的根证书的含盐完整性校验信息;
17.所述第二计算集群被识别为第一计算集群的条件,包括:
18.将所述云应用的识别码作为盐值与所述第二计算集群的根证书组合后生成的含
盐完整性校验信息,与所述云应用许可证中携带的所述第一计算集群的根证书的含盐完整性校验信息相匹配。
19.可选的,所述将所述云应用许可证与所述云应用的执行代码绑定并分发至第二计算集群进行部署,包括:
20.生成包含所述云应用许可证和所述云应用的执行代码的可部署镜像,并将所述可部署镜像分发至第二计算集群进行部署。
21.根据本说明书实施例的第二方面,公开了一种云应用运行方法,应用于计算集群,包括:
22.获取本计算集群的根证书,以及与待运行的云应用对应的云应用许可证;其中,所述云应用许可证基于具备所述云应用的运行权限的计算集群的根证书生成;
23.将本计算集群的根证书与所述云应用许可证进行匹配,确定本计算集群是否是具备所述云应用的运行权限的计算集群;
24.如果本计算集群是具备所述云应用的运行权限的计算集群,运行所述待运行的云应用。
25.可选的,所述云应用许可证中携带所述具备所述云应用的运行权限的计算集群的根证书的完整性校验信息;
26.所述将本计算集群的根证书与所述云应用许可证进行匹配,确定本计算集群是否是具备所述云应用的运行权限的计算集群,包括:
27.计算本计算集群的根证书的完整性校验信息;
28.将本计算集群的根证书的完整性校验信息与所述云应用许可证中携带的完整性校验信息进行匹配,若匹配成功,则确定本计算集群是具备所述云应用的运行权限的计算集群。
29.可选的,所述云应用许可证中携带的完整性校验信息在生成时加入了盐值,所述盐值为所述云应用的识别码;
30.所述计算本计算集群的根证书的完整性校验信息,包括:
31.将所述云应用的识别码作为盐值与本计算集群的根证书组合,计算本计算集群的根证书的完整性校验信息。
32.可选的,获取与待运行的云应用对应的云应用许可证,包括:
33.获取待运行的云应用的部署镜像,所述部署镜像中包括密钥库文件、密钥库密码;其中,所述密钥库文件中加密存储有与所述云应用对应的云应用许可证、以及许可证管理服务器的公钥,所述云应用许可证中携带的完整性校验信息经所述许可证管理服务器的私钥加密;
34.所述将本计算集群的根证书的完整性校验信息与所述云应用许可证中携带的完整性校验信息进行匹配,包括:
35.使用所述密钥库密码,从所述密钥库文件中提取所述许可证管理服务器的公钥,以及所述云应用许可证;
36.使用所述许可证管理服务器的公钥,对所述云应用许可证中携带的完整性校验信息进行解密,得到解密后完整性校验信息;
37.将本计算集群的根证书的完整性校验信息与所述解密后完整性校验信息进行匹
配。
38.可选的,所述获取本计算集群的根证书,包括:
39.在用于运行所述云应用的容器内,从服务账户的证书挂载目录中获取本计算集群的根证书。
40.根据本说明书实施例的第三方面,公开了一种许可证应用装置,应用于许可证管理服务器,包括:
41.获取模块,获取第一计算集群的根证书,所述第一计算集群预先被授予了云应用运行权限;
42.生成模块,基于所述根证书生成与所述第一计算集群对应的云应用许可证;
43.分发模块,将所述云应用许可证与所述云应用的执行代码绑定并分发至第二计算集群进行部署,以使所述第二计算集群在被识别为第一计算集群的情况下,执行所述云应用的执行代码;
44.其中,所述第二计算集群被识别为第一计算集群的条件包括:所述第二计算集群的根证书与所述云应用许可证相匹配。
45.根据本说明书实施例的第四方面,公开了一种云应用运行装置,应用于计算集群,包括:
46.获取模块,获取本计算集群的根证书,以及与待运行的云应用对应的云应用许可证;其中,所述云应用许可证基于具备所述云应用的运行权限的计算集群的根证书生成;
47.匹配模块,将本计算集群的根证书与所述云应用许可证进行匹配,确定本计算集群是否是具备所述云应用的运行权限的计算集群;
48.运行模块,在本计算集群是具备所述云应用的运行权限的计算集群的情况下,运行所述待运行的云应用。
49.根据本说明书实施例的第五方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一实施例所述的方法。
50.根据本说明书实施例的第六方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
51.以上技术方案中,由于基于被授予云应用运行权限的第一计算集群的根证书生成的云应用许可证仅能与特定的根证书匹配,而计算集群的根证书则通常具有唯一性,可以指示计算集群的身份,因此,如果实际部署云应用的第二计算集群的根证书与上述云应用许可证匹配,则可以证明第二计算集群具备上述云应用的运行权限,可以运行上述云应用;而如果实际部署云应用的第二计算集群的根证书无法与上述云应用许可证书匹配,则可以证明第二计算集群不具备上述云应用的运行权限,上述云应用就不会被运行;可见,上述方案保证了云应用仅在被许可的客户的设备上运行。
附图说明
52.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
53.图1是本说明书示出的一种云应用授权执行的情景示意图;
54.图2是本说明书示出的一种许可证应用方法的流程示例图;
55.图3是本说明书示出的一种云应用运行方法的流程示例图;
56.图4是本说明书示出的一种云应用的部署镜像的结构示例简图;
57.图5是本说明书示出的一种云应用授权执行的交互示例图;
58.图6是本说明书示出的一种许可证应用装置的结构示例图;
59.图7是本说明书示出的一种云应用运行装置的结构示例图;
60.图8是本说明书所述用于许可证应用的计算机设备的结构示例图。
具体实施方式
61.为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
62.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的系统和方法的例子。
63.在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
64.应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
65.请参见图1,图1为本说明书示出的一种云应用授权执行的情景示意图;如图1所示,该情景中可以包括许可证管理服务器,以及分别与上述许可证管理服务器之间建立有通信连接的授权的计算集群、无授权的计算集群、未知的计算集群;其中,许可证管理服务器可以用于根据云应用的授权状况对云应用许可证进行管理,以使授权的计算集群(例如计算集群a)能够运行上述云应用,使无授权的计算集群(例如计算集群b)不能运行上述云应用。
66.当然可以理解的是,上述云应用许可证既可以针对一款云应用,也可以针对多款云应用或者同一款云应用的不同版本。
67.例如,上述许可证管理服务器在确定计算集群a确具备云应用app001的运行权限,则可以将云应用app001的云应用许可证发放给计算集群a,以使计算集群a上的云应用app001可以正常运行;而计算集群b不具备云应用app001的运行权限,许可证管理服务器不会将云应用app001的云应用许可证发放给计算集群b,因此计算集群b即使安装了云应用
app001,也可能无法正常运行。但上述机制无法避免二次销售问题,即,假如上述计算集群a将其持有的云应用app001的云应用许可证发放给其他设备(例如未知的计算集群c),这样计算集群c没有向云应用经销商请求授权,就能够运行云应用app001。
68.在相关技术中,为了解决上述问题,可以使用运行环境识别技术,保证应用软件仅能在被许可的客户的设备上运行;具体而言,可以根据应用软件采集到的环境描述信息(例如ip地址、mac地址等等)识别运行环境,进而确定该环境是否为授权的客户的设备;但是,在云应用场景下,客户的设备常常是计算集群,云应用可以运行在容器或者虚拟机中,而容器或者虚拟机中能够采集的环境描述信息大多都支持自定义,因此未获得授权的客户很容易伪造出与授权客户相同的环境描述信息,导致识别机制可能将未获得授权的客户的设备误识别为授权的客户的设备,无法保证应用软件仅在被许可的客户的设备上运行。
69.基于此,本说明书提出一种利用计算集群的根证书生成与计算集群绑定的云应用许可证,进而控制分发的云应用是否有权运行的技术方案。
70.在实现时,许可证管理服务器可以收集具备云应用的运行权限的计算集群的根证书,并基于该根证书生成对应的云应用许可证,再将该云应用许可证与云应用的执行代码绑定分发,从而使部署该云应用的计算集群只有在自身的根证书与云应用许可证相匹配的情况下才能运行上述云应用。
71.在以上技术方案中,由于计算集群的根证书可以指示计算集群的身份,因此,基于被授予云应用运行权限的第一计算集群的根证书生成的云应用许可证仅能与特定的根证书匹配,而计算集群的根证书则通常具有唯一性,可以指示计算集群的身份,因此,;如果实际部署云应用的第二计算集群的根证书与上述云应用许可证匹配,则可以证明第二计算集群被授予具备上述云应用的运行权限,可以运行上述云应用;因此,上述方案可以准确识别授权设备、控制应用运行而如果实际部署云应用的第二计算集群的根证书无法与上述云应用许可证书匹配,则可以证明第二计算集群不具备上述云应用的运行权限,上述云应用就不会被运行;可见,上述方案保证了云应用仅在被许可的客户的设备上运行。
72.下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
73.请参考图2,图2是本说明书一实施例提供的一种许可证应用方法,可以应用于如图1所示情景下的许可证管理服务器,包括以下步骤:
74.s201,获取第一计算集群的根证书,所述第一计算集群预先被授予了云应用的运行权限;
75.s202,基于所述根证书生成与所述第一计算集群对应的云应用许可证;
76.s203,将所述云应用许可证与所述云应用的执行代码绑定并分发至第二计算集群进行部署,以使所述第二计算集群在被识别为第一计算集群的情况下,执行所述云应用的执行代码;
77.其中,所述第二计算集群被识别为第一计算集群的条件包括:所述第二计算集群的根证书与所述云应用许可证相匹配。
78.上述许可证管理服务器,既可以是单台物理服务器,也可以是云服务平台上的虚拟机,或者计算集群等等,本领域技术人员可以根据具体需求自行设计许可证管理服务器的配置方案;在示出的一种实施方式中,上述许可证管理服务器可以与上述第一计算集群、第二计算集群处于同一云计算平台中。
79.上述计算集群,可以指任意包含多台计算机设备的计算机集群,亦可以进一步简称为集群;通常,计算集群中的多台计算机设备可以由统一的软件进行调度,而用于调度的软件的名称也常被代指集群;例如,kubernetes是业内一种容器编排引擎,又称k8s,它可以被部署在计算集群上,并将计算集群中的计算机作为节点进行调度,在这种情况下,部署有kubernetes的集群也可以被称为kubernetes集群。
80.上述的根证书,可以指上述计算集群用于认证身份的自签名根证书;举例而言,对于kubernetes集群而言,通常需要pki(public key infrastructure,公开密钥基础设施)证书才能进行基于tls(transport layer security,传输层安全协议)的身份验证,因此,kubernetes的集群会统一配置用于认证集群本身的根证书ca.crt。可以理解的,在除kubernetes以外的其他的计算集群中,根证书的文件名、存储目录可能不同,根证书的具体内容也可能存在差异,但由于根证书本身用于认证的功能特质并未发生变化,因此本领域技术人员可以根据本说明书的公开内容,完成对应的迁移应用和扩展。
81.在本说明书中,上述许可证管理服务器可以首先获取被授予云应用运行权限的第一计算集群的根证书,其中,该第一计算集群指预先被授予了云应用的运行权限的计算集群。例如,云应用软件app001被销售给了客户张三,而张三拥有一组计算集群,那么,张三拥有的计算集群就是被授予了云应用的运行权限的计算集群,也即第一计算集群。在该步骤中,上述许可证管理服务器即可获取张三的计算集群的根证书。
82.可以理解的是,上述许可证管理服务器并不一定直接与上述第一计算集群进行通信;例如,已知上述第一计算集群由购买了云应用运行权限的客户张三控制,则客户张三可以在获取到第一计算集群的根证书之后,可以通过电子邮件、即时通信软件、自动化办公软件等方式发送至上述许可证管理服务器,以使许可证管理服务器在不直接对接第一计算集群的情况下,得到第一计算集群的根证书。
83.在本说明书中,上述许可证管理服务器可以基于上述根证书生成与上述第一计算集群对应的云应用许可证。具体而言,由于在本说明书中,云应用许可证将在后续步骤中用于校验其他的根证书,因此,在生成根证书的过程中,可以采用能够保证其可验证性质的方式进行处理;例如,使用对称加密算法,将上述第一计算集群的根证书进行加密等等。
84.可以理解的是,上述许可证管理服务器在生成许可证时,既可以针对单个计算集群生成,也可以针对多个计算集群生成。举例而言,假设云应用软件app001被销售给了客户张三和李四,而张三与李四各自拥有一组计算集群,那么,上述许可证管理服务器既可以使用张三与李四的两组计算集群的根证书生成通用的云应用许可证,也可以分别生成针对张三的计算集群的云应用许可证以及针对李四的计算集群的云应用许可证。
85.在本说明书中,上述许可证管理服务器在生成云应用许可证完毕之后,可以将上述云应用许可证与上述云应用的执行代码绑定并分发至第二计算集群进行部署,以使上述第二计算集群在被识别为第一计算集群的情况下,执行上述云应用的执行代码;其中,上述第二计算集群被识别为第一计算集群的条件可以包括:上述第二计算集群的根证书与上述云应用许可证相匹配。
86.具体而言,上述许可证管理服务器可以将生成的云应用许可证与对应的云应用的执行代码绑定,例如封在同一个安装包内,或者在云应用的执行代码中添加对生成的云应用许可证的访问代码等等;在第二计算集群部署上述云应用之后,可以基于上述云应用许
可证及其根证书对其身份进行识别,如果上述第二计算集群的根证书与上述云应用许可证相匹配,则可以证明该第二计算集群是第一计算集群,即,被授予了云应用运行权限的计算集群,因此可以执行上述云应用的执行代码。
87.需要指出的是,上述第一计算集群与第二计算集群均为逻辑概念,即,预先被授予云应用运行权限的计算集群为第一计算集群,实际部署云应用的计算集群为第二计算集群;因此,两者之间没有必然的联系,第二计算集群既可能是第一计算集群,也可能不是第一计算集群。
88.在示出的一种实施方式中,上述对第一计算集群的根证书的处理算法,可以是摘要(亦可称杂凑,散列,哈希,hash)算法,而摘要算法生成的摘要信息由于其对修改敏感的特性,亦常用于检验信息的完整性;换言之,在生成与上述第一计算集群对应的云应用许可证时,可以首先计算所述第一计算集群的根证书的完整性校验信息;再生成与所述第一计算集群对应的、携带所述完整性校验信息的云应用许可证。相对应的,在使用上述云应用许可证进行校验时,则可以将上述第二计算集群被识别为第一计算集群的条件包括:上述第二计算集群的根证书与上述云应用许可证中携带的上述完整性校验信息相匹配。由于完整性校验信息通常比根证书原文的容量更小,因此,使用根证书的完整性校验信息来完成上述校验过程,既不会损失校验的可靠性,又能降低对资源的占用。
89.在示出的一种实施方式中,上述完整性校验信息可以是加盐的完整性校验信息;具体而言,上述云应用许可证不仅可以与计算集群形成对应关系,还可以与云应用形成对应关系;例如,可以使不同的云应用在同一台计算集群上使用不同的云应用许可证,从而进一步满足开发者和经销商对于精细化关系的需求。在具体实施中,可以将上述云应用的识别码作为盐值与上述第一计算集群的根证书组合,计算上述第一计算集群的根证书的含盐完整性校验信息;相对应的,上述第二计算集群被识别为第一计算集群的条件,可以设置为:将上述云应用的识别码作为盐值与上述第二计算集群的根证书组合后生成的含盐完整性校验信息,与上述云应用许可证中携带的上述第一计算集群的根证书的含盐完整性校验信息相匹配。
90.举例而言,可以将上述云应用的识别码添加到上述根证书的尾部,完成上述组合过程,再调用摘要算法生成加盐完整性校验信息;在实际应用中,上述盐值与根证书的组合方式可以根据具体需求自行选择,本说明书对此无需详细限定。
91.可以理解的是,由于在云原生场景下,计算集群上运行的云应用数量可能远高于传统场景,因此如果一组计算集群中共用一份云应用许可证,一旦云应用许可证不可用,则可能导致该计算集群上的大量云应用无法执行;而上述设计会导致不同的云应用会使用不同的云应用许可证进行身份校验,单份云应用许可证不可用不会影响到其他的云应用,因此相对于一组计算集群中共用一份云应用许可证的方案而言,该方案事实上能够显著提升计算集群的可用性。
92.在示出的一种实施方式中,上述将上述云应用许可证与上述云应用的执行代码绑定并分发至第二计算集群进行部署,的具体方式,可以通过镜像部署完整;具体而言,可以首先生成包含上述云应用许可证和上述云应用的执行代码的可部署镜像,再将上述可部署镜像分发至第二计算集群进行部署。
93.采用镜像部署方式,既可以减少部署时的繁琐操作,也能够减少云应用代码被篡
改的可能性。
94.以上即本说明书示出的关于许可证应用方法的全部实施例,从上述实施例可知,由于基于被授予云应用运行权限的第一计算集群的根证书生成的云应用许可证仅能与特定的根证书匹配,而计算集群的根证书则通常具有唯一性,可以指示计算集群的身份,因此,如果实际部署云应用的第二计算集群的根证书无法与上述云应用许可证书匹配,则可以证明第二计算集群不具备上述云应用的运行权限,上述云应用就不会被运行;可见,上述方案保证了云应用仅在被许可的客户的设备上运行。
95.本说明书还提供了从计算集群一侧执行的云应用运行方式实施例如下。
96.请参见图3,图3是本说明书示出的一种云应用运行方法的流程示例图;该方法应用于计算集群,可以包括如下步骤:
97.s301,获取本计算集群的根证书,以及与待运行的云应用对应的云应用许可证;其中,所述云应用许可证基于具备所述云应用的运行权限的计算集群的根证书生成;
98.s302,将本计算集群的根证书与所述云应用许可证进行匹配,确定本计算集群是否是具备所述云应用的运行权限的计算集群;
99.s303,如果本计算集群是具备所述云应用的运行权限的计算集群,运行所述待运行的云应用。
100.上述计算集群、根证书等概念的定义与前述许可证应用方法实施例中一致,可以参见前文叙述,本说明书此处不再赘述。
101.在本说明书中,上述计算集群可以获取本计算集群的根证书,以及与待运行的云应用对应的云应用许可证;其中,上述云应用许可证基于具备上述云应用的运行权限的计算集群的根证书生成。例如,该计算集群需要运行云应用app001,则可以获取本计算集群的根证书,再获取与该云应用app001对应的云应用许可证。可以理解的是,该云应用许可证可以是与该云应用app001绑定后被发放到该计算集群中的,例如共存在同一个安装包或者镜像中,又或者该云应用中内嵌了指向该云应用app001对应的云应用许可证的访问代码等等。
102.在示出的一种实施方式中,上述获取本计算集群的根证书的方式,可以是在用于运行上述云应用的容器内,从服务账户的证书挂载目录中获取本计算集群的根证书。具体而言,以kubernetes集群为例,其中的容器可以被称为pod;pod在被初始化时,其所在kubernetes集群的根证书ca.crt会被服务账户(service account)自动挂载到如下目录:
103./var/run/secrets/kubernetes.io/serviceaccount/
104.而经过分析,发明人发现该过程只能由集群自动完成,无法通过外在的方式进行干预或者篡改,因此从该挂载目录中获取本计算集群的根证书,可以规避人为篡改导致的安全风险,大幅提高获取到的根证书的可靠性,且由于ca.crt本质上是一个可公开的身份证书,因此也不涉及用户隐私风险。
105.在本说明书中,上述计算集群可以将本计算集群的根证书与上述云应用许可证进行匹配,确定本计算集群是否是具备上述云应用的运行权限的计算集群;举例而言,如果上述云应用许可证中携带的是具备上述云应用的运行权限的计算集群的根证书的对称加密密文,则可以根据预先协商的对称加密密钥对该密文进行解密,从而得到具备上述云应用的运行权限的计算集群的根证书明文,再将该明文与本计算集群的根证书进行匹配。
106.可以理解的是,上述匹配步骤s302,既可以在云应用启动时进行,也可以按预设的时间间隔周期性进行;通常而言,检查时间间隔越短,对云应用运行环境的限制就越有效,但对性能的消耗也就越高;本领域技术人员可以根据具体的业务需求自行选择上述匹配步骤的执行时序,本说明书不作详细限定。
107.亦可以理解的是,上述云应用许可证中可能携带不止一个根证书,因此,上述匹配也可以被具体设计为,在上述云应用许可证中携带的多个根证书的验证信息中,查找是否存在与本计算集群的根证书匹配的验证信息;其中,该验证信息可以是根证书明文,也可以是根证书密文或者散列值等等。
108.在示出的一种实施方式中,上述云应用许可证中携带上述具备上述云应用的运行权限的计算集群的根证书的完整性校验信息;上述将本计算集群的根证书与上述云应用许可证进行匹配,确定本计算集群是否是具备上述云应用的运行权限的计算集群的过程,可以首先计算本计算集群的根证书的完整性校验信息;再将本计算集群的根证书的完整性校验信息与上述云应用许可证中携带的完整性校验信息进行匹配,若匹配成功,即可确定本计算集群是具备上述云应用的运行权限的计算集群。
109.应用上述方案,可以利用完整性校验信息对修改敏感的特性,快速确定本计算集群的根证书与具备上述云应用运行权限的计算集群的根证书是否相同,进而确定本计算集群是否具备上述云应用运行权限。由于完整性校验信息通常容量小于根证书本身,因此,也可以一定程度上减少对资源的消耗。
110.在示出的一种实施方式中,上述云应用许可证中携带的完整性校验信息在生成时加入了盐值,上述盐值为上述云应用的识别码;在计算本计算集群的根证书的完整性校验信息时,可以将上述云应用的识别码作为盐值与本计算集群的根证书组合,计算本计算集群的根证书的完整性校验信息。
111.可以理解的是,由于在云原生场景下,计算集群上运行的云应用数量可能远高于传统场景,因此如果一组计算集群中共用一份云应用许可证,一旦云应用许可证不可用,则可能导致该计算集群上的大量云应用无法执行;而上述设计会导致不同的云应用会使用不同的云应用许可证进行身份校验,单份云应用许可证不可用不会影响到其他的云应用,因此相对于一组计算集群中共用一份云应用许可证的方案而言,该方案事实上能够显著提升计算集群的可用性。
112.在示出的一种实施方式中,上述与待运行的云应用对应的云应用许可证,可以从待运行的云应用的部署镜像中获取;具体而言,请参见图4,图4是本说明书示出的一种云应用的部署镜像的结构示例简图;在该图中,可见部署镜像中包括密钥库文件、密钥库密码,还包括待运行的云应用的执行代码;其中,上述密钥库文件中加密存储有与上述云应用对应的云应用许可证、以及许可证管理服务器的公钥,上述云应用许可证中携带的完整性校验信息则可以经上述许可证管理服务器的私钥加密,其可以视为是对该完整性校验信息对应的根证书的一个数字签名。
113.对应的,将本计算集群的根证书的完整性校验信息与上述云应用许可证中携带的完整性校验信息进行匹配时,可以首先使用上述密钥库密码,从上述密钥库文件中提取上述许可证管理服务器的公钥,以及上述云应用许可证;再使用上述许可证管理服务器的公钥,对上述云应用许可证中携带的完整性校验信息进行解密,得到解密后完整性校验信息;
最后将本计算集群的根证书的完整性校验信息与上述解密后完整性校验信息进行匹配。
114.在本说明书中,如果本计算集群是具备所述云应用的运行权限的计算集群,运行所述待运行的云应用。如前上述,如果本计算集群的根证书与上述云应用许可证相匹配,即可证明计算集群是具备所述云应用的运行权限的计算集群,因此可以运行该待运行的云应用。
115.请参见图5,图5是图5是本说明书示出的一种云应用授权执行的交互示例图;在该示例中,客户计算集群可以首先向许可证管理服务器发送本集群的根证书,再由许可证管理服务器基于客户计算集群的根证书、以及云应用识别码,生成加盐完整性校验信息,并添加数字签名,得到云应用许可证;云应用许可证可以加密存储在密钥库文件中,并进一步打包入云应用的部署镜像后发送到客户计算集群中;客户计算集群在接收到云应用的部署镜像后,则可以解包部署镜像和密钥库文件,校验云应用许可证的数字签名,并获取本计算集群的根证书,以及云应用识别码,计算本计算集群的根证书的加盐完整性校验值;最后,客户计算集群可以将本计算集群的根证书的加盐完整性校验值,与云应用许可证中携带的加盐完整性校验值进行比对;比对正确则允许运行该云应用。
116.以上即为本说明书关于云应用运行方法的全部实施例,基于以上实施例可知,由于云应用许可证是基于具备所述云应用的运行权限的计算集群的根证书生成的,因此只要本计算集群的根证书与所述云应用许可证匹配成功,就能够确定本计算集群是否是具备所述云应用的运行权限的计算集群,完成云应用运行过程;而假如本计算集群不具备上述运行权限,则上述匹配不会成功,云应用也就不会被运行。可见,上述方案实现了对云应用的可靠的授权运行控制。
117.上述内容即为本说明书的全部方法实施例。本说明书还提供了对应的许可证应用装置以及云应用运行装置的实施例如下:
118.本说明书提出一种许可证应用装置,其应用于许可证管理服务器,该许可证应用装置的结构示例如图6所示,包括:
119.获取模块601,获取第一计算集群的根证书,所述第一计算集群预先被授予了云应用运行权限;
120.生成模块602,基于所述根证书生成与所述第一计算集群对应的云应用许可证;
121.分发模块603,将所述云应用许可证与所述云应用的执行代码绑定并分发至第二计算集群进行部署,以使所述第二计算集群在被识别为第一计算集群的情况下,执行所述云应用的执行代码;
122.其中,所述第二计算集群被识别为第一计算集群的条件包括:所述第二计算集群的根证书与所述云应用许可证相匹配。
123.请参见图7,图7是本说明书实施例提供一种云应用运行装置的结构示例图,该装置应用于计算集群,可以包括:
124.获取模块701,获取本计算集群的根证书,以及与待运行的云应用对应的云应用许可证;其中,所述云应用许可证基于具备所述云应用的运行权限的计算集群的根证书生成;
125.匹配模块702,将本计算集群的根证书与所述云应用许可证进行匹配,确定本计算集群是否是具备所述云应用的运行权限的计算集群;
126.运行模块703,在本计算集群是具备所述云应用的运行权限的计算集群的情况下,
运行所述待运行的云应用。
127.本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的许可证应用方法,或者云应用运行方法。
128.图8示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
129.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
130.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
131.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
132.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
133.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
134.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
135.本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的许可证应用方法。
136.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
137.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
138.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
139.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
140.以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献