2017-06-13 42 views
1

我目前使用的是我生成的google API密钥,我把它放在android应用程序中以访问SafetyNetGoogle Maps。我计划将所有对Google Maps API的调用都转移到我自己的服务器上,在那里我将我的Google API密钥存储在服务器上,而不是存储在客户端中。但之后,我还在我的应用中使用SafetyNet API,并且需要在Android应用的应用中使用google API密钥才能拨打电话以获得JWS响应。所以我陷入了困境。如果我没有使用SafetyNet但我需要使用它,我不希望在应用中的任何位置使用google API密钥。如何使用SafetyNet真正保护Android应用的google api密钥?

+0

是API密钥保护(Android应用程序限制还是IP限制)?如果是这样,你可以在你的应用程序中安全地使用它。 – xomena

回答

1

随着the new API(Play Services 11.0.0+),API密钥不再存储在清单中。您将它作为参数传递给证明调用,而这会打开一串新的方法来保护您的密钥。例如:

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

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

但是,有一个单独的密钥只是为了证明应该是绰绰有余。钥匙只与您的免费配额挂钩,并且can be easily increased。正因为如此,潜在的攻击者窃取你的密钥的动机并不大,即使它被盗,它也不会对你产生负面影响,因为认证API是免费的。

相关问题