一种基于自校验机制保护主机完整性的方法与系统与流程

文档序号:18601744发布日期:2019-09-03 22:43阅读:118来源:国知局
一种基于自校验机制保护主机完整性的方法与系统与流程

本发明涉及服务器安全技术领域,特别是一种基于自校验机制保护主机完整性的方法与系统。



背景技术:

可信计算组织(trustedcomputinggroup)基于可信计算技术,采用远程证明的方式保护主机的安全。远程证明方案通常包含远程挑战方、隐私pca和被挑战节点。作为被挑战节点的主机,其安全性通常是由远程挑战方来判断。

由于涉及到远程通讯,为了避免网络间的身份冒充和伪造,该方案必须引入隐私pca来颁发身份证书,利用tpm(trustedplatformmodule,可信平台模块)的身份证书来表征身份。该远程证明方案保护主机的安全时,必须引入pca和远程挑战方,在实际环境部署时,带来很大的系统依赖和模块耦合,远程挑战方必须事先收集被挑战方的基准值,且pca需要颁发aic证书给被挑战方。同时,远程证明方案对于单节点主机安全的场景,并未提供具有可扩展的优势,远程证明方案中的远程挑战方适用于多节点安全的保护,具有集中管理,方便扩展的特点。



技术实现要素:

本发明的目的是提供一种基于自校验机制保护主机完整性的方法与系统,旨在解决现有技术中采用远程证明方案时依赖远程挑战方和隐私pca的问题,实现不需要远程挑战方和隐私pca,就可基于可信计算体系中的完整性度量技术来保护主机的完整性,提高主机的安全性。

为达到上述技术目的,本发明提供了一种基于自校验机制保护主机完整性的方法,所述方法包括以下步骤:

s1、基于tpm芯片的nv空间,保存主机被保护对象的度量基准值;

s2、基于可信引导,实时度量主机被保护对象的度量值,通过比较度量基准值和实时度量值,来判断主机是否完整;

s3、通过可视化管理展示不完整对象列表。

优选地,所述步骤s1具体实施流程如下:

读取软件度量配置文件,遍历配置文件,判断该度量配置文件是否存在,不存在则退出,计算该度量配置文件的哈希值,作为每个度量文件的基准值存入数据库中,然后继续遍历度量配置文件;

当遍历结束后,计算上述软件度量配置文件的迭代哈希值,作为软件迭代基准值,存入tpm芯片的nv空间中;

遍历硬件日志,记录硬件度量哈希值,作为每个硬件对象的基准值存入数据库中;

遍历结束后,计算上述硬件度量文件的迭代哈希值,作为硬件迭代基准值,存入tpm芯片的nv空间中。

优选地,所述步骤s2具体实施流程如下:

逐个加载硬件对象,度量当前硬件对象,得到硬件度量值,记录到硬件日志中;

当加载完毕后,计算当前硬件迭代哈希值;

从tpm芯片的nv空间中读取硬件迭代基准值;

比较当前硬件迭代哈希值与硬件迭代基准值,如果两个值相同则硬件对象完整,记录硬件可信到tpm芯片的nv空间中,否则记录硬件不可信到tpm芯片的nv空间中;

遍历软件对象,计算软件对象的哈希值,存入软件度量日志中;

当遍历结束后,计算软件度量对象迭代哈希值;

从tpm芯片的nv空间中读取软件度量对象的迭代基准值;

比较软件对象迭代哈希值与迭代基准值,如果两个值相同,则软件对象完整,记录软件可信到tpm芯片的nv空间中,否则记录软件不可信到tpm芯片的nv空间中。

优选地,所述步骤s3具体实施流程如下:

检查tpm芯片nv空间中是否有硬件和软件的可信状态,如果有可信状态,则读取硬件可信状态;

如果硬件可信状态为不可信,则读取硬件度量日志,分别比较度量日志中的度量值与数据库中的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到硬件不可信列表;如果硬件可信状态为可信,则查找软件的可信状态;

读取软件可信状态,如果不可信,则读取软件度量日志,分别比较软件度量日志中的度量值与数据库中的软件对象的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到软件不可信列表;

硬件不可信列表中存储硬件不可信项,软件不可信列表中存储软件不可信项。

