Come proteggere la chiave API nell'applicazione Android

3

Stavo lavorando su un'app Android che comunicava con il server RESTFull. Abbiamo creato una chiave API che è stata inserita nell'intestazione delle richieste GET e POST . Questa chiave API è stata memorizzata in Stringhe. L'app non viene più utilizzata e anche il server non funziona.

Ho trovato app.apk file ed ero curioso di sapere come è sicuro, quindi ho decompilato la sua sorgente e ho trovato la chiave API lì in questo modo. Non abbiamo utilizzato ProGuard perché non avevamo tempo.

Il queston è come memorizzare API Keys nelle applicazioni Android perché in questo modo posso anche ottenere Google Maps API Key.

    
posta magic-sudo 17.11.2016 - 16:52
fonte

1 risposta

7

Quindi, stai chiedendo se è possibile memorizzare la chiave API nell'app, ma anche proteggerla dal furto? Questo non è possibile.

C'è una possibile soluzione per rendere più difficile il furto. Utilizza la crittografia OTP XOR in modo che la chiave API sia divisa in due parti che devono essere combinate.

La prima parte è archiviata nella tua applicazione.

La seconda parte viene scaricata dall'apparecchiatura del server e quindi archiviata nei dati App-Private, preferibilmente in modo tale da non rendere evidente il suo scopo. In alternativa, potresti "non memorizzare" la seconda parte (tienilo in Application Memory o Intent Extras), ma dovresti scaricarlo dal server ogni volta che viene lanciata l'applicazione.

Quindi puoi usare Progard per rendere l'applicazione generale più difficile da capire.

Naturalmente questi sono solo i furti più difficili, e in realtà non proteggono la chiave dal furto.

Se veramente hai bisogno di proteggere la chiave, dovrai indirizzare tutte le richieste all'API di Google Maps attraverso un server Proxy che controlli. Quel server Proxy può aggiungere la chiave API a ogni richiesta, se necessario.

    
risposta data 17.11.2016 - 17:00
fonte

Leggi altre domande sui tag