Cryptology Academy · Lezione

Handshake TLS 1.3 passo dopo passo

Segua ClientHello, ServerHello, la derivazione delle chiavi e Finished.

Lezione 1 di 413 passaggi

Handshake TLS 1.3 passo dopo passo è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 1 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é TLS?

TLS (Transport Layer Security) protegge i dati in transito su Internet. Ogni connessione HTTPS utilizza TLS. TLS 1.3, standardizzato nella RFC 8446 (2018), ha eliminato gli algoritmi obsoleti e ha ridotto da 2 a 1 il numero di andate e ritorni dell'handshake.

ClientHello

Il client invia: la versione TLS (1.3), un nonce casuale di 32 byte, un elenco delle suite di cifratura supportate (ad esempio TLS_AES_256_GCM_SHA384) ed estensioni key share contenenti chiavi pubbliche ECDH per i gruppi supportati (X25519, P-256).

ServerHello

Il server seleziona una suite di cifratura e un gruppo key share, genera la propria coppia di chiavi ECDH effimere e risponde con la chiave pubblica. A questo punto entrambi i lati possono calcolare il segreto condiviso tramite ECDH.

Derivazione delle chiavi tramite HKDF

TLS 1.3 utilizza HKDF (HMAC-based Key Derivation Function) in una sequenza: early secret → handshake secret → master secret. Ogni fase deriva chiavi separate per il traffico di handshake del client e del server e per i dati dell'applicazione.

Server Finished

Il server invia Certificate, CertificateVerify (una firma sulla trascrizione dell'handshake effettuata con la propria chiave privata) e Finished (un HMAC sulla trascrizione). Il tutto viene cifrato con la chiave del traffico di handshake.

Client Finished

Il client verifica la catena dei certificati, controlla la firma CertificateVerify, verifica il MAC Finished e poi invia il proprio messaggio Finished. L'handshake è ora completo in una sola andata e ritorno (1-RTT).

Ripresa 0-RTT

TLS 1.3 supporta la ripresa 0-RTT (zero round-trip) utilizzando una chiave precondivisa (PSK) proveniente da una sessione precedente. Il client può inviare immediatamente i dati dell'applicazione, ma i dati 0-RTT non dispongono di protezione dai replay e dovrebbero essere idempotenti.

Suite di cifratura TLS 1.3

TLS 1.3 impone esclusivamente cifrari AEAD: AES-128-GCM-SHA256, AES-256-GCM-SHA384, ChaCha20-Poly1305-SHA256. Tutti utilizzano ECDHE o DHE per lo scambio delle chiavi. Le suite deboli (RC4, 3DES, CBC) sono state eliminate.

Livello record

Dopo l'handshake, tutti i dati vengono racchiusi in record TLS: intestazione di 5 byte (tipo di contenuto, versione, lunghezza) + payload cifrato con AEAD. Il numero di sequenza è implicito e viene utilizzato come parte del nonce AEAD per impedire i replay.

Segretezza in avanti

Poiché TLS 1.3 utilizza sempre uno scambio di chiavi effimere (ECDHE), la compromissione della chiave privata a lungo termine del server non consente di decifrare le sessioni passate. Ogni sessione ha una coppia di chiavi effimere univoca, distrutta dopo l'handshake.

Visualizzazione in Wireshark

In Wireshark: ClientHello mostra random + key_share; ServerHello mostra il gruppo selezionato; i record successivi vengono visualizzati come "Application Data" (cifrati). Esporti SSLKEYLOGFILE per decifrarli con le chiavi di sessione.

Verifica rapida

Quante andate e ritorni sono necessari per un handshake TLS 1.3 completo?

Riepilogo

TLS 1.3 combina ECDHE, HKDF, cifrari AEAD e autenticazione basata su certificati in un handshake 1-RTT con segretezza in avanti obbligatoria. Prossimo argomento: il livello record TLS e le suite di cifratura in dettaglio.

Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «Handshake TLS 1.3 passo dopo passo» è gratuita?

Sì — il testo completo di «Handshake TLS 1.3 passo dopo passo» è 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 «Handshake TLS 1.3 passo dopo passo»?

Segua ClientHello, ServerHello, la derivazione delle chiavi e Finished. 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 1 di 4.

Quanto tempo richiede la lezione «Handshake TLS 1.3 passo dopo passo»?

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

  1. Handshake TLS 1.3 passo dopo passo
  2. Livello record TLS e suite di cifratura
  3. Convalida dei certificati in TLS
  4. Attacchi TLS: BEAST, POODLE e downgrade
← Torna a Cryptology Academy