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

时间:2018-11-15 09:34:54

标签: android keystore android-keystore

我有一个问题。我正在使用KeyStore在我的React Native Application中存储敏感数据。

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

您应将AES密钥存储在密钥库中。在某些设备上,如果受支持,则可能会转到安全的硬件上,从而获得更安全的选择。但是,从API 23开始就支持由密钥库支持的AES。如果您以较低的API为目标,那么我建议您生成一个用于AES密钥包装的RSA密钥。然后,AES密钥以共享首选项加密存储,而RSA则存储在密钥存储区。至于数据,您可以将数据存储在共享首选项或数据库中。没关系。

但是,请注意,只要密钥没有存储在安全的硬件中,就不会阻止攻击者以足够的努力和技能来检索密钥。