Memorizzazione della chiave di sessione per l'app iOS

4

Per un'app iOS che comunica con un servizio RESTful su HTTPS, la chiave di sessione deve essere memorizzata in Keychain o NSUserDefaults? Username e password sono memorizzati in Keychain, e sembrerebbe banale anche memorizzare la sessionKey.

Ma dal punto di vista della sicurezza, questo ti dà una maggiore sicurezza? Presumibilmente se qualcuno è in grado di accedere ai tuoi NSUserDefaults, sono anche in grado di vedere il traffico delle tue richieste HTTPS da quella app?

    
posta Marc Cenedella 11.07.2013 - 16:59
fonte

1 risposta

2

NSUserDefaults non è crittografato e viene memorizzato in un file .plist di testo semplice - può essere facilmente aperto e letto, sia sul dispositivo che quando sincronizzato su un Mac. NSUserDefaults è per le preferenze, non per la memorizzazione di informazioni di accesso sicure Dati sensibili come password e chiavi. Le chiavi dovrebbero essere memorizzate nel portachiavi. Apple Portachiavi Guida alla programmazione dei servizi afferma che un "portachiavi è un contenitore crittografato che contiene password per più applicazioni e servizi sicuri." I portachiavi sono contenitori di archiviazione sicuri, il che significa che quando il portachiavi è bloccato, nessuno può accedere ai suoi contenuti protetti ". Inoltre, in iOS, ogni applicazione ha accesso solo ai propri portachiavi.

Poiché è stato suggerito lynks , le chiavi di sessione non devono essere archiviate in modo persistente. Indipendentemente da ciò, consiglio di consultare i seguenti esempi / framework:

risposta data 18.04.2014 - 20:28
fonte

Leggi altre domande sui tag