Как скрыть SIP-соединение

Я разрабатываю мобильный софтфон SIP, заказчику необходимо полностью скрыть SIP-сообщения с софтфонов на SIP-серверы, поскольку VOIP-вызовы запрещены на региональном уровне, однако использование соединения TLS было недостаточным, поскольку заголовки сообщений легко распознаются как SIP-сообщение. Каковы наилучшие общие альтернативы? как насчет openvpn, туннелирования IPSec?


person Montaro    schedule 27.01.2012    source источник
comment
здесь не по теме, лучше спросить на superuser.com   -  person President James K. Polk    schedule 27.01.2012


Ответы (1)


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

Вы можете столкнуться с тем, что порт 5061 заблокирован, поскольку он используется по умолчанию и, следовательно, является хорошо известным портом SIP TLS. Чтобы обойти это, просто используйте другой порт для подключения SIP TLS. Что касается любого, кто просматривает трафик, если он не судится с портом 5061, они не будут знать, что SIP используется в вашем потоке TLS.

Конечно, вам также необходимо учитывать трафик RTP, который будет передавать звуковую часть вызова после его настройки SIP. Стандартизированных портов для RTP не существует, но некоторые популярные программные коммутаторы VoIP по умолчанию используют определенные диапазоны. Например, Asterisk использует UDP от 10 000 до 20 000. Чтобы обойти это, вам действительно нужно использовать SRTP, но его будет сложнее настроить, поскольку его поддерживают не так много пользовательских агентов и серверов SIP. Это также будет легче обнаружить для тех, кто следит за вашим трафиком, поскольку даже не зная содержимого, профиль RTP-пакетов можно будет обнаружить. Тем не менее, вероятно, потребуется сложный объект, отслеживающий ваш трафик, чтобы обнаружить вызов VoIP с использованием SIP через TLS на нестандартном порту и вызов SRTP среди общего шума интернет-трафика.

person sipsorcery    schedule 27.01.2012
comment
У меня был простой эксперимент; SIP-дозвонщик на эмуляторе Android, подключенный к SIP-серверу с использованием TLS-соединения, затем с помощью wireshark я отфильтровал пакеты, отправленные на мой IP-адрес SIP-сервера, и обнаружил, что информация заголовков сообщений содержит SIP, вот о чем я говорю!, что вы думаете ? Для SRTP и портов не по умолчанию они уже на уме. - person Montaro; 29.01.2012
comment
Я думаю, что проблема TLS заключается в том, что первые пакеты, используемые для согласования между клиентом и сервером, происходят непосредственно перед переключением на TLS. - person Montaro; 29.01.2012
comment
Клиент неисправен, если вы сказали ему использовать TLS, но он по-прежнему отправляет некоторые SIP-пакеты по UDP; вы должны зарегистрировать это у разработчика. Еще одна вещь, о которой следует помнить, это то, что если вы используете имя хоста в адресе своего SIP-сервера, тогда клиент должен пойти и найти записи SIP NAPTR и SRV в DNS, что может быть еще одной точкой для того, чтобы кто-то контролировал вас, чтобы поймать вас. если вместо этого вы используете IP-адрес, поиск DNS не выполняется. - person sipsorcery; 29.01.2012
comment
WRT для переключения TLS Я думаю, что стандартом является то, что рукопожатие сначала выполняется незашифрованным, проверьте это ссылка, сейчас я проверяю информацию у разработчиков. Если бы это было так, то единственным способом получить скрытые сообщения из 1-го пакета были бы решения VPN? WRT к записям SRV, я пытаюсь поддерживать его самостоятельно в клиенте, но мне нужен ваш совет здесь ссылка - person Montaro; 29.01.2012
comment
кто отвечает за заказ записей SRV клиент или сервер? - person Montaro; 29.01.2012
comment
@Montaro: я могу однозначно гарантировать вам, что для корректного функционирования соединения SIP через TLS не должно быть НИКАКИХ SIP-пакетов, передаваемых по незашифрованному соединению. Если это произойдет, клиент неисправен. - person sipsorcery; 30.01.2012
comment
да, первое рукопожатие TCP не содержало никаких SIP-сообщений, если только этот заголовок я не получил от wireshark: ›92 23.799094 192.168.10.126 173.234.233.178 TCP 58 ›60633 › sip-tls [SYN] Seq=0 Win=14600 Len=0 MSS= 1460 Как вы можете видеть, информация о пакете содержит sip-tls, я не знаю, является ли этот sip-tls частью сообщения или это просто добавленная информация wireshark! - person Montaro; 31.01.2012
comment
Wireshark отобразит протокол как sip-tls, если вы используете TCP-порт 5061. Это единственный способ идентифицировать SIP через TLS, и даже в этом случае это не столько распознавание содержимого, сколько просто распознавание хорошо известного порта. И да, sip-tls — это поле отображения Wireshark, а не что-то, встроенное в TCP-пакет. - person sipsorcery; 31.01.2012