Sto sviluppando un'app per Android che gestirà potenzialmente dati sensibili degli utenti, e alcuni di essi potrebbero anche essere considerati dati medici (ad esempio altezza, peso, allergie dell'utente, ecc.).
Quali sarebbero le pratiche di sicurezza raccomandate per proteggere i dati dell'utente sia dal punto di vista del lato client che lato server?
Non sto parlando di pratiche necessarie per ottenere le certificazioni governative, ma solo pratiche forti, testate e consigliate per una buona protezione delle informazioni degli utenti.
Ad esempio, sul lato client, la crittografia del database (con SQLCipher forse?) in ogni momento, e basta decrittografare le informazioni quando necessario . Se qualcuna di queste informazioni dovesse lasciare il dispositivo, SSL sarebbe indispensabile. Non memorizzare mai la password di un utente. Gestione della sessione di autenticazione, ecc. Problemi di memorizzazione nella cache, dovrei memorizzare nella cache frequentemente l'accesso o decrittografarlo da db ogni volta che è necessario?
Sul lato server, l'hashing e il saling delle password invece di memorizzare password in chiaro sono anche standard del settore.
Punti bonus per riferimenti o spiegazioni su come per implementare correttamente tali pratiche.
Chiarimento: non sto affermando che l'esempio di cui sopra pratica sono in effetti buone pratiche, è solo per illustrare il tipo di pratiche generali di cui sto parlando.