在Android版本16及更高版本上安全地存储数据

时间:2018-10-23 15:18:59

标签: android android-keystore android-security

我有一个需要支持版本16及更高版本的android应用程序。为此,我必须将许可证字符串安全地存储在设备上。

我最初的想法是使用KeyStore生成密钥对并在共享首选项上存储加密的许可证字符串。但是后来发现KeyStore仅在版本18及更高版本中可用。

Android keyChain在版本14及更高版本上可用。但是据我了解,KeyChain旨在安全地存储证书。但是我看到了一些将一些密钥存储到钥匙串here中的示例。

我是安全存储方面的新手,考虑到我必须支持16及更高版本,什么是将许可证字符串安全存储在android设备上的最佳选择?

谢谢

1 个答案:

答案 0 :(得分:0)

这是一个棘手的问题。 KeyChain旨在用作系统范围的密钥存储系统。这意味着所有用户(在较早的android版本中应该是没有问题的,因为它们仅为单用户),并且所有应用程序都可以访问钥匙串。而“所有应用程序”部分对于您的用例来说是个问题。

您可以向用户查询某种凭证(例如密码)吗?如果是这样,您可以使用该密码通过一些标准的加密主题(AES-GCM或类似的东西)来加密/解密证书,并将加密的数据存储在应用程序的存储区域中。