一种基于tpm芯片的平台完整性校验方法

文档序号:8396128阅读:554来源:国知局
一种基于tpm芯片的平台完整性校验方法
【专利说明】一种基于TPM芯片的平台完整性校验方法
[0001]
技术领域
[0002]本发明涉及一种完整性校验方法,具体地说是一种基于TPM芯片的平台完整性校验方法。
【背景技术】
[0003]所谓完整性校验,其实是一比对过程,将当前信息与提供的、被认为是完整的信息比对,如果一致,则认为当前信息完整,否则,则认为当前信息受到了篡改。搭配有TPM芯片的平台可以利用TPM芯片中的PCR (Platform Configurat1n Register,平台配置寄存器)的扩展功能(Extend),将将要执行部分的摘要值扩展至PCR,因此,可以建立从B1S到BootLoader最后到OS的一条完整的度量链来反映当前平台的信息。
[0004]在传统的完整性校验过程中,首先由用户建立完整的信息,将其存储起来,每次系统启动,读取指定PCR的值获得当前平台信息,将其与完整的信息比对来完成完整性校验。这一过程有两大安全风险,一是完整性信息的存放,二是校验的环境。如果完整性信息被篡改,或是校验过程受到监听或是攻击,则这一过程将不再安全,系统的完整性也得不到保障。

【发明内容】

