Современный мир требует от компаний и предприятий выполнения стандартов безопасности во избежании утечек информации и возможной потери финансовых средств в связи с такими утечками. Одним из важных аспектов защиты информации является защита телефонных переговоров. И если защитить переговоры на уровне провайдера не удастся, поскольку шифрование запрещено на федеральном уровне, то шифровать внутренние переговоры вам вполне по силам. Предлагаем кратко пошагово рассмотреть настройку шифрования телефонной связи на базе программного комплекса Asterisk.
Сервер телефонии использует протоколы SIP и RTP для передачи сигнального трафика и голосового соответственно. Поэтому и шифровать нам нужно будет сигнальный трафик с помощью TLS, а также голосовой трафик с помощью SRTP.
Рассмотрим конфигурацию серверной части. В первую очередь, Asterisk должен быть собран с поддержкой res_srtp. Далее нам необходимо сгенерировать TLS сертификаты, с помощью которых и будет производится шифрование трафика телефонии. Для этого в исходниках Asterisk уже размещены скрипты, которые помогут сформировать серверные и клиентские сертификаты. Важно заметить, что нас интересуют только серверные сертификаты, поскольку клиентские сертификаты зачастую просто некуда импортировать или прописывать для использования.
Сам собственно скрипт находится по пути /contrib/scripts в исходниках.
- Необходимо в конфигурационных файлах увеличить срок действия сертификата. Ориентируйтесь на цифру 365 (год, по-умолчанию).
- Поскольку в сертификате будет использовать DNS имя хоста, его необходимо внести в систему. Для этого необходимо отредактировать /etc/hosts. Обратите внимание – это же имя лучше использовать при регистрации на сервере телефонии.
P.S: правильный способ – это приобретение подписанного сертификата доверенным центром сертификации.
Запуск скрипта:
./ast_tls_cert -C compaby.domain.name -O "My Company" -d /etc/asterisk/keys -C - DNS имя, которые мы прописали в /etc/hosts и будем использовать для подключения к серверу телефонии -О - имя нашей организации (информационно) -d - путь, где будут сохраняться наши сертификаты.
Далее нам будет необходимо настроить sip.conf, для того, чтобы активировать шифрование и указать,какие сертификаты будут использоваться для этого:
tlsenable=yes ;;; включаем TLS tlsbindaddr=0.0.0.0:5061 ;; указываем адрес и порт, которые будет слушать ASterisk tlscertfile=/etc/asterisk/keys/asterisk.pem ;; пусть к сертификату tlscafile=/etc/asterisk/keys/ca.crt ;; пусть к сертификату tlsdontverifyserver=yes ;; запрещаем проверку сертификата пиру
Далее, для каждого пира, которому мы хотим включить шифрование необходимо прописать (либо в шаблоне для группы пиров):
transport=tls
encryption=yes
Обратите внимание, что поскольку в transport указано только TLS, то другие протоколы будут недоступны. Если указать tls,udp – то пир сможет автоматически выбирать необходимый протокол для работы. Но если в компании стандарт шифрование – то лучше оставлять только tls, тогда только пир поддерживающий шифрование сможет пользоваться системой.
Далее необходимо перечитать конфиг астериска для применения и приступить к конфигурации клиента.
На текущий момент довольно много клиентов поддерживает шифрование TLS для SIP и SRTP. Например, бесплатная функция шифрования есть у ZOiper 3 или Blink. Аппаратные решения от Cisco и Yelink также поддерживают эти функции.
Например, конфигурация Zoiper 3:
Конфигурация для телефона Cisco:
Конфигурация для телефонов Yelink:
Результатом настройки такой конфигурации можем предоставить в виде дампа при перехвате пакетов с сервера телефонии Asterisk (wireshark):
Таким образом, при перехвате передаваемых пакетов, собрать их в голос не получится, поскольку данные зашифрованы.
Чтобы облегчить задачу защиты конфиденциальной информации, вы можете воспользоваться шифрованной телефонией от EFSOL, которая располагается в облаке в защищенном дата-центре.