小编SOM*_*GUY的帖子

在 Android (flutter) 应用程序中安全地保存 API 密钥

我知道这个问题已经被问过很多次了。我已经阅读了所有这些。我已经在谷歌中搜索过这个问题,但我仍然有一些我无法找到答案的问题。

目前我正在我的应用程序中存储 API 密钥。是的,这是一种不好的做法。现在据我所知,我可以使用 ProGaurd 或 DexGaurd 进行混淆。我还可以使用 Keystore 来安全地存储我的 api 密钥。现在对于这一部分,我的问题是: - 混淆会更改变量和类的名称。当有人反编译 apk 文件时,我的 API 密钥仍将在该应用程序中。当然可能需要更多时间,但又需要多少时间呢?例如20分钟?我觉得最重要的是,如果他们投入一些时间和精力,他们可以使用此密钥。我弄错了吗?

现在我在不同网站上看到的另一个答案是我可以将我的密钥存储在服务器上,然后通过我的应用程序进行通信。

  • 这怎么可能呢?服务器将把 api 密钥发送到应用程序。如果黑客找到了这个 url,他们可以打开它并获取密钥。如果我使用密钥访问 URL,那么我将进入一个永无止境的密钥循环。我该怎么做?

  • 有人说我可以加密我的密钥,然后在收到应用程序后将它们解密。但是人们不能反编译我的解密函数并找出我的密钥吗?

我还被告知 Firebase 远程配置将成为存储我的密钥的安全方法。但是还有另一个问题

  • 这种方法有多安全?
  • 如果我使用 google services json 文件来标识我的项目,那么人们不能从删除配置部分获取我的密钥吗?因为我在我的控制台上看不到任何删除配置的设置,以便说明谁可以访问这个,谁不能。如何在 Firebase 上安全地存储我的 api 密钥?

  • 黑客不能反编译 apk 并更改代码并从我的 firebase 帐户中提取数据吗?因为谷歌服务json在那里。如果他们打印提取的数据,他们可以访问所有内容吗?

那么我到底应该怎么做才能安全地将 api 密钥用于我的第三方应用程序?其中一些 api 密钥非常有价值,其中一些只是从其他服务器获取信息。我只想知道存储这些密钥的最安全方法。

security api android firebase flutter

5
推荐指数
2
解决办法
4509
查看次数

标签 统计

android ×1

api ×1

firebase ×1

flutter ×1

security ×1