CN104715208A - 一种基于tpm芯片的平台完整性校验方法 - Google Patents
一种基于tpm芯片的平台完整性校验方法 Download PDFInfo
- Publication number
- CN104715208A CN104715208A CN201510118462.8A CN201510118462A CN104715208A CN 104715208 A CN104715208 A CN 104715208A CN 201510118462 A CN201510118462 A CN 201510118462A CN 104715208 A CN104715208 A CN 104715208A
- Authority
- CN
- China
- Prior art keywords
- platform
- key
- completeness
- tpm
- kernel file
- 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.)
- Pending
Links
Abstract
本发明公开了一种基于TPM芯片的平台完整性校验方法,属于完整性校验方法领域。该方法将平台完整性与TPM密钥的可用性绑定在一起,内核文件由TPM芯片产生的密钥进行加密,密钥的可用性直接决定内核文件是否能被解密加载。与现有技术相比,本发明方法将平台的完整性与密钥绑定,平台遭受篡改则意味着密钥无法被用于解密内核文件;同时,在生成策略时,管理员可选择保存策略数据,当平台完整性受到破坏时,管理员可以用策略数据正常启动OS,给了用户更大的灵活性,具有很好的推广应用价值。
Description
技术领域
本发明涉及一种完整性校验方法,具体地说是一种基于TPM芯片的平台完整性校验方法。
背景技术
所谓完整性校验,其实是一比对过程,将当前信息与提供的、被认为是完整的信息比对,如果一致,则认为当前信息完整,否则,则认为当前信息受到了篡改。搭配有TPM芯片的平台可以利用TPM芯片中的PCR(Platform Configuration Register,平台配置寄存器)的扩展功能(Extend),将将要执行部分的摘要值扩展至PCR,因此,可以建立从BIOS到BootLoader最后到OS的一条完整的度量链来反映当前平台的信息。
在传统的完整性校验过程中,首先由用户建立完整的信息,将其存储起来,每次系统启动,读取指定PCR的值获得当前平台信息,将其与完整的信息比对来完成完整性校验。这一过程有两大安全风险,一是完整性信息的存放,二是校验的环境。如果完整性信息被篡改,或是校验过程受到监听或是攻击,则这一过程将不再安全,系统的完整性也得不到保障。
发明内容
本发明的技术任务是针对上述现有技术暴露的安全隐患,提供一种基于TPM芯片的平台完整性校验方法。
本发明的技术任务是按以下方式实现的:一种基于TPM芯片的平台完整性校验方法,其特点是将平台完整性与TPM密钥的可用性绑定在一起,内核文件由TPM芯片产生的密钥进行加密,密钥的可用性直接决定内核文件是否能被解密加载。
作为优选,密钥授权策略以文件形式保存,在平台完整性受到破坏时,可选择以password的方式授权使用密钥。
TPM芯片中有专用密码学模块,完成数据的加密解密,可以防止外部恶意程序监测加解密过程。同时,TPM采用“存储保护对象体系”,任何存放到芯片外部的对象在生成时都会有一个保护密钥,密钥的敏感数据会受到该密钥的加密保护。因此TPM生成的密钥的敏感数据可以受到芯片的保护防止被外部获取。
优选TPM2.0芯片。TPM2.0中引入了增强型授权(Enhanced Authorization),可以利用当前PCR的值作为对象的授权值。如果当前平台环境与密钥生成时的环境不一样,则授权失败,无法使用密钥来解密内核文件,无法启动OS。
作为优选,上述方法包括以下步骤:
(一) 根据用户需求选择PCR,根据当前平台中的PCR值生成授权策略;
(二)以Owner的身份创建用于加密密钥的父密钥;
(三)创建加密密钥symKey,密钥的授权值设为步骤(一)中获得的授权策略,并将生成的密钥加载至TPM中;
(四)利用symKey来加密Linux的内核文件;
(五)系统重启,如果平台的完整性未受到破坏,BootLoader可使用symKey解密被加密的内核文件,完成OS的引导;如果平台完整性受到破坏, BootLoader无法使用symKey解密被加密的内核文件,OS无法启动。
步骤(五)中,如果平台完整性受到破坏,可输入授权策略,如果输入的授权策略正确,BootLoader使用symKey解密被加密的内核文件,完成OS的引导。
作为优选,用于实现上述方法的平台完整性校验方法模块包括:(1) PCR授权策略模块;(2) 密钥生成模;(3) 内核文件加密、解密模块。其中:
(1)PCR授权策略模块:可根据用户需求选择PCR,根据当前平台中的PCR值生成授权策略;
(2)密钥生成模块:密钥的授权值与当前平台信息绑定,只有平台的状态与密钥生成时的状态一致,密钥才能被使用;
(3)内核文件加密、解密模块:使用TPM生成的密钥加密、解密文件,TPM芯片使用“存储对象保护体系”保护密钥的完整性,通过授权来控制密钥的可用性。
与现有技术相比,本发明的基于TPM芯片的平台完整性校验方法利用TPM的增强型授权将平台的完整性与密钥绑定,平台遭受篡改则意味着密钥无法被用于解密内核文件。同时,在生成策略时,管理员可选择保存策略数据,当平台完整性受到破坏时,管理员可以用策略数据正常启动OS,给了用户更大的灵活性。
附图说明
附图1是本发明基于TPM芯片的平台完整性校验方法的流程图。
具体实施方式
参照说明书附图以具体实施例对本发明的基于TPM芯片的平台完整性校验方法作以下详细地说明。
实施例:
如附图1所示,本发明的基于TPM芯片的平台完整性校验方法,包括以下步骤:
(1)获取TPM芯片的所有者权限。
(2)开始一个TPM_SE_POLICY类型的授权会话policySession,利用PolicyPCR命令将当前所需的PCR值扩展至policySession ->policyDigest。
(3) 利用PolicyGetDigest命令获取含有当前PCR信息的授权策略。
(4)以Owner的身份创建一个Primary Object作为加密密钥的父密钥(保护密钥)。
(5)创建加密密钥symKey,密钥的授权值设为第三步中获得的授权策略,将生成的密钥加载至TPM中。
(6)开始一个TPM_SE_POLICY类型的授权会话policySession1,利用PolicyPCR命令将第一步中选定的PCR值扩展至policySession1->policyDigest,由于在此过程中PCR的值未受到篡改,policySession1->policyDigest与symKey的授权值一致,可以利用symKey来加密Linux的内核文件。
(7)系统重启,BootLoader开启一个TPM_SE_POLICY类型的授权会话policySession2,PolicyPCR命令将第一步中选定的PCR值扩展至policySession2->policyDigest,如果平台的完整性未受到破坏,则policySession2->policyDigest与symKey的授权值一致,BootLoader可使用symKey解密被加密的内核文件,完成OS的引导。如果平台完整性受到破坏,则policySession2->policyDigest与symKey的授权值不一致,BootLoader无法使用symKey解密被加密的内核文件,OS无法启动;或者输入授权策略,如果输入的授权策略正确,BootLoader使用symKey解密被加密的内核文件,完成OS的引导。
下面,以特定TPM安全芯片对本发明方法进行进一步的详细说明。
选用国民技术的Z32H320TC安全芯片,在TPM_RH_OWNER等级下生成RSA算法的Primary Object—obj1,生成的obj1的敏感数据不被返回,obj1无需使用TPM2_Load加载。
使用TPM2_StartAuthSession命令开启一个授权会话,会话的类型TPM_SE_POLICY,该命令执行成功后会返回会话句柄sessionHandle1。
向TPM芯片发送TPM2_PolicyPCR命令,该命令中policySession使用sessionHandle1,TPML_PCR_SELECTION选择PCR1,PCR2,PCR4。
向TPM芯片发送TPM2_PolicyGetDigest命令,policySession选择sessionHandle1,该命令执行成功后返回policyDigest1,将其保存。
使用TPM2_Create命令,以obj1为父密钥创建一个SM4的对称密钥symKey1,其inSensitive中的userAuth和inPublic中的authPolicy设为policyDigest1,密钥创建成功后将返回symKey1的公开数据outPublic和私有数据outPrivate,将这两个部分作为TPM2_Load命令的参数传递给TPM芯片,执行成功后symKey1被加载进TPM芯片,返回symKey1的句柄keyHandle1。
使用TPM2_StartAuthSession命令开启一个授权会话,会话的类型为TPM_SE_POLICY,命令执行成功后返回会话句柄sessionHandle2。
向TPM芯片发送TPM2_PolicyPCR命令,该命令中的policySession使用sessionHandle2,TPML_PCR_SELECTION选择PCR1,PCR2,PCR4。
用TPM2_EncryptDecypt加密内核文件,命令中的keyHandle使用keyHandle1,授权回话的句柄选择sessionHandle2,decrypt选择NO。
修改BootLoader的配置文件,将symKey1和被加密的内核文件加入如其中。
系统重启后,在BootLoader引导内核文件之前,使用TPM2_Load命令将symKey1加载至TPM芯片中,成功执行后返回密钥的句柄keyHandle2。
使用TPM2_StartAuthSession命令开启一个授权会话,会话的类型为TPM_SE_POLICY,命令执行成功后返回会话句柄sessionHandle3。向TPM芯片发送TPM2_PolicyPCR命令,该命令中的policySession使用sessionHandle3,TPML_PCR_SELECTION选择PCR1,PCR2,PCR4。如果PCR1,PCR2,PCR4中的与生成密钥symKey1时相同,则在TPM2_EncryptDecypt命令中可以使用symKey1来解密内核文件,否则会返回授权失败的错误。
内核文件解密成功后系统可以正常加载。
Claims (4)
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芯片的平台完整性校验方法,其特征在于:步骤(五)中,如果平台完整性受到破坏,可输入授权策略,如果输入的授权策略正确,BootLoader使用symKey解密被加密的内核文件,完成OS的引导。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510118462.8A CN104715208A (zh) | 2015-03-18 | 2015-03-18 | 一种基于tpm芯片的平台完整性校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510118462.8A CN104715208A (zh) | 2015-03-18 | 2015-03-18 | 一种基于tpm芯片的平台完整性校验方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104715208A true CN104715208A (zh) | 2015-06-17 |
Family
ID=53414524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510118462.8A Pending CN104715208A (zh) | 2015-03-18 | 2015-03-18 | 一种基于tpm芯片的平台完整性校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104715208A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250760A (zh) * | 2016-07-26 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种基于TPM2.0芯片的U‑Boot可信启动方法 |
CN106803046A (zh) * | 2017-01-22 | 2017-06-06 | 济南浪潮高新科技投资发展有限公司 | 一种基于外部存储的度量日志加密方法 |
CN106934289A (zh) * | 2015-12-30 | 2017-07-07 | 北京展讯高科通信技术有限公司 | 校验及形成签名映像的方法 |
CN107688746A (zh) * | 2017-08-30 | 2018-02-13 | 浪潮(北京)电子信息产业有限公司 | 一种内核文件的加载方法和装置 |
CN110532783A (zh) * | 2019-08-21 | 2019-12-03 | 西安四叶草信息技术有限公司 | 数据防篡改方法、装置、设备和存储介质 |
CN110543768A (zh) * | 2019-08-23 | 2019-12-06 | 苏州浪潮智能科技有限公司 | 一种在bios中控制可信根的方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576944A (zh) * | 2008-11-20 | 2009-11-11 | 武汉大学 | 基于可信平台模块的计算机安全启动系统 |
CN102136044A (zh) * | 2010-07-14 | 2011-07-27 | 华为技术有限公司 | 安全启动方法、装置及计算机系统 |
CN102595213A (zh) * | 2012-02-22 | 2012-07-18 | 深圳创维-Rgb电子有限公司 | 可信电视终端安全认证方法和系统 |
CN102646077A (zh) * | 2012-03-28 | 2012-08-22 | 山东超越数控电子有限公司 | 一种基于可信密码模块的全盘加密的方法 |
CN103038745A (zh) * | 2010-05-21 | 2013-04-10 | 惠普发展公司,有限责任合伙企业 | 扩展完整性测量 |
US20140373135A1 (en) * | 2010-02-22 | 2014-12-18 | Microsoft Corporation | Authorization logic in memory constrained security device |
CN104376269A (zh) * | 2014-12-11 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 一种基于可信密码模块的文件加密方法 |
-
2015
- 2015-03-18 CN CN201510118462.8A patent/CN104715208A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576944A (zh) * | 2008-11-20 | 2009-11-11 | 武汉大学 | 基于可信平台模块的计算机安全启动系统 |
US20140373135A1 (en) * | 2010-02-22 | 2014-12-18 | Microsoft Corporation | Authorization logic in memory constrained security device |
CN103038745A (zh) * | 2010-05-21 | 2013-04-10 | 惠普发展公司,有限责任合伙企业 | 扩展完整性测量 |
CN102136044A (zh) * | 2010-07-14 | 2011-07-27 | 华为技术有限公司 | 安全启动方法、装置及计算机系统 |
CN102595213A (zh) * | 2012-02-22 | 2012-07-18 | 深圳创维-Rgb电子有限公司 | 可信电视终端安全认证方法和系统 |
CN102646077A (zh) * | 2012-03-28 | 2012-08-22 | 山东超越数控电子有限公司 | 一种基于可信密码模块的全盘加密的方法 |
CN104376269A (zh) * | 2014-12-11 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 一种基于可信密码模块的文件加密方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934289A (zh) * | 2015-12-30 | 2017-07-07 | 北京展讯高科通信技术有限公司 | 校验及形成签名映像的方法 |
CN106250760A (zh) * | 2016-07-26 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种基于TPM2.0芯片的U‑Boot可信启动方法 |
CN106803046A (zh) * | 2017-01-22 | 2017-06-06 | 济南浪潮高新科技投资发展有限公司 | 一种基于外部存储的度量日志加密方法 |
CN107688746A (zh) * | 2017-08-30 | 2018-02-13 | 浪潮(北京)电子信息产业有限公司 | 一种内核文件的加载方法和装置 |
CN110532783A (zh) * | 2019-08-21 | 2019-12-03 | 西安四叶草信息技术有限公司 | 数据防篡改方法、装置、设备和存储介质 |
CN110543768A (zh) * | 2019-08-23 | 2019-12-06 | 苏州浪潮智能科技有限公司 | 一种在bios中控制可信根的方法和系统 |
CN110543768B (zh) * | 2019-08-23 | 2021-07-27 | 苏州浪潮智能科技有限公司 | 一种在bios中控制可信根的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI438686B (zh) | 用於使用狀態確認來保護作業系統啟動過程的系統及方法 | |
US11416605B2 (en) | Trusted execution environment instances licenses management | |
US8775784B2 (en) | Secure boot up of a computer based on a hardware based root of trust | |
EP2913956B1 (en) | Management control method and device for virtual machines | |
CN104715208A (zh) | 一种基于tpm芯片的平台完整性校验方法 | |
US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
EP3197089B1 (en) | Secure information configuration method, secure authentication method and related chip | |
WO2019104988A1 (zh) | Plc的安全处理单元及其总线仲裁方法 | |
EP1542112A1 (en) | Open type general-purpose attack-resistant cpu, and application system thereof | |
CN105260663A (zh) | 一种基于TrustZone技术的安全存储服务系统及方法 | |
CN102262599B (zh) | 一种基于可信根的移动硬盘指纹认证方法 | |
CN101523399A (zh) | 基于用户认证修改完整性度量的方法和系统 | |
CN102456111A (zh) | 一种Linux操作系统许可控制的方法及系统 | |
EP2051181A1 (en) | Information terminal, security device, data protection method, and data protection program | |
JP2007512787A (ja) | トラステッド・モバイル・プラットフォーム・アーキテクチャ | |
CN109657479B (zh) | 数据防泄漏方法及计算机可读存储介质 | |
CN104794394B (zh) | 一种虚拟机启动校验的方法及装置 | |
CN104573549A (zh) | 一种可信的数据库机密性保护方法及系统 | |
CN111651748A (zh) | 一种车内ecu的安全访问处理系统及其方法 | |
CN104246784A (zh) | 用于保护和安全地传输媒体内容的方法、设备和系统 | |
CN105308610A (zh) | 用于设备上的平台和用户应用安全性的方法和系统 | |
CN103971034A (zh) | 一种保护Java软件的方法及装置 | |
JP5118700B2 (ja) | 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置 | |
CN103051963B (zh) | 一种数字电视终端设备的安全控制方法 | |
CN105827388A (zh) | 用于用密码处理数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150617 |