CN114201763A - 优化容器镜像加密 - Google Patents
优化容器镜像加密 Download PDFInfo
- Publication number
- CN114201763A CN114201763A CN202111087110.2A CN202111087110A CN114201763A CN 114201763 A CN114201763 A CN 114201763A CN 202111087110 A CN202111087110 A CN 202111087110A CN 114201763 A CN114201763 A CN 114201763A
- Authority
- CN
- China
- Prior art keywords
- image
- layer
- decryptor
- layers
- container
- 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 claims abstract description 66
- 238000004806 packaging method and process Methods 0.000 claims abstract description 10
- 230000001419 dependent effect Effects 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 245
- 230000008569 process Effects 0.000 description 21
- 238000013459 approach Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Abstract
一种示例方法,包括将容器化应用程序打包为至少两个镜像。第一镜像可包括主应用程序并且第二镜像包括解密器。对与所述应用程序相关联的敏感信息进行加密并且将所述敏感信息包括在所述第二镜像中。所述解密器与所述主应用程序分开地操作。在所述解密器成功完成之后,运行所述主应用程序。所述主应用程序可包括拷贝程序层以将由所述解密器解密的任何数据拷贝到所述主应用程序中。
Description
技术领域
本发明的实施方式总体涉及容器化应用程序、容器安全和容器编排安全。更特别地,本发明的至少一些实施方式涉及用于对容器镜像进行专注加密和/或解密的系统、硬件、软件、计算机可读介质以及方法。
背景技术
诸如Docker镜像的容器镜像可以不同的方式进行描述。例如,镜像可以被描述为包括多个层的文件或一组文件。镜像还可以被描述为根文件系统的有序的变化(例如,层)集合。镜像可以在诸如Docker引擎的引擎中运行。Kubernetes(容器编排平台的一个示例)可以用于管理容器化应用程序的部署和扩展。镜像可以部署在具有适当的引擎的任何主机上和/或编排平台中。
镜像可以文件中定义的逻辑层进行组织,所述文件在Docker容器服务的情况下可以被称为Dockerfile。Dockerfile通常是文本文档,其包含待执行的命令,以便构建docker镜像。命令在被执行时构建镜像。镜像的层可能能够由能够访问镜像的任何人读取,并且这可能对镜像内的各层中的某一层内部的任何敏感数据构成威胁。
虽然可以对镜像进行加密以保护敏感数据在容器静止时不被读取,但是这种方法可能会有问题而且效率低下。例如,可以对整个镜像进行加密并且将其作为‘blob’输送到部署站点。然而,这种方法引入了管理和性能问题。例如,当某一实例被实例化时,容器启动时间会受到影响,因为完全加密的镜像可能是相当大的。对镜像进行加密的解决方案的另一个问题是可能必须修改部署环境以支持镜像解密。最后,取决于镜像大小,执行解密可能要花费相对较长的时间,并且还可能会影响具有繁重部署场景的环境中的其他元件的性能。
附图说明
为了描述可以获得本发明的优点和特征中的至少一些的方式,对本发明的实施方式的更具体的描述将通过参考示出于附图中的本发明的特定实施方式来呈现。应理解,这些附图仅示出了本发明的典型实施方式并且因此不应被视为是其范围的限制,通过使用这些附图将更具体和详细地描述并解释本发明的实施方式,在附图中:
图1公开了示例镜像的各方面;
图2公开了包括敏感信息的示例镜像和示例加密镜像的各方面;
图3公开了用于对镜像或镜像的一部分进行加密的示例方法;
图4公开了相关镜像的示例,其中一个镜像包括主应用程序,并且另一个镜像包括用于敏感层的解密器;
图5公开了用于对镜像进行加密和/或运行所述镜像的示例方法;
图6示出了打包应用程序的示例;以及
图7公开了关于示例计算系统或环境的各方面。
具体实施方式
本发明的实施方式总体涉及容器化应用程序和容器安全。更特别地,本发明的至少一些实施方式涉及用于对(一个或多个)容器镜像或其部分进行集中加密的系统、硬件、软件、计算机可读介质以及方法。本发明的实施方式还涉及对容器镜像或其层进行加密和/或解密,同时消除解密的操作系统(OS)运行时依赖性。更具体地,本发明的实施方式消除了解密器对容器的操作系统的依赖性。
总体上,本发明的实施方式通过构建相关但分开的镜像(或通过将某一镜像拆分为相关镜像)而提高了容器/镜像或其中所包含的数据的安全性。第一镜像可以包括不敏感并且可能不需要加密的层。第一镜像还可以包含主应用程序。第二镜像可以包括解密器层以及加密层,所述加密层可以包括加密数据或多个加密层。在部署或执行期间,第二镜像可以被实例化为容器并且首先运行以便对敏感数据进行解密。在包括解密器的容器完成之后运行第一镜像允许现已解密的层并入到主应用程序的运行时容器中。在一个示例中,将解密器和被加密的敏感层与基础镜像分开并且单独地运行解密器。
如果解密器是在容器镜像内部,则解密器是容器运行时的一部分。如果解密器是在OS层上方,则解密器在该运行时实例中在OS的上下文中运行。此外,当解密器是在容器镜像内部时,在解密器之前加载或执行的层可能具有恶意代码,所述恶意代码可能会被用来损害系统或容器的安全。
本发明的实施方式通过将解密器移动到单独的镜像和单独的运行时实例而消除了这种对OS的依赖性。当解密器与主镜像分开时,解密器变为其自身镜像中的层,并且消除了对其他镜像的OS的OS依赖性。这消除了在解密器被简单地包括在主镜像中时针对不同的OS版本创建不同的解密器的需求。
另外,通过将解密器放置在单独的镜像中,主应用程序容器中的漏洞和安全问题使得无法访问解密密钥。换句话说,当解密器被包括在主应用程序镜像中时,所述应用程序在与解密器相同的存储器中运行。这可能会以各种方式损害应用程序的实例。
本发明的实施方式可以整合到编排平台(诸如Kubernetes)中并且利用所述编排平台。通过将解密器与应用程序容器分开,从解密器的角度来看消除了OS依赖性。另外,可以选择性地对镜像的层进行加密。此外,不通过主应用程序容器提供解密密钥。本发明的实施方式还可以确保主应用程序中没有任何事物会在解密器之前运行以确保恶意代码不会在解密器之前运行。
一般而言,本发明的示例实施方式包含可能仅对镜像内部的敏感数据(或层)进行加密的镜像加密过程。敏感层可以组合为单个层,之后对所述单个层进行加密,并且在静止时加密存储(例如,存储在镜像存储库中)。本发明的实施方式还可以提出将解密器添加到与主应用程序镜像分开的镜像。解密器镜像在主应用程序镜像运行或实例化之前运行,使得解密过程可以在运行时并在原始应用程序运行之前发生。
相较于打算对整个镜像进行加密和解密的情况,所述加密和解密过程可以是显著更短的。可以不需要对部署过程或部署环境进行任何改变,可能的例外是一些相对较小的配置变化以及秘密共享。同样,示例实施方式可以提供可以利用来容易地选择和加密镜像文件的待保护的层的过程和机制。以此方式,可以相对容易地定义和测试在镜像的保护与运行时之间的折衷。
特别地,本发明的至少一些实施方式的一个有利方面是当对镜像的一部分进行加密时,可以相对容易地定义和测试在镜像的保护与运行时之间的折衷。本发明的实施方式可以使静止的镜像数据保持安全,并且因此可以安全的方式将镜像投放于公共域或备份站点。本发明的实施方式可以提出以某一方式对镜像进行选择性加密,使得对镜像的相关联的部署环境几乎没有或没有影响。本发明的实施方式可以某一方式实现对镜像的选择性加密,使得对全面运作的容器的启动时间的影响不成为实质性影响。选择性加密可以是内部镜像加密,或通过在单独的镜像中对敏感数据进行加密来进行。
本文的论述可以包括对在Docker和Kubernetes的上下文中的镜像和容器的引用。然而,本发明的实施方式不限于这些平台并且可以在各种容器或镜像平台以及容器编排平台中实现。更一般地,本发明的实施方式可以结合任何容器定义和部署环境、编排平台以及相关联的镜像、文件和部件一起采用。以下论述不意图以任何方式限制本发明的范围。例如,本发明的实施方式可以适应于诸如Kubernetes的编排平台的打包和运行时方法。
在一个示例中,本发明的实施方式被配置为增加或提高包括容器或镜像形成、容器部署、层加密/解密、容器编排等等的容器相关过程的安全性。用户能够控制镜像的哪些层或部分被加密。本发明的实施方式可以将解密器(其可以是容器镜像的某一层)分为单独的镜像并且与主容器自身分开地运行解密器镜像。除了提供模块化且高效的解决方案外,这还提高了安全性。
图1至图3描述了优化对镜像的加密/解密。特别地,图1至图3论述了对镜像的某些层进行加密的过程,以及在运行时对这些层进行解密的过程。图1至图3涉及用于优化镜像加密的实施方式,其中解密器被包括在与应用程序相同的镜像中。图4至图5进一步示出了优化镜像加密的示例,其中解密器与主容器镜像是分开的。
一般而言,且参考图1的示例,例如像Docker镜像的镜像100可以是指文件、或被分组成诸如层102、104和106的各层的文件/数据的组合。诸如Dockerfile的命令文件可以包括定义镜像100并且在被执行时构建或组装镜像100中的层的命令。
通常,命令文件描述了基础镜像,以及将构成镜像的附加层。更具体地,命令文件可以是包含用于组装镜像的命令的文本文件。每个命令都可以产生镜像的一个层。未修改镜像文件系统的命令可以被视为空层,并且命令的元数据可以保存在镜像配置文件内的构建历史中。例如,每个镜像可以具有描述镜像自身的各种参数(例如像构成镜像的层和入口点的标识)的镜像配置文件。入口点的标识是指容器实例化之后运行的命令。
示例实施方式可以结合镜像仓库(image registry)来一起操作,所述镜像仓库的示例为Docker仓库。一般而言,镜像仓库可以包括存储共同地形成镜像的层或者存储镜像的存储库。这种仓库可以将镜像配置和层以压缩方式存储为内部具有纯文本数据的blob。仓库可以提供应用程序接口(API)来推拉镜像。
仓库可以将所有镜像的清单保存在仓库中。清单可以保持关于使用什么镜像配置,以及可以使用来构造镜像的层/命令的数据。例如,Docker中心(hub)是存储Docker镜像以供公众使用的公共域docker仓库。许多用例和产品可以依赖于该仓库来保存其生产镜像,所述生产镜像可以用于部署在AWS或Azure或任何其他平台中。
一般而言,部署是指将镜像实例化以便获得在镜像引擎上的运行过程并运行容器化应用程序的过程。部署可以在具有适当的引擎的任何主机或者支持和/或编排镜像的任何其他平台上实现。部署环境可以从仓库对镜像进行拷贝并且在本地保存镜像的拷贝。
虽然镜像提供有用的功能,但是它们易于受到威胁。例如,存储在数据库(DB)、Artifactory或本地文件中的任何数据尤其是在可能会被破坏的公共域中都会面临数据被盗的风险。另外地,在私人环境中同样存在风险。当数据处于生产环境或处于一些备份环境时,数据可能会被窃取。以下是对一些镜像的一些缺点的更详细的论述。
镜像的可能使其变得易受攻击(诸如易于遭受未经授权的访问)的一个特性是镜像可能包括存储在盘上的纯文本文件。因此,可以获得盘,破坏文件系统或拦截镜像从一个位置到另一个位置的移动的攻击程序可以获得存储在镜像中的数据。
同样,诸如可能对镜像采用的加密和解密过程通常可能是相对缓慢的。这可能归因于依赖于复杂的数学函数的算法的使用。诸如IO操作的数据修改和防范暴力破解的机制对于加密/解密过程而言可能是相对缓慢的。因此,整个镜像的解密可能是缓慢的,并且会减缓部署系统的执行。
另外,容器部署环境可能是性能敏感的。例如,使用微服务架构的部署环境在不断地扩展或将新的容器化服务实例化。使诸如镜像加密和解密的这些过程减缓的任何事物都可能会不利地影响系统恢复和/或系统功能。这进而可能会导致较差的用户体验和/或缓慢的系统。
此外,关于镜像安全的常规方法需要修改部署有镜像的部署环境。例如,对整个镜像进行加密或者单独地对每个层进行加密需要来自部署环境的支持。这种支持并不存在于大多数现有的部署环境中,并且即使存在的话,也可能会使部署和操作过程变得复杂而缓慢。如果部署环境不具有解密能力,则可能会使该过程变得更为复杂,因为可能将必须将镜像发送到第三方来进行解密,这可能会导致容器部署的延迟。
最后,关于镜像解密的常规方法可能需要部署环境的支持,尤其是在将镜像发送到目标主机以供执行之前需要编排器的支持。因此,运行应用程序的主机接收呈未加密形式的镜像,这可能会使镜像中的敏感数据易于受到主机访问攻击。
以下观察可能与一个或多个示例实施方式相关。首先,在编排器或主机处对整个镜像进行解密涉及存储未加密以及因此易受攻击的镜像。同样,对整个镜像的解密可能需要对运行时环境的修改。另外,可以包括OS(操作系统)或由其组成的基础镜像可能不包括敏感数据,并且因此,将基础镜像作为整体或作为某个层进行加密可能没有什么价值。镜像同样可能包括加密可能不是必要的或有用的其他层,其中此类层可以包括但不限于:Apache Tomcat、Java、路由器/代理、数据库和/或其他应用程序级服务。最后,OS和基础应用程序服务可能共同地构成容器镜像的总体大小的相对大的百分比。因此,避免对OS和相关服务的加密可以允许容器在不需要对部署环境进行修改的情况下运行,并且可以显著地减小镜像的加密部分的大小。
因此,本发明的实施方式可以向用户提供对加密哪些镜像层的控制,并且可以使得用户能够构建仅对这些层进行解密,而不需要部署环境的支持的机制。因此,示例实施方式包括仅将敏感数据加密的新的安全镜像,例如像Docker镜像。因此,相对大的基础镜像或不敏感数据的层可以纯文本或原始格式保留,但是被视为敏感的数据可以保持加密。解密过程可以在运行时由解密器实现,所述解密器作为层添加到镜像并且可以在执行容器是其一部分的原始应用程序之前对加密的镜像数据进行解密。
一般而言,一些示例实施方式可以涉及对待加密的数据或层进行标记。在镜像的上下文中,这种标记可以涉及修改例如镜像的命令文件(例如,Dockerfile),以便对镜像的待加密的一个或多个特定层进行标记。例如,在命令文件内,就在将被标记来加密的(一个或多个)层上方,可以插入命令以标示应在何处开始加密。这种命令的一个示例是:
RUN echo“=========START ENCRYPTION========”
包括诸如该命令的命令可能会导致创建空层,所述空层将命令保存在镜像配置文件内的层的历史中。停止加密信号也可以被包括在命令文件中。
应注意,本发明不限于上文提及的特定示例字符串。可以采用标示应在何处开始加密的任何序列。还应注意,虽然‘RUN echo’会导致创建空层,但是也可以采用各种其他命令。另外,可以替选地采用创建不是空的层的命令。于是一般而言,任何层都可以被实现为一个或多个信号层的分组中的一个信号层。然而,诸如可以用‘RUN echo’命令创建的空层的微不足道的空层的使用可以是简单的,并且可以在没有额外的限制的情况下发挥作用。
在镜像加密过程期间,系统可以遍历镜像的层或命令文件中的命令,直到诸如上文提及的命令层或命令的信号层被定位为止。所述系统之后可以知晓对信号层之后的层中的至少一者进行加密。这种方法因此可以使得能够对任一个或多个镜像层进行标记以供加密,并且可以帮助优化数据保护与运行时约束之间的折衷。
现在关注图2,提供了关于加密之前和之后的镜像配置的细节。如图2所示,镜像200可以包括层的组合。诸如OS层202以及层204和206的一些层可能包括不敏感的数据,并且因此可能不需要加密。因此,这些层可以被称为不敏感层。不敏感层202、204和206的特定数量或类型是不需要的。镜像200在其包括的一个或多个层包括敏感信息时可以被称为敏感镜像。
应注意,在一些实施方式中,不敏感层可能会包括一些敏感信息,但是将该层指定为不敏感可以反映出以下这样的判断:保护该不敏感层将需要的额外处理的成本和/或其他考虑因素超过了该敏感信息暴露的潜在风险。同样,以下论述的敏感层可能包括一些不敏感信息,但是将该层指定为敏感可以反映出以下这样的判断:整体上期望对该不敏感信息进行加密,因为对该不敏感信息的加密可能并未对所述系统造成任何实质性处理负担,并且在任何情况下,保护该敏感层中的敏感信息的需求可能都超过了这种负担。
镜像200可以另外包括包含可能需要加密的敏感信息的一个或多个层,诸如敏感层208、210和212。敏感层208、210和212的特定数量或类型是不需要的。特定数据或信息是否敏感可以由用户、管理员或任何其他实体定义。这种实体可以是人类、或计算系统。一般而言,敏感信息包含无论出于何种原因(一个或多个)而期望保密,或至少受制于有限的传播和/或可用性的任何信息。在一些情况下,敏感信息可以包括无法公开获得的用户特定和/或系统特定信息。敏感信息可以包括商业企业的专有财务和技术信息。
同样如图2所指示,镜像200可以包括一个或多个信号层214。一般而言,信号层214可以向所述系统指示在信号层214之后的任何(一个或多个)层应被加密。一般而言,信号层214可以用作通知以指示将被视为敏感的一个或多个层的起点。因此,在一些实施方式中,在信号层之前的一个、一些或所有层可以是不敏感的,并且在信号层之后的一个、一些或所有层可以是敏感的。在一些实施方式中,镜像的层可以被视为定义了至少两个时间点,即在信号层之前的时间点,以及在信号层之后的时间点。如本文其他位置所提及,一些其他实施方式提出了具有多个信号层以及一个或多个不敏感层的多个分组和/或一个或多个敏感层的多个分组的镜像。在一些实施方式中,信号层214可以具有标识符,所述标识符将该层标记为信号层,使得信号层214可以在系统遍历镜像200的层时被所述系统理解。虽然所示的示例仅包括一个信号层214,但是应理解,可以被采用于镜像中的信号层214的数量不存在限制。例如,在一个替选镜像配置中,未加密镜像可以具有以下自上而下的配置:层;层;层;信号层;敏感层;敏感层;停止加密层;层;层;信号层;敏感层;停止加密层。更一般地,敏感的未加密镜像可以具有任何数量的层、信号层和停止加密层以及它们的组合。因此,本文公开的示例镜像配置仅通过例示提供,并且不意图以任何方式限制本发明的范围。
继续参考图2,并且现在还将注意力转向图3,公开了用于对容器镜像进行选择性加密的总体由300表示的示例方法。如图2所示且如下文所述,方法300的执行可以产生加密的docker镜像400。
示例方法300可以开始于检查302仓库中的镜像,所述镜像可以具有镜像名称。可以通过搜索镜像名称而在仓库中定位镜像。由于检查302,因此可以识别304一个或多个信号层和/或待加密的一个或多个层。之后可以下载306或访问待加密的一个或多个层。可以在下载之前对层进行加密。
然后可以例如将下载的层(如果多于一个的话)组合在一起以创建单层文件,诸如.TAR文件308。如本文所使用,.TAR文件是指可以由基于Unix的TAR实用程序创建的档案。.TAR文件是由TAR,即操作以将文件打包在一起的基于Unix的实用程序创建的档案。.TAR文件可以包含可以未压缩格式存储的多个文件,并且.TAR文件还可以包括关于档案的元数据。.TAR文件可以使用GNU Zip压缩而压缩为.GZ文件。然而,本发明的范围不限于.TAR文件,并且可以替选地使用任何其他合适的文件以及用于创建这些文件的平台。在已经创建308.TAR文件之后,然后可以使用任何合适的加密算法来对所述文件进行加密310。
接着,可以创建312包括加密的.TAR文件的新的镜像。新的镜像也可以包括原始未加密镜像的(一个或多个)不敏感数据层、一个或多个信号层以及解密器层。可以修改314原始镜像的入口点,使得在新的镜像被实例化时首先运行新的镜像的解密器层。在已经运行解密器层之后,则可以调用原始入口点。在已经修改314入口点之后,则可以将新的镜像存储在生产仓库316中。此时,新的镜像可能已准备好用于生产环境中。
再一次返回到图2,镜像400是可以诸如通过示例方法300创建的新的镜像的示例。由于镜像400可能包括一个或多个加密层,因此镜像400可以被称作是加密的,但是并不是镜像400的所有层可能都已经被加密。
在图2的示例中,镜像400包括不敏感层,诸如OS层402以及层404和406,所述层可以分别是镜像200的OS层202以及层204和206的拷贝或恢复。并且,镜像400可以包括可以是信号层214的拷贝或恢复的信号层408。信号层408可以向系统指示应由解密器层412对加密层410进行解密。由于解密器层412可以被定义为入口点,如图2所示,因此可以在镜像400被实例化时首先运行解密器层412。在已经运行解密器层412之后,可以调用如在镜像200中所示的原始入口点。
因此,诸如通过方法300基于原始镜像200而产生的镜像400可以包括自给式可解密镜像或可解密层。因此,镜像400可以不依赖于任何外部过程、实体或服务来对镜像400中的敏感信息进行解密,或对镜像400执行其他功能。而是,镜像400对其加密层410执行其自身的解密。此外,由于敏感信息可以在运行时间之前保持加密,因此镜像400可以就该敏感信息的安全提供保证。
在部署时,所述系统可以使用新的加密镜像400并且通过标准秘密处理来提供解密密钥。在Docker Swarm中,例如,所述系统可以使用秘密机制,或在Kubernetes中使用ETCD和秘密机制。
继续关注图2的示例加密镜像400,提供了关于诸如示例解密器层412的解密器的另外的细节。在一些实施方式中,解密器层包括呈小的基于Linux的可执行文件的形式的解密器应用程序,所述解密器应用程序将加密的.TAR文件解密到容器本地文件系统。解密器还可以打开.TAR文件以将原始镜像200的敏感层208、210和212恢复到镜像400。在退出之前,解密器可以将控制转移到原始入口点,即在对镜像进行加密之前给出且如在示例镜像200中所示的入口点。解密器层412对加密层410进行解密并打开.TAR文件的操作可以在新的镜像实例化之后自动地执行。
由于解密器可以是镜像的一部分,因此不需要来自运行时环境的支持。而是,解密器可以作为标准容器初始化的一部分运行,并且因此对于运行时系统和镜像层自身而言可以是透明的。应注意,在替选实施方式中可以类似的方式支持不同于Linux的OS。
如先前所公开,例如像示例镜像400的镜像可以包括多个单独的加密层,诸如加密层410。这种配置可以通过添加以下命令来实现:
RUN echo“=========STOP ENCRYPTION========”从而识别可能是纯文本的层。在给定的镜像400中可以多次重复信号层408和停止信号层。在至少一些实施方式中,在最后的镜像中可能仅存在一个解密器可执行层,而不管可能存在多少个加密层。该解密器层可以在调用原始入口点之前对所有加密层进行解密。使用多个层时应当小心,因为纯文本层之间可能是敏感信息的泄漏源头。也就是说,如果存在为多个容器所共用的加密层,则这些加密层可以此方式以其加密形式进行共享,从而维持下载期间的带宽效率,尽管事实是所述层是加密的。
虽然例如像示例镜像200的镜像的OS层在一些实施方式中可能不是加密的,但是在其他实施方式中可能存在对OS层进行加密的需求。如果需要对OS层和/或其他不敏感层(例如像层202、204和206)进行加密,则可以将引导加载器层仅添加到OS层以运行解密器。引导加载器层可能只需要具有足够的功能来运行解密器,仅此而已。这种方法仍然会使加密和解密对部署环境透明,但是运行时解密可能要花费更长时间,因为在大小上通常较大的OS在镜像实例化之前也会被解密。并且,如果对OS层和/或其他不敏感层进行加密,则用于将运行时参数传递到应用程序的容器环境变量可能需要从加载器环境转移到分离的解密的OS。
如本文之后所公开,示例实施方式尤其包含对例如像Docker镜像的镜像或其部分的加密和解密。此类实施方式可以使用命令文件和嵌入式解密器来简化管理,并且使得镜像能够移植到各种不同的运行时环境。本发明的示例实施方式可以包括各种属性,诸如这些实施方式使用起来相对简单,在运行时可以高效地实例化,可以避免对改变或适应运行时环境的需求,并且可以对容器、运行时环境和/或管理员透明。一些特定实施方式可以采用信号层作为标记物,以识别将要对哪一个或哪几个层进行加密。一些实施方式可以将解密器嵌入加密镜像中,所述解密器可以在为未加密镜像指定的原始入口点之前运行。一些实施方式可以支持多个加密层。最后,一些实施方式可以提供对OS和/或其他不敏感信息的加密。
除了如关于图1至图3所描述的容器之外,本发明的实施方式还涉及以将解密器与主镜像或主容器分开的方式对镜像或其部分进行加密和/或解密。通常,本发明的实施方式使用初始化容器(例如,在Kubernetes中为init容器)。初始化容器是被配置为(并确保)在应用程序镜像或主镜像运行之前运行的单独打包的容器。如果初始化容器失败,则不会运行应用程序容器。
在一些示例中,初始化容器用于附加装置数据的各种目的。然而,本发明的实施方式涉及被配置为操纵其他容器,包括作为pod的一部分的容器的初始化容器。仅作为示例,pod可以包括一个或多个容器或镜像。因此,应用程序容器和初始化或解密容器可以被包括在同一个pod中。由于初始化或解密容器与主容器或应用程序容器是分开的,因此可以仅将装置和参数映射到初始化容器。
图4示出了已经被拆分为多个镜像的镜像的示例。在另一个示例中,图4示出了在打包或创建镜像时,创建了两个新的镜像(或者可以拆分现有的镜像)。一个镜像包括主应用程序,并且另一个镜像包括解密器。这允许解密器与主镜像分开。
当创建镜像时,可以至少不需要具有信号层,因为加密层的位置在包括加密层/文件和解密器的镜像中可以是预先确定的。
图4还可以与执行时产生单独的镜像的命令文件相对应。可替选地,单独的命令文件可以用于产生本文论述的各种镜像。镜像452包括层454、层456、信号层458、敏感层460以及敏感层462。如图4所示,镜像452被打包或拆分为主镜像470和初始化镜像480。换句话说,镜像452表示常规镜像。主镜像470和初始化镜像480说明主应用程序和解密器被单独地打包为不同的但相关的镜像。图4所示的镜像可以具有与先前关于图2所描述的相同的格式。
出于论述目的,如同将镜像452拆分为单独的镜像一样对图4进行了论述。然而,如先前所提及,本发明的实施方式可以具有相关的两个命令文件:一个命令文件用于组装或打包包括主应用程序的主镜像,并且一个命令文件用于组装或打包解密器镜像。该过程将包括信号层,使得打包过程知晓对哪些层进行加密。
图4示出了镜像452被分割为主镜像470(其包括例如主应用程序)和初始化(或解密器)镜像480。不敏感层454和456作为层454和456放置在主镜像470中。拷贝程序层472被添加到主镜像470。
初始化镜像480包含解密器层482、信号层458和加密层484。加密层484通过对敏感层460和462进行加密/组合或组合/加密来产生。然而,在一个示例中,可以单独地对敏感层460进行加密。初始化镜像480中的信号层458允许解密器层482定位加密层484并且执行解密。然而,可以移除信号层458,并且加密层484可以处于预定义位置。在一个示例中,信号层458在初始化镜像480中是不需要的。
在此示例中,单独地构造每个镜像并且pod规格可以如下:
apiVersion:v1
种类:Pod
元数据:
名称:myapp-pod
标签:
应用程序:myapp
规格:
容器:
-名称:myapp-container
镜像:myapp_clean:1.1(主镜像470)
init容器:
-名称:init-myapp
镜像:myapp_init:1.1(初始化镜像480)
在此示例中,pod包括两个容器,并且在此pod规格中定义了初始化容器或镜像480。pod规格确保了执行解密的初始化容器可以在主容器或镜像470运行之前运行并完成。
由于解密器在与主容器分开的容器中运行,因此解密器不依赖于与主应用程序相关联的OS。这说明了解密器如何可以独立于应用程序OS。
此外,由于初始化容器可以与主容器或同一个pod中的其他容器不同的文件系统或装置的视角(view)运行,因此可以将解密密钥提供到初始化容器。主容器中的主应用程序无法访问解密密钥。
图5示出了关于pod规格的容器运行序列的示例。当序列开始时,运行502初始化容器。如先前所述,初始化容器首先运行并且可以一直运行到完成。在一个示例中,除非初始化容器成功完成,否则不启动或运行主应用程序容器。
接着,解密器找到信号层并且使用信号层来定位504加密层或数据。可替选地,解密器可以使用存储有加密层或数据的预先确定的位置。
接着,解密器将加密层或数据解密506到文件系统上的目录(例如,/mainappdecrypted)。这可以是在基础目录中,并且在一个示例中,镜像的每个层在基础目录下可以具有其自身的目录。
如果初始化容器运行并成功完成,则运行508主应用程序容器。应用程序层正常地运行,直到到达拷贝程序层。运行510拷贝程序层。拷贝程序层可以将文件系统上的未加密层(例如,来自/mainappdecrypted)拷贝到其在层根目录中的位置。之后运行512主应用程序。
通过将解密器放置在单独的镜像或容器中,解密对主应用程序或主镜像是透明的。这使得方案既模块化又更为安全。
在一些示例中,在镜像中可能存在多个信号层和停止信号层。在一些示例中,信号层可能是不需要的。可以使用预先确定的位置。在一个示例中,为每一组信号层和停止信号层提供拷贝程序层。在运行时,将每个加密数据层打开至单独的目录。对应的拷贝程序层之后从指定的层或目录进行拷贝。
本发明的实施方式还包含额外的初始化层。在一个示例中,解密器镜像被配置为首先运行并且可以是pod规格中的第一初始化镜像。如果在解密器镜像之前放置了任何初始化层,则在一个示例中,这些初始化层不应包含任何加密层。另外,这些层可能会带来安全风险,因为它们可能会试图操纵对解密器镜像的输入。
图6示出了用于制作pod或包的方法的示例。方法600包括打包602应用程序。打包应用程序可以包括例如将镜像拆分为至少两个不同的镜像。这可能需要处理初始镜像以评估层,以便识别哪些层被认为具有可能要加密的敏感信息。可替选地,可以将应用程序打包为两个镜像。在一个实施方式中的任一个示例中,包(package)包括至少两个镜像。一个镜像包括主应用程序,并且另一个镜像包括解密器和加密敏感数据层或其他加密数据。首先执行具有解密器的镜像。可选的信号层或预定义位置可以用于识别加密敏感数据的位置。在解密器镜像成功完成之后,可以执行其他镜像。该镜像包括允许将解密数据拷贝到主容器实例中的拷贝程序层。
当打包应用程序时,对镜像进行配置604,使得首先执行解密器镜像。
以下是本发明的一些另外的示例实施方式。这些实施方式仅通过示例来呈现并且不意图以任何方式限制本发明的范围。
实施方式1.一种方法,所述方法包括:通过以下方式将与敏感数据相关联的应用程序打包为至少第一镜像和第二镜像:将第一层放置在所述第一镜像中,所述第一层包括拷贝程序层;将第二层放置在所述第二镜像中,其中所述第二层包括解密器层和包括处于加密形式的所述敏感数据的加密层;以及将所述第二镜像配置为在所述第一镜像之前运行。
实施方式2.如实施方式1所述的方法,所述方法还包括将所述第二镜像作为初始化容器运行,其中所述初始化容器的执行包括通过解密器对所述加密层进行解密以获得解密的敏感数据。
实施方式3.如实施方式1和/或2所述的方法,所述方法还包括将所述解密的敏感数据存储在文件系统的目录中。
实施方式4.如实施方式1、2和/或3所述的方法,所述方法还包括在所述初始化容器成功完成之后,将所述第一镜像作为主容器运行。
实施方式5.如实施方式1、2、3和/或4所述的方法,所述方法还包括运行所述拷贝程序层,其中所述拷贝程序层将所述目录中的所述解密的敏感数据拷贝到与主应用程序相关联的层根目录中的位置。
实施方式6.如实施方式1、2、3、4和/或5所述的方法,所述方法还包括产生pod规格,使得所述第二镜像在所述第一镜像运行之前运行并完成。
实施方式7.如实施方式1、2、3、4、5和/或6所述的方法,所述方法还包括通过对所述敏感数据的一个或多个敏感层进行加密而产生所述加密层。
实施方式8.如实施方式1、2、3、4、5、6和/或7所述的方法,其中打包所述应用程序包括将某一镜像拆分为所述第一镜像和所述第二镜像,或者为所述第一镜像构造命令文件并且为所述第二镜像构造命令文件。
实施方式9.如实施方式1、2、3、4、5、6、7和/或8所述的方法,所述方法还包括将所述解密器层放置在所述第二镜像中,使得所述第二镜像中的所述解密器层不依赖于所述第一镜像中所包括的操作系统。
实施方式10.如实施方式1、2、3、4、5、6、7、8和/或9所述的方法,所述第二镜像包括识别所述加密层在所述第二镜像中的位置的信号层和停止信号层。
实施方式11.一种用于执行本文公开的操作、方法或过程中的任一者,或这些中的任一者的任何部分、包括如实施方式1至10中任一项所述的任何部分的方法。
实施方式12.一种非暂时性存储介质,所述非暂时性存储介质中存储有指令,所述指令能够由一个或多个硬件处理器执行以执行如实施方式1至11中任一项或多项所述的操作。
如下文更详细地论述的,本文公开的实施方式可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机。计算机可以包括处理器和携载指令的计算机存储介质,所述指令在由处理器执行时和/或致使由处理器执行时执行本文公开的方法中的任一者或多者,或者执行所公开的任何方法的任一个或多个部分。
如上文所指示,在本发明的范围内的实施方式还包括计算机存储介质,所述计算机存储介质是用于携载计算机可执行指令或数据结构或者在上面存储有计算机可执行指令或数据结构的物理介质。这种计算机存储介质可以是可以由通用或专用计算机访问的任何可用的物理介质。
作为示例而非限制,这种计算机存储介质可以包括硬件存储器,诸如固态盘/器件(SSD)、RAM、ROM、EEPROM、CD-ROM、快闪存储器、相变存储器(“PCM”),或者其他光盘存储器、磁盘存储器或其他磁存储装置,或者任何其他硬件存储装置,所述存储装置可以用于存储呈计算机可执行指令或数据结构的形式的程序代码,所述程序代码可以由通用或专用计算机系统访问和执行以实现本发明的所公开的功能。上述的组合也应被包括在计算机存储介质的范围内。这种介质也是非暂时性存储介质的示例,并且非暂时性存储介质还包含基于云的存储系统和结构,但是本发明的范围不限于非暂时性存储介质的这些示例。
计算机可执行指令包括例如在执行时致使通用计算机、专用计算机或专用处理装置执行某个功能或某组功能的指令和数据。因此,本发明的一些实施方式可能能够例如从网站、网状拓扑或其他来源下载到一个或多个系统或装置。并且,本发明的范围包含包括应用程序的实例的任何硬件系统或装置,所述应用程序包括所公开的可执行指令。
尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应理解,在所附权利要求中限定的主题不一定限于上文描述的特定特征或动作。而是,本文公开的特定特征和动作被公开为实现权利要求的示例形式。
如本文所使用,术语“模块”或“部件”可以是指在计算系统上执行的软件对象或例程。本文描述的不同的部件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程,例如实现为单独的线程。虽然本文描述的系统和方法可以软件实现,但是利用硬件或软件和硬件的组合的实现方式也是可能和可预期的。在本发明中,“计算实体”可以是如本文先前所定义的任何计算系统,或者在计算系统上运行的任何模块或模块组合。
在至少一些情况下,提供硬件处理器,所述硬件处理器可操作来实施可执行指令以执行方法或过程,诸如本文公开的方法和过程。硬件处理器可以包括或不包括其他硬件,诸如本文公开的计算装置和系统的元件。
在计算环境方面,本发明的实施方式可以在客户端-服务器环境(不管是网络环境还是本地环境)中,或在任何其他合适的环境中执行。本发明的至少一些实施方式的合适的操作环境包括云计算环境,其中客户端、服务器、或其他机器中的一者或多者可以驻留在其中并且在云环境中操作。
现在简单地参考图7,由图1至图3和/或本文其他位置公开或暗示的实体中的任一者或多者可以采用物理计算装置的形式,或包括物理计算装置,或在物理计算装置上实现,或由物理计算装置托管,物理计算装置的一个示例由700表示。并且,在前述元件中的任一者包括虚拟机(VM)或由VM组成的情况下,该VM可以构成图4中公开的物理部件的任何组合的虚拟化。
在图7的示例中,物理计算装置700包括:存储器702,所述存储器可以包括以下项中的一者、一些或全部:随机存取存储器(RAM)、非易失性随机存取存储器(NVRAM)704、只读存储器(ROM)和永久性存储器、一个或多个硬件处理器706、非暂时性存储介质708、UI(用户界面)装置710以及数据存储器712。物理计算装置700的存储器部件702中的一者或多者可以采用固态器件(SSD)存储器的形式。并且,可以提供一个或多个应用程序714,所述应用程序包括指令,所述指令可由一个或多个硬件处理器706执行以执行本文公开的任何操作或其部分。
此类可执行指令可以采用各种形式,包括例如可执行以执行本文公开的任何方法或其部分的指令、和/或可由任何存储站点(不管是企业本地,还是云存储站点)、客户端、数据中心或备份服务器处中的任一者执行/可在所述任一者处执行以执行本文公开的任何功能的指令。并且,此类指令可能能够执行以执行本文公开的任何其他操作和方法以及其任何部分。
本发明的实施方式、诸如本文公开的示例在各个方面可以是有益的。例如且如根据本公开将显而易见的,本发明的一个或多个实施方式可以任何组合提供一个或多个有利的且意想不到的效果,下文将阐述其中一些示例。应注意,此类效果既不意图,也不应被解释为以任何方式限制要求保护的本发明的范围。还应注意,本文的任何内容都不应被解释为构成任何发明或实施方式的必不可少或不可或缺的元素。而是,所公开的实施方式的各个方面可以各种方式组合,以便定义另外的实施方式。此类另外的实施方式应被视为处于本公开的范围内。并且,包含在本公开的范围内的实施方式都不应被解释为解决,或局限于解决任一个或多个特定问题。任何此类实施方式也不应被解释为实现,或局限于实现任一个或多个特定技术效果或解决方案。最后,不需要任何实施方式都实现本文公开的任何有利的且意想不到的效果。
以下是对本发明的各种实施方式的示例操作环境的各方面的论述。此论述不意图以任何方式限制本发明的范围或实施方式的适用性。
一般而言,本发明的实施方式可以结合单独地和/或共同地实现和/或致使实现一个或多个容器镜像的创建、修改、加密和/或解密的系统、软件和部件一起来实现。更一般地,本发明的范围包含所公开的概念可能有用的任何操作环境。
本发明的实施方式可以结合基于容器的平台(诸如Docker)一起采用,但是在任何实施方式中都不需要采用特定平台。基于容器的平台可以涉及或包括部署环境,诸如云计算环境。本发明的示例实施方式可以采用的示例云计算环境包括但不限于:DellEMCCloud、Microsoft Azure、Amazon AWS以及Google Cloud。然而,更一般地,本发明的范围不限于采用任何特定类型或实现方式的云计算环境。
在不脱离本发明精神或基本特性的情况下,可以其他特定形式体现本发明。所描述的实施方式应在所有方面都仅被视为是说明性而不是限制性的。因此本发明的范围由所附权利要求而非前文描述指示。在权利要求的等效形式的含义和范围内的所有变化都将被包含在权利要求的范围内。
Claims (12)
1.一种方法,所述方法包括:
通过以下方式将与敏感数据相关联的应用程序打包为至少第一镜像和第二镜像:将第一层放置在所述第一镜像中,所述第一层包括拷贝程序层;以及将第二层放置在所述第二镜像中,其中所述第二层包括解密器层和包括处于加密形式的所述敏感数据的加密层;以及
将所述第二镜像配置为在所述第一镜像之前运行。
2.如权利要求1所述的方法,所述方法还包括将所述第二镜像作为初始化容器运行,其中所述初始化容器的执行包括通过解密器对所述加密层进行解密以获得解密的敏感数据。
3.如权利要求2所述的方法,所述方法还包括将所述解密的敏感数据存储在文件系统的目录中。
4.如权利要求3所述的方法,所述方法还包括在所述初始化容器成功完成之后,将所述第一镜像作为主容器运行。
5.如权利要求4所述的方法,所述方法还包括运行所述拷贝程序层,其中所述拷贝程序层将所述目录中的所述解密的敏感数据拷贝到与主应用程序相关联的层根目录中的位置。
6.如权利要求1所述的方法,所述方法还包括产生pod规格,使得所述第二镜像在所述第一镜像运行之前运行并完成。
7.如权利要求1所述的方法,所述方法还包括通过对所述敏感数据的一个或多个敏感层进行加密而产生所述加密层。
8.如权利要求1所述的方法,其中打包所述应用程序包括将某一镜像拆分为所述第一镜像和所述第二镜像,或者为所述第一镜像构造命令文件并且为所述第二镜像构造命令文件。
9.如权利要求8所述的方法,所述方法还包括将所述解密器层放置在所述第二镜像中,使得所述第二镜像中的所述解密器层不依赖于所述第一镜像中所包括的操作系统。
10.如权利要求1所述的方法,所述方法还包括创建所述第一镜像和所述第二镜像。
11.如权利要求1所述的方法,其中,所述第二镜像包括识别所述加密层在所述第二镜像中的位置的信号层和停止信号层。
12.一种非暂时性存储介质,所述非暂时性存储介质中存储有指令,所述指令能够由一个或多个硬件处理器执行以执行如权利要求1-11中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/025,324 | 2020-09-18 | ||
US17/025,324 US11675913B2 (en) | 2020-09-18 | 2020-09-18 | Optimizing container image encryption |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201763A true CN114201763A (zh) | 2022-03-18 |
Family
ID=77640451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111087110.2A Pending CN114201763A (zh) | 2020-09-18 | 2021-09-16 | 优化容器镜像加密 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11675913B2 (zh) |
EP (1) | EP3971743B1 (zh) |
CN (1) | CN114201763A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547661A (zh) * | 2022-03-21 | 2022-05-27 | 京东科技信息技术有限公司 | 应用配置数据的加解密方法、装置、设备和存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11455405B2 (en) * | 2020-08-07 | 2022-09-27 | EMC IP Holding Company LLC | Optimizing docker image encryption—tradeoff between performance and protection level |
US20240095006A1 (en) * | 2022-09-21 | 2024-03-21 | Ncr Corporation | Image assembly |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954532B1 (en) | 2000-08-07 | 2005-10-11 | Xerox Corporation | Selective encryption of mixed raster content layers |
KR100908100B1 (ko) | 2008-11-17 | 2009-07-16 | 주식회사 오엘콥스 | 마트로시카 구조를 갖는 암호화 이미지를 이용한 상호 동기 인증 시스템 및 방법 |
US8738681B1 (en) | 2010-12-23 | 2014-05-27 | Emc Corporation | Hierarchical cooperative storage services |
US8898351B2 (en) | 2010-12-30 | 2014-11-25 | Emc Corporation | Dynamic compression of an I/O data block |
US8805951B1 (en) | 2011-02-08 | 2014-08-12 | Emc Corporation | Virtual machines and cloud storage caching for cloud computing applications |
CN103080952B (zh) | 2011-05-12 | 2015-12-09 | 中国科学院自动化研究所 | 基于局部特征的免配准安全指纹认证方法和系统 |
US9075642B1 (en) | 2011-09-30 | 2015-07-07 | Emc Corporation | Controlling access to resources using independent and nested hypervisors in a storage system environment |
US9741256B2 (en) | 2011-11-07 | 2017-08-22 | Board Of Regents Of The University Of Texas System | Remote laboratory gateway |
US9594514B1 (en) | 2013-06-27 | 2017-03-14 | EMC IP Holding Company LLC | Managing host data placed in a container file system on a data storage array having multiple storage tiers |
US10089035B1 (en) | 2013-10-29 | 2018-10-02 | EMC IP Holding Company LLC | Block storage transparent platform migration |
US10089037B1 (en) | 2013-10-29 | 2018-10-02 | EMC IP Holding Company LLC | Block active/active access to data storage systems at different locations |
US9703965B1 (en) | 2014-06-30 | 2017-07-11 | EMC IP Holding Company LLC | Secure containers for flexible credential protection in devices |
US9930115B1 (en) | 2014-12-18 | 2018-03-27 | EMC IP Holding Company LLC | Virtual network storage function layer comprising one or more virtual network storage function instances |
US10356169B1 (en) | 2014-12-23 | 2019-07-16 | EMC IP Holding Company LLC | Virtual content delivery network |
US9697241B1 (en) | 2015-03-19 | 2017-07-04 | EMC IP Holding Company LLC | Data fabric layer having nodes associated with virtual storage volumes of underlying storage infrastructure layer |
CA2943962C (en) | 2015-11-05 | 2024-01-16 | The Toronto-Dominion Bank | Securing data via multi-layer tokens |
US10152481B1 (en) | 2015-12-03 | 2018-12-11 | EMC IP Holding Company LLC | Technique to scale out namespace |
US10032032B2 (en) | 2015-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Software container registry inspection |
US9983909B1 (en) | 2016-03-15 | 2018-05-29 | EMC IP Holding Company LLC | Converged infrastructure platform comprising middleware preconfigured to support containerized workloads |
US10326744B1 (en) | 2016-03-21 | 2019-06-18 | EMC IP Holding Company LLC | Security layer for containers in multi-tenant environments |
US10291706B1 (en) | 2016-03-24 | 2019-05-14 | EMC IP Holding Company LLC | Container image distribution acceleration |
US10469574B1 (en) | 2016-04-20 | 2019-11-05 | EMC IP Holding Company LLC | Incremental container state persistency and replication for containerized stateful applications |
US10044640B1 (en) | 2016-04-26 | 2018-08-07 | EMC IP Holding Company LLC | Distributed resource scheduling layer utilizable with resource abstraction frameworks |
US10061520B1 (en) | 2016-06-22 | 2018-08-28 | EMC IP Holding Company LLC | Accelerated data access operations |
US10534671B1 (en) | 2016-06-28 | 2020-01-14 | EMC IP Holding Company LLC | Container image layer compaction |
US10419931B1 (en) | 2016-08-25 | 2019-09-17 | EMC IP Holding Company LLC | Security for network computing environment using centralized security system |
US10691613B1 (en) | 2016-09-27 | 2020-06-23 | EMC IP Holding Company LLC | Caching algorithms for multiple caches |
US11314880B2 (en) * | 2016-10-31 | 2022-04-26 | Red Hat, Inc. | Decoupling container image layers to preserve privacy |
US10284578B2 (en) | 2017-03-06 | 2019-05-07 | International Business Machines Corporation | Creating a multi-dimensional host fingerprint for optimizing reputation for IPV6 |
CN108733311B (zh) | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
US10698925B1 (en) | 2017-04-18 | 2020-06-30 | EMC IP Holding Company LLC | Grouping-based container management and data services |
US10659533B1 (en) | 2017-04-26 | 2020-05-19 | EMC IP Holding Company LLC | Layer-aware data movement control for containers |
US10659329B1 (en) | 2017-04-28 | 2020-05-19 | EMC IP Holding Company LLC | Container distance measurement and clustering |
US10409693B1 (en) | 2017-07-14 | 2019-09-10 | EMC IP Holding Company LLC | Object storage in stripe file systems |
CN109725980B (zh) | 2017-10-27 | 2023-05-16 | 伊姆西Ip控股有限责任公司 | 生成镜像标签的方法、设备以及计算机可读介质 |
US10997283B2 (en) * | 2018-01-08 | 2021-05-04 | Aqua Security Software, Ltd. | System for securing software containers with encryption and embedded agent |
WO2019149797A1 (en) | 2018-01-31 | 2019-08-08 | Assa Abloy Ab | Enabling an encrypted software module in a container file |
US10628599B2 (en) | 2018-02-14 | 2020-04-21 | Fmr Llc | Generating and deploying customized software containers |
US10719345B2 (en) * | 2018-05-16 | 2020-07-21 | International Business Machines Corporation | Container image building |
US11475138B2 (en) * | 2019-02-06 | 2022-10-18 | International Business Machines Corporation | Creation and execution of secure containers |
CN113934506A (zh) | 2020-06-29 | 2022-01-14 | 伊姆西Ip控股有限责任公司 | 管理容器的映像的方法、设备和计算机程序产品 |
US11501026B2 (en) * | 2020-07-13 | 2022-11-15 | Avaya Management L.P. | Method to encrypt the data at rest for data residing on Kubernetes persistent volumes |
US11455405B2 (en) | 2020-08-07 | 2022-09-27 | EMC IP Holding Company LLC | Optimizing docker image encryption—tradeoff between performance and protection level |
-
2020
- 2020-09-18 US US17/025,324 patent/US11675913B2/en active Active
-
2021
- 2021-09-03 EP EP21194796.5A patent/EP3971743B1/en active Active
- 2021-09-16 CN CN202111087110.2A patent/CN114201763A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547661A (zh) * | 2022-03-21 | 2022-05-27 | 京东科技信息技术有限公司 | 应用配置数据的加解密方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3971743B1 (en) | 2023-04-05 |
EP3971743A1 (en) | 2022-03-23 |
US20220092192A1 (en) | 2022-03-24 |
US11675913B2 (en) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647754B (zh) | 用于在文件系统中强制实行视图分离的方法、装置、介质及系统 | |
RU2759331C2 (ru) | Распечатывание данных с запечатывающим анклавом | |
US10592696B2 (en) | CPU obfuscation for cloud applications | |
CN107003866B (zh) | 来自加密模板的加密虚拟机的安全创建 | |
CN114201763A (zh) | 优化容器镜像加密 | |
US11163878B2 (en) | Integrity, theft protection and cyber deception using a deception-based filesystem | |
EP3044901B1 (en) | Keying infrastructure | |
US8171301B2 (en) | Method and system for integrated securing and managing of virtual machines and virtual appliances | |
US9531547B2 (en) | Host-based digital signature verification for guest components | |
US11455405B2 (en) | Optimizing docker image encryption—tradeoff between performance and protection level | |
US10114932B2 (en) | Adapting a mobile application to a partitioned environment | |
WO2016010665A1 (en) | Apparatus for and method of preventing unsecured data access | |
CN102163266A (zh) | 在主机服务器之间安全地移动虚拟机 | |
EP3885953B1 (fr) | Procédé et dispositif de contrôle dynamique, au niveau fichier, de l'intégrité de fichiers de programme dans une mémoire persistante d'un ordinateur, programme d'ordinateur et ordinateur l'incorporant | |
WO2015084144A1 (en) | A system and method to secure virtual machine images in cloud computing | |
US20210344719A1 (en) | Secure invocation of network security entities | |
EP4054115A1 (en) | Optimizing docker image encryption - kubernetes using shamir secrets to enforce multiple constraints in container runtime environment | |
US11755721B2 (en) | Trusted workload execution | |
US11216566B1 (en) | System and method for encryption of ephemeral storage | |
EP4216088A1 (en) | Extended secure boot for launching a virtual machine | |
Kaur et al. | Scrutinizing Docker Security and Applications | |
KR20240016243A (ko) | 온 다이 암호화 및 원격 증명을 통한 디지털 콘텐츠관리 |
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 |