Sto studiando il protocollo SSL / TLS, più specificamente la sua stretta di mano. So che inizialmente un client invia un messaggio Client Hello al server che include la versione TLS supportata dal client.
Ho un'applicazione che utilizza connessioni HTTPS, implementate con WinHTTP nel client e Apache Java nel server. Sto monitorando il traffico HTTPS con Wireshark , che assomiglia a questo:
Client Hello, version-TLS 1.2
Server Hello, version-TLS 1.2
Client Key Exchange, version-TLS 1.2
Client Cipher spec, version-TLS 1.2
Application data, version-TLS 1.2
Encrypted alert version-TLS 1.2 [from client]
FIN version-TLS 1.2
ACK version-TLS 1.2
Non so cosa significhi Encrypted alert
(in Wireshark viene visualizzato come Encrypt alert (21)
) - poiché viene inviato dal client, suppongo che sia un avviso Chiudi notifica .
Alcuni secondi dopo che la sessione iniziale è stata chiusa, una nuova sessione inizia come segue:
Client Hello, version-TLS 1.0
Server Hello, version-TLS 1.0
Client Key Exchange, version-TLS 1.0
Client Cipher spec, version-TLS 1.0
Application data, version-TLS 1.0
Encrypted alert version-TLS 1.0 [from client]
FIN version-TLS 1.0
ACK version-TLS 1.0
Da questo, concludo le modifiche alla versione e quindi il codice.
Questo non sembra accadere ogni volta: a volte una nuova sessione utilizza TLS 1.2, a volte torna a TLS 1.0. Qual è la ragione di questo?