本发明还提供了一种基于自校验机制保护主机完整性的系统,所述系统包括:

完整性策略管理模块,用于基于tpm芯片的nv空间,保存主机被保护对象的度量基准值;

可信引导模块,用于基于可信引导,实时度量主机被保护对象的度量值,通过比较度量基准值和实时度量值,来判断主机是否完整;

完整性报告模块,用于通过可视化管理展示不完整对象列表。

优选地,所述完整性策略管理模块包括:

软件对象遍历单元,用于读取软件度量配置文件,遍历配置文件,判断该度量配置文件是否存在,不存在则退出,计算该度量配置文件的哈希值,作为每个度量文件的基准值存入数据库中,然后继续遍历度量配置文件;

软件基准值计算模块,用于当遍历结束后,计算上述软件度量配置文件的迭代哈希值,作为软件迭代基准值,存入tpm芯片的nv空间中;

硬件对象遍历单元,用于遍历硬件日志,记录硬件度量哈希值,作为每个硬件对象的基准值存入数据库中;

硬件基准值计算模块,用于遍历结束后,计算上述硬件度量文件的迭代哈希值,作为硬件迭代基准值,存入tpm芯片的nv空间中。

优选地,所述可信引导模块包括:

硬件对象加载单元,用于逐个加载硬件对象,度量当前硬件对象,得到硬件度量值,记录到硬件日志中;

当前硬件哈希值计算单元,用于当加载完毕后,计算当前硬件迭代哈希值;

硬件基准值读取单元,用于从tpm芯片的nv空间中读取硬件迭代基准值;

硬件哈希比较单元,用于比较当前硬件迭代哈希值与硬件迭代基准值,如果两个值相同则硬件对象完整,记录硬件可信到tpm芯片的nv空间中,否则记录硬件不可信到tpm芯片的nv空间中;

软件对象加载单元,用于加载软件对象,计算软件对象的哈希值,存入软件度量日志中;

当前软件哈希值计算单元,用于当遍历结束后,计算软件度量对象迭代哈希值;

软件基准值读取单元,用于从tpm芯片的nv空间中读取软件度量对象的迭代基准值;

软件哈希比较单元,用于比较软件对象迭代哈希值与迭代基准值,如果两个值相同,则软件对象完整,记录软件可信到tpm芯片的nv空间中,否则记录软件不可信到tpm芯片的nv空间中。

优选地,所述完整性报告模块包括:

可信状态读取单元,用于检查tpm芯片nv空间中是否有硬件和软件的可信状态,如果有可信状态,则读取可信状态;

硬件不可信单元,用于如果硬件可信状态为不可信,则读取硬件度量日志,分别比较度量日志中的度量值与数据库中的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到硬件不可信列表;

软件不可信单元,用于读取软件可信状态,如果不可信,则读取软件度量日志,分别比较软件度量日志中的度量值与数据库中的软件对象的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到软件不可信列表;

不可信项存储单元,用于硬件不可信列表中存储硬件不可信项,软件不可信列表中存储软件不可信项。

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

与现有技术相比,本发明基于可信计算中的完整性度量技术,存储被保护对象的度量基准值到主机的tpm芯片内的nv空间中,通过可信引导实时度量主机启动过程中主机的硬件和软件,得到被保护对象的实时度量值,通过比较度量基准值和实时度量值来判断主机的完整性状态,基于完整性报告查找不完整的对象列表,提供安全的可视化管理。此种自校验机制不需要远程挑战方和隐私pca,就可基于可信计算体系中的完整性度量技术来保护主机的完整性,提高主机的安全性,可方便的保护主机的硬件和软件的安全。

附图说明

图1为本发明实施例中所提供的一种基于自校验机制保护主机完整性的方法流程图;

图2为本发明实施例中所提供的一种完整性策略管理实施逻辑流程图;

图3为本发明实施例中所提供的一种可信引导实施逻辑流程图;

图4为本发明实施例中所提供的一种完整性报告实施逻辑流程图;

图5为本发明实施例中所提供的一种基于自校验机制保护主机完整性的系统结构框图。

具体实施方式

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

下面结合附图对本发明实施例所提供的一种基于自校验机制保护主机完整性的方法与系统进行详细说明。

如图1所示,本发明实施例公开了一种基于自校验机制保护主机完整性的方法,所述方法包括以下步骤:

