CN109190386B - 基于Device Mapper的容器镜像分层加密存储方法 - Google Patents
基于Device Mapper的容器镜像分层加密存储方法 Download PDFInfo
- Publication number
- CN109190386B CN109190386B CN201810839094.XA CN201810839094A CN109190386B CN 109190386 B CN109190386 B CN 109190386B CN 201810839094 A CN201810839094 A CN 201810839094A CN 109190386 B CN109190386 B CN 109190386B
- Authority
- CN
- China
- Prior art keywords
- mirror
- mirror image
- layer
- container
- image layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
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 (4)
1.基于Device Mapper的容器镜像分层加密存储方法,通过在块设备上创建资源池,并在资源池上创建带有文件***的基础设备,所有镜像是基础设备的快照,容器是镜像的快照的机制实现镜像分层存储,其特征在于,包括如下步骤:
s1、初始化资源池;
s2、初始化基础设备;
s3、创建镜像层对应的快照;
s4、激活步骤s3中创建的快照;
s5、加密步骤s4中激活的快照对应的设备;
s6、解密步骤s5中加密了的设备;
s7、格式化步骤s6中解密打开的设备;
s8、将本镜像层的数据写入步骤s7中格式化后的设备中;当本镜像层有父镜像层时,先将本镜像层的父镜像层的数据写入步骤s7中格式化后的设备中,然后再将本镜像层的差异数据写入格式化后的设备中;将本镜像层的父镜像层数据写入格式化的设备前,先将父镜像层所对应的设备进行解密,再把父镜像层的内容拷贝到本镜像层所对应的设备中;
s9、关闭所有已解密打开的设备;
s10、激活本镜像层快照。
2.根据权利要求1所述的基于Device Mapper的容器镜像分层加密存储方法,其特征在于,
对解密后的设备进行格式化后,为其创建文件***。
3.根据权利要求1或2任一所述的基于Device Mapper的容器镜像分层加密存储方法,其特征在于,
每一层镜像加密和解密密钥相同,不同镜像层密钥不同;
每一镜像层密钥专用;
所有镜像层密钥由统一的密管***管理。
4.根据权利要求1或2任一所述的基于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 CN109190386A (zh) | 2019-01-11 |
CN109190386B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306621A (zh) * | 2019-07-24 | 2021-02-02 | 中兴通讯股份有限公司 | 容器分层部署方法及*** |
CN110928639B (zh) * | 2019-10-22 | 2022-12-02 | 西安雷风电子科技有限公司 | 一种Windows虚拟化镜像分层管理方法及装置 |
CN110830571A (zh) * | 2019-11-05 | 2020-02-21 | 许继集团有限公司 | 一种业务数据备份与提取方法及计算机可读介质 |
CN111124956B (zh) * | 2019-11-22 | 2023-03-07 | 海光信息技术股份有限公司 | 一种容器保护方法、处理器、操作***及计算机设备 |
CN113032736A (zh) * | 2021-03-05 | 2021-06-25 | 海能达通信股份有限公司 | Docker分层镜像的加解密方法及相关装置 |
CN115688067A (zh) * | 2022-09-30 | 2023-02-03 | 金航数码科技有限责任公司 | 一种基于容器的数据存储及访问控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268489A (zh) * | 2014-09-26 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种基于device mapper的加密卡性能优化的方法 |
CN104517061A (zh) * | 2015-01-16 | 2015-04-15 | 中怡(苏州)科技有限公司 | 加密文件***的方法及挂载加密文件***的方法 |
CN106063218A (zh) * | 2014-12-30 | 2016-10-26 | 华为技术有限公司 | 虚拟化***中加解密的方法、装置和*** |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480382B2 (en) * | 2003-09-30 | 2009-01-20 | Microsoft Corporation | Image file container |
CN101901313B (zh) * | 2010-06-10 | 2013-12-18 | 中科方德软件有限公司 | 一种Linux文件保护***及方法 |
CN103106372B (zh) * | 2013-01-17 | 2015-10-28 | 上海交通大学 | 用于Android***的轻量级隐私数据加密方法及*** |
CN103107994B (zh) * | 2013-02-06 | 2017-02-08 | 中电长城网际***应用有限公司 | 一种虚拟化环境数据安全隔离方法和*** |
CN104298472A (zh) * | 2014-10-12 | 2015-01-21 | 张维加 | 一种分层实现计算虚拟化的方法与设备 |
CN105069353B (zh) * | 2015-08-11 | 2017-10-24 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
JP2017076264A (ja) * | 2015-10-15 | 2017-04-20 | 日本電気株式会社 | ファイルアクセスシステム、方法及びプログラム |
CN107229467A (zh) * | 2017-05-10 | 2017-10-03 | 北京海杭通讯科技有限公司 | 一种基于android容器的device mapper隔离方法 |
CN107358131A (zh) * | 2017-07-13 | 2017-11-17 | 北京元心科技有限公司 | 块设备的加密扩容方法、装置和智能终端 |
CN107729020B (zh) * | 2017-10-11 | 2020-08-28 | 北京航空航天大学 | 一种实现大规模容器快速部署的方法 |
-
2018
- 2018-07-26 CN CN201810839094.XA patent/CN109190386B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268489A (zh) * | 2014-09-26 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种基于device mapper的加密卡性能优化的方法 |
CN106063218A (zh) * | 2014-12-30 | 2016-10-26 | 华为技术有限公司 | 虚拟化***中加解密的方法、装置和*** |
CN104517061A (zh) * | 2015-01-16 | 2015-04-15 | 中怡(苏州)科技有限公司 | 加密文件***的方法及挂载加密文件***的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109190386A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109190386B (zh) | 基于Device Mapper的容器镜像分层加密存储方法 | |
JP6609010B2 (ja) | 複数許可データセキュリティ及びアクセス | |
US11695806B2 (en) | Intercepting calls for encryption handling in persistent access multi-key systems | |
US10594481B2 (en) | Replicated encrypted data management | |
US8510552B2 (en) | System and method for file-level data protection | |
US9043614B2 (en) | Discarding sensitive data from persistent point-in-time image | |
US8412934B2 (en) | System and method for backing up and restoring files encrypted with file-level content protection | |
CN102254124B (zh) | 一种移动终端信息安全防护***和方法 | |
US8433901B2 (en) | System and method for wiping encrypted data on a device having file-level content protection | |
US9473297B2 (en) | Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters | |
US20170272412A1 (en) | Confining data based on location | |
US20180152296A1 (en) | Electronic data protection method and device and terminal device | |
US20120216052A1 (en) | Efficient volume encryption | |
CN103488954B (zh) | 一种文件加密*** | |
JP2017126318A (ja) | コンピュータプログラム、秘密管理方法及びシステム | |
US10061932B1 (en) | Securing portable data elements between containers in insecure shared memory space | |
CN103745162B (zh) | 一种安全网络文件存储*** | |
WO2024045407A1 (zh) | 虚拟磁盘安全存储方法 | |
CN110213051A (zh) | 一种目录细粒度的加解密方法和*** | |
CN114036538A (zh) | 一种基于虚拟块设备的数据库透明加解密实现方法及*** | |
EP3227822A1 (en) | Secure document management | |
WO2022001878A1 (en) | System generated data set encryption key | |
US20210176053A1 (en) | Symmetrically encrypt a master passphrase key | |
CN108319872A (zh) | 一种封闭容器生成方法、装置及设备 | |
JPH10340232A (ja) | ファイル複写防止装置及びファイル読込装置 |
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 |