本发明实施例涉及信息安全技术领域,具体涉及一种vtpm时钟安全保障的方法及系统。
背景技术:
可信计算是由可信计算组推动和开发的技术,其已成为解决云数据安全性必要的技术方案,tpm作为基于tcg可信计算技术的核心,为计算环境提供可信根服务,并得到广泛的应用。但由于tpm规范及成本的约束,当前物理tpm均不支持虚拟化及多平台共用的特性,所以业界又推出了采用vtpm作为虚拟机的可信根来为虚拟机提供可信根服务。
时钟在tpm中起着重要的安全保障作用,具体包括防字典攻击、资源有效期约束等作用。现有的vtpm实现中,时钟均由基于物理计算平台的系统时间提供的服务计算所得,而这一实现存在着巨大的安全隐患,敌手或恶意管理员可以通过不断的修改物理平台系统时间使得vtpm时钟机制失效,从而导致时钟无法抵御字典攻击、无法实现资源有效期约束等功能。
基于现有技术中存在的上述问题,本发明提出一种vtpm时钟安全保障的方法及系统,防止系统时间回滚导致vtpm时间失效,确保虚拟机vtpm的安全性。
技术实现要素:
本发明实施例提供一种vtpm时钟安全保障的方法及系统,确保系统时间时钟向前,保障计算节点上所有vtpm时钟的安全性。
为解决上述技术问题,本发明公开了如下技术方案:
本发明第一方面提供了一种vtpm时钟安全保障的方法,所述方法包括以下步骤:
通过宿主机可信基础软件在物理tpm中分配一非易失性存储空间,并将其命名为timenv;
通过系统时钟检测程序获取系统时间并检测其有效性,然后更新系统时间及相关信息到timenv;
虚拟机根据timenv提供的信息校验系统时间的准确性,并根据校验结果调整更新vtpm时钟,然后启动虚拟机。
基于上述方案,本方法做如下优化:
所述非易失性存储空间timenv用于记录当前系统时间及反映系统时间变化的信息,其访问策略为管理员授权可写、其他模拟处理器进程可任意读。非易失性存储空间timenv中存放的信息包括当次系统时间、当次与上次系统时间差、系统时钟检测程序的检测周期、提供给vtpm的校验后的系统时间以及防止数据重放的随机数。
进一步的,所述虚拟机根据timenv提供的信息校验系统时间的准确性,具体包括下述步骤:
通过系统时钟检测程序获取系统时间htime;
通过可信基础软件提供的api读取timenv中存放的校验后的系统时间vhtime,以及系统时钟检测程序的检测周期p;
比较vhtime与htime,如果vhtime与htime之差大于0且小于等于p,说明系统时间未被修改过,选取htime为最新系统时间;若vhtime与htime之差大于p或小于0,说明系统时间被修改过,则选取vhtime为最新系统时间。
进一步的,所述系统时钟检测程序更新系统时间到timenv,具体包括下述步骤;
系统时钟检测程序获取系统时间htime;
从timenv中获取上次生成的最新系统时间nhtime、上次生成的校验后的系统时间vhtime及系统时钟检测程序的检测周期p;
通过程序进行timenv中的系统时间更新。
本发明第二方面提供了一种vtpm时钟安全保障的系统,系统包括可信服务器、宿主机和虚拟机,宿主机为运行在可信服务器上的虚拟化系统,所述可信服务器上设有物理tpm,宿主机通过可信基础软件访问物理tpm,虚拟机上设有vtpm,所述宿主机的可信基础软件在物理tpm中分配有非易失性存储空间timenv,系统时钟检测程序获取系统时间并更新系统时间及相关信息到timenv,虚拟机根据timenv提供的信息校验系统时间的准确性并根据校验结果调整更新vtpm时钟。
所述非易失性存储空间timenv记录当前系统时间及反映系统时间变化的信息,其访问策略为管理员授权可写、其他模拟处理器进程可任意读。非易失性存储空间timenv中存放的信息包括当次系统时间、当次与上次系统时间差、系统时钟检测程序的检测周期、提供给vtpm的校验后的系统时间以及防止数据重放的随机数。
进一步的,所述虚拟机通过系统时钟检测程序获取系统时间htime,并通过可信基础软件读取timenv中存放的校验后的系统时间vhtime及系统时钟检测程序的检测周期p,若vhtime与htime之差大于0且小于等于p,选取htime为最新系统时间;若vhtime与htime之差大于p或小于0,则选取vhtime为最新系统时间。
进一步的,所述系统时钟检测程序获取系统时间htime,并从timenv中获取上次生成的最新系统时间nhtime、上次生成的校验后的系统时间vhtime及系统时钟检测程序的检测周期p,通过程序进行timenv中的系统时间更新。
本申请的实施例提供的技术方案包括以下有益效果:
本申请实施例提供的一种vtpm时钟安全保障的方法,包括通过宿主机可信基础软件在物理tpm中分配一非易失性存储空间timenv;通过系统时钟检测程序获取系统时间并检测其有效性,然后更新系统时间及相关信息到timenv;虚拟机根据timenv提供的信息校验系统时间的准确性,并根据校验结果调整更新vtpm时钟,然后启动虚拟机。本申请实施例的vtpm时钟安全保障的方法,利用物理tpm提供的安全存储空间及其访问控制属性,确保系统时间时钟向前,从而保障计算节点上所有vtpm时钟的安全性,防止因vtpm时钟机制失效导致时钟无法抵御字典攻击、无法实现资源有效期约束等功能,确保了部分资源的有效使用时间等安全特性,进一步提升了虚拟机的安全性。
本发明第二方面的一种vtpm时钟安全保障的系统,能够实现第一方面的方法,并取得相同的效果。
附图说明
此处的附图被并入说明书中并构成说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种vtpm时钟安全保障方法的流程示意图;
图2为本申请实施例提供的一种vtpm时钟安全保障系统的结构示意图;
附图标记:
1-可信服务器,2-宿主机,3-虚拟机。
具体实施方式
为使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为方便对本发明内容及附图的理解,下面对本发明中涉及的英文缩写予以解释和说明。
tpm:trustedplatformmodule,可信平台模块;
vtpm:virtualtrustedplatformmodule,虚拟可信平台模块;
tcg:trustedcomputinggroup,可信计算组织;
tss:tcgsoftwarestack,tcg可信计算软件栈;
nv空间:non-volatile空间,非易失性空间;
qemu:quickemulator,模拟处理器。
图1为本申请实施例提供的一种vtpm时钟安全保障方法的流程示意图,由图1可知,本实施例的vtpm时钟安全保障的方法包括以下步骤:
s1、通过宿主机可信基础软件在物理tpm中分配一非易失性存储空间,并将其命名为timenv;
s2、通过系统时钟检测程序获取系统时间并检测其有效性,然后更新系统时间及相关信息到timenv;
s3、虚拟机根据timenv提供的信息校验系统时间的准确性,并根据校验结果调整更新vtpm时钟,然后启动虚拟机。
具体的,所述步骤s1中,非易失性存储空间timenv用于记录当前系统时间及反映系统时间变化的信息,其访问策略为管理员授权可写、其他qemu进程可任意读。非易失性存储空间timenv中存放的信息包括当次系统时间、当次与上次系统时间差、系统时钟检测程序的检测周期、提供给vtpm的校验后的系统时间以及防止数据重放的随机数。
所述步骤s3中,虚拟机根据timenv提供的信息检测系统时间的准确性,具体包括下述步骤:
s31、通过系统时钟检测程序获取系统时间htime;
s32、通过可信基础软件提供的api读取timenv中存放的校验后的系统时间vhtime,以及系统时钟检测程序的检测周期p;
s33、比较vhtime与htime,如果vhtime与htime之差大于0且小于等于p,说明系统时间未被修改过,选取htime为最新系统时间;若vhtime与htime之差大于p或小于0,说明系统时间被修改过,则选取vhtime为最新系统时间。
所述步骤s2中,系统时钟检测程序更新系统时间到timenv,具体包括下述步骤;
s21、系统时钟检测程序获取系统时间htime;
s22、从timenv中获取上次生成的最新系统时间nhtime、上次生成的校验后的系统时间vhtime及系统时钟检测程序的检测周期p;
s23、通过程序进行timenv中的系统时间更新。具体更新过程如下:
图2为本申请实施例提供的一种vtpm时钟安全保障系统的结构示意图,由图2可知,本实施例的vtpm时钟安全保障的系统包括可信服务器1、宿主机2和虚拟机3,宿主机2为运行在可信服务器上1的虚拟化系统,可信服务器1上设有物理tpm,宿主机2通过可信基础软件访问物理tpm,虚拟机3上设有vtpm。宿主机2的可信基础软件在物理tpm中分配有非易失性存储空间timenv,系统时钟检测程序获取系统时间并更新系统时间及相关信息到timenv,虚拟机3根据timenv提供的信息校验系统时间的准确性并根据校验结果调整更新vtpm时钟。
具体而言,所述非易失性存储空间timenv记录当前系统时间及反映系统时间变化的信息,其访问策略为管理员授权可写、其他qemu进程可任意读。非易失性存储空间timenv中存放的信息包括当次系统时间、当次与上次系统时间差、系统时钟检测程序的检测周期、提供给vtpm的校验后的系统时间以及防止数据重放的随机数。
进一步来说,虚拟机3通过系统时钟检测程序获取系统时间htime,并通过可信基础软件读取timenv中存放的校验后的系统时间vhtime及系统时钟检测程序的检测周期p,若vhtime与htime之差大于0且小于等于p,选取htime为最新系统时间;若vhtime与htime之差大于p或小于0,则选取vhtime为最新系统时间。系统时钟检测程序获取系统时间htime,并从timenv中获取上次生成的最新系统时间nhtime、上次生成的校验后的系统时间vhtime及系统时钟检测程序的检测周期p,通过程序进行timenv中的系统时间更新。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。