Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SRTP_SDES_CRYPTO_FAIL IP-Телефония и СКУД

Диагностика ошибок шифрования SRTP и обмена ключами SDES в VoIP

Обновлено: 24.08.2026 · Официальная документация ↗
  • Звонок по TLS устанавливается, но при переходе к разговору наступает полная тишина.
  • Сброс соединения с ошибкой 488 Not Acceptable Here при попытке согласования шифрованного медиа.
  • В логах сервера фиксируются ошибки SRTP unprotect failed: authentication failure или replay check failed.
  • Односторонний звук из-за отказа одного из шлюзов расшифровывать SRTP-пакеты.

1. Анализ криптографического атрибута a=crypto в SDP

Пример строки SDES (RFC 4568) в дампе сигнализации:

a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:W3UZsBg/A182ODUpNV2Sbgi4W4tVdgf7cqmsVUfM

Ключевые поля:

  • Tag (1): порядковый номер криптографического профиля.
  • Crypto-Suite: алгоритм шифрования и аутентификации пакетов (например, AES_CM_128_HMAC_SHA1_80 или AEAD_AES_256_GCM).
  • Key-Params (inline:...): мастер-ключ и соль (base64 encoded).

2. Причины ошибок расшифровки SRTP

  1. Несовпадение Crypto Suite: одна сторона поддерживает только 80-битный тег HMAC (SHA1_80), а вторая предлагает 32-битный (SHA1_32).
  2. Передача SDES по открытому SIP (Security Risk): многие системы безопасности запрещают передачу открытых мастер-ключей в SDP, если сигнальный трафик не защищен TLS.
  3. Рассинхронизация счетчика Rollover Counter (ROC): при резком скачке RTP sequence numbers (потери сети) сбивается индекс дешифрования.

3. Настройка SRTP в Asterisk PJSIP

# pjsip.conf
[endpoint-secure]
type=endpoint
media_encryption=sdes
# Требовать обязательное шифрование (вызов будет отклонен при попытке RTP):
media_encryption_optimistic=no
security_mechanisms=tls

4. Альтернатива: DTLS-SRTP (для WebRTC)

Для браузерных звонков (WebRTC) вместо SDES используется согласование ключей по протоколу DTLS (атрибут a=fingerprint).

💡 Практика специалистов: Если используете шифрование медиа внутри локальной сети — включайте исключительно связку TLS + SRTP. Использование открытого SIP с SDES-ключами создает ложное ощущение безопасности, не защищая от прослушивания.

Частые вопросы (FAQ)

Почему передача ключей SDES по незащищенному SIP UDP считается уязвимостью?

Мастер-ключ шифрования передается открытым текстом внутри SDP-тела. Любой злоумышленник, перехвативший дамп SIP INVITE, мгновенно расшифрует весь разговор SRTP.

В чем разница между AES_CM_128_HMAC_SHA1_80 и SHA1_32?

Разница заключается в длине тега аутентификации пакета: 80 бит (10 байт) обеспечивает максимальную криптостойкость, а 32 бита (4 байта) экономит полосу пропускания, но менее надежен.

Что такое Rollover Counter (ROC) в протоколе SRTP?

Это 32-битный счетчик переполнения 16-битного стандартного поля Sequence Number RTP. Он позволяет корректно шифровать потоки из более чем 65536 пакетов без смены ключа.

Почему при включенном SRTP в Wireshark отображается шум вместо звука?

Payload RTP-пакетов зашифрован алгоритмом AES. Чтобы прослушать аудио в Wireshark, необходимо скопировать строку a=crypto из SDP и добавить ее в настройки протокола SRTP в Wireshark.

Полезные материалы
Рекомендуем