Secure android and server calls

1

Ho intenzione di aggiungere un sistema di autenticazione sulla mia app Android usando i servizi web.

Quando la mia app chiama il server usando una chiamata POST come posso proteggere il client non riesce a trovare l'URL e provare a fare i suoi messaggi e usarlo contro il mio server?

    
posta fxuser 01.01.2015 - 21:26
fonte

2 risposte

1

È necessario utilizzare la connessione HTTP protetta, ad esempio HTTPS. Non ho un esempio funzionante, ma dare un'occhiata alle classi sotto il pacchetto javax.net.ssl. *. Qui credo che il server lo supporti già. Se questo non è il caso, devi ottenere il server per supportarlo.

    
risposta data 02.01.2015 - 02:49
fonte
1

When my app calls the server using a POST call how can i secure the client can't find the URL and try to do his own posts and use this against my server?

È possibile utilizzare SSL / TLS per proteggere la connessione. L'endpoint dell'URL sarà crittografato. I client possono vedere che si connettono all'host "dominio.com", ma non conoscono il percorso effettivo, ad es. "Domain.com/secret.php"

Assicurati di utilizzare l'autenticazione reciproca. Questo perché il tuo dispositivo client non può essere considerato affidabile. Dovresti includere una chiave privata con la tua app che il tuo server verificherà attraverso una risposta di sfida. Senza autenticazione reciproca, è possibile utilizzare un proxy Web come il violinista per decodificare SSL.

È possibile utilizzare il keystore di Android per memorizzare la chiave privata. Si noti che se il telefono è rootato, è possibile recuperare la chiave privata. Il link sottostante indica che a root è proibito creare o elencare le chiavi. Tuttavia, il comando su consente a un utente root di passare a qualsiasi altro utente, che può quindi elencare le proprie chiavi.

Maggiori informazioni sull'uso del keystore per memorizzare il certificato: link

Per compromettere la tua app, l'utente malintenzionato deve prima sradicare il suo telefono, recuperare la chiave privata, capire l'algoritmo di crittografia, decrittografare la comunicazione e infine codificare un client che simula la tua app. Questo dovrebbe fornire una ragionevole quantità di sicurezza che dovrebbe scoraggiare la maggior parte degli attacchi occasionali.

    
risposta data 02.01.2015 - 03:58
fonte

Leggi altre domande sui tag