Crittografia e PrivateMail

Il servizio di PrivateMail si basa sulla crittografia ibrida che sfrutta i vantaggi sia della crittografia asimmetrica che della crittografia simmetrica superando i loro limiti.

Una chiave è una stringa, un insieme di caratteri (lettere, numeri, simboli) di una certa lunghezza.

La crittografia simmetrica, o crittografia a chiave privata, è una tecnica usata per cifrare un testo in chiaro, dove la chiave di criptazione è la stessa della chiave di decrittazione, e prevede che le due parti siano già in possesso della chiave. E’ una tecnica di cifratura che possiede il vantaggio di un’elevata velocità di esecuzione, dovendo usare una sola chiave; d’altra parte è molto difficile da usare agevolmente, in quanto necessita che i due interlocutori abbiano concordato in precedenza la chiave.

La crittografia asimmetrica, nota anche come crittografia a chiave pubblica e privata, è un tipo di crittografia in cui ogni attore coinvolto nella comunicazione possiede una coppia di chiavi:

  • Chiave pubblica, nota a tutti gli utenti coinvolti nella comunicazione;
  • Chiave privata, nota soltanto all’utente proprietario.

In un sistema di crittografia asimmetrica, ogni utente può cifrare un messaggio usando la chiave pubblica del destinatario, ma tale messaggio può essere decifrato solo con la chiave privata del destinatario.

La crittografia asimmetrica supera il problema della distribuzione tra gli utenti dell’unica chiave utile nella crittografia simmetrica tuttavia risulta molto lenta nei tempi di elaborazione nel caso di chiavi grandi ed e-mail molto lunghe.

Nel servizio di PrivateMail viene utilizzato il meccanismo della cifratura ibrida che consiste nell’utilizzare una cifratura asimmetrica per scambiare la s-mail criptata ed una chiave, detta secret-key, e che sarà utilizzata per la cifratura simmetrica.

In pratica, se l’utente A deve comunicare con l’utente B utilizza prima la cifratura simmetrica, utilizzando una chiave determinata in modo casuale per ogni s-mail (la secret key); questa chiave cripta la s-mail e poi viene allega alla s-mail stessa. Quest’ultimo pacchetto viene cifrato a sua volta attraverso il sistema della chiave pubblica, ovvero quello che si basa sulla crittografia asimmetrica. L’utente B dovrà fare il percorso inverso, decifrando il pacchetto con la sua chiave privata, e quindi decifrandolo nuovamente utilizzando la secret key che ha ottenuto dopo la decifratura.

Si ha, quindi, la velocità della crittografia simmetrica superando il limite dello scambio preventivo della chiave e la sicurezza della crittografia asimmetrica che viene usata solo una volta per scambiare la secret key, superando il limite di lentezza.

Le chiavi pubbliche e private possono essere:

  • Generate direttamente dall’utente e associate ad un certificato X.509 generato dalla CA (Certification Authority) del sistema. Le chiavi sono conservate sul client in un’area dati criptata protetta da password;
  • Disponibili su Smart Card o su Token USB protetti da password;
  • Generate da un Amministratore di sistema che provvederà a distribuirle in modo sicuro agli utenti.

Su uno stesso client possono essere generate e salvate più coppie di chiavi, ciascuna per ogni utente che utilizza quel client.

Ogni utente ha la possibilità di inviare/riceve s-mail su differenti client (PC, Tablet e Smatphone), in questo caso la coppia di chiavi associata all’utente stesso può essere:

  • la stessa se, per esempio, utilizza la stessa Smart Card per connettersi da differenti PC,
  • diversa se utilizza lo Smatphone,

in ogni caso il sistema è sempre in grado di associare le coppie di chiavi a un particolare utente nel momento in cui si autentica sul client.