1 TLS Record Protocol

Il TLS Record Protocol riceve i dati dal livello superiore, li suddivide in blocchi di dimensioni opportune, eventualmente li comprime, calcola un MAC24, cifra il tutto e trasmette il risultato di questa elaborazione. I dati in ricezione vengono, nell'ordine, decifrati, verificati (verifica del MAC), decompressi, riassemblati e infine consegnati al livello superiore. I tipi di dato che possono essere consegnati al Record Protocol (e che quindi identificano il protocollo di livello superiore) definiti da [10] sono quattro, ovvero: ``handshake protocol'', ``alert protocol'', ``change cipher spec protocol'' e ``application data protocol''; i primi tre fanno parte del TLS Handshake Protocol e saranno descritti successivamente, mentre l'ultimo indica che si tratta di dati del livello applicazione, ovvero del protocollo che sta sopra a TLS.

Il Record Protocol opera sempre all'interno di uno stato, che definisce gli algoritmi di compressione, cifratura e autenticazione e i parametri relativi (come le chiavi). Alla connessione sono sempre associati quattro di questi stati: gli stati correnti in lettura e in scrittura e i corrispondenti stati pendenti; i dati vengono elaborati secondo gli stati correnti, mentre il TLS Handshake Protocol può impostare i parametri per gli stati pendenti e rendere corrente uno stato pendente. In quest'ultimo caso lo stato pendente viene reinizializzato ad uno stato vuoto (che non può diventare corrente); lo stato iniziale specifica che non si utilizza nessun algoritmo di compressione, cifratura e autenticazione.

I parametri di sicurezza definiti per uno stato sono i seguenti:

A partire da questi parametri vengono generati sei valori, ovvero le chiavi per la cifratura e per l'autenticazione e il vettore di inizializzazione (quest'ultimo solo per cifrari a blocco in modalità CBC25) sia per il client che per il server; ognuno dei due interlocutori utilizza i propri parametri (parametri in scrittura) in fase di trasmissione e quelli dell'altra parte (parametri in lettura) in fase di ricezione. Una volta che i parametri di sicurezza sono stati impostati e le chiavi sono state generate, gli stati della connessione possono essere istanziati rendendoli correnti. Gli stati devono essere aggiornati ad ogni record elaborato, e ciascuno comprende le seguenti informazioni: stato della compressione (stato corrente dell'algoritmo di compressione), stato della cifratura (comprende la chiave e altre informazioni necessarie a definire lo stato dell'algoritmo, per esempio l'ultimo blocco nel caso di un cifrario a blocco in modalità CBC), MAC secret e numero di sequenza.

Come detto in precedenza, il TLS Record Protocol riceve dei dati in modo opaco dal livello superiore, li suddivide in blocchi, applica un algoritmo di compressione, poi inserisce un MAC (calcolato tramite un hash sulla chiave segreta, il numero di sequenza, il frammento compresso e altri parametri) e infine cifra il tutto, MAC compreso (figura 3.1).

Figura 3.1: Sequenza delle trasformazioni di TLS.
\includegraphics{immagini/tls_trasformazioni.eps}



Footnotes

... MAC24
Si veda l'appendice A.5.
... CBC25
Si veda l'appendice A.2.
©2001 Davide Cerri