Passa al contenuto principale

3.4. Secure RTCP (RTCP sicuro)

3.4. Secure RTCP (RTCP sicuro)

L'RTCP sicuro (Secure RTCP) segue la definizione dell'RTP sicuro (Secure RTP). SRTCP aggiunge tre nuovi campi obbligatori (l'indice SRTCP, un "flag di cifratura" encrypt-flag e il tag di autenticazione authentication tag) e un campo opzionale (il MKI) alla definizione del pacchetto RTCP. I tre campi obbligatori DEVONO essere aggiunti a un pacchetto RTCP per formare un pacchetto SRTCP equivalente. I campi aggiunti seguono qualsiasi altra estensione specifica del profilo.

Secondo la Section 6.1 di [RFC3550], esiste un formato di pacchetto RICHIESTO per i pacchetti composti (compound packets). SRTCP DEVE ricevere pacchetti secondo tale requisito nel senso che la prima parte DEVE essere un rapporto del mittente (sender report) o un rapporto del ricevitore (receiver report). Tuttavia, il prefisso di cifratura RTCP (una quantità casuale di 32 bit) specificato in quella sezione NON DEVE essere utilizzato poiché, come ivi indicato, è applicabile solo al metodo di cifratura specificato in [RFC3550] e non è necessario per i meccanismi crittografici utilizzati in SRTP.

  0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+
|V=2|P| RC | PT=SR or RR | length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| SSRC of sender | |
+>+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| ~ sender info ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ report block 1 ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ report block 2 ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ ... ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |V=2|P| SC | PT=SDES=202 | length | |
| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| | SSRC/CSRC_1 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ SDES items ~ |
| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| ~ ... ~ |
+>+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| |E| SRTCP index | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+
| ~ SRTCP MKI (OPTIONAL) ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| : authentication tag : |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
+-- Encrypted Portion Authenticated Portion -----+

Figura 2. Un esempio del formato di un pacchetto RTCP sicuro, costituito da un pacchetto RTCP composto sottostante con un rapporto del mittente e un pacchetto SDES.

La parte cifrata (Encrypted Portion) di un pacchetto SRTCP consiste nella cifratura (Section 4.1) del payload RTCP del pacchetto RTCP composto equivalente, dal primo pacchetto RTCP, cioè dal nono (9) ottetto fino alla fine del pacchetto composto. La parte autenticata (Authenticated Portion) di un pacchetto SRTCP consiste nell'intero pacchetto RTCP equivalente (eventualmente composto), nel flag E e nell'indice SRTCP (dopo che qualsiasi cifratura è stata applicata al payload).

I campi aggiunti sono:

E-flag: 1 bit, RICHIESTO

Il flag E indica se il pacchetto SRTCP corrente è cifrato o non cifrato. La Section 9.1 di [RFC3550] consente la divisione di un pacchetto RTCP composto in due pacchetti di livello inferiore, uno da cifrare e uno da inviare in chiaro. Il bit E impostato su "1" indica pacchetto cifrato, e "0" indica pacchetto non cifrato.

SRTCP index: 31 bit, RICHIESTO

L'indice SRTCP è un contatore a 31 bit per il pacchetto SRTCP. L'indice è esplicitamente incluso in ogni pacchetto, in contrasto con l'approccio a indice "implicito" utilizzato per SRTP. L'indice SRTCP DEVE essere impostato a zero prima dell'invio del primo pacchetto SRTCP, e DEVE essere incrementato di uno, modulo 2^31, dopo l'invio di ogni pacchetto SRTCP. In particolare, dopo una richiavatura, l'indice SRTCP NON DEVE essere reimpostato nuovamente a zero.

Authentication Tag: lunghezza configurabile, RICHIESTO

Il tag di autenticazione viene utilizzato per trasportare dati di autenticazione del messaggio.

MKI: lunghezza configurabile, OPZIONALE

Il MKI è l'indicatore di chiave master (Master Key Indicator) e funziona secondo la definizione del MKI nella Section 3.

SRTCP utilizza per impostazione predefinita i parametri del contesto crittografico e l'elaborazione dei pacchetti di SRTP, con le seguenti modifiche:

  • Il ricevitore non ha bisogno di "stimare" l'indice, poiché è esplicitamente segnalato nel pacchetto.

  • La cifratura SRTCP predefinita è come specificato nella Section 4.1, ma utilizzando la definizione della parte cifrata SRTCP fornita in questa sezione, e utilizzando l'indice SRTCP come indice i. La trasformazione di cifratura e i parametri correlati DEVONO per impostazione predefinita essere gli stessi selezionati per la protezione dei flussi SRTP associati, mentre l'algoritmo NULL DEVE essere applicato agli elementi RTCP SDES (che pertanto DEVONO essere inviati in chiaro).

  • L'autenticazione e l'integrità dei messaggi SRTCP predefinite sono come specificato nella Section 4.2, ma con la parte autenticata SRTCP come input, e utilizzando l'indice SRTCP come indice i. La trasformazione di autenticazione e i parametri correlati (chiave di autenticazione di sessione, ecc.) DEVONO per impostazione predefinita essere gli stessi selezionati per la protezione dei flussi SRTP associati.

  • La derivazione delle chiavi SRTCP predefinita è come specificato nella Section 4.3, utilizzando l'indice SRTCP come indice i. La chiave master e il salt master DEVONO essere gli stessi dei flussi SRTP associati, mentre le lunghezze delle chiavi di sessione e il key_derivation_rate POSSONO essere diversi da quelli utilizzati per SRTP.

Come con SRTP, un MKI può essere incluso nel pacchetto per l'indicazione della chiave master SRTCP.