Come condividere i dati crittografati tra gli utenti?

1

Sono in procinto di crittografare i dati utente sulla mia app e ho adottato lo schema in questa risposta per proteggere e-mail, password, nome e altri dettagli privati. Sto usando una chiave surrogata AES e un codice di blocco generato dalla password.

Finora, tutto bene.

Tuttavia, mi sono reso conto che quando arrivo allo stato dell'utente (come un feed di Facebook), non è così semplice.

Naturalmente, posso crittografare e recuperare lo stato dell'utente con lo schema sopra. Ma come faccio a visualizzare lo stato dei loro amici sul feed dell'utente? Secondo lo schema di cui sopra, avrei bisogno di avere la password dell'amico per decodificarlo. In base alla progettazione, non vedo mai la password dell'amico e l'utente conosce solo la propria password.

L'unico modo che posso trovare è qualcosa come questa risposta che utilizza una chiave del documento e un'implementazione della chiave utente.

Devo davvero impegnarmi a implementare OpenPGP?

Quando un utente aggiunge amici, devo quindi in qualche modo aggiungere la chiave a tutti i documenti precedentemente crittografati? Non sembra fattibile. Come fanno le società di social media?

    
posta grooble 08.01.2018 - 02:03
fonte

1 risposta

4

Le "società di social media" probabilmente non crittografano dati come quelli quando sono a riposo. In generale, gli unici dati che possono essere crittografati a riposo sono quei dati a cui è destinato solo l'accesso dell'utente stesso. (Che non è molto per la maggior parte dei sistemi di social media.)

Anche se le aziende potrebbero utilizzare una qualche forma di crittografia completa del disco o del database, sarei sorpreso se utilizzassero chiavi per utente per i dati che devono essere condivisi (anche con un piccolo gruppo di utenti).

Se vuoi essere in grado di crittografare i dati da un utente e far decodificare un altro utente senza una chiave condivisa, avrai bisogno di qualche tipo di crittografia a chiave pubblica. (Questa è essenzialmente la differenza di definizione tra crittografia asimmetrica e simmetrica.) Non è necessario fare OpenPGP se si desidera mantenere i dati all'interno del proprio servizio, è possibile utilizzare qualcosa come NaCL o libsodium per eseguire le tue operazioni crittografiche.

    
risposta data 08.01.2018 - 02:12
fonte

Leggi altre domande sui tag