3.2.1. Transform-independent parameters (Parametri indipendenti dalla trasformazione)
3.2.1. Transform-independent parameters (Parametri indipendenti dalla trasformazione)
I parametri indipendenti dalla trasformazione sono presenti nel contesto crittografico indipendentemente dalle particolari trasformazioni di cifratura o autenticazione utilizzate. I parametri indipendenti dalla trasformazione del contesto crittografico per SRTP consistono in:
-
un contatore di rollover (rollover counter, ROC) senza segno a 32 bit, che registra quante volte il numero di sequenza RTP a 16 bit è stato azzerato dopo aver superato 65,535. A differenza del numero di sequenza (SEQ), che SRTP estrae dall'intestazione del pacchetto RTP, il ROC è mantenuto da SRTP come descritto nella Section 3.3.1.
Definiamo l'indice del pacchetto SRTP corrispondente a un dato ROC e numero di sequenza RTP come la quantità a 48 bit
i = 2^16 * ROC + SEQ. -
solo per il ricevitore, un numero di sequenza s_l a 16 bit, che può essere considerato come il numero di sequenza RTP più alto ricevuto (vedere Section 3.3.1 per la sua gestione), che DOVREBBE (SHOULD) essere autenticato poiché l'autenticazione dei messaggi è RACCOMANDATA (RECOMMENDED),
-
un identificatore per l'algoritmo di cifratura, cioè il cifrario e la sua modalità operativa,
-
un identificatore per l'algoritmo di autenticazione dei messaggi,
-
una lista di replay (replay list), mantenuta solo dal ricevitore (quando sono fornite autenticazione e protezione dal replay), contenente gli indici dei pacchetti SRTP recentemente ricevuti e autenticati,
-
un indicatore MKI (0/1) che indica se un MKI è presente nei pacchetti SRTP e SRTCP,
-
se l'indicatore MKI è impostato a uno, la lunghezza (in ottetti) del campo MKI, e (per il mittente) il valore effettivo del MKI attualmente attivo (il valore dell'indicatore MKI e la lunghezza DEVONO (MUST) essere mantenuti fissi per tutta la durata del contesto),
-
la o le chiavi master (master keys), che DEVONO (MUST) essere casuali e mantenute segrete,
-
per ogni chiave master, c'è un contatore del numero di pacchetti SRTP che sono stati elaborati (inviati) con quella chiave master (essenziale per la sicurezza, vedere Sections 3.3.1 e 9),
-
interi non negativi n_e e n_a, che determinano la lunghezza delle chiavi di sessione per la cifratura e l'autenticazione dei messaggi.
Inoltre, per ogni chiave master, un flusso SRTP PUÒ (MAY) utilizzare i seguenti valori associati:
-
un salt master (master salt), da utilizzare nella derivazione delle chiavi di sessione. Questo valore, quando utilizzato, DEVE (MUST) essere casuale, ma PUÒ (MAY) essere pubblico. L'uso del salt master è fortemente RACCOMANDATO (RECOMMENDED), vedere Section 9.2. Un salt "NULL" è trattato come 00...0.
-
un intero nell'insieme {1,2,4,...,2^24}, il "key_derivation_rate" (tasso di derivazione della chiave), dove un valore non specificato è trattato come zero. Il vincolo di essere una potenza di 2 semplifica l'implementazione della derivazione della chiave di sessione, vedere Section 4.3.
-
un valore MKI,
-
valori <From, To>, che specificano la durata di vita di una chiave master, espressa in termini di due valori di indice a 48 bit all'interno del cui intervallo (inclusi gli estremi dell'intervallo) la chiave master è valida. Per l'uso di <From, To>, vedere Section 8.1.1. <From, To> è un'alternativa al MKI e presuppone che una chiave master sia in corrispondenza uno-a-uno con la chiave di sessione SRTP su cui è definito l'intervallo <From, To>.
SRTCP DEVE (SHALL) per impostazione predefinita condividere il contesto crittografico con SRTP, tranne:
-
non è necessario mantenere il contatore di rollover e il valore s_l poiché l'indice RTCP è esplicitamente trasportato in ogni pacchetto SRTCP,
-
viene mantenuta una lista di replay separata (quando è fornita la protezione dal replay),
-
SRTCP mantiene un contatore separato per la sua chiave master (anche se la chiave master è la stessa di quella per SRTP, vedere sotto), come mezzo per mantenere un conteggio del numero di pacchetti SRTCP che sono stati elaborati con quella chiave.
Notare in particolare che la o le chiavi master POSSONO (MAY) essere condivise tra SRTP e il corrispondente SRTCP, se vengono utilizzate le trasformazioni predefinite (inclusa la derivazione della chiave), ma la o le chiavi di sessione NON DEVONO (MUST NOT) essere così condivise.
Inoltre, ci possono essere casi (vedere Sections 8 e 9.1) in cui diversi flussi SRTP all'interno di una data sessione RTP, identificati dalla loro sorgente di sincronizzazione (SSRC, che fa parte dell'intestazione RTP), condividono la maggior parte dei parametri del contesto crittografico (incluse possibilmente le chiavi master e di sessione). In tali casi, proprio come nella normale condivisione dei parametri SRTP/SRTCP sopra descritta, DEVONO (MUST) comunque essere mantenute liste di replay e contatori di pacchetti separati per ogni flusso (SSRC). Inoltre, DEVONO (MUST) quindi essere mantenuti indici SRTP separati.
Un riepilogo dei parametri, delle trasformazioni predefinite e dei valori predefiniti per i parametri sopra elencati (e altri parametri SRTP) può essere trovato nelle Sections 5 e 8.2.