Come proteggere le credenziali di autenticazione di base REST di Android contro il reverse engineering?

1

Per quanto ne so, nell'autenticazione dell'API REST di base, il nome utente e la password per accedere alle risorse del servizio Web sono integrati nel codice dell'app. D'altra parte, sembra non difficile da decodificare il file .apk di un'applicazione per ottenere il codice java contenente le credenziali REST.

Quindi mi chiedo se ci sono modi per garantire le credenziali contro la rivelazione dell'ingegneria inversa?

    
posta Karlom 30.05.2016 - 03:55
fonte

1 risposta

2

La pratica migliore è quella di non memorizzare le credenziali di accesso all'interno del programma. Le app non sempre contengono (a meno che non siano progettate male) credenziali specifiche per accedere all'API.

Sebbene l'aggiunta di credenziali al codice possa dissuadere gli aggressori generali, non fermerà gli attaccanti che possono aprire il pacchetto ed estrarre i dettagli. Poiché qualcosa che può essere rotto da alcuni è considerato vulnerabile, anche il modo giusto per implementarlo sarebbe il seguente.

  1. Aggiungi non le credenziali nell'API
  2. Una volta installata l'APP, generare credenziali e registrarsi con il server. (potrebbe essere nome utente e password o potrebbe essere un certificato lato client)
  3. Ottieni un token di accesso utilizzando queste credenziali.
  4. Utilizza il token di accesso per accedere all'API

Poiché puoi controllare in modo efficiente il processo di registrazione e consentire l'accesso a parti sicure dell'API basate sul token di accesso, la tua implementazione dovrebbe essere abbastanza sicura se usi SSL / TLS per loro.

    
risposta data 30.05.2016 - 06:14
fonte

Leggi altre domande sui tag