Un certificato digitale garantisce la sicurezza del trasferimento dei dati tra due computer.
Ma com'è possibile ottenere un risultato del genere?
La risposta va cercata in un principio ed in un protocollo dati.
Nonostante i paroloni i concetti sono molto semplici e facilmente comprensibili. Il principio è quello delle chiavi asimmetriche; il protocollo consiste nei dati che i due computer si scambiano per "conoscersi", per identificarsi prima di trasmettersi le informazioni da proteggere.
Nell'ordinamento giuridico italiano il termine firma digitale sta ad indicare un tipo di firma elettronica qualificata basato, appunto, sulla crittografia asimmetrica, alla quale si attribuisce piena efficacia probatoria, tale da potersi equiparare, sul piano sostanziale, alla firma autografa. Normalmente, ad aumentare la robustezza della firma qualificata, i certificati di firma sono rilasciati su dispositivi sicuri, protetti da credenziali (username e password).
Per poter collocare nel tempo la firma di un documento, un'email, o qualsiasi altro files elettronico, e per poter rendere il processo identico a quello autografo cartaceo si può appore la marca temporale. La marca temporale o timestamp è l'equivalente informatico della data certa apposta con un timbro sulle raccomandate cartacee dall'ufficio postale che l'ha presa in carico.
Vediamo di chairire il concetto.
Il principio delle chiavi asimmetriche
La prima cosa da fare per comprendere il funzionamento dei certificati digitali è capire il principio delle chiavi asimmetriche.
Una chiave è una stringa, un insieme di caratteri (lettere, numeri, simboli) di una certa lunghezza.
Le due chiavi vengono generate insieme usando un complesso algoritmo matematico.
Una delle due chiavi viene resa pubblica e chiunque può leggerla.
L'altra chiave rimane custodita gelosamente e non deve essere comunicata a nessuno.
Molto semplicemente vengono chiamate "Chiave pubblica" e "Chiave privata".
Le due chiavi vengono definite asimmetriche perchè
1.Un messaggio cifrato con la chiave pubblica può essere decifrato solo con la corrispondente chiave privata;
2.Un messaggio cifrato con la chiave privata può essere decifrato solo con la corrispondente chiave pubblica;
3.Un messaggio cifrato con la chiave pubblica non può essere decifrato con la stessa chiave pubblica;
4.Un messaggio cifrato con la chiave privata non può essere decifrato con la stessa chiave privata.
Quindi, se vogliamo scambiarci un messaggio e non vogliamo che altri lo leggano dovrermo, per prima cosa cifrare il messagio con la nostra chiave privata,
e in secondo tempo tornare a cifrare il messaggio con la chiave privata del nostro mittente, dopodichè saremo pronti ad inviare il messaggio. Il nostro corrispondente per poter leggere il messaggio inviatogli, dovrà prima decifrare il messaggio con la sua chiave privata e dopo tornare a decifrarlo con la nostra chiave pubblica. Lo schema seguente ripropone concettualmente il funzionamento della crittografia con coppie di chiavi asimmetriche (fonte: Wikipedia).
Come funziona il certificato digitale in pratica
A questo punto possiamo vedere come la crittografia asimmetrica viene applicata al certificato digitale rendendolo uno strumento sicuro per scambiare informazioni tra due computer.
Tutto il sistema si fonda sull'affidabilità della Certification Authority.
E' a questa che ci si rivolge per acquistare un certificato digitale ed anch'essa ha una propria coppia di chiavi.
Quando la Certification Authority ti fornisce i dati del tuo certificato ne cifra le chiavi con la propria chiave privata.
Quindi sarà possibile decifrarle con la corrispondente chiave pubblica della Certification Authority.
Questo garantisce che, una volta consegnate al legittimo proprietario, non sarà possibile alterare le chiavi.
In concreto succede questo:
1.Il Client richiede l'apertura di una connessione protetta al Server;
2.Il Server risponde al Client inviandogli:
a.Il proprio ID
b.Il nome della società per la quale è stato emesso il certificato
c.Il proprio common name, che contiene il nome di dominio per il quale il certificato è valido.
d.Il periodo di validità del certificato
e.Il nome della Certification Authority che ha rilasciato il certificato
f.La propria chiave pubblica cifrata con la chiave privata della Certification Authority
3.Il Client verifica la validità dei dati che gli sono stati inviati dal Server e ne decifra la chiave pubblica utilizzando la chiave pubblica della Certification Authority.
4.Il Client usa la chiave pubblica del Server appena ottenuta per cifrare ed inviargli:
a.Il proprio ID
b.Un ID di sessione (che permette al Server di distinguere un Client dagli altri)
5.Le presentazioni tra Client e Server sono finite, ora i due si conoscono e sono in grado di trasmettere e ricevere dati cifrati perchè si sono scambiati prima le chiavi per codificare la comunicazione.
Da questo momento in poi tutti i dati saranno assolutamente protetti.
Quella esposta sopra è una generica procedura di comunicazione cifrata.
I dati in concreto scambiati tra Server e Client possono cambiare in relazione al tipo di certificato utilizzato.
Non esiste, infatti, IL certificato digitale.
Piuttosto esistono vari tipi di certificato digitale, ognuno con una propria specifica funzione ed un proprio specifico livello di sicurezza ed una propria specifica destinazione d'uso.