Questo approccio alla condivisione di file è sicuro?

6

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:

  1. Un utente ha una password principale, di cui viene memorizzato solo l'hash (usato per il login)
  2. Quando un file viene caricato dall'utente, una password casuale sarà

    generato e il file verrà crittografato con esso (tutto lato client)
  3. 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:

  1. 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
  2. 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?

    
posta NikxDa 06.06.2018 - 21:40
fonte

1 risposta

6

L'approccio è sicuro?

No - non se capisco il tuo modello di minaccia.

Dipende dal tuo modello di minaccia. Se non si desidera mai che gli operatori del server (o db o db-backup) siano in grado di decodificare i file, non fornire mai al server la chiave di crittografia del file.

Nel tuo modello la minaccia più chiara è la forza bruta che posso indovinare la password dell'utente registrato. Una volta fatto ciò, posso decifrare la chiave di crittografia del file e il file stesso.

update

Pensando alla password un po 'più e più minacce a questo approccio:

in generale, una password derivata dall'utente non è sicura. Un modo per pensarci è che la pw sarà compromessa. Forse phishing, keylogger, trovandolo scritto sotto una tastiera o forzato bruto. Quindi dire che ottengo una copia del database, ora semplicemente attendo il pw nel tempo (o attivamente provo a cercarlo). Una volta ottenuto, decritto tutto ciò che l'utente ha caricato nella mia copia.

L'abbiamo costruito diversamente. (per prevenire tale minaccia)

Abbiamo basato il nostro build off send.firefox.com.

Quando un file viene caricato, viene crittografato sul lato client e archiviato sul server. La chiave di crittografia è memorizzata nell'URL generato e non inviata al server.

L'url viene inviato al destinatario e l'url può essere utilizzato solo una volta e scade tra 24 ore.

Abbiamo aggiunto questo - dopo aver caricato un file, viene restituita una passphrase generata dal sistema (due parole inglesi comuni di livello 5a).

Per scaricare il file, è necessario il collegamento sicuro e per conoscere la passphrase.

Il bello è che non è richiesta alcuna registrazione da parte dell'utente.

    
risposta data 06.06.2018 - 22:05
fonte

Leggi altre domande sui tag