CN110647740B - 一种基于tpm的容器可信启动方法及装置 - Google Patents
一种基于tpm的容器可信启动方法及装置 Download PDFInfo
- Publication number
- CN110647740B CN110647740B CN201810681800.2A CN201810681800A CN110647740B CN 110647740 B CN110647740 B CN 110647740B CN 201810681800 A CN201810681800 A CN 201810681800A CN 110647740 B CN110647740 B CN 110647740B
- Authority
- CN
- China
- Prior art keywords
- container
- tpm
- trusted
- mirror image
- virtual
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012795 verification Methods 0.000 claims abstract description 6
- 230000008569 process Effects 0.000 claims description 15
- 238000005259 measurement Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 230000008439 repair process Effects 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 2
- 238000012986 modification Methods 0.000 claims description 2
- 238000003752 polymerase chain reaction Methods 0.000 claims 1
- 230000008859 change Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于网络与信息安全技术领域,涉及一种基于TPM的容器可信启动方法及装置,本发明由物理TPM、镜像摘要库、vTPM平台和虚拟TPM组成,其中物理TPM作为可信根;镜像摘要库使用改进的Merkle可信树结构保存容器各层镜像的摘要;vTPM平台植入在容器引擎中,能在容器初次启动时提供虚拟TPM;虚拟TPM为容器中的应用程序提供可信验证,通过物理TPM验证镜像实现容器可信启动,通过虚拟TPM保证容器中的应用可信。本发明兼容性好,适用于多种容器实现方式;可用性高,定位到发生错误的具体镜像,提供容器启动的容错性,能适应容器快速变更的场景;扩展性好,容器中的虚拟TPM在使用上和物理设备相同,可验证各种容器中各种应用程序,确保应用层的可信。
Description
技术领域
本发明属于网络与信息安全技术领域,涉及一种基于TPM的容器可信启动方法及装置,本发明利用TPM等可信计算装置,实现云平台上的容器的可信启动方法。
背景技术
资料显示,容器技术是继大数据和云计算之后又一热点技术。随着微服务架构逐渐成为开发应用***的主流,容器作为这种架构的基石关注度也越来越高。现有技术公开了容器可以在宿主机中创建一个相对独立的运行环境,但与虚拟机不同的是,容器不需要安装主机操作***,直接将容器层安装在宿主机***之上,利用主机的内核来实现轻量级的虚拟环境。
有研究公开,为了节约资源,提高启动速度,容器采用了镜像的分层结构,当容器启动时,一个新的可写层被加载到镜像的顶部,而相同的镜像只保存了一份,提供给所有容器使用,因此,如果底层的镜像被篡改,会波及到基于它创建的所有容器此外,容器中的应用因为文件命名空间的隔离,无法访问和使用主机的TPM(Trusted Platform Module,可信平台模块)和TCM(Trusted Cryptography Module,可信密码模块)等可信根设备,因此无法直接使用TPM或TCM的可信计算支持功能。
为了实现对Docker的可信计算支持,武汉大学提出“一种基于Docker的可信容器安全加固方法”,其对镜像的度量是将各个镜像计算出哈希值,再将这些哈希值连接起来再计算一次哈希,将最终结果用TPM加密后保存在文件中,这种方式存在的缺陷是,当一个镜像被修改之后,无法判断哪个镜像除了问题,因此所有的镜像都需要销毁。同时,它对容器内进程监控采用的是主机白名单的形式,强制阻断容器调用白名单以外的进程。这种方式限制了容器功能的扩展性,无法对不同种类容器进行定制,难以满足情况复杂多变的大规模容器集群的需求。
为了能够保证容器镜像层和容器层的可信,本申请的发明人拟提出一种利用物理可信模块来验证容器可信启动的方法。本发明能确保容器的产生过程可信,并能够为其上的应用提供可信认证。
发明内容
本发明的目的是针对现有技术存在的缺陷,提供一种利用物理可信模块验证容器可信启动的方法。具体涉及一种基于TPM的容器可信启动方法及装置。
本发明的利用物理可信模块验证容器可信启动的方法,由物理TPM、镜像摘要库、vTPM平台和虚拟TPM组成,其中物理TPM作为可信根;镜像摘要库使用改进的Merkle可信树结构保存容器各层镜像的摘要;vTPM平台植入在容器引擎中,能够在容器初次启动时提供虚拟TPM;虚拟TPM为容器中的应用程序提供可信验证。通过物理TPM验证镜像实现容器可信启动,通过虚拟TPM保证容器中的应用可信。
本发明的基于TPM的容器可信启动方法,与传统的容器架构相比,在操作***层添加了经过TPM认证的镜像摘要文件,用于对其上的容器镜像进行可信度量;容器引擎中添加了vTPM(虚拟TPM)平台,与物理TPM建立连接,并映射为若干个虚拟的TPM设备供容器使用;因此在容器层不需要进行软件的修改,只需在启动时挂载vTPM平台专门为其设置的虚拟TPM设备即可。
本发明容器架构层次如图1所示。
本发明容器启动的过程包括(如图2所示):
第一步,用户在利用TPM对宿主机操作***执行可信启动之后,发起容器启动请求;
第二步,利用TPM设备对容器镜像进行度量,如果可信则允许启动容器,否则根据错误的类型,发出警报并提示用户操作;。具体的镜像度量过程在后文阐述。
第三步,容器正常启动,同时从vTPM平台挂载相应的虚拟TPM设备到***中;
第四步,在容器中利用虚拟TPM设备对容器中的应用进行可信度量,启动可信的应用;vTPM挂载和度量的具体过程在后文阐述。
第五步,容器中的应用启动,对外界提供服务。整个容器可信启动过程完成。
本发明中,镜像度量过程中重要的一步是验证镜像摘要,在计算镜像摘要的过程中,本发明使用改进的Merkle可信树方法,提高容错能力,其中,对于每个容器,首先计算只读镜像部分,将各个镜像计算摘要(可以使用SHA、CRC等摘要方法),然后两两结合计算摘要,计算出只读部分的摘要,由于容器顶层的读写镜像需要经常变更,因此较高的层级,每次修改或每隔一段时间,经过***认证,计算出总摘要后通知TPM更新相应的PCR(PlatformConfiguration Registers,平台配置寄存器)的值;在PCR中保存了总摘要和只读摘要的值。
本发明中,镜像摘要获取方式如图3所示。
本发明中,度量容器镜像的过程如图4所示,在启动镜像度量之后,从TPM设备的PCR寄存其中读取相关的摘要值,然后与本地计算出的值相比较,如果相同则确认可信,否则再进一步判断只读镜像和读写镜像的可信程度,如果只读镜像发生了损坏,则通过查询Merkle树结构,与所来源的公有或私有仓库相比对,逐层找到损坏的镜像位置,并更新该部分镜像,如果读写层发生了损坏,则通过查找宿主***中存在的可信备份进行修复,或者丢弃该部分数据。
本发明中,容器内应用可信启动的流程如图5所示,在容器启动的同时,vTPM平台会产生一个对应的虚拟TPM,只提供给该容器使用,在该步骤生成相应的设备文件,并完成虚拟PCR与物理PCR的映射,然后,将这些文件挂载到容器的/dev文件夹下,容器会认为这是一个真实的TPM设备,TPM设备对当前***的状态采集关键信息,并对关键的***文件计算摘要,保存在虚拟PCR中,需要对哪些应用进行可信认证可交由容器自己决定需要可信认证的应用会记录下摘要信息,并在启动前进行比对,符合记录的才能启动。
本发明所述方法的优点有:
本专利提供一种容器可信启动工具,它能够对容器各层镜像的认证,并通过虚拟TPM设备来认证容器中的应用,从而提供了容器的可信启动和容器内应用可信启动的方案,其包括:
1.兼容性好
本发明适用于多种容器实现方式,符合OCI(Open Container Initiative)标准的容器,包括Docker和rkt等都可使用,同时,可内置于多种容器编排引擎,包括kubernetes、Docker Swam和mesos等;
2.可用性高
本发明使用改进的Merkle可信树方法,能够定位到发生错误的具体镜像,即使部分镜像被篡改,如果容器所依赖的部分可信,则容器仍能启动,并且由于将只读镜像和读写镜像分开计算摘要,能够适应容器快速变更的场景;
3.扩展性好
每个容器内部有一个虚拟的TPM设备交付给容器使用,在容器中看来和真是的物理TPM没有差异,可以用来验证各种容器中各种应用程序,确保应用层的可信。
本发明中,有关术语作如下表1说明:
表1
附图说明
图1,本发明容器架构层次示意图。
图2,本发明容器启动的过程示意图。
图3,本发明镜像摘要获取方式示意图。
图4,本发明度量容器镜像的过程示意图。
图5,本发明容器内应用可信启动的流程示意图。
图6,本发明实施例1操作流程示意图。
具体实施方式:
实施例1
按图6所示,以提供Apache HTTP服务的Docker容器可信启动为例,描述实施过程。
第一步,宿主机操作***已经可信启动完成,此时用户发起启动Docker提供HTTP服务的请求该步骤假定用户之前已启动过该Docker,否则vTPM平台会介入并将虚拟TPM挂载到容器中;
第二步,镜像度量模块介入,审计镜像的各层是否被篡改,如果被篡改,采用相应的只读镜像和读写镜像对策能否修复,只读镜像的错误,首先通过层级摘要比对的方式确定损坏的镜像层,然后从所在集群的镜像仓库中重新获取该层镜像,读写镜像的错误可通过恢复可信备份的方式修复,不存在备份则丢弃该读写层,并提前通知用户;
第三步,如果镜像可信,则启动Docker,完成初始化,加载虚拟TPM设备。镜像不可信则发出警报,并拒绝Docker的启动;
第四步,如果在之前已配置过对Apache的可信审计,则利用虚拟TPM设备度量Apache应用,确认是否可信;否则,根据用户的需要对所需的应用进行可信配置。
第五步,如果应用可信,启动Docker中的Apache应用,否则退出并给用户警报提示。在用户的使用过程中,如果修改了读写层,可通过调用虚拟TPM的bind命令用新的读写层哈希值更新PCR的值。
实施例2
基于实施例1的基础,本实施例中TPM设备替换为TCM(trusted cryptographymodule,可信密码模块)设备,二者加密算法不同但原理相似;
本实施例中的Docker替换为其他容器,例如CoreOS的rkt;
本实施例中的Apache可替换为其他的任何应用程序。
由于本专利方法为后端技术,所有的分析与处理过程均在后台完成,因此无法确切判断他人侵权与否。如在他人容器***内发现虚拟TPM设备,可认为有侵权嫌疑。
Claims (3)
1.一种基于TPM的容器可信启动方法,其特征在于,为利用物理可信模块验证容器可信启动的方法,其中,所述的容器由物理TPM可信平台模块、镜像摘要库、vTPM虚拟TPM平台和虚拟TPM组成,所述的方法包括:物理TPM作为可信根;镜像摘要库使用改进的Merkle可信树结构保存容器各层镜像的摘要;vTPM平台植入在容器引擎中,能够在容器初次启动时提供虚拟TPM;虚拟TPM为容器中的应用程序提供可信验证,通过物理TPM验证镜像实现容器可信启动,通过虚拟TPM保证容器中的应用可信;
所述容器启动的过程包括:
第一步,用户在利用TPM对宿主机操作***执行可信启动之后,发起容器启动请求;
第二步,利用TPM设备对容器镜像进行度量,如果可信则允许启动容器,否则根据错误的类型,发出警报并提示用户操作;
第三步,容器正常启动,同时从vTPM平台挂载相应的虚拟TPM设备到***中;
第四步,在容器中利用虚拟TPM设备对容器中的应用进行可信度量,启动可信的应用;
第五步,容器中的应用启动,对外界提供服务;
所述方法在计算镜像摘要的过程中,使用改进的Merkle可信树方法,提高容错能力,其中,对于每个容器,首先计算只读镜像部分,将各个镜像计算摘要,然后两两结合计算摘要,计算出只读部分的摘要,其中,较高的层级,每次修改或每隔一段时间,经过***认证,计算出总摘要后通知TPM更新相应的PCR平台配置寄存器的值;在PCR中保存总摘要和只读摘要的值;
所述方法中度量容器镜像的过程包括:在启动镜像度量后,从TPM设备的PCR寄存其中读取相关的摘要值,然后与本地计算出的值相比较,如果相同则确认可信,否则再进一步判断只读镜像和读写镜像的可信程度,如果只读镜像发生了损坏,则通过查询Merkle树结构,与所来源的公有或私有仓库相比对,逐层找到损坏的镜像位置,并更新该部分镜像,如果读写层发生了损坏,则通过查找宿主***中存在的可信备份进行修复,或者丢弃该读写层数据。
2.按权利要求1所述的基于TPM的容器可信启动方法,其特征在于,在操作***层添加经过TPM认证的镜像摘要文件,用于对其上的容器镜像进行可信度量;容器引擎中添加vTPM虚拟TPM平台,与物理TPM建立连接,并映射为若干个虚拟的TPM设备供容器使用;在容器层不需要进行软件的修改,只需在启动时挂载vTPM平台专门为其设置的虚拟TPM设备即可。
3.按权利要求1所述的基于TPM的容器可信启动方法,其特征在于,容器内应用可信启动的流程包括:在容器启动的同时,vTPM平台产生一个对应的虚拟TPM,只提供给该容器使用,在该步骤生成相应的设备文件,并完成虚拟PCR与物理PCR的映射,然后,将这些文件挂载到容器的/dev文件夹下,容器认为是一个真实的TPM设备,TPM设备对当前***的状态采集关键信息,并对关键的***文件计算摘要,保存在虚拟PCR中,需要对哪些应用进行可信认证可交由容器自己决定,需要可信认证应用会记录下摘要信息,并在启动前进行比对,符合记录的才能启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810681800.2A CN110647740B (zh) | 2018-06-27 | 2018-06-27 | 一种基于tpm的容器可信启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810681800.2A CN110647740B (zh) | 2018-06-27 | 2018-06-27 | 一种基于tpm的容器可信启动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647740A CN110647740A (zh) | 2020-01-03 |
CN110647740B true CN110647740B (zh) | 2023-12-05 |
Family
ID=68988833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810681800.2A Active CN110647740B (zh) | 2018-06-27 | 2018-06-27 | 一种基于tpm的容器可信启动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647740B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032736A (zh) * | 2021-03-05 | 2021-06-25 | 海能达通信股份有限公司 | Docker分层镜像的加解密方法及相关装置 |
CN113391880B (zh) * | 2021-06-21 | 2023-04-07 | 超越科技股份有限公司 | 一种分层双重哈希验证的可信镜像传输方法 |
CN114372283A (zh) * | 2021-09-15 | 2022-04-19 | 统信软件技术有限公司 | 一种可信基准库的实现方法、装置及计算设备 |
CN113791786B (zh) * | 2021-09-23 | 2024-01-19 | 安然 | 基于ios***的app页面控件自动化方法及装置 |
CN114048485B (zh) * | 2021-11-12 | 2023-04-07 | 四川大学 | 一种针对Docker容器内进程代码段完整性动态监测方法 |
CN114780168B (zh) * | 2022-03-30 | 2023-04-28 | 全球能源互联网研究院有限公司南京分公司 | 智能终端容器安全策略动态变更的方法、装置及电子设备 |
CN115314495A (zh) * | 2022-08-08 | 2022-11-08 | 国网智能电网研究院有限公司 | 一种面向5g边缘计算节点的容器加固***及加固方法 |
CN117971347B (zh) * | 2024-03-28 | 2024-06-11 | 中国人民解放军国防科技大学 | 一种基于TrustZone的容器可信服务设计方法、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539973A (zh) * | 2009-04-28 | 2009-09-23 | 北京交通大学 | 完整性度量技术在可信虚拟域无缝运行的方法 |
WO2011149329A1 (en) * | 2010-05-26 | 2011-12-01 | Mimos Berhad | Method of providing trusted application services |
CN102722665A (zh) * | 2012-05-22 | 2012-10-10 | 中国科学院计算技术研究所 | 基于tpm/vtpm的可信程序列表生成方法及*** |
CN103747036A (zh) * | 2013-12-23 | 2014-04-23 | 中国航天科工集团第二研究院七〇六所 | 一种桌面虚拟化环境下的可信安全增强方法 |
CN104715183A (zh) * | 2013-12-13 | 2015-06-17 | ***通信集团公司 | 一种虚拟机运行时的可信验证方法和设备 |
CN105069353A (zh) * | 2015-08-11 | 2015-11-18 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
CN105956465A (zh) * | 2016-05-04 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种基于vtpm构建虚拟可信平台的方法 |
CN106354550A (zh) * | 2016-11-01 | 2017-01-25 | 广东浪潮大数据研究有限公司 | 一种保护虚拟机安全的方法、装置及*** |
-
2018
- 2018-06-27 CN CN201810681800.2A patent/CN110647740B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539973A (zh) * | 2009-04-28 | 2009-09-23 | 北京交通大学 | 完整性度量技术在可信虚拟域无缝运行的方法 |
WO2011149329A1 (en) * | 2010-05-26 | 2011-12-01 | Mimos Berhad | Method of providing trusted application services |
CN102722665A (zh) * | 2012-05-22 | 2012-10-10 | 中国科学院计算技术研究所 | 基于tpm/vtpm的可信程序列表生成方法及*** |
CN104715183A (zh) * | 2013-12-13 | 2015-06-17 | ***通信集团公司 | 一种虚拟机运行时的可信验证方法和设备 |
CN103747036A (zh) * | 2013-12-23 | 2014-04-23 | 中国航天科工集团第二研究院七〇六所 | 一种桌面虚拟化环境下的可信安全增强方法 |
CN105069353A (zh) * | 2015-08-11 | 2015-11-18 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
CN105956465A (zh) * | 2016-05-04 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种基于vtpm构建虚拟可信平台的方法 |
CN106354550A (zh) * | 2016-11-01 | 2017-01-25 | 广东浪潮大数据研究有限公司 | 一种保护虚拟机安全的方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN110647740A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647740B (zh) | 一种基于tpm的容器可信启动方法及装置 | |
CN110069921B (zh) | 一种面向容器平台的可信软件授权验证***及方法 | |
US10338946B1 (en) | Composable machine image | |
US10372914B2 (en) | Validating firmware on a computing device | |
EP3542298B1 (en) | Verified boot and key rotation | |
CN111324895B (zh) | 用于客户端设备的信任服务 | |
KR102618665B1 (ko) | 블록체인을 사용한 버전 이력 관리 | |
CN110069316B (zh) | 实体的完整性验证 | |
CN107045611B (zh) | 安全启动方法及装置 | |
US20140250215A1 (en) | Configuration and verification by trusted provider | |
US20150261966A1 (en) | Secure factory data generation and restoration | |
US11252193B2 (en) | Attestation service for enforcing payload security policies in a data center | |
US20200142682A1 (en) | Blockchain-based secure customized catalog system | |
US10725767B2 (en) | Systems and methods for reinforced update package authenticity | |
US10379894B1 (en) | Lineage-based trust for virtual machine images | |
CN108345805B (zh) | 验证固件的方法及装置 | |
JP2020510924A (ja) | 初期オペレーティングシステム・セットアップ・オプションのリモート管理 | |
WO2020145944A1 (en) | Securing node groups | |
EP3647979B1 (en) | Device attestation techniques | |
WO2018233638A1 (zh) | Ai软件***安全状态的确定方法及装置 | |
US11157660B2 (en) | Virtual host upgrade using a secured disk image | |
CN111565111B (zh) | 一种基于c/s架构的可信计算管理***及管理方法 | |
US20240020387A1 (en) | Secure boot attestation in a cloud platform | |
CN117519812A (zh) | 一种软件启动方法、控制器、车辆及存储介质 | |
CN116208383A (zh) | 一种基于webhook的云原生可信度量方法、***及存储介质 |
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 |