Diciamo che ho un sito Web che consente agli utenti di caricare file (molto simile a Dropbox), e ho bisogno di crittografare quei file in modo che solo gli utenti che hanno accesso a loro possano visualizzare i dati del file. Gli utenti devono essere in grado di visualizzare i nomi / le dimensioni dei file tramite un'interfaccia web (ma nessun altro dovrebbe essere in grado di farlo) e scaricare la versione non crittografata quando lo desiderano. Quale sarebbe l'impostazione di crittografia più sicura?
Mi sembra che potresti criptare una chiave di decrittazione con la password degli utenti (e associare quella chiave solo a quell'utente / usarla per crittografare i suoi dati), ma poi per accedere alle informazioni del file o permetterle per scaricare i dati del file il server dovrebbe avere accesso alla chiave di decrittografia oltre il punto di accesso. Ciò richiederebbe la persistenza della password dell'utente in una certa capacità (o il salvataggio della chiave di decrittografia) con la sessione, che sembrano entrambi molto insicuri. Mi è anche venuto in mente che potremmo (un po '?) Memorizzare in modo sicuro una chiave master, ma i dati dell'utente sono a rischio se questa chiave viene rubata.
Come è fatto in pratica? Inoltre, se qualcuno là fuori ha dei buoni articoli / post su questo argomento sarei estremamente interessato a leggerli.