【问题标题】:TEE/HSM support on Android operating system安卓操作系统支持 TEE/HSM
【发布时间】:2018-10-09 09:47:19
【问题描述】:

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

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

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

【问题讨论】:

标签: android android-keystore selinux hsm


【解决方案1】:

可信执行环境 (TEE):这是一种基于软件的构造,在运行时上下文的正常范围内实现。它可以使用纯软件,也可以使用 CPU 和特定操作码(即Intel SGXARM's 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 现代商品 TPM。

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

而且 TPM 会比主 CPU [3] 慢。

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

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

[2]“信任”内置于标签中。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多