[0005]本发明的技术任务是针对上述现有技术暴露的安全隐患,提供一种基于TPM芯片的平台完整性校验方法。
[0006]本发明的技术任务是按以下方式实现的:一种基于TPM芯片的平台完整性校验方法,其特点是将平台完整性与TPM密钥的可用性绑定在一起,内核文件由TPM芯片产生的密钥进行加密,密钥的可用性直接决定内核文件是否能被解密加载。
[0007]作为优选,密钥授权策略以文件形式保存,在平台完整性受到破坏时,可选择以password的方式授权使用密钥。
[0008]TPM芯片中有专用密码学模块,完成数据的加密解密,可以防止外部恶意程序监测加解密过程。同时,TPM采用“存储保护对象体系”,任何存放到芯片外部的对象在生成时都会有一个保护密钥,密钥的敏感数据会受到该密钥的加密保护。因此TPM生成的密钥的敏感数据可以受到芯片的保护防止被外部获取。
[0009]优选TPM2.0 芯片。TPM2.0 中引入了增强型授权(Enhanced Authorizat1n),可以利用当前PCR的值作为对象的授权值。如果当前平台环境与密钥生成时的环境不一样,则授权失败,无法使用密钥来解密内核文件,无法启动OS。
[0010]作为优选,上述方法包括以下步骤:
(一)根据用户需求选择PCR,根据当前平台中的PCR值生成授权策略;
(二)以Owner的身份创建用于加密密钥的父密钥; (三)创建加密密钥symKey,密钥的授权值设为步骤(一)中获得的授权策略,并将生成的密钥加载至TPM中;
(四)利用symKey来加密Linux的内核文件;
(五)系统重启,如果平台的完整性未受到破坏,BootLoader可使用symKey解密被加密的内核文件,完成OS的引导;如果平台完整性受到破坏,BootLoader无法使用symKey解密被加密的内核文件,OS无法启动。
[0011]步骤(五)中,如果平台完整性受到破坏,可输入授权策略,如果输入的授权策略正确,BootLoader使用symKey解密被加密的内核文件,完成OS的引导。
[0012]作为优选,用于实现上述方法的平台完整性校验方法模块包括:(I) PCR授权策略模块;(2)密钥生成模;(3)内核文件加密、解密模块。其中:
(1)PCR授权策略模块:可根据用户需求选择PCR,根据当前平台中的PCR值生成授权策略;
(2)密钥生成模块:密钥的授权值与当前平台信息绑定,只有平台的状态与密钥生成时的状态一致,密钥才能被使用;
(3)内核文件加密、解密模块:使用TPM生成的密钥加密、解密文件,TPM芯片使用“存储对象保护体系”保护密钥的完整性,通过授权来控制密钥的可用性。
[0013]与现有技术相比,本发明的基于TPM芯片的平台完整性校验方法利用TPM的增强型授权将平台的完整性与密钥绑定,平台遭受篡改则意味着密钥无法被用于解密内核文件。同时,在生成策略时,管理员可选择保存策略数据,当平台完整性受到破坏时,管理员可以用策略数据正常启动OS,给了用户更大的灵活性。
【附图说明】
[0014]附图1是本发明基于TPM芯片的平台完整性校验方法的流程图。
【具体实施方式】
[0015]参照说明书附图以具体实施例对本发明的基于TPM芯片的平台完整性校验方法作以下详细地说明。
[0016]实施例:
如附图1所示,本发明的基于TPM芯片的平台完整性校验方法,包括以下步骤:
(I)获取TPM芯片的所有者权限。
[0017](2)开始一个 TPM_SE_P0LICY 类型的授权会话 policySess1n,利用 PolicyPCR 命令将当前所需的PCR值扩展至policySess1n ->policyDigest。
[0018](3)利用PolicyGetDigest命令获取含有当前PCR信息的授权策略。
[0019](4)以Owner的身份创建一个Primary 0b ject作为加密密钥的父密钥(保护密钥)。
[0020](5)创建加密密钥symKey,密钥的授权值设为第三步中获得的授权策略,将生成的密钥加载至TPM中。
[0021](6)开始一个 TPM_SE_P0LICY 类型的授权会话 policySess1nl,利用 PolicyPCR命令将第一步中选定的PCR值扩展至policySess1nl->policyDigest,由于在此过程中PCR的值未受到篡改,policySess1nl->policyDigest与symKey的授权值一致,可以利用symKey来加密Linux的内核文件。
[0022](7)系统重启,BootLoader 开启一个 TPM_SE_POLICY 类型的授权会话policySess1n2,PolicyPCR命令将第一步中选定的PCR值扩展至policySess1n2->policyDigest,如果平台的完整性未受到破坏,则poIicySess1n2->poIicyDigest 与 symKey 的授权值一致,BootLoader 可使用symKey解密被加密的内核文件,完成OS的引导。如果平台完整性受到破坏,则po I icySess1n2->po Ii cyDigest 与 symKey 的授权值不一致,BootLoader 无法使用 symKey解密被加密的内核文件,OS无法启动;或者输入授权策略,如果输入的授权策略正确,BootLoader使用symKey解密被加密的内核文件,完成OS的引导。
[0023]下面,以特定TPM安全芯片对本发明方法进行进一步的详细说明。
[0024]选用国民技术的Z32H320TC安全芯片,在TPM_RH_OWNER等级下生成RSA算法的Primary Object一objl,生成的objl的敏感数据不被返回,objI无需使用TPM2_Load加载。
[0025]使用TPM2_StartAuthSess1n命令开启一个授权会话,会话的类型TPM_SE_POLICY,该命令执行成功后会返回会话句柄sess1nHandlel。
[0026]向TPM芯片发送TPM2_PoIicyPCR命令,该命令中policySess1n使用sess1nHandlel,TPML_PCR_SELECT1N 选择 PCRl,PCR2,PCR4。
[0027]向 TPM 芯片发送 TPM2_PolicyGetDigest 命令,policySess1n 选择sess1nHandlel,该命令执行成功后返回policyDigestl,将其保存。
[0028]使用TPM2_Create命令,以objl为父密钥创建一个SM4的对称密钥symKeyl,其inSensitive 中的 userAuth 和 inPublic 中的 authPolicy 设为 policyDigestl,密钥创建成功后将返回symKeyl的公开数据outPublic和私有数据outPrivate,将这两个部分作为TPM2_Load命令的参数传递给TPM芯片,执行成功后symKeyl被加载进TPM芯片,返回symKeyl 的句柄 keyHandlel。
[0029]使用TPM2_StartAuthSess1n命令开启一个授权会话,会话的类型为TPM_SE_POLICY,命令执行成功后返回会话句柄sess1nHandle2。
[0030]向TPM芯片发送TPM2_PoIicyPCR命令,该命令中的policySess1n使用sess1nHandle2,TPML_PCR_SELECT10N 选择 PCRl,PCR2,PCR4。
[0031]用TPM2_EncryptDecypt 加密内核文件,命令中的 keyHandle 使用 keyHandlel,授权回话的句柄选择sess1nHandle2,decrypt选择NO。
[0032]修改BootLoader的配置文件,将symKeyl和被加密的内核文件加入如其中。
[0033]系统重启后,在BootLoader引导内核文件之前,使用TPM2_Load命令将symKeyl加载至TPM芯片中,成功执行后返回密钥的句柄keyHandle2。
[0034]使用TPM2_StartAuthSess1n命令开启一个授权会话,会话的类型为TPM_SE_POLICY,命令执行成功后返回会话句柄sess1nHandle3。向TPM芯片发送TPM2_PoIicyPCR命令,该命令中的 policySess1n 使用 sess1nHandle3,TPML_PCR_SELECT10N 选择PCRl,PCR2,PCR4。如果PCRl,PCR2,PCR4中的与生成密钥symKeyl时相同,则在TPM2_EncryptDecypt命令中可以使用symKeyl来解密内核文件,否则会返回授权失败的错误。
[0035]内核文件解密成功后系统可以正常加载。
【主权项】
1.一种基于TPM芯片的平台完整性校验方法,其特征在于:该方法将平台完整性与TPM密钥的可用性绑定在一起,内核文件由TPM芯片产生的密钥进行加密,密钥的可用性直接决定内核文件是否能被解密加载。
2.根据权利要求1所述的基于TPM芯片的平台完整性校验方法,其特征在于:密钥授权策略以文件形式保存,在平台完整性受到破坏时,可选择以password的方式授权使用密钥。
3.根据权利要求1所述的基于TPM芯片的平台完整性校验方法,其特征在于:包括以下步骤: (一)根据用户需求选择PCR,根据当前平台中的PCR值生成授权策略; (二)以Owner的身份创建用于加密密钥的父密钥; (三)创建加密密钥symKey,密钥的授权值设为步骤(一)中获得的授权策略,并将生成的密钥加载至TPM中; (四)利用symKey来加密Linux的内核文件; (五)系统重启,如果平台的完整性未受到破坏,BootLoader可使用symKey解密被加密的内核文件,完成OS的引导;如果平台完整性受到破坏,BootLoader无法使用symKey解密被加密的内核文件,OS无法启动。
4.根据权利要求3所述的基于TPM芯片的平台完整性校验方法,其特征在于:步骤ffi)中,如果平台完整性受到破坏,可输入授权策略,如果输入的授权策略正确,BootLoader使用symKey解密被加密的内核文件,完成OS的引导。
【专利摘要】本发明公开了一种基于TPM芯片的平台完整性校验方法,属于完整性校验方法领域。该方法将平台完整性与TPM密钥的可用性绑定在一起,内核文件由TPM芯片产生的密钥进行加密,密钥的可用性直接决定内核文件是否能被解密加载。与现有技术相比,本发明方法将平台的完整性与密钥绑定,平台遭受篡改则意味着密钥无法被用于解密内核文件;同时,在生成策略时,管理员可选择保存策略数据,当平台完整性受到破坏时,管理员可以用策略数据正常启动OS,给了用户更大的灵活性,具有很好的推广应用价值。
【IPC分类】G06F21-62
【公开号】CN104715208
【申请号】CN201510118462
【发明人】许鑫
【申请人】浪潮集团有限公司
【公开日】2015年6月17日
【申请日】2015年3月18日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1