Memorizzazione delle credenziali per l'app desktop

1

Ho un'applicazione desktop scritta in C# con tre ruoli utente e alcuni utenti predefiniti. È anche possibile creare un altro utente o cambiare la password agli utenti predefiniti. L'app deve funzionare offline su Windows XP e successivi.
Qual è il modo migliore di lavorare con le credenziali dell'utente sul computer locale se devo avere utenti predefiniti? Ho pensato che Data Protection API (DPAPI) sia il modo migliore per gestirli, ma se ho capito bene, funziona solo per un utente Windows, quindi è inutile per me, perché devo spedire utenti predefiniti con l'installazione di app e non è sicuramente l'idea migliore per tenere quegli utenti predefiniti nel codice sorgente (anche se li salvo con DPAPI su disco dopo l'installazione).

    
posta Artholl 06.01.2016 - 16:35
fonte

1 risposta

1

Hai bisogno di testare le credenziali o di memorizzarle realmente?

Se tutto ciò che desideri è controllare se l'utente conosce determinate credenziali, quindi utilizzare una funzione di derivazione della chiave della password ( ad esempio, PKBDF2 , BCrypt o SCrypt ).

Se è davvero necessario archiviare le credenziali (ad esempio, è necessario inoltrarlo a un servizio esterno), la risposta è che è necessario rivedere il modello:

  • Se stai fornendo password pre-compilate per un servizio remoto (ad esempio, vuoi che tutti gli utenti condividano un account specifico su un server di posta), significa che stai utilizzando password codificate e che è Davvero brutto: non è possibile proteggerlo e ottenere queste password, anche se in questo momento offuscate, è solitamente molto facile per un attaccante ottenerlo. E una volta che un utente malintenzionato ha ottenuto quella password, può farlo per tutti gli altri.
  • Se la tua password pre-compilata è in realtà solo valori iniziali che dovrebbero essere modificati in seguito, lasciali vuoti e costringili a modificarli durante l'installazione.
risposta data 06.01.2016 - 17:13
fonte

Leggi altre domande sui tag