2013-04-30 77 views
2

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

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

+1

使它在ssl上工作,执行POST请求。或通过共享密钥对其进行加密,并为密钥创建静态值,并将其保存在代码中,并对其进行混淆处理,然后在服务器端加密解密。 – 2013-04-30 05:43:11

回答

1

简而言之,只要它仍然在android应用程序中,您就无法保护您的API密钥。 即使您以某种方式加密API密钥,对您的应用程序进行反向工程(反编译)的人也可以检索API密钥,因为您的解密密钥也需要位于APK中某处(否则您的应用程序无法使用该API密钥)。

唯一的解决方案是将API密钥处理卸载到您自己的服务器上,并让您的应用程序与该服务器通信(意思是SSL)。

通过这种方式,您可以转向单一安全故障点(您的服务器),而不是大量的可逆向设计且难以追踪的移动应用程序(随时间安装的不同版本)

0

有几个解决方案,但不是所有的都很容易解决。

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

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