Crittografia delle password con una chiave lato client e server

2

Ho bisogno di un modo sicuro per memorizzare una password in un database, ma ho anche bisogno di un modo per riavere la password originale. Certo che se così non fosse, lo farei semplicemente. Per ovviare a questo problema, ho trovato la seguente soluzione, ma mi piacerebbe sapere se è sicuro.

Ho una chiave segreta sul server e un'altra chiave segreta che viene salvata nell'applicazione client. Quest'ultimo è diverso per ogni utente e una nuova chiave viene generata ogni volta che un utente effettua l'accesso.

L'unica volta che il server avrà entrambe le chiavi è quando un utente fa una richiesta e il server deve ottenere la password non elaborata. Ciò significa che quando il server viene violato le password sono ancora sicure, dal momento che hai solo metà della chiave totale, e dal momento che sto usando AES 256, hai ancora bisogno di rompere 128 bit.

Va bene o mi manca qualcosa di importante?

Modifica: ho bisogno di utilizzare la password del client nelle chiamate API ai servizi esterni

    
posta David Western 14.09.2016 - 14:44
fonte

1 risposta

1

Un paio di scenari di attacco che penso

  1. Innanzitutto, se il server è compromesso, l'attaccante può attendere (monitorare) silenziosamente nel server per raccogliere la chiave segreta lato utente non appena le richieste arrivano. Può usare questa chiave client e la chiave del server per recuperare le password in testo semplice .
  2. In secondo luogo, se il server viene compromesso, l'utente malintenzionato può utilizzare vari altri metodi come gli aggiornamenti software sul lato client e inviare malware ai client che raccoglieranno le chiavi segrete del client e li invieranno all'attacco. L'autore dell'attacco può avere il dump del database e usa queste chiavi raccolte per decodificare il dump.

In qualsiasi dei casi precedenti, se il server viene compromesso, l'utente malintenzionato può ottenere l'accesso alle password di testo normale.

    
risposta data 14.09.2016 - 15:32
fonte

Leggi altre domande sui tag