Passa al contenuto principale

7. HMAC troncato

Le suite di cifratura TLS attualmente definite utilizzano la costruzione MAC HMAC con MD5 o SHA-1 [RFC2104] per autenticare le comunicazioni del livello di record. In TLS, l'intera uscita della funzione hash viene utilizzata come tag MAC. Tuttavia, in ambienti vincolati può essere desiderabile risparmiare larghezza di banda troncando l'uscita della funzione hash a 80 bit durante la formazione dei tag MAC.

Per negoziare l'uso di HMAC troncato a 80 bit, i client POSSONO includere un'estensione di tipo "truncated_hmac" nel client hello esteso. Il campo "extension_data" di questa estensione DEVE essere vuoto.

I server che ricevono un hello esteso contenente un'estensione "truncated_hmac" POSSONO accettare di utilizzare un HMAC troncato includendo un'estensione di tipo "truncated_hmac", con "extension_data" vuoto, nel server hello esteso.

Si noti che se vengono aggiunte nuove suite di cifratura che non utilizzano HMAC e la sessione negozia una di queste suite di cifratura, questa estensione non avrà alcun effetto. Si raccomanda vivamente che qualsiasi nuova suite di cifratura che utilizzi altri MAC consideri la dimensione del MAC come parte integrante della definizione della suite di cifratura, tenendo conto sia delle considerazioni di sicurezza che di larghezza di banda.

Se il troncamento HMAC è stato negoziato con successo durante un handshake TLS e la suite di cifratura negoziata utilizza HMAC, sia il client che il server trasmettono questo fatto al livello di record TLS insieme agli altri parametri di sicurezza negoziati. Successivamente, durante la sessione, i client e i server DEVONO utilizzare HMAC troncati, che sono calcolati come specificato in [RFC2104]. Cioè, CipherSpec.hash_size è di 10 byte e solo i primi 10 byte dell'output HMAC vengono trasmessi e verificati. Si noti che questa estensione non influisce sul calcolo della funzione pseudo-casuale (PRF) come parte dell'handshake o della derivazione della chiave.

La dimensione di troncamento HMAC negoziata si applica per la durata della sessione, incluse le riprese di sessione.