Attualmente sto sviluppando un software in cui i file devono essere caricati e quindi condivisi con altre persone che non si trovano sulla piattaforma stessa.
Ecco il mio approccio alla crittografia:
- Un utente ha una password principale, di cui viene memorizzato solo l'hash (usato per il login)
- Quando un file viene caricato dall'utente, una password casuale sarà
generato e il file verrà crittografato con esso (tutto lato client) - La password verrà crittografata con la password principale e quindi
memorizzato insieme al file
Quando un file è condiviso con un utente esterno, vengono eseguiti i seguenti passaggi:
- L'utente che ha effettuato l'accesso condivide il file. La chiave del file viene recuperata e decrittografato con la password degli utenti sul lato client
- Ora l'utente può condividere la password e il file o utilizzare un collegamento il file con la password nell'hash della posizione. Il file sarà sempre essere decodificato sul lato client
Questo approccio è sicuro? Inoltre, ci sono delle opzioni migliori?