2

我目前正在使用我生成的谷歌 API 密钥,并将其放入 android 应用程序中以访问SafetyNetGoogle Maps. 我计划将所有对 Google Maps API 的调用转移到我自己的服务器上,我将我的 Google API 密钥存储在服务器上而不是客户端中。但是,我也在SafetyNet我的应用程序中使用了 API,并且谷歌 API 密钥需要在应用程序中,以便 android 应用程序进行调用以获取JWS响应。所以我陷入了一个难题。我不希望应用程序中的任何地方都有 google API 密钥,如果我不使用它会很好,SafetyNet但我需要使用它。

4

1 回答 1

2

使用新的 API(Play Services 11.0.0+),API 密钥不再存储在清单中。相反,您将它作为参数传递给证明调用,这打开了许多新方法来保护您的密钥。例如:

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

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

但是,拥有一个仅用于证明的单独密钥应该绰绰有余。密钥只与您的配额绑定,免费,并且可以轻松增加。因此,潜在攻击者窃取您的密钥的动机不大,即使它被盗,也不会真正对您产生负面影响,因为证明 API 是免费的。

于 2017-07-20T06:12:54.957 回答