Passaggio della chiave di crittografia per sessione per DB con crittografia simmetrica

1

Sto costruendo un database che codifica simmetricamente i dati dell'utente. Niente di super sensibile, userei una terza parte se lo fosse. I dati sono crittografati con una chiave surrogata; l'utente deve inserire una password per decrittografare i dati. Un DBA malvagio non può visualizzare i dati in quanto è crittografato. Abbastanza standard finora.

Dato che solo la password utente (o meglio il suo hash) può decifrare i record del database, ho bisogno di passarlo in qualche modo attraverso la sessione. Quindi:

  • Creo il mio ID di sessione univoco e lo memorizzo nel database, nella tabella "sessione". Lo stesso valore è memorizzato come cookie nella macchina dell'utente ("user_session").
  • Il database contiene anche una chiave casuale associata a quell'ID di sessione. Un altro cookie, "user_pass", contiene un risultato XOR di un hash di questa chiave casuale e un hash della password dell'utente.
  • Quando l'utente interroga il database crittografato, il programma XORs il cookie "user_pass" con la chiave casuale nel database - > arriva all'hash della password dell'utente - > decodifica i record db. In questo modo, nessun dato completo sulla password viene memorizzato sul server (in una directory della sessione temporanea o nel database), né nel computer dell'utente.

È questo il modo standard di memorizzare una chiave durante la sessione? ricorda che è usato per decodificare i record del database. Supponiamo che stiamo usando SSL.

Vulnerabilità con i token di sessione DB supportati e È sicuro memorizzare la password nella sessione PHP? discuterne ma non rispondere completamente alla mia domanda.

    
posta David_Springfield 09.05.2014 - 16:49
fonte

0 risposte

Leggi altre domande sui tag