В этой статье я расскажу как активировать ZRTP в Asterisk. На самом деле делается все очень просто. Под катом конфиг.
Все изменения будем делать в файле sip.conf
Для начала в секции general нужно прописать опцию
1 |
directrtpsetup=yes |
Далее в настройках пира нужно указать следующие параметры:
1 2 3 4 5 6 7 8 |
[101] ... context=common host=10.10.10.10 transport=tls encryption=no ; обязательно нужно отключить STLS port=5061 insecure=port,invite |
Из основного нужно отключить SRTP командой encryption=no, и включить TLS транспорт, так же обратите внимание на порт, все остальное параметры выставляются на ваше усмотрение и отражены здесь для примера.
Сохраняемся, делаем в консоли Asterisk sip reload и пробуем звонить. Если оба конца поддерживают ZRTP, то тогда ваш голос будет шифрован.
Привет!
Не все так просто (если клиенты за NAT):
Disable NAT support by setting nat to no on each peers
Disable SRTP by setting encryption to no on each peers, you can still use transport=tls
Enable peer-to-peer media path by setting directmedia to yes on each peers
Set directrtpsetup to yes globally
Set disallowed and allowed codec the same for all participating SIP accounts, for example by setting disallow=all followed by allow=ulaw
Привет. По поводу отключить НАТ не согласен, т.к. в боевом режиме ZRTP работает с параметром nat=force_rport,comedia и все корректно (Asterisk 13.7.2). Что касается SRTP (encryption=yes), то этот параметр в дефолте отключен и если его не указывать, то он будет в no. directmedia у меня стоит в no и так же работает, но у меня ZRTP включено именно для провайдера и Asterisk является клиентом, поэтому возможно для пиров этот параметр критичен. directrtpsetup я в статье описал. Ну и работа zrtp с кодеком G729 так же не выявила проблем.
Такой вопрос, есть программа Jitsi от болгар, в ней можно выставить ZRTP шифрование, будет ли оно работать, если провайдер не предоставляет такую услугу? Такой же вопрос, по сути и к программе Asterisk.
Связка TLS_SRTP не работает в таком случае, как я понимаю. Есть ли вообще провайдеры, предоставляющие шифрование в SIP? Перерыл пол интернета в поиске их.
Привет. Если провайдер не поддерживает протоколы TLS-SRTP или же ZRTP, то работать ничего не будет на любом софте. Провайдеров крайне не много, но они есть, по моему sipnet поддерживает и sipmarket.net
Как понять что zrtp активен на потоке?
В консоли asterisk дай команду: rtp set debug on
Sent RTP packet to 192.168.11.219:4002 (type 08, seq 023026, ts 1874225088, len 000170)
получается не шифруется?
Не совсем так. У себя сейчас нет возможности глянуть, но если у тебя софтфон, то, например Zoiper умеет показывать защищен rtp трафик или нет.
для zrtp нужны сертификаты tls?
Нет. ZRTP работает без сертификатов. Если можно подробнее опиши систему, я тебе помогу.
Подробнее: сервер определяется ZRTP протоколом как Trusted MitM (man in the middle). Обмен ключами происходит по алгоритму, основанному на методе Диффи — Хеллмана (что и гарантирует невозможность прослушки) по протоколу RTP. Если при этом используется защищенный SIP\TLS — посторонние так же не могут получить доступ ни к сигнальной информации, ни к «голосу». Как и в первом варианте предполагается доверие к коммутирующему серверу, но в отличии от него для надёжного шифрования голоса не требуется обязательное использование защищенного SIP\TLS. Также, в отличии от первого варианта, каждый пользователь видит, что разговор шифруется до сервера с обоих сторон, а также то, что оба подключены к одному и тому же (доверенному) серверу.
Конечно на zrtp надо переходить мля….