Per un mio progetto universitario sto facendo un gestore di password online e voglio poter memorizzare le password degli utenti sul mio server senza potermi accedere da solo. Ecco cosa intendo fare:
- crittografare le password degli utenti con la crittografia RSA
- memorizza le chiavi utilizzate per la crittografia, crittografate con un hash lungo generato sul lato client utilizzando
master password
- Se l'utente digita
master password
ogni volta che vengono utilizzate alcune chiavi
Ma in questo processo c'è un enorme problema . Non riesco a recuperare / generare una nuova password utente. Cosa succede se hanno dimenticato la password.
In base a ciò che ho trovato ci sono due opzioni:
-
Non dare agli utenti la possibilità di cambiare la loro password - bene questo sembra come uccidere il prodotto prima del lancio
-
Modifica la password dell'utente mantenendo una copia della chiave crittografata con qualche altra domanda di sicurezza simile a hash: questa non sembra un'opzione in quanto le domande di sicurezza sono obsolete sulla maggior parte dei siti Web moderni a causa dei rischi per la sicurezza.
Ho qualche altra opzione ad eccezione di questa? Credo di aver bisogno di un'architettura "Trust No One" (TNO) o "Zero Trust", ma ci sono alcuni buchi nel mio design.