用于把嵌入式安全芯片与计算机相关联的方法和系统的制作方法

文档序号:6570244阅读:192来源:国知局
专利名称:用于把嵌入式安全芯片与计算机相关联的方法和系统的制作方法
用于把嵌入式安全芯片与计算机相关联的方法和系统
背景
计算机和计算机网络已经向个人和企业提供了很多能力和便利。例 如,个人和/或企业之间的电子数据传输是许多企业和组织日常运作的一 部分。诸如口令、密码、数字证书和"防火墙"之类的许多安全技术被 用来保护在计算机和计算机网络上存储的数据。令人遗憾的是,只是利 用软件的安全技术应对黑客的恶意努力 一 直都很脆弱。
为了提高在计算机和计算机网络上所存储的数据的安全性,已经设 计出基于硬件的安全技术。
一种基于硬件的安全技术实现了嵌入式安全
芯片(例如,置信平台才莫块(Trusted Platform Module TPM)),用于
存储诸如加密密钥和/或散列值之类的秘密并且使用这些秘密来执行内 部密码运算。因此,所述秘密在嵌入式安全芯片之外是不可用的。
为了防止在物理上篡改嵌入式安全芯片并且防止获取所保护的秘 密,每个嵌入式安全芯片需要被"捆绑,,到单个计算机。例如,用于把 嵌入式安全芯片捆绑到单个计算机的努力已经包括使用抗篡改带来在 视觉上检测篡改,把所述嵌入式安全芯片焊接到计算机部件的处理器板 (例如主板)或使用机箱锁。令人遗憾的是,这些努力并不保证嵌入式 安全芯片不会在物理上被篡改。换句话说,恶意的黑客仍然能够在物理 上访问计算机,除去嵌入式安全芯片并且获取秘密。所述秘密可以被用 来访问敏感数据。
附图简要描述
为了详细说明本发明的示例性实施例,现在将参考附图,其中

图1示出了依照本发明实施例的系统;
图2示出了图示出依照本发明实施例的确认(validation)过程的图3示出了图示出依照本发明实施例的确认过程的另一图4示出了依照本发明实施例的方法;和
图5示出了依照本发明的可替换的实施例的另一方法。
注释和名称
贯穿下列描述和权利要求使用的某些术语用于指代特定的系统组 件。本领域技术人员应当理解,计算机公司可以用不同名称来指代组件。 本文档的目的并不在于要区分那些名称不同而并非功能不同的组件。在 下面论述和权利要求中,术语"包括"和"包含"被以开放的方式使用, 从而应当被解释为"包括但不限于..."。此外,术语"耦合","耦接" 的目的是指间接、直接、光学或无线的电连接。因此,如果第一设备耦 合到第二设备,那么该连接可以是通过直接电连接、通过经由其他设备 和连接的间接电连接,通过光学电连接,或通过无线电连接。
详细描述
下列论述针对本发明的各个实施例。尽管这些实施例中的一个或多 个可以是优选的,但是所公开的实施例不应该-故解释为或以其他方式用 作对包括权利要求的本公开范围的限制。另外,本领域技术人员将会理 解下列描述具有广阔的应用,并且对任何实施例的论述仅仅是该实施例 的示例,而目的并不在于把包括权利要求的本公开的范围限于该实施 例。
本发明的实施例针对用于在即使诸如置信平台模块(TPM)之类的 嵌入式安全芯片从其计算机平台分离或以其他方式被篡改的情况下保 护由所述嵌入式安全芯片所存储的秘密的系统和方法。在至少一些实施 例中,如果嵌入式安全芯片被成功初始化以供计算机使用,那么就产生 用于标识在所述嵌入式安全芯片和计算机之间唯一 (unique)关系的数 据结构。在计算机此后的每次引导期间,执行验证(verification)过程 以便根据该数据结构来确认计算机和嵌入式安全芯片的身份标识。在一 些实施例中,验证(verification)过程涉及嵌入式安全芯片和平台之间 的密码捆绑。如果嵌入式安全芯片和平台这二者的身份标识都通过确认 (validated ),那么所述嵌入式安全芯片就可操作来执行诸如对用于所 述平台的数据进行加密/解密之类的密码功能。如果嵌入式安全芯片或平 台的身份标识没有通过确认,那么就执行一个或多个动作来防止对所述 嵌入式安全芯片所存储的秘密的未经授权的访问和/或使用。
图1示出了依照本发明实施例的计算机系统100。如图1所示,计 算机系统100包括主板102,所述主板102被配置为将各电子组件附于 其上。在至少一些实施例中,所述系统100包括用于耦合到基本输入/
输出系统(BIOS) 106和系统存储器115的处理器104。 BIOS 106可以 与BIOS芯片相关联。处理器104还耦合到主板102的支架(mount )122, 所述支架122使置信平台模块(TPM) 114能够被拆卸地或固定地连接 到所述主板102。
如所示,TPM 114包括用于存储平台确认指令118的存储器116。 TPM 114还包括密码逻辑120,所述密码逻辑120被配置为提供诸如非 对称密钥功能、安全存储散列值、签署密钥(endorsement key EK)功 能、初始化功能和管理功能之类的密码功能。
如所示,BIOS 106包括TPM确认指令110和4晉误响应指令112。 BIOS 106还包括其他BIOS例程113,用于使其他已知或将来的BIOS 过程能够被执行。在一些实施例中,BIOS指令(例如,TPM确认llO、 错误响应指令112或其他BIOS例程113 )在运行时被解压缩,然后被 存储在系统存储器109中。当被执行时,TPM确认指令IIO被配置为使 两个过程中的至少一个发生。TPM确认指令110可以结合平台确认指令 118起作用以提供组合的TPM/平台确认,其取决于由TPM 114和BIOS 106这二者所提供的功能。这两个过程都^皮配置为确保TPM 114是最初 用来初始化计算机100的TPM并且还确保所述计算机100是用来初始 化TPM114的计算机。
在第一过程中,指示TPM114产生唯一的数据结构(即,秘密)。 如果计算机100对TPM 114的初始化成功,那么秘密就被存储在TPM 114中并且被存储在非易失存储器108中,所述非易失存储器108被耦 合到BIOS 106或者位于所述BIOS 106内部。在至少一些实施例中,非 易失性存储器108只能由BIOS 106访问并且当退出加电自检(power - on selftestPOST)时或在计算机100完成引导之前是能够被锁定的。例如, 能够使用口令控制的过程来锁定非易失性存储器108。由非易失性存储 器108所存储的秘密在时间和空间这二者都上是唯一的(即,所述秘密 是永远都不可重复的或计算的随机数)。所述秘密例如可以是通行短语 (pass phrase ) 、 口令、通用唯一标识符(Universally Unique Identifier UUID)或任何其他秘密。在一些实施例中,使用与操作系统(operating system OS )登录方案类似的询问/响应(challenge/response)协议来获得 该秘密。例如,可以实施诸如零知识证明(Zero Knowledge Proof ZKP) 之类的协议。在实施ZKP的实施例中,非易失性存储器108不需要存储该秘、密。
在至少一些实施例中,可以使用TPM 114来使所述秘密才莫糊 (obfuscate )。例如,TPM 114 (或某一其他实体)可以产生随机数(例 如,二进制大对象或"BLOB")作为秘密。然后,经由TPM "BIND (捆 绑)"或"SEAL (密封)"命令使所述秘密与TPM 114唯一地关联。 在一些实施例中,捆绑/密封的秘密和/或秘密的散列被存储在与BIOS 106相关联的非易失性存储器108内。所述散列由诸如"SHA-1"或 "SHA-256"之类的安全散列算法来产生。
在计算机100后续引导时,BIOS芯片106对所述秘密进行解封 (unseal)。使用上述相同的安全散列算法对解封的秘密进行再散列 (re-hash)。然后把该再散列值与先前在非易失性存储器108中所存储 的散列值相比较。如果所述散列匹配,那么由于只有TPM114才有可能 已经解封了正确的值,所以TPM 114的身份标识就#^验证了 (按照如置 信计算机组所定义的TPM的属性)。
在至少一些实施例中,执行新的TPM初始化命令或捆绑命令,以 使得TPM 114不会对其自身进行初始化,除非由计算机100向所述TPM 114提供了适当的鉴别凭证(credential)(例如,秘密的有效性)。例 如,新的TPM命令可以净皮实现为类似"TPM Init"的一些现有TPM命 令的衍生物,并且使BIOS 106能够向TPM 114传递解封的秘密(或某 一其他唯一的平台特定的秘密)的散列值。然后TPM 114能够验证所传 递的秘密是否匹配先前在存储器116中所存储的秘密。如果所述秘密匹 配,那么TPM 114向BIOS 106返回成功的通知并且继续正常地运作, 使计算机100能够引导。在计算机的正常引导过程期间,TPM114可以 使用所述秘密作为由BIOS 106执行的TPM初始化过程的一部分。例如 在一些实施例中,所述秘密被用作对称加密密钥,对称加密密钥增加了 BIOS 106和TPM 114之间的询问/响应协议的安全性。
如果所传递的秘密的值不匹配先前在存储器116中所存储的值(或 者如果秘密没有提供),那么TPM 114可配置成根据由TPM拥有者或 授权的用户控制的策略来拒绝初始化和/或清除所有受保护的秘密(即, 返回到TPM工厂复位状态)。TPM 114还可以向BIOS返回错误通知。 在至少一些实施例中,BIOS能够跟踪其中TPM/平台确认失败的起动序 列。 响应于错误通知,执行由BIOS芯片106所存储的错误响应指令 112。错误响应指令112净皮配置为引起至少一个动作,例如暂停(halt) 计算机的引导过程,通知用户或系统管理员,在TPM114被禁止的情况 下进行引导或者清除由TPM 114所保护的所有秘密。BIOS 106响应于 错误通知而执行的动作可以是对由TPM 114自动执行的任何动作的附 加。还可以把对BIOS和后续的响应的所有错误通知都记录为日志以供 将来审计(audit)。
在至少一些实施例中,TPM 114#:配置为在未#皮计算机100 "拥有" 的情况下执行用于所述计算机100的一些操作。例如, 一些情况可以是 TPM 114的一部分执行非关键(non-critical)操作。在这种情况下,允 许TPM 114在TPM/平台确认失败之后进行初始化。然而,不允许任何 的关键的TPM操作(即,不允许涉及由TPM所保护的秘密的操作)。
如上所述,TPM确认指令110可以引起第二过程被执行。在第二过 程中,每当计算机100净支从低功率状态加电(即,每次从S4/S5状态恢 复)时,由BIOS动态地产生对计算机100来说是唯一的测量值。所述 唯一的测量值基于所述计算机100的多个配置参数。例如,这些配置参 数可以包括但不局限于平台的唯一标识符(UUID)、序列号、资产标 签、硬盘驱动器标识符(ID)、存在于计算机100中的外围组件互连 (peripheral component interconnect PCI) i殳备的列表以及TPM平台配 置寄存器(PCR)值的一些组合。因此,如果在所述测量值中所包含的 计算机配置的任何项发生变化,那么最终的测量值也就会变化。如果在 测量值中所包含的任何计算机配置都没有改变,那么最终测量值保持不 变。在至少一些实施例中,计算机的制造商在所述测量值对计算机100 来说是+—的情况下规定被包含在所述测量值中的计算机特定的配置 参数。
在计算机100的首次引导期间(或者在用户/管理员指定的注册引导 周期期间),BIOS产生所述计算机100的唯一测量值。使用从BIOS到 TPM 114的命令来4巴所述唯一测量值作为参数传递到所述TPM 114。在 至少一些实施例中,对标准的TPM初始化命令和/或启动命令进行扩展 以使TPM 114能够把所述唯一测量值作为参数来接收。
如果已经利用TPM 114建立了签署密钥(EK)(即,如果已经建 立了 TPM 114的所有权),那么所述TPM 114安全地存储所述测量值。
如果尚未利用TPM 114建立EK,那么所述TPM 114忽略(或另外不理 会)从BIOS接收到的测量值。在测量值净皮存储在TPM114中之后,所 述TPM 114不允许对所存储的测量值进行任何改变,除非EK已经被改 变(即,诸如TPM—OwnerClear或TPM—ForceClear之类的命令不应当 影响所存储的测量值)。
当在初始测量值被存储之后每次引导时,BIOS将再次测量唯一的 平台配置,产生测量值并且(例如,4吏用扩展的TPM初始4t命令 "TPM—INIT,,或扩展的TPM启动命令"TPMSTARTUP,,)向TPM 114 发送新的测量值。如果输入的测量值不匹配所存储的测量值,那么TPM
TSS)的命令。除此之外或作为替换,TPM 114可以清除其内部状态以 便除去所有受保护的秘密。
在至少一些实施例中,TPM 114还向BIOS发送错误通知以表明确 认失败(即,用于标识当前系统的测量值并不匹配所存储的用于标识 TPM拥有者的测量值)。响应于接收到错误通知,BIOS引起错误响应 指令112被执行。如前所述,错误响应指令112被配置为引起至少一个 动作,例如暂停计算机的引导过程,通知用户或系统管理员,在TPM 114 被禁止的情况下进行引导或者清除由T P M 114所保护的所有秘密。还可 以把对BIOS和后续的响应的所有错误通知记录为日志以供将来审计。 在至少一些实施例中,TPM拥有者或授权的用户能够有选择地对使用哪 些错误响应进行控制。
与先前描述的第一过程对比,第二过程不使用非易失性存储器108 来存储密封和/或散列的秘密。从而,在执行笫二过程的实施例中,可以 除去非易失存储器108以便降低成本。
通过执行第一过程、第二过程或先前所描述的过程的组合,可以检 测诸如TPM之类的嵌入式安全芯片是否已经在物理上被篡改(例如, 通过把所述嵌入式安全芯片从一个计算机中拆除以供在另一计算机中 使用)。在至少一些实施例中,嵌入式安全芯片能够被插到而不是焊接 于主板。在这种实施例中,计算机制造商能够实现能够支持嵌入式安全 芯片的单个主板,而不管消费者是否购买了嵌入式安全芯片(即,主板
102包括相应的支架122而不管是否安装了嵌入式安全芯片)。如果消 费者在最初购买了计算机之后决定购买嵌入式安全芯片,那么可以由所
述消费者、销售商或制造商相对容易地(与焊接相比较)安装可插的嵌 入式安全芯片。尽管如上所述一些实施例实现了可插入的嵌入式安全芯
片,不过可替换的实施例实现了被焊接到主板102的嵌入式安全芯片。 在这种实施例中,焊接增加了把嵌入式安全芯片从其预计的平台中拆除 的难度。
图2示出了图示出依照本发明实施例的确^人过程的图200。如所示, 第 一计算机202A包括初始化的TPM 214A (即,TPM 214A已经-波初始 化以便保护诸如仅用于第一计算机202A的密码密钥之类的秘密),所 述初始化的TPM 214A经由处理器204A净皮耦合到BIOS存储器206A。 处理器204A被配置为处理从BIOS存储器206A接收到的指令和数据并 且实现所述初始化的TPM 214A和BIOS存储器206A之间的通信。在执 行上述第 一过程的实施例中,初始化过程使BIOS存储器206A存储密 封的秘密以及由初始化的TPM214A所产生的秘密的散列。作为替换, 在扭J亍上述第二过程的实施例中,初始化过程4吏初始化的TPM 214A存 储从第一计算机202A的BIOS接收到的唯一测量值。所述唯一测量值 基于第一计算机的唯一 (unique)配置参数。在第一计算机202A的每 次引导期间,都执行先前描述的第 一或第二过程中的任何一个来确认 TPM/平台。
如图2所示,从原始平台(第一计算机202A)中拆除所述初始化 的TPM214A可能发生。例如,如果初始化的TPM214A是可插的,那 么黑客可以很容易地接近并拔下所述初始化的TPM 214A。作为替换, 如果初始化的TPM214A是焊接的,那么黑客可以接近并小心地拆除所 述初始化的TPM214A。
如图2所示,可能发生把初始化的TPM214A安装到不同的平台中 (例如,通过把初始化的TPM214A焊接或插到相应的插槽或支架中)。 然而当第二计算机202B利用初始化的TPM214A进行引导时,TPM/平 台确认失败。例如,如果执行上述第一确认过程,那么TPM/平台确认 失败,这是因为第二计算机202B的BIOS存储器206B不具有要被发送 到TPM214A以供确认的秘密。如果执行上述第二确认过程,那么TPM/ 平台-验译失败,这是因为确认所需要的唯一测量值无法由第二计算机的 BIOS提供给初始化的TPM 214A(或者所提供的测量值不匹配在初始化 的TPM214A中所存储的测量值)。如果这两个确认过程都被执行,那
么TPM/平台确^人失败,这是因为无法确^人秘、密和唯一测量值之一或它 们二者。在确认失败之后,出现至少一个错误响应,例如暂停引导过程, 通知用户或系统管理员,在初始化的TPM214A被禁止的情况下进行引 导或者清除由初始化的TPM214A所保护的所有秘密。同样,TPM拥有 者或授权用户能够根据偏好来选择错误响应。
图3示出了图示出依照本发明实施例的确认过程的另一图300。如 先前针对图2所描述的,第一计算机202A包括初始化的TPM 214A, 所述初始化的TPM 214A经由处理器204A耦合到BIOS存储器206A。 同样,处理器204A实现所述初始化的TPM 214A和BIOS存储器206A 之间的通信以及对指令和数据的处理。在TPM的初始化过程期间,BIOS 存储器206A接收并存储从初始化的TPM 214A接收到的密封的秘密和 该秘密的散列,或者所述初始化的TPM214A接收并存储对第一计算机 202A来说是唯一的测量值。
如所示,可能发生把初始化的TPM 214A从第一计算机202A拆除 并且用不同的TPM 214B来替换所述初始化的TPM 214A。所述不同的 TPM 214B可能是新的,先前在另一平台上被初始化过的,或者先前被 复位到工厂状态。拆除和安装可能涉及可插的TPM或焊接的TPM。当 第 一计算机202A利用所述不同的TPM 214B进行引导时,TPM/平台确 认失败。例如,如果执行上述第一确认过程,那么TPM/平台确认失败, 这是因为不同的TPM 214B不能对密封的秘密进行解封和/或没有提供 正确的秘密散列以供与在BIOS存储器206A中所存储的散列秘密相比 较。如果执行上述第二确认过程,那么TPM/平台-睑证失败,这是因为 所述不同的TPM214B没有存储确认所需要的唯一测量值。结果,出现 错误响应,例如暂停引导过程,通知用户或系统管理员,在所述不同的 TPM 214B^皮禁止的情况下进行引导或者清除由所述不同的TPM 214B 所保护的任何秘密。
图4示出了依照本发明实施例的方法400。如图4所示,方法400
包括利用计算机平台来初始化嵌入式安全芯片(块402)。在初始化期
间,把密封的秘密和该秘密的散列存储在安全BIOS存储器中(块404 )。 在至少一些实施例中,所述秘密#1密封并且由嵌入式安全芯片来执行对
该秘密的散列。当此后进行引导时,密封的秘密被确认(块406)。例 如,在由嵌入式安全芯片来对该秘密进行密封的情况下,通过使用嵌入
式安全芯片来对密封的秘密进行解封并且对解封的秘密进行再散列以
供与在BIOS存储器中所存储的散列的秘密相比较来确认密封的秘密。 如果散列值匹配,那么所述秘密就通过确认。
如果密封的秘密通过确认(确定块408),那么启用关键的嵌入式 安全芯片功能(块410)。例如,可以启用诸如使用密码密钥来加密/ 解密数据之类的关键嵌入式安全芯片功能。如果密封的秘密没有通过确 认(确定块408),那么提供错误响应(块412)。例如,可以提供诸 如暂停引导过程、通知用户或系统管理员、在嵌入式安全芯片被禁止的
密码密钥)之类的错误响应。
图5示出了依照本发明的可替换实施例的另一方法500。如图5所 示,方法500包括利用计算机平台来初始化嵌入式安全芯片(块502)。 在初始化期间,唯一的平台测量值被存储在嵌入式安全芯片中(块504 )。 在至少一些实施例中,由BIOS根据计算机平台所特有的配置参数集来 产生唯一的平台测量值。例如,可以使用诸如平台的唯一标识符 (UUID)、序列号、资产标签、硬盘驱动器标识符(ID)、存在于计 算机100中的外围组件互连(PCI)设备的列表以及TPM平台配置寄存 器(PCR)值的组合之类的配置参数。当此后进行引导时,唯一的平台 测量值被确认(块506)。可以通过把在初始化嵌入式安全芯片期间在 嵌入式安全芯片中所存储的测量值与在计算机平台此后的每次引导期 间由BIOS所产生的测量值相比4交来确认所述唯一的平台测量值。
如果唯一的测量值通过验证(确定块508 ),那么启用关键的嵌入 式安全芯片功能(块510)。同样,可以启用诸如使用密码密钥来加密/ 解密数据之类的关键嵌入式安全芯片功能。如果密封的秘密没有通过确 认(确定块508),那么提供错误响应(块512)。同样,可以提供诸 如暂停引导过程、通知用户或系统管理员、在嵌入式安全芯片被禁止的 情况下进行引导或者清除由嵌入式安全芯片所保护的任何秘密(例如, 密码密钥)之类的错误响应。在至少一些实施例中,能够由TPM拥有 者或授权的用户来选择和调整错误响应。
权利要求
1.一种方法,包括初始化嵌入式安全芯片(114)以供计算机(100)使用;在所述嵌入式安全芯片(114)和计算机(100)之间执行捆绑操作;以及在所述计算机(100)此后的每次引导期间,在所述嵌入式安全芯片(114)执行密码功能之前确认所述捆绑操作。
2. 如权利要求1所述的方法,其中执行捆绑操作包括把秘密的散列 存储在安全存储器(108)中。
3. 如权利要求2所述的方法,其中确认所述捆绑操作包括使用所述 嵌入式安全芯片(114)来对所述秘密进行再散列并且把所述秘密的再 散列与在所述安全存储器(108)中所存储的秘密的散列相比较。
4. 如权利要求1所述的方法,其中执行捆绑操作包括把基于所述计 算机(100)的唯一配置参数的测量值存储在所述嵌入式安全芯片(114) 中。
5. 如权利要求4所述的方法,其中确认所述捆绑操作包括把基于计 算机的唯一配置参数的当前测量值与在所述嵌入式安全芯片(114)中 所存储的测量值相比较。
6. —种计算机系统(100),包括被耦合到处理器(104)的嵌入式安全芯片(114),所述嵌入式安 全芯片(114)被配置为执行密码功能;^皮耦合到所述嵌入式安全芯片(114)的存储器(106),所述存储 器(106)存储确认指令(110),所述确认指令(110)在被执行时防 止所述密码功能的使用,除非所述嵌入式安全芯片(114)被确认为先 前已经:帔初始化为供所述计算机系统(100)使用。
7. 如权利要求6所述的计算机系统,其中所述嵌入式安全芯片 (114)根据捆绑操作而被初始化为供所述计算机系统(100)使用,所述捆绑操作包括把秘密数据从所述嵌入式安全芯片(114)转移到所述 计算机系统(100)。
8. 如权利要求6所述的计算机系统,其中所述嵌入式安全芯片 (114 )根据捆绑操作而被初始化为供所述计算机系统(100 )使用,所述捆绑操作包括所述嵌入式安全芯片(114)接收来自所述计算机系统 (100)的测量值,所述测量值基于所述计算机系统(100)的唯一配置 参数。
9. 如权利要求6所述的计算机系统,其中所述存储器(106)存储 错误响应指令(112),所述错误响应指令(112)在被执行时响应于确 认失败而引起动作,所述动作是从包括以下动作的动作组中选择的暂 停引导过程,通知所述嵌入式安全芯片(114)的拥有者,在所述嵌入 式安全芯片(114)被禁止的情况下进行引导,以及清除由所述嵌入式 安全芯片(114)所存储的所有秘密。
10. 如权利要求6所述的计算机系统,其中所述嵌入式安全芯片 (114)根据扩展的置信平台模块(TPM)初始化命令而被初始化为供所述计算机系统(100 )使用,所述初始化命令使所述计算机系统(100 ) 能够向TPM传递秘密。
全文摘要
在至少一些实施例中,一种方法,包括初始化嵌入式安全芯片(114)以供计算机(100)使用并且在所述嵌入式安全芯片(114)和计算机(100)之间执行捆绑操作。所述方法进一步包括在计算机(100)此后的每次引导期间,在嵌入式安全芯片(114)执行密码功能之前确认所述捆绑操作。
文档编号G06F21/00GK101351807SQ200680050063
公开日2009年1月21日 申请日期2006年7月19日 优先权日2005年10月31日
发明者L·王, M·诺沃亚, V·Y·阿利 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1