SRTP¶
SRTP (Secure Real-time Transport Protocol, SRTP) — это защищённый протокол реального времени, расширение протокола RTP (Real-time Transport Protocol), предназначенное для обеспечения конфиденциальности, целостности и аутентификации передаваемых мультимедийных данных (аудио, видео, текст) в IP-сетях. SRTP был разработан в 2004 году рабочей группой IETF (Internet Engineering Task Force) и стандартизирован в RFC 3711. Протокол используется в системах IP-телефонии (VoIP), видеоконференцсвязи, потокового вещания и других приложениях, где требуется защита от перехвата, подмены или модификации данных в реальном времени.
¶История
Разработка SRTP началась в начале 2000-х годов в ответ на растущие угрозы безопасности в сетях передачи данных, особенно в области IP-телефонии. Исходный протокол RTP (RFC 3550), широко применяемый для передачи потоковых данных, не предусматривал никаких механизмов шифрования или аутентификации, что делало его уязвимым для атак типа «человек посередине» (MITM), перехвата трафика и подмены пакетов. В 2004 году IETF опубликовала RFC 3711, который определил SRTP как расширение RTP, добавляющее криптографическую защиту. С тех пор протокол прошёл несколько обновлений и уточнений, включая RFC 5506 (2009 год), касающийся использования SRTP в средах с ограниченными ресурсами. В России SRTP активно применяется в корпоративных и государственных системах связи, а также в решениях для защищённой видеоконференцсвязи, соответствующих требованиям Федеральной службы безопасности (ФСБ) и Федеральной службы по техническому и экспортному контролю (ФСТЭК).
¶Архитектура и принцип работы
SRTP работает на транспортном уровне модели OSI, поверх протокола UDP (реже TCP), и использует те же базовые механизмы, что и RTP: нумерацию пакетов, временные метки и идентификаторы источников. Основное отличие — добавление криптографической оболочки, которая обрабатывает каждый пакет RTP перед отправкой.
¶Криптографические механизмы
SRTP применяет симметричное шифрование для обеспечения конфиденциальности и аутентификацию с помощью кодов аутентичности сообщений (MAC) для проверки целостности и подлинности. Конкретные алгоритмы задаются в профиле безопасности, но стандарт рекомендует:
- Шифрование: AES (Advanced Encryption Standard) в режимах Counter (CTR) или F8 (для мобильных устройств). Длина ключа — 128 или 256 бит.
- Аутентификация: HMAC-SHA1 (Hash-based Message Authentication Code с SHA-1) с длиной тега от 32 до 80 бит. В новых реализациях также поддерживается SHA-256.
- Генерация ключей: Используется мастер-ключ (Master Key), из которого с помощью криптографической функции (KDF — Key Derivation Function) выводятся сессионные ключи для шифрования, аутентификации и соли (salt). Соль добавляется для предотвращения коллизий в режиме CTR.
¶Формат пакета SRTP
Пакет SRTP состоит из стандартного заголовка RTP (12 байт), зашифрованной полезной нагрузки (payload), дополнительного поля аутентификации (Authentication Tag) и, опционально, расширения заголовка (Header Extension). Заголовок RTP остаётся незашифрованным, чтобы маршрутизаторы и промежуточные узлы могли обрабатывать пакеты (например, для определения типа потока). Полезная нагрузка (аудио- или видеоданные) шифруется целиком. Поле аутентификации добавляется в конец пакета и содержит MAC-код, вычисленный по всему пакету (включая заголовок и полезную нагрузку).
¶Обработка на стороне получателя
Получатель сначала проверяет аутентификацию пакета, вычисляя MAC и сравнивая его с переданным тегом. Если проверка не проходит, пакет отбрасывается. Затем, если аутентификация успешна, выполняется расшифровка полезной нагрузки. Протокол поддерживает счётчик пакетов (Rollover Counter), который предотвращает повторные атаки (replay attacks) — пакеты с устаревшими номерами отбрасываются.
¶Ключевые особенности
¶Конфиденциальность
Шифрование полезной нагрузки защищает содержимое потока от прослушивания. Заголовок RTP (тип данных, временные метки, идентификаторы) остаётся открытым, что позволяет сетевым устройствам (например, NAT-трансляторам) корректно обрабатывать трафик, но не раскрывает суть передаваемой информации.
¶Целостность и аутентификация
MAC-код гарантирует, что пакет не был изменён в пути и исходит от легитимного источника. Это предотвращает атаки, такие как вставка поддельных пакетов или модификация временных меток.
¶Защита от повторных атак
Счётчик пакетов и уникальный идентификатор сессии (SSRC) позволяют детектировать повторную отправку ранее перехваченных пакетов.
¶Низкая задержка
SRTP спроектирован для работы в реальном времени: криптографические операции выполняются с минимальной задержкой, что критично для голосовой и видеосвязи. Обычно задержка, вносимая SRTP, не превышает нескольких миллисекунд.
¶Управление ключами
SRTP не определяет механизм обмена ключами — это возлагается на внешние протоколы. Наиболее распространённые:
- ZRTP (RFC 6189): Протокол обмена ключами, использующий криптографию с открытым ключом и короткие аутентификационные строки (SAS). Часто применяется в VoIP-клиентах (например, Zfone, Signal).
- MIKEY (Multimedia Internet KEYing, RFC 3830): Протокол, предназначенный для передачи ключей в мультимедийных сессиях, поддерживает предварительное распределение ключей, обмен с помощью сертификатов и асимметричное шифрование.
- DTLS-SRTP (RFC 5764): Использует протокол DTLS (Datagram Transport Layer Security) для установления защищённого канала и обмена ключами. Широко применяется в WebRTC (Web Real-Time Communication) — технологии, используемой в браузерах и мобильных приложениях для видеозвонков.
- SIP-TLS: В IP-телефонии ключи могут передаваться в рамках защищённого протокола SIP (Session Initiation Protocol) с использованием TLS.
В России для управления ключами SRTP в государственных и корпоративных системах часто применяются сертифицированные криптографические средства, соответствующие ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012, а также протоколы, одобренные ФСБ.
¶Применение
¶IP-телефония (VoIP)
SRTP является стандартом де-факто для защищённой голосовой связи в корпоративных АТС (например, Asterisk, Cisco CallManager) и облачных сервисах (например, Zoom, Microsoft Teams). Он защищает разговоры от перехвата и подслушивания.
¶Видеоконференцсвязь
В системах видеоконференций (например, TrueConf, Polycom, Cisco Webex) SRTP используется для шифрования видеопотоков, что особенно важно в государственных и коммерческих организациях, где требуется соблюдение конфиденциальности.
¶Потоковое вещание
В приложениях для потокового аудио и видео (например, IPTV, системы видеонаблюдения) SRTP обеспечивает защиту контента от несанкционированного доступа.
¶WebRTC
В технологии WebRTC, которая лежит в основе браузерных видеозвонков (например, в Google Chrome, Mozilla Firefox), SRTP является обязательным компонентом. Он используется в сочетании с DTLS-SRTP для обмена ключами и шифрования медиапотоков.
¶Мобильные приложения
Многие мессенджеры и VoIP-приложения (например, Signal, WhatsApp, Telegram) используют SRTP для защиты голосовых и видеозвонков. В России SRTP применяется в сертифицированных решениях для защищённой связи, таких как «Крипто-Про» и «ViPNet».
¶Критика и ограничения
Несмотря на широкое распространение, SRTP имеет ряд недостатков:
- Открытый заголовок RTP: Хотя полезная нагрузка шифруется, заголовок остаётся незашифрованным, что может раскрывать метаданные (тип данных, временные метки, идентификаторы). Это позволяет анализировать трафик (например, определять длительность разговора или тип кодека).
- Зависимость от управления ключами: Безопасность SRTP полностью зависит от надёжности протокола обмена ключами. Если ключи скомпрометированы, защита теряется.
- Сложность реализации: Корректная реализация SRTP требует учёта множества деталей (например, обработка счётчика пакетов, синхронизация ключей), что может приводить к ошибкам в программном обеспечении.
- Отсутствие поддержки асимметричного шифрования: SRTP использует только симметричное шифрование, что делает его уязвимым при компрометации мастер-ключа.
- Проблемы с обратной совместимостью: Некоторые старые устройства и программное обеспечение не поддерживают SRTP, что может требовать отключения шифрования в гибридных сетях.
¶Интересные факты
- SRTP может работать как с RTP, так и с RTCP (Real-time Transport Control Protocol), обеспечивая защиту управляющих сообщений (например, отчётов о качестве связи).
- В некоторых реализациях SRTP используется «нулевое шифрование» (NULL cipher), когда аутентификация применяется без шифрования — это полезно для отладки или в средах, где конфиденциальность не требуется.
- Протокол поддерживает несколько ключей для разных потоков в одной сессии, что позволяет, например, шифровать аудио и видео разными ключами.
- В России SRTP часто используется в комплексе с ГОСТ-шифрованием, что требует сертификации средств криптографической защиты информации (СКЗИ) в ФСБ.
¶Источники
- RFC 3711 — The Secure Real-time Transport Protocol (SRTP)
- RFC 3550 — RTP: A Transport Protocol for Real-Time Applications
- RFC 5764 — DTLS Extension to Establish Keys for the SRTP
- RFC 6189 — ZRTP: Media Path Key Agreement for Secure RTP
- «Криптографическая защита информации в сетях IP-телефонии» — учебное пособие, МГТУ им. Н.Э. Баумана, 2018
- «Secure Real-Time Transport Protocol (SRTP)» — Cisco Systems, техническая документация
- «ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012 в системах защищённой связи» — ФСБ России, методические рекомендации
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


