Aller au contenu principal

3.4. Secure RTCP (RTCP sécurisé)

3.4. Secure RTCP (RTCP sécurisé)

Le RTCP sécurisé (Secure RTCP) suit la définition du RTP sécurisé (Secure RTP). SRTCP ajoute trois nouveaux champs obligatoires (l'index SRTCP, un "drapeau de chiffrement" encrypt-flag, et la balise d'authentification authentication tag) et un champ optionnel (le MKI) à la définition du paquet RTCP. Les trois champs obligatoires DOIVENT être ajoutés à un paquet RTCP afin de former un paquet SRTCP équivalent. Les champs ajoutés suivent toutes les autres extensions spécifiques au profil.

Selon la Section 6.1 de [RFC3550], il existe un format de paquet REQUIS pour les paquets composés (compound packets). SRTCP DOIT recevoir des paquets conformément à cette exigence dans le sens où la première partie DOIT être un rapport d'expéditeur (sender report) ou un rapport de récepteur (receiver report). Cependant, le préfixe de chiffrement RTCP (une quantité aléatoire de 32 bits) spécifié dans cette section NE DOIT PAS être utilisé car, comme il est indiqué là, il n'est applicable qu'à la méthode de chiffrement spécifiée dans [RFC3550] et n'est pas nécessaire pour les mécanismes cryptographiques utilisés dans 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 -----+

Figure 2. Un exemple du format d'un paquet RTCP sécurisé, composé d'un paquet RTCP composé sous-jacent avec un rapport d'expéditeur et un paquet SDES.

La partie chiffrée (Encrypted Portion) d'un paquet SRTCP consiste en le chiffrement (Section 4.1) de la charge utile RTCP du paquet RTCP composé équivalent, à partir du premier paquet RTCP, c'est-à-dire du neuvième (9) octet jusqu'à la fin du paquet composé. La partie authentifiée (Authenticated Portion) d'un paquet SRTCP consiste en l'intégralité du paquet RTCP équivalent (éventuellement composé), le drapeau E, et l'index SRTCP (après l'application de tout chiffrement à la charge utile).

Les champs ajoutés sont:

E-flag: 1 bit, REQUIS

Le drapeau E indique si le paquet SRTCP actuel est chiffré ou non chiffré. La Section 9.1 de [RFC3550] permet la division d'un paquet RTCP composé en deux paquets de couche inférieure, l'un à chiffrer et l'autre à envoyer en clair. Le bit E défini sur "1" indique un paquet chiffré, et "0" indique un paquet non chiffré.

SRTCP index: 31 bits, REQUIS

L'index SRTCP est un compteur de 31 bits pour le paquet SRTCP. L'index est explicitement inclus dans chaque paquet, contrairement à l'approche d'index "implicite" utilisée pour SRTP. L'index SRTCP DOIT être défini à zéro avant l'envoi du premier paquet SRTCP, et DOIT être incrémenté de un, modulo 2^31, après l'envoi de chaque paquet SRTCP. En particulier, après un renouvellement de clé, l'index SRTCP NE DOIT PAS être réinitialisé à zéro.

Authentication Tag: longueur configurable, REQUIS

La balise d'authentification est utilisée pour transporter des données d'authentification de message.

MKI: longueur configurable, OPTIONNEL

Le MKI est l'indicateur de clé maîtresse (Master Key Indicator), et fonctionne selon la définition du MKI dans la Section 3.

SRTCP utilise par défaut les paramètres de contexte cryptographique et le traitement de paquets de SRTP, avec les modifications suivantes:

  • Le récepteur n'a pas besoin d'"estimer" l'index, car il est explicitement signalé dans le paquet.

  • Le chiffrement SRTCP prédéfini est spécifié dans la Section 4.1, mais en utilisant la définition de la partie chiffrée SRTCP donnée dans cette section, et en utilisant l'index SRTCP comme index i. La transformation de chiffrement et les paramètres associés DOIVENT par défaut être les mêmes que ceux sélectionnés pour la protection du ou des flux SRTP associés, tandis que l'algorithme NULL DOIT être appliqué aux éléments RTCP SDES (qui par conséquent DOIVENT être envoyés en clair).

  • L'authentification et l'intégrité des messages SRTCP prédéfinies sont spécifiées dans la Section 4.2, mais avec la partie authentifiée SRTCP en entrée, et en utilisant l'index SRTCP comme index i. La transformation d'authentification et les paramètres associés (clé d'authentification de session, etc.) DOIVENT par défaut être les mêmes que ceux sélectionnés pour la protection du ou des flux SRTP associés.

  • La dérivation de clé SRTCP prédéfinie est spécifiée dans la Section 4.3, en utilisant l'index SRTCP comme index i. La clé maîtresse et le sel maître DOIVENT être les mêmes que pour le ou les flux SRTP associés, tandis que les longueurs de clés de session et le key_derivation_rate PEUVENT être différents de ceux utilisés pour SRTP.

Comme avec SRTP, un MKI peut être inclus dans le paquet pour l'indication de clé maîtresse SRTCP.