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

一种镜像管理方法及装置与流程

2022-05-06 07:21:35 来源:中国专利 TAG:


1.本技术涉及云计算、信息安全技术领域,尤其涉及一种镜像管理方法及装置。


背景技术:

2.容器技术是一种操作系统层面的进程级虚拟化技术,通过对cpu、内存和文件系统等资源进行划分、隔离和控制,实现进程之间透明的、互不影响的资源使用。在生产环境中使用容器技术需要容器平台和镜像之间的共同配合。
3.其中,容器平台是运行容器的系统,通常来说可以包含服务器、云平台、容器引擎、容器编排工具等中的一项或者多项,可实现容器部署、运行、维护、管理等功能。
4.镜像是容器的基础,容器引擎可使用镜像启动容器。镜像是由封装好的文件系统和描述镜像的元数据构成的文件系统包,包含一个应用所需要的全部要素包括系统、环境、配置和应用程序代码本身等。也就是说,镜像内容的安全性直接影响到容器运行的安全性,进而影响到容器底层计算、存储和网络基础设施的安全性。
5.因此,如何保证镜像的完整性和安全性是本领域技术人员正在研究的热点问题。


技术实现要素:

6.本技术实施例公开了一种镜像管理方法及装置,能够实现对镜像的安全性和完整性的控制,保障镜像内容安全和容器平台的安全,提升用户体验。
7.本技术实施例第一方面公开了一种镜像管理方法,包括:
8.接收第一终端设备发送的签名者的信息和目标镜像的信息;该签名者为指定为目标镜像进行签名的对象;
9.基于签名者的信息和目标镜像的信息获得签名文件;
10.若在容器平台返回的目标镜像的第一摘要与基于签名文件得到的第二摘要匹配,则指示容器平台允许使用目标镜像启动容器。
11.在上述实施例中,通过第一终端设备获取签名者的信息和目标镜像的信息,根据签名者的信息和目标镜像的信息获取目标镜像的签名文件。由于目标镜像的摘要与目标镜像的内容之间存在映射关系,若目标镜像内容被纂改,则目标镜像的摘要也会对应变化,因此,在容器平台使用目标镜像启动容器时,若验证目标镜像的第一摘要与生成签名文件时的目标镜像的第二摘要匹配,则说明目标镜像的内容没有被纂改,因此可以指示容器平台允许使用目标镜像启动容器,从而可以实现对目标镜像的安全性和完整性的控制,保障了目标镜像内容安全和容器平台的安全。
12.此外,签名者只需要通过第一终端设备即可对镜像进行签名,无需签名者在本地终端生成密钥对、保存密钥、生成签名文件等等,提高了镜像的安全性,也减轻了签名者的操作复杂度,提升了用户体验。
13.上述方法实施例可以执行在镜像开发前、镜像推送时、镜像使用时,因此采用上述方法实施例可以实现对镜像整个生命周期的跟踪,且可以与镜像构建的流水线(pipeline)
进行耦合,适配当前的云原生开发技术。
14.在第一方面的一种可能的实施方式中,在接收第一终端设备发送的签名者的信息和所述目标镜像的信息之前,所述方法还包括:
15.接收第二终端设备发送的目标镜像的指示信息和所述签名者的描述信息。进一步的,该签名者的描述信息用于指示对目标镜像进行签名的签名者。
16.可以看出,第二终端设备可以指示需要哪些签名者对目标镜像进行签名。在一种可能的设计中,管理员通过第二终端设备输入镜像的控制策略,该控制策略包含前述的目标镜像的指示信息和所述签名者的描述信息,该控制策略用于对目标镜像进行控制。可以看出,管理员只需要输入控制策略,即可实现对镜像的控制,提升了用户体验。尤其对于存在有多个镜像需要管理时(例如企业、组织等对开发的镜像的管理),可以实现镜像研发团队、镜像管理团队、镜像签名者之间的解耦,提升了用户体验。
17.在第一方面的又一种可能的实施方式中,所述目标镜像的指示信息包括所述目标镜像的身份标识和/或用于运行所述目标镜像的容器集群的标识信息。
18.可以看出,通过本技术实施例,不仅可以实现对单个镜像的控制功能,还可以实现对需要在某容器集群中运行的多个镜像进行控制,从而实现各种粒度的镜像控制功能,满足了用户对单个镜像、多个镜像、需要在某一容器集群运行的镜像的控制需求。
19.在第一方面的又一种可能的实施方式中,所述签名者的信息中包括签名者的身份信息,所述方法还包括:
20.根据所述身份信息确定所述至少一个签名者的身份认证通过。
21.上述说明了镜像管理过程中可以对签名者的身份进行认证,这样可以避免不可信的签名者对签名文件进行签名,提高了镜像的安全性。
22.在第一方面的又一种可能的实施方式中,所述根据所述身份信息确定所述至少一个签名者的身份信息认证通过,包括:
23.接收所述第二终端设备发送的所述签名者的认证信息;
24.根据所述签名者的认证信息和所述身份信息,确定所述签名者的身份验证通过。
25.上述提供了一种认证签名者的身份的方法,(管理员或者自动化管理程序等)可以通过第二终端设备可以设定签名者的认证信息,第一终端设备上传签名者的身份信息时,可以将该身份信息与认证信息进行比对,若比对一致则说明签名者的身份可信。
26.在第一方面的又一种可能的实施方式中,通过应用程序接口api支持与所述第二终端设备、所述第一终端设备、所述容器平台之间的信息传输。
27.上述说明了通信的方式,通过api接口与第二终端设备、第一终端设备和容器平台之间进行连接,上述设备通过只需通过api接口调用相关功能,即可实现镜像管理、镜像签名、镜像启动控制等功能,降低了用户操作难度。
28.在第一方面的又一种可能的实施方式中,所述接收第二终端设备发送的至少一个签名者的描述信息之后,所述方法还包括:
29.生成所述签名者对应的密钥对,所述密钥对包括公钥和私钥。
30.上述说明了镜像管理过程中可以生成密钥对,该密钥对可以在签名、身份认证、启动控制过程中使用。进一步的,该密钥对可以保存在镜像管理装置中,无需用户在本地保存公私钥等,可以避免密钥泄露。
31.在第一方面的又一种可能的实施方式中,所述目标镜像的信息包括所述目标镜像的哈希值;所述签名者的信息对应有所述签名者的私钥;所述基于所述签名者的信息和所述目标镜像的信息获得签名文件,包括:
32.使用所述签名者的私钥和所述目标镜像的哈希值,生成所述签名文件。
33.上述说明了生成签名文件的方式,镜像的信息中包括镜像的哈希值,通过签名者的私钥和镜像的哈希值可以生成签名文件。由于镜像的内容与镜像的哈希值之间存在映射关系,若镜像内容被纂改,则镜像的摘要也会对应变化,从而可以通过镜像哈希值辨别镜像的内容是否被纂改。
34.在第一方面的又一种可能的实施方式中,所述方法还包括:
35.接收容器平台发送的请求消息,所述请求信息用于请求使用所述目标镜像启动容器平台上的所述容器。进一步的,该请求消息中包括所述第一摘要。
36.具体的,容器平台可以在请求消息中携带目标镜像的指示信息,通过api接口调用镜像的启动控制。这样一来,容器平台启动容器时,提供目标镜像的摘要信息,则可以通过反馈的指示信息确定镜像是否安全,无需调整容器平台的镜像检查功能,可以快速兼容多种服务商提供的容器平台。
37.在第一方面的又一种可能的实施方式中,所述方法还包括:
38.根据所述签名者的认证信息,将所述签名者的认证信息添加到签名者数据库。
39.在第一方面的又一种可能的实施方式中,签名者包括第一签名者和第二签名者;第一终端设备包括第一子设备和第二子设备,其中,第一子设备为第一签名者使用的设备;第二子设备为第二签名者使用的设备。
40.通过本技术中实施例,多个签名者可以分别通过一个或者多个设备上传用于签名的信息,从而分别获取签名文件,实现多人签名机制。
41.第二方面,本技术实施例提供了一种镜像管理装置,包括:
42.接收单元,用于接收第一终端设备发送的签名者的信息和目标镜像的信息;所述签名者为指定为所述目标镜像进行签名的对象;
43.处理单元,用于基于所述签名者的信息和所述目标镜像的信息获得签名文件;
44.所述处理单元,用于若在容器平台返回的所述目标镜像的第一摘要与基于所述签名文件得到的第二摘要匹配,则指示所述容器平台允许使用所述目标镜像启动容器。
45.在第二方面的一种可能的实施方式中,所述接收单元,还用于:
46.接收第二终端设备发送的所述目标镜像的指示信息和所述签名者的描述信息,其中,所述签名者的描述信息用于指示对所述目标镜像进行签名的签名者。
47.在第二方面的又一种可能的实施方式中,所述目标镜像的指示信息包括所述目标镜像的身份标识和/或用于运行所述目标镜像的容器集群的标识信息。
48.在第二方面的又一种可能的实施方式中,所述签名者的信息中包括签名者的身份信息;所述处理单元,还用于:
49.根据所述身份信息确定所述至少一个签名者的身份认证通过。
50.在第二方面的又一种可能的实施方式中,所述接收单元,还用于接收所述第二终端设备发送的所述签名者的认证信息;
51.所述处理单元,还用于根据所述签名者的认证信息和所述身份信息,确定所述签
名者的身份验证通过。
52.在第二方面的又一种可能的实施方式中,所述装置通过应用程序接口api支持与所述第二终端设备、所述第一终端设备、所述容器平台之间的信息传输。
53.在第二方面的又一种可能的实施方式中,所述处理单元,还用于生成所述签名者对应的密钥对,所述密钥对包括公钥和私钥。
54.在第二方面的又一种可能的实施方式中,所述目标镜像的信息包括所述目标镜像的哈希值;所述签名者的信息对应有所述签名者的私钥;所述处理单元,具体用于使用所述签名者的私钥和所述目标镜像的哈希值,生成所述签名文件。
55.在第二方面的又一种可能的实施方式中,所述接收单元,还用于接收容器平台发送的请求消息,所述请求信息用于请求使用所述目标镜像启动所述容器平台上的容器。进一步的,该请求消息中包括所述第一摘要。
56.在第二方面的又一种可能的实施方式中,所述处理单元,还用于根据所述签名者的认证信息,将所述签名者的认证信息添加到签名者数据库。
57.在第二方面的又一种可能的实施方式中,签名者包括第一签名者和第二签名者;第一终端设备包括第一子设备和第二子设备,其中,第一子设备为第一签名者使用的设备;第二子设备为第二签名者使用的设备。
58.第三方面,本技术实施例提供了一种镜像管理装置,包括处理器和存储器;该处理器用于执行存储器存储的计算机指令,使得镜像管理装置实现第一方面或者第一方面的任意一种可能的实施方式所描述的方法。
59.在第三方面的一种可能的实施方式中,该镜像管理装置还包括通信接口,该处理器具体用于:
60.通过通信接口接收第一终端设备发送的签名者的信息和目标镜像的信息;所述签名者为指定为所述目标镜像进行签名的对象;
61.基于所述签名者的信息和所述目标镜像的信息获得签名文件;
62.若在容器平台返回的所述目标镜像的第一摘要与基于所述签名文件得到的第二摘要匹配,则指示所述容器平台允许使用所述目标镜像启动容器。
63.在第三方面的又一种可能的实施方式中,该处理器,还用于:
64.通过通信接口接收第二终端设备发送的所述目标镜像的指示信息和所述签名者的描述信息,其中,所述签名者的描述信息用于指示对所述目标镜像进行签名的签名者。
65.在第三方面的又一种可能的实施方式中,所述目标镜像的指示信息包括所述目标镜像的身份标识和/或用于运行所述目标镜像的容器集群的标识信息。
66.在第三方面的又一种可能的实施方式中,所述签名者的信息中包括签名者的身份信息;该处理器,还用于:
67.根据所述身份信息确定所述至少一个签名者的身份认证通过。
68.在第三方面的又一种可能的实施方式中,该处理器,还用于:
69.通过通信接口接收所述第二终端设备发送的所述签名者的认证信息;
70.根据所述签名者的认证信息和所述身份信息,确定所述签名者的身份验证通过。
71.在第三方面的又一种可能的实施方式中,所述装置通过应用程序接口api支持与所述第二终端设备、所述第一终端设备、所述容器平台之间的信息传输。
72.在第三方面的又一种可能的实施方式中,该处理器,还用于生成所述签名者对应的密钥对,所述密钥对包括公钥和私钥。
73.在第三方面的又一种可能的实施方式中,所述目标镜像的信息包括所述目标镜像的哈希值;所述签名者的信息对应有所述签名者的私钥;该处理器,具体用于使用所述签名者的私钥和所述目标镜像的哈希值,生成所述签名文件。
74.在第三方面的又一种可能的实施方式中,所述处理器,还用于通过通信接口1204接收容器平台发送的请求消息,所述请求信息用于请求使用所述目标镜像启动所述容器平台上的容器。进一步的,该请求消息中包括所述第一摘要。
75.在第三方面的又一种可能的实施方式中,所述处理器,还用于根据所述签名者的认证信息,将所述签名者的认证信息添加到签名者数据库。
76.在第三方面的又一种可能的实施方式中,签名者包括第一签名者和第二签名者;第一终端设备包括第一子设备和第二子设备,其中,第一子设备为第一签名者使用的设备;第二子设备为第二签名者使用的设备。
77.第四方面,本技术实施例公开了一种服务器,所述服务器包括处理器和存储器;所述处理器用于执行存储器存储的计算机指令,使得所述服务器实现第一方面或者第一方面的任意一种可能的实施方式所描述方法。
78.第五方面,本技术实施例公开了一种镜像管理系统,包括镜像管理装置、第一终端设备和第二终端设备。其中,所述镜像管理装置包括第二方面或第三方面的任意一种可能的实施方式所描述的装置;又或者包括第三方面或者第三方面的任意一种可能的实施方式所描述的装置。
79.第六方面,本技术实施例公开了一种镜像管理系统,包括镜像管理装置、第一终端设备、第二终端设备和容器平台。其中,所述镜像管理装置包括第二方面或第三方面的任意一种可能的实施方式所描述的装置;又或者包括第三方面或者第三方面的任意一种可能的实施方式所描述的装置。
80.第七方面,本技术实施例公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令用于实现第一方面或者第一方面的任意一种可能的实施方式所描述的方法。
81.第八方面,本技术实施例公开了一种计算机程序产品,所述计算机程序产品用于实现第一方面或者第一方面的任意一种可能的实施方式所描述的方法。
82.可以理解的,本技术第二方面、第三方面所提供的技术方案的有益效果可以参考第一方面的有益效果,因此不再赘述。
附图说明
83.以下对本技术实施例用到的附图进行介绍。
84.图1是本技术实施例提供的一种镜像管理系统的架构示意图;
85.图2是本技术实施例提供的一种镜像管理系统的使用场景示意图;
86.图3是本技术实施例提供的一种可能的镜像控制策略和签名者的描述信息的示意图;
87.图4是本技术实施例提供的一种镜像管理方法的流程示意图;
88.图5是本技术实施例提供的一种第二终端设备与镜像管理装置进行通信的场景示意图;
89.图6是本技术实施例提供的一种第一终端设备与镜像管理装置进行通信的场景示意图;
90.图7是本技术实施例提供的一种容器平台与镜像管理装置进行通信的场景示意图;
91.图8是本技术实施例提供的又一种镜像管理方法的流程示意图;
92.图9是本技术实施例提供的再一种镜像签名方法的流程示意图;
93.图10是本技术实施例提供的再一种镜像签名方法的流程示意图;
94.图11是本技术实施例提供的一种镜像管理装置的结构示意图;
95.图12是本技术实施例提供的又一种镜像管理装置的结构示意图。
具体实施方式
96.下面结合本技术实施例中的附图对本技术实施例进行描述。需要说明的是,本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
97.下面先对本技术中涉及的技术术语进行解释。
98.一、容器
99.容器是与系统其他部分隔离开的一系列进程。容器技术是计算机操作系统中的一种虚拟化技术,该技术使得进程运行于相对独立和隔离的环境(包含独立的文件系统、命名空间、资源视图等),从而能够简化软件的部署流程,增强软件的可移植性和安全性,并提高系统资源利用率。容器技术广泛应用于云计算领域的服务化场景,使用容器技术需要容器镜像、容器引擎、编排平台等对象和组件之间的共同配合。
100.二、镜像
101.镜像是由封装好的文件系统和描述镜像的元数据构成的文件系统包,包含一个应用所需要的要素,包括系统、环境、配置和应用程序代码本身等中的一项或者多项。例如,将一个测试版的操作系统打包得到测试系统镜像、将一个游戏程序打包得到游戏镜像等等。
102.镜像是容器的基础,容器引擎可使用镜像启动容器。由于镜像中包括包含一个应用所需要的要素,因此镜像内容的安全性将直接影响到容器运行的安全性,进而影响到容器底层计算、存储和网络基础设施的安全性。
103.三、kubernetes
104.kubernetes(也称为k8s)是一种开源容器编排工具、一种容器编排工具的事实标准,用于管理云平台中多个主机上的容器编排部署及管理,可与多种容器引擎进行适配,提供便捷高效,弹性伸缩的应用容器管理。
105.kubernetes不仅提供了强大的容器编排能力,还在容器引擎使用镜像启动容器前为用户提供了控制点,通过规则/限制/镜像所对应的容器/的启动。该机制被称为kubernetes接纳控制(admission control,也成为准许控制或者接入控制)。admission control包含一个由系统默认和用户自定义规则组成的规则链,符合规则链上所有规则要
求的镜像才允许被容器引擎启动。
106.四、容器平台
107.容器平台是用于运行容器的系统,包含了服务器、云平台、容器引擎、容器编排工具等,可实现容器部署、运行、维护、管理等功能。
108.五、镜像仓库
109.镜像仓库是用于集中存放容器镜像的仓库,可分为公共镜像库和私有镜像库。公共镜像库可通过internet直接访问,私有镜像库只能通过私有镜像库所在的本地网络访问。
110.六、hash值
111.哈希值是将一段数据(例如字符串、数字、文件等)通过散列算法获得的输出值。镜像hash值是通过将镜像内容进行散列算法计算后获得的固定长度的散列值,也可称为镜像数字摘要,可用于签名计算。通常来说,按照标准格式打包得到镜像文件时,可以得到镜像的哈希值作为镜像文件的属性之一。
112.七、签名机制
113.签名机制用于保护数据的完整性和真实性。在一般情况下,该机制基于公私钥密钥对实现。具体的,可以使用非对称密钥算法和私钥对受保护数据的数字摘要进行运算生成数字签名。数字签名可通过公钥和非对称密钥算法反向运算获得数字摘要。通过对比反向运算获得的数字摘要与受保护数据通过计算得到的数字摘要是否一致,从而判断受保护数据是否被篡改。
114.请参见图1和图2,图1是本技术实施例提供的一种可能的镜像管理系统10的结构示意图,图2是该系统10的使用场景示意图。该系统10包括镜像管理装置101和第一终端设备102。可选的,还可以包括容器平台103。进一步的可选的,还可以包括第二终端设备104。
115.其中:
116.第一终端设备102是具有数据处理能力和数据存储能力的设备或者设备集群,用于镜像的签名者提交用于生成签名文件的信息。例如,提交目标镜像的属性信息(如:标识、编号、哈希值等等)和签名者的身份信息(如:账号、名称、身份标识等等)等。第一终端设备可以是一个设备,也可以是多个设备组成的设备集群。例如,参见图2,第一终端设备102a、第一终端设备102b和第一终端设备102c组成了第一终端设备的集群。其中,第一终端设备102a是签名者甲使用的设备,可以提交签名者甲的身份信息;第一终端设备102b是签名者乙使用的设备,可以提交签名者乙的身份信息,其余设备以此类推。
117.容器平台103是运行容器的平台,可以基于目标镜像启动其中的容器。本技术中,容器平台103可以向镜像管理装置101发送待运行的目标镜像的信息,接收镜像管理装置101反馈的验证安全性的结果,响应于验证结果确定是否基于目标镜像启动容器。一般来说,容器平台中可以部署有kubernetes,kubernetes可以管理容器平台中的多个容器。当然,在一些可能的场景中,也可以部署其他的应用对容器进行管理。
118.第二终端设备104是具有数据处理能力和数据存储能力的设备或者设备集群,用于提交目标镜像的指示信息以及指定目标镜像的签名者。
119.镜像管理装置101是具有数据处理能力和数据存储能力的设备或者设备集群,可以与第一终端设备102、容器平台103、第二终端设备104进行交互,实现对镜像的安全管理。
120.在一种可能的设计中,镜像管理装置101又具体可以包括管理模块1011、签名模块1012和控制模块1013。进一步的,还可以包括认证模块1014、密钥模块1015和存储模块1016中的一项或者多项。可选的,管理模块1011、签名模块1012、控制模块1013、认证模块1014和密钥模块1015中的任意一个都是具有数据处理能力的电子设备或者是具有数据处理能力的电子设备中的一个器件(例如芯片或者集成电路等)。其中,前述电子设备可以是实体设备,例如可以是主机、机架式服务器、或者刀片式服务器等中的一个或者多个;也可以是虚拟设备,例如可以是虚拟机、容器等中的一个或者多个。
121.存储模块1016是具有数据存储能力的设备,可以是实体存储设备,例如内存(包括随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)等),再如磁盘(包括便携式随机存储器(compact discrandom access memory,cd-ram)、硬盘等),也可以是其他具有数据存储能力的电子设备,例如网络附属存储(network attached storage,nas)服务器等,还可以是虚拟存储设备,例如虚拟机、容器等等。
122.需要说明的是,镜像管理装置101中的多个模块可以部署在不同的设备中,也可以部署在同一个设备、或者部署在同一个服务器集群中。例如,分布式服务器可以是由多个服务器组成的服务器集群,集群中可以包括云计算服务器、内容分发网络(content delivery network,cdn)服务器、网络时间协议(network time protocol,ntp)、域名解析系统(domain name system,dns)服务器、存储器服务器等等,集群中还可以包括nas用于存储数据,分布式服务器的各个设备之间可以相互协调,共同完成计算、数据存储、通信等功能。在一种可能的设计中,管理模块1011、签名模块1012和控制模块1013可以部署在分布式服务器中的cdn服务器上,认证模块1014、密钥模块1015可以部署在分布式服务器中的云计算服务器上,存储模块1016可以部署在分布式服务器中的存储器服务器上。
123.具体的,管理模块1011可以用于确定镜像的控制策略、设定签名者的描述信息、确定签名者的认证信息等中的一项或者多项。可选的,本技术实施例中的管理模块也可以称为交互模块。
124.其中,镜像的控制策略可以包括控制对象(例如目标镜像)的指示信息、控制要求等等中的一项或者多项。可选的,控制对象的指示信息可以是镜像的标识(例如,镜像的名称、编号、id等等中的一项或者多项)和/或使用镜像的集群的标识。也即是说,控制对象的指示信息可以包括镜像的标识与集群的标识中的一个,也支持同时包括镜像的标识和集群的标识。
125.可以理解的,在控制对象的指示信息包含镜像的标识的情况下,则该控制策略适用于此标识对应的镜像。在控制对象的指示信息包含集群的标识的情况下,该控制策略适用在此标识指示的集群内运行的镜像。在控制对象的指示信息既包含镜像的标识,又包含集群的标识的情况下,则该控制策略适用于在标识指示的集群内运行的指定镜像。参见图3,图3是本技术例举的一种可能的镜像控制策略和签名者的描述信息的示意图,参见图3中的(a)部分,区域201所示的控制策略中,控制对象包括镜像的指示信息(即image1)和集群的指示信息(图3所示的控制策略为空的集群的指示信息,具体实现过程中可以为集群的名称、编号等),指示该控制测了适用于名称为image1的镜像。
126.可选的,一个镜像的标识可以对应一个或者多个镜像。进一步可选的,控制对象的
指示信息还可以包括镜像的标签(tag)。若控制对象的指示信息包含镜像的标识和镜像的标签,则该控制策略适用于拥有此标签的镜像。
127.可选的,该镜像的控制策略、签名者的描述信息等可以是预先配置的,也可以是管理模块根据第二终端设备发送的信息得到的。例如,参见图2,管理员可以通过第二终端设备104输入控制策略,第二终端设备104可以将控制策略发送给镜像管理装置101,其中,控制策略可以包括控制对象的指示信息(参见图2中示例,指示信息为image1)。可以理解的,经过研发团队得到有两个镜像(标签分别为tag1和tag2),该两个镜像的标识都为image,由于控制策略中没有包含镜像的标签,因此该控制策略适用于标识为image1的两个镜像。
128.镜像的控制策略中的控制要求包括签名者的描述信息(例如,签名者的名称、编号、id等等中的一项或者多项),该签名者的描述信息用于描述对目标镜像进行签名的对象。其中,签名者的描述信息具体可以为签名者的账号列表,例如,参见图3,以镜像image1需要签名者甲、乙、丙的签名文件为例,签名者的账号列表中包括签名者甲、乙、丙的账号。需要说明的是,此处包括签名者甲、乙、丙是为了方便描述,具体实现时可以包括任意个数量的签名者,描述信息也可以为签名者的编号、标识(identification,id)等等。
129.签名者的认证信息包括签名者的账号、名称、口令、密码等等中的一项或者多项。可选的,管理员可以通过第二终端设备104输入签名者的认证信息,该第二终端设备104可以将签名者的认证信息发送给管理模块1011(例如,管理员添加新的签名者、或者管理员编辑签名者的信息时)。例如,以镜像image1需要签名者甲、乙、丙的签名文件为例,参见图3中的(b)部分,区域302中签名者的认证信息包括签名者甲的账号(即signer1,仅作为示例)和口令(即password1,仅作为示例)、签名者乙的账号和口令和签名者丙的账号和口令。
130.可选的,管理模块可以对外提供有应用程序接口(application programming interface,api),管理模块可以通过api接收第一终端设备102发送的控制策略和/或认证信息。
131.签名模块1012用于对目标镜像进行签名。例如,参见图2,签名者甲可以通过第一终端设备102a发送目标镜像的哈希值,相应的,签名模块接收第一终端设备102a发送的目标镜像的哈希值。签名模块可以基于签名者甲对应的私钥以及目标镜像的哈希值生成所述目标镜像的签名文件。其余签名者的签名过程可以依此类推,此处不再赘述。
132.进一步的,签名模块1012还可以对签名文件真实性验证功能。例如,签名文件f1是基于签名者甲对应的私钥和目标镜像的哈希值生成的,则当验证签名文件时,第一签名模块1012可以通过签名者的公钥和目标镜像的哈希值验证签名文件f1的安全性和完整性。
133.控制模块1013用于接收验证目标镜像的安全性的请求、向容器平台反馈验证结果等。例如,参见图2,容器平台103可以从镜像仓库201拉取目标镜像,向镜像管理装置101申请使用目标镜像启动容器。可选的,业务员可以通过控制台指示容器平太103拉取镜像、启动容器,容器平台103可以向控制模块1013发送目标镜像的信息,从而控制模块1013可以对目标镜像的签名文件等进行验证。例如,控制模块检查是否目标镜像的签名文件中是否包含全部指定的签名者的签名文件以及签名文件是否正确等。若控制模块1013验证签名文件通过,则可以向容器平台103发送验证通过的指示信息,从而使得容器平台103启动容器。可以理解的,若验证不通过,则控制模块1013也可以向容器平台103反馈验证失败的指示信息,容器平台可以基于该验证失败的指示信息拒绝启动目标容器。
134.认证模块1014用于提供身份认证功能,反馈身份认证结果,并管理相关认证信息。
135.密钥模块1015用于提供密钥管理功能,基于签名者信息生成密钥对并进行有效管理,在其他模块在需要时提供密钥。
136.存储模块1016用于提供存储功能,例如保存签名者信息、签名者密钥对、镜像签名文件、镜像控制策略,并在请求时将相关信息反馈给各模块。
137.此外,需要说明的是,本技术实施例中所提到的签名者,可以是用户,也可以是计算机程序等可以操作或者调用计算机中的输入模块的对象。例如,签名者可以为对代码进行检查的人工智能(artificial intelligence,ai)程序。
138.请参见图4,图4是本技术实施例提供的一种镜像管理方法的流程示意图,进一步的,该方法可以基于图1所示的框架来实现,该方法至少包括如下步骤:
139.可选的,图4所示的镜像管理方法包括步骤s401,步骤s401具体如下:
140.步骤s401:镜像管理装置接收第二终端设备发送的目标镜像的指示信息和签名者的描述信息。其中,该签名者为指定为目标镜像进行签名的对象。这里的可选可以理解为,在实际的实施场景中,目标镜像的指示信息和签名者的描述信息可以是第二终端设备发送给镜像管理装置的,也可以不是第二终端设备发送给镜像管理装置的(例如为镜像管理装置预先定义或者预先配置的,或者镜像管理装置从网络侧设备中查询得到的),具体可以取决于镜像管理装置的实现、预先的约定。
141.具体地,目标镜像是经过研发团队开发得到的文件系统包。通常来说,研发团队经过开发得到业务软件,将业务软件按照镜像打包的标准,得到目标镜像。镜像开发后,可以将目标镜像推送至镜像仓库进行存储。
142.为了区别不同的镜像,可以使用镜像的指示信息来指示某一镜像。目标镜像的指示信息包括目标镜像的标识(例如,镜像的名称、编号、id等等中的一项或者多项),还可以包括用于运行所述目标镜像的集群的标识信息。可选的,在目标镜像的指示信息包含镜像的标识的情况下,则镜像管理装置对此标识对应的镜像(即目标镜像)进行管理。在目标镜像的指示信息包含集群的标识的情况下,该镜像管理装置对在此标识指示的集群内运行的镜像进行管理。在目标镜像的指示信息既包含镜像的标识,又包含集群的标识的情况下,则镜像管理装置对在标识指示的集群内运行的指定镜像进行管理。
143.例如,以目标镜像为image1为例,目标镜像的指示信息可以为目标镜像的名称(即image1),或者可以为镜像image1的id(例如,image1的id为0010,则第二终端设备可以在消息中携带“0010”用于指示目标镜像),用于表明管理的对象为镜像image1。
144.再如,容器平台中包括一个或者多个容器集群(例如,可以包括容器集群1、容器集群2和容器集群3),目标镜像的指示信息可以为容器集群1的标识,用于指示管理的对象为在容器集群1中运行的镜像。当然,此处仅以集群1作为示例,具体实现时可以为一个或者多个容器集群。
145.进一步的可选的,目标镜像的指示信息中还可以包括镜像的标签(tag),用于指定某一标签的镜像。通常来说,由于同一个业务软件可以存在多个不同的版本,给镜像附上标签(tag)可任意便于区分不同的版本(例如,开发版本、内测版本、上线版本等等)的镜像。
146.签名者的描述信息用于指示对所述目标镜像进行签名的签名者,可以包括一个或者多个签名者的名称、编号、id等等中的一项或者多项。其中,签名者的描述信息具体可以
为签名者的账号列表。例如,参见图3,以镜像image1需要签名者甲、乙、丙的签名文件为例,签名者的账号列表中包括签名者甲、乙、丙对应的账号。需要说明的是,此处包括签名者甲、乙、丙是为了方便描述,具体实现时可以包括任意个数量的签名者。
147.需要说明的是,上述目标镜像的指示信息和签名者的描述信息可以是在同一个消息中发送的,也可以是在不同的消息中发送的,此处为了便于理解描述为一个动作,并不旨在限定本发明。在一些具体实施场景中,目标镜像的指示信息和签名者的描述信息可以一起封装为控制策略,第二终端设备在第一消息中携带该控制策略发送给镜像管理装置,镜像管理装置解析第一消息,从而获得目标镜像的指示信息和签名者的描述信息。
148.可选的,第二终端设备向镜像管理装置发送目标镜像的指示信息和签名者的描述信息,相应的,镜像管理装置就接收到来自第二终端设备的目标镜像的指示信息和签名者的描述信息。例如,管理员使用第二终端设备,在第二终端设备中输入目标镜像的指示信息和签名者的描述信息,第二终端设备向镜像管理装置发送目标镜像的指示信息和签名者的描述信息。进一步可选的,第二终端设备可以在接收到管理员的确认操作后,向镜像管理装置发送信息。
149.在一种可能的设计中,镜像管理装置可以提供有api(为了方便描述,称为第一api),第二终端设备可以通过第一api向镜像管理装置发送目标镜像的指示信息和签名者的描述信息。例如,参见图5,图5是本技术实施例提供的一种可能的第二终端设备与镜像管理装置进行通信的场景示意图,图5的(a)部分是一种可能的api501的属性的示意图,api501的属性包括api地址、请求方法、请求参数、返回参数。其中,api地址可以表示为统一资源定位符(uniform resource locator,url),请求方法至少可以包括以下四种方法:get方法,put方法,post方法和delete方法;请求参数是请求接口时传入的参数,返回参数是接口处理后返回的参数,通常来说,请求参数与返回参数定义时可以包括字段(也可以称为参数名,例如imagename)、说明(用于描述该字段)、类型(参数的类型,可以为整数、布尔型、字符型、浮点型、数组型等等)、备注、是否必填等属性。可以看出,api501定义了第二终端向镜像管理装置发送信息时所使用的接口。参见图5的(b)部分,在一种可能的设计中,第二终端设备104可以展示如区域502和区域503所示的前端页面,管理员(可以是人,也可以是计算机程序)输入信息(例如,可以输入镜像的名称、签名者的信息等),第二终端设备生成消息504,将该消息504发送给镜像管理装置。消息504中包括目标镜像的指示信息和签名者的描述信息,相应的,镜像管理装置可以获取目标镜像的指示信息和签名者的描述信息。进一步的,镜像管理装置还可以向第二终端设备返回相关参数(例如参见区域505所示的返回参数),用于指示是否接收成功等等。
150.可选的,镜像管理装置中可以预先注册多个签名者。进一步的,镜像管理装置可以向第二终端设备提供多个签名者供第二终端设备的用户指定其中的一个或者多个签名者作为对目标镜像进行签名的对象。可选的,镜像管理装置可以提供注册新签名者的功能。例如,镜像管理装置可以接收第二终端设备发送的新的签名者a的描述信息(或者还可以包括认证信息,如签名者的账号、名称、口令、密码等等中的一项或者多项),注册该签名者(或者具体可以为将签名者a在添加到存储签名者的描述信息的数据库中)。
151.可选的,镜像管理装置还可以周期或者非周期的认证管理员的身份。例如,在处理管理员发送的目标镜像的指示信息之前,接收第二终端设备发送的管理员的身份信息,通
过管理员的信息认证管理员的身份通过后,处理管理员发送的目标镜像的指示信息。
152.在又一种可能的设计中,镜像管理系统可以是客户机/服务器(client/server,c/s)架构软件(即客户机/服务器模式),也可以是(browser/server,b/s)架构的系统,镜像管理装置作为服务器,第二终端设备可以通过客户端程序或者浏览器等输入信息、向镜像管理装置发送信息。
153.步骤s402:镜像管理装置接收第一终端设备发送的签名者的信息和目标镜像的信息。
154.具体的,签名者的信息可以为包括签名者的身份标识(identification,id)、编号、名称、账号、口令、签名者的鉴权信息、会话认证信息中的一项或者多项。
155.目标镜像的信息可以是目标镜像的哈希值、摘要信息、身份信息等等中的一项或者多项。其中,哈希值是将一段数据(例如字符串、数字、文件等)通过散列算法获得的输出值。在一种可能的设计中,在按照标准格式打包得到镜像文件时,可以得到镜像的哈希值作为镜像文件的属性之一。摘要信息是哈希值的一种,也可以称为为信息摘要、数字摘要,通常为将需要加密的明文通过算法映射为一串固定长度(长度可以为128位、256位,或者其他预先定义的长度)的密文。
156.需要说明的是,生成摘要信息的算法通常称为信息摘要算法,生成哈希值的算法通常称为哈希算法,信息摘要算法是哈希算法的一种,但是信息摘要算法拥有更严格的条件,例如不能逆运算、更高的碰撞要求等。
157.可以理解的,第一终端设备向镜像管理装置发送签名者的信息和目标镜像的信息,相应的,镜像管理装置就接收来自第一终端设备的签名者的信息和目标镜像的信息。例如,签名者甲使用第一终端设备,在第一终端设备中输入签名者甲的信息和目标镜像的信息,第一终端设备向镜像管理装置发送签名者的信息和目标镜像的信息。
158.在一种可能的设计中,镜像管理装置可以提供有api(为了方便描述,称为第二api),第一终端设备可以通过第二api向镜像管理装置发送目签名者的信息和目标镜像的信息。例如,参见图6,图6是本技术实施例提供的一种可能的第一终端设备与镜像管理装置进行通信的场景示意图,图6的(a)部分是一种可能的api601的属性的示意图,api601的属性包括api地址、请求方法、请求参数、返回参数,具体解释可以参见前述对api501的属性解释。可以看出,api601定义了第二终端向镜像管理装置发送信息时所使用的api,请求参数包括镜像编号(字段为imageid)、镜像哈希值(字段为imagehash)、签名者id(字段为signerid)、签名者密码(字段为signerpassword),当然,具体实现中还可以包括其他的请求参数,或者没有api601所示的部分参数,例如,请求参数中消息中也可以不包括签名者的密码,在一些场景中,签名者甲登录第一设备时,第一终端设备中保存了签名者甲的鉴权信息(例如会话认证信息cookie、或者认证文件),第一终端设备向镜像管理装置发送信息时,携带该鉴权信息,从而使得镜像管理装置可以识别签名者甲的身份。
159.参见图6的(b)部分,在一种可能的设计中,第一终端设备103可以展示如区域602所示的前端页面,管理员(可以是人,也可以是计算机程序)输入信息(例如,可以输入镜像的名称等),第一终端设备接收到签名者甲确认提交的指示信息,从而生成消息603,将该消息603发送给镜像管理装置。消息603中包括目标镜像的信息和签名者的信息,相应的,镜像管理装置可以获取目标镜像的信息和签名者的信息。进一步的,镜像管理装置还可以向第
二终端设备返回相关参数(例如参见区域604所示的返回参数),用于指示是否接收成功等等。
160.在一些可能的设计中,签名者的信息中包括签名者的身份信息,镜像管理装置可以先根据签名者的身份信息验证签名者的身份,验证通过后则继续执行后续的步骤;若验证失败,则可以向第一终端设备返回指示身份验证失败的信息,或者还可以断开与第一终端设备之间的通信连接。下面例举四种根据签名者的身份信息验证签名者的身份的实现方式:
161.实现方式一:镜像管理装置中存储有签名者的认证信息(例如,签名者的账号和签名者的口令或者说密码),签名者的身份信息与签名者的认证信息的参数相同(例如,签名者的身份信息也为签名者的账号和签名者的口令或者说密码)。在这种情况下,镜像管理装置可以对比签名者的身份信息与签名者的认证信息,两者相同则签名者的身份认证通过,不相同则签名者的身份认证不通过。进一步可选的,该签名者的认证信息可以是第二终端设备发送给镜像管理装置的。例如,管理员可以在注册签名者时定义签名者的认证信息。
162.实现方式二:镜像管理装置中存储有签名者的联系方式,例如签名者的电话、邮箱等,可以通过短信验证、邮箱验证以及其他联系账号,通过动态口令认证签名者的身份。可选的,该签名者的联系方式可以是管理员在注册时提供的,也可以是镜像管理装置中预先配置的,或者还可以是从网络设备侧获取的。
163.实现方式三:镜像管理装置中存储有与签名者之间约定的第一口令(其中,该第一口令也可以理解为共享密钥、种子密码等)。镜像管理装置可以产生一个随机数发送给第一终端设备,第一终端设备使用某种单向算法,根据第一口令和随机数混合计算后得到签名者的身份信息,并发送给镜像管理装置。镜像管理装置使用同样的方法计算得到校验信息,验证比较校验信息与签名者的身份信息,即可验证用户身份。可选的,该第一口令可以是签名者登录该镜像管理系统是设置的口令,也可以是管理员设置的该签名者的口令。
164.实现方式四:镜像管理装置向第一终端设备发送为签名者生成的会话认证信息,第一终端设备在向镜像管理装置发送消息时携带该会话认证信息作为签名者的身份信息,从而使得镜像管理装置可以识别该签名者的身份。例如,镜像管理装置可以为签名者甲生成会话认证信息cookie(有时也用其复数形式cookies)发送给第一终端设备。其中,cookie是为了辨别用户身份,进行会话(session)跟踪而储存在用户本地设备上的数据(通常经过加密),由用户所使用的设备暂时或永久保存的信息。因此,第一终端设备向镜像管理装置发送信息时,可以携带cookie作为签名者的身份信息,镜像管理装置接收cookie,根据该cookie可以认证签名者的身份。
165.可以理解的,在具体实现时,可以只使用其中一种认证身份的方式,也可以将多种认证身份的方式组合使用。此外,可选的,镜像管理装置在认证身份时,可以周期或者非周期性的认证签名者的身份,并不一定固定在执行某一个动作之前或者之后认证签名者的身份。例如,镜像管理装置可以签名者登录时认证身份,也可以登录系统后每隔一段时间认证一次身份,还可以在执行某些重要操作时认证身份。
166.步骤s403:镜像管理装置基于签名者的信息和目标镜像的信息获得签名文件。
167.具体地,签名文件为基于目标镜像的摘要生成的。镜像管理装置基于签名者的信息和目标镜像的信息获得签名文件,至少可以有以下两种方案:
168.方案1:签名者的信息对应有签名者的密钥,目标镜像的信息包括目标镜像的哈希值或者摘要信息。镜像管理装置可以根据签名者的密钥对目标镜像的哈希值生成签名文件。具体的,生成签名文件时使用的签名方法可以是签名运算,例如模运算、异或运算、对数和指数运算等,也可以使用签名算法,例如rsa数字签名、数字签名标准(data signature standard,dss)数字签名、盖莫尔(elgamal)数字签名、椭圆曲线数字签名算法(elliptic curve digital signature algorithm,ecdsa)数字签名等等。
169.例如,根据签名者的id可以确定签名者的密钥k1,目标镜像的信息包括目标镜像的哈希值hash(或者可以替换为摘要信息)。镜像管理装置通过dss算法,通过密钥k1和镜像的哈希值hash生成的签名文件s1,例如:s1=dss(k1,hash)。
170.需要说明的是,本技术实施例中的签名者的密钥可以是公钥、私钥,也可以是对称密钥。通常来说,在某些场景中可以是一个密钥对,该密钥对包括一个公钥和一个私钥,如使用的签名算法是非对称算法时;在某些场景中可以是一个密钥,如点对点通信时、使用的签名算法是对称算法时。
171.方案2:镜像管理装置若检测(或者监听、接收)到镜像打包完成,或者检测到镜像被推送至镜像仓库时,则调用预先定义的接口、或者签名算法根据该镜像指定的签名者的密钥对镜像的哈希值进行签名得到签名文件,该签名文件可以存储在待提取文件池中。当签名者通过第一管理装置上传签名者的信息和目标镜像的信息后,通过签名者的信息和目标镜像的信息即可从提取文件池中提取签名者对应的签名文件。这样一来,可以将生成签名文件的功能部署至专用的签名服务器、网络侧设备,或者通过签名服务提供商来提供生成签名文件的功能,减少镜像管理装置的计算消耗。而且,在签名者签名时直接提取已经完成的签名文件,可以较少签名者的等待时间,提升用户体验。
172.步骤s404:若在容器平台返回的目标镜像的第一摘要与基于签名文件得到的第二摘要匹配,则镜像管理装置指示容器平台允许使用目标镜像启动目标容器。
173.具体地,容器平台启动镜像之前,镜像管理装置接收容器平台返回的镜像的摘要。为了便于描述,将容器平台返回的目标镜像的摘要称为第一摘要。
174.基于签名文件可以得到目标镜像签名时的摘要,为了方便描述称为第二摘要。可以理解的,由于签名文件是基于签名者的密钥和目标镜像的信息签名得到的,因此,通过签名者对应的公钥和签名文件可以得到签名文件的第二摘要。
175.通过比对第一摘要和第二摘要,可以确定目标镜像是否被纂改。可以理解的,若第一摘要与第二摘要匹配,表明目标镜像没有被纂改,则镜像管理装置指示容器平台允许使用目标镜像启动目标容器。可选的,若第一摘要与第二摘要不匹配,表明目标镜像的内容发生改变则镜像管理装置可以指示容器平台拒绝使用目标镜像启动目标容器。
176.在一种可能的设计中,镜像管理装置可以提供有api(为了方便描述,称为第三api),容器平台可以通过第三api向镜像管理装置返回第一摘要。例如,参见图7,图7是本技术实施例提供的一种可能的容器平台与镜像管理装置进行通信的场景示意图,图7的(a)部分是一种可能的api701的属性的示意图,api701的属性包括api地址、请求方法、请求参数、返回参数,具体解释可以参见对图5中api属性的解释。可以看出,api701定义了容器平台向镜像管理装置发送信息时所使用的api,请求参数包括镜像名称(字段为imagename,或者镜像名称也可以替换为镜像编号、镜像id、镜像的tag等中的一项或者多项)、第一摘要值(字
段为imagehash2),当然,具体实现中还可以包括其他的请求参数,或者没有api701所示的部分参数,例如,请求参数中也可以包括容器平台的id等。
177.参见图7的(b)部分,容器平台103在基于目标镜像image1启动容器前,向镜像管理装置101返回镜像image1的摘要(图7中以摘要为“931d9f58b642cd96f1fed1ecf6a0f8beda9d65bb”为例,具体实现时可以是其他摘要),通过消息702返回给镜像管理装置101。相应的,镜像管理装置可以获取目标镜像的第一摘要,将该摘要与基于签名文件得到摘要进行匹配,向容器平台返回消息703用以指示匹配结果、或者指示是否允许使用目标镜像image1启动容器。
178.可以理解的,若签名文件为基于目标镜像的哈希值得到的,则验签后得到目标镜像的信息则为目标镜像的哈希值,但是为了方便描述,本技术文件中将验签后得到的目标镜像的信息称为第二摘要,并不旨在限定第二摘要一定为数字摘要。相应的,若签名文件为基于目标镜像的哈希值得到的,则容器平台返回的目标镜像的第二摘要也为目标镜像的哈希值,便于进行比对。
179.在图4所描述的方法中,镜像管理装置通过第一终端设备获取签名者的信息和目标镜像的信息,则可以根据签名者的信息和目标镜像的信息获取目标镜像的签名文件。由于目标镜像的摘要与目标镜像的内容之间存在映射关系,若目标镜像内容被纂改,则目标镜像的摘要也会对应变化,因此,在容器平台使用目标镜像启动容器时,若验证目标镜像的第一摘要与生成签名文件的目标镜像的第二摘要匹配,则说明目标镜像的内容没有被纂改,因此可以指示容器平台允许使用目标镜像启动容器,从而可以实现对目标镜像的安全性和完整性的控制,保障了目标镜像内容安全和容器平台的安全。
180.此外,签名者只需要通过第一终端设备即可对镜像进行签名,无需签名者在本地终端生成密钥对、保存密钥、生成签名文件等等,提高了镜像的安全性,也减轻了签名者的操作复杂度,提升了用户体验。
181.上述方法实施例可以执行在镜像开发前、镜像推送时、镜像使用时,因此采用上述方法实施例可以实现对镜像整个生命周期的跟踪,且可以与镜像构建的流水线(pipeline)进行耦合,适配当前的云原生开发技术。
182.此外,需要说明的是,镜像管理装置与第一终端设备、第二终端设备或者容器平台之间收发信息的数据链路可以包括各种类型的连接介质,具体可以是有线链路(如光纤、双绞线等)、或者无线链路、或者有线链路与无线链路的组合等等。例如可以为包括802.11b/g、蓝牙(blue tooth)、紫蜂(zigbee)、全球移动通信系统(global system for mobile communications,gsm)、通用分组无线业务(general packet radio service,gprs)、通用移动通信系统(universal mobile telecommunications system,umts)、超宽带(ultra wideband,uwb)技术等。当然,不排除还有其他技术可以用于支撑升级镜像管理装置与第一终端设备、第二终端设备或者容器平台之间进行通信。
183.以上图4所示的方法实施例中包含了很多可能的实现方案,下面分别结合图8、图9和图10对其中的部分实现方案进行举例说明,需要说明的是,图8、图9和图10未解释到的相关概念或者操作或者逻辑关系可以参照图4所示实施例中的相应描述,因此不再赘述。
184.参见图8,图8是本技术实施例提供的又一种镜像管理方法的流程示意图,该方法可以基于图1所示的镜像管理系统来实现,该镜像管理方法至少包括如下步骤:
185.步骤s801:镜像管理装置的管理模块通过第一api接收第二终端设备发送的第一信息,该第一信息中包括管理员的身份信息和信息设定申请。
186.具体的,信息设定申请具体可以包含控制策略和签名者认证信息中的一项或者多项。在具体实现时,信息设定申请也可以称为控制信息。
187.其中,控制策略包含目标镜像的指示信息和签名者的描述信息。目标镜像的指示信息和签名者的描述信息可以参见步骤s401中的详细描述。
188.具体的,管理员的身份信息可以包括管理员的id、编号、名称、账号、口令、签名者的鉴权信息、会话认证信息中的一项或者多项。
189.步骤s802:镜像管理装置中的认证模块根据管理员的身份信息和管理员的认证信息确定管理员的身份。
190.具体的,管理模块可以将第一消息中的管理员的认证信息发送给认证模块对管理员的身份进行认证。认证模块可以基于管理员的身份信息向存储模块请求该管理员的认证信息,认证模块接收存储模块返回的管理员的认证信息后,根据管理员的身份信息和管理员的认证信息认证管理员的身份。
191.在一种设计中,认证模块对比管理模块发送来的管理员的身份信息与存储模块返回的认证信息,两者相同则身份认证通过,不相同则身份认证不通过。例如,管理员的身份信息为“账号:admin,密码:adminpw”,若请求的管理员的认证信息为也为“账号:admin,密码:adminpw”,则管理员的身份认证通过。
192.需要说明的是,此处是为了便于理解故描述为明文形式,在具体实施过程中,存储模块返回的认证信息可以经过加密处理,又或者存储模块返回的信息可以为认证信息的摘要值。例如,存储模块返回的内容为认证信息的摘要。在这种情况下,认证模块基于管理员的身份信息生成摘要,然后比对生成的摘要与存储模块返回的摘要是否一致,从而可以确定身份认证是否通过。
193.进一步的,认证模块可以向管理模块返回认证结果。若认证身份失败,管理模块可以向第二终端设备返回认证失败的指示信息(例如,通过api返回值返回操作失败信息),用于第二终端设备重新提交认证等。若认证身份成功,则可以处理管理员提交的信息设定申请。
194.步骤s803:在管理员的信息设定申请包含控制策略的情况下,镜像管理装置中的控制模块设定目标镜像的控制策略。
195.具体的,在管理员的信息设定申请包含控制策略的情况下,控制模块可以将控制策略发送给控制模块。其中,控制策略包含目标镜像的指示信息和签名者的描述信息。
196.控制模块根据目标镜像的指示信息和签名者的描述信息,将签名者指定为对目标镜像的进行签名的对象。当后续有申请对目标镜像进行校验时,则检查目标镜像是否存在该签名者的签名文件以及签名文件是否有效等。
197.进一步的,控制模块可以对控制策略在存储模块的内容进行控制,具体控制操作可以为新增、更新、删除控制策略。
198.步骤s804:在管理员的信息设定申请包含签名者认证信息的情况下,镜像管理装置中的认证模块存储签名者的认证信息。
199.具体的,管理模块将签名者的认证信息发送给认证模块。认证模块收到签名者的
认证信息后,可以将签名者的认证信息存储到存储模块中。
200.在一些实施场景中,管理员的信息设定申请还可以申请删除签名者的认证信息,在这种情况下,认证模块可以请求存储模块删除对应的签名者的认证信息。
201.可选的,图8所示的镜像管理方法还可以包括步骤s805,具体如下:
202.步骤s805:镜像管理装置中的密钥模块确定签名者的密钥。
203.具体的,认证模块将向密钥模块请求生产签名者的公私钥对,具体的,请求中可以包括签名者的认证信息(可以包括全部认证信息,例如账号、密码等,也可以只包括部分信息如只包括账号)。
204.进一步的,密钥模块收到认证模块的请求后,生成基于签名者对应的公私钥对。密钥模块在生产密钥对后将公私钥对发送至存储模块进行保存。
205.在一些实施场景中,管理员的信息设定申请还可以申请删除签名者的对应的密钥,在这种情况下,认证模块可以请求密钥模块删除签名者的密钥。在这种情况下,密钥模块可以从存储模块中删除签名者对应的密钥。
206.参见图9,图9是本技术实施例提供的又一种镜像签名方法的流程示意图,该方法可以基于图1所示的镜像管理系统来实现,该镜像管理方法至少包括如下步骤:
207.步骤s901:镜像管理装置的签名模块通过第二api接收第一终端设备发送的第二信息,该第二信息中包括签名者的信息和目标镜像的信息。
208.具体的,第一终端设备通过调用第二api,申请签名操作。该api的输入参数可以包含在第二信息中,具体可以是签名者的信息和目标镜像的信息。其中,签名者的信息和目标镜像的信息可以参见步骤s402中的具体描述,此处不再赘述。
209.在一种可能的实施方式中,签名者的信息为签名者的身份信息,目标镜像的信息包含目标镜像的摘要信息。可选的,目标镜像的信息还包含目标镜像的id、名称等等中的一项或者多项。
210.步骤s901:镜像管理装置的认证模块根据签名者的身份信息和认证信息认证签名者的身份。
211.具体的,签名模块接收到签名者认证信息后,将签名者认证信息发送到认证模块,认证模块对签名者的身份进行认证(例如,对签名者的身份进行真实性检测)。
212.认证模块可以向存储模块请求该签名者的认证信息,具体可以是基于签名者的编号、账号、id等向存储模块查询签名者的认证信息。存储模块向认证模块返回保存的签名者的认证信息。认证模块根据签名者的身份信息和签名者的认证信息认证签名者的身份。
213.在一种设计中,认证模块对比签名模块发送来的签名者的身份信息与存储模块返回的签名者的认证信息,两者相同则身份认证通过,不相同则身份认证不通过。例如,签名者的身份信息为“账号:signer1,密码:passwprd1”,若请求的管理员的认证信息为也为“账号:signer1,密码:passwprd1”,则签名者的身份认证通过。
214.要说明的是,此处是为了便于理解故描述为明文形式,在具体实施过程中,存储模块返回的认证信息可以经过加密处理,又或者存储模块返回的信息可以为认证信息的摘要值。例如,存储模块返回的内容为经过加密的账号和密码。在这种情况下,认证模块请求使用对应的解密密钥对返回的内容进行解密,然后再与身份信息进行比对。
215.进一步的,认证模块可以向签名模块返回认证结果。若认证身份失败,签名模块可
以向第一终端设备返回认证失败的指示信息(例如,通过api返回值返回签名操作失败信息),用于第一终端设备重新提交认证等。若认证身份成功,则可以进行后续的签名操作。
216.步骤s903:镜像管理装置的签名模块根据签名者的密钥和目标镜像的信息生成签名文件。
217.具体的,签名模块向密钥模块请求签名者密钥,密钥模块向存储模块请求存储的签名者私钥。相应的,存储模块向密钥模块返回签名者私钥,密钥模块将私钥发送到签名模块。
218.签名模块接收到签名者的私钥,使用私钥和目标镜像的信息进行签名计算,获得镜像签名文件。
219.进一步的,签名模块将镜像签名文件发送至存储模块进行保存。可选的,签名模块可以通过第二api的返回值(或者返回参数)返回签名成功的指示信息。
220.参见图10,图10是本技术实施例提供的又一种镜像控制方法的流程示意图,该方法可以基于图1所示的镜像管理系统来实现,该镜像管理方法至少包括如下步骤:
221.步骤s1001:镜像管理装置的控制模块通过第三api接收容器平台发送的第三信息,该第三信息中包括目标镜像的信息,进一步还可以包括第一摘要。其中,目标镜像的信息中可以包括目标镜像的标识、编号、id等。
222.具体的,容器平台通过调用第三api使用镜像签名控制功能。该api的输入参数可以包含在第三信息中,具体可以是可以为容器平台拉起的目标镜像的信息(包括镜像名称、标签和hash值、以及需要拉起镜像的集群信息中的一项或者多项)。其中,该第三信息也可以称为请求信息。
223.可以理解的,第三信息中不包括第一摘要的情况下,容器平台可以通过其他的信息发送目标镜像的第一摘要。
224.步骤s1002:镜像管理装置的控制模块根据目标镜像的控制策略确定目标镜像的签名文件。
225.具体的,控制模块接收到第三信息(或者说请求信息)后,向存储模块请求目标镜像的控制策略。相应的,存储模块将目标镜像的控制策略返回控制模块。控制模块向签名模块请求目标镜像的签名文件。
226.可以理解的,控制策略中包括签名者的描述信息,因此启动镜像时需要签名者的签名文件。
227.步骤s1003:镜像管理装置的签名模块根据签名文件和签名者的密钥得到第二摘要。
228.具体的,签名模块向存储模块请求目标镜像的签名文件,相应的,存储模块向签名模块返回目标镜像的签名文件。可以理解的,在存在多个签名者的签名文件时,存储模块返回多个签名者对应的签名文件。
229.进一步的,签名模块向密钥模块请求签名者的公钥,密钥模块则向存储模块请求其中存储的签名者的公钥。相应的,存储模块向密钥模块返回签名者的公钥,密钥模块进一步将签名者的公钥返回至签名模块。
230.签名模块基于签名文件和签名者的公钥计算得到目标镜像的第二摘要,将第二摘要返回给控制模块。
231.在一种可能的设计中,签名文件为基于目标镜像的哈希值以及签名者的信息(比如签名者的账号、id等等中的一项或者多项)生成的,签名模块基于签名者的公钥可以解签签名文件,得到目标镜像的第二摘要和签名者的信息。进一步的,签名模块可以将解签得到的签名者的信息与该镜像的指定的签名者的信息进行比对,从而确定签名文件是否被纂改。
232.步骤s1004:镜像管理装置的控制模块比对第二摘要和容器平台返回第一摘要。
233.具体的,控制模块基于第二摘要和容器平台返回第一摘要进行计算对比,验证镜像内容完整性,若第二摘要与第一摘要计算获得的结果一致,则表征目标镜像没有被篡改,则向容器平台返回允许使用目标镜像启动容器的指示信息;若不一致,则表征目标镜像被篡改,则向容器平台反馈镜像被篡改信息的提示信息或者反馈拒绝使用目标镜像启动镜像的指示信息。
234.进一步的,若控制模块接收到的签名模块返回的签名文件中,缺少其中一个或者多个签名者的签名文件,则表征目标镜像的签名不完善,则镜像管理装置可以向容器平台反馈签名文件不完整的提示信息或者反馈拒绝使用目标镜像启动镜像的指示信息。
235.在一些可能的设计中,步骤s1004所示的操作也可以由签名模块完成。具体的,签名模块基于容器平台返回的第一摘要、签名者公钥以及镜像签名文件进行计算对比,验证镜像内容完整性,得到验证结果(指示验证通过或者不通过)。签名模块则向控制模块返回签名文件、以及签名文件对应的验证结果,控制模块检查是否具有所有签名者的签名文件以及签名者文件的验证结果,若签名文件完整且签名文件的验证结果均指示验证通过,则指示容器平台允许启动使用目标镜像启动容器。
236.上述详细阐述了本技术实施例的方法,下面提供了本技术实施例的装置。
237.请参见图11,图11是本技术实施例提供的一种镜像管理装置110的结构示意图,该镜像管理装置110可以是图4所示实施例中的镜像管理装置,也可以是镜像管理装置中的一个模块,例如芯片或者集成电路等。该镜像管理装置110用于实现前述的镜像管理方法,如图4、图8、图9、图10中任意一个实施例描述的镜像管理方法。
238.进一步的,该镜像管理装置110可以包括接收单元1101和处理单元1102。可选的,还可以包括发送单元1103。其中,各个单元的详细描述如下:
239.接收单元1101,用于接收第一终端设备发送的签名者的信息和目标镜像的信息;所述签名者为指定为所述目标镜像进行签名的对象;
240.处理单元1102,用于基于所述签名者的信息和所述目标镜像的信息获得签名文件;
241.所述处理单元1102,用于若在容器平台返回的所述目标镜像的第一摘要与基于所述签名文件得到的第二摘要匹配,则指示所述容器平台允许使用所述目标镜像启动容器。
242.在上述实施例中,镜像管理装置110通过第一终端设备获取签名者的信息和目标镜像的信息,则可以根据签名者的信息和目标镜像的信息获取目标镜像的签名文件。由于目标镜像的摘要与目标镜像的内容之间存在映射关系,若目标镜像内容被纂改,则目标镜像的摘要也会对应变化,因此,在容器平台使用目标镜像启动容器时,若验证目标镜像的第一摘要与生成签名文件的目标镜像的第二摘要匹配,则说明目标镜像的内容没有被纂改,因此镜像管理装置110可以指示容器平台允许使用目标镜像启动容器,从而可以实现对目
标镜像的安全性和完整性的控制,保障了目标镜像内容安全和容器平台的安全。
243.此外,签名者只需要通过第一终端设备即可对镜像进行签名,无需签名者在本地终端生成密钥对、保存密钥、生成签名文件等等,提高了镜像的安全性,也减轻了签名者的操作复杂度,提升了用户体验。
244.上述镜像管理装置110可以在镜像开发、镜像推送、镜像使用过程中对目标镜像进行管理,因此采用上述方法实施例可以实现对镜像整个生命周期的跟踪,且可以与镜像构建的流水线(pipeline)进行耦合,适配当前的云原生开发技术。
245.在一种可能的实施方式中,所述接收单元1101,还用于:
246.接收第二终端设备发送的所述目标镜像的指示信息和所述签名者的描述信息,其中,所述签名者的描述信息用于指示对所述目标镜像进行签名的签名者。
247.可以看出,第二终端设备可以指示需要哪些签名者对目标镜像进行签名。在一种可能的设计中,管理员通过第二终端设备输入镜像的控制策略,该控制策略包含前述的目标镜像的指示信息和所述签名者的描述信息,该控制策略用于对目标镜像进行控制。可以看出,管理员只需要输入控制策略,即可实现对镜像的控制,提升了用户体验。尤其对于存在有多个镜像需要管理时(例如企业、组织等对开发的镜像的管理),可以实现镜像研发团队、镜像管理团队、镜像签名者之间的解耦,提升了用户体验。
248.在又一种可能的实施方式中,所述目标镜像的指示信息包括所述目标镜像的身份标识和/或用于运行所述目标镜像的容器集群的标识信息。
249.可以看出,通过本技术实施例,不仅可以实现对单个镜像的控制功能,还可以实现对需要在某容器集群中运行的多个镜像进行控制,从而实现各种粒度的镜像控制功能,满足了用户对单个镜像、多个镜像、需要在某一容器集群运行的镜像的控制需求。
250.在又一种可能的实施方式中,所述签名者的信息中包括签名者的身份信息;所述处理单元1102,还用于:
251.根据所述身份信息确定所述至少一个签名者的身份认证通过。
252.上述说明了镜像管理装置110可以对签名者的身份进行认证,这样可以避免不可信的签名者对签名文件进行签名,提高了镜像的安全性。
253.在又一种可能的实施方式中,所述接收单元1101,还用于接收所述第二终端设备发送的所述签名者的认证信息;
254.所述处理单元1102,还用于根据所述签名者的认证信息和所述身份信息,确定所述签名者的身份验证通过。
255.上述提供了一种认证签名者的身份的方法,(管理员或者自动化管理程序等)可以通过第二终端设备可以设定签名者的认证信息,第一终端设备上传签名者的身份信息时,镜像管理装置110可以将该身份信息与认证信息进行比对,若比对一致则说明签名者的身份可信。
256.在又一种可能的实施方式中,所述装置通过应用程序接口api支持与所述第二终端设备、所述第一终端设备、所述容器平台之间的信息传输。
257.上述说明了通信的方式,镜像管理装置110可以通过api接口与第二终端设备、第一终端设备和容器平台之间进行连接,上述设备通过只需通过api接口调用相关功能,即可实现镜像管理、镜像签名、镜像启动控制等功能,降低了用户操作难度。
258.在又一种可能的实施方式中,所述处理单元1102,还用于生成所述签名者对应的密钥对,所述密钥对包括公钥和私钥。
259.上述说明了镜像管理装置110镜像管理过程中可以生成密钥对,该密钥对可以在签名、身份认证、启动控制过程中使用。进一步的,该密钥对可以保存在镜像管理装置110中,无需用户在本地保存公私钥等,可以避免密钥泄露。
260.在又一种可能的实施方式中,所述目标镜像的信息包括所述目标镜像的哈希值;所述签名者的信息对应有所述签名者的私钥;所述处理单元1102,具体用于使用所述签名者的私钥和所述目标镜像的哈希值,生成所述签名文件。
261.上述说明了镜像管理装置110生成签名文件的方式,镜像的信息中包括镜像的哈希值,通过签名者的私钥和镜像的哈希值可以生成签名文件。由于镜像的内容与镜像的哈希值之间存在映射关系,若镜像内容被纂改,则镜像的摘要也会对应变化,从而可以通过镜像哈希值辨别镜像的内容是否被纂改。
262.在又一种可能的实施方式中,所述接收单元1101,还用于接收容器平台发送的请求消息,所述请求信息用于请求使用所述目标镜像启动所述容器平台上的容器。进一步的,该请求消息中包括所述第一摘要。
263.具体的,容器平台可以在请求消息中携带目标镜像的指示信息,通过api接口调用镜像的启动控制。这样一来,容器平台启动容器时,向镜像管理装置110提供目标镜像的摘要信息,则可以通过反馈的指示信息确定镜像是否安全,无需调整容器平台的镜像检查功能,可以快速兼容多种服务商提供的容器平台。
264.在又一种可能的实施方式中,所述处理单元1102,还用于根据所述签名者的认证信息,将所述签名者的认证信息添加到签名者数据库。
265.在又一种可能的实施方式中,签名者包括第一签名者和第二签名者;第一终端设备包括第一子设备和第二子设备,其中,第一子设备为第一签名者使用的设备;第二子设备为第二签名者使用的设备。
266.通过本技术中实施例,多个签名者可以分别通过一个或者多个设备上传用于签名的信息,从而分别获取签名文件,实现多人签名机制。
267.在又一种可能的实施方式中,所述发送单元1103用于向第一终端设备、第二终端设备以及容器平台发送信息。例如,通过发送单元向容器平台发送指示信息,用于指示是否允许使用目标镜像启动目标容器等。
268.可以理解的,本技术各个装置实施例中,对多个单元或者模块的划分仅是一种根据功能进行的逻辑划分,不作为对装置具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,在镜像管理的过程中所执行的大致流程是相同的。例如,上述装置110中的接收单元1101和发送单元1103,也可以合称为通信单元。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元受处理单元的控制而执行相应的流程从而实现相应功能。
269.请参见图12,图12申请实施例提供的一种镜像管理装置120的结构示意图。该镜像管理装置120可以包括至少一个存储器1201和至少一个处理器1202和通信接口1204。可选的,还可以包含总线1203,其中,存储器1201、处理器1202和通信接口1204通过总线1203相
连。
270.其中,存储器1201用于提供存储空间,存储空间中可以存储操作系统和计算机指令等数据。存储器1201可以是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable readonly memory,eprom)、或便携式只读存储器(compact disc read-only memory,cd-rom)等等中的一种或者多种的组合。
271.处理器1202是进行算术运算和/或逻辑运算的模块,具体可以是中央处理器(central processing unit,cpu)、图片处理器(graphics processing unit,gpu)、微处理器(microprocessor unit,mpu)、专用集成电路(application specific integrated circuit,asic)、现场可编程逻辑门阵列(field programmable gate array,fpga)、复杂可编程逻辑器件(complex programmable logic device,cpld)等处理模块中的一种或者多种的组合。
272.通信接口1204用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(wi-fi、蓝牙、通用无线传输、车载短距通信技术等)接口。可选的,通信接口1204还可以包括与接口耦合的发射器(如射频发射器、天线等),或者接收器等。
273.该镜像管理装置120中的处理器1202用于读取所述存储器1201中存储的计算机指令,用于执行前述的镜像管理方法,如图4、图8、图9、图10中任意一个实施例描述的镜像管理方法。
274.举例来说,该镜像管理装置120可以为图4、图8、图9、图10中任意一个实施例中的镜像管理装,该镜像管理装置120中的处理器1202用于读取所述存储器1201中存储的计算机指令,用于执行以下操作:
275.通过通信接口1204终端设备发送的签名者的信息和目标镜像的信息;所述签名者为指定为所述目标镜像进行签名的对象;
276.基于所述签名者的信息和所述目标镜像的信息获得签名文件;
277.若在容器平台返回的所述目标镜像的第一摘要与基于所述签名文件得到的第二摘要匹配,则指示所述容器平台允许使用所述目标镜像启动容器。
278.在上述实施例中,镜像管理装置120通过第一终端设备获取签名者的信息和目标镜像的信息,则可以根据签名者的信息和目标镜像的信息获取目标镜像的签名文件。由于目标镜像的摘要与目标镜像的内容之间存在映射关系,若目标镜像内容被纂改,则目标镜像的摘要也会对应变化,因此,在容器平台使用目标镜像启动容器时,若验证目标镜像的第一摘要与生成签名文件的目标镜像的第二摘要匹配,则说明目标镜像的内容没有被纂改,因此镜像管理装置120可以指示容器平台允许使用目标镜像启动容器,从而可以实现对目标镜像的安全性和完整性的控制,保障了目标镜像内容安全和容器平台的安全。
279.此外,签名者只需要通过第一终端设备即可对镜像进行签名,无需签名者在本地终端生成密钥对、保存密钥、生成签名文件等等,提高了镜像的安全性,也减轻了签名者的操作复杂度,提升了用户体验。
280.上述镜像管理装置120可以在镜像开发、镜像推送、镜像使用过程中对目标镜像进行管理,因此采用上述方法实施例可以实现对镜像整个生命周期的跟踪,且可以与镜像构
建的流水线(pipeline)进行耦合,适配当前的云原生开发技术。
281.在又一种可能的实施方式中,该处理器1202,还用于:
282.通过通信接口1204接收第二终端设备发送的所述目标镜像的指示信息和所述签名者的描述信息,其中,所述签名者的描述信息用于指示对所述目标镜像进行签名的签名者。
283.可以看出,第二终端设备可以指示需要哪些签名者对目标镜像进行签名。在一种可能的设计中,管理员通过第二终端设备输入镜像的控制策略,该控制策略包含前述的目标镜像的指示信息和所述签名者的描述信息,该控制策略用于对目标镜像进行控制。可以看出,管理员只需要输入控制策略,即可实现对镜像的控制,提升了用户体验。尤其对于存在有多个镜像需要管理时(例如企业、组织等对开发的镜像的管理),可以实现镜像研发团队、镜像管理团队、镜像签名者之间的解耦,提升了用户体验。
284.在又一种可能的实施方式中,所述目标镜像的指示信息包括所述目标镜像的身份标识和/或用于运行所述目标镜像的容器集群的标识信息。
285.上述说明了镜像管理装置120可以对签名者的身份进行认证,这样可以避免不可信的签名者对签名文件进行签名,提高了镜像的安全性。
286.在又一种可能的实施方式中,所述签名者的信息中包括签名者的身份信息;该处理器1202,还用于:
287.根据所述身份信息确定所述至少一个签名者的身份认证通过。
288.在又一种可能的实施方式中,该处理器1202,还用于:
289.通过通信接口1204接收所述第二终端设备发送的所述签名者的认证信息;
290.根据所述签名者的认证信息和所述身份信息,确定所述签名者的身份验证通过。
291.上述提供了一种认证签名者的身份的方法,(管理员或者自动化管理程序等)可以通过第二终端设备可以设定签名者的认证信息,第一终端设备上传签名者的身份信息时,镜像管理装置120可以将该身份信息与认证信息进行比对,若比对一致则说明签名者的身份可信。
292.在又一种可能的实施方式中,所述装置通过应用程序接口api支持与所述第二终端设备、所述第一终端设备、所述容器平台之间的信息传输。
293.上述说明了通信的方式,镜像管理装置120可以通过api接口与第二终端设备、第一终端设备和容器平台之间进行连接,上述设备通过只需通过api接口调用相关功能,即可实现镜像管理、镜像签名、镜像启动控制等功能,降低了用户操作难度。
294.在又一种可能的实施方式中,该处理器1202,还用于生成所述签名者对应的密钥对,所述密钥对包括公钥和私钥。
295.上述说明了镜像管理装置120镜像管理过程中可以生成密钥对,该密钥对可以在签名、身份认证、启动控制过程中使用。进一步的,该密钥对可以保存在镜像管理装置110中,无需用户在本地保存公私钥等,可以避免密钥泄露。
296.在又一种可能的实施方式中,所述目标镜像的信息包括所述目标镜像的哈希值;所述签名者的信息对应有所述签名者的私钥;该处理器1202,具体用于使用所述签名者的私钥和所述目标镜像的哈希值,生成所述签名文件。
297.上述说明了镜像管理装置120生成签名文件的方式,镜像的信息中包括镜像的哈
希值,通过签名者的私钥和镜像的哈希值可以生成签名文件。由于镜像的内容与镜像的哈希值之间存在映射关系,若镜像内容被纂改,则镜像的摘要也会对应变化,从而可以通过镜像哈希值辨别镜像的内容是否被纂改。
298.在又一种可能的实施方式中,所述处理器1202,还用于通过通信接口1204接收容器平台发送的请求消息,所述请求信息用于请求使用所述目标镜像启动所述容器平台上的容器。进一步的,该请求消息中包括所述第一摘要。
299.具体的,容器平台可以在请求消息中携带目标镜像的指示信息,通过api接口调用镜像的启动控制。这样一来,容器平台启动容器时,向镜像管理装置120提供目标镜像的摘要信息,则可以通过反馈的指示信息确定镜像是否安全,无需调整容器平台的镜像检查功能,可以快速兼容多种服务商提供的容器平台。
300.在又一种可能的实施方式中,该处理器1202,还用于根据所述签名者的认证信息,将所述签名者的认证信息添加到签名者数据库。
301.在又一种可能的实施方式中,签名者包括第一签名者和第二签名者;第一终端设备包括第一子设备和第二子设备,其中,第一子设备为第一签名者使用的设备;第二子设备为第二签名者使用的设备。
302.通过本技术中实施例,多个签名者可以分别通过一个或者多个设备上传用于签名的信息,从而分别获取签名文件,实现多人签名机制。
303.本技术实施例还提供了一种服务器,该服务器包括处理器和存储器;其中,处理器用于执行存储器存储的计算机指令,使得服务器实现图4、图8、图9或者图10所示的任意一个实施例所描述的镜像管理方法。
304.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在一个或多个处理器上运行时,实现图4、图8、图9或者图10所示的任意一个实施例所描述的镜像管理方法。
305.本技术实施例还提供了一种芯片系统,该芯片系统包括至少一个处理器,存储器和接口电路,所示接口电路用于为至少一个处理器提供信息输入/输出,该至少一个存储器中存储有计算机指令,当计算机指令在一个或多个处理器上运行时,实现图4、图8、图9或者图10所示的任意一个实施例所描述的镜像管理方法。
306.本技术实施例还提供了一种计算机程序产品,该计算机程序产品在一个或多个处理器上运行时,实现图4、图8、图9或者图10所示的任意一个实施例所描述的镜像管理方法。
307.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机指令产品的形式实现。该计算机指令产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,可以全部或部分地实现本技术实施例所描述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
308.本技术方法实施例中的步骤可以根据实际需要进行顺序调整、合并和删减。
309.本技术装置实施例中的模块可以根据实际需要进行合并、划分和删减。
再多了解一些

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

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

相关文献