Modo migliore e sicuro per fare un protocollo di autenticazione tra il servizio web Restful e il client Android

0

Sto sviluppando un sistema che un client Android invia e riceve dati da un database mysql (connesso a un webservice restfull di java).

Per fare il metodo di autenticazione, non voglio inviare id e passare testo pulito nell'URL. Forse i metodi di hash e crittografia sono appropriati, con CHAP o un time pad per evitare attacchi di replay. Ma non sono sicuro che sia sufficiente.

Forse usare i token crittografici è un modo migliore. Ma sono nuovo con questo concetto. Qualche altra sugestione o buon tutorial per questo caso?

    
posta rew1nd 15.02.2017 - 12:53
fonte

2 risposte

2

Il modo migliore, come nella maggior parte dei casi, è utilizzare TLS. Quindi puoi semplicemente accedere usando username / password. Oltre all'autenticazione, probabilmente vuoi anche proteggere le richieste e le risposte. Non è spesso sufficiente proteggersi solo da intercettazioni, nella maggior parte dei casi sono possibili anche attacchi attivi (ad esempio quando si utilizzano connessioni WiFi non sicure).

Potresti anche dare un'occhiata al protocollo SRP , ma potrebbe essere più difficile se non lo sei ben informato sulla crittografia. Oltre a ciò, non fornisce una soluzione completa.

    
risposta data 20.02.2017 - 20:20
fonte
0

La combinazione di chiave pubblica-privata (RSA Algorithm) può essere considerata per la prima comunicazione. La chiave pubblica da trasferire dall'app Java (servizio / API di riposo) all'app per dispositivi mobili. Il dispositivo mobile ora deve passare uid / pwd crittografato dalla chiave pubblica. Una volta che la richiesta raggiunge l'app / API Java, utilizzando la chiave privata, l'API decodifica la data e la convalida. In caso di convalida, l'API genererà una chiave di crittografia univoca (SHA-256 è una buona opzione) e rimanderà al dispositivo. Inoltre, tutte le comunicazioni verranno crittografate e decodificate utilizzando questa chiave di crittografia.

    
risposta data 15.02.2017 - 15:27
fonte

Leggi altre domande sui tag