Convalida dei certificati in TLS
Segua il processo con cui il client verifica la catena di certificati del server.
Convalida dei certificati in TLS è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.
Perché convalidare i certificati?
Senza la convalida del certificato, sarebbe possibile stabilire una connessione TLS con un attaccante che si spacci per il server (man-in-the-middle). La convalida del certificato garantisce che si stia comunicando con il server legittimo che controlla la chiave privata.
Campi del certificato X.509 rilevanti per TLS
Campi principali: Subject (proprietario del certificato), SubjectAltName (nomi DNS/indirizzi IP), Issuer (CA che firma), Validity (notBefore/notAfter), Public Key, Signature. Il browser li verifica tutti.
Catena di attendibilità
Certificato del server → certificato della CA intermedia → certificato della CA radice. La CA radice è autofirmata e preinstallata nell'archivio delle CA attendibili del sistema operativo o del browser. Il server invia il proprio certificato e quelli intermedi nel messaggio Certificate dell'handshake TLS.
Verifica della firma
Ogni certificato è firmato dall'emittente che lo precede nella catena. Il client verifica: signature(cert_n) utilizzando public_key(cert_{n+1}). Se una qualsiasi firma non è valida, la catena viene rifiutata. La radice è considerata attendibile perché preinstallata, non grazie alla firma.
Convalida del nome
Il client verifica che il nome host del server corrisponda al Subject o al SubjectAltName del certificato (voci DNS). I caratteri jolly (*.example.com) corrispondono a una sola etichetta. Dal 2000, SAN ha la precedenza su CN nella corrispondenza del nome host.
Verifica del periodo di validità
Il client verifica notBefore ≤ now ≤ notAfter per ogni certificato della catena. I certificati scaduti vengono rifiutati anche se le firme sono valide. La durata dei certificati si è ridotta: oggi i browser la limitano a circa 398 giorni.
Revoca: CRL
La CA pubblica una Certificate Revocation List (CRL), cioè un elenco firmato dei numeri di serie dei certificati revocati. Il client scarica l'URL della CRL (dall'estensione CRL Distribution Points del certificato) e verifica la presenza del numero di serie.
Revoca: OCSP
Online Certificate Status Protocol (OCSP) consente ai client di interrogare il responder OCSP della CA per conoscere lo stato di un singolo certificato. È più veloce della CRL, ma aggiunge latenza. Con OCSP Stapling, il server include una risposta OCSP firmata nell'handshake TLS.
Certificate Transparency
CT (RFC 6962) richiede alle CA di registrare tutti i certificati emessi in log pubblici a cui si possono solo aggiungere voci. I browser verificano la presenza di Signed Certificate Timestamps (SCT) nel certificato o nell'estensione TLS. In questo modo si impedisce che le emissioni illegittime passino inosservate.
Pinning
HTTP Public Key Pinning (HPKP, deprecato) e il certificate pinning nelle app mobili associano una chiave pubblica specifica o l'hash di un certificato. Se il server presenta un certificato diverso, la connessione viene rifiutata anche se il certificato è valido: ciò previene gli attacchi che sfruttano la compromissione di una CA.
Errori comuni di convalida
ERR_CERT_AUTHORITY_INVALID: radice non attendibile. ERR_CERT_DATE_INVALID: certificato scaduto. ERR_CERT_COMMON_NAME_INVALID: nome host non corrispondente. NET::ERR_CERT_REVOKED: OCSP/CRL indica che il certificato è revocato. Ognuno di questi errori corrisponde al fallimento di una specifica fase di convalida.
Verifica rapida
Quale risultato consente di ottenere OCSP Stapling?
Riepilogo
La convalida dei certificati in TLS comprende la verifica della catena, il controllo delle firme, la corrispondenza dei nomi, la verifica dei periodi di validità e la revoca. Prossimo argomento: gli attacchi storici a TLS e il modo in cui TLS 1.3 li mitiga.
Domande Frequenti
La lezione «Convalida dei certificati in TLS» è gratuita?
Sì — il testo completo di «Convalida dei certificati in TLS» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.
Cosa imparerò in «Convalida dei certificati in TLS»?
Segua il processo con cui il client verifica la catena di certificati del server. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cryptology Academy?
Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Convalida dei certificati in TLS»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?
Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Handshake TLS 1.3 passo dopo passo
- Livello record TLS e suite di cifratura
- Convalida dei certificati in TLS
- Attacchi TLS: BEAST, POODLE e downgrade