s1、基于tpm芯片的nv空间,保存主机被保护对象的度量基准值;

s2、基于可信引导,实时度量主机被保护对象的度量值,通过比较度量基准值和实时度量值,来判断主机是否完整;

s3、通过可视化管理展示不完整对象列表。

本发明实施例中完整性度量技术是指对客体进行哈希计算(sha1、sha256、sm3),得到客体的哈希值,该哈希值表征了客体的完整性。当该客体未发生变化时,该客体的哈希值一直保持不变。当该客体遭受攻击或篡改时,该客体的哈希值肯定发生变化。通过比较两次客体的哈希值,即可得知该客体是否发生变化。

首先,基于tpm芯片的nv空间,保存主机被保护对象的度量基准值。设置主机上要保护的对象,分为软件保护对象和硬件保护对象,其中软件保护对象可自定义,硬件保护对象不支持自定义。软件保护对象通过软件度量配置文件进行设置。自动计算每个软件保护对象的度量值,作为基准值存入数据库中;计算软件保护对象的迭代哈希值,作为软件迭代基准值存入tpm芯片的nv(non-volatilerandomaccessmemory,非易失性随机访问存储器)的0x01800101空间中;根据硬件日志,读取硬件的当前度量值作为基准值存入数据库中;计算硬件保护对象的哈希值,作为硬件迭代基准值存入tpm芯片的nv的0x01800100空间中。如图2所示,其具体实施流程如下:

读取软件度量配置文件,遍历配置文件,判断该度量配置文件是否存在,不存在则退出,计算该度量配置文件的哈希值,作为每个度量文件的基准值存入数据库中,然后继续遍历度量配置文件;

当遍历结束后,计算上述软件度量配置文件的迭代哈希值,作为软件迭代基准值,存入tpm芯片的nv空间中;

遍历硬件日志,记录硬件度量哈希值,作为每个硬件对象的基准值存入数据库中;

遍历结束后,计算上述硬件度量文件的迭代哈希值,作为硬件迭代基准值,存入tpm芯片的nv空间中。

其次,基于可信引导,实时度量主机被保护对象的度量值,通过比较度量基准值和实时度量值,来判断主机是否完整。在主机启动过程中进行系统引导和完整性检测。在系统引导阶段,分别进行硬件完整性检测和软件完整性检测。在主机加载硬件时,计算硬件的迭代哈希值,然后从tpm芯片中的nv的0x01800100空间中读取硬件的迭代基准值,如果两个值相同则硬件对象完整,即可信,否则硬件对象不完整,即不可信。在主机加载操作系统时,分别计算软件度量配置文件中的度量对象(软件保护对象),记录到软件度量日志中。当软件加载完毕时,计算软件的迭代哈希值,然后从tpm芯片的nv的0x01800101空间中读取软件的迭代哈希值,如果两个值相同,则软件对象完整,否则软件对象不完整。如图3所示,其具体实施流程如下:

逐个加载硬件对象,度量当前硬件对象,得到硬件度量值,记录到硬件日志中;

当加载完毕后,计算当前硬件迭代哈希值;

从tpm芯片的nv空间中读取硬件迭代基准值;

比较当前硬件迭代哈希值与硬件迭代基准值,如果两个值相同则硬件对象完整,记录硬件可信到tpm芯片的nv空间中,否则记录硬件不可信到tpm芯片的nv空间中;

遍历软件对象,计算软件对象的哈希值,存入软件度量日志中;

当遍历结束后,计算软件度量对象迭代哈希值;

从tpm芯片的nv空间中读取软件度量对象的迭代基准值;

比较软件对象迭代哈希值与迭代基准值,如果两个值相同,则软件对象完整,记录软件可信到tpm芯片的nv空间中,否则记录软件不可信到tpm芯片的nv空间中。

最后,通过可视化管理展示不完整对象列表。当系统启动后,报告主机的硬件和软件的完整性。当主机的硬件不完整时,逐个比较硬件度量日志中的度量值,与数据库保存的基准值,查找出不相同的硬件度量对象;当主机的软件不完整时,逐个比较软件度量日志中的度量值,与数据库保存的基准值,查找出不同的软件度量对象。如图4所示,其具体实施流程如下:

检查tpm芯片nv空间中是否有硬件和软件的可信状态,如果有可信状态,则读取硬件可信状态;

如果硬件可信状态为不可信,则读取硬件度量日志,分别比较度量日志中的度量值与数据库中的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到硬件不可信列表;如果硬件可信状态为可信,则查找软件的可信状态;

读取软件可信状态,如果不可信,则读取软件度量日志,分别比较软件度量日志中的度量值与数据库中的软件对象的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到软件不可信列表;

硬件不可信列表中存储硬件不可信项,软件不可信列表中存储软件不可信项。

本发明实施例基于可信计算中的完整性度量技术,存储被保护对象的度量基准值到主机的tpm芯片内的nv空间中,通过可信引导实时度量主机启动过程中主机的硬件和软件,得到被保护对象的实时度量值,通过比较度量基准值和实时度量值来判断主机的完整性状态,基于完整性报告查找不完整的对象列表,提供安全的可视化管理。此种自校验机制不需要远程挑战方和隐私pca,就可基于可信计算体系中的完整性度量技术来保护主机的完整性,提高主机的安全性,可方便的保护主机的硬件和软件的安全。

如图5所示,本发明实施例还公开了一种基于自校验机制保护主机完整性的系统,所述系统包括:

完整性策略管理模块,用于基于tpm芯片的nv空间,保存主机被保护对象的度量基准值;

可信引导模块,用于基于可信引导,实时度量主机被保护对象的度量值,通过比较度量基准值和实时度量值,来判断主机是否完整;

完整性报告模块,用于通过可视化管理展示不完整对象列表。

所述完整性策略管理模块包括:

软件对象遍历单元,用于读取软件度量配置文件,遍历配置文件,判断该度量配置文件是否存在,不存在则退出,计算该度量配置文件的哈希值,作为每个度量文件的基准值存入数据库中,然后继续遍历度量配置文件;

软件基准值计算模块,用于当遍历结束后,计算上述软件度量配置文件的迭代哈希值,作为软件迭代基准值,存入tpm芯片的nv空间中;

硬件对象遍历单元,用于遍历硬件日志,记录硬件度量哈希值,作为每个硬件对象的基准值存入数据库中;

硬件基准值计算模块,用于遍历结束后,计算上述硬件度量文件的迭代哈希值,作为硬件迭代基准值,存入tpm芯片的nv空间中。

所述可信引导模块包括:

硬件对象加载单元,用于逐个加载硬件对象,度量当前硬件对象,得到硬件度量值,记录到硬件日志中;

当前硬件哈希值计算单元,用于当加载完毕后,计算当前硬件迭代哈希值;

硬件基准值读取单元,用于从tpm芯片的nv空间中读取硬件迭代基准值;

硬件哈希比较单元,用于比较当前硬件迭代哈希值与硬件迭代基准值,如果两个值相同则硬件对象完整,记录硬件可信到tpm芯片的nv空间中,否则记录硬件不可信到tpm芯片的nv空间中;

软件对象加载单元,用于加载软件对象,计算软件对象的哈希值,存入软件度量日志中;

当前软件哈希值计算单元,用于当遍历结束后,计算软件度量对象迭代哈希值;

软件基准值读取单元,用于从tpm芯片的nv空间中读取软件度量对象的迭代基准值;

软件哈希比较单元,用于比较软件对象迭代哈希值与迭代基准值,如果两个值相同,则软件对象完整,记录软件可信到tpm芯片的nv空间中,否则记录软件不可信到tpm芯片的nv空间中。

所述完整性报告模块包括:

可信状态读取单元,用于检查tpm芯片nv空间中是否有硬件和软件的可信状态,如果有可信状态,则读取可信状态;

硬件不可信单元,用于如果硬件可信状态为不可信,则读取硬件度量日志,分别比较度量日志中的度量值与数据库中的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到硬件不可信列表;

软件不可信单元,用于读取软件可信状态,如果不可信,则读取软件度量日志,分别比较软件度量日志中的度量值与数据库中的软件对象的基准值是否相同,如果度量值与基准值不同,则记录该度量对象到软件不可信列表;

不可信项存储单元,用于硬件不可信列表中存储硬件不可信项,软件不可信列表中存储软件不可信项。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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