Errore di handshake TLS in PCAP: ClientHello, ServerHello, certificato, avviso e prova di reimpostazione

Come diagnosticare gli errori di handshake TLS nelle acquisizioni di pacchetti leggendo ClientHello, ServerHello, certificato, avviso e prova di reimpostazione TCP.

PCAP, TLS, SSL, stretta di mano, ClientHello

Gli errori di handshake TLS vengono spesso segnalati come "errore SSL", "problema del certificato", "handshake non riuscito" o "reimpostazione della connessione". Questi messaggi sono utili, ma un PCAP può mostrare dove si è interrotta la stretta di mano. Quella posizione è importante.

Un errore TLS prima di "ServerHello" è diverso da un avviso di convalida del certificato. Un ripristino TCP dopo "ClientHello" è diverso da un avviso TLS irreversibile dopo lo scambio di certificati. La sequenza temporale di acquisizione dei pacchetti può identificare il confine.

Inizia con la connessione TCP

Prima di eseguire il debug di TLS, conferma TCP:

  • SYN
  • SYN/ACK
  • ACK
  • dati dal cliente

Se il TCP non viene mai stabilito, non si tratta di un errore di handshake TLS. Si tratta di routing, firewall, porta, raggiungibilità del server o politica TCP.

Se viene stabilito TCP e il client invia "ClientHello", inizia TLS.

ClientHello Mostra ciò che ha offerto il cliente

"ClientHello" può rivelare:

  • Versioni TLS supportate
  • suite di crittografia offerte
  • Nome host SNI
  • Protocolli ALPN
  • gruppi supportati
  • algoritmi di firma

Se manca SNI, il server potrebbe restituire un certificato predefinito o rifiutare l'handshake. Se il client offre solo protocolli o codici vecchi, il server potrebbe rispondere con un errore o un ripristino dell'handshake.

Questo è il motivo per cui le acquisizioni sono utili per vecchi client incorporati, proxy e integrazioni personalizzate.

ServerHello o Nessun ServerHello

Se il client invia ClientHello e non arriva mai ServerHello, controlla:

  • rilascio del firewall o del middlebox
  • chiusura silenziosa dei criteri del server
  • Problema MTU/percorso relativo ai messaggi di handshake di grandi dimensioni
  • Ripristino TCP dal server
  • comportamento del bilanciatore del carico

Se arriva "ServerHello", controlla la versione scelta e la cifratura. La scelta del server potrebbe spiegare un successivo fallimento.

Gli avvisi sono prove, non rumore

Gli avvisi TLS possono essere molto informativi:

  • CA sconosciuta
  • certificato pessimo
  • fallimento della stretta di mano
  • versione del protocollo
  • parametro illegale
  • chiudi notifica

Un avviso irreversibile da parte del client dopo la consegna del certificato spesso indica una catena di attendibilità, una mancata corrispondenza del nome host, un certificato scaduto o proprietà del certificato non supportate. Un avviso irreversibile dal server dopo "ClientHello" può puntare a cifratura, protocollo, SNI, certificato client o policy.

Non eliminare gli avvisi quando si ritaglia un'acquisizione.

Dove si adatta la chirurgia PCAP

PCAP Surgery dovrebbe aiutare gli ingegneri a isolare la conversazione TLS e preservare le prove dell'handshake. Un'utile acquisizione derivata per il supporto TLS include:

  • Stretta di mano TCP
  • ClientHello
  • ServerHello se presente
  • messaggi di certificato se presenti
  • Avvisi TLS
  • TCP viene ripristinato
  • tempi tra i messaggi

Se la cattura deve essere disinfettata, fare attenzione. Anche la rimozione dei dettagli del certificato, dell'SNI o della lunghezza del payload può eliminare il motivo dell'errore. La decisione sulla sanificazione deve corrispondere all'obiettivo di risoluzione dei problemi.

Per query di ricerca come "errore di handshake TLS pcap", "ClientHello no ServerHello" o "avviso SSL sconosciuto CA Wireshark", la risposta è nel limite dell'handshake. Un buon flusso di lavoro della chirurgia dei pacchetti preserva quel confine invece di nasconderlo.