Aller au contenu principal

3. Extension SRTP pour DTLS

3. Extension SRTP pour DTLS

Cette section décrit l'extension DTLS pour établir le matériel de clés, les algorithmes et les paramètres SRTP.

3.1 L'extension use_srtp

Afin de négocier l'utilisation de la protection des données SRTP, les clients incluent une extension de type "use_srtp" dans le client Hello étendu DTLS. Cette extension NE DOIT être utilisée que lorsque les données transportées sont RTP ou RTCP. Le champ "extension_data" de cette extension contient la liste des profils de protection SRTP acceptables. L'extension use_srtp indique également le MKI (Master Key Identifier, identifiant de clé maîtresse) que le client utilisera dans les paquets SRTP ou pour les paquets SRTP qu'il reçoit.

Le format d'extension est:

uint8 SRTPProtectionProfile[2];

struct {
SRTPProtectionProfiles SRTPProtectionProfiles;
opaque srtp_mki<0..255>;
} UseSRTPData;

SRTPProtectionProfile SRTPProtectionProfiles<2..2^16-1>;

Les valeurs SRTPProtectionProfile sont définies dans la section 3.1. Si le serveur est disposé à accepter l'extension use_srtp, il DOIT répondre avec sa propre extension use_srtp dans le serveur Hello étendu DTLS. La liste du serveur DOIT contenir exactement une valeur SRTPProtectionProfile, qui DOIT être l'une des valeurs proposées par le client.

3.2 Choix du certificat

DTLS permet au serveur d'envoyer un message certificate_request. Si le client n'a pas de certificat approprié, il DOIT envoyer un message de certificat vide en réponse. Lors de l'utilisation de DTLS-SRTP, le client DEVRAIT utiliser un certificat approprié pour une utilisation avec DTLS. Étant donné que DTLS du chemin média n'utilise pas le contexte de sécurité du canal de signalisation, le certificat utilisé pour DTLS DEVRAIT être différent de tout certificat utilisé par le protocole de signalisation.

3.3 Dérivation de clé

Lorsque DTLS-SRTP est utilisé, DTLS agit comme fonction de dérivation de clé pour SRTP. Le PRF TLS est utilisé pour dériver le matériel de clés nécessaire comme suit:

keying material = PRF(master_secret, "EXTRACTOR-dtls_srtp",
client_random + server_random)

Le matériel de clés est ensuite divisé en clés de chiffrement SRTP nécessaires, clés d'authentification et clés de salage pour les deux directions (client vers serveur et serveur vers client) comme défini par le profil de protection SRTP sélectionné.

3.4 Portée des clés

Chaque session DTLS-SRTP protège une seule source RTP/RTCP. Une seule session DTLS-SRTP peut être utilisée pour protéger plusieurs flux RTP ou paquets RTCP allant dans une direction entre deux points de terminaison, tant que tous les médias partagent le même SSRC. Cependant, lorsque les appels de conférence impliquent plusieurs sources, chacune avec un SSRC différent, une session DTLS distincte DOIT être utilisée par SSRC.

3.5 Limitations d'utilisation des clés

Les clés dérivées de DTLS NE DOIVENT être utilisées que pour protéger le trafic RTP et RTCP qui est transporté sur le même 5-tuple (IP source, port UDP source, IP de destination, port UDP de destination et protocole). Si le trafic doit être envoyé sur un 5-tuple différent, une nouvelle poignée de main DTLS DOIT être effectuée.