So che ci sono diversi problemi relativi alla crittografia, ma il mio caso è leggermente diverso
- Gli utenti hanno informazioni riservate memorizzate sul proprio dispositivo
- Hanno una coppia di chiavi RSA
- Le informazioni devono essere crittografate e talvolta condivise con un altro utente in modo sicuro. Il server in nessun caso può conoscere il contenuto di queste informazioni
Opzioni
1) Crittografia sul dispositivo con la chiave pubblica e decrittografia con la chiave privata. Quando l'utente vuole condividere i dati, li cripta con la chiave pubblica della terza parte e viene inviato dal server. L'utente li decrittografa con la chiave privata
2) Esiste una chiave di crittografia HMAC per i dati. La chiave segreta viene crittografata sul dispositivo con la chiave RSA pubblica e decrittografata con la chiave privata da utilizzare. C'è una copia crittografata dei dati nel server. Quando l'utente desidera condividere i dati, crittografa la chiave segreta con la chiave pubblica RSA dell'altro utente e collega a acopy dei dati nel server
Pro e contro
1) Crittografia e decodifica lente. La sincronizzazione dei dati richiede una copia per utente. Un utente malvagio non mette a rischio il sistema
2) La crittografia è più veloce. Potrebbe esserci una copia del server dati e inviato solo la chiave. Cancellare un contatto comporta il rinnovo della chiave e la distribuzione?
La mia domanda è quale opzione scegliere e nel caso di 2, che può avere problemi di sicurezza