In TLS , i messaggi di handshake sono codificati in record . Ogni record ha la propria intestazione. Un determinato messaggio di handshake può essere distribuito su più record e un record può contenere diversi messaggi di handshake.
I calcoli hash per CertificateVerify
e Finished
si trovano sui messaggi di handshake solo : inserisci i successivi messaggi di handshake nella funzione hash, in ordine dovuto; ogni messaggio di handshake inizia con un'intestazione di quattro byte (un byte per il tipo di messaggio, tre byte per la lunghezza del messaggio di handshake) e queste intestazioni vanno anche alla funzione di hash. Le intestazioni dei record non non immettono la funzione di hash.
In altre parole, la frammentazione nei record viene ignorata nei calcoli hash. Il valore hash risultante non dipende da come vengono trasportati i messaggi di handshake, in particolare da qualsiasi tipo di frammentazione. EAP / TLS definisce che i messaggi EAP contengono record TLS . Né le intestazioni Ethernet, né le intestazioni dei pacchetti EAP, né le intestazioni dei record TLS, entrano nella funzione hash. Solo i messaggi di handshake sono stati sottoposti a hash.
(Ciò consente un'implementazione a strati: la libreria SSL / TLS produce messaggi di handshake che vengono inviati uno dopo l'altro su un flusso concettuale infinito di byte, lo stream è hash, la libreria non deve preoccuparsi di come il flusso è suddiviso in record incapsulati in messaggi EAP frammentati in singoli frame Ethernet.)