CN109190386A - 基于Device Mapper的容器镜像分层加密存储方法 - Google Patents
基于Device Mapper的容器镜像分层加密存储方法 Download PDFInfo
- Publication number
- CN109190386A CN109190386A CN201810839094.XA CN201810839094A CN109190386A CN 109190386 A CN109190386 A CN 109190386A CN 201810839094 A CN201810839094 A CN 201810839094A CN 109190386 A CN109190386 A CN 109190386A
- Authority
- CN
- China
- Prior art keywords
- image planes
- equipment
- container
- image
- mirror image
- 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.)
- Granted
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明的基于Device Mapper的容器镜像分层加密存储方法,主要采用dm‑crypt对具体的快照设备进行加密。一个镜像层对应Device Mapper下的一个逻辑设备,使用当前镜像层的密钥通过dm‑crypt模块对该逻辑设备加密。需要使用镜像层时,使用镜像层密钥通过dm‑crypt模块解密打开之前加密过的设备,解密打开的设备就是一个可访问的设备,通过绑定到文件系统后提供给用户使用。本发明改进了现有的容器镜像存储机制,提出了镜像分层加密存储的安全机制,实现了容器镜像层数据安全隔离,既实现了容器的存储安全,也可以通过分层加密实现对容器的访问控制。方便安全管理人员根据不同的需要向不同权限的用户提供应用服务,使得容器的应用安全得到显著提升。
Description
技术领域
本发明涉及容器技术领域,具体地说,涉及一种容器镜像分层加密存储方法。
背景技术
容器虚拟化技术目前已经发展成熟并开始大量应用。容器镜像作为容器虚拟化技术的重要组成部分,承载了容器的具体业务,决定了容器具体会做什么。一个镜像可以是运行一个简单的独立的命令,然后就退出;也可以像一个数据库软件一样复杂,等用户来向里面添加数据,存储数据,然后使用数据。问题随之而来,当我们并不想其他人能访问到镜像里面的数据是怎么办。更进一步的,容器镜像是基于copy on write(CoW)技术来实现的,一个镜像是由1到N层的镜像层叠加组成,每一层都是一个完整的运行环境并且是只读的。用户使用镜像,对其修改并保存修改,镜像就会新增加一层镜像层。容器镜像在DeviceMapper机制下的存储实现如图1所示,首先在块设备上创建一个资源池,然后在资源池上创建一个带有文件系统的基础设备,所有镜像都是这个基础设备的快照,而容器则是镜像的快照。在Device Mapper中,一个快照就对应一个设备,而每个镜像层都对应一个快照,对父镜像层做快照操作得到子镜像层,通过这样的机制实现了镜像的分层结构和存储优化。
目前的容器镜像存储是开放式的,镜像每一层数据都很容易被获取到。分层存储很容易带来敏感数据残留的安全问题。例如,用户A定制了一个镜像A给自己使用,其中存储了A用户的一个私有密钥。然后A用户将该密钥删除后,重新生成了一个新的镜像B给用户B使用。用户B获取到新的镜像后,很容器获取到其父镜像层中的数据,导致用户A的私钥被用户B获取到。
发明内容
为了解决上述问题,本发明提供一种Device Mapper的容器镜像分层加密存储方法,来隔离不同镜像层用户间的数据访问,防止镜像层间数据残留。
本发明的基于Device Mapper的容器镜像分层加密存储方法,通过在块设备上创建资源池,并在资源池上创建带有文件系统的基础设备,所有镜像是基础设备的快照,容器是镜像的快照的机制实现镜像分层存储,包括如下步骤:
s1、初始化资源池;
s2、初始化基础设备;
s3、创建镜像层对应的快照;
s4、激活步骤s3中创建的快照;
s5、加密步骤s4中激活的快照对应的设备;
s6、解密步骤s5中加密了的设备;
s7、格式化步骤s6中解密打开的设备;
s8、将本镜像层的数据写入步骤s7中格式化后的设备中;
s9、关闭所有已解密打开的设备;
s10、激活本镜像层快照;
其中,所述步骤s8中,将本镜像层的数据写入步骤s7中格式化后的设备中,当本镜像层有父镜像层时,先将本镜像层的父镜像层的数据写入步骤s7中格式化后的设备中,然后再将本镜像层的差异数据写入格式化后的设备中。将本镜像层的父镜像层数据写入格式化的设备前,先将父镜像层所对应的设备进行解密,再把父镜像层的内容拷贝到本镜像层所对应的设备中。
每一层镜像加密和解密密钥相同,不同镜像层密钥不同;每一镜像层密钥专用;所有镜像层密钥由统一的密管系统管理。
本发明采用基于Device Mapper机制的dm-crypt工具对镜像对应的快照设备进行加密;一个镜像层对应Device Mapper下的一个逻辑设备,使用当前镜像层的密钥通过dm-crypt模块对该逻辑设备加密;需要使用镜像层时,使用该镜像层密钥通过dm-crypt模块解密打开之前加密过的设备,解密打开的设备就是一个可访问的设备,通过绑定到文件系统后提供给用户使用。
本发明改进了现有的容器镜像存储机制,提出了镜像分层加密存储的安全机制,实现了容器镜像层数据安全隔离,既实现了容器的存储安全,也可以通过分层加密实现对容器的访问控制。方便安全管理人员根据不同的需要向不同权限的用户提供应用服务,使得容器的应用安全得到显著提升。
附图说明
图1是现有技术下容器镜像存储工作原理示意图;
图2是现有技术下容器镜像存储流程示意图;
图3是本发明容器镜像加密存储流程示意图;
图4是本发明的容器镜像加密存储密钥对应示意图;
图5是本发明的容器镜像加密工作原理示意图。
具体实施方式
为了更好的理解本发明,下面结合附图详细说明本发明。
如图2所示,在现有的镜像分层存储中,镜像的第一层快照从基础设备中创建快照,后续的镜像层都是基于其父镜像层创建快照而来。新建的快照已经包含了父层的所有内容,然后再在此基础上写入当前镜像层的内容,形成了一个新的完整的镜像层快照。
如图3所示,本发明的基于Device Mapper的容器镜像分层加密存储方法,针对镜像层1,
s11、初始化资源池;
s12、初始化基础设备;
s13、创建镜像层1对应的快照;
s14、激活快照;
s15、加密对应设备,即加密激活的快照对应的设备;
s16、解密对应设备,即解密加密了的设备;
s17、格式化解密打开的设备;
s18、将镜像层1的父镜像层数据写入格式化后的设备中;
s19、写入镜像层1的差异数据;
s110、关闭所有已解密打开的设备;
s111、激活镜像层1快照.
针对镜像层2,
s21、初始化资源池;
s22、初始化基础设备;
s23、创建镜像层2对应的快照;
s24、激活快照;
s25、加密对应设备,即加密激活的快照对应的设备;
s26、解密对应设备,即解密加密了的设备;
s27、格式化解密打开的设备;
s28、将镜像层2的父镜像层级镜像层1的数据写入格式化后的设备中;
s29、写入镜像层2的差异数据;
s210、关闭所有已解密打开的设备;
s211、激活镜像层2快照。
其中,将镜像层1的数据写入格式化后的镜像层2的设备之前,先将镜像层1的内容解密再写入。
本发明中,所有的快照都是基于基础设备创建快照而来,而不是基于父镜像层的快照而创建快照。相对于现有技术来说,本发明中,当快照创建好后,首先要对快照对应的设备进行加密,设备加密后,再将其解密打开,然后格式化解密设备,最后写入镜像层的数据,如果当前的镜像层有父层,需要先将父层的内容解密拷贝到格式化后的解密设备中,然后再写入当前镜像层的数据。最后将所有打开的解密设备关闭,获得一个所有镜像层都经过加密的镜像。
通过本发明的分层加密方法,实现了对镜像分成加密,如图4所示,每一层镜像都使用专为其分配的密钥进行加解密,这些密钥都由统一的密管系统管理。镜像存储在系统中时,其每一层对应的设备都被加密,且相互之间密钥不痛,数据隔离,用户也就不能随意获取其中的数据。
本发明对镜像层的加密,主要采用dm-crypt对具体的快照设备进行加密。dm-crypt是Linux内核提供的一个磁盘加密工具,也是基于Device Mapper机制。因此,能够很好的整合到整个镜像分层加密流程中。dm-crypt模块通过Device Mapper虚拟一个块设备,并在bio转发的时候将数据加密后存储来实现块设备的加密。如图5所示,一个镜像层对应Device Mapper下的一个逻辑设备,使用当前镜像层的密钥通过dm-crypt模块对该逻辑设备加密。需要使用镜像层时,使用镜像层密钥通过dm-crypt模块解密打开之前加密过的设备,解密打开的设备就是一个可访问的设备,通过绑定到文件系统后提供给用户使用。
本发明改进了现有的容器镜像存储机制,提出了镜像分层加密存储的安全机制,实现了容器镜像层数据安全隔离,既实现了容器的存储安全,也可以通过分层加密实现对容器的访问控制。方便安全管理人员根据不同的需要向不同权限的用户提供应用服务,使得容器的应用安全得到显著提升。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (6)
1.基于Device Mapper的容器镜像分层加密存储方法,通过在块设备上创建资源池,并在资源池上创建带有文件系统的基础设备,所有镜像是基础设备的快照,容器是镜像的快照的机制实现镜像分层存储,其特征在于,包括如下步骤:
s1、初始化资源池;
s2、初始化基础设备;
s3、创建镜像层对应的快照;
s4、激活步骤s3中创建的快照;
s5、加密步骤s4中激活的快照对应的设备;
s6、解密步骤s5中加密了的设备;
s7、格式化步骤s6中解密打开的设备;
s8、将本镜像层的数据写入步骤s7中格式化后的设备中;
s9、关闭所有已解密打开的设备;
s10、激活本镜像层快照。
2.根据权利要求1所述的基于Device Mapper的容器镜像分层加密存储方法,其特征在于,
所述步骤s8中,将本镜像层的数据写入步骤s7中格式化后的设备中,当本镜像层有父镜像层时,先将本镜像层的父镜像层的数据写入步骤s7中格式化后的设备中,然后再将本镜像层的差异数据写入格式化后的设备中。
3.根据权利要求2所述的基于Device Mapper的容器镜像分层加密存储方法,其特征在于,
将本镜像层的父镜像层数据写入格式化的设备前,先将父镜像层所对应的设备进行解密,再把父镜像层的内容拷贝到本镜像层所对应的设备中。
4.根据权利要求3所述的基于Device Mapper的容器镜像分层加密存储方法,其特征在于,
对解密后的设备进行格式化后,为其创建文件系统。
5.根据权利要求1至4任一所述的基于Device Mapper的容器镜像分层加密存储方法,其特征在于,
每一层镜像加密和解密密钥相同,不同镜像层密钥不同;
每一镜像层密钥专用;
所有镜像层密钥由统一的密管系统管理。
6.根据权利要求1至4任一所述的基于Device Mapper的容器镜像分层加密存储方法,其特征在于,
采用基于Device Mapper机制的dm-crypt工具对镜像对应的快照设备进行加密;
一个镜像层对应Device Mapper下的一个逻辑设备,使用当前镜像层的密钥通过dm-crypt模块对该逻辑设备加密;需要使用镜像层时,使用该镜像层密钥通过dm-crypt模块解密打开之前加密过的设备,解密打开的设备就是一个可访问的设备,通过绑定到文件系统后提供给用户使用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810303889 | 2018-04-04 | ||
CN2018103038899 | 2018-04-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109190386A true CN109190386A (zh) | 2019-01-11 |
CN109190386B CN109190386B (zh) | 2021-11-12 |
Family
ID=64937131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810839094.XA Active CN109190386B (zh) | 2018-04-04 | 2018-07-26 | 基于Device Mapper的容器镜像分层加密存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109190386B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830571A (zh) * | 2019-11-05 | 2020-02-21 | 许继集团有限公司 | 一种业务数据备份与提取方法及计算机可读介质 |
CN110928639A (zh) * | 2019-10-22 | 2020-03-27 | 西安雷风电子科技有限公司 | 一种Windows虚拟化镜像分层管理方法及装置 |
CN111124956A (zh) * | 2019-11-22 | 2020-05-08 | 海光信息技术有限公司 | 一种容器保护方法、处理器、操作系统及计算机设备 |
WO2021013248A1 (zh) * | 2019-07-24 | 2021-01-28 | 中兴通讯股份有限公司 | 容器分层部署方法及系统 |
CN113032736A (zh) * | 2021-03-05 | 2021-06-25 | 海能达通信股份有限公司 | Docker分层镜像的加解密方法及相关装置 |
CN113626146A (zh) * | 2021-07-23 | 2021-11-09 | 济南浪潮数据技术有限公司 | 一种基于用户属性的容器镜像安全分发方法和装置 |
CN115688067A (zh) * | 2022-09-30 | 2023-02-03 | 金航数码科技有限责任公司 | 一种基于容器的数据存储及访问控制方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071744A1 (en) * | 2003-09-30 | 2005-03-31 | Microsoft Corporation | Image file container |
CN101901313A (zh) * | 2010-06-10 | 2010-12-01 | 中科方德软件有限公司 | 一种Linux文件保护系统及方法 |
CN103107994A (zh) * | 2013-02-06 | 2013-05-15 | 中电长城网际系统应用有限公司 | 一种虚拟化环境数据安全隔离方法和系统 |
CN103106372A (zh) * | 2013-01-17 | 2013-05-15 | 上海交通大学 | 用于Android系统的轻量级隐私数据加密方法及系统 |
CN104268489A (zh) * | 2014-09-26 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种基于device mapper的加密卡性能优化的方法 |
CN104298472A (zh) * | 2014-10-12 | 2015-01-21 | 张维加 | 一种分层实现计算虚拟化的方法与设备 |
CN104517061A (zh) * | 2015-01-16 | 2015-04-15 | 中怡(苏州)科技有限公司 | 加密文件系统的方法及挂载加密文件系统的方法 |
CN105069353A (zh) * | 2015-08-11 | 2015-11-18 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
CN106063218A (zh) * | 2014-12-30 | 2016-10-26 | 华为技术有限公司 | 虚拟化系统中加解密的方法、装置和系统 |
US20170109372A1 (en) * | 2015-10-15 | 2017-04-20 | Nec Corporation | File access system, method, and program |
CN107229467A (zh) * | 2017-05-10 | 2017-10-03 | 北京海杭通讯科技有限公司 | 一种基于android容器的device mapper隔离方法 |
CN107358131A (zh) * | 2017-07-13 | 2017-11-17 | 北京元心科技有限公司 | 块设备的加密扩容方法、装置和智能终端 |
CN107729020A (zh) * | 2017-10-11 | 2018-02-23 | 北京航空航天大学 | 一种实现大规模容器快速部署的方法 |
-
2018
- 2018-07-26 CN CN201810839094.XA patent/CN109190386B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071744A1 (en) * | 2003-09-30 | 2005-03-31 | Microsoft Corporation | Image file container |
CN101901313A (zh) * | 2010-06-10 | 2010-12-01 | 中科方德软件有限公司 | 一种Linux文件保护系统及方法 |
CN103106372A (zh) * | 2013-01-17 | 2013-05-15 | 上海交通大学 | 用于Android系统的轻量级隐私数据加密方法及系统 |
CN103107994A (zh) * | 2013-02-06 | 2013-05-15 | 中电长城网际系统应用有限公司 | 一种虚拟化环境数据安全隔离方法和系统 |
CN104268489A (zh) * | 2014-09-26 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种基于device mapper的加密卡性能优化的方法 |
CN104298472A (zh) * | 2014-10-12 | 2015-01-21 | 张维加 | 一种分层实现计算虚拟化的方法与设备 |
CN106063218A (zh) * | 2014-12-30 | 2016-10-26 | 华为技术有限公司 | 虚拟化系统中加解密的方法、装置和系统 |
CN104517061A (zh) * | 2015-01-16 | 2015-04-15 | 中怡(苏州)科技有限公司 | 加密文件系统的方法及挂载加密文件系统的方法 |
CN105069353A (zh) * | 2015-08-11 | 2015-11-18 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
US20170109372A1 (en) * | 2015-10-15 | 2017-04-20 | Nec Corporation | File access system, method, and program |
CN107229467A (zh) * | 2017-05-10 | 2017-10-03 | 北京海杭通讯科技有限公司 | 一种基于android容器的device mapper隔离方法 |
CN107358131A (zh) * | 2017-07-13 | 2017-11-17 | 北京元心科技有限公司 | 块设备的加密扩容方法、装置和智能终端 |
CN107729020A (zh) * | 2017-10-11 | 2018-02-23 | 北京航空航天大学 | 一种实现大规模容器快速部署的方法 |
Non-Patent Citations (3)
Title |
---|
IOANNIS GIANNAKOPOULOS 等: "Isolation in Docker through Layer Encryption", 《2017 IEEE 37TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (ICDCS)》 * |
牟洋: "基于云平台的取证方案应用研究", 《中国优秀博硕士学位论文全文数据库(硕士)》 * |
许国春 等: "一种面向特定应用的内核级文件加密技术", 《计算机科学》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021013248A1 (zh) * | 2019-07-24 | 2021-01-28 | 中兴通讯股份有限公司 | 容器分层部署方法及系统 |
CN110928639A (zh) * | 2019-10-22 | 2020-03-27 | 西安雷风电子科技有限公司 | 一种Windows虚拟化镜像分层管理方法及装置 |
CN110928639B (zh) * | 2019-10-22 | 2022-12-02 | 西安雷风电子科技有限公司 | 一种Windows虚拟化镜像分层管理方法及装置 |
CN110830571A (zh) * | 2019-11-05 | 2020-02-21 | 许继集团有限公司 | 一种业务数据备份与提取方法及计算机可读介质 |
CN111124956A (zh) * | 2019-11-22 | 2020-05-08 | 海光信息技术有限公司 | 一种容器保护方法、处理器、操作系统及计算机设备 |
CN111124956B (zh) * | 2019-11-22 | 2023-03-07 | 海光信息技术股份有限公司 | 一种容器保护方法、处理器、操作系统及计算机设备 |
CN113032736A (zh) * | 2021-03-05 | 2021-06-25 | 海能达通信股份有限公司 | Docker分层镜像的加解密方法及相关装置 |
CN113626146A (zh) * | 2021-07-23 | 2021-11-09 | 济南浪潮数据技术有限公司 | 一种基于用户属性的容器镜像安全分发方法和装置 |
CN115688067A (zh) * | 2022-09-30 | 2023-02-03 | 金航数码科技有限责任公司 | 一种基于容器的数据存储及访问控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109190386B (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109190386A (zh) | 基于Device Mapper的容器镜像分层加密存储方法 | |
US8064604B2 (en) | Method and apparatus for facilitating role-based cryptographic key management for a database | |
CN102254124B (zh) | 一种移动终端信息安全防护系统和方法 | |
JP4398145B2 (ja) | 自動データベース暗号化の方法および装置 | |
KR20230021642A (ko) | 너츠: 유연한 계위 객체 그래프 | |
US9158933B2 (en) | Protection of encryption keys in a database | |
US10102383B2 (en) | Permanently erasing mechanism for encryption information | |
US11308234B1 (en) | Methods for protecting data | |
US9448949B2 (en) | Mobile data vault | |
KR101405720B1 (ko) | 암호화 속성을 이용하는 가속 크립토그래피 | |
US8572372B2 (en) | Method for selectively enabling access to file systems of mobile terminals | |
US7814318B1 (en) | Scalable file system configured to make files permanently unreadable | |
CN107004070A (zh) | 利用硬件受保护的数字权限管理进行的媒体解码控制 | |
US8200964B2 (en) | Method and apparatus for accessing an encrypted file system using non-local keys | |
CN104852922B (zh) | 基于分布式文件系统的大数据加解密方法 | |
WO2004034184A2 (en) | Encrypting operating system | |
CN103745162B (zh) | 一种安全网络文件存储系统 | |
JP2019521537A (ja) | ユーザプロファイル内にユーザ情報を安全に格納するシステムおよび方法 | |
JPH10260903A (ja) | グループ暗号方法、及びファイル暗号システム | |
CN104102483A (zh) | 安全地使用公共服务以实现私人或企业目的的方法和系统 | |
CN104239820A (zh) | 一种安全存储设备 | |
CN107070649B (zh) | 一种减少写入的大文件选择性加密方法 | |
US20180276408A1 (en) | Systems and methods for secure high speed data generation and access | |
CN106682521A (zh) | 基于驱动层的文件透明加解密系统及方法 | |
CN114175580A (zh) | 增强的安全加密和解密系统 |
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 |