Sono curioso di sapere quanto è sicuro il seguente approccio per l'autenticazione:
- Per ogni account crittografo i dati con una struttura nota utilizzando un algoritmo simmetrico (ad esempio AES o twofish) con una chiave derivata da password. I dati possono essere ad esempio un oggetto codificato JSON, un XML o qualsiasi altra cosa, che è facile da verificare. Uso diversi IV da ogni account, una modalità di operazione sicura, crittografia a blocchi, ecc ...
- Per accesso provo a decrittografare il testo cifrato con una chiave derivata dalla password specificata.
- Se i dati risultanti hanno la struttura corretta, la password è ok e l'utente è autenticato. Altrimenti la password era sbagliata e il tentativo di accesso non è riuscito.
C'è qualche svantaggio di questo approccio rispetto alla solita password salting e hashing?