我目前正在使用我生成的 Google API key ,并将其放入 Android 应用程序中来访问 SafetyNet
和 Google 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/