在android中保护你的api密钥

时间:2013-04-30 05:40:19

标签: android sniffing api-key

我正在使用TMDB api创建一个应用程序,并且已经按顺序发出了一些REST请求 获取请求的数据。我想知道黑客是否有可能嗅探网址并检索api密钥,因为密钥存在于网址中。

如果是,我该如何保护钥匙?

2 个答案:

答案 0 :(得分:2)

简单地说,只要它保留在Android应用程序中,就无法保护您的API密钥。 即使您以某种方式加密API密钥,对您的应用进行逆向工程(反编译)的人也可以检索API密钥,因为您的解密密钥也需要位于APK中的某个位置(否则您的应用无法使用API​​密钥)。

唯一的解决方案是使用API​​密钥将处理卸载到您自己的服务器,并使用一种安全的方式让您的应用与该服务器通信(即SSL)。

通过这种方式,您可以在安全方面(您的服务器)转移到单点故障点,而不是可以进行逆向工程并且难以跟踪的大量移动应用程序(随着时间的推移安装了不同的版本)< / p>

答案 1 :(得分:0)

有几种解决方案但并非所有解决方案都很容易实现。

如果您在执行HTTP请求时害怕中间人攻击,则可能需要考虑使用HTTPS。然后加密所有数据,包括URL。这高度依赖于服务器,因为它是必须处理HTTPS请求而不是HTTP的服务器。

如果你害怕人们逆向工程你的dexed和编译apk。您可能需要考虑obfuscation。这将使你的apk不可逆,但至少很难这样做。

相关问题