在较新版本的 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 的博客