1

在较新版本的 Android 中(我猜是从 4.​​2 开始),有一个名为“硬件支持”和“仅软件”的选项。正如谷歌假设的那样:

Android 现在还支持您的 KeyChain 凭据的硬件支持存储,通过使密钥不可提取来提供更高的安全性。也就是说,一旦密钥在硬件支持的密钥存储 (安全元素、TPM 或 TrustZone)中,它们就可以用于加密操作,但不能导出私钥材料。甚至操作系统内核也无法访问此密钥材料。虽然并非所有基于 Android 的设备都支持硬件存储,但您可以在运行时检查硬件支持的存储是否可用

重点是我的

我无法理解的是:GalaxyNexus 和 Nexus 7 都有一个安全元件的 NFC 芯片,但它的存储类型是“仅限软件”。Nexus 4 有一个 NFC 安全元件,并且是“硬件支持的”,而 Nexus 7 (2013) 和 Nexus 5 没有 NFC 安全元件,但仍然是“硬件支持”。我可以在设置应用程序中手动检查,但是有没有办法在我的应用程序中检查这个?

正如 CommonsWare 提到的,我应该提供链接:这里提到了 Secure Element 与存储类型相关的第一个信息:另一个有用的信息来源是Nelenkov 的博客

4

1 回答 1

5

你真的读过博客吗?:) 目前“硬件支持”是指所有已发布设备的 TrustZone (TEE) 支持。出于政治原因,为此使用嵌入式安全元素相当棘手,并且当前的 Android 设备都没有 TMP。这留下了基于 TrustZone 的 TEE 实现。顺便说一句,Galaxy Nexus 也有一个,但驱动程序在发布版本中被禁用。它自 4.1 以来一直存在。

要从应用程序中检查,请使用KeyChain.isBoundKeyAlgorithm(String algorithm).

于 2013-11-27T09:43:45.763 回答