Crittografia lato client durante la memorizzazione dei dati su un server e l'accesso da più dispositivi

3

Supponendo;

  • Stai utilizzando HTTPS per crittografare i dati in transito
  • Stai utilizzando la crittografia lato server per crittografare i dati a riposo
  • Desideri una quantità sempre maggiore di sicurezza per i dati
  • Vuoi memorizzare i dati centralmente su un server
  • Desideri accedere ai dati da più dispositivi diversi

Sebbene si tratti di un modello eccezionale, questo naturalmente si risolve nella situazione in cui i tuoi dati potrebbero ancora essere decifrati nel caso in cui una persona non autorizzata ottenga l'accesso al server in quanto la chiave di crittografia sarà lì seduta in una forma o nell'altra.

Questo è uno dei maggiori punti deboli della crittografia lato server.

Quindi guardi la crittografia sul lato client, che risolve questo problema, ma fa emergere un altro problema che riguarda il modo in cui si disaccoppia la sicurezza dal dispositivo stesso. Ad esempio quando si ha a che fare con l'accesso tramite più dispositivi e / o, occupandosi di quando il dispositivo si rompe, ecc.

Esiste un modello / modello di sicurezza che si occupa di queste due sfide per offrire la massima sicurezza?

    
posta Michael Cropper 14.01.2018 - 17:23
fonte

2 risposte

1

Le due opzioni ovvie sono -

  • Crittografia lato client con una chiave esportabile. È possibile eseguire il backup della chiave alla creazione in un punto che il proprietario visualizza come sicuro. In alternativa, può essere crittografato con una password fornita dall'utente e caricato nel servizio - fornendo questa ulteriore password all'installazione client consente ai dispositivi aggiuntivi di decrittografare la chiave.
  • Crittografia lato client con una chiave derivata da una passphrase. Simile al modello precedente con crittografia e caricamento delle chiavi, a meno che non sia necessario memorizzare i dati chiave sul server remoto.

* Entrambi i precedenti (supponendo la crittografia della password per il primo) possono essere ottenuti con una singola passphrase. Un hash non salato della password viene preso e utilizzato per la frase di crittografia. Questo viene quindi sottoposto a hash di nuovo prima di essere passato al server per l'autenticazione. Lo svantaggio sarebbe per la modifica della password, tutti i dati dovrebbero essere scaricati, reencrittati e caricati di nuovo.

    
risposta data 14.01.2018 - 21:32
fonte
1

La crittografia lato client con una chiave pubblica fa ciò di cui hai bisogno.

Includere un certificato che trasporta la chiave pubblica insieme al codice cliente. Convalidare il certificato prima di fidarsi della chiave con i propri dati segreti (raccomando di utilizzare tecniche di pinning del certificato). Sul client, generare una chiave AES casuale (come crittograficamente casuale come è possibile). Utilizzare la chiave AES casuale per crittografare i dati; utilizzare la chiave pubblica per crittografare la chiave segreta. Inserisci tutti i dati in una struttura CMS (PKCS # 7) e spediscilo al server.

    
risposta data 14.06.2018 - 03:58
fonte

Leggi altre domande sui tag