Ho un'app Xamarin.Forms che utilizza un database SqLite locale come origine dei dati. I dati sono proprietari, quindi voglio proteggerli in modo che se qualcuno accede al file del database, dovrebbero decrittografarlo per accedere ai dati.Protezione dei dati proprietari locali in un'app Xamarin
Desidero anche limitare il numero di query che gli utenti possono eseguire sul database in modo che a un certo punto debbano acquistare la possibilità di utilizzare più dati (acquisto in-app).
Desidero evitare le chiamate di rete il più possibile per ridurre al minimo l'impatto sul piano dati dell'utente e consentire all'app di funzionare correttamente in condizioni di scarsa o inesistente connettività. Quindi, voglio i dati memorizzati in un database locale (forse in SqLite).
Sono curioso di come persone diverse si avvicinerebbero a questo problema per proteggere i dati e allo stesso tempo ridurre al minimo l'utilizzo della rete.
Ecco tipo di quello che pensavo (se è possibile):
1) Facciamo il download utente/installare l'applicazione.
2) Al primo caricamento, l'app carica una chiave in base all'id del dispositivo e alle informazioni di acquisto correnti dell'utente. Quindi scaricherà un file di database SqLite che è stato crittografato utilizzando la chiave caricata.
3) Quando l'utente raggiunge il limite di richieste, il file di database viene eliminato. Se acquistano più dati, viene caricata una nuova chiave e scaricato un nuovo database crittografato.
Pensieri? C'è un modo migliore?
bella domanda, vediamo cosa altri diranno, se il database è memorizzato limitare localmente le query o la cancellazione del database non aiuta molto, credo, l'utente può trovare un modo per l'accesso il database senza aprire l'app ma decifrare l'intero database dovrebbe essere sufficiente – CDrosos