Perplessità sull'handshake TLS

1

Ho analizzato l'handshake TLS (1.2) e non sono riuscito a capire il messaggio dopo Change Chipher Spec

Ecco qui:

Sichiama"Encrypted Handshake Message" di Wireshark e viene inviato dal server al client e viceversa. Qual è il contenuto di questo messaggio? Dovrebbe essere il messaggio Finished ma qual è il suo contenuto specifico? Ho anche notato che la lunghezza è diversa per ogni ciphersuite differente, quindi, questa lunghezza è specificata da qualche parte?

    
posta Steve 12.04.2014 - 19:58
fonte

1 risposta

4

Il messaggio Change Cipher Spec significa: d'ora in poi, i record verranno crittografati con la suite e le chiavi di crittografia appena negoziate. Quindi tutti i record successivi saranno crittografati, e questo è ciò che osservate: un record crittografato. Ovviamente non puoi vedere il contenuto: questo è il punto di crittografia.

Subito dopo Change Cipher Spec segue un messaggio Finished , che serve come conferma che l'handshake ha funzionato correttamente. I contenuti non elaborati hanno una lunghezza di 12 byte e sono calcolati come un hash di tutti i precedenti messaggi di handshake. Questi 12 byte saranno crittografati, il che comporta l'aggiunta del valore MAC del record, quindi eventualmente un padding (se si utilizza un codice a blocchi in modalità CBC).

Ad esempio, se, nel tuo esempio, hai usato una suite di crittografia con 3DES in modalità CBC come cifrario a blocchi e SHA-1 per l'integrità, allora 20 byte vengono aggiunti per il MAC, quindi tra 1 e 8 byte per il riempimento , in modo che la lunghezza totale sia un multiplo di 8 (3DES utilizza blocchi di 8 byte). Questo produce 40 byte, ed è esattamente ciò che osservi.

Vedi lo standard , in particolare sezione 7.4.9 per il messaggio Finished ; vedi anche questa risposta per un walk-through di SSL / TLS.

    
risposta data 12.04.2014 - 20:10
fonte

Leggi altre domande sui tag