使用 KeyStore 在哪里存储 AES 密钥和数据?

Where to store AES Key and Data using KeyStore?

我有一些问题。我正在使用 KeyStore 在我的 React Native 应用程序中存储敏感数据。

我需要在哪里存储我的 AES 密钥?我必须在哪里存储加密数据(例如令牌)。什么是正常用例?我可以将它简单地存储在内部存储器上吗?

感谢您的帮助。

您可以将该数据存储在 sharedpreference 或数据库中。但存储在共享首选项中始终是不错的选择。

您应该将 AES 密钥存储在密钥库中。在某些设备上,如果受支持,这可能会转到安全硬件,从而产生更安全的选项。但是,从 API 23 开始支持密钥库支持的 AES。如果您的目标是更低的 API,那么我建议您生成一个 RSA 密钥,用于 AES 密钥包装。然后将 AES 密钥加密存储在共享首选项中,并将 RSA 加密存储在密钥库中。至于数据,您可以将数据存储在共享首选项或数据库中。这并不重要。

但是请注意,只要密钥未存储在安全硬件中,就无法阻止攻击者通过足够的努力和技能检索密钥。