Trusted Platform Module
https://software.intel.com/content/www/us/en/develop/blogs/tpm2-software-stack-open-source.html
https://www.mankier.com/package/tpm2-tools
引入了新近完成的Trusted Platform Module 2.0(TPM2)软件堆栈,开发该软件堆栈以符合最新的Trusted Computing Group(TCG) v1.38规范,并且可以在任何TPM2实施中进行工作。与以前的版本相比,英特尔与Infineon和Fraunhofer SIT等可信计算领域的主要参与者合作,对代码改进和新功能进行了大量投资。这包括TSS Stack开发以及SAPI,TCTI和abrmd层的初始化。基于这一发展,英飞凌和Fraunhofer SIT实现了对增强型系统API(ESAPI)层的支持,该层旨在降低编程复杂性并简化TPM的使用和集成。
TPM是具有安全存储和硬件强制访问控制的密码协处理器。它通常用于软件证明,加密密钥存储,存储根证书,全盘加密,并用作受信任执行环境的基础。TPM有多种用例,但是一个通用的用例是用于安全启动的硬件,以确保仅当加载了已知的受信任软件时才可以使用机密。此外,TPM可以类似于智能卡使用,以验证正确的软件堆栈正在尝试访问加密密钥。
拥有开放源代码的TPM软件堆栈,系统开发人员可以检查对安全敏感的代码,从而增强他们对其操作方式的信心,并允许他们验证其是否符合TCG规范。
组成新的TPM2软件堆栈的组件包括:
- tpm2-tss v2.0.x
- 增强型系统API(ESAPI):支持加密会话操作,并降低了Fraunhofer SIT贡献并由Infineon启用的编程复杂性。
- TPM命令传输接口(TCTI):处理堆栈的上层和下层之间的通信。
- 系统API(SAPI):可提供比ESPI小的占用空间,但使用起来更复杂。
- 编组库(LibMU):为TPM库规范定义的所有数据类型提供一组编组和解编组功能。
- tpm2-tools v3.0.x:提供从外壳环境访问与TPM 2.0兼容的设备的低级和聚合命令行工具。
- tpm2-abrmd v2.0:一个系统守护程序,实现TPM2访问代理(TAB)和资源管理器(RM)规范。它管理与TPM的多进程同步。
- tpm2内核驱动程序:通过操作系统内核提供对TPM的直接访问
TPM2软件堆栈被开发为与最新的TCG v1.38规范兼容,并且可以在任何TPM2实现中使用。
该项目
英特尔开放源代码软件开发商启动了改进TPM2软件堆栈的项目。他们设想了一个稳定且可扩展的软件堆栈,该堆栈将被开源社区所接受,并且他们成功地联系了社区合作伙伴,以协调有关该项目的贡献。目前约有40个贡献者参与其中,Fraunhofer SIT和Infineon是启用ESAPI层的主要贡献者。
我们将继续致力于软件堆栈的强化,维护和功能,并邀请其他贡献者加入该项目。我们的目标是使该TPM 2.0软件堆栈成为Linux *基础结构以及关键Linux发行版和供应商的关键部分。
我们的项目执行现代软件开发最佳实践,旨在为健康的开源项目树立榜样。我们的目标是继续与TCG合作,以不断影响规范,使其更加灵活和强大。我们希望TPM 2.0软件堆栈具有可伸缩性,并可以在基础结构的许多层,包括Linux和Windows的多个操作环境中使用。
该项目的一些具体目标包括:
- 在单元测试和集成测试之间具有约80%的测试覆盖率的测试工具,有利于开源软件代码库的所有用户进行集体测试和使用。
- 连续的构建和集成任务:每个提交和拉取请求都是自动构建的,并通过我们完整的测试工具运行。
- 支持Linux和Microsoft * Windows操作系统。
- 定期发布节奏。
欲获得更多信息
TCG TPM软件堆栈工作组在以下链接的标准中指定了API和基础结构:
- TCG TSS 2.0概述和通用结构规范
- TCG TSS 2.0封送/拆封API规范
- TCG TSS 2.0 TPM命令传输接口(TCTI)API规范
- TCG TSS 2.0系统级API(SAPI)规范
- TCG TSS 2.0增强系统API(ESAPI)规范