Come Funziona un Certificato Digitale

Come detto nell'articolo precedente, 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. Che paroloni! Non ti spaventare, i concetti sono molto semplici.

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.

Vediamo di chiarire la situazione.

Questo post fa parte della Guida ai certificati digitali per l'e-commerce.

La serie spiega cosa sono i certificati digitali, come funzionano e come scegliere quello perfetto per il proprio sito di commercio elettronico.

Vai all'indice della Guida ai certificati digitali per il commercio elettronico.

Il principio delle chiavi asimmetriche

La prima cosa da fare per comprendere il funzionamento dei certificati digitali è capire il principio delle chiavi asimmetriche.
Un vecchio adagio recita "Can che abbaia non morde". Non lasciarti intimorire: fidati se ti dico che il nome di questo principio abbaia solo.

Come avrai già intuito tutto si fonda su una coppia di 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. Si potrebbe dire che sono sorelle.

Una delle due 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 sceglieremo per prima cosa se usare la tua coppia di chiavi o la mia coppia di chiavi. Qualora usassimo la tua coppia di chiavi io userò la tua chiave pubblica per cifrare il messaggio. Per leggerlo tu userai la tua chiave privata. Se tu mi vuoi mandare un messaggio userai la tua chiave privata per cifrarlo. Io per leggerlo userò la tua chiave pubblica. Qualora usassimo la mia coppia di chiavi io userò la mia chiave privata per cifrare il messaggio. Tu userai la mia chiave pubblica per decifrarlo. Se tu mi vuoi mandare un messaggio userai la mia chiave pubblica per cifrarlo. Io userò la mia chiave privata per decifrarlo.

Semplice, come bere un bicchiere d'acqua!

Lo schema seguente ripropone concettualmente il funzionamento della crittografia con coppie di chiavi asimmetriche (fonte: Wikipedia).

Come funziona un certificato digitale

Schema di funzionamento di un certificato digitale

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 (il computer dell'utente che accede al tuo sito) richiede l'apertura di una connessione protetta al Server;
  2. Il Server (il computer che ospita il tuo sito) risponde al Client inviandogli:
    • Il proprio ID
    • Il nome della società per la quale è stato emesso il certificato (cioè il nome della tua società)
    • Il proprio common name, che contiene il nome di dominio per il quale il certificato è valido (cioè l'indirizzo del tuo sito)
    • Il periodo di validità del certificato
    • Il nome della Certification Authority che ha rilasciato il certificato
    • 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:
    1. Il proprio ID
    2. 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 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 (questo sarà argomento di uno dei prossimi articoli di questa serie)

Di seguito un breve video da YouTube che riassume in maniera molto simpatica il funzionamento di un certificato digitale.

Alcune note di chiusura e link di approfondimento

Come vedi tutto il procedimento si basa sull'uso combinato di più coppie di chiavi asimmetriche, quelle del Server e quelle della Certification Authority. Quest'ultima ha cifrato le chiavi asimmetriche del Server con la propria chiave privata per garantirne l'integrità e la provenienza ed evitare che vengano manomesse da terzi non autorizzati.
La chiave pubblica della Certification Authority, preinstallata nei vari browser in circolazione, è necessaria per "sbloccare" la chiave pubblica del Server (a quella privata, anch'essa cifrata dalla Certification Authority, non può accedere nessuno, se non il proprietario del Server). La chiave pubblica del Server verrà utilizzata per le comunicazioni tra di esso ed il Client.

Affidarsi ad una solida Certification Authority eviterà il presentarsi di alcuni inconvenienti pratici. Per esempio, cosa succede se il browser del Client non possiede la chiave pubblica della Certification Authority?

Ci avviamo, quindi, verso il prossimo articolo che chiarirà proprio questi aspetti legati alla scelta della Certification Authority cui affidarsi.

Nel frattempo puoi iscriverti alla newsletter di eCommerceRS dal box in alto a destra per non perderlo.

Per approfondire la crittografia asimmetrica puoi leggere su Wikipedia la voce http://it.wikipedia.org/wiki/Crittografia_asimmetrica.

Questo post fa parte della Guida ai certificati digitali per l'e-commerce.

La serie spiega cosa sono i certificati digitali, come funzionano e come scegliere quello perfetto per il proprio sito di commercio elettronico.

Vai all'indice della Guida ai certificati digitali per il commercio elettronico.

2017-03-24T13:18:09+00:00 By |Categorie: Blog|Argomenti: , , |

Scrivi un commento