7. Considérations de sécurité
Une description de session SDP ne constitue pas en elle-même un protocole de transport ; elle DOIT être utilisée conjointement avec un protocole de transport pour transmettre la description de session aux participants. Cette section traite des considérations de sécurité liées à l'utilisation de SDP.
Confidentialité (Confidentiality)
Les descriptions de session peuvent contenir des informations sensibles, notamment :
- Les informations d'identité des participants
- Les coordonnées (adresse électronique, numéro de téléphone)
- Les clés de chiffrement
- Les informations de topologie réseau (adresses IP, ports)
- Les horaires et le sujet de la session
Il est recommandé d'utiliser des mécanismes de chiffrement appropriés (tels que TLS, S/MIME) pour protéger la confidentialité des descriptions de session lors de leur transmission.
Intégrité et authenticité (Integrity and Authenticity)
Les descriptions de session DOIVENT être protégées contre toute modification non autorisée. Un attaquant pourrait modifier une description de session pour :
- Rediriger les flux de médias vers un serveur malveillant
- Injecter des attributs malveillants
- Modifier les clés de chiffrement
- Changer les horaires de la session
Il est recommandé d'utiliser des signatures numériques ou des codes d'authentification de message (MAC) pour vérifier l'intégrité et l'authenticité des descriptions de session.
Déni de service (Denial of Service)
Un attaquant pourrait exploiter les descriptions de session pour lancer des attaques par déni de service :
- Envoyer un grand nombre d'annonces de session falsifiées
- Créer des descriptions de session très volumineuses pour épuiser les ressources de l'analyseur syntaxique
- Pointer vers des adresses inexistantes pour consommer des ressources réseau
Les implémentations DEVRAIENT limiter la taille et la complexité des descriptions de session, et traiter correctement les erreurs d'analyse.
Distribution des clés de chiffrement (Encryption Key Distribution)
Bien que SDP fournisse un mécanisme pour transmettre des clés de chiffrement (champ « k= »), dans de nombreux cas, la transmission de clés via une description de session peut ne pas être sécurisée. Il est recommandé d'utiliser des protocoles de gestion de clés dédiés (tels que MIKEY, ZRTP) ou des méthodes d'échange de clés hors bande.
Considérations de confidentialité (Privacy Considerations)
Le champ « o= » contient le nom d'utilisateur et l'adresse IP de la personne ayant créé la session, ce qui peut divulguer des informations privées. Dans les scénarios nécessitant la confidentialité, un nom d'utilisateur arbitraire et une adresse privée peuvent être utilisés, à condition que cela n'affecte pas l'unicité globale du champ.
Traduction d'adresses réseau (NAT) et pare-feux
Les adresses IP et les informations de port contenues dans SDP peuvent devenir invalides lors du passage par un NAT (Network Address Translation) ou un pare-feu. Les applications DEVRAIENT utiliser des mécanismes tels que ICE (Interactive Connectivity Establishment) pour gérer ces situations.