Назад к обновлениям
New releaseSep 22, 2026

libsrtp v2.8.1

Библиотека для SRTP (Secure Realtime Transport Protocol)

Поделиться

CMake Build CMake Release Autotools Build Autotools Build Coverity Scan Build Status OSS-Fuzz Status

Введение в libSRTP

Этот пакет предоставляет реализацию протокола Secure Real-time Transport Protocol (SRTP), универсального преобразования безопасности Universal Security Transform (UST) и поддерживающего криптографического ядра. API SRTP описан в include/srtp.h, а библиотека находится в libsrtp2.a (после компиляции).

В этом документе описывается libSRTP — библиотека Open Source Secure RTP от Cisco Systems, Inc. RTP — это протокол Real-time Transport Protocol, стандарт IETF для передачи данных в реальном времени, таких как телефония, аудио и видео, определённый в RFC 3550. Secure RTP (SRTP) — это профиль RTP, обеспечивающий конфиденциальность данных RTP и аутентификацию заголовка и полезной нагрузки RTP. SRTP является стандартом IETF, определённым в RFC 3711, и был разработан в рабочей группе IETF Audio/Video Transport (AVT). Эта библиотека поддерживает все обязательные функции SRTP, но не все необязательные. Более подробную информацию см. в разделе Поддерживаемые возможности.

Этот документ также используется для создания файлов документации в папке /doc/, где можно получить более подробный справочник по API libSRTP и связанным функциям (требуется установка doxygen). Справочные материалы создаются автоматически из комментариев, встроенных в некоторые заголовочные файлы C. Документация организована в модули для улучшения её читаемости. Эти модули не соответствуют напрямую файлам. Базовое криптографическое ядро обеспечивает большую часть основной функциональности libSRTP, но в основном не документировано, поскольку работает за кулисами.


Контакты

  • [email protected] — общий список рассылки для новостей / объявлений / обсуждений. Это открытый список, для подписки см. https://lists.packetizer.com/mailman/listinfo/libsrtp.

  • [email protected] — для сообщения о проблемах безопасности команде сопровождения libsrtp. Это закрытый список, но отправлять сообщения может любой.


Содержание


Лицензия и отказ от ответственности

libSRTP распространяется под следующей лицензией, которая включена в дистрибутив исходного кода. Она воспроизведена в руководстве на случай, если вы получили библиотеку из другого источника.

Copyright (c) 2001-2017 Cisco Systems, Inc. Все права защищены.

Разрешается распространение и использование в исходной и двоичной формах, с изменениями или без, при условии соблюдения следующих требований:

  • При распространении исходного кода необходимо сохранять вышеуказанное уведомление об авторских правах, этот список условий и следующий отказ от ответственности.
  • При распространении в двоичной форме вышеуказанное уведомление об авторских правах, этот список условий и следующий отказ от ответственности должны воспроизводиться в документации и/или других материалах, поставляемых с дистрибутивом.
  • Ни название Cisco Systems, Inc. ни имена её участников не могут использоваться для одобрения или продвижения продуктов, созданных на основе этого программного обеспечения, без предварительного письменного разрешения.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПРАВООБЛАДАТЕЛЯМИ И УЧАСТНИКАМИ «КАК ЕСТЬ», И ЛЮБЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ПРИГОДНОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ, ОТКЛОНЯЮТСЯ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛИ ИЛИ УЧАСТНИКИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, ОСОБЫЕ, ПОКАЗАТЕЛЬНЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ЗАТРАТЫ НА ПРИОБРЕТЕНИЕ ЗАМЕНЯЮЩИХ ТОВАРОВ ИЛИ УСЛУГ; ПОТЕРЮ ДАННЫХ, ДОХОДОВ ИЛИ ПРИБЫЛИ; ИЛИ ПРЕРЫВАНИЕ ДЕЯТЕЛЬНОСТИ), КАК БЫ ТО НИ БЫЛО ВЫЗВАНО, И ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, БУДЬ ТО ПО ДОГОВОРУ, СТРОГОЙ ОТВЕТСТВЕННОСТИ ИЛИ ДЕЛИКТУ (ВКЛЮЧАЯ НЕБРЕЖНОСТЬ ИЛИ ИНОЕ), ВОЗНИКШИЕ КАКИМ-ЛИБО ОБРАЗОМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫЛА СООБЩЕНА ВОЗМОЖНОСТЬ ТАКОГО УЩЕРБА.


Обзор libSRTP

libSRTP предоставляет функции для защиты RTP и RTCP. Пакеты RTP могут быть зашифрованы и аутентифицированы (с помощью функции srtp_protect()), превращая их в пакеты SRTP. Аналогичным образом пакеты SRTP могут быть расшифрованы и их аутентификация проверена (с помощью функции srtp_unprotect()), превращая их в пакеты RTP. Подобные функции обеспечивают безопасность пакетов RTCP.

Тип srtp_stream_t указывает на структуру, содержащую всё состояние, связанное с потоком SRTP, включая ключи и параметры для функций шифрования и аутентификации сообщений, а также данные защиты от повторного воспроизведения. Конкретный srtp_stream_t содержит информацию, необходимую для защиты конкретного потока RTP и RTCP. Этот тип данных намеренно непрозрачен, чтобы лучше отделить API libSRTP от его реализации.

В рамках сеанса SRTP может быть несколько потоков, каждый из которых исходит от конкретного отправителя. Каждый источник использует отдельный контекст потока для защиты исходящего потока RTP и RTCP. Тип srtp_t указывает на структуру, содержащую всё состояние, связанное с сеансом SRTP. С одним srtp_t может быть связано несколько контекстов потоков. Контекст потока не может существовать независимо от srtp_t, хотя, конечно, можно создать srtp_t, содержащий только один контекст потока. Устройство, участвующее в сеансе SRTP, должно иметь контекст потока для каждого источника в этом сеансе, чтобы обрабатывать данные, получаемые от каждого отправителя.

Категории