我知道 TPM 的背书密钥 (EK) 存储在非易失性存储器(例如 EEPROM)中,不可迁移到 TPM 之外。与 EK 一样,存储根密钥 (SRK) 也是不可迁移的。
是什么让它们不可迁移?是通过一些保护代码还是内部IC结构的设计来实现的?
我知道 TPM 的背书密钥 (EK) 存储在非易失性存储器(例如 EEPROM)中,不可迁移到 TPM 之外。与 EK 一样,存储根密钥 (SRK) 也是不可迁移的。
是什么让它们不可迁移?是通过一些保护代码还是内部IC结构的设计来实现的?
小心,这里的术语真的很可疑。
我知道这个错误是一个诚实的错误,但即使询问这些密钥的可迁移性也是没有意义的。
Endorsement Key
不是“不可迁移的” 。迁移的想法甚至不适用于此键。它很特别。它的私有部分在 TPM 之外是完全不可访问的。恕我直言,讨论其移民候选资格显然是不正确的。
也就是说,你的问题变得模棱两可。
如果您问“为什么我不能将 EK 转移到另一个 TPM”,这是由 TCG 的 TPM 规范强制执行的,那么设计抽象地将此密钥视为分立芯片的根标识。
如果您问“TPM 如何保证这个特殊密钥的安全”,那么其他答案解决了这个问题;实施是特定于供应商的。物理 IC TPM 可能会设计为以某种方式对密钥进行物理保护,而软件 TPM 显然将具有(我希望经过良好测试)不提供输出密钥的代码路径的代码。
编辑:我在上面编辑了我的答案,只讨论了 EK。以前我也将 SRK 包含在这些术语中。然而,在可信计算实用指南第 3 章中,作者确实从不可迁移的角度讨论了 SRK。然而,他们并没有用这些术语来讨论 EK,正如我所建议的那样,这表明这个密钥是独一无二的。
固件(TPM 内运行的软件)的工作是实施约束,例如不可迁移性。TPM 应该受到物理保护,因此提取密钥的唯一方法是使用它实现的命令。如果软件实现的命令都没有返回 EK,则 EK 是不可迁移的。
你可以说它是两者的结合。硬件保护使所有密钥不可通过硬件方式迁移。在保护边界内运行的软件使一些密钥可迁移;它的设计使 EK 不包括在内。但实际上,“是什么让 EK 不可迁移”的有用答案是实现策略的组件,也就是软件。
那是特定于实现的,取决于制造商。