CN108446564B - 基于tpm模块的虚拟化度量方法及装置 - Google Patents
基于tpm模块的虚拟化度量方法及装置 Download PDFInfo
- Publication number
- CN108446564B CN108446564B CN201810153962.9A CN201810153962A CN108446564B CN 108446564 B CN108446564 B CN 108446564B CN 201810153962 A CN201810153962 A CN 201810153962A CN 108446564 B CN108446564 B CN 108446564B
- Authority
- CN
- China
- Prior art keywords
- module
- measurement
- request
- tpm
- integrity
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于TPM模块的虚拟化度量方法及装置,其中,方法包括:TPM模块度量外部运算模块和请求调度模块,在一致时通过TPM模块发送加密信息至CPU,启动外部运算模块和请求调度模块;通过调度算法将最需要度量的请求发送到与之相匹配的度量模块中;获取相应的度量结果,发送外部度量模块度量结果至TPM模块;如果与之前存取在PCR的度量值进行对比结果一致,则度量通过;通过TPM模块发送加密后的最终度量结果至CPU,以决定是否允许请求对应程序的运行;请求调度模块删除对应请求的记录,并将相应运算模块的工作状态做更新,以保证运算模块可以接受下一个度量任务。该方法可以有效提高TPM的度量效率。
Description
技术领域
本发明涉及信息安全中密码学技术领域,特别涉及一种基于TPM模块的虚拟化度量方法及装置。
背景技术
随着计算机科学技术和互联网技术的发展,人类已经进入到了一个崭新的信息时代。手机等移动终端已经渗入到我们生活的方方面面,用户终端的安全性受到广泛重视。TCG(Trusted Computing Group,可信计算组织)已经提出了针对PC(personal computer,个人计算机)端的安全模块TPM(Trusted Platform Module,可信赖平台模块)并得到了广泛应用,在此基础上TCG组织专门提出了针对于移动终端的可信参考架构,可信计算技术从PC端延伸到了移动终端,对于智能安全终端中的可信技术的应用研究也取得了较大的进步。
信息交互和手机支付等业务渐渐兴起,人们可以使用移动终端来完成越来越多的工作。但同时越来越多的安全问题也涌现了出来,支付安全保障,信息窃取等问题成为当今社会的热点。相关技术突破了最新版本手机的坚实防线——“指纹识别搭配隔离环境”。攻击者不仅能获得安全区中的敏感数据,还能直接进入支付等高权限场景。黑客团队篡改了隔离环境里的指纹验证模块,可以用任意指纹解锁手机。这表明,指纹识别也并没有公众想象中那么安全,这为移动终端安全敲响了警钟。
TCG首次提出了TCP(Trusted Computing Platform,可信计算平台)和TPM(Trusted Platform,可信平台模块)的概念,并将可信计算平台的概念具体化到服务器、PC机、PDA(Personal Digital Assistant,掌上电脑)和移动计算设备,而且具体给出了可信计算平台的体系结构和技术路线。目前,TCG技术规范已被广泛认可与遵循,可信PC机和TPM芯片已研制成功,进入实际应用阶段。基于可信计算思想的技术如可信启动,动态完整性度量,远程认证等也以TPM模块为基础进行了各种方式的实现。为了实现满足安全需求的移动可信计算,在过去几年中也已经提出了几种技术解决方案,其中有基于硬件的解决方案,如安全元素(SE)、TPM和TEE(Trusted Execution Environment,可信执行环境)等。最近,依据嵌入式多核心处理器的性能,又提出了基于软件的解决方案。可信计算技术及其应用领域进一步扩大,达到了可信计算的高潮。
然而,这些研究并不能充分适应如今多业务、大流量的应用需求。就计算资源而言,目前可利用的物理硬件只有一块TPM芯片,并且当安全请求较多时,该芯片的处理能力就显得非常有限,亟待解决。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于TPM模块的虚拟化度量方法,该方法可以有效减轻TPM模块作为可信根的负担,有效提高TPM的度量效率。
本发明的另一个目的在于提出一种基于TPM模块的虚拟化度量装置。
为达到上述目的,本发明一方面实施例提出了一种基于TPM模块的虚拟化度量方法,包括以下步骤:通过TPM模块的度量外部运算模块和请求调度模块将度量结果与之前存放在PCR中的值进行对比,且在不一致时,更新所述外部运算模块和所述请求调度模块后再次度量;在一致时,通过所述TPM模块发送加密信息至CPU,使得所述CPU允许所述外部运算模块和所述请求调度模块启动;在所述请求调度模块接受来自于操作系统层和应用层的度量请求后,通过调度算法将最需要度量的请求发送到与之相匹配的度量模块中;在所述相匹配的度量模块接收相应度量请求之后,获取相应的度量结果,且对于外部度量模块,发送所述度量结果至所述TPM模块;通过所述TPM模块查找之前存取在PCR的度量值进行对比,其中,如果一致,则度量通过,否则该请求度量失败;通过所述TPM模块发送加密后的最终度量结果至所述CPU,使得所述CPU解密获取所述最终度量结果,以决定是否允许请求对应程序的运行;通过所述TPM模块发送所述请求度量完成的消息给所述请求调度模块,使得所述请求调度模块删除对应请求的记录,并将相应运算模块的工作状态做更新,以保证运算模块可以接受下一个度量任务。
本发明实施例的基于TPM模块的虚拟化度量方法,通过TPM模块度量外部的运算模块来保证安全可信,而这些运算模块也可以帮助参与之后的度量运算,降低了TPM模块的工作负担,提高了系统效率;通过请求调度模块的参与,将所有进行完整性度量的请求进行分类,对于不同类别的请求采取不同的处理措施,保证系统能更加合理、高效地处理度量请求;实现了利用TPM模块并行地处理请求,很大程度上完成了请求任务的分配,延长了模块的使用寿命,并且有效提高系统安全行和高效的完整性。
另外,根据本发明上述实施例的基于TPM模块的虚拟化度量方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述TPM模块中保留其原本的密码算法和存储特性,具体包括:检测度量所述请求调度模块的完整性,并对所述请求调度模块进行完整性度量后与存储在TPM中的哈希值进行对比操作,以在对比通过之后,允许所述请求调度模块运行;度量所述外部运算模块的完整性,并对所述外部运算模块进行完整性度量,以在通过之后,允许所述外部运算模块运行;接收度量所述请求调度模块分配的请求,以完成请求的度量,且当度量完成之后,发送消息给所述请求调度模块,并删除度量记录;接收所述外部运算模块发来的度量结果,并与之前存储好的哈希值进行比对,如果对比一致,也将消息发送给所述请求调度模块并删除此记录。
进一步地,在本发明的一个实施例中,所述外部运算模块采用SHA1杂凑算法,所述外部运算模块用于接收所述调度模块发来的对预设ID的度量请求,并对度量目标进行完整性度量,以在度量完成后,将度量结果和对应的ID号发送给所述TPM模块。
进一步地,在本发明的一个实施例中,所述请求调度模块,具体包括:接收度量请求,根据所述度量请求的性质由所述度量模块的算法确定该请求的等级,并给予所述请求一个非重复ID号;根据所述等级划分情况,查找此时空闲的最佳度量模块,根据分配算法将度量任务派给所述最佳度量模块;当度量开始时,给相应的运算模块的工作状态位置1;度量完成后,将对应运算模块的工作状态位置0。
进一步地,在本发明的一个实施例中,所述分配算法具体包括:根据所述度量模块中每个请求的等级和特殊需求划分两个队列,第一队列要求只能使用所述TPM模块进行测量操作,第二队列要求可以采用多种方式进行完整性度量;在队列分配完成后,找到请求对应的数据结构,取出安全等级和到达次序两个数据,求解安全等级A与到达次序O的倒数的k倍之和,数值大的会被优先给分配完整性运算模块;根据所述请求调度模块中所述运算模块的工作情况,只要所述运算模块有空闲,就将其对应队列的首元素分给所述请求调度模块。
为达到上述目的,本发明另一方面实施例提出了一种基于TPM模块的虚拟化度量装置,包括:对比模块,用于通过TPM模块的度量外部运算模块和请求调度模块将度量结果与之前存放在PCR中的值进行对比,且在不一致时,更新所述外部运算模块和所述请求调度模块后再次度量;第一发送模块,用于在一致时,通过所述TPM模块发送加密信息至CPU,使得所述CPU允许所述外部运算模块和所述请求调度模块启动;第二发送模块,用于在所述请求调度模块接受来自于操作系统层和应用层的度量请求后,通过调度算法将最需要度量的请求发送到与之相匹配的度量模块中;获取模块,用于在所述相匹配的度量模块接收相应度量请求之后,获取相应的度量结果,且对于外部度量模块,发送所述度量结果至所述TPM模块;判断模块,用于通过所述TPM模块查找之前存取在PCR的度量值进行对比,其中,如果一致,则度量通过,否则该请求度量失败;第三发送模块,用于通过所述TPM模块发送加密后的最终度量结果至所述CPU,使得所述CPU解密获取所述最终度量结果,以决定是否允许请求对应程序的运行;更新模块,用于通过所述TPM模块发送所述请求度量完成的消息给所述请求调度模块,使得所述请求调度模块删除对应请求的记录,并将相应运算模块的工作状态做更新,以保证运算模块可以接受下一个度量任务。
本发明实施例的基于TPM模块的虚拟化度量装置,通过TPM模块度量外部的运算模块来保证安全可信,而这些运算模块也可以帮助参与之后的度量运算,降低了TPM模块的工作负担,提高了系统效率;通过请求调度模块的参与,将所有进行完整性度量的请求进行分类,对于不同类别的请求采取不同的处理措施,保证系统能更加合理、高效地处理度量请求;实现了利用TPM模块并行地处理请求,很大程度上完成了请求任务的分配,延长了模块的使用寿命,并且有效提高系统安全行和高效的完整性。
另外,根据本发明上述实施例的基于TPM模块的虚拟化度量装置还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述TPM模块中保留其原本的密码算法和存储特性,具体包括:检测单元,用于检测度量所述请求调度模块的完整性,并对所述请求调度模块进行完整性度量后与存储在TPM中的哈希值进行对比操作,以在对比通过之后,允许所述请求调度模块运行;度量单元,用于度量所述外部运算模块的完整性,并对所述外部运算模块进行完整性度量,以在通过之后,允许所述外部运算模块运行;接收单元,用于接收度量所述请求调度模块分配的请求,以完成请求的度量,且当度量完成之后,发送消息给所述请求调度模块,并删除度量记录;接收所述外部运算模块发来的度量结果,并与之前存储好的哈希值进行比对,如果对比一致,也将消息发送给所述请求调度模块并删除此记录。
进一步地,在本发明的一个实施例中,所述外部运算模块采用SHA1杂凑算法,所述外部运算模块用于接收所述调度模块发来的对预设ID的度量请求,并对度量目标进行完整性度量,以在度量完成后,将度量结果和对应的ID号发送给所述TPM模块。
进一步地,在本发明的一个实施例中,所述请求调度模块,具体包括:判断单元,用于接收度量请求,根据所述度量请求的性质由所述度量模块的算法确定该请求的等级,并给予所述请求一个非重复ID号;查找单元,用于根据所述等级划分情况,查找此时空闲的最佳度量模块,根据分配算法将度量任务派给所述最佳度量模块;置位单元,用于当度量开始时,给相应的运算模块的工作状态位置1;度量完成后,将对应运算模块的工作状态位置0。
进一步地,在本发明的一个实施例中,所述分配算法具体包括:划分单元,用于根据所述度量模块中每个请求的等级和特殊需求划分两个队列,第一队列要求只能使用所述TPM模块进行测量操作,第二队列要求可以采用多种方式进行完整性度量;第一分配单元,用于在队列分配完成后,找到请求对应的数据结构,取出安全等级和到达次序两个数据,求解安全等级A与到达次序O的倒数的k倍之和,数值大的会被优先给分配完整性运算模块;第二分配单元,根据所述请求调度模块中所述运算模块的工作情况,只要所述运算模块有空闲,就将其对应队列的首元素分给所述请求调度模块。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的各模块之间的运行关系示意图;
图2为根据本发明一个实施例的度量调度模块中每个度量请求对应的数据结构示意图;
图3为根据本发明一个实施例的度量模块中对应每个度量运算模块的工作状态信息示意图;
图4为根据本发明一个实施例的对应不同度量需求的调度队列结构示意图;
图5为根据本发明实施例的基于TPM模块的虚拟化度量方法的流程图;
图6为根据本发明一个实施例的基于TPM模块的虚拟化度量方法的流程图;
图7为根据本发明实施例的基于TPM模块的虚拟化度量装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在介绍本发明实施例的基于TPM模块的虚拟化度量方法及装置之前,先简单介绍下本发明实施例中的部分关键词定义及符号说明。
首先,如图1所示,1)TPM模块:具有非易失性存储、杂凑运算、对称或非对称加密,随机数产生等功能;2)外部运算模块:杂凑值运算,对称和非对称加密算法;运算比较复杂的模块都可以移动到TPM外部来完成;3)运算调度模块:主要用于将不同的度量请求进行分类和分配,并在运算完成前保留运算的路径信息,比如记录一个请求现在正在哪个运算模块中处理。
为了便于理解,本发明实施例定义请求的身份向量——ID,代表度量请求在系统中的身份,表示为ID=(ID1,ID2,...,IDd);因为请求度量的进程可能比较多,对度量的安全性可靠性需求不同,可以对它们进行分类划分,即在度量请求数据结构中加入标识SID。其中,SID={0,1},0代表需要TPM模块进行度量,1表示也可以使用外部运算模块进行运算操作。
其次,本发明实施例定义运算模块标识向量——C,C={C1,C2…,Cd}标识实施安全运算的模块。
最后,简单介绍下本发明实施例的符号说明。如图2所示,请求ID代表各度量请求的身份。等级值标识该请求对应的度量等级,等级值高的请求会优先被度量。S代表安全性,有高的安全性要求就将该值赋1,否则赋值为0。L代表在系统中的层次,若请求来自操作系统层,就将该值置为1;若请求来自应用层,该值就置为0。T代表紧急性,若请求要在短时间尽快完成,则该值就置1,否则为0;
在图3中,模块标识C代表度量运算模块的身份,例如可用C1代表TPM模块,C2代表外部运算模块。F值为度量运算模块的工作状态,当F为1表示该模块正在工作,F为0表示该模块空闲,可以接受度量的请求。
在图4中,左侧的请求队列SID的标识是1,代表可以使用外部度量模块进行度量,右侧的请求队列SID的标识是0,代表只能使用TPM模块进行完整性度量。
另外,本发明实施例的一个重要模块为请求调度模块,请求调度模块中使用度量调度算法。该调度算法以各度量请求排成的请求队列为数据输入,以度量模块的工作状态位限制条件,输出为请求的最佳匹配度量模块安排。
如图2所示,该算法根据当前请求队列的请求数据结构,计算每个请求对应的安全等级A和到达次序O,用函数Fo=A+k/O的结果决定最终排序的位次,计算结果大的优先被安排度量。
如图3所示,实施度量分配之前要检查度量运算模块是否空闲,这是通过检查度量运算模块的工作状态标识F来确定的。当F为1表示该模块正在工作,F为0表示该模块空闲。若对应度量模块正在工作,则等待模块空闲之后在进行分配,分配完成后,给对应度量模块的F值置1。
下面参照附图描述根据本发明实施例提出的基于TPM模块的虚拟化度量方法及装置,首先将参照附图描述根据本发明实施例提出的基于TPM模块的虚拟化度量方法。
图5是本发明实施例的基于TPM模块的虚拟化度量方法的流程图。
结合图5和图6所示,该基于TPM模块的虚拟化度量方法包括以下步骤:
在步骤S501中,通过TPM模块的度量外部运算模块和请求调度模块将度量结果与之前存放在PCR中的值进行对比,且在不一致时,更新外部运算模块和请求调度模块后再次度量。
在步骤S502中,在一致时,通过TPM模块发送加密信息至CPU,使得CPU允许外部运算模块和请求调度模块启动。
在步骤S503中,在请求调度模块接受来自于操作系统层和应用层的度量请求后,通过调度算法将最需要度量的请求发送到与之相匹配的度量模块中。
在步骤S504中,在相匹配的度量模块接收相应度量请求之后,获取相应的度量结果,且对于外部度量模块,发送度量结果至TPM模块。
在步骤S505中,通过TPM模块查找之前存取在PCR的度量值进行对比,其中,如果一致,则度量通过,否则该请求度量失败。
在步骤S506中,通过TPM模块发送加密后的最终度量结果至CPU,使得CPU解密获取最终度量结果,以决定是否允许请求对应程序的运行。
在步骤S507中,通过TPM模块发送请求度量完成的消息给请求调度模块,使得请求调度模块删除对应请求的记录,并将相应运算模块的工作状态做更新,以保证运算模块可以接受下一个度量任务。
进一步地,在本发明的一个实施例中,TPM模块中保留其原本的密码算法和存储特性,具体包括:检测度量请求调度模块的完整性,并对请求调度模块进行完整性度量后与存储在TPM中的哈希值进行对比操作,以在对比通过之后,允许请求调度模块运行;度量外部运算模块的完整性,并对外部运算模块进行完整性度量,以在通过之后,允许外部运算模块运行;接收度量请求调度模块分配的请求,以完成请求的度量,且当度量完成之后,发送消息给请求调度模块,并删除度量记录;接收外部运算模块发来的度量结果,并与之前存储好的哈希值进行比对,如果对比一致,也将消息发送给请求调度模块并删除此记录。
可以理解的是,本发明实施例可以在TPM模块中保留其原本的密码算法和存储特性,使用该模块实现的具体功能分为三步:
步骤1:首先检测度量请求调度模块的完整性,对该模块进行完整性度量后与存储在TPM中的哈希值进行对比操作,对比通过之后,允许该请求调度模块运行;
步骤2:度量外部运算模块的完整性,对外部运算模块进行完整性度量通过之后,允许该外部运算模块运行;
步骤3:接收请求调度模块分配的请求,完成该请求的度量。当度量完成之后,发送消息给请求调度模块,删除这条度量的记录;接收外部运算模块发来的度量结果,与之前存储好的哈希值进行比对,如果对比一致,也将消息发送给请求调度模块并删除此记录。
其中,在上面各步骤中的“度量模块的完整性”,其做法如下:将模块进行分块求哈希,例如把模块分为等长的D1,D2…Dn,使用莫克尔树的方式将该模块的程序生成一个哈希值,并将得到的哈希值与之前存储在PCR中的值进行对比,如果相等则度量通过,否则度量不通过。
在步骤3中的“发送消息给请求调度模块”,其做法如下:当度量通过之后,将该请求对应的ID号发送给请求调度模块,即表示该次度量操作已经结束。
进一步地,在本发明的一个实施例中,外部运算模块采用SHA1杂凑算法,外部运算模块用于接收调度模块发来的对预设ID的度量请求,并对度量目标进行完整性度量,以在度量完成后,将度量结果和对应的ID号发送给TPM模块。
可以理解的是,本发明实施例的外部运算模块主要是密码算法,这里主要以完整性度量为主,以后可以很简单的做一些类似于加解密,数字签名等运算的扩展,只需要在存储模块中添加相应的算法即可,因此有很强的扩展性能。该模块采用SHA1杂凑算法,其代码存储在非易失性存储介质中。使用该外部运算模块实现的具体功能主要就是接收请求调度模块发来的对某ID的度量请求,对度量目标进行完整性度量,度量完成后,将度量结果和对应的ID号发送给TPM模块。
进一步地,在本发明的一个实施例中,请求调度模块,具体包括:接收度量请求,根据度量请求的性质由度量模块的算法确定该请求的等级,并给予请求一个非重复ID号;根据等级划分情况,查找此时空闲的最佳度量模块,根据分配算法将度量任务派给最佳度量模块;当度量开始时,给相应的运算模块的工作状态位置1;度量完成后,将对应运算模块的工作状态位置0。
其中,在本发明的一个实施例中,分配算法具体包括:根据度量模块中每个请求的等级和特殊需求划分两个队列,第一队列要求只能使用TPM模块进行测量操作,第二队列要求可以采用多种方式进行完整性度量;在队列分配完成后,找到请求对应的数据结构,取出安全等级和到达次序两个数据,求解安全等级A与到达次序O的倒数的k倍之和,数值大的会被优先给分配完整性运算模块;根据请求调度模块中运算模块的工作情况,只要运算模块有空闲,就将其对应队列的首元素分给请求调度模块。
具体地,本发明实施例的度量调度模块主要功能是完成对度量请求的分配工作。它可以直接接受度量请求,并根据度量请求的特征进行级别划分,划分的规则为:根据度量级别,将级别高的度量请求交给TPM模块亲自处理,级别较低的交给外部运算模块处理。对于每一个度量请求,在度量调度模块中都有一个数据结构与之相对应,其结构表示如图2所示。另外,调度模块中给每个运算模块编号并设置标志位F,F为1时代表该运算模块正在工作中;F为0时代表该运算模块空闲,可以分配任务。该数据结构如图3所示。度量调度模块的具体工作步骤如下:
步骤1:接收度量请求,根据度量请求的性质由度量模块的算法确定该请求的等级,并给予该请求一个非重复ID号。
步骤2:根据等级划分情况,查找此时空闲的最佳度量模块,根据分配算法将度量任务派给最佳度量模块。
步骤3:当度量开始时,给相应的运算模块的工作状态位置1;度量完成后,将对应运算模块的工作状态位置0;
其中,在步骤1中的“非重复ID号”,指的是与该模块中存储的所有请求ID都相异的序号。步骤2中的“等级划分”,其计算方法如下:根据接受的请求数据结构,设置等级划分函数f=S+L+T。S代表安全性,有高安全性要求就将该值赋1,否则赋值为0。L代表在系统中的层次,若请求来自操作系统层,就将该值置为1;若请求来自应用层,该值就置为0。T代表紧急性,若请求要在短时间尽快完成,则该值就置1,否则为0;最终求解f的值,确定该请求的等级(f值大的等级高)。
步骤2中的“分配算法”的算法思想如下:根据模块中每个请求的等级和特殊需求划分两个队列,队列的实际结构如图4所示:一个队列要求只能使用TPM模块进行测量操作(SID的值为0),另一个队列要求可以采用任意方式进行完整性度量(SID的值为1)。队列分配完成后,找到请求对应的数据结构,取出安全等级和到达次序两个数据,求解安全等级A与到达次序O的倒数的k倍之和(k为可调整的系数值)。数值大的会被优先给分配完整性运算模块。根据调度模块中运算模块的工作情况,只要运算模块有空闲,就将其对应队列的首元素分给该模块,大大减少了TPM的运算负担,提高了系统的度量效率。
根据本发明实施例提出的基于TPM模块的虚拟化度量方法,通过TPM模块度量外部的运算模块来保证安全可信,而这些运算模块也可以帮助参与之后的度量运算,降低了TPM模块的工作负担,提高了系统效率;通过请求调度模块的参与,将所有进行完整性度量的请求进行分类,对于不同类别的请求采取不同的处理措施,保证系统能更加合理、高效地处理度量请求;实现了利用TPM模块并行地处理请求,很大程度上完成了请求任务的分配,延长了模块的使用寿命,并且有效提高系统安全行和高效的完整性。
其次参照附图描述根据本发明实施例提出的基于TPM模块的虚拟化度量装置。
图7是本发明实施例的基于TPM模块的虚拟化度量装置的结构示意图。
如图7所示,该基于TPM模块的虚拟化度量装置10包括:对比模块100、第一发送模块200、第二发送模块300、获取模块400、判断模块500、第三发送模块600和更新模块700。
其中,对比模块100用于通过TPM模块的度量外部运算模块和请求调度模块将度量结果与之前存放在PCR中的值进行对比,且在不一致时,更新外部运算模块和请求调度模块后再次度量。第一发送模块200用于在一致时,通过TPM模块发送加密信息至CPU,使得CPU允许外部运算模块和请求调度模块启动。第二发送模块300用于在请求调度模块接受来自于操作系统层和应用层的度量请求后,通过调度算法将最需要度量的请求发送到与之相匹配的度量模块中。获取模块400用于在相匹配的度量模块接收相应度量请求之后,获取相应的度量结果,且对于外部度量模块,发送度量结果至TPM模块。判断模块500用于通过TPM模块查找之前存取在PCR的度量值进行对比,其中,如果一致,则度量通过,否则该请求度量失败。第三发送模块600用于通过TPM模块发送加密后的最终度量结果至CPU,使得CPU解密获取最终度量结果,以决定是否允许请求对应程序的运行。更新模块700用于通过TPM模块发送请求度量完成的消息给请求调度模块,使得请求调度模块删除对应请求的记录,并将相应运算模块的工作状态做更新,以保证运算模块可以接受下一个度量任务。本发明实施例的装置10可以有效减轻TPM模块作为可信根的负担,有效提高TPM的度量效率。
进一步地,在本发明的一个实施例中,TPM模块中保留其原本的密码算法和存储特性具体包括:检测单元、度量单元和接收单元。其中,检测单元用于检测度量请求调度模块的完整性,并对请求调度模块进行完整性度量后与存储在TPM中的哈希值进行对比操作,以在对比通过之后,允许请求调度模块运行。度量单元用于度量外部运算模块的完整性,并对外部运算模块进行完整性度量,以在通过之后,允许外部运算模块运行。接收单元用于接收度量请求调度模块分配的请求,以完成请求的度量,且当度量完成之后,发送消息给请求调度模块,并删除度量记录;接收外部运算模块发来的度量结果,并与之前存储好的哈希值进行比对,如果对比一致,也将消息发送给请求调度模块并删除此记录。
进一步地,在本发明的一个实施例中,外部运算模块采用SHA1杂凑算法,外部运算模块用于接收调度模块发来的对预设ID的度量请求,并对度量目标进行完整性度量,以在度量完成后,将度量结果和对应的ID号发送给TPM模块。
进一步地,在本发明的一个实施例中,请求调度模块具体包括:判断单元、查找单元和置位单元。其中,判断单元用于接收度量请求,根据度量请求的性质由度量模块的算法确定该请求的等级,并给予请求一个非重复ID号。查找单元用于根据等级划分情况,查找此时空闲的最佳度量模块,根据分配算法将度量任务派给最佳度量模块。置位单元用于当度量开始时,给相应的运算模块的工作状态位置1;度量完成后,将对应运算模块的工作状态位置0。
进一步地,在本发明的一个实施例中,分配算法具体包括:划分单元、第一分配单元和第二分配单元。其中,划分单元用于根据度量模块中每个请求的等级和特殊需求划分两个队列,第一队列要求只能使用TPM模块进行测量操作,第二队列要求可以采用多种方式进行完整性度量。第一分配单元用于在队列分配完成后,找到请求对应的数据结构,取出安全等级和到达次序两个数据,求解安全等级A与到达次序O的倒数的k倍之和,数值大的会被优先给分配完整性运算模块。第二分配单元根据请求调度模块中运算模块的工作情况,只要运算模块有空闲,就将其对应队列的首元素分给请求调度模块。
需要说明的是,前述对基于TPM模块的虚拟化度量方法实施例的解释说明也适用于该实施例的基于TPM模块的虚拟化度量装置,此处不再赘述。
根据本发明实施例提出的基于TPM模块的虚拟化度量装置,通过TPM模块度量外部的运算模块来保证安全可信,而这些运算模块也可以帮助参与之后的度量运算,降低了TPM模块的工作负担,提高了系统效率;通过请求调度模块的参与,将所有进行完整性度量的请求进行分类,对于不同类别的请求采取不同的处理措施,保证系统能更加合理、高效地处理度量请求;实现了利用TPM模块并行地处理请求,很大程度上完成了请求任务的分配,延长了模块的使用寿命,并且有效提高系统安全行和高效的完整性。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于TPM模块的虚拟化度量方法,其特征在于,包括以下步骤:
通过TPM模块的度量外部运算模块和请求调度模块将度量结果与之前存放在PCR中的值进行对比,且在不一致时,更新所述外部运算模块和所述请求调度模块后再次度量;
在一致时,通过所述TPM模块发送加密信息至CPU,使得所述CPU允许所述外部运算模块和所述请求调度模块启动;
在所述请求调度模块接受来自于操作系统层和应用层的度量请求后,通过调度算法将最需要度量的请求发送到与之相匹配的度量模块中;
在所述相匹配的度量模块接收相应度量请求之后,获取相应的度量结果,且对于外部度量模块,发送所述度量结果至所述TPM模块;
通过所述TPM模块查找之前存取在PCR的度量值进行对比,其中,如果一致,则度量通过,否则该请求度量失败;
通过所述TPM模块发送加密后的最终度量结果至所述CPU,使得所述CPU解密获取所述最终度量结果,以决定是否允许请求对应程序的运行;
通过所述TPM模块发送所述请求度量完成的消息给所述请求调度模块,使得所述请求调度模块删除对应请求的记录,并将相应运算模块的工作状态做更新,以保证运算模块可以接受下一个度量任务。
2.根据权利要求1所述的基于TPM模块的虚拟化度量方法,其特征在于,
所述TPM模块中保留其原本的密码算法和存储特性,具体包括:
检测度量所述请求调度模块的完整性,并对所述请求调度模块进行完整性度量后与存储在TPM中的哈希值进行对比操作,以在对比通过之后,允许所述请求调度模块运行;
度量所述外部运算模块的完整性,并对所述外部运算模块进行完整性度量,以在通过之后,允许所述外部运算模块运行;
接收度量所述请求调度模块分配的请求,以完成请求的度量,且当度量完成之后,发送消息给所述请求调度模块,并删除度量记录;接收所述外部运算模块发来的度量结果,并与之前存储好的哈希值进行比对,如果对比一致,也将消息发送给所述请求调度模块并删除此记录。
3.根据权利要求1所述的基于TPM模块的虚拟化度量方法,其特征在于,
所述外部运算模块采用SHA1杂凑算法,所述外部运算模块用于接收所述调度模块发来的对预设ID的度量请求,并对度量目标进行完整性度量,以在度量完成后,将度量结果和对应的ID号发送给所述TPM模块。
4.根据权利要求1所述的基于TPM模块的虚拟化度量方法,其特征在于,
所述请求调度模块,具体包括:
接收度量请求,根据所述度量请求的性质由所述度量模块的算法确定该请求的等级,并给予所述请求一个非重复ID号;
根据所述等级划分情况,查找此时空闲的最佳度量模块,根据分配算法将度量任务派给所述最佳度量模块;
当度量开始时,给相应的运算模块的工作状态位置1;度量完成后,将对应运算模块的工作状态位置0。
5.根据权利要求4所述的基于TPM模块的虚拟化度量方法,其特征在于,
所述分配算法具体包括:
根据所述度量模块中每个请求的等级和特殊需求划分两个队列,第一队列要求只能使用所述TPM模块进行测量操作,第二队列要求可以采用多种方式进行完整性度量;
在队列分配完成后,找到请求对应的数据结构,取出安全等级和到达次序两个数据,求解安全等级A与到达次序O的倒数的k倍之和,数值大的会被优先给分配完整性运算模块;
根据所述请求调度模块中所述运算模块的工作情况,只要所述运算模块有空闲,就将其对应队列的首元素分给所述请求调度模块。
6.一种基于TPM模块的虚拟化度量装置,其特征在于,包括:
对比模块,用于通过TPM模块的度量外部运算模块和请求调度模块将度量结果与之前存放在PCR中的值进行对比,且在不一致时,更新所述外部运算模块和所述请求调度模块后再次度量;
第一发送模块,用于在一致时,通过所述TPM模块发送加密信息至CPU,使得所述CPU允许所述外部运算模块和所述请求调度模块启动;
第二发送模块,用于在所述请求调度模块接受来自于操作系统层和应用层的度量请求后,通过调度算法将最需要度量的请求发送到与之相匹配的度量模块中;
获取模块,用于在所述相匹配的度量模块接收相应度量请求之后,获取相应的度量结果,且对于外部度量模块,发送所述度量结果至所述TPM模块;
判断模块,用于通过所述TPM模块查找之前存取在PCR的度量值进行对比,其中,如果一致,则度量通过,否则该请求度量失败;
第三发送模块,用于通过所述TPM模块发送加密后的最终度量结果至所述CPU,使得所述CPU解密获取所述最终度量结果,以决定是否允许请求对应程序的运行;
更新模块,用于通过所述TPM模块发送所述请求度量完成的消息给所述请求调度模块,使得所述请求调度模块删除对应请求的记录,并将相应运算模块的工作状态做更新,以保证运算模块可以接受下一个度量任务。
7.根据权利要求6所述的基于TPM模块的虚拟化度量装置,其特征在于,
所述TPM模块中保留其原本的密码算法和存储特性,具体包括:
检测单元,用于检测度量所述请求调度模块的完整性,并对所述请求调度模块进行完整性度量后与存储在TPM中的哈希值进行对比操作,以在对比通过之后,允许所述请求调度模块运行;
度量单元,用于度量所述外部运算模块的完整性,并对所述外部运算模块进行完整性度量,以在通过之后,允许所述外部运算模块运行;
接收单元,用于接收度量所述请求调度模块分配的请求,以完成请求的度量,且当度量完成之后,发送消息给所述请求调度模块,并删除度量记录;接收所述外部运算模块发来的度量结果,并与之前存储好的哈希值进行比对,如果对比一致,也将消息发送给所述请求调度模块并删除此记录。
8.根据权利要求6所述的基于TPM模块的虚拟化度量装置,其特征在于,
所述外部运算模块采用SHA1杂凑算法,所述外部运算模块用于接收所述调度模块发来的对预设ID的度量请求,并对度量目标进行完整性度量,以在度量完成后,将度量结果和对应的ID号发送给所述TPM模块。
9.根据权利要求6所述的基于TPM模块的虚拟化度量装置,其特征在于,
所述请求调度模块,具体包括:
判断单元,用于接收度量请求,根据所述度量请求的性质由所述度量模块的算法确定该请求的等级,并给予所述请求一个非重复ID号;
查找单元,用于根据所述等级划分情况,查找此时空闲的最佳度量模块,根据分配算法将度量任务派给所述最佳度量模块;
置位单元,用于当度量开始时,给相应的运算模块的工作状态位置1;度量完成后,将对应运算模块的工作状态位置0。
10.根据权利要求9所述的基于TPM模块的虚拟化度量装置,其特征在于,
所述分配算法具体包括:
划分单元,用于根据所述度量模块中每个请求的等级和特殊需求划分两个队列,第一队列要求只能使用所述TPM模块进行测量操作,第二队列要求可以采用多种方式进行完整性度量;
第一分配单元,用于在队列分配完成后,找到请求对应的数据结构,取出安全等级和到达次序两个数据,求解安全等级A与到达次序倒数O的k倍之和,数值大的会被优先给分配完整性运算模块;
第二分配单元,根据所述请求调度模块中所述运算模块的工作情况,只要所述运算模块有空闲,就将其对应队列的首元素分给所述请求调度模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810153962.9A CN108446564B (zh) | 2018-02-22 | 2018-02-22 | 基于tpm模块的虚拟化度量方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810153962.9A CN108446564B (zh) | 2018-02-22 | 2018-02-22 | 基于tpm模块的虚拟化度量方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108446564A CN108446564A (zh) | 2018-08-24 |
CN108446564B true CN108446564B (zh) | 2020-11-03 |
Family
ID=63192731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810153962.9A Active CN108446564B (zh) | 2018-02-22 | 2018-02-22 | 基于tpm模块的虚拟化度量方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446564B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344904A (zh) * | 2008-09-02 | 2009-01-14 | 中国科学院软件研究所 | 一种动态度量方法 |
US20140059680A1 (en) * | 2005-04-01 | 2014-02-27 | Microsoft Corporation | Local secure service partitions for operating system security |
US8959363B2 (en) * | 2010-06-03 | 2015-02-17 | Intel Corporation | Systems, methods, and apparatus to virtualize TPM accesses |
CN105608386A (zh) * | 2016-03-11 | 2016-05-25 | 成都三零嘉微电子有限公司 | 一种可信计算终端完整性度量、证明方法及装置 |
CN107169379A (zh) * | 2017-05-19 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于bmc和tcm进行完整性度量的方法和服务器 |
CN107451479A (zh) * | 2017-07-31 | 2017-12-08 | 浪潮(北京)电子信息产业有限公司 | 一种信任链的构建方法及系统 |
-
2018
- 2018-02-22 CN CN201810153962.9A patent/CN108446564B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140059680A1 (en) * | 2005-04-01 | 2014-02-27 | Microsoft Corporation | Local secure service partitions for operating system security |
CN101344904A (zh) * | 2008-09-02 | 2009-01-14 | 中国科学院软件研究所 | 一种动态度量方法 |
US8959363B2 (en) * | 2010-06-03 | 2015-02-17 | Intel Corporation | Systems, methods, and apparatus to virtualize TPM accesses |
CN105608386A (zh) * | 2016-03-11 | 2016-05-25 | 成都三零嘉微电子有限公司 | 一种可信计算终端完整性度量、证明方法及装置 |
CN107169379A (zh) * | 2017-05-19 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于bmc和tcm进行完整性度量的方法和服务器 |
CN107451479A (zh) * | 2017-07-31 | 2017-12-08 | 浪潮(北京)电子信息产业有限公司 | 一种信任链的构建方法及系统 |
Non-Patent Citations (1)
Title |
---|
移动终端高安全可信计算平台架构;刘建伟 等;《http://www.cnki.net/kcms/detail/34.1228.TN.20150428.1730.001.html》;20150428;第11-15页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108446564A (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7304118B2 (ja) | 自己監視ブロックチェーンのための安全な合意に基づくエンドースメント | |
CN113141782B (zh) | 在具有原始作品数据的区块链上存储和验证衍生作品数据 | |
US20230046789A1 (en) | Source data secured on blockchains | |
CN107657438B (zh) | 一种区块链生成方法、数据验证方法、节点及系统 | |
US9792374B2 (en) | Method and system for facilitating terminal identifiers | |
US10122693B2 (en) | Protocol based key management | |
CN110730225A (zh) | 基于区块链的物联网的数据处理方法、物联网及存储介质 | |
WO2018224635A1 (en) | Cryptographically verifiable data structure having multi-hop forward and backwards links and associated systems and methods | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
JP2020182214A (ja) | ブロックチェーンおよびオフチェーン装置の連携のための検証システムおよび方法 | |
CN109710406B (zh) | 数据分配及其模型训练方法、装置、及计算集群 | |
CN112099979B (zh) | 一种访问控制方法、装置、计算机设备和存储介质 | |
CN112347472B (zh) | 基于电力边缘计算的行为可信度量方法和装置 | |
CN116980230B (zh) | 一种信息安全保护方法及装置 | |
CN108881261B (zh) | 一种容器环境下基于区块链技术的服务认证方法及系统 | |
CN113888164A (zh) | 区块链交易池实现方法、装置、计算机设备和存储介质 | |
US20230261882A1 (en) | Image Management Method and Apparatus | |
CN111414640B (zh) | 秘钥访问控制方法和装置 | |
CN107451461B (zh) | 移动设备的设备指纹处理方法、装置、服务器及存储介质 | |
CN107924440B (zh) | 用于管理容器的方法、系统和计算机可读介质 | |
CN108446564B (zh) | 基于tpm模块的虚拟化度量方法及装置 | |
CN113886496A (zh) | 区块链的数据同步方法、装置、计算机设备和存储介质 | |
CN116192395A (zh) | 用于分散式数据存储的可信系统 | |
CN113282417A (zh) | 任务分配方法、装置、计算机设备和存储介质 | |
JP6155861B2 (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 |