Un sistema che sto implementando richiede a un utente di creare un singolo utente, con una singola password di accesso.
Voglio avere un'unica password per il sistema e non richiedere più voci di password diverse per crittografare / decodificare i file dopo l'accesso (lo scopo principale di questo sistema).
Il modo in cui l'ho implementato è: quando l'utente esegue la prima configurazione sulla password dell'account,
- la password è hash (briptata) *
- viene generato un sale *
- viene generata una chiave crittografica utilizzando PBKDF2 (basato sul sale)
- vengono generati 256 bit casuali
- i 256 bit sono crittografati con la chiave derivata usando PBKDF2 *
Tutte le informazioni "*" sopra sono memorizzate in un database
I 256 bit decrittografati vengono utilizzati per la crittografia / decrittografia dei file effettivi.
Il motivo per cui lo sto facendo in questo modo, è se il singolo utente decide di cambiare la sua password, i file saranno comunque decifrabili (devo solo crittografare nuovamente i 256 bit casuali con la nuova password).
Questo è un approccio comune e sicuro?