Mi rendo conto che questo è spesso descritto come una cattiva idea. Quindi, prima di tutto, spiegherò la motivazione: sentiti libero di criticare questo.
Creazione di un prodotto per un'industria che tende ad essere eccessivamente preoccupata per la sicurezza. Il prodotto deve memorizzare e restituire i file dell'utente, ma non è necessario che siano leggibili dal lato server.
Ritengo che la crittografia del lato client ridurrebbe la fiducia richiesta dai clienti. I loro dati riservati sarebbero toccati solo da JavaScript che potevano ispezionare e monitorare. Significa anche che qualsiasi problema di sicurezza sul lato server che consentirebbe l'accesso ai dati archiviati non comporta la disponibilità di documenti client (a eccezione se possono modificare JS servito).
La mia soluzione ideale sarebbe -
- Key generated and injected to all clients users by clients IT team.
- JavaScript uses key to encrypt documents client side. These are then sent to the server and stored.
- On retrieval documents are decrypted again client side.
Sembra che ci siano diverse librerie per supportare la crittografia lato client. Ma attualmente non vedo alcun modo per memorizzare in modo persistente una chiave per l'utente. Idealmente, questo sarebbe in modo simile all'aggiunta di certificati al negozio di browser, vale a dire che possono essere iniettati una sola volta.
Qualcuno ha qualche suggerimento?