Desidero sviluppare un'app per Android che possa contenere informazioni sensibili sull'identificazione personale (numero identificativo nazionale, numero di telefono, ecc.) tra gli altri dati che verranno memorizzati su un telefono Android.
Diciamo che questi dati saranno mantenuti sul telefono, che è offline la maggior parte del tempo, e ha una finestra temporale molto piccola e non molto frequente per inviare i dati a un server remoto.
Voglio proteggere (crittografare?) questi dati in modo che in una situazione in cui il telefono venga rubato, qualcuno con una conoscenza tecnologica non possa effettuare il root del telefono, accedere alla memoria dell'app e accedere alle informazioni.
I dati non devono essere decodificati sul telefono, quindi possono essere inviati crittografati al server, ma il server deve essere in grado di decrittografarli lì.
Quali sono le opzioni qui? I certificati o le chiavi pubbliche / private sono adatte a questo, oppure sono troppo difettosi?
Quali sono i vantaggi e gli svantaggi di ciascuna soluzione?