"这篇文档是Mario Strasser在瑞士联邦理工学院苏黎世分校夏季学期2004年的学期论文,主题是基于软件的TPM(Trusted Platform Module)模拟器,专为Linux系统设计。该论文由Paul E. Sevinç和Prof. Dr. David Basin指导。"
本文档详细阐述了Trusted Computing Group (TCG)为可信计算制定的一系列规范,特别是针对安全芯片——Trusted Platform Module (TPM)以及相关的软件接口,即TCG Software Stack Specification (TSS)。尽管TPM可能成为现代个人计算机的常见组件,但在某些情况下,TPM可能会不可用或难以访问。此外,TCG和TPM在业界引起了争议。因此,本学期论文的目标不是证明TPM的好坏,而是为了教育和实验目的,为Linux开发一个软件实现的TPM模拟器,让人们能够轻松地探索和了解TPM。
在本论文的研究过程中,已经实现了大约120个TPM命令中的50个(约42%),对于剩余的命令,提供了适当的函数存根,以确保基本功能的完整性。这样的模拟器使用户能够在没有实际TPM硬件的情况下,理解和测试TPM的功能,包括但不限于密钥生成、数据加密、平台状态验证等。
TPM的主要功能包括:
1. **密钥管理**:TPM可以生成、存储和保护密钥,这些密钥用于加密数据、进行数字签名以及验证身份。软件模拟器将模仿这些过程,允许用户测试密钥生命周期的不同阶段。
2. **平台配置寄存器(PCR)**:TPM使用PCR来记录系统的固件、操作系统和其他关键组件的启动状态,提供了一种验证系统完整性的方式。模拟器会模拟PCR的读写操作,以验证系统的启动过程。
3. **加密服务**:TPM支持各种加密算法,如RSA和AES,用于数据保密和完整性保护。软件模拟器将实现这些加密算法,以便用户可以在安全环境中测试加密和解密操作。
4. **硬件绑定**:TPM可以与特定硬件绑定,确保密钥不能被转移到其他设备,增强安全性。模拟器将模拟这种绑定机制,让用户理解其工作原理。
5. **远程证明**:TPM能够生成证明,远程证明平台的状态,例如证明操作系统未被篡改。通过模拟器,用户可以模拟这种远程证明过程,验证其有效性。
通过这个软件TPM模拟器,开发者、研究人员和学生可以在不依赖物理TPM芯片的情况下,进行可信计算技术的实验和学习,有助于增进对这一领域知识的理解。此外,它也为那些无法直接使用TPM硬件的环境提供了宝贵的测试工具。