So this relates to the API keys used by developers to access their own backend APIs and the APIs of third parties, such as Facebook or Twitter. There are suggestions in comments here that you hide your third party API keys in your own backend server, and your app queries for the API keys and then makes the call from the client using the temporary downloaded keys. So how do you secure your own server's API keys? That'…
To avoid the need of storing secret tokens on a mobile device, Facebook
leverages the presence of the official Facebook Android application on
Android devices. The Facebook SDK allows third-party applications to use
Android intents to proxy requests for user access tokens through Facebook's
Android application, where the user is already authenticated. To retrieve a
user's access token with the Facebook SDK, the Android application identifier
of a third-party application must be registered on its Facebook application
settings page. This allows Facebook's Android application to respond to the
third-party application's access token request by verifying the application
identifier in the intent to the one officially registered online. Only the
application identifer is needed and no secret key is compromised since it
is retrieved at runtime. This technique relies on the robustness of Android
since the source of the Android intent is assumed not to be spoofable.
Does anyone have a clearer description of this process. I've now read this extract three times and I'm none the wiser.[1] http://www.cs.columbia.edu/~nieh/pubs/sigmetrics2014_playdro...