Domanda teorica sui metodi di crittografia [duplicato]

-1

Mi piacerebbe sviluppare un servizio su cui i clienti possano connettersi e recuperare informazioni. Queste informazioni potrebbero anche essere condivise con altri.

È molto semplice, ma vorrei criptare i dati in quanto solo il cliente avrebbe accesso a tutte le sue informazioni e gli altri solo a ciò che il cliente ha concesso.

In uno schema:

+----------------+              +----------------+
|  SHARED DATA   |              |Client 1 Shared |
|                | ============ | Data           |
|----------------|              |----------------|
|  UNSHARED DATA |              |  UNSHARED DATA |
+----------------+              +----------------+
       ||                               ||
       ||                               ||
       ||                               ||
       ||                               ||
       ||                               ||
    +--------+                      +--------+
    | Client1|                      | Client2|
    +--------+                      +--------+

Stavo pensando alla crittografia asimmetrica, ma dato che non ho familiarità con questo, volevo sapere, come potevo memorizzare le chiavi per questo (il cliente è un bulbo oculare, ha solo una password, non può essere caricamento / recupero chiavi).

Problemi / domande multipli in arrivo: Se criptico le chiavi con la sua password. Perde tutte le sue informazioni ...

Dovrei usare una chiave privata per crittografare i dati che saranno condivisi, (se qualcuno ottiene una chiave pubblica, sarebbe in grado di accedere, forse una stretta di mano o qualcosa potrebbe contrastarlo)? O una chiave pubblica data dal secondo servizio? In tal caso, il servizio n ° 1 deve essere in grado di leggere i dati per crittografarlo ...

Se crittografo i dati ogni volta che qualcosa deve essere condiviso, perderò l'efficienza, no?

Non so davvero come procedere. Il mio obiettivo è proteggere la maggior parte dei dati dell'utente. Che cosa suggerisci?

Grazie in anticipo.

    
posta MisterDoy 26.06.2011 - 10:20
fonte

1 risposta

1

"Devo utilizzare una chiave privata per crittografare i dati che saranno condivisi"

No, la chiave PUBLIC viene utilizzata per crittografare i dati, la chiave PRIVATA viene utilizzata per decrittografarli. La chiave disponibile per tutti non decodifica i dati. Quindi, se ho qualcosa di crittografato che voglio condividere con te, lo decrypt usando la mia chiave privata, quindi lo crittografo nuovamente usando la tua chiave pubblica e "invio" le informazioni crittografate a te. Se stai utilizzando una qualche forma di database condiviso, allora "invia" è più un processo che ti informa che è a tua disposizione.

Ovviamente la copia originale e condivisa sono diversi set di byte (uno è crittografato con le mie chiavi, l'altro con il tuo) in modo da avere il doppio dello spazio di archiviazione.

Anche perché i dati trasmessi sono crittografati, non è possibile rilevare prontamente eventuali malware nel contenuto.

Se il cliente finale è l'unico a detenere la chiave privata o se tenere una copia dipende dagli utenti target. Il possesso di una copia comporta ulteriori rischi per la riservatezza, ma riduce i rischi di perdita della chiave da parte del cliente. Potrebbe funzionare come modello di business se i clienti credono che ci si possa fidare. Però non sarebbe qualcosa che userei per le informazioni riservate.

    
risposta data 27.06.2011 - 00:31
fonte

Leggi altre domande sui tag