首页 > 解决方案 > 安卓操作系统支持 TEE/HSM

问题描述

Android 具有硬件支持的安全概念,如 TEE,并且在最新的 Android 中,Android Pie 设备可以具有 HSM(Strongbox)。

1.TEE和HSM的实际区别是什么?

2.Android HSM 是否可以用作白盒解决方案等密码学解决方案?

标签: androidandroid-keystoreselinuxhsm

解决方案


可信执行环境 (TEE):这是一个基于软件的构造,在运行时上下文的正常范围内实现。它可以使用纯软件,也可以使用 CPU 和特定的操作码(即Intel SGXARM 的 TrustZone)以提供“硬件支持的安全概念”[1]。它是围绕数据的一堵逻辑墙,只有在您信任 [2] 实现的情况下,您才能信任它。最多可能是 NIST FIPS 140-2 第 1 级(已批准的算法),但永远不会超过此值,除非整个设备都围绕它进行了强化。

硬件安全模块 (HSM):这是一个完全独立的运行时上下文。在这种情况下,它必须是可信平台模块 (TPM),因为我们讨论的是 Android 设备,包括设备上的附加硬件。在企业级别,HSM 是一个单独的计算环境,通常在 PCIe 卡上实现。TPM 可能可以达到 FIPS 140-2 级别 2(防篡改),但同样,只有在设备本身围绕 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,因此甚至不支持现代商品 TPM。

由于问题的第二部分——“我们可以将其用作密码学解决方案”,我不断提出 FIPS。

并且 TPM 将比主 CPU [3] 慢。

TPM 旨在保护它所连接的平台,而不是为第三方应用程序提供批量加密,除非有特定要求(静态数据加密、DH 密钥交换)。

[1] 硬件支持安全的概念,因为它可能使用特定的操作码,使用 CPU 动态解密/加密数据。即,在这种情况下,“硬件”是 CPU。

[2] “信任”是内置在标签中的。

[3] 是的,有时 ASIC 更快。但我们谈论的是大众市场的商品硬件。如果您需要大量且安全的加密货币,请购买真正的 HSM。


推荐阅读