
Bibliothèque pour SRTP (Secure Realtime Transport Protocol)
Ce paquet fournit une implémentation du protocole de transport temps réel sécurisé (SRTP), de la transformation de sécurité universelle (UST), ainsi qu'un noyau cryptographique de support. L'API SRTP est documentée dans include/srtp.h, et la bibliothèque se trouve dans libsrtp2.a (après compilation).
Ce document décrit libSRTP, la bibliothèque RTP sécurisée Open Source de Cisco Systems, Inc. RTP est le protocole de transport temps réel, une norme IETF pour le transport de données temps réel telles que la téléphonie, l'audio et la vidéo, définie par RFC 3550. Le RTP sécurisé (SRTP) est un profil RTP visant à assurer la confidentialité des données RTP et l'authentification de l'en-tête et de la charge utile RTP. SRTP est une norme IETF, définie dans RFC 3711, et a été développé au sein du groupe de travail Audio/Video Transport (AVT) de l'IETF. Cette bibliothèque prend en charge toutes les fonctionnalités obligatoires de SRTP, mais pas toutes les fonctionnalités optionnelles. Voir la section Fonctionnalités prises en charge pour plus de détails.
Ce document sert également à générer les fichiers de documentation dans le dossier /doc/, où une référence plus détaillée de l'API libSRTP et des fonctions associées peut être créée (nécessite l'installation de doxygen). Le matériel de référence est créé automatiquement à partir de commentaires intégrés dans certains des fichiers d'en-tête C. La documentation est organisée en modules afin d'en améliorer la clarté. Ces modules ne correspondent pas directement aux fichiers. Un noyau cryptographique sous-jacent fournit l'essentiel des fonctionnalités de base de libSRTP mais est en grande partie non documenté, car il opère en arrière-plan.
[email protected] liste de diffusion générale pour les actualités / annonces / discussions. Cette liste est ouverte, voir https://lists.packetizer.com/mailman/listinfo/libsrtp pour vous y inscrire.
[email protected] pour divulguer des problèmes de sécurité à l'équipe de maintenance de libsrtp. Cette liste est fermée, mais toute personne peut y envoyer des messages.
libSRTP est distribué sous la licence suivante, qui est incluse dans la distribution du code source. Elle est reproduite dans le manuel au cas où vous auriez obtenu la bibliothèque d'une autre source.
Copyright (c) 2001-2017 Cisco Systems, Inc. Tous droits réservés.
La redistribution et l'utilisation sous forme source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies :
- Les redistributions du code source doivent conserver l'avis de copyright ci-dessus, cette liste de conditions et l'avertissement suivant.
- Les redistributions sous forme binaire doivent reproduire l'avis de copyright ci-dessus, cette liste de conditions et l'avertissement suivant dans la documentation et/ou les autres matériels fournis avec la distribution.
- Ni le nom de Cisco Systems, Inc. ni les noms de ses contributeurs ne peuvent être utilisés pour approuver ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite préalable spécifique.
CE LOGICIEL EST FOURNI PAR LES DÉTENTEURS DU COPYRIGHT ET LES CONTRIBUTEURS « TELLE QUEL » ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADÉQUATION À UN USAGE PARTICULIER SONT DÉCLINÉES. EN AUCUN CAS LES DÉTENTEURS DU COPYRIGHT OU LES CONTRIBUTEURS NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'ACHAT DE BIENS OU DE SERVICES DE SUBSTITUTION ; LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU UNE INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QUE CE SOIT EN CONTRAT, EN RESPONSABILITÉ STRICTE, OU EN DÉLIT (Y COMPRIS LA NÉGLIGENCE OU AUTREMENT) DÉCOULANT DE QUELQUE MANIÈRE QUE CE SOIT DE L'UTILISATION DE CE LOGICIEL, MÊME SI LA POSSIBILITÉ DE TELS DOMMAGES A ÉTÉ SIGNALÉE.
libSRTP fournit des fonctions pour protéger RTP et RTCP. Les paquets RTP peuvent être chiffrés et authentifiés (à l'aide de la fonction srtp_protect()), ce qui les transforme en paquets SRTP. De même, les paquets SRTP peuvent être déchiffrés et leur authentification vérifiée (à l'aide de la fonction srtp_unprotect()), ce qui les transforme en paquets RTP. Des fonctions similaires appliquent la sécurité aux paquets RTCP.
Le typedef srtp_stream_t pointe vers une structure contenant tout l'état associé à un flux SRTP, y compris les clés et les paramètres des fonctions de chiffrement et d'authentification des messages, ainsi que les données anti-rejeu. Un srtp_stream_t particulier contient les informations nécessaires pour protéger un flux RTP et RTCP spécifique. Ce type de données est volontairement opaque afin de mieux séparer l'API libSRTP de son implémentation.