Per DTLS con autenticazione client, al client è richiesto di inviare un messaggio CertificateVerify, che ha la seguente struttura:
struct {
digitally-signed struct {
opaque handshake_messages[handshake_messages_length];
}
} CertificateVerify;
In base alle specifiche DTLS ( RFC 6347 - Sezione 4.2.6 ), messaggi finiti ( che coinvolge anche l'hash della concatenazione di tutti i messaggi di handshake) non considera la frammentazione dei pacchetti:
CertificateVerify and Finished messages have the same format as in TLS. Hash calculations include entire handshake messages, including DTLS-specific fields: message_seq, fragment_offset, and fragment_length. However, in order to remove sensitivity to handshake message fragmentation, the Finished MAC MUST be computed as if each handshake message had been sent as a single fragment.
Questo è anche il caso di CertificateVerify, ovvero CertificateVerify firma la concatenazione dei messaggi di handshake considerando ogni messaggio come un singolo frammento? In caso contrario, c'è qualche motivo specifico per mantenere i due calcoli diversi? Le implementazioni dovrebbero diventare più semplici (minori requisiti di archiviazione) se sono uguali.