如何保护 Android 应用程序中的 API 密钥

信息安全 安卓 api 钥匙
2021-08-26 15:27:25

我正在开发一个与 RESTFull 服务器通信的 Android 应用程序。我们做了这是插在头部的API密钥GETPOST请求。此 API 密钥存储在字符串中。应用程序不再使用,服务器也已关闭。

我找到了app.apk文件并且很好奇它是如何安全的,所以我反编译了它的源代码并在那里找到了 API Key。我们没有使用,ProGuard因为我们没有时间。

问题是如何在 android 应用程序中存储 API 密钥,因为这样我也可以获得Google MapsAPI 密钥。

在此处输入图像描述

1个回答

那么,您是在问是否可以将 API Key 存储在 App 中,还可以保护它不被盗?这不可能。

有一种可能的解决方案可以使盗窃更加困难。使用 OTP XOR 加密,以便将 API 密钥分成必须组合的两部分。

第一部分存储在您的应用程序中。

第二部分从您的服务器设备下载,然后存储在 App-Private 数据中,最好以不使其目的明显的方式存储。或者,您可以“不存储”第二部分,(仅将其保存在ApplicationMemory 或IntentExtras 中)但是每次启动应用程序时您都必须从服务器下载它。

然后您可以使用 Progard 使整个应用程序更难理解。

当然,这些只会使盗窃变得更加困难,并不能真正保护钥匙免遭盗窃。

如果您确实需要保护密钥,那么您必须通过您控制的代理服务器将所有请求路由到 Google Maps API。该代理服务器可以根据需要将 API 密钥添加到每个请求。