artem
16.07.2018
657

Дешифровка TLS/SRTP для диагностики вызова

В рамках данной статьи будет рассмотрена методика дешифровки TLS в Wireshark для дальнейшей диагностики проблем с вызовами.

Если Asterisk настроен на работу по протоколу TLS часто возникает вопрос как провести диагностику вызовов по имеющимся дампам, так как SIP в этом случае зашифрован и если открыть дамп в Wireshark — будет виден только обмен пакетами, но не содержимое этих пакетов. И в разделе Telephony > VoIP Calls Wiershark`а не будет отображаться вызов.


Но в Wireshark присутствует возможность обойти это, только должны быть соблюдены следующие условия, обязательно необходимо наличие приватного ключа используемого для TLS на сервере, а также дамп должен содержать TLS handshake (по сути согласование параметров соединения между клиентом и сервером до начала обмена данными).

В Asterisk TLS handshake происходит в момент регистрации SIP-клиента на сервере. Для того чтобы handshake попал в дамп необходимо после его запуска перерегистрировать SIP-клиента на Asterisk`е.

После снятия дампа вызова перед его открытием в Wireshark`е последний необходимо настроить. Для этого следует перейти в следующий раздел Edit > Preferences > Protocols и выбрать протокол SSL. Для добавления ключа необходимо в параметре RSA keys list нажать кнопку Edit, также в данном разделе можно указать лог файл в который будет записываться отладочная информация о работе SSL в сессии Wireshark, данный лог указывается в параметре SSL debug file.

Процедура добавления ключа выглядит следующим образом — в открывшемся окне необходимо нажать на кнопку добавления (пиктограмма «плюс»), и внести следующие параметры:
IP address — ip-адресс или доменное имя сервера Asterisk на который выписан сертификат

Port — указать порт регистрации на котором работает TLS, в основном это 5061

Protocol — указать тип протокола который зашифрован с помощью TLS — в данном случае SIP

Key File — указать путь к приватному ключу

Password — если ключ запаролен обязательно указать этот пароль

После этих манипуляций можно открыть файл дампа.

Соответственно теперь видно содержимое дампа в понятном виде: в начале дампа handshake.

Также видно все содержимое SIP пакета.

И можно посмотреть график установления SIP-сессии, в принципе работать далее с дампом как с нешифрованным.

Но есть нюанс — RTP трафик Wireshark не распознал, так как он зашифрован в SRTP, соответсвенно провести диагностику, например, на наличие джиттера, невозможно.

Wireshark может распознать подобные пакеты только в том случае, если ему в явном виде указать тип протокола. Для этого необходимо выбрать один из таких нераспознанных пакетов и в его свойствах (открываются правым щелчком мыши на пакет) выбрать пункт Decode As…

В открывшемся окне необходимо указать текущий протокол соответсвующий выбранному пакету. Указывается в поле Current значение RTP.

Теперь можно использовать следующий функционал Wireshark`а: Telephony > RTP > RTP Streams. Теперь как и в обычном дампе в Wireshark видны параметры голосового трафика.
Единственное отличие RTP Player не будет воспроизводить из дампа голос.

 

 

 

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices