Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Если после внесения изменений во время вызова с транка NEW_TRUNK в течение 100 секунд не будут приходить RTP-пакеты, то вызов будет принудительно завершаться.завершён.

SRTP

SRTP (Secure Real-time Transport Protocol) это расширенная версия протокола RTP с набором защитных механизмов. Протокол был опубликован организацией IETF в стандарте RFC 3711. SRTP обеспечивает конфиденциальность за счет шифрования RTP-нагрузки. Для шифрования медиа потока, SRTP стандартизирует использование только единственного шифра, AES, который может использоваться в двух режимах:

  • Сегментированный целочисленный счётчик — типичный режим, который осуществляет произвольный доступ к любым блокам, что является существенным для трафика RTP, передающегося в публичных сетях с непредсказуемым уровнем надежности и возможной потерей пакетов. Но стандарт для шифрования данных RTP — только обычное целочисленное значение счётчика. AES, работающий в этом режиме, является алгоритмом шифрования по умолчанию, с длиной шифровального ключа в 128 бит и ключом сессии длиной в 112 бит.
  • f8-режим — вариант режима способа обратной связи, расширенного, чтобы быть доступным с изменённой функцией инициализации. Значения по умолчанию для шифровального ключа и ключа сессии — то же, что и в AES в режиме, описанном выше.

SRTP использует функцию формирования ключа для создания ключей на основе мастер-ключа. Протокол управления ключами создает все ключи в сессии с помощью мастер-ключа. За счет того, что у каждой сессии свой уникальный ключ, все сессии защищены. Поэтому, если одна сессия была скомпрометирована, то остальные по-прежнему под защитой.

В конфигурации доступны 2 метода обмена ключами:

И 3 режима использования SRTP:

  • disable – SRTP запрещён;
  • optional – SRTP не обязателен, но ключи будут подставлены в offer SDP второго плеча, без изменения профиля транспорта в медиа секции SDP;
  • mandatory – SRTP обязателен, профиль транспорта в медиа секции SDP будет изменён на соответствующий профиль SRTP.

Если выбран режим mandatory и включены оба метода, то то на втором плече будет выбран DTLS-SRTP, как более приоритетный.

Примечание

По умолчанию поддержка SRTP выключена

Пример использования SRTP

Схема:

TRUNK_IN-----------E-SBC-----------TRUNK_OUT

В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN, уходит в TRUNK_OUT.  На TRUNK_OUT включаем обязательное использование SRTP с методом обмена ключей - SDES.

Блок кода
languagec#
vesr# 
vesr# configure 
vesr(config)# esbc 

#Создание медиапрофиля NEW_MEDIA_PROFILE:
vesr(config-esbc)# media-profile NEW_MEDIA_PROFILE 
vesr(config-esbc-media-profile)# 

#Настройка SRTP(включили обязательный режим использования, метод обмена ключами - SDES):
vesr(config-esbc-media-profile)# srtp keying 
  dtls-srtp  Enable DTLS-SRTP keying method
  sdes       Enable SDES keying method

vesr(config-esbc-media-profile)# srtp keying sdes 
vesr(config-esbc-media-profile)# srtp mode 
  disable    SRTP is disabled
  mandatory  SRTP is mandatory
  optional   SRTP is optional

vesr(config-esbc-media-profile)# srtp mode mandatory 
vesr(config-esbc-media-profile)# 

 
vesr(config-esbc-media-profile)# exit
vesr(config-esbc)#

#Привязать медиапрофиль к транку TRUNK_OUT:
vesr(config-esbc)# trunk sip TRUNK_OUT
vesr(config-esbc-trunk-sip)# media profile NEW_MEDIA_PROFILE 
vesr(config-esbc-trunk-sip)# 

#Применить и подтвердить изменения:
vesr(config-esbc-user-interface-sip)# do commit 
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
vesr(config-esbc-user-interface-sip)# do confirm 
Configuration has been confirmed. Commit timer canceled.

C TRUNK_IN приходит INVITE с SDP offer:

Блок кода
languagec#
Session Description Protocol
    Session Description Protocol Version (v): 0
    Owner/Creator, Session Id (o): 100 61 74 IN IP4 10.25.72.54
    Session Name (s): Talk
    Connection Information (c): IN IP4 10.25.72.54
    Time Description, active time (t): 0 0
    Session Attribute (a): rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics
    Session Attribute (a): record:off
    Media Description, name and address (m): audio 7078 RTP/AVP 96 97 98 0 8 18 101 99 100
    Media Attribute (a): rtpmap:96 opus/48000/2
    Media Attribute (a): fmtp:96 useinbandfec=1
    Media Attribute (a): rtpmap:97 speex/16000
    Media Attribute (a): fmtp:97 vbr=on
    Media Attribute (a): rtpmap:98 speex/8000
    Media Attribute (a): fmtp:98 vbr=on
    Media Attribute (a): fmtp:18 annexb=yes
    Media Attribute (a): rtpmap:101 telephone-event/48000
    Media Attribute (a): rtpmap:99 telephone-event/16000
    Media Attribute (a): rtpmap:100 telephone-event/8000
    Media Attribute (a): rtcp-fb:* trr-int 5000
    Media Attribute (a): rtcp-fb:* ccm tmmbr
    [Generated Call-ID: l0XaoKkqav]

На второе плечо(TRUNK_OUT) пересылаем SDP offer c ключами:

Блок кода
languagec#
Session Description Protocol
    Session Description Protocol Version (v): 0
    Owner/Creator, Session Id (o): 100 3932018917 3932018917 IN IP4 192.168.23.199
    Session Name (s): Talk
    Connection Information (c): IN IP4 192.168.23.199
    Time Description, active time (t): 0 0
    Session Attribute (a): rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics
    Session Attribute (a): record:off
    Media Description, name and address (m): audio 8064 RTP/SAVP 96 97 98 0 8 18 101 99 100
    Media Attribute (a): rtpmap:96 opus/48000/2
    Media Attribute (a): fmtp:96 useinbandfec=1
    Media Attribute (a): rtpmap:97 speex/16000
    Media Attribute (a): fmtp:97 vbr=on
    Media Attribute (a): rtpmap:98 speex/8000
    Media Attribute (a): fmtp:98 vbr=on
    Media Attribute (a): fmtp:18 annexb=yes
    Media Attribute (a): rtpmap:101 telephone-event/48000
    Media Attribute (a): rtpmap:99 telephone-event/16000
    Media Attribute (a): rtpmap:100 telephone-event/8000
    Media Attribute (a): rtcp-fb:* trr-int 5000
    Media Attribute (a): rtcp-fb:* ccm tmmbr
    Media Attribute (a): crypto:1 AES_256_CM_HMAC_SHA1_80 inline:FGdOolKfBlrQzUIedHcIqs9uauWEnUbqxXpop9PaI1dPIHVnO/vdb7JJHRLBLw==
    Media Attribute (a): crypto:2 AES_256_CM_HMAC_SHA1_32 inline:Galc9UfOqBFNmr3ICc3Fiuc3HgEXlj+p1dRw85LavzjWR1sGZUr1nsLQjfaTQA==
    Media Attribute (a): crypto:3 AES_CM_128_HMAC_SHA1_80 inline:jEjWFKpqdf6d94g/ddSjj1i08dEWQA1tTI75Hqx3
    Media Attribute (a): crypto:4 AES_CM_128_HMAC_SHA1_32 inline:uFYI2UDA/+woJJY4fWljfoxRROffXNtEO81bBnHJ
    [Generated Call-ID: 503d40e930910767a2dd95f88b483189]

Создание/конфигурирование модификаторов (modification table)

...