受信任的执行环境(TEE):这是一个基于软件的构造,该构造在运行时上下文的常规范围内实现。它可以使用纯软件,也可以使用CPU和特定的操作码(即Intel SGX或ARM等效产品)以提供“硬件支持的安全性概念” [1]。它是围绕数据的逻辑墙,只有信任[2]实现,您才能信任它。最多可能是NIST FIPS 140-2 1级(已批准的算法),但决不能超过此水平,除非整个设备都经过加固。
硬件安全模块(HSM):这是一个完全独立的运行时上下文。在这种情况下,它必须是可信平台模块(TPM),因为我们正在谈论的是Android设备,包括设备上的其他硬件。在企业级别,HSM是一个单独的计算环境,通常在PCIe卡上实现。 TPM可能可以达到FIPS 140-2 2级(很明显的防篡改),但只有在设备本身在TPM周围硬化的情况下,TPM才能达到更高的级别(3和4)。因为它是一个单独的运行时上下文,所以操作系统将向其发送数据,并且其中包含的密钥将用于加密或签名或hmac或要求执行的任何操作。如果发生篡改,则应该(如果是2级)删除密钥。
对于问题的第二部分,它没有任何真正的安全性,也没有作为“合理的密码协处理器”的任何用处。
TPM上的存储,算法选择和处理速度将比集成TPM的主平台少。可以考虑使用“三个或四个键”,而不要使用几十个,数百个或数千个键(尽管键的数量将受TPM上的NV RAM限制,因此将其分类为“不确定”)。
这是Keymaster Strongbox硬件抽象层(HAL)支持的算法列表:
RSA 2048
AES 128和256
ECDSA P-256
HMAC-SHA256(支持8字节至64字节(包括两端)的密钥大小)
三重DES 168
因此没有EdDSA(ed25519)。没有RSA 4k密钥。没有SHA3家庭。而且它支持3DES,因此无需担心FIPS认证,它的包含意味着Android开发团队希望获得商品(廉价)TPM,因为包含3DES意味着它们支持TPM <1.2,因此甚至不支持modern商品TPM。
由于问题的第二部分,我一直在提出FIPS-“我们可以将其用作加密解决方案吗”。
TPM将比主CPU慢[3]。
TPM旨在保护其连接的平台,而不是为第三方应用程序提供批量加密,除非有特殊要求(静态数据加密,DH密钥交换)。
[1]硬件支持的安全性的概念,因为它可能使用特定的操作码来通过CPU动态地解密/加密数据。也就是说,在这种情况下,“硬件”是CPU。
[2]标签中内置了“信任”。
[3]是的,有时ASIC速度更快。但是,我们谈论的是大众市场的商品硬件。如果您需要批量交易,并且需要安全加密,请购买真正的HSM。