如何在反应原生客户端安全地存储密钥?

时间:2016-11-16 16:19:09

标签: react-native

让我们说我正在构建一个带有firebase的react-native应用程序,它假设在应用程序中有密钥。有人可以窃取钥匙吗?如果是这样,那么我该如何保护呢?

1 个答案:

答案 0 :(得分:4)

由于您无法控制对源的访问,因此没有100%安全的方式来存储设备上的任何秘密。保证密钥安全性的唯一方法是首先不要将它们放在设备上。

您找到的任何解决方案都会有一个缺陷,this article by Michael Ramirez

非常清楚地说明了这一点

你需要平衡你真正需要这些密钥的安全性。

例如,在Android上,我们会将一些我们关心的密钥存储在res / values / secrets.xml字符串文件中,而不是谷歌和其他API,而该文件未提交版本控制。某人strings out_app.api很容易,但我们已经决定不再关心如何保护这些密钥。

<resources>
    <string name="google_api_key">OurApiKey</string>
</resources>

如果你在Android和&amp ;;上使用ReactNative根据您要存储的密钥类型,您可以使用Android Keystore System来使用Keystore API 但是,我认为这不适用于存储Firebase密钥。