Passa al contenuto principale

4. Costruzione del ticket raccomandata

Questa sezione descrive un meccanismo di costruzione del ticket raccomandato. Le implementazioni sono incoraggiate a considerare attentamente le implicazioni di sicurezza del meccanismo di costruzione del ticket che scelgono. I ticket DEVONO essere autenticati e crittografati per prevenire modifiche e intercettazioni da parte di un attaccante. Diverse suite di cifratura appropriate includono: AES-128-CBC con HMAC-SHA-256, AES-256-CBC con HMAC-SHA-256, AES-128-GCM, AES-256-GCM, e qualsiasi altra suite di cifratura forte che fornisce autenticazione e crittografia.

Il server utilizza una chiave di crittografia per crittografare e decrittografare il ticket. Questa chiave è nota solo al server. Il server utilizza anche una chiave separata per calcolare un controllo di integrità per il ticket. Una costruzione raccomandata è descritta di seguito.

struct {
opaque key_name[16];
opaque iv[16];
opaque encrypted_state<0..2^16-1>;
opaque mac[32];
} ticket;

key_name: Questo campo identifica la chiave di crittografia utilizzata per crittografare il ticket. Si raccomanda di rendere questo valore casuale e di cambiarlo frequentemente.

iv: Questo campo contiene il vettore di inizializzazione (IV) per lo stato crittografato. L'IV DEVE essere generato casualmente per ogni ticket.

encrypted_state: Questo campo contiene lo stato di sessione crittografato. Lo stato include il master secret della sessione, la suite di cifratura, il metodo di compressione e qualsiasi altra informazione di cui il server necessita per ripristinare la sessione.

mac: Questo campo contiene un Message Authentication Code (MAC) che copre l'intero ticket, inclusi i campi key_name, iv e encrypted_state.