Protezione delle informazioni riservate tra gli utenti

1

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

    
posta pedrofb 01.06.2016 - 08:28
fonte

1 risposta

1

Perferirei Nr1 a causa della semplicità, ma prendi Nr2 se:

(a) Nel tuo caso, la crittografia e la decifrazione sono davvero lente per qualche motivo. Così lento che è un problema di usabilità. Forse enormi quantità di dati o macchine utente con capacità di elaborazione molto cattiva.

(b) Non era un refuso nell'opzione 1 che usasse una chiave di terze parti. A mio parere, potrebbero rendere le chiavi pubbliche disponibili a tutti gli utenti del sistema, quindi crittografare i dati con la chiave pubblica dell'utente destinatario designato quando i dati vengono richiesti (quindi solo lui / lei può decrittografarli con la propria chiave privata).

RSA ha un problema di padding che potresti prendere in considerazione, Quale specifica debolezza di padding fa l'indirizzo OAEP nella RSA? .

Quando si tratta di questo genere di cose, SEMPLICE è spesso la scelta saggia.

Con l'implementazione di ogni metodo di crittografia, ogni piccola riga di codice esiste la possibilità di fallimento assoluto e schiacciante. Quindi la complessità delle soluzioni dovrebbe essere ridotta al più semplice possibile, ma non più semplice di così.

Un metodo di crittografia, una libreria crittografica, un processo per creare un tipo di chiave, alcuni punti di errore.

Con quale frequenza vengono aggiornati i dati? Quanto costa la memorizzazione dei dati? Come viene generato l'HMAC? Queste cose devono essere considerate.

    
risposta data 01.06.2016 - 10:55
fonte

Leggi altre domande sui tag