2017-06-13 41 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是免費的。

相關問題