共计 6410 个字符,预计需要花费 17 分钟才能阅读完成。
title: 可信计算-供应链安全-FIM和RIM date: 2022-06-07 17:32:04.123 updated: 2022-06-07 17:58:10.735 url: /archives/kxjsgylaq categories:
- 可信计算 tags:
- 可信计算
背景
例如,终端计算机、台式机和笔记本电脑包含硬件、固件、驱动程序、操作终端和应用软件,它们影响着设备和它们所在网络的完整性和安全性。对于网络管理员来说,了解其网络中终端的当前状况可能是一项令人沮丧的工作。有多个问题在起作用。1)新部署的机器是否按照要求建立和配置? 2)在这些机器的生命周期内,环境中的机器的持续状态是什么?PC客户端固件完整性测量规范(FIM)提供了一个框架,用于确定硬件的配置以及运行了哪些固件来初始化处于启动状态的端点。该规范与其他TCG规范结合使用,为企业环境中的平台验证提供了完整的解决方案,并构成了基于该验证的信任决策的基础。
终端计算机依靠平台OEM提供的和第三方提供的固件来初始化和启动到可用状态。固件存储在非易失性存储器中,可以使用平台OEM提供的工具进行更新。一些第三方提供的固件可以通过第三方提供的实用程序进行更新,例如,硬盘驱动器固件更新。根据TPM 2.0系统的TCG PC客户端平台固件配置文件[1],在平台初始化和启动期间运行的固件被测量并存储在TPM中。这些测量结果为FIM提供了基础,但对于信任决策来说是一个不充分的基础。这些测量值告诉网络管理员,即验证者,当前正在运行什么。验证者还需要知道的是,什么是应该运行的。验证者如何将当前状态与所需状态联系起来?TCG参考完整性规范(RIM)[4]中规定的参考完整性测量是反映基线或黄金测量的一组测量,可以与之进行比较。
FIM和RIM反映了在终端计算机上运行的固件,但配置也会影响终端的完整性和安全性。核查员如何知道任何特定的端点是正确配置的?FIM和RIM中记录了终端计算机当前启用的功能和设备,但这只是验证人希望了解的终端计算机的一个子集。可以对设备进行哪些配置更改以改善安全状况?端点计算机有哪些固有的属性,使验证者能够更好地信任该端点?这些信息在FIM中是不可用的,所以必须从其他地方获取。TCG平台证书规范[3]中定义的平台证书可以捕获这些信息。
平台OEM可以为交付给验证者的终端提供一套RIM和平台证书,让验证者为该计算机建立一个基线。这套完整性和属性信息所促成的场景详见下文。
FIM需要协调RTM和信任链来对终端进行测量,需要一个TPM来保护测量结果不被修改,直到它们可以被报告,还需要一个参考完整性清单(RIM)来与任何单个启动过程的测量结果进行比较。一个软件代理,Attestation Client,可以用来收集TPM的测量值和事件日志的记录。验证客户端收集的信息将至少包括事件日志、PCR报价结果,以及可能的用于签署报价的签名密钥的证书。在某些情况下,签名钥匙的证书可能作为端点注册过程的一部分提供。确保固件完整性的综合系统还将包括对所收集的测量结果进行某种形式的验证,相应地,验证者也是评估所报告的测量结果所必需的。这样的验证者通常驻扎在网络基础设施的外部。此外,如果测量、报告和/或验证过程的任何组件可以被修改或更新,那么这些组件的可信度取决于用于实施更新的机制。平台固件的更新需要符合NIST SP800-147的规定。平台的平台证书提供了终端符合签名固件更新过程的断言。
RoT、信任链和代理的可信度和协调性使验证者有信心对测量的端点的固件完整性进行可靠的评估。 对复合端点提供的信任属性的评估至关重要,并且单个代理的信任属性的评估仅与整个系统的上下文相关。 图 2 详细说明了 RoT 必须协同行动,以实现 FIM 的可靠和值得信赖的测量、报告和验证。 此外,这些 RoT 必须组合在一个端点中,该端点包含安全平台固件更新机制以及其他安全功能。
有意义的完整性测量比较方案的一个关键因素是建立和维护一个已知的断言、配置和测量的基线,验证者可以据此做出决定。基准线的建立必须考虑两种情况:具有未知或可疑出处的平台固件的平台,以及具有已知和可信(受保护和签名)固件的平台。本节介绍了平台制造商提供的平台证书和RIM包中包含的必要和可选的断言、配置和测量。平台制造商向验证者提供的平台证书包括对终端TPM EK证书的明确引用以及用于获取RIM的GUID和URI。
一个例子是这样的:平台制造商根据制造的终端生成参考测量值,包括代码和配置,并产生一个RIM和一个平台证书。平台制造商将端点和平台证书交付给客户,客户可以在任何配置或固件改变之前对PCR进行快照。客户可以根据RIM验证快照,以验证在制造之后和收到终端之前没有进行过任何改变。客户还可以验证平台证书中的断言,并将其与快照中的配置进行比较。然后,客户可以进行任何固件和配置更改,询问PCR,并拍摄新的快照以建立他们的基线。这将产生一个反映客户基线的支持RIM,如TCG参考完整性清单规范[4]中所定义。
如果没有平台证书,平台制造商还有其他选择来提供RIM捆绑包。捆绑包可以在制造时安装在平台上,并在[6]中定义的位置。捆绑包可以通过客户支持渠道提供,如网站。捆绑包可以作为平台固件安装包的一部分。本规范没有为平台制造商提供RIM捆绑包的方式提供规范性指导。
在SP800-155中,完整性属性被用于评估固件完整性测量的可信度。平台制造商有各种方式向客户传达完整性属性。平台制造商可以通过带外渠道(即不与终端本身一起交付,而是通过其他方式)向客户提供平台证书中的这些信息。平台制造商可向客户提供一个工具,以查询端点并从已知位置提取平台证书。或者,平台制造商可以允许客户向管理的在线服务提供序列号,然后响应平台的平台证书,因为它已经交付。无论客户如何获得特定终端的平台证书,证书的目的是为客户提供一种手段,以评估终端报告的断言和测量的有效性,并对其收到的关于终端总体健康状态的报告形成一定程度的信任,而不仅仅是固件测量。
平台证书:
平台证书中应报告平台序列号。序列号可以是资产标签、服务标签或UID,但必须与平台证书中的其他信息相结合,在平台制造商的产品系列或型号中唯一地识别平台。
平台固件断言在平台证书配置文件第3.1节[3]中定义。这些断言作为tBBSecurityAssertions属性的一部分被捕获。根据TCG平台证书配置文件规范[3]的规定,这些断言(定义如下)应在平台证书中报告。下面的列表是最小的列表,并不打算限制平台制造商包括额外的断言。 MeasurementRootType、TCGPlatformSpecification、PlatformFwSignatureVerification等
平台证书规范[3]将 platformProperties 定义为平台证书规范[3]中定义的 platformConfiguration 属性的一个元素。平台OEM可以使用这个字段来填充验证者感兴趣的额外断言。这些断言应按照[3]中的定义,以名称、值对的形式进行填充。
平台证书规范[3]将ComponentIdentifier属性定义为一个可选的元素,用于在平台证书中加入相关的组件。表4详细地定义了PC客户端平台中的相关组件。平台制造商可以包括额外的组件。如果他们确实包括额外的组件,他们应该遵守下面规范1中定义的元素。组件类别(componentClass)的值在TCG组件类别注册表中定义,为了方便读者阅读,这里也包括了这些值。该属性的结构在《平台证书配置文件规范》第3.1.8节中定义,包含强制性和可选性元素。当有成熟的解决方案来报告和验证这个属性时,本节将成为强制性的。
PlatformConfigUri提供了验证者可以找到PC客户端RIM捆绑的位置。注意,这个字段不包含RIM捆绑物。正如《TCG PC 客户端参考完整性清单规范》[6]中所定义的,平台制造商可以将捆绑包放在 EFI 分区的端点上。如果放置在EFI分区中,建议在发生硬盘故障或磁盘重新分区的情况下,验证人需要RIM捆绑包时,可将其放置在EDI分区中。
验证平台证书
平台证书验证需要交付平台制造商的根证书,并将证书中的元素与可从平台获得的信息进行比较。证书中的一些元素提供了可以目视检查的信息,如制造商和型号或底盘类型。有些元素提供的信息可以通过与测量结果进行比较来验证,例如存在一个S-HCRTM,它将被捕获为PCR 0中的测量事件。 这套属性不能以编程方式验证,除非能力被启用。在这种情况下,它们可以通过PCR 1中的测量事件进行验证。如果平台证书包含组件信息,则该信息可能只能通过平台制造商提供的工具进行验证。
RIM
TCG参考完整性清单(RIM)信息模型规范[4]为平台的一组参考测量值定义了一个信息模型。平台制造商为随平台发货的固件版本提供一个初级RIM。对于平台固件的后续版本,平台制造商提供补丁RIM。平台制造商提供的主RIM可以在EFS分区中与平台一起交付,如TCG PC客户端参考完整性清单(PCRIM)信息模型规范[6]中所定义。或者,主RIM可以通过带外方式交付,例如通过平台制造商的网站。补丁RIM可以作为固件更新工具的一部分交付,也可以通过同样的带外机制提供。
Verifier
验证者使用RIM的内容评估客户端的状态(作为验证者),RIM包含来自PCR值或平台制造商提供的事件日志的客户端信息。事件日志和PCR值是使用TAP[5]文件中规定的协议从客户端(即Attestor)传递的。如果使用事件日志,验证人首先使用相关的PCR值验证其完整性。验证者使用管理员提供的一套策略对证明者进行鉴定。
RIM
参考完整性清单包含验证者用来对照实际值(证据)验证预期值(断言)的结构。
一个RIM信息模型有几个特点。它。- 识别RIM实例的创建者(发行者)。- 确定产生参考值的供应链实体。- 包含可安装软件/固件的参考测量值。- 包含嵌入式固件的参考测量值。- 识别组件、设备或环境。- 包含其自身的完整性保护能力(例如,数字签名验证)。- 对有助于确保语义互操作性和促进良好安全实践的RIM绑定规范设置约束。
平台证书
TCG平台证书档案规范[10]包含平台制造商做出的信任断言。该证书断言平台的安全属性和出厂时的配置。平台证书规范定义了一个PlatformConfigurationURI属性,其中包含 “验证人可以获得参考完整性测量值的URI”。平台证书规范的第3.1.7节讨论了PlatformConfigurationURI属性的选项。
背景
TCG TPM 2.0供应指导文件[6]描述了一组参考测量值,”代表了启动固件和后续代码生成并扩展到TPM PCR的完整性测量值的预期默认值”。它进一步指出,”平台制造商应提供平台BIOS、固件和其他二进制文件的预期完整性测量值列表,他们提供的是’发货’。黄金测量值应包括在启动固件更新中,以支持特定终端平台的生命周期。” TCG基础设施工作组参考清单(RIMM)模式规范[7],使用XML模式定义了一个信息模型和数据定义,提供了一套强大的数据项,可用于生成一套 “黄金测量”。此后,TCG接受了几项新技术,其格式和内容的灵活性选项能更好地满足参考测量的要求。本规范取代了RIMM规范。
RIM 信息模型
RIM信息模型由元素和相关属性的抽象表示组成,这些元素和属性形成一个清单,称为参考完整性清单(RIM)。该抽象表示通过应用RIM绑定规范实现为RIM实例,该规范定义了为散列、签名、传输和存储编码的元素和属性。RIMs包含关于平台状态或配置的断言。断言包含根据创建或制造平台或其硬件、固件或软件元素之一的实体(供应商、组织或个人)已知的正确值。
总结
1 FIM Firmware Integrity Measurement (FIM)
PC客户端固件完整性测量(FIM)规范概述了收集、报告和处理(证明)PC客户端固件的基本流程。
FIM协调RTM等对终端进行测量,需要一个TPM来保护测量结果不被修改,直到它们可以被报告,并且使用一个参考完整性清单(RIM)来单个启动过程的测量结果进行比较。
一个例子是这样的:平台制造商根据制造的终端生成参考测量值,包括代码和配置,并产生一个RIM和一个平台证书。平台制造商将端点和平台证书交付给客户,客户可以在任何配置或固件改变之前对PCR进行快照。客户可以根据RIM验证快照,以验证在制造之后和收到终端之前没有进行过任何改变。客户还可以验证平台证书中的断言,并将其与快照中的配置进行比较。然后,客户可以进行任何固件和配置更改,询问PCR,并拍摄新的快照以建立他们的基线。这将产生一个反映客户基线的support RIM。
使用场景:
- 验证客户收到的终端计算机是否与客户的订单相符: a. 客户下订单购买具有特定硬件和固件配置的计算机。 b. 平台 OEM 制造计算机,生成 RIM,并将计算机运送给客户。d. 客户收到计算机,收集FIM并与RIM进行比较。 e. 客户将当前的平台配置与RIM进行比较。 f. 利用从步骤d和e中确定的信息,客户确定平台已经交付,没有修改,并建立了一个基线。
- 验证一台终端计算机是否被正确配置以连接到网络。a. 管理员根据平台证书中描述的功能配置一台终端计算机以符合基线安全配置,并将该计算机交付给终端用户。 b. 终端用户启动终端并尝试连接到网络。d. 网络关守将FIM与RIM以及EK Cert所确定的该平台的平台证书进行比较,并决定该平台已正确配置。e. 端点计算机被允许访问网络。
- 对配置不正确的终端计算机进行隔离。a. 管理员将一台终端计算机配置为符合基线安全配置,并将计算机交付给终端用户。 b. 终端用户启动终端,通过关闭安全功能(如安全启动)来修改配置,并试图连接到网络。d. 网络关守将FIM与RIM和EK证书进行比较,确定安全配置已从基线修改。e. 端点计算机被隔离在网络之外,需要采取补救措施才能访问网络。
2 RIM Reference Integrity Manifest (RIM)
RIM信息模型由元素和相关属性的抽象表示组成,这些元素和属性形成的清单称为参考完整性清单(RIM)。
RIMs包含关于平台状态或配置的断言。断言包含根据创建或制造平台或其硬件、固件或软件元素之一的实体(供应商、组织或个人)已知的正确值。
断言指的是参考值
RIM可由平台制造商、经销商、IT人员等生成。可以通过平台证书的PlatformConfigurationURI字段获取RIM的位置。
包含Base RIM和support RIM。
base RIM结构: 如果playloadtype有三种、direct、indirect和hybrid,如果是indirect,那么payload将直接包含参考完整性测量,indirect就是Support RIM,需要支持RIM Binding 规范,hybrid就是两种结合。
3 为什么能保证供应链的完整性?
因为RIMs的生命周期,他有平台制造商初始生成第一个RIM Bundle,后续平台可能经由系统集成商或增值经销商修改,例如添加操作系统等。于是会在第一个RIM Bundle后面添加补丁 Bundle。
RIM生命周期从固件/软件最初在平台上安装时开始,这通常由平台制造商执行。系统集成商、增值经销商或IT维护机构可能会提供软件/固件更新,改变固件配置,或进行硬件更改,从而更新平台的RIM Bundles。
RIM Bundles 集使用 Base RIM tagIds 提供后向链接,显示了 RIM Bundles集合的添加顺序。该序列描述了平台变化的演变。这种联系和顺序对验证者来说是有用的。
RIM不一定通过平台证书获取,也可以通过带外的方式获取,例如通过平台制造商的网站。补丁RIM可以作为固件更新工具的一部分交付,也可以通过同样的带外机制提供。