Sebbene sia piuttosto interessato, sono tutto tranne che un esperto in Sicurezza delle Informazioni, per favore reindirizzami su qualsiasi risorsa utile se la mia domanda è stupida o correggimi se le mie supposizioni sono sbagliate.
Durante la lettura della pagina Keepass Security mi è sembrato che il flusso di lavoro della generazione della password effettivamente utilizzata per crittografare il file kdbx dalla password immessa dall'utente (supponendo che nessun file chiave o l'account utente di Windows sia utilizzato) è il seguente:
- Prendi la password inserita dall'utente e cancellala (SHA-256)
- Genera password casuale / recuperale dal file kdbx
- Cripta l'hash dall'1% di volte in
N
utilizzando la chiave da 2 - Hash l'output di 3 usando nuovamente SHA-256
Quindi, l'output di 4 è la chiave per essere effettivamente utilizzato per crittografare il database.
Quello che mi sto chiedendo è: perché la seccatura con la chiave memorizzata in chiaro e crittografia? Perché non omettere solo i passaggi 2 e 3 e hash la password inserita dall'utente N
(o forse C*N
, con C
che rappresenta la relazione temporale tra AES-encrypting e SHA-256-hashing) volte? Sono abbastanza sicuro di trascurare qualcosa di importante qui e sarei grato se potessi illuminarmi.