Desidero sviluppare un'app mobile bank (Windows Phone, Android, iOS) che interagisca con un canale bancario.
La prima volta che l'utente apre l'applicazione inizia il processo di scambio delle chiavi e alla fine di questo processo viene generato un SymmetricKey
a lungo termine che deve essere archiviato nel dispositivo mobile. Tutta la richiesta che invia al server criptare con questa chiave. Se qualcuno può rubare il SymmetricKey
lui / lei può dirottare la sessione utente. In modo semplice posso memorizzare SymmetricKey
in formato di testo normale. un'altra soluzione è quella di definire un MasterKey in Codice (Hardcode) e criptare il SymmetricKey
con MasterKey
. ma in questa soluzione esiste esattamente un MasterKey
per diverse istanze di app che si installano su dispositivi diversi. Se qualcuno può decompilare il codice dell'app mobile e recuperare MasterKey
lui / lei può recuperare SymmetricKey
Di nuovo, qual è la soluzione migliore per i dati sensibili in negozio nell'applicazione mobile?
Ho letto di un metodo che appartiene al sistema operativo mobile che garantisce che i dati siano archiviati in modo sicuro, ma tutti hanno bisogno di impostare l'account profilo dell'utente (es .: Protect()
e Unprotect()
in Windows Phone che necessita di un account Hotmail per essere set).
Posso generare diverse chiavi master per dispositivo diverso?