“ TPM 芯片”是:
可以存储保护信息的加密密钥的安全加密处理器
FIPS 140-2需要一个加密模块,它可以是经过认证的硬件、软件或两者。
如果我使用 Bitlocker 作为加密模块,是否需要 TPM 作为该加密模块的另一部分?
FIPS 140-2 安全级别 1 合规性是否需要 TPM?
安全级别 2 呢?
“ TPM 芯片”是:
可以存储保护信息的加密密钥的安全加密处理器
FIPS 140-2需要一个加密模块,它可以是经过认证的硬件、软件或两者。
如果我使用 Bitlocker 作为加密模块,是否需要 TPM 作为该加密模块的另一部分?
FIPS 140-2 安全级别 1 合规性是否需要 TPM?
安全级别 2 呢?
不,绝对不是。FIPS 140-2 1 级本质上是对您的加密模块的测试:
软件可以在 FIPS 140 1 级进行验证,无需涉及特殊硬件。FIPS 140 1 级并不表示可以抵抗具有硬件访问权限的攻击者,除非硬件是评估目标的一部分。如果您有 FIPS 140 1 级合规性的要求,那么无论机密是否存储在 TPM 中,使用 Bitlocker(其批准版本,在批准版本的 Windows 下以 FIPS 模式运行)就足够了。
在 FIPS 140 级别 2 中,硬件必须是评估目标的一部分,但安全要求仅限于防篡改。对此,TPM 是多余的(TPM 提供了防篡改功能,因此原则上经过适当设计的基于 TPM 的系统可以达到 FIPS 140 级别 3,尽管存在一些难点,超过级别 2 不太可能实现)。您可以浏览(非秘密)FIPS-140 验证模块的列表。请注意,该列表不包括 Bitlocker+TPM 组合,事实上到目前为止还没有 TPM 获得 FIPS 140 2 级认证。
认证 TPM 的障碍之一是它包含大量算法,其中许多未经批准。TPM 不提供禁用这些算法或将所有 FIPS 模式数据与非 FIPS 模式数据隔离的好方法。然而,这必须完成,并且不仅要在操作期间进行跟踪,还要在 TPM 的整个生命周期内进行跟踪,因为 TPM 包括非易失性存储。(你怎么知道存储在 FIPS 模式下的密钥不会泄露到非 FIPS 模式,在非 FIPS 模式下,它用于使用损坏的算法加密某些数据?)另一个障碍是所有经过认证的算法在设备启动时都会进行自检,这需要一段时间(TPM 的芯片非常慢)。
顺便说一句,如果您没有 FIPS 一致性的法律或合同要求,并且您不需要引用 FIPS 一致性作为商业论据,那么不要担心 FIPS 一致性。尤其是在第 1 级,尤其是在 Windows 等安全记录不佳的复杂开放操作系统上运行时。FIPS 符合性并不代表安全,AviD 的法规遵从法在这里非常适用:FIPS 符合性降低了不符合项处罚的风险. 如果您在 Windows 下运行,我建议您使用 Bitlocker,不是因为任何一致性,而是因为它是由专家编写的,已经过大量测试,并且正在积极维护中。这样,您可以专注于整体安全性的真正弱点,例如 50% 的用户将使用1234他们的 PIN,而其他 50% 的用户将使用他们的生日。
如果您要求扩展 Bitlocker 安全性,TPM 无疑是一个不错且便宜的开始。但它不会为您提供合规性,也不会为您提供完全的安全性。
基本上,对 Bitlocker 的攻击(除了密码短语暴力破解和物理攻击 TPM 的 LPC 总线)是用户界面欺骗攻击。例如,我替换了您的引导加载程序以记录您在 bitlocker 对话框中键入的密码,或者我伪造了 bitlocker 对话框本身。使用 TPM 可以使此类攻击更加困难,因为密钥绑定到“正确的”引导加载程序。但是,仍然可以更换引导加载程序,存储密码以供以后检索,然后恢复原始引导加载程序并重新启动。作为用户,您只会看到意外的重新启动,并且可能不会对刚刚发生的事情有太多疑问。
这种“邪恶女仆”攻击是家喻户晓的,前段时间在 InvisibleThings 博客中提到过,德国 Fraunhofer SIT 也有一个不错的视频演示: http ://testlab.sit.fraunhofer.de/content/output/project_results/ bitlocker_skimming/
从理论上讲,TPM 可以用作智能卡的直接替代品。Linux 的 Trousers 软件堆栈实际上为此目的导出了一个 PKCS#11 接口,AFAIK Windows 8 将允许通过其 Card Service Provider API 访问 TPM。但是,在这方面,TPM 只会为您提供针对 PIN 暴力破解的基本保护。现有的 TPM 不能保证篡改证据。此外,您没有安全的 PIN 输入方法,也没有安全的显示。任何人都可以在通往 TPM 的途中截获 PIN,就像使用 1 类智能卡读卡器一样。未来,可信执行技术(TXT、SVM、TrustZone)可能会为您提供安全的用户 I/O,但这在今天还远远不能使用。