一种校验虚拟可信根的系统及方法与流程

文档序号:19483688发布日期:2019-12-21 03:36阅读:363来源:国知局
一种校验虚拟可信根的系统及方法与流程

本发明涉及计算机信息安全技术领域,具体涉及一种校验虚拟可信根的系统及方法。



背景技术:

可信计算是一种以硬件安全模块(可信根)为基础,使用密码学功能来提升计算平台(如服务器、个人电脑等)安全性的技术,被广泛的应用于计算和通信系统中,其中包含了可信度量、远程认证等核心技术,可以采集并校验计算平台中关键组件(如bios、bootloader等)的完整性信息。同时,可信根用户还可利用可信根中的密码学功能保护系统中的关键信息或敏感数据。目前,为应对虚拟环境的应用,基于软件实现的虚拟可信根已经出现,可使用户在虚拟的系统中使用可信技术,提升用户虚拟环境的安全性。

可信根运行时依赖状态数据,且会根据操作产生新的状态数据,其状态数据结构都遵循可信根标准规范。物理可信根中的状态数据都存放在了可信根芯片中,与计算平台无关,而虚拟可信根的状态数据以文件的形式存放在了操作系统中,相较于物理芯片,操作系统中的文件更容易被替换。

当前虚拟系统在虚拟可信根运行前不校验虚拟可信根的状态数据,如果虚拟可信根的状态数据文件一旦被恶意攻击者替换,后续程序继续使用该虚拟可信根,那么虚拟环境下用户利用虚拟可信根保护的关键信息或敏感数据就有被破坏的风险。



技术实现要素:

本发明实施例中提供了一种校验虚拟可信根的系统及方法,虚拟系统在虚拟可信根运行前,通过校验虚拟可信根身份信息的有效性,来鉴定状态数据文件是否被恶意攻击者替换。当检测到虚拟可信根状态数据被替换后,禁止虚拟可信根运行,防止后续程序继续使用该虚拟可信根导致关键信息或敏感数据被破坏。

本发明实施例公开了如下技术方案:

本发明第方面提供了一种校验虚拟可信根的系统,包括虚拟可信根管理模块,所述系统还包括身份信息生成模块、密钥管理模块和身份信息验证模块;

身份信息生成模块用于生成虚拟可信根状态数据文件,生成虚拟可信根颁发者的公钥和私钥,生成虚拟可信根的身份信息,将身份信息通过虚拟可信根管理模块写入虚拟可信根状态数据文件中,

密钥管理模块用于集成并管理虚拟可信根颁发者的公钥,设定公钥的索引信息,验证虚拟可信根的身份信息,

身份信息验证模块用于初始化虚拟可信根,通过虚拟可信根管理模块加载虚拟可信根的身份信息,加载密钥管理模块,获取公钥,使用公钥验证虚拟可信根身份信息的有效性。

进一步地,所述身份信息生成模块,用于生成虚拟可信根状态数据文件,生成第一唯一标识信息和第一签名信息,将虚拟可信根颁发者信息、第一唯一标识信息和第一签名信息作为虚拟可信根的身份信息,写入虚拟可信根状态数据文件中,其中虚拟可信根颁发者信息指虚拟可信根颁发者的信息,第一唯一标识信息指此处生成的身份信息中的唯一标识信息,第一签名信息指此处生成的身份信息中的签名信息。

进一步地,所述身份信息验证模块,用于qemu启动后,加载已写入身份信息的虚拟可信根状态数据文件,初始化虚拟可信根,加载虚拟可信根的身份信息,获取第二唯一标识信息和第二签名信息,加载密钥管理模块,获取公钥,使用公钥验证虚拟可信根身份信息的有效性,其中第二唯一标识信息指从虚拟可信根身份信息中获取的唯一标识信息,第二签名信息指指从虚拟可信根身份信息中获取的签名信息。

本发明第二方面提供了一种校验虚拟可信根的方法,包括:

身份信息生成,生成虚拟可信根状态数据文件、第一唯一标识信息和第一签名信息,将虚拟可信根颁发者信息、第一唯一标识信息和第一签名信息写入虚拟可信根状态数据文件中;

密钥集成,获取已写入身份信息的虚拟可信根状态数据文件,获取公钥,将公钥写入到密钥管理模块中,设定公钥的索引信息;

身份信息验证,qemu启动后,初始化虚拟可信根,加载虚拟可信根身份信息,获取第二唯一标识信息和第二签名信息,加载密钥管理模块,使用虚拟可信根颁发者信息为索引信息,获取公钥,使用公钥验证虚拟可信根身份信息的有效性。

进一步地,所述身份信息生成包括:

s11,生成虚拟可信根状态数据文件;

s12,生成第一唯一标识信息;

s13,生成公钥和私钥;

s14,以第一唯一标识信息作为输入,使用私钥对第一唯一标识信息进行签名,生成第一签名信息;

s15,虚拟可信根颁发者信息、第一唯一标识信息和第一签名信息共同构成虚拟可信根的身份信息;

s16,写入身份信息,将虚拟可信根颁发者信息和第一唯一标识信息,写入虚拟可信根状态数据文件的厂商信息区域中,同时将第一签名信息写入可信根状态数据文件的存储区域中。

进一步地,所述密钥集成包括:

s21:从已写入身份信息的虚拟可信根状态数据文件中获取身份信息;

s22,从虚拟可信根中获取虚拟可信根颁发者信息;

s23,将虚拟可信根颁发者信息设定为密钥管理模块中公钥的索引信息;

s24,获取公钥,以虚拟可信根颁发者信息为键,以公钥为值,以键值对的方式将公钥存放至密钥管理模块中。

进一步地,所述身份信息验证包括:

s31,qemu启动后,加载已写入身份信息的虚拟可信根状态数据文件;

s32,初始化虚拟可信根,使虚拟可信根为可用状态;

s33,从可信根状态数据文件中获取身份信息;

s34,加载虚拟可信根的身份信息,获取虚拟可信根颁发者信息、第二唯一标识信息和第二签名信息;

s35,加载密钥管理模块,使用虚拟可信根颁发者信息为索引信息,获取公钥;

s36,将第二唯一标识信息转换为第一比较值,使用公钥将第二签名信息转换为第二比较值,将第一比较值和第二比较值进行对比,验证虚拟可信根身份信息的有效性;

s37,验证通过,则运行虚拟可信根并启动虚拟机,验证不通过,则禁用虚拟可信根。

进一步地,所述验证虚拟可信根身份信息有效性的原则是:

如果第一比较值和第二比较值相同,则说明第二唯一标识信息、第二签名信息、公钥三者匹配,虚拟可信根身份信息有效,运行虚拟可信根;

如果第一比较值和第二比较值不相同,则说明第二唯一标识信息、第二签名信息、公钥三者不匹配,虚拟可信根身份信息无效,qemu禁用虚拟可信根。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

本发明提供的校验虚拟可信根的系统及方法中,虚拟可信根的身份信息,由虚拟可信根的颁发者使用私钥,对虚拟可信根中的唯一标识信息签名生成,qemu启动后,获取私钥对应的公钥,验证唯一标识信息、签名信息、公钥三者是否匹配,证明虚拟可信根身份信息是否有效。恶意攻击者无法获取虚拟可信根颁发者的私钥,因此无法产生与虚拟系统集成的公钥相匹配的身份信息,因此,一旦虚拟可信根状态数据文件被恶意攻击者替换,身份信息验证过程会出错,虚拟系统可以第一时间检测这种错误并禁止虚拟可信根运行,防止关键信息或敏感数据被破坏。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所述系统工作框图;

图2为本发明实施例的身份信息生成流程图;

图3为本发明实施例的密钥集成流程图;

图4为本发明实施例的身份信息验证流程图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

可信根为根据可信根规范提供可信服务的安全设备,当前发布的可信根规范的有tpm(国外)、tcm(国内)。

虚拟可信根,在虚拟化层面为虚拟机提供可信根服务的模块。

虚拟可信根状态数据文件,为保存虚拟可信根状态数据的文件,在虚拟机启动时加载至内存供虚拟可信根使用,并且当内存中的状态数据发生变化时同步写入该文件中。

身份信息,由虚拟可信根颁发者为每一虚拟可信根下发的信息,每一虚拟可信根的身份信息皆不相同,且该信息由虚拟可信根颁发者做背书。

qemu(quickemulator)为一款开源的模拟器及虚拟机监管器。

为了使本发明的目的、技术方案和优点更加清楚,本发明以vtpm2.0(软件模拟的tpm2.0)为虚拟可信根、以qemu为虚拟化模拟器为例,并结合附图对发明做进一步详细描述。

如图1所示,本发明系统包括身份信息生成模块、密钥管理模块、身份信息验证模块和虚拟可信根管理模块,其中密钥管理模块、身份信息验证模块和虚拟可信根管理模块集成在qemu中。

身份信息生成模块,用于生成虚拟可信根状态数据文件、第一唯一标识信息和第一签名信息,将虚拟可信根颁发者信息、第一唯一标识信息和第一签名信息写入虚拟可信根状态数据文件中。

身份信息生成模块,用于生成虚拟可信根状态数据文件,生成第一唯一标识信息和第一签名信息,将虚拟可信根颁发者信息、第一唯一标识信息和第一签名信息作为虚拟可信根的身份信息,写入虚拟可信根状态数据文件中,其中虚拟可信根颁发者信息指虚拟可信根颁发者的信息,第一唯一标识信息指此处生成的身份信息中的唯一标识信息,第一签名信息指此处生成的身份信息中的签名信息。

密钥管理模块用于集成并管理虚拟可信根颁发者的公钥,设定公钥的索引信息,验证虚拟可信根的身份信息。

身份信息验证模块,用于qemu启动后,加载已写入身份信息的虚拟可信根状态数据文件,初始化虚拟可信根,加载虚拟可信根的身份信息,获取第二唯一标识信息和第二签名信息,加载密钥管理模块,获取公钥,使用公钥验证虚拟可信根身份信息的有效性,其中第二唯一标识信息指从虚拟可信根身份信息中获取的唯一标识信息,第二签名信息指指从虚拟可信根身份信息中获取的签名信息。

虚拟可信根管理模块用于在虚拟可信根状态数据文件中写入和读取身份信息,虚拟可信根状态数据文件保存在文件系统中。

本发明校验虚拟可信根的方法包括:

身份信息生成,生成虚拟可信根状态数据文件、第一唯一标识信息和第一签名信息,将虚拟可信根颁发者信息、第一唯一标识信息和第一签名信息写入虚拟可信根状态数据文件中;

密钥集成,获取已写入身份信息的虚拟可信根状态数据文件,获取公钥,将公钥写入到密钥管理模块中,设定公钥的索引信息;

身份信息验证,qemu启动后,初始化虚拟可信根,加载虚拟可信根身份信息,获取第二唯一标识信息和第二签名信息,加载密钥管理模块,使用虚拟可信根颁发者信息为索引信息,获取公钥,使用公钥验证虚拟可信根身份信息的有效性。

如图2所示,为身份信息生成流程,具体包括:

s11,生成虚拟可信根状态数据文件;

s12,生成第一唯一标识信息;

s13,生成公钥和私钥;

s14,以第一唯一标识信息作为输入,使用私钥对第一唯一标识信息进行签名,生成第一签名信息;

s15,虚拟可信根颁发者信息、第一唯一标识信息和第一签名信息共同构成虚拟可信根的身份信息;

s16,写入身份信息,将虚拟可信根颁发者信息和第一唯一标识信息,写入虚拟可信根状态数据文件的厂商信息区域中,同时将第一签名信息写入可信根状态数据文件的存储区域中。

步骤s11-s16为虚拟可信根颁发者执行。

虚拟可信根的唯一标识用来区分各个虚拟可信根,该信息的随机性直接关系到每个虚拟可信根的身份,因此该随机过程的熵池应尽可能大,以保证每一虚拟可信根身份的唯一性。随机数生成过程遵循:

xn=λxn-1modm,

其中λ为系数,m为模数,x0为种子。

为保证随机值的质量,应在足够大的熵池中获取种子,本例使用linux系统中/dev/random作为种子的熵池,也可使用其它随机性较好的熵池。

步骤s12中,xn作为第一唯一标识信息u。

步骤s13中,生成虚拟可信根颁发者的公钥(e,n)和私钥(d,n),本发明对公钥和私钥的生成规则不做约束。

步骤s14中,生成身份信息,以第一唯一标识信息u作为输入,使用私钥(d,n)对第一唯一标识信息u进行签名,第一签名信息生成过程遵循如下公式:

1)h=digest(u);

2)计算第一签名信息s,s=hdmodn;

h为计算过程的中间值,此处不指定特殊含义,u为第一唯一标识信息,digest代表哈希算法,本例使用sha-256算法。

如图3所示,为密钥集成流程,具体包括:

s21:从已写入身份信息的虚拟可信根状态数据文件中获取身份信息;

s22,从虚拟可信根中获取虚拟可信根颁发者信息;

s23,将虚拟可信根颁发者信息设定为密钥管理模块中公钥(e,n)的索引信息;

s24,获取公钥(e,n),以虚拟可信根颁发者信息为键,以公钥为值,以键值对的方式将公钥(e,n)存放至密钥管理模块中。

步骤s21-s24为虚拟平台发布者执行。

虚拟化平台发布者对所述键值对使用口令进行加密,以保证密钥管理模块的机密性,在访问密钥管理模块时,也需要使用此口令。

密钥管理模块可集成多对公钥,按照(虚拟可信根颁发者信息,公钥)的键值对方式将公钥信息写入密钥管理模块中即可。

如图2所示,为身份信息验证流程,具体包括:

s31,qemu启动后,加载已写入身份信息的虚拟可信根状态数据文件;

s32,初始化虚拟可信根,使虚拟可信根为可用状态;

s33,从可信根状态数据文件中获取身份信息;

s34,加载虚拟可信根的身份信息,,qemu通过tpm2_getcapability指令读取厂商信息区域中的虚拟可信根颁发者信息和第二唯一标识信息u',通过tpm2_nvread指令读取存储区域中的第二签名信息s';

s35,qemu使用虚拟化平台发布者约定的口令加载密钥管理模块,使用虚拟可信根颁发者信息为索引信息,获取公钥(e,n);

s36,将第二唯一标识信息u'转换为第一比较值d,使用公钥(e,n)将第二签名信息s'转换为第二比较值d’,将第一比较值d和第二比较值d’进行对比,验证虚拟可信根身份信息的有效性;

s37,验证通过,则运行虚拟可信根并启动虚拟机,验证不通过,则禁用虚拟可信根。

步骤s36中,第一比较值d、第二比较值d’的转换过程为:

1)d=digest(u’);

2)d’=s'emodn;

此处d、d’为计算过程的中间值,此处指定为第一比较值和第二比较值,用于逻辑判断。

验证虚拟可信根身份信息有效性的原则是:

如果第一比较值d和第二比较值d’相同,则说明第二唯一标识信息、第二签名信息、公钥三者匹配,虚拟可信根身份信息有效;

如果第一比较值d和第二比较值d’不相同,则说明第二唯一标识信息、第二签名信息、公钥三者不匹配,虚拟可信根身份信息无效,qemu禁用虚拟可信根。

当虚拟可信根身份信息有效时,qemu通过虚拟内存映射,将虚拟可信根的虚拟i/o寄存器映射至qemu的虚拟内存空间中,使qemu中运行的其他程序可以访问虚拟可信根。

以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1