文章目录
- TPM分析笔记(一) TPM历史
- TPM的历史
- 为什么选择用TPM?
- TPM 1.1b到1.2的发展历史
- TPM 1.1b
- TPM 1.2
- TPM由1.2发展到2.0版本
- 安全需求变化
- TPM 2.0的设计改进
- TPM 2.0规范的开发历程
- TPM的标准
- TPM的常见用途
- 发展历程小结
TPM分析笔记(一) TPM历史
可信平台模块(TPM,Trusted Platform Module)是一种用于增强计算机安全性的硬件模块。TPM既可以被视为一套规范,定义了安全密码处理器的规格,也可以看作是对这一规范的具体实现,即TPM芯片。
TPM的历史
为什么选择用TPM?
在1990年代,随着互联网的迅猛发展,个人电脑的连接方式和安全需求发生了巨大变化。早期的个人电脑设计中很少考虑安全需求,因此缺乏相应的硬件和软件支持。为了应对这种情况,一群计算机工程师设计了第一代TPM,为个人电脑提供了基础的安全保障。这些工程师后来成为可信计算组织(TCG)的成员。
TPM的初衷是创建一个硬件安全模块,用于存储和管理加密密钥,以确保密钥和数据的安全。每个TPM都有一个主“封装”密钥(存储根密钥),用于存储在TPM内部。TPM还可以创建绑定到特定平台度量的密钥,这些密钥只有在平台度量值与创建时相同时才能解封。
TPM 1.1b到1.2的发展历史
TPM 1.1b
2003年,TPM 1.1b发布,具备以下基本功能:
- 密钥生成:主要生成RSA密钥。
- 密钥存储:安全地存储生成的密钥。
- 安全授权:控制对密钥和其他敏感数据的访问。
- 设备安全状态认证:通过平台配置寄存器(PCR)保存系统启动过程中的度量值,以认证系统的启动过程是否正常。
此外,TPM 1.1b引入了匿名身份密钥来保护用户隐私,并通过隐私证书授权中心(CA)来证明密钥是在真实的TPM硬件中生成的。
尽管TPM 1.1b具备上述功能,但它存在一些问题:
- 硬件兼容性不佳:不同厂商的TPM芯片在硬件实现上有细微差异,导致需要不同的设备驱动程序。
- 缺乏密码字典攻击防护:攻击者可以通过猜测密码进行字典攻击。
TPM 1.2
为了改进TPM 1.1b的不足,TPM 1.2于2005年发布,主要改进包括:
- 防止字典攻击:增加了防止字典攻击的功能。
- 直接匿名认证(DAA):提供第二种匿名密钥方法。
- 代理密钥授权和管理功能:增加对密钥授权和管理的支持。
- 非易失性内存(NVRAM):引入了NVRAM,用于存储关键证书,并附带单向计数器控制内存访问。
TPM 1.2还解决了TPM 1.1b在密钥迁移上的不足,允许用户创建只能由第三方迁移的密钥,这种密钥被称为认证可迁移密钥(Certified Migratable Keys)。此外,TPM 1.2保持了应用层编码接口不变,实现了对TPM 1.1b版本软件的兼容。
自2005年起,TPM 1.2被广泛部署在大多数x86个人电脑上,并在2008年开始部署在服务器平台上(例如,Google的Intel TXT)。
TPM由1.2发展到2.0版本
安全需求变化
在2005年左右,密码学研究者发现SHA-1算法存在安全漏洞。尽管TPM 1.2广泛使用SHA-1算法,并且该算法在当时被认为是安全的,但随着时间的推移,其安全性逐渐受到质疑。为了应对这一挑战,TCG开始制定TPM 2.0规范,旨在提供更灵活的算法支持,并解决SHA-1的安全问题。
TPM 2.0的设计改进
TPM 2.0的设计目标包括:
- 灵活的算法支持:不再硬编码SHA-1或其他任何特定算法,而是允许通过算法标识符选择任意算法。
- 非对称和对称加密结合:采用非对称密钥加密对称密钥的方式,提高加密效率。
- 简化认证和授权机制:统一认证技术,增加多个密钥组织架构,以满足不同用户角色的需求。
TPM 2.0在底层架构上进行了重大调整,使其能够灵活地适应未来的安全需求。TPM 2.0规范还要求TPM在没有电源的情况下仍能保持其内部计数器的准确性,从而提高系统的整体安全性。
TPM 2.0规范的开发历程
TPM 2.0的规范开发历经多年,由多个专家和工程师组成的团队不断修改和完善。规范委员会的成员们逐行深入理解规范,提交了许多改进建议,从而增加了规范的一致性和可读性。
TPM 2.0规范最终在2015年被批准为ISO/IEC国际标准(ISO/IEC 11889:2015)。这一标准结合了硬件和软件的安全技术,保护加密密钥,防止私钥泄露,并记录和匿名报告启动过程中的软件。
TPM的标准
可信计算组(TCG)发布的TPM 2.0规范于2015年被批准为ISO/IEC国际标准,成为ISO/IEC 11889:2015。这个标准得到了多个国家的支持,并结合了硬件和软件的安全技术,提供了强大的安全保障。TPM 2.0不仅保护加密密钥、防止私钥泄露,还能够屏蔽用于身份验证的PIN码,并记录和匿名报告启动过程中的软件。
TPM的常见用途
- 存储和管理密码:TPM可以存储和管理BIOS开机密码和硬盘密码,比传统BIOS提供更高的安全性。传统BIOS存储的密码可以通过清除CMOS电池来重置,而TPM则不会受此影响。
- 广泛的加密功能:TPM不仅可以进行开机加密和硬盘加密,还能加密系统登录、应用软件登录等信息。比如MSN、QQ、网游和网上银行的登录信息都可以通过TPM加密后再进行传输,防止信息和密码被窃取。
- 加密硬盘分区:TPM可以加密硬盘的任意分区,保护敏感文件的安全。一些笔记本厂商采用TPM实现一键恢复功能,一些大型商业软件公司(如Microsoft)的加密分区功能也依赖于TPM。
- 支持安全启动(Secure Boot):TPM可以确保系统在启动过程中没有被篡改,防止恶意软件的加载。通过验证启动过程中的每一个组件,TPM确保系统的完整性。
- 增强的虚拟化安全:在虚拟化环境中,TPM可以用于隔离虚拟机之间的安全策略,确保每个虚拟机的安全配置独立于其他虚拟机。
- 远程证明(Remote Attestation):TPM可以生成系统的可信报告,供远程系统验证。通过这种方式,TPM能够在网络环境中提供设备的可信状态,增加网络通信的安全性。
发展历程小结
TPM规范经历了两次主要的改进:
- TPM 1.1b到1.2:主要涉及新旧功能的合并和功能增加,尽管功能逐渐增强,但复杂性也增加。
- TPM 2.0:从底层重新设计,更加集成化和统一的架构,以应对SHA-1的弱点,并提供更灵活的算法支持。
TPM技术不断发展,为计算机系统提供了强大的安全保障,成为现代计算机和网络设备中不可或缺的一部分。TPM的广泛应用不仅在于其硬件设计的安全性,还在于其能够与多种软件配合使用,提供全面的安全解决方案。通过TPM的技术,用户可以实现数据的安全存储、传输和管理,确保计算环境的整体安全。