Passa al contenuto principale

3.1. Secure RTP (RTP sicuro)

3.1. Secure RTP (RTP sicuro)

Il formato di un pacchetto SRTP è illustrato nella Figura 1.

    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|X| CC |M| PT | sequence number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| timestamp | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| synchronization source (SSRC) identifier | |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| contributing source (CSRC) identifiers | |
| .... | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| RTP extension (OPTIONAL) | |
+>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | payload ... | |
| | +-------------------------------+ |
| | | RTP padding | RTP pad count | |
+>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+
| ~ SRTP MKI (OPTIONAL) ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| : authentication tag (RECOMMENDED) : |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
+- Encrypted Portion* Authenticated Portion ---+

Figura 1. Il formato di un pacchetto SRTP. *La porzione crittografata ha la stessa dimensione del testo in chiaro per le trasformazioni predefinite della Sezione 4.

La "Encrypted Portion" (Porzione crittografata) di un pacchetto SRTP consiste nella crittografia del payload RTP (incluso il padding RTP quando presente) del pacchetto RTP equivalente. La porzione crittografata PUÒ avere esattamente la stessa dimensione del testo in chiaro o PUÒ essere più grande. La Figura 1 mostra il payload RTP incluso qualsiasi possibile padding per RTP [RFC3550].

Nessuna delle trasformazioni di crittografia predefinite utilizza padding; per queste, le dimensioni del payload RTP e SRTP corrispondono esattamente. Le nuove trasformazioni aggiunte a SRTP (seguendo la Sezione 6) possono richiedere padding e quindi produrre payload più grandi. RTP fornisce il proprio formato di padding (come visto nella Fig. 1), che grazie all'indicatore di padding nell'intestazione RTP ha vantaggi in termini di compattezza rispetto ai padding che utilizzano codici senza prefisso. Questo padding RTP DEVE essere il metodo predefinito per le trasformazioni che richiedono padding. Le trasformazioni POSSONO specificare altri metodi di padding e DEVONO quindi specificare la quantità, il formato e l'elaborazione del loro padding. È importante notare che le trasformazioni di crittografia che utilizzano il padding sono vulnerabili ad attacchi sottili, specialmente quando non viene utilizzata l'autenticazione dei messaggi [V02]. Ogni specifica per una nuova trasformazione di crittografia deve considerare attentamente e descrivere le implicazioni di sicurezza del padding che utilizza. I codici di autenticazione dei messaggi definiscono il proprio padding, quindi questo valore predefinito non si applica alle trasformazioni di autenticazione.

Il MKI OPZIONALE e l'authentication tag RACCOMANDATO sono gli unici campi definiti da SRTP che non sono presenti in RTP. Si presume solo un allineamento a 8 bit.

MKI (Master Key Identifier, Identificatore della chiave master): lunghezza configurabile, OPZIONALE. Il MKI è definito, segnalato e utilizzato dalla gestione delle chiavi. Il MKI identifica la chiave master da cui sono state derivate le chiavi di sessione che autenticano e/o crittografano il pacchetto particolare. Si noti che il MKI NON DEVE identificare il contesto crittografico SRTP, che viene identificato secondo la Sezione 3.2.3. Il MKI PUÒ essere utilizzato dalla gestione delle chiavi per scopi di ri-cifratura, identificando una particolare chiave master all'interno del contesto crittografico (Sezione 3.2.1).

Authentication tag (Tag di autenticazione): lunghezza configurabile, RACCOMANDATO. L'authentication tag viene utilizzato per trasportare i dati di autenticazione dei messaggi. La Authenticated Portion (Porzione autenticata) di un pacchetto SRTP consiste nell'intestazione RTP seguita dalla porzione crittografata del pacchetto SRTP. Pertanto, se vengono applicati sia la crittografia che l'autenticazione, la crittografia DEVE essere applicata prima dell'autenticazione sul lato del mittente e viceversa sul lato del destinatario. L'authentication tag fornisce l'autenticazione dell'intestazione e del payload RTP e fornisce indirettamente protezione dal replay autenticando il numero di sequenza. Si noti che il MKI non è protetto in integrità poiché ciò non fornisce alcuna protezione aggiuntiva.