Vai al contenutoHisnLabs
← Crittografia su cui puoi contare

Lezione 2 di 4 · 9 min

Firme digitali, certificati, e TLS

Come fa un browser a sapere che sta davvero parlando con la tua banca, perché l’icona di un lucchetto significa qualcosa di specifico, e cosa non significa.

La lezione precedente ha lasciato una domanda aperta: la cifratura asimmetrica ti permette di inviare un segreto a qualcuno di cui hai la chiave pubblica — ma come fai a sapere che quella chiave pubblica appartiene davvero a lui, e non a un aggressore nel mezzo? Le firme digitali e i certificati rispondono a questo, e insieme rendono possibile il TLS, il protocollo dietro ogni indirizzo https://.

Le firme digitali: prova di origine, non segretezza

Una firma digitale fa funzionare la cifratura asimmetrica al contrario. Invece di cifrare un messaggio con la chiave pubblica di qualcuno così che solo lui possa leggerlo, il mittente firma un messaggio con la propria chiave privata, e chiunque può verificarlo usando la chiave pubblica del mittente. Se la verifica ha successo, due cose sono vere: il messaggio proviene da chi detiene quella chiave privata, e non è stato alterato in seguito — la stessa proprietà di resistenza alle collisioni discussa a proposito dell’hashing nella lezione precedente è ciò che rende rilevabile una manomissione. Una firma dimostra autenticità e integrità; non mantiene, da sola, il messaggio segreto.

I certificati: una firma che garantisce per una chiave pubblica

Un certificato digitale risolve il problema del “di chi è davvero questa chiave pubblica”. Come spiega il Centro di apprendimento di Cloudflare, un certificato SSL/TLS è “un file di dati ospitato sul server d’origine di un sito web” contenente il nome di dominio, la chiave pubblica, una data di scadenza, e — fondamentale — “la firma digitale dell’autorità di certificazione”. Un’autorità di certificazione (CA) è una terza parte fidata che verifica che un sito web controlli il dominio per cui sta richiedendo un certificato, poi firma quel certificato con la propria chiave privata. Il tuo browser viene fornito con un elenco integrato di CA di cui si fida, così quando riceve un certificato firmato da una di esse, può fidarsi della chiave pubblica al suo interno senza aver mai incontrato l’operatore del sito web. Un certificato autofirmato — uno che un sito firma da sé invece di ottenerlo da una CA — non ha questa garanzia esterna, motivo per cui i browser lo trattano come non attendibile per impostazione predefinita.

TLS: mettere entrambi al lavoro

RFC 8446, la specifica per TLS 1.3, descrive un handshake in fasi: scambio di chiavi, in cui le due parti stabiliscono materiale segreto condiviso; poi autenticazione, dove, nelle parole della RFC, “il lato server del canale è sempre autenticato; il lato client è autenticato facoltativamente” — normalmente solo il sito web dimostra la propria identità, non il visitatore. Il server dimostra chi è usando il proprio certificato e una firma che solo lui potrebbe produrre con la propria chiave privata. Una volta che entrambe le parti si fidano della connessione, derivano chiavi simmetriche veloci (tipicamente l’AES della lezione precedente) per i dati veri e propri. RFC 8446 afferma chiaramente cosa questo ti offre: riservatezza e integrità per i dati scambiati, e autenticazione del server. Afferma anche, altrettanto chiaramente, un limite: “TLS non nasconde la lunghezza dei dati che trasmette”, e metadati come a quale server ti sei connesso e quando restano visibili a chiunque sia posizionato per osservare la connessione.

Cosa significa e cosa non significa l’icona del lucchetto

Il lucchetto / https:// significaNon significa
La connessione a quel server è cifrata e la sua integrità è protettaIl sito web è affidabile, onesto, o sicuro da usare
Stai parlando con chiunque controlli quel nome di dominioQuel nome di dominio è chi pensi che sia — anche un dominio simile e ingannevole ottiene un certificato valido
Nessuno sul percorso di rete può leggere o alterare silenziosamente il trafficoNessuno può vedere che hai visitato il sito, quando, o quanto spesso

Un sito di phishing costruito su un dominio ingannevole può avere un certificato perfettamente valido: TLS autentica il dominio, non l’intento di chi lo ha registrato. Ecco perché la lezione precedente su come si sviluppano gli attacchi tratta una falsa pagina di accesso, lucchetto incluso, come una minaccia reale, non una contraddizione.

Da ricordare

  • Una firma digitale dimostra chi ha inviato un messaggio e che non è stato alterato — non mantiene di per sé il messaggio segreto.
  • Un certificato è una dichiarazione firmata, da un’autorità di certificazione di cui un browser già si fida, che una data chiave pubblica appartiene a un dato dominio.
  • Un handshake TLS (RFC 8446) autentica sempre il server; il visitatore è raramente autenticato allo stesso modo.
  • TLS protegge riservatezza e integrità in transito, e conferma di aver raggiunto il dominio previsto — non nasconde che una connessione sia avvenuta, né garantisce che il sito dietro di essa sia affidabile.
  • Un sito di phishing su un dominio ingannevole può mostrare un lucchetto perfettamente valido; il certificato autentica il dominio, non l’intento dell’operatore.

Mettiti alla prova

  1. 1. Cosa dimostra una firma digitale valida su un messaggio?

    • Che il messaggio è segreto per chiunque tranne il destinatario
    • Che il messaggio proviene dal detentore di una specifica chiave privata e non è stato alterato — Esatto.
    • Che il messaggio è stato inviato tramite TLS
    • Che il messaggio è privo di qualsiasi contenuto dannoso

    Le firme verificano autenticità e integrità usando la coppia di chiavi del firmatario; non cifrano il messaggio per mantenerlo segreto.

  2. 2. Che ruolo svolge un’autorità di certificazione (CA) nel TLS?

    • Archivia le tue password per tuo conto
    • Garantisce, con la propria firma, che una chiave pubblica appartenga a un dato dominio — Esatto.
    • Cifra tutto il traffico su internet
    • Blocca automaticamente i siti web di phishing

    Una CA verifica il controllo del dominio e firma il certificato, permettendo ai browser che già si fidano della CA di fidarsi della chiave pubblica del certificato senza contattare direttamente l’operatore del sito.

  3. 3. Secondo RFC 8446, quale lato di una tipica connessione TLS è sempre autenticato?

    • Solo il client (il tuo browser)
    • Il server — Esatto.
    • Nessuno dei due per impostazione predefinita
    • Entrambi i lati, sempre, senza eccezioni

    RFC 8446 afferma che il lato server è sempre autenticato, mentre l’autenticazione del client è facoltativa e molto meno comune per la navigazione ordinaria.

  4. 4. Perché un sito web di phishing può comunque mostrare un’icona di lucchetto valida?

    • Le icone di lucchetto sono cosmetiche e non significano nulla
    • Un certificato autentica un nome di dominio, non l’onestà di chi lo ha registrato — Esatto.
    • I browser non controllano più i certificati
    • I siti di phishing non possono usare affatto HTTPS

    I certificati TLS confermano che stai parlando con il vero detentore di un dato dominio; un dominio ingannevole convincente può ottenere un proprio certificato perfettamente valido.

Mettilo in pratica con FireAI

Metti in pratica questa lezione sul tuo Mac.

Fonti

Mettilo in pratica sul tuo Mac

Prova tutte le funzioni gratis per 17 giorni, senza carta.

Scarica per Mac Guide