UEFI 做了一个小演示,描述了为什么我们需要进入 TPM 2.0 而忘记 1.2。
首先,SHA-1 算法被认为是不安全的,正如他们所说,仅仅跳到 SHA-2 并不是长期有效的。所以TPM 2.0理论上支持各种散列算法。这是NIST 关于散列函数的政策。SHA-1 不应用于任何加密用途。(正如森林所说,sha-1 仅对碰撞很弱,使用带有 HMAC 的 SHA-1 并没有真正受到影响)
考虑到非对称密码学,RSA 并没有那么过时(虽然我们仍然使用适当长度的密钥),但也许有一天,由于Shor 的算法,整数分解的问题将不再是问题。我们需要任何类型的公钥密码术。所以有所有的椭圆曲线密码算法,离散对数算法,显然还有整数分解。(显然,椭圆曲线应该更容易受到 Shor 算法的攻击)。在 TPM 2.0 之前,我们唯一的选择是 RSA。可用的算法取决于供应商想要实现什么。
最后考虑对称加密,TPM 1.2 我们有 XOR,尤其是 AES。没有已知的针对 AES 的攻击,但是有选择是很好的。有 AES 的替代品,例如 Blowfish。并且必须有某种政治选择(AES 被 NSA 批准,一些人/国家可能认为这是一个不好的指标:«如果 NSA 批准,他们必须知道如何解密它»)
它应该更容易使用。我将引用 UEFI 演示文稿:
删除了令人困惑的启用/激活/禁用/停用状态 – 存在或不存在(ACPI 表) – 如果存在,即使未暴露给操作系统,也可以由固件使用
最后,TPM 2.0 包含 3 个永久层次结构键(平台、存储、隐私),而 TPM 1.2 只有一个。
Privacy 层次结构使用endorsementAuth,可用于生成 EK(endorsement Key,就像在 TPM 1.2 中一样),从而轻松生成 AIK(Attestation Identity Key),可用于直接匿名证明(使用零知识证明进行身份验证) )
安全层次结构使用ownerAuth并用于加密/解密数据。
平台层次结构使用PlatformAuth,可用于初始化 TPM,并启用/禁用其他层次结构的使用。
所以基本上,使用 3 个层次结构而不是 1 个层次结构,您可以做同样的事情,但授权更聪明。