android - 如果 Android 应用程序使用 SafetyNet,如何真正保护它的 google api key ?

标签 android google-maps security safetynet

我目前正在使用我生成的 Google API key ,并将其放入 Android 应用程序中来访问 SafetyNetGoogle map 。我计划将对 Google Maps API 的所有调用转移到我自己的服务器上,我将 Google API key 存储在服务器上而不是客户端中。但是,我还在我的应用程序中使用 SafetyNet API,并且 google API key 需要位于应用程序中,以便 Android 应用程序进行调用以获取 JWS 响应。所以我陷入了困境。我不想在应用程序中的任何地方使用 google API key ,如果我不使用 SafetyNet 就可以了,但我需要使用它。

最佳答案

the new API (Play Services 11.0.0+),API key 不再存储在 list 中。您可以将其作为参数传递给证明调用,这开辟了一系列保护 key 安全的新方法。例如:

  • 您可以在应用程序中混淆 key ,并以编程方式创建它。这只会让攻击者更难检索它。

  • 每次需要进行证明时,您都可以将 key 从服务器发送到客户端应用程序。这样 key 就永远不会存储在应用程序本身中。

但是,拥有一个单独的 key 仅用于证明就足够了。 key 仅与您的配额绑定(bind),该配额是免费的,并且 can be easily increased 。因此,潜在攻击者没有太多动机窃取您的 key ,即使 key 被盗,也不会真正对您产生负面影响,因为证明 API 是免费的。

关于android - 如果 Android 应用程序使用 SafetyNet,如何真正保护它的 google api key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510927/

相关文章:

java - 停止先前的 Handler postdelayed 并开始新的

ios - 如何在 iOS 中点击 Google map 标记信息窗口后显示表单?

php - 来自 xml 文件的谷歌地图上的多个标记

java - 找不到 Spring 默认登录页面

security - 如何保护网络服务器的图像上传目录?

java - 安装额外的 Java 依赖项到 React-Native 库

android - 味道 : run from Android Studio fails - run from device works

android - 在水平 ScrollView 中的 ImageView 列表之间添加边框/分隔符

ios - 形状,多边形,不会 swift 显示在 GoogleMaps 上

security - 如何配置 grails 和 shiro 将 cookie 标记为安全?