HTTPS: Una serie di passaggi per garantire la sicurezza

HTTPS non è solo un sistema complesso, ma è una risposta diretta ai numerosi rischi delle comunicazioni non protette. Ogni passaggio dell’handshake HTTPS è progettato per risolvere problemi specifici e garantire sicurezza. Vediamo il processo nel dettaglio, spiegando il ruolo e l’importanza di ciascuna fase.


1. Connessione iniziale

Cosa succede:
Il browser (client) invia una richiesta al server per stabilire una connessione sicura.

Perché si fa:

  • Questo è il primo passo per indicare che la connessione dovrà essere protetta utilizzando HTTPS.
  • Il client comunica al server le versioni di protocolli di sicurezza (ad esempio, TLS) e gli algoritmi di crittografia supportati, affinché possano accordarsi su quelli da utilizzare.

Cosa si risolve:

  • Senza questa negoziazione, client e server potrebbero non parlare lo stesso “linguaggio crittografico”, rendendo impossibile la protezione dei dati.

2. Invio del certificato digitale

Cosa succede:
Il server risponde inviando il proprio certificato digitale, che contiene:

  • La chiave pubblica del server.
  • Il nome del dominio del server.
  • La firma digitale di un’Autorità di Certificazione (CA).

Perché si fa:

  • Il certificato serve a dimostrare che il server è quello che dichiara di essere.
  • Contiene la chiave pubblica necessaria per stabilire una connessione sicura.

Cosa si risolve:

  • Senza un certificato, un attaccante potrebbe creare un server fasullo e intercettare o modificare i dati. Ad esempio, potrebbe far sembrare che stai comunicando con la tua banca, ma in realtà stai inviando i dati a un hacker (attacco di tipo Man-in-the-Middle).

3. Verifica del certificato

Cosa succede:
Il browser verifica l’autenticità del certificato:

  • Controlla che sia stato emesso da una Autorità di Certificazione fidata.
  • Controlla che il certificato non sia scaduto o revocato.
  • Confronta il nome del dominio del certificato con quello del sito richiesto.

Perché si fa:

  • Un certificato può essere falsificato o emesso per errore. Il controllo evita che il browser si fidi di certificati non validi.
  • Verifica che il certificato appartenga realmente al dominio visitato (es. il certificato deve essere per “www.miabanca.it” e non per un sito fasullo).

Cosa si risolve:

  • Senza questo controllo, un attaccante potrebbe usare un certificato legittimo ma rubato o emesso per un altro sito, convincendo il browser a fidarsi.

4. Scambio della chiave di sessione

Cosa succede:

  • Il client genera una chiave di sessione temporanea per la crittografia simmetrica.
  • Questa chiave viene cifrata usando la chiave pubblica del server (inviata con il certificato).
  • Il server usa la propria chiave privata per decifrare la chiave di sessione.

Perché si fa:

  • La chiave di sessione viene utilizzata per cifrare i dati scambiati durante la sessione. La crittografia simmetrica è molto più veloce della crittografia asimmetrica, rendendola adatta per la comunicazione continua.
  • Utilizzando la crittografia asimmetrica per lo scambio iniziale, si garantisce che solo il server (che possiede la chiave privata) possa accedere alla chiave di sessione.

Cosa si risolve:

  • Senza questo scambio sicuro, un attaccante potrebbe intercettare la chiave di sessione e decifrare tutti i dati trasmessi.

5. Inizio della comunicazione cifrata

Cosa succede:
Una volta che sia il client che il server possiedono la chiave di sessione, iniziano a comunicare utilizzando la crittografia simmetrica. Tutti i dati scambiati (richieste, risposte, file, ecc.) vengono cifrati e decifrati con questa chiave.

Perché si fa:

  • La crittografia simmetrica è molto più veloce rispetto a quella asimmetrica e adatta per proteggere grandi quantità di dati.
  • Assicura che tutte le informazioni siano protette da occhi indiscreti, anche se la connessione venisse intercettata.

Cosa si risolve:

  • Senza questa protezione, un attaccante potrebbe leggere i dati sensibili, come credenziali o numeri di carte di credito.

Conclusione: la forza di HTTPS

HTTPS è progettato per risolvere ogni punto debole delle comunicazioni non protette:

  • Utilizzando certificati digitali, garantisce che il server sia autentico ovvero che il client possa sapere con certezza che il destinatario delle sue comunicazioni è chi dichiara di essere veramente.
  • Con la crittografia simmetrica, assicura velocità e protezione dei dati trasmessi. Purtroppo però la crittografia simmetrica necessita la conoscenza della chiave di crittografia da entrambi gli agenti in gioco.
  • Grazie alla crittografia asimmetrica, client e server possono scambiarsi questa chiave di crittografia senza che nessuno possa conoscerla.

Questa combinazione di strumenti e verifiche rende HTTPS uno standard affidabile per le comunicazioni sicure sul web.