Explication SRTP


Le protocole de transport en temps réel sécurisé (SRTP) est un systÚme de sécurité qui étend le protocole de transport en temps réel (RTP) avec un ensemble de mécanismes de sécurité.

WebRTC utilise DTLS-SRTP pour le chiffrement, l'authentification et l'intégrité des messages, ainsi que la protection contre les attaques par relecture. Cela garantit la confidentialité grùce au chiffrement et à l'authentification de la charge RTP. SRTP est l'un des composants de la sécurité, il est trÚs pratique pour les développeurs qui recherchent une API fiable et sécurisée. Mais qu'est-ce que SRTP et comment ça marche?

Qu'est-ce que SRTP?


SRTP améliore la sécurité RTP. Le protocole a été publié par l'IETF (Internet Engineering Task Force) dans la RFC 3711 , en mars 2004.

SRTP assure la confidentialitĂ© en chiffrant la charge RTP, sans inclure les en-tĂȘtes RTP. L'authentification est Ă©galement prise en charge, qui est largement utilisĂ©e comme mĂ©canisme de sĂ©curitĂ© dans RTP. Bien que SRTP puisse ĂȘtre utilisĂ© dans son intĂ©gralitĂ©, il est Ă©galement possible de dĂ©sactiver / activer certaines fonctions. Le plugin principal de SRTP est la gestion des clĂ©s, car il existe de nombreuses options: DTLS-SRTP, MIKEY en SIP, SDES (Security Description) en SDP, ZRTP, etc.

Cryptage


SRTP utilise AES (Advanced Encryption Standard) comme chiffre par dĂ©faut. AES a deux modes de cryptage: le mode compteur de segments segmentĂ©s et le mode f8. Le mode compteur est gĂ©nĂ©ralement utilisĂ© - il est extrĂȘmement important lors de la transmission de trafic sur un rĂ©seau non fiable avec une perte potentielle de paquets. Le mode f8 est utilisĂ© dans les rĂ©seaux mobiles 3G et est une variante du mode Feedback de sortie, dans lequel le dĂ©chiffrement se produit de la mĂȘme maniĂšre que le chiffrement.

SRTP permet également aux développeurs de désactiver le chiffrement à l'aide d'un chiffrement nul. Le chiffrement zéro ne fait pas de chiffrement; il copie le flux entrant directement dans le flux sortant, sans modifications.

WebRTC ne recommande pas l'utilisation d'un chiffre zéro, car la sécurité des données est trÚs importante pour les utilisateurs finaux. En fait, les implémentations WebRTC valides DOIVENT prendre en charge le chiffrement, actuellement avec DTLS-SRTP .

Intégrité


Pour prĂ©server l'intĂ©gritĂ© des messages dans SRTP, une Ă©tiquette d'authentification est créée en fonction du contenu et d'une partie des en-tĂȘtes de paquet, qui est ensuite ajoutĂ©e au paquet RTP. Cette Ă©tiquette est utilisĂ©e pour valider le contenu de la charge utile, ce qui empĂȘche la falsification des donnĂ©es.

L'authentification est également la base pour repousser les attaques de ré-accÚs. Pour les bloquer, un index séquentiel est attribué à chaque paquet. Un nouveau message ne sera accepté que si son index est le suivant dans l'ordre et n'a pas encore été reçu. Les indices sont efficaces en raison de l'intégrité décrite ci-dessus; sans elle, il y a la possibilité d'une substitution d'indices.

Bien que WebRTC utilise principalement l'algorithme HMAC-SHA1 pour l'intégrité SRTP, il est fortement recommandé de sélectionner des ensembles d'algorithmes avec PFS (Perfect Forward Secrecy) sur non-PFS et AEAD (Authenticated Encryption with Associated Data) sur non-AEAD. Les implémentations WebRTC récentes utilisent DTLS v1.2 avec la suite d'algorithmes TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.

Les clés


SRTP utilise la fonction de gĂ©nĂ©ration de clĂ©s (KDF) pour crĂ©er des clĂ©s basĂ©es sur la clĂ© principale. Le protocole de gestion des clĂ©s crĂ©e toutes les clĂ©s d'une session Ă  l'aide d'une clĂ© principale. Étant donnĂ© que chaque session a sa propre clĂ© unique, toutes les sessions sont protĂ©gĂ©es. Par consĂ©quent, si une session a Ă©tĂ© compromise, le reste est toujours protĂ©gĂ©. Le protocole de gestion des clĂ©s est utilisĂ© pour la clĂ© principale - il s'agit gĂ©nĂ©ralement de ZRTP ou MIKEY, mais il existe d'autres variantes.


Pile IP RTP

Les flux dans WebRTC sont protégés par l'un des deux protocoles: SRTP ou DTLS (Datagram Transport Layer Security). DTLS - pour le chiffrement des flux de données, SRTP - pour les flux multimédias. Cependant, pour l'échange de clés dans SRTP, DTLS-SRTP est utilisé pour détecter les attaques de courtier. Ceci est détaillé dans les documents de l'IETF: WebRTC security and security arch .

SRTCP (Secure Real-time Transport Control Protocol)


SRTP a un protocole frĂšre - SRTCP (Secure Real-time Transport Control Protocol). SRTCP Ă©tend RTCP (Real-time Transport Control Protocol) avec les mĂȘmes fonctionnalitĂ©s que SRTP Ă©tend RTP, y compris le chiffrement et l'authentification. Comme SRTP, presque toutes les fonctionnalitĂ©s de sĂ©curitĂ© SRTCP peuvent ĂȘtre dĂ©sactivĂ©es, Ă  l'exception de l'authentification des messages - elle est nĂ©cessaire pour SRTCP.

PiĂšges de SRTP


SRTP crypte la charge utile des paquets RTP, mais pas l'extension d'en-tĂȘte. Cela crĂ©e une vulnĂ©rabilitĂ© car l'extension d'en-tĂȘte dans le paquet RTP peut contenir des informations importantes, par exemple, les niveaux sonores de chaque paquet dans le flux multimĂ©dia. Potentiellement, un attaquant peut savoir que deux personnes communiquent sur le rĂ©seau - la confidentialitĂ© de la conversation peut ĂȘtre compromise. Cela a Ă©tĂ© discutĂ© dans la demande de commentaires IETF : 6904 , qui nĂ©cessite toutes les implĂ©mentations ultĂ©rieures de SRTP pour chiffrer les extensions d'en-tĂȘte.

Dans certains cas - par exemple, une confĂ©rence avec de nombreux participants - un intermĂ©diaire sous forme de SFM (Selective Forwarding Mixer) peut ĂȘtre nĂ©cessaire afin d'optimiser les paramĂštres RTP lors de la transmission de flux. Un tel intermĂ©diaire viole le principe de chiffrement de bout en bout utilisĂ© dans les systĂšmes peer-to-peer; en d'autres termes, les terminaux doivent «faire confiance» Ă  un autre participant. Pour contourner cette limitation, la confĂ©rence Enhanced RTP Conferencing (PERC, l'un des groupes de travail de l'IETF) travaille sur des solutions telles que les procĂ©dures de double cryptage de SRTP . Les PERC fournissent des garanties soutenues par un chiffrement bond par bond et de bout en bout dans deux contextes distincts mais liĂ©s. Nous vous en parlerons dans les prochains articles!

Source: https://habr.com/ru/post/fr413165/


All Articles