首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于可信执行环境的容器安全迁移方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国人民解放军国防科技大学

摘要:本发明公开了一种基于可信执行环境的容器安全迁移方法,目的是解决目前容器安全迁移方法中安全性不足、不能有效抵御潜在攻击等问题。技术方案是先构建由一个控制节点、N个迁移节点组成的容器安全迁移系统,控制节点和迁移节点均部署了可信执行环境、普通执行环境,基于可信执行环境进行加密、解密、完整性度量、验证以及数据保护。在容器迁移过程中,采用双向身份认证验证身份,并建立双向加密的传输通道以防止信息泄露。在迁移节点交互过程中采用附加随机数的机制以防范重放攻击,并提供迁移恢复保护机制以维护容器运行的单容器性,确保迁移前后容器副本数量和运行状态一致性,解决了迁移引入的重放攻击、分叉和回滚攻击,可安全性和完整性。

主权项:1.一种基于可信执行环境的容器安全迁移方法,其特征在于包括以下步骤:第一步,构建容器安全迁移系统;迁移系统由一个控制节点、N个迁移节点,N≥2、共享存储服务器和容器镜像仓库组成;控制节点与N个迁移节点通过网络相连,向迁移节点发送加密的容器迁移指令,从迁移节点接收加密的容器状态信息;共享存储服务器是迁移节点中容器的持久化数据卷存储基础设施,提供可靠的持久化存储解决方案;通过挂载的方式将持久化数据卷与容器相连,以确保容器在迁移过程中保留容器的状态信息;共享存储服务器与N个迁移节点通过网络相连,负责为迁移节点中的容器提供持久化存储支持,确保容器的安全性和可靠性;容器镜像仓库是专门存储和管理容器镜像的服务平台;容器镜像仓库维护容器在不同节点间迁移的正确性以及版本的一致性,与N个迁移节点通过网络连接,实现容器镜像的传输;控制节点和N个迁移节点均部署了可信执行环境、普通执行环境;控制节点的可信执行环境中运行密钥管理模块、迁移控制模块和第一安全通信模块,普通执行环境运行第一安全通信代理;N个迁移节点的普通执行环境部署有若干个容器、容器状态转储模块和第二安全通信代理,N个迁移节点的可信执行环境部署有身份认证模块、度量与验证模块、单容器保护模块和第二安全通信模块;控制节点的可信执行环境与其普通执行环境中的第一安全通信代理之间进行通信,迁移节点的可信执行环境与其普通执行环境中的第二安全通信代理之间通信;控制节点通过第一安全通信代理与N个迁移节点的第二安全通信代理之间通信,N个迁移节点之间通过第二安全通信代理通信;若迁移节点的第二安全通信代理接收到控制节点的第一安全通信代理传来的加密的容器迁移指令,则该迁移节点为迁移源节点;若迁移节点的第二安全通信代理接收到另一迁移节点的第二安全通信代理传来的身份认证挑战,则该迁移节点为迁移目标节点;控制节点中,迁移控制模块与第一安全通信模块、密钥管理模块相连,负责容器状态管理、运行监控与决策、迁移流程管理以及安全验证与监督;它从第一安全通信模块接收控制节点所管理的N个迁移节点的容器状态信息,所述容器状态信息包括容器的标识符、状态、资源利用情况以及网络状态信息;根据容器状态信息构建容器状态列表,根据容器状态列表中的状态判断是否需要进行容器迁移,并根据容器状态信息更新容器状态列表;所述容器状态列表的每个表项包含四个域,分别为容器的标识符、状态、资源利用情况以及网络状态信息;迁移控制模块根据预设的迁移策略,在N个迁移节点间对运行中的容器进行调度,包括:根据容器状态列表生成迁移令牌,将迁移令牌发送给第一安全通信模块,所述迁移令牌包括第一容器即拟进行迁移的容器的标识符以及迁移源节点和迁移目标节点IP地址;从第一安全通信模块接收容器状态变更指令,根据容器状态变更指令更新容器状态列表,并生成容器状态更新完毕信号,将容器状态更新完毕信号发送给第一安全通信模块;迁移控制模块通过比对预设的迁移策略生成迁移密钥生成指令,将迁移密钥生成指令发送给密钥管理模块;迁移控制模块在迁移结束后比对从第一安全通信模块接收的迁移源节点和迁移目标节点传来的计数值,若二个计数值相等,则表示迁移过程中第一容器是唯一的,容器迁移成功完成,向第一安全通信模块发送容器状态变更完毕信息,第一安全通信模块据此生成第一单容器保护指令、第二单容器保护指令,以防止恶意第三方启动相同容器实例或还原容器过期的运行状态,从而确保迁移的可靠性和安全性;若二个计数值不等则容器迁移过程可能受到分叉或回滚攻击,迁移控制模块生成容器停止指令,将容器停止指令发送给第一安全通信模块;迁移控制节点的第一安全通信模块与迁移控制模块、密钥管理模块、第一安全通信代理相连,从第一安全通信代理接收各迁移节点的容器状态信息,将从第一安全通信代理接收的各迁移节点的身份公钥及迁移节点IP地址转发至密钥管理模块;第一安全通信模块生成并加密容器状态查询指令,接收并解密各迁移节点发来的容器状态信息,将容器状态信息转发至迁移控制模块;第一安全通信模块从迁移控制模块接收迁移令牌,从密钥管理模块接收迁移密钥、迁移源节点身份公钥,将迁移令牌、迁移密钥打包成容器迁移指令,采用迁移源节点身份公钥对容器迁移指令加密,将加密的容器迁移指令发送给第一安全通信代理;若第一安全通信模块从第一安全通信代理接收到迁移源节点发来的加密的身份认证失败信息,利用迁移源节点身份公钥解密获得身份认证失败信息,退出本次迁移流程;若第一安全通信模块从第一安全通信代理接收到迁移目标节点发来的加密的容器状态文件完整性度量失败信息,利用迁移密钥解密获得容器状态文件完整性度量失败信息,退出本次迁移流程;若第一安全通信模块从第一安全通信代理接收到迁移目标节点发来的加密的迁移目标节点异常信息,利用迁移目标节点身份公钥解密获得迁移目标节点异常信息,退出本次迁移流程;若第一安全通信模块从第一安全通信代理接收到迁移目标节点发来加密的第二容器即迁移后的目标容器状态信息,利用迁移密钥解密获得第二容器状态信息,根据第二容器状态信息生成容器状态变更指令,并将容器状态变更指令发送至控制节点的迁移控制模块;若第一安全通信模块从迁移控制模块接收到包含第二容器标识符的容器状态变更完毕信息,第一安全通信模块根据容器状态变更完毕信息生成包含第二容器标识符的迁移恢复指令,使用迁移密钥对迁移恢复指令进行加密,并将加密的迁移恢复指令传输至第一安全通信代理;若第一安全通信模块从第一安全通信代理接收到加密的第二容器运行失败信息,用迁移密钥解密,获取第二容器启动失败信息并据此生成第二容器异常指令发送至迁移控制模块,退出本次迁移流程;若第一安全通信模块从第一安全通信代理接收到加密的第二容器迁移启动成功信息,利用迁移密钥解密获得第二容器状态信息及第二容器启动成功信息,将第二容器状态信息打包生成容器状态变更指令发送至控制节点的迁移控制模块;若第一安全通信模块从迁移控制模块接收到容器状态变更完毕信息,根据该容器状态变更完毕信息生成包含第一容器标识的第一单容器保护指令及包含容器状态文件标识及迁移密钥的第二单容器保护指令,采用迁移密钥分别加密第一单容器保护指令及第二单容器保护指令,并传输至第一安全通信代理;若第一安全通信模块从第一安全通信代理接收到迁移源节点发来的加密的第一容器删除失败信息,利用迁移源节点身份公钥解密后获得第一容器标识符及第一容器删除失败信息,生成第一容器异常信息发送至迁移控制模块;若第一安全通信模块从迁移控制模块接收到包含第二容器标识符的第二容器停止指令,利用迁移目标节点身份公钥加密第二容器停止指令并发送至第一安全通信代理;若第一安全通信模块从第一安全通信代理接收到迁移目标节点发来的加密的容器状态文件删除失败信息,利用迁移目标节点身份公钥解密后获得第二容器标识符及容器状态文件删除失败信息,生成第二容器异常信息发送至迁移控制模块;若第一安全通信模块从迁移控制模块接收到容器状态更新完毕信号,根据容器状态更新完毕信号生成迁移恢复指令,将迁移恢复指令发送给第一安全通信代理;若第一安全通信模块从第一安全通信代理接收到由迁移源节点发送的第一计数值、由迁移目标节点发送的第二计数值,将第一计数值和第二计数值均发送至迁移控制模块;密钥管理模块与第一安全通信模块、迁移控制模块相连,负责生成和管理用于容器迁移的迁移密钥;在迁移准备时,该模块接收从第一安全通信模块发来的各迁移节点身份公钥及对应各节点IP,对应存储并管理;在迁移控制模块选取迁移源节点和迁移目标节点后,密钥管理模块从迁移控制模块接收迁移密钥生成指令,生成迁移密钥,随后存储迁移密钥,并将迁移密钥、各迁移节点身份公钥分发给第一安全通信模块;第一安全通信代理与第一安全通信模块、N个迁移节点的第二安全通信代理相连;第一安全通信代理是控制节点的可信执行环境与N个迁移节点之间的通信桥梁;其功能包括:接收并转发各迁移节点的身份公钥及IP地址至第一安全通信模块;接收第一安全通信模块发来的加密的容器状态查询指令,将加密的容器状态查询指令分别发送至N个迁移节点,待接收到加密的容器状态信息后转发至第一安全通信模块;接收第一安全通信模块发来的加密的容器迁移指令、迁移源节点IP地址及迁移目标节点IP地址,存储本次容器安全迁移的迁移源节点IP地址及迁移目标节点IP地址,根据迁移源节点IP地址向迁移源节点发送加密的容器迁移指令;接收迁移源节点第二安全通信代理发来的加密的身份认证失败信息、容器状态文件完整性度量失败信息、迁移目标节点异常信息、第二容器状态信息、第二容器运行失败信息、第二容器启动成功信息、加密的第一容器删除失败信息、容器状态文件删除失败信息,并将这些信息转发至第一安全通信模块;接收第一安全通信模块发来的加密的迁移恢复指令,将其发送至迁移目标节点;接收第一安全通信模块发来的加密的第一单容器保护指令、第二单容器保护指令,将加密的第一单容器保护指令发送至迁移源节点,将加密的第二单容器保护指令发送至迁移目标节点;接收第一安全通信模块发来的加密的第二容器停止指令,并将其发送至迁移目标节点;N个迁移节点的普通执行环境部署有若干个容器、容器状态转储模块和第二安全通信代理,N个迁移节点的可信执行环境部署有身份认证模块、度量与验证模块、单容器保护模块和第二安全通信模块;第二安全通信模块与身份认证模块、度量与验证模块、单容器保护模块、容器状态转储模块和第二安全通信代理相连;它的主要功能是确保数据传输的机密性和完整性,并通过控制加密、解密、解析与其它迁移节点、控制节点之间的指令,确保迁移顺利完成;当迁移节点为迁移源节点时,第二安全通信模块负责接收并解密第二安全通信代理传来的容器迁移指令,解析并存储迁移密钥、迁移令牌、迁移目标节点身份公钥以便后续的身份认证和通信过程使用;根据解析得到的迁移令牌,第二安全通信模块向身份认证模块发起第一身份证书生成指令,并从身份认证模块接收第一身份证书;第二安全通信模块采用迁移源节点身份私钥对第一身份证书加密生成第一身份认证挑战,将第一身份认证挑战和迁移目标节点IP地址发送至迁移源节点的第二安全通信代理;第二安全通信模块从其它迁移节点接收并解密第二身份认证挑战,得到第二身份证书,将第二身份证书及迁移目标节点身份公钥发送给迁移源节点的身份认证模块;若接收到度量与验证模块发来的验证结果及单容器保护模块发来的计数器值为零信息,迁移源节点的单容器保护模块的计数器值归零,对度量与验证模块发来的验证结果进行判断,如果验证结果为第一随机数和第二随机数大小相等,则表示双向身份认证成功,迁移继续,从身份认证模块接收到第三随机数,将迁移密钥、第三随机数以及建立双向加密传输信道所需的信息打包生成迁移信道建立指令,利用迁移目标节点身份公钥加密该指令获得加密的迁移信道建立指令;第二安全通信模块接收并解密来自迁移目标节点的第二安全通信代理发来的加密的第三随机数,将解密获得的随机数记为第四随机数,并将第四随机数、第三随机数与第二安全通信模块生成的验证信息打包成第二随机数验证指令并发送该指令至度量与验证模块;根据度量与验证模块返回给第二安全通信模块的第二随机数验证结果,如果验证成功则表示安全传输信道建立完成,如果验证失败则第二安全通信模块生成加密信道建立失败信息,利用迁移目标节点身份私钥加密后经第二安全通信代理转发至控制节点;若接收的第二随机数验证结果为验证成功,则第二安全通信模块向迁移源节点的容器状态转储模块发送容器转储指令,以根据其当前状态生成容器状态文件;接收来自容器状态转储模块的容器状态文件,将容器状态文件转发至度量与验证模块;接收度量与验证模块发来的第一度量值,向单容器保护模块发送计数器值变更指令,将第一度量值及容器状态文件打包得到容器迁移文件,使用迁移密钥加密容器迁移文件,将加密的容器迁移文件传输至迁移源节点的第二安全通信代理;从第二安全通信代理接收并解密加密的第一单容器保护指令,并将加密的第一单容器保护指令转发至单容器保护模块,接收单容器保护模块发送的第一容器删除指令、迁移密钥删除指令,执行迁移密钥的删除操作,并向单容器保护模块发送迁移密钥删除结果,同时将第一容器删除指令转发至容器状态转储模块;接收单容器保护模块发送的第一容器删除失败信息,将其用迁移源节点身份私钥加密后转发至第二安全通信代理;如果第二安全通信模块从度量与验证模块接收的第二随机数验证结果为两个随机数大小不等,则表示双向身份认证失败,第二安全通信模块退出迁移;当迁移节点为迁移目标节点时,接收并解密加密的第一身份认证挑战,获得第一身份证书及迁移源节点身份公钥,并将迁移源节点身份公钥存储起来;将第一身份证书、迁移源节点身份公钥打包成第二身份证书生成指令,发送给迁移目标节点的身份认证模块;从身份认证模块接收第二身份证书,利用迁移源节点的身份公钥对第二身份证书进行加密,生成第二身份认证挑战,将第二身份认证挑战发送至迁移目标节点的第二安全通信代理;从迁移目标节点的第二安全通信代理接收迁移源节点加密的迁移信道建立指令,使用迁移目标节点的身份私钥解密迁移信道建立指令,从中获取迁移密钥、第三随机数以及建立双向加密传输信道所需的信息,存储迁移密钥;向单容器保护模块发送计数器值归零指令,以确保在建立双向加密传输信道之前进行必要的准备工作,接收单容器保护模块发来的计数器值为零的信息,表示准备工作已完成;利用获取到的迁移密钥对第三随机数进行加密处理,然后将加密的第三随机数发送至第二安全通信代理;利用迁移密钥对接收到的加密容器迁移文件进行解密,根据得到的容器状态文件和第一度量值生成容器状态文件度量与验证指令,将该指令发送至迁移目标节点的度量与验证模块,以验证经迁移传输的容器状态文件的完整性;如果第二安全通信模块接收到的第一度量值与第二度量值比对结果一致,向单容器保护模块发送计数器值变更指令;如果第一度量值与第二度量值比对结果不一致,即验证失败,第二安全通信模块将验证失败信息及终止迁移请求打包为容器状态文件完整性度量失败信息,经迁移密钥加密后发送给迁移目标节点的第二安全通信代理;当接收到容器状态文件完整性验证成功信息后,第二安全通信模块读取并存储容器状态文件,并从中获取容器镜像信息,基于容器镜像信息生成容器创建指令,将容器创建指令发送至迁移目标节点的容器状态转储模块,并从容器状态转储模块接收第二容器创建结果,如果成功创建了第二容器,则将创建结果发送至控制节点,并根据容器创建结果读取第二容器运行状态,将其打包成第二容器状态信息,利用迁移密钥对该信息进行加密,并传输至迁移目标节点的第二安全通信代理;如果创建失败,则生成容器创建失败的信息,将容器创建失败的信息发送至迁移目标节点的第二安全通信代理;第二安全通信模块从第二安全通信代理接收加密的迁移恢复指令,利用迁移密钥对其进行解密,第二安全通信模块根据迁移恢复指令生成容器状态文件,并根据第二容器标识符生成第二容器运行指令,将容器状态文件和第二容器运行指令发送至迁移目标节点的容器状态转储模块;若第二安全通信模块从容器状态转储模块收到容器启动失败信息,使用迁移密钥加密容器启动失败信息并转发至迁移目标节点的第二安全通信代理;若从第二安全通信模块接收到密钥删除的删除结果或容器状态文件删除的信息,将这些密钥删除的删除结果或容器状态文件删除的信息发送至相应的第二安全通信模块,并根据需要进行打包和加密操作,以保证信息的完整性和安全性;第二安全通信模块从迁移目标节点的单容器保护模块接收第二计数值,利用迁移目标节点身份私钥加密第二计数值后发送至第二安全通信代理;从第二安全通信代理接收控制节点发来的加密的第二容器停止指令,利用迁移目标节点身份私钥解密,将第二容器停止指令发送至容器状态转储模块,以触发对第二容器的停止操作;第二安全通信模块在从第二安全通信代理接收控制节点发来的加密的第二容器停止信息,利用迁移目标节点身份私钥对第二容器停止信息进行加密,将加密后的第二容器停止信息发送至第二安全通信代理;身份认证模块与第二安全通信模块、度量与验证模块相连,负责验证迁移节点的身份并管理所属迁移节点的身份私钥和身份证书;身份认证模块利用可信硬件的背书密钥生成非对称身份密钥对,非对称密钥对由身份公钥和身份私钥组成;将身份公钥发送到所属迁移节点的第二安全通信模块;同时,身份认证模块保存从第二安全通信模块接收到的其他迁移节点的身份公钥;身份认证模块还负责生成所属迁移节点的身份证书;在容器迁移前进行双向身份认证挑战时,迁移源节点将第一身份证书即迁移源节点的身份证书发送给迁移源节点的第二安全通信模块,迁移目标节点的身份认证模块将第二身份证书即迁移目标节点的身份证书发送给迁移目标节点的第二安全通信模块;度量与验证模块与第二安全通信模块、身份认证模块、单容器保护模块相连,通过接收容器状态文件并进行度量与验证、收发度量值功能,确保容器迁移过程中数据的完整性、可靠性和安全性;迁移源节点的度量与验证模块从第二安全通信模块接收容器状态文件,对容器状态文件进行度量与验证,生成用于评估容器状态文件的完整性和正确性的第一度量值,将第一度量值发送给第二安全通信模块;迁移目标节点的度量与验证模块从第二安全通信模块接收容器状态文件以及第一度量值,对容器状态文件进行哈希计算,生成第二度量值,将第一度量值和第二度量值进行比对,得到容器状态文件的验证结果,将验证结果发送给第二安全通信模块;若验证结果为通过,度量与验证模块生成计数器值变更指令,将计数器值变更指令发送给迁移目标节点的单容器保护模块;若验证结果为不通过,则容器状态文件的完整性没有得到保证,度量与验证模块退出本次迁移;单容器保护模块与第二安全通信模块、度量与验证模块相互连接;单容器保护模块内置一个可信的单调计数器,用于确保迁移前后容器数量的一致性和运行状态的连续性;迁移源节点中,单容器保护模块内的可信计数器根据度量与验证模块发来的第一计数器归零指令置零,置零后向第二安全通信模块返回计数器值为零信息;单容器保护模块从第二安全通信模块接收第一单容器保护指令,根据预先定义的单容器保护策略生成第一容器删除指令,将第一容器删除指令发送给第二安全通信模块;单容器保护模块从第二安全通信模块接收容器转储模块发来的第二容器删除结果,更新计数器的值;在迁移目标节点中,单容器保护模块内的可信计数器根据第二安全通信模块发来的计数器值归零指令置零,置零后向第二安全通信模块返回计数器值为零信息,以确认计数器已成功重置,并继续保障系统安全;单容器保护模块从第二安全通信模块接收第二单容器保护指令,生成要求容器状态转储模块删除容器状态文件的删除指令,删除指令经过第二安全通信模块的转发,并最终由容器状态转储模块执行删除操作;单容器保护模块从第二安全通信模块接收容器状态转储模块发来的容器状态文件删除结果,并根据从度量与验证模块接收的计数器值更新指令更新计数器的值;当迁移源节点的单容器保护模块和迁移目标节点的单容器保护模块分别收到迁移密钥删除成功和容器状态文件删除结果后,如果容器状态文件删除失败,将错误信息返回至第二安全通信模块;在这种情况下,单容器保护模块的计数器值不会发生改变;由于迁移密钥一直保存在可信执行环境内,因此迁移密钥的删除结果始终为成功;如果迁移密钥删除结果与容器状态文件删除结果均为成功,迁移源节点的单容器保护模块和迁移目标节点的单容器保护模块将分别向本节点的第二安全通信模块发送第一计数值与第二计数值;容器状态转储模块与第二安全通信模块和所属迁移节点的M个容器相连,负责第一容器的状态转储及恢复;迁移源节点的容器状态转储模块从第二安全通信模块接收包含第一容器的标识符的容器转储指令,根据第一容器标识符,暂停第一容器的运行,并生成容器状态文件,将容器状态文件发送至第二安全通信模块;迁移目标节点的容器状态转储模块根据从第二安全通信模块接收容器创建指令、容器状态文件,创建新的容器,并根据容器状态文件恢复第二容器的运行状态;容器状态转储模块根据从第二安全通信模块接收的迁移恢复指令,根据迁移恢复指令进行容器状态恢复操作;容器状态转储模块从第二安全通信模块接收容器状态文件删除指令,根据容器状态文件删除指令删除对应的容器状态文件;容器状态转储模块从第二安全通信模块接收到第二容器停止指令后,根据第二容器停止指令中的第二容器标识符和停止信息,对第二容器进行控制操作,直至第二容器完全停止运行;接着,通过查询第二容器的运行状态获取第二容器处于停止状态的信息,将第二容器处于停止状态信息返回给第二安全通信模块;第二安全通信代理与第二安全通信模块、其它迁移节点的第二安全通信代理、控制节点的第一安全通信代理相连;在容器迁移准备时,第二安全通信代理负责接收并存储来自控制节点的加密的容器迁移指令、容器状态查询指令;接收到加密的容器迁移指令或容器状态查询指令后,第二安全通信代理将其转发至第二安全通信模块,让第二安全通信模块处理相应的加密信息;根据具体的操作需求,第二安全通信代理负责向迁移目标节点发送加密的身份认证挑战,以进行身份认证和安全通信的建立;协助第二安全通信模块对接收到的加密信息进行解密或加密操作,确保信息在传输过程中的安全性和完整性;接收来自迁移源节点的加密的第一身份认证挑战,并将其传递给迁移目标节点的第二安全通信模块;接收来自迁移目标节点的加密迁移信道建立指令,并将其转发给迁移源节点的第二安全通信模块;接收来自迁移源节点的加密的第二随机数,并将其传递给迁移目标节点的第二安全通信模块;接收来自迁移目标节点的加密完成消息,并将其传递给迁移源节点的第二安全通信模块;在容器迁移时,第二安全通信代理负责接收加密的容器迁移文件并将其转发至迁移目标节点的第二安全通信模块;第二安全通信代理接收迁移源节点发来的加密的容器迁移文件,将其转发至迁移目标节点的第二安全通信模块;第二安全通信代理接收并解密加密的容器状态文件完整性度量失败信息,将解密后的信息发送至控制节点;迁移目标节点的第二安全通信代理接收迁移目标节点发来的加密的迁移目标节点异常信息,并将其转发至控制节点,确保异常信息能够及时传达给控制节点进行处理;迁移目标节点的第二安全通信代理接收加密的第二容器状态信息,将其发送至控制节点;迁移目标节点的第二安全通信代理收到迁移目标节点的第二安全模块发来的加密迁移失败信息并转发至控制节点;迁移目标节点的第二安全通信代理收到加密的第二容器启动成功信息,将该信息转发至控制节点的第一安全通信代理;迁移源节点的第二安全通信代理接收加密的第一单容器保护指令,将加密的第一单容器保护指令转发至迁移源节点的第二安全通信模块;第二步,迁移准备,方法是:2.1N个迁移节点生成身份公钥并将身份公钥传输给控制节点,N个迁移节点的生成和传输方法一样,其中第n个迁移节点生成并传输的身份公钥的方法如下,1≤n≤N:2.1.1第n个迁移节点的身份认证模块利用可信硬件的背书密钥生成相应的身份密钥对,其中包括身份公钥与身份私钥,将身份公钥发送至第n个迁移节点的第二安全通信模块;2.1.2第二安全通信模块存储身份公钥,使用加密协议例如SSLTLS对身份公钥进行加密,将加密的身份公钥转发至第n个迁移节点的第二安全通信代理;2.1.3第n个迁移节点的第二安全通信代理向控制节点的第一安全通信代理发送身份公钥;2.1.4控制节点的第一安全通信代理根据其管理的IP地址范围核对发送身份公钥的IP地址,将身份公钥及第n个迁移节点的IP地址转发至第一安全通信模块;2.1.5控制节点的第一安全通信模块将接收到的身份公钥以及第n个迁移节点的IP地址转发至控制节点的密钥管理模块;2.1.6密钥管理模块将接收到的第n个迁移节点的IP地址与第n个迁移节点的身份公钥对应存储;2.2:控制节点监控并控制N个迁移节点容器状态,方法是:2.2.1控制节点的第一安全通信模块定期生成容器状态查询指令,使用N个迁移节点的身份公钥分别加密容器状态指令,将这N个加密的容器状态查询指令发送给第一安全通信代理;容器状态查询指令旨在获取N个迁移节点的当前容器状态信息;2.2.2第一安全通信代理接收到加密的容器状态查询指令,根据N个迁移节点的IP地址将加密的容器状态查询指令转发给各迁移节点的第二安全通信代理;2.2.3各迁移节点的第二安全通信代理接收到控制节点发来的加密的容器状态查询指令,将加密的容器状态查询指令转发至第二安全通信模块;其中,第n个迁移节点的第二安全通信代理接收到第一安全通信代理发来的加密的容器状态查询指令,将加密的容器状态查询指令转发至第n个迁移节点的第二安全通信模块;各迁移节点的动作相同;2.2.4第n个迁移节点的第二安全通信模块接收到加密的容器状态查询指令后,利用自身身份私钥解密容器状态查询指令,将解密后的容器状态查询指令转发至第n个迁移节点的容器状态转储模块;2.2.5第n个迁移节点的容器状态转储模块根据容器状态查询指令查询第n个迁移节点上容器的运行状态,根据查询结果生成容器状态信息,将容器状态信息转发至第n个迁移节点的第二安全通信模块;2.2.6第n个迁移节点的第二安全通信模块接收到容器状态信息,采用第n个迁移节点的身份公钥对容器状态信息加密,将加密的容器状态信息发送给第n个迁移节点的第二安全通信代理;2.2.7第n个迁移节点的第二安全通信代理向控制节点的第一安全通信代理发送加密的容器状态信息;2.2.8控制节点的第一安全通信代理将加密的容器状态信息及第n个迁移节点的IP地址一并发送给第一安全通信模块;2.2.9控制节点的第一安全通信模块接收来自第一安全通信代理的加密的容器状态信息及第n个迁移节点的IP地址,使用IP地址找到第n个迁移节点的身份公钥;第一安全通信模块利用该身份公钥对加密信息进行解密,获取容器状态信息,将容器状态信息转发至迁移控制模块;2.3控制节点的迁移控制模块根据容器状态信息管理并维护N个迁移节点的容器状态列表,根据容器状态列表变更情况发起容器迁移,方法是:2.3.1控制节点的迁移控制模块根据第一安全通信模块传入的容器状态信息,通过对比容器标识符,更新容器状态列表中各迁移节点内容器的容器状态信息;2.3.2控制节点的迁移控制模块根据更新后的容器状态列表,结合当前所管辖容器的运行状况和资源利用情况,判断是否需要进行容器迁移;若同一节点上的容器运行状态均未出现异常,则无需进行容器迁移,转2.3.3;若存在容器需要进行容器迁移,则将该容器标记为第一容器,第一容器所在的迁移节点为迁移源节点,除迁移源节点外的另N-1个迁移节点均可为迁移目标节点迁移目标节点确定方法是:查看各个节点的资源利用情况,选择相对空闲的节点作为迁移目标,转2.3.4;2.3.3维持现有运行状态,转2.2继续监控;2.3.4控制节点的迁移控制模块根据容器状态列表生成迁移令牌,将迁移令牌及迁移源节点IP地址发送至第一安全通信模块;同时向密钥管理模块发送迁移密钥生成指令,该指令包含迁移源节点的IP地址和迁移目标节点的IP地址及要求通过密钥种子生成迁移密钥的请求;2.3.5控制节点的密钥管理模块接收到迁移控制模块发来的迁移密钥生成指令,根据迁移密钥生成指令生成随机数,并以此随机数作为密钥种子生成迁移密钥;密钥管理模块根据迁移源节点的IP地址和迁移目标节点的IP地址,将生成的迁移密钥、迁移源节点身份公钥、迁移目标节点身份公钥发送至控制节点的第一安全通信模块;2.3.6控制节点的第一安全通信模块接收迁移控制模块发来的迁移令牌、迁移源节点IP地址,接收密钥管理模块发来的迁移密钥,将迁移源节点身份公钥与其IP地址进行对应存储,将迁移目标节点身份公钥与其IP地址进行对应存储,将迁移密钥、迁移目标节点身份公钥以及迁移令牌打包成容器迁移指令,并通过迁移源节点身份公钥对容器迁移指令进行加密,将加密的容器迁移指令、迁移源节点IP地址及迁移目标节点IP地址一起发送至控制节点的第一安全通信代理;2.3.7控制节点的第一安全通信代理接收到第一安全通信代理传来的加密的容器迁移指令、迁移源节点IP地址及迁移目标节点IP地址,存储迁移源节点IP地址及迁移目标节点IP地址,根据迁移源节点的IP地址向迁移源节点发送加密的容器迁移指令;2.4迁移源节点向迁移目标节点的第二安全通信代理发送第一身份认证挑战,第一身份认证挑战中含有第一身份证书及迁移源节点身份公钥,第一身份证书采用迁移源节点身份私钥对第一随机数签名生成;2.5迁移源节点与迁移目标节点进行双向身份认证,方法是:2.5.1迁移目标节点的第二安全通信代理接收第一身份认证挑战,根据此次通信发送方的IP地址存储该迁移源节点的IP地址,将第一身份认证挑战发送至迁移目标节点的第二安全通信模块;2.5.2迁移目标节点的第二安全通信模块接收到迁移目标节点的第二安全通信代理发来的身份认证挑战,利用迁移目标节点身份公钥解密第一身份认证挑战,获得第一身份证书及迁移源节点身份公钥,存储迁移源节点身份公钥;将第一身份证书及身份认证信息打包成第二身份证书生成指令发送给迁移目标节点的身份认证模块;2.5.3迁移目标节点的身份认证模块接收到第二安全通信模块发来的第二身份证书生成指令,获得第一身份证书及迁移源节点身份公钥,利用迁移源节点身份公钥对第一身份证书验签,将验签获得的随机数记为第二随机数,根据第二随机数,利用迁移目标节点身份私钥对第二随机数签名,生成第二身份证书,将第二身份证书发送给迁移目标节点的第二安全通信模块;2.5.4迁移目标节点的第二安全通信模块接收到第二身份证书后,利用迁移源节点的身份公钥对第二身份证书进行加密,生成第二身份认证挑战,将第二身份认证挑战发送至迁移目标节点的第二安全通信代理;2.5.5迁移目标节点的第二安全通信代理接收到第二安全通信模块发来的第二身份认证挑战,根据迁移源节点的IP地址将第二身份认证挑战发送至迁移源节点的第二安全通信代理;2.5.6迁移源节点的第二安全通信代理接收到迁移目标节点发来的第二身份认证挑战,将第二身份认证挑战转发至迁移源节点的第二安全通信模块;2.5.7迁移源节点的第二安全通信模块接收到迁移源节点的第二安全通信代理发来的第二身份认证挑战,利用迁移目标节点身份公钥对第二身份认证挑战解密,得到第二身份证书,将第二身份证书及迁移目标节点身份公钥发送给迁移源节点的身份认证模块;2.5.8迁移源节点的身份认证模块根据迁移目标节点身份公钥对第二身份证书验签,得到第二随机数,将第一随机数和第二随机数打包成第一随机数验证指令发送给迁移源节点的度量与验证模块,要求度量与验证模块对第一随机数和第二随机数的大小进行比对;2.5.9迁移源节点的度量与验证模块接收到第一随机数验证指令,比对第一随机数与第二随机数大小,并将第一随机数验证结果发送至第二安全通信模块,同时向迁移源节点的单容器保护模块发送第一计数器归零指令,要求计数器值归零;2.5.10迁移源节点的单容器保护模块接收到第一计数器归零指令,将计数器置零,生成计数器值为零信息发送至第二安全通信模块;2.5.11迁移源节点的第二安全通信模块接收第一随机数验证结果及计数器值为零信息,对第一随机数验证结果进行判断,若验证结果为两个随机数大小相等,则表明迁移源节点与迁移目标节点间双向身份认证成功,向第二安全通信模块发送验证成功的第一随机数验证结果,同时向身份认证模块发送第三随机数生成指令,转2.5.12;若验证结果为两个随机数大小不等,则表明迁移源节点与迁移目标节点间双向身份认证失败,迁移源节点的度量与验证模块向迁移源节点的第二安全通信模块发送验证失败的第一随机数验证结果,转2.5.13;2.5.12迁移目标节点的身份认证模块收到迁移目标节点的第二安全通信模块发来的第三随机数生成指令,生成第三随机数,将第三随机数返回至迁移目标节点的第二安全通信模块,转2.6;2.5.13迁移源节点的第二安全通信模块根据验证失败的验证结果,生成身份认证失败信息,利用迁移源节点身份私钥加密该身份认证失败信息,发送加密的身份认证失败信息至第二安全通信代理;2.5.14第二安全通信代理转发加密的身份认证失败信息至控制节点,迁移源节点退出本次迁移;2.5.15控制节点的第一安全通信代理接收到加密的身份认证失败信息,转发至第一安全通信模块;2.5.16第一安全通信模块利用迁移源节点身份公钥解密接收到加密的身份认证失败信息,获得身份认证失败信息,退出本次迁移,转2.2继续监控;2.6迁移源节点与迁移目标节点间建立双向加密传输信道,如果加密传输信道建立成功,转第三步;如果加密传输信道建立失败,迁移源节点退出迁移流程,转2.2继续监控;第三步,迁移源节点向迁移目标节点进行容器安全迁移,方法是:3.1迁移源节点根据加密的容器迁移指令生成第一容器的容器状态文件,方法是:3.1.1迁移源节点的第二安全通信模块从迁移源节点的度量与验证模块接收验证成功的第二随机数验证结果,向迁移源节点的容器状态转储模块发送容器转储指令,并保存第一容器当前的运行状态,所述容器转储指令包含第一容器的标识符和要求暂停第一容器的运行的信息;3.1.2迁移源节点的容器状态转储模块接收容器转储指令,根据第一容器标识符,暂停第一容器的运行,并依据当前第一容器的运行状态生成容器状态文件,将容器状态文件发送至迁移源节点的第二安全通信模块,所述容器状态文件包含第一容器的当前运行状态、配置信息、挂载持久化数据卷信息、容器镜像信息、容器创建状态、容器标识符、容器上下文信息以及环境变量;3.2对容器状态文件进行度量,方法是:3.2.1迁移源节点的第二安全通信模块从迁移源节点的容器状态转储模块接收容器状态文件,将容器状态文件转发至迁移源节点的度量与验证模块;3.2.2迁移源节点的度量与验证模块接收到容器状态文件,利用哈希算法对容器状态文件进行完整性度量,将计算得到的哈希值称为第一度量值,将第一度量值发送至迁移源节点的第二安全通信模块;同时,度量与验证模块向单容器保护模块发送计数器值变更指令;3.2.3单容器保护模块执行计数器值变更指令,计数器值由0变为1,并将计数器值变更完毕信息发送至迁移源节点的第二安全通信模块;3.3安全传输第一容器的容器迁移文件,方法是:3.3.1迁移源节点的第二安全通信模块从单容器保护模块接收到计数器值变更完毕信息,从度量与验证模块接收到第一度量值,将第一度量值及容器状态文件打包,得到迁移源节点的第一容器的容器迁移文件,使用迁移密钥加密该容器迁移文件,将加密的容器迁移文件传输至迁移源节点的第二安全通信代理;3.3.2迁移源节点的第二安全通信代理将接收到的加密的第一容器的容器迁移文件转发至迁移目标节点的第二安全通信模块;第四步,迁移目标节点创建第二容器,第二容器根据第一容器的容器迁移文件开始运行,并采取措施确保该第二容器在迁移系统中的唯一性和安全性,方法是:4.1:迁移目标节点验证从迁移源节点接收的加密的第一容器的容器状态文件的完整性,方法是:4.1.1迁移目标节点的第二安全通信模块利用迁移密钥对第一容器的容器迁移文件进行解密,得到第一容器的容器状态文件、第一度量值;根据第一容器的容器状态文件和第一度量值生成容器状态文件度量与验证指令,并将容器状态文件度量与验证指令发送至迁移目标节点的度量与验证模块,所述容器状态文件度量与验证指令含有要求对容器状态文件进行完整性度量与验证的信息;4.1.2迁移目标节点的度量与验证模块接收到容器状态文件度量与验证指令,获得第一容器的容器状态文件、第一度量值,利用哈希算法对第一容器的容器状态文件进行完整性度量,生成第二度量值;对第一度量值与第二度量值进行比对,将验证结果返回给第二安全通信模块;如果第一度量值与第二度量值比对结果为一致,则向第二安全通信模块返回验证成功的验证结果,说明第一容器的容器状态文件在迁移过程中没有被篡改或损坏,向单容器保护模块发送计数器值变更指令,转4.1.3;如果第一度量值与第二度量值不相等则验证结果为验证失败,则第一容器的容器状态文件的完整性验证失败,向第二安全通信模块发送验证失败的验证结果,转4.1.4;4.1.3单容器保护模块收到计数器值变更指令,计数器值从0变为1,变更完毕后向度量与验证模块发送计数器值变更完毕信息,转4.2;4.1.4迁移目标节点的第二安全通信模块接收验证失败的验证结果,将验证失败的验证结果及终止迁移请求打包为容器状态文件完整性度量失败信息,经迁移密钥加密容器状态文件完整性度量失败信息,将加密的容器状态文件完整性度量失败信息发送给迁移目标节点的第二安全通信代理,迁移目标节点退出迁移流程;4.1.5第二安全通信代理接收到加密的容器状态文件完整性度量失败信息,并将该加密信息发送至控制节点;4.1.6控制节点的第一安全通信代理接收到加密的容器状态文件完整性度量失败信息,将其转发至控制节点的第一安全通信模块;4.1.7第一安全通信模块利用迁移密钥解密获得容器状态文件完整性度量失败信息,转2.2继续监控;4.2迁移目标节点根据第一容器的镜像文件创建第二容器,方法是:4.2.1迁移目标节点从第二安全通信模块接收容器状态文件完整性验证成功信息,读取并存储第一容器的容器状态文件,根据从第一容器的容器状态文件中获取的容器镜像信息,生成容器创建指令并发送至迁移目标节点的容器状态转储模块;4.2.2迁移目标节点的容器状态转储模块根据接收到的容器创建指令,依据容器镜像信息创建新的容器;如果容器镜像在迁移目标节点上不存在,则从容器镜像仓库下载相应镜像;在设定的时间阈值内,容器状态转储模块根据容器状态查询指令查询迁移目标节点的普通执行环境中当前容器及其状态,如果查询到根据容器创建指令在普通执行环境中创建了唯一的新的容器,则将该容器标识为第二容器,并根据第二容器状态信息生成第二容器创建成功的容器创建结果;容器创建结果包括第二容器的标识符、状态、资源利用情况以及网络状态信息;将该容器创建结果发送至迁移目标节点的第二安全通信模块,转4.3;如果经过设定时间内容器状态转储模块没有查询到新容器的生成,则生成容器创建失败的第二容器创建结果,将该第二容器创建结果发送至迁移目标节点的第二安全通信模块,转至4.2.3;4.2.3迁移目标节点的第二安全通信模块接收到容器状态转储模块发来的容器创建失败的第二容器创建结果,迁移目标节点退出迁移流程,并使用迁移目标节点身份私钥加密发送迁移目标节点异常信息至第二安全通信代理;4.2.4迁移目标节点的第二安全通信代理将加密的迁移目标节点异常信息转发至控制节点;4.2.5控制节点的第一安全通信代理接收到迁移目标节点传来的加密的迁移目标节点异常信息,并将其转发至第一安全通信模块;4.2.6第一安全通信模块利用迁移目标节点身份公钥解密获得迁移目标节点异常信息,退出本次迁移流程,转2.2继续监控;4.3控制节点更新容器状态列表,方法是:4.3.1迁移目标节点的第二安全通信模块接收容器状态转储模块发来的第二容器创建成功的容器创建结果,从容器创建结果获取第二容器的状态,将第二容器的标识符、状态、资源利用情况以及网络状态信息打包成第二容器状态信息,利用迁移密钥加密该第二容器状态信息,传输该加密的第二容器状态信息至迁移目标节点的第二安全通信代理;4.3.2迁移目标节点的第二安全通信代理接收加密的第二容器状态信息,将其发送至控制节点的第一安全通信代理;4.3.3控制节点的第一安全通信代理接收到加密的第二容器状态信息,将加密的第二容器状态信息转发至控制节点的第一安全通信模块;4.3.4第一安全通信模块利用迁移密钥解密第一安全通信代理传入信息,获得第二容器的标识符、状态、资源利用情况以及网络状态信息,根据这些信息生成容器状态变更指令,将容器状态变更指令发送至控制节点的迁移控制模块;4.3.5控制节点的迁移控制模块根据接收到的容器状态变更指令更新容器状态列表,更新过程包括验证,根据接收到的容器状态信息内容器标识符,对接收到的容器状态信息与容器状态列表中对应信息进行比对,然后对容器状态列表中需要更新的部分进行修改,修改完毕后向第一安全通信模块发送容器状态变更完毕信息,该信息包括第二容器标识符;4.3.6控制节点的第一安全通信模块根据接收到的容器状态变更完毕信息生成迁移恢复指令,迁移恢复指令包含第二容器标识符、要求迁移目标节点的第二容器根据迁移获取的容器状态文件开始第二容器的运行的信息;4.3.7控制节点的第一安全通信模块使用迁移密钥对迁移恢复指令进行加密,将加密的迁移恢复指令传输至控制节点的第一安全通信代理;4.3.8第一安全通信代理将加密的迁移恢复指令发送给迁移目标节点的第二安全通信代理;4.4迁移目标节点根据第一容器的容器状态文件运行第二容器,方法是:4.4.1迁移目标节点的第二安全通信代理从第一安全通信代理接收加密的迁移恢复指令,将加密的迁移恢复指令转发至迁移目标节点的第二安全通信模块;4.4.2迁移目标节点的第二安全通信模块接收加密的迁移恢复指令,利用迁移密钥对其进行解密,获取迁移恢复指令;根据迁移恢复指令,第二安全通信模块将第一容器的容器状态文件和根据第二容器标识符生成的第二容器运行指令发送给迁移目标节点的容器状态转储模块;4.4.3迁移目标节点的容器状态转储模块接收第一容器的容器状态文件和第二容器运行指令,根据迁移恢复指令并读取第一容器的容器状态文件以启动第二容器运行;根据第一容器的容器状态文件内挂载持久化数据卷信息与共享存储服务器进行交互,以恢复第二容器的运行;容器状态转储模块查询第二容器运行状态;如果第二容器成功运行,表示容器迁移恢复成功,向第二安全通信模块发送第二容器状态信息,转4.4.4;如果第二容器未能成功运行,表示容器迁移后启动运行失败,容器状态转储模块向第二安全通信模块发送包括第二容器的标识的第二容器启动失败信息,转4.4.5;4.4.4迁移目标节点的容器状态转储模块发送第二容器状态信息至迁移目标节点的第二安全通信模块,转4.5;4.4.5第二安全通信模块接收到第二容器启动失败信息,利用迁移密钥加密该第二容器启动失败信息并转发至迁移目标节点的第二安全通信代理;同时迁移目标节点退出迁移流程;4.4.6迁移目标节点的第二安全通信代理收到迁移目标节点的第二安全模块发来的加密迁移失败信息并转发至控制节点的第一安全通信代理;4.4.7控制节点的第一安全通信代理接收到加密的第二容器运行失败信息,将加密迁移失败信息转发至控制节点的第一安全通信模块;4.4.8控制节点的第一安全通信模块用迁移密钥解密,获取第二容器启动失败信息并据此生成第二容器异常指令发送至迁移控制模块;4.4.8迁移控制模块接收到第二容器异常指令,根据第二容器标识符删除容器状态列表中第二容器相关运行状态,退出本次迁移流程,转2.2继续监控;4.5对容器状态度量列表进行更新,方法是:4.5.1迁移目标节点的第二安全通信模块根据接收到的第二容器状态信息,确认第二容器已成功启动;将第二容器状态信息和启动成功信息打包成第二容器启动成功信息,并使用迁移密钥对第二容器启动成功信息进行加密,生成加密的第二容器启动成功信息;将加密的第二容器启动成功信息传输至迁移目标节点的第二安全通信代理;4.5.2迁移目标节点的第二安全通信代理收到加密的第二容器启动成功信息,将该信息转发至控制节点的第一安全通信代理;4.5.3控制节点的第一安全通信代理接收到加密的第二容器迁移启动成功信息,将加密的第二容器迁移启动成功信息转发至控制节点的第一安全通信模块;4.5.4控制节点的第一安全通信模块用迁移密钥解密收到的加密的第二容器迁移启动成功信息,获得第二容器状态信息及第二容器启动成功信息,将第二容器状态信息打包生成容器状态变更指令发送至控制节点的迁移控制模块;4.5.5迁移控制模块接收容器状态变更指令,从容器状态变更指令获取第二容器状态信息,根据第二容器的标识、配置信息以及第二容器运行状态更新容器状态列表;更新过程包括根据接收到的容器状态信息内容器标识符对接收到的容器状态信息与容器状态列表中对应信息进行比对,然后对容器状态列表中需要更新的部分进行修改,修改完毕后向第一安全通信模块发送容器状态变更完毕信息,该信息包括第二容器标识符及第一容器标识符;4.5.6控制节点的第一安全通信模块接收到控制节点的迁移控制模块传来的容器状态变更完毕信息,根据该容器状态变更完毕信息生成第一单容器保护指令及第二单容器保护指令,采用迁移密钥加密第一单容器保护指令,将加密的第一单容器保护指令传输至控制节点的第一安全通信代理;采用迁移密钥加密第二单容器加密第二单容器保护指令后传输至控制节点的第一安全通信代理;所述第一单容器保护指令包含第一容器标识,要求迁移节点删除第一容器、要求迁移节点删除存储的容器状态文件及迁移密钥的信息;第二单容器保护指令包含第一容器标识派生的容器状态文件标识及迁移密钥标识,要求删除经容器迁移传入的容器状态文件及迁移密钥的命令;4.5.7控制节点的第一安全通信代理将第一单容器保护指令传输至迁移源节点,同时将第二单容器保护指令传输至迁移目标节点;4.6迁移源节点和迁移目标节并行进行单容器保护,迁移源节点执行4.6.1;迁移目标节点执行4.6.2;4.6.1迁移源节点行单容器保护,方法是:4.6.1.1移源节点的第二安全通信代理接收加密的第一单容器保护指令,将加密的第一单容器保护指令转发至迁移源节点的第二安全通信模块;4.6.1.2迁移源节点的第二安全通信模块对接收到的加密的第一单容器保护指令进行解密,将解密得到的第一单容器保护指令转发至单容器保护模块;4.6.1.3迁移源节点的单容器保护模块接收第一单容器保护指令,根据第一单容器保护指令中的第一容器标识符生成的第一容器删除指令、迁移密钥删除指令;将第一容器删除指令、迁移密钥删除指令发送至第二安全通信模块;所述第一容器删除指令包含第一容器标识符、要求容器状态转储模块删除第一容器的请求;所述迁移密钥删除指令包含要删除的迁移密钥标识;4.6.1.4第二安全通信模块接收到单容器保护模块发来的第一容器删除指令、迁移密钥删除指令,删除迁移密钥,向单容器保护模块发送迁移密钥删除结果,将第一容器删除指令转发至容器状态转储模块;4.6.1.5迁移源节点的单容器保护模块接收到迁移密钥删除结果,第一计数器的值从1变为2;4.6.1.6容器状态转储模块接收到第一容器删除指令,发起第一容器删除操作;通过容器标准指令查询第一容器状态,根据第一容器状态查询结果判断第一容器是否被删除;若查询不到第一容器,表明第一容器删除成功,将第一容器已被删除的第一容器删除结果通过第二安全通信模块转发至可信执行环境的单容器保护模块,转4.6.1.7;若通过容器标准指令验证容器仍存在,生成第一容器删除失败的第一容器删除结果,转4.6.1.10;4.6.1.7单容器保护模块接收到第一容器删除结果,根据第一容器已被删除信息,单容器保护模块将第一计数器的值由2变为3,此时第一计数器的值记为第一计数值,将第一计数值发送至第二安全通信模块;4.6.1.8迁移源节点的第二安全通信模块用迁移源节点身份私钥加密第一计数值,将加密的第一计数值传输至迁移源节点的第二安全通信代理;4.6.1.9迁移源节点的第二安全通信代理将加密的第一计数值发送至控制节点,转4.7;4.6.1.10单容器保护模块接收到第一容器删除失败的第一容器删除结果,根据第一容器删除失败的第一容器删除结果生成第一容器删除失败信息,发送至第二安全通信模块;4.6.1.11第二安全通信模块接收到第一容器删除失败信息,将该信息与第一容器标识符打包成新的第一容器删除失败信息,并用迁移源节点身份私钥加密该信息,后转发至第二安全通信代理;4.6.1.12第二安全通信代理接收到该加密的第一容器删除失败信息,将其转发至控制节点的第一安全通信代理;4.6.1.13控制节点的第一安全通信代理接收到加密的第一容器删除失败信息,转发至第一安全通信模块;4.6.1.14第一安全通信模块接收到加密的第一容器删除失败信息,利用迁移源节点身份公钥解密后获得第一容器标识符及第一容器删除失败信息,生成第一容器异常信息发送至迁移控制模块;4.6.1.15控制节点的迁移控制模块根据接收到的第一容器异常信息中的第一容器标识符,对容器状态列表中的第一容器进行标记,并根据第二容器标识符生成第二容器停止指令,将第二容器停止指令发送至第一安全通信模块;4.6.1.16第一安全通信模块收到第二容器停止指令,利用迁移目标节点身份公钥加密该指令并发送至第一安全通信代理;4.6.1.17控制节点的第一安全通信代理接收到加密的第二容器停止指令,转发至迁移目标节点,转4.7.5;4.6.2:迁移目标节进行单容器保护,方法是:4.6.2.1迁移目标节点的第二安全通信代理接收到控制节点传来的第二单容器保护指令,将第二单容器保护指令转发至迁移目标节点的第二安全通信模块;4.6.2.2迁移目标节点的第二安全通信模块使用迁移密钥解密第二单容器保护指令并转发至单容器保护模块;4.6.2.3迁移目标节点的单容器保护模块收到第二单容器保护指令,解析获得第二容器标识符及容器状态文件标识符,生成含要求容器状态转储模块删除容器状态文件的请求的容器状态文件删除指令及迁移密钥删除指令,将容器状态文件删除指令和迁移密钥删除指令发送至第二安全通信模块;4.6.2.4第二安全通信模块接收到密钥删除指令及容器状态文件删除指令,将容器状态文件删除指令转发至容器状态转储模块,同时删除本次容器迁移的迁移密钥,至此在迁移目标节点存储的加密容器状态文件无法被读取;第二安全通信模块向单容器保护模块发送密钥删除的删除结果;4.6.2.5单容器保护模块接收到密钥删除的删除结果,第二计数器的值从1变为2;4.6.2.6容器状态转储模块接收到容器状态文件指令获取容器状态文件标识,删除对应容器状态文件;根据容器状态文件标识二次查询无法找到该文件,则容器状态文件已被删除;容器状态转储模块生成容器状态文件已删除的容器状态文件删除结果,将该结果通过第二安全通信模块转发至可信执行环境的单容器保护模块;4.6.2.7单容器保护模块接收到容器状态文件删除结果,若容器状态文件删除结果为容器状态文件已删除,将第二计数器的值从2变为3,此时将第二计数器的值记为第二计数值;将第二计数值发送至第二安全通信模块,转4.6.2.8;若容器状态文件删除结果为容器状态文件仍存在,说明迁移系统可能受到分叉或回滚攻击,根据容器状态文件标识生成容器状态文件删除失败信息,将该信息发送至第二安全通信模块,转4.6.2.11;4.6.2.8迁移目标节点的第二安全通信代理接收到第二计数值,利用迁移目标节点身份私钥加密第二计数值,将加密的第二计数值发送至第二安全通信代理;4.6.2.9迁移目标节点的第二安全通信代理收到加密的第二计数值,将其发送至控制节点的第一安全通信代理;4.6.2.10迁移目标节点的第二安全通信代理将加密的第二计数值发送至控制节点,转4.7;4.6.2.11单容器保护模块接收到容器状态文件删除失败的容器状态文件删除结果,根据容器状态文件删除结果生成容器状态文件删除失败信息后发送至第二安全通信模块;4.6.2.12第二安全通信模块接收到容器状态文件删除失败信息,将该信息与第二容器标识符打包成新的容器状态文件删除失败信息,并用迁移目标节点身份私钥加密容器状态文件删除失败信息,加密后转发至第二安全通信代理;4.6.2.13第二安全通信代理接收到该加密的容器状态文件删除失败信息,将其转发至控制节点的第一安全通信代理;4.6.2.14控制节点的第一安全通信代理将接收到的加密的容器状态文件删除失败信息转发至第一安全通信模块;4.6.2.15第一安全通信模块接收到加密的第一容器删除失败信息,利用迁移目标节点身份公钥解密后获得第二容器标识符及容器状态文件删除失败信息,生成第二容器异常信息发送至迁移控制模块;4.6.2.16迁移控制模块收到第二容器异常信息,获得第二容器标识符,根据第二容器标识符生成包含第二容器标识符的第二容器停止指令发送至第一安全通信代理;4.6.2.17第一安全通信模块收到第二容器停止指令,利用迁移目标节点身份公钥加密该指令,发送至第一安全通信代理;4.6.2.18控制节点的第一安全通信代理接收到加密的第二容器停止指令,转发至迁移目标节点,转4.7.5;4.7验证单容器保护,方法是:4.7.1控制节点的第一安全通信代理从迁移源节点接收加密的第一计数值,从迁移目标节点接收第二计数值,均转发至控制节点的第一安全通信模块;4.7.2控制节点的第一安全通信模块采用迁移源节点身份公钥对加密的第一计数值解密,获得第一计数值,将第一计数值转发至控制节点的迁移控制模块;控制节点的安全通信模块采用迁移目标节点身份公钥解密获得第二计数值,将第二计数值转发至控制节点的迁移控制模块;4.7.3控制节点的迁移控制模块对从第一安全通信模块接收的第一计数值和第二计数值做比对;若二者大小不等,表明单容器保护失败,向第一安全通信模块发送第二容器停止指令,第二容器停止指令包含第二容器标识符和要求停止第二容器的运行的请求,转4.7.4;若二者大小相等,说明单容器保护成功,至此完成本次容器安全迁移,转2.2继续监控;4.7.4第一安全通信模块接收到第二容器停止指令,利用迁移目标节点身份公钥加密该第二容器停止指令,由第一安全通信代理转发至迁移目标节点;4.7.5迁移目标节点的第二安全通信代理接收加密的第二容器停止指令,将该指令转发至迁移目标节点的第二安全通信模块并利用迁移目标节点身份私钥解密,获得第二容器停止指令;4.7.6迁移目标节点的第二安全通信模块解析第二容器停止指令,向容器状态转储模块发送第二容器停止指令;4.7.7容器状态转储模块接收到第二容器停止指令,根据第二容器标识符及第二容器停止信息,控制第二容器直至第二容器停止运行;通过查询第二容器运行状态获取第二容器处于停止状态的信息,向第二安全通信模块返回第二容器停止信息;4.7.8第二安全通信模块接收到第二容器停止信息,利用迁移目标节点身份私钥加密第二容器停止信息,发送至第二安全通信代理;4.7.9迁移目标节点的第二安全通信代理接收到加密的第二容器停止信息发送至控制节点;4.7.10控制节点的第一安全通信模块接收到加密的第二容器停止信息,转发至第一安全通信模块;4.7.11控制节点的第一安全通信模块利用迁移目标节点身份公钥解密获得第二容器停止信息,根据第二容器标识符向迁移控制模块发送第二容器停止的容器状态列表变更信息;4.7.12迁移控制模块收到第一安全通信模块发来的第二容器停止的容器状态列表变更信息,根据第二容器标识符将第二容器运行状态更改为停止态,转2.2继续监控。

全文数据:

权利要求:

百度查询: 中国人民解放军国防科技大学 一种基于可信执行环境的容器安全迁移方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。