Credenziali di accesso dell'utente utilizzate per la crittografia dei file

1

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?

    
posta Gregorio Di Stefano 04.04.2017 - 20:39
fonte

1 risposta

2

Sì, questo è un approccio praticabile. Tuttavia, mi vengono in mente alcuni problemi.

  1. Dovresti anche eliminare l'hash bcrypt , non solo la funzione PBKDF2
  2. Non dovresti usare i 256 bit casuali direttamente come chiave di crittografia (a meno che tu non sappia esattamente come funziona il tuo RNG e funzionerà sempre in tutte le versioni future). Invece, usa quei dati casuali come materiale di input per una corretta funzione di derivazione dei tasti (come HKDF).
risposta data 05.04.2017 - 12:01
fonte

Leggi altre domande sui tag