Статья написана специально для linkmeup.
=======================
Здравствуйте, коллеги и друзья, я, Семенов Вадим, совместно с командой проекта network-class.net представляем вниманию обзорную статью, которая затрагивает основные тенденции и угрозы в IP телефонии, и самое главное, те инструменты защиты, что на данный момент предлагает производитель в качестве защиты (если выражаться языком специалистов по безопасности, то рассмотрим какие инструменты предлагает производитель для уменьшения уязвимостей, которыми смогут воспользоваться нелегитимные лица). Итак, меньше слов– переходим к делу.
Для многих читающих термин IP телефония уже давно сформировался, а также и то, что данная телефония «лучше», дешевле по сравнению с телефонией общего пользования (ТФОП), богата различными дополнительными функциями и т.д. И это действительно так, однако… отчасти. По мере перехода от аналоговой (цифровой) телефонии со своими абонентскими линиями (от абонентского телефона до станции или станционного выноса) и соединительными линиями (меж станционная линия связи) ни много ни мало были только лишь в зоне доступа и управления провайдера телефонии. Иными словами, обычным обывателям туда доступа не было (ну или практически так, если не учитывать кабельную канализацию). Вспоминается один вопрос на старом добром форуме хакеров «Подскажите, как получить доступ к АТС? – ответ: «Ну как, берешь бульдозер – таранишь стену здания АТС и вуаля». И эта шутка имеет свою долю правды) Однако с переносом телефонии в дешевую IP среду мы получили в довесок и те угрозы, которые несет в себе открытая IP среда. Примером приобретенных угроз может служить следующее:
- Сниффинг сигнальных портов с целью совершения платных вызовов за чужой счет
- Подслушивание за счет перехвата голосовых IP пакетов
- Перехват звонка, представление нелегитимным пользователем как легитимный пользователь, атака «человек по середине»
- DDOS атаки на сигнальные сервера станции с целью вывода из строя всей телефонии
- Спам-атаки, обрушение большого количества фантомных вызовов на станцию с целью занять все её свободные ресурсы
Несмотря на очевидность в необходимости устранять все возможные уязвимости дабы уменьшить вероятность реализации той или иной атаки — по факту внедрение тех или иных мер защиты необходимо начинать с составления графика, учитывающего стоимость внедрения защитных мер от конкретной угрозы и убытков предприятия от реализации злоумышленниками этой угрозы. Ведь глупо тратить денег на безопасность актива больше, чем стоит сам актив, который мы защищаем.
Определив бюджет на безопасность, начнем устранение именно тех угроз, которые наиболее вероятны для компании, например для малой организации больнее всего будет получить большой счет за несовершенные междугородние и международные звонки, в то время как для государственных компаний важнее всего сохранить конфиденциальность разговоров. Начнем же постепенное рассмотрение в текущей статье с базовых вещей – это обеспечение безопасного способа доставки служебных данных от станции к телефону. Далее рассмотрим аутентификацию телефонов перед подключением их к станции, аутентификацию станции со стороны телефонов ну и шифрование сигнального трафика (для скрытия информации кто и куда звонит) и шифрование разговорного трафика.
У многих производителей голосового оборудования (в том числе и у Cisco Systems) есть уже интегрированные инструменты безопасности от обычного ограничения диапазона ip адресов, с которых можно совершать вызовы, до аутентификации оконечных устройств по сертификату. Например, у производителя Cisco Systems с его голосовой линейкой продуктов CUCM (Cisco Unified CallManager) с версии продукта 8.0 (дата выхода в свет май 2010г.; на данный момент доступна версия 10.5 от мая 2014г.) стала интегрироваться функция «Безопасность по умолчанию». Что она в себя включает:
- Аутентификация всех скачиваемых по/с TFTP файлов (конфигурационные файлы, файлы прошивки для телефонов т.д.)
- Шифрование конфигурационных файлов
- Проверка сертификата с инициализации телефоном HTTPS соединения
Давайте рассмотрим пример атаки «человека по середине», когда нелегитимное лицо перехватывает конфигурационный файлы для телефонов, из которого телефон узнает на какую станцию ему регистрироваться, на каком протоколе работать, какую прошивку скачивать и т.д. Перехватив файл, злоумышленник сможет вносить в него свои изменения либо полностью затереть файл конфигурации, тем самым не дав телефонам всего офиса (см. рисунок) зарегистрироваться на станции, а, следовательно, лишив офиса возможности совершать звонки.
Рис.1 Атака «человек посередине»
Для защиты от этого нам понадобятся знания по несимметричному шифрованию, инфраструктуре открытых ключей и представления о составляющих «Безопасности по умолчанию», с которыми мы сейчас познакомимся: Identity Trust List (ITL) и Trust Verification Service (TVS). TVS – сервис, предназначенный для обработки запросов с IP телефонов, у которых нет ITL или CTL файла во внутренней памяти. IP телефон обращается к TVS в случае необходимости удостовериться может ли он доверять тому или иному сервису перед тем, как начать обращаться к нему. Станция к тому же выступает в роли репозитория, хранящем сертификаты доверенных серверов. В свою очередь ITL представляет собой список из открытых ключей составляющих кластер станции элементов, но для нас важно, что там хранится открытый ключ TFTP сервера и открытый ключ TVS сервиса. При первоначальной загрузке телефона, когда телефон получил свой IP адрес и адрес TFTP сервера, он запрашивает наличие ITL файла (рис.2). Если он есть на TFTP сервере, то, слепо доверяя, загружает его в свою внутреннюю память и хранит до следующей перезагрузки. После скачивания ITL файла телефон запрашивает подписанный конфигурационный файл.
Рис. 2 Загрузка данных IP телефоном
Теперь рассмотрим как мы сможем использовать инструменты криптографии – подписывание файла с помощью хеш-функций MD5 или SHA и шифрование с помощью закрытого ключа TFTP сервера (рис.3). Особенность хеш-функций заключается в том, что это однонаправленные функции. По полученному хешу с какого-либо файла, нельзя проделать обратную операцию и получить в точности оригинальный файл. При изменении файла — изменяется и сам хеш, полученный с этого файла. Стоит отметить, что хеш не записывается в сам файл, а просто добавляется к нему и передается совместно с ним.
Рис.3 Подписывание файла конфигурации телефона
При формировании подписи берется сам конфигурационный файл, извлекается с него хеш и шифруется закрытым ключом TFTP сервера (который обладает только TFTP-сервер).
При получении данного файла с настройками, телефон первоначально проверяет его на целостность. Мы помним, что хеш — это однонаправленная функция, поэтому телефону не остается ничего делать, кроме как отделить зашифрованный TFTP сервером хеш от конфигурационного файла, расшифровать его с помощью открытого ключа TFTP (а откуда его знает IP телефон? – а как раз из ITL файла), из чистого конфигурационного файла вычислить хеш и сравнить его с тем, что мы получили при расшифровании. Если хеш совпадает — значит при передаче в файл не вносились никакие изменения и его можно смело применять на телефоне (рис.4).
Рис.4 Проверка файла конфигурации IP телефоном
Подписанный конфигурационный файл для телефона представлен ниже:
Рис. 5 Подписанный файл IP телефона в Wireshark
Подписав конфигурационный файл, мы смогли обеспечить целостность передаваемого файла с настройками, однако мы не защитили его от просмотра. Из пойманного файла конфигурации можно получить достаточно много полезной информации, например ip адрес телефонной станции (в нашем примере это 192.168.1.66) и открытые порты на станции (2427) и т.д. Не правда ли достаточно важная информация, которую не хотелось бы просто так «светить» в сети? Для скрытия данной информации производители предусматривают использование симметричного шифрования (для шифрования и дешифрования используется один и тот же ключ). Ключ в одном случае может быть введен на телефон вручную, в другом случае шифрование файла конфигурации телефона на станции происходит с использованием открытого ключа телефона. Перед отправлением файла телефону – tftp сервер, на котором хранится этот файл, шифрует его с помощью открытого ключа телефона и подписывает с помощью своего закрытого ключа (тем самым мы обеспечиваем не только скрытость, но и целостность передаваемых файлов). Здесь главное не запутаться, кто какой ключ использует, но давайте разберем по порядку: tftp сервер, зашифровав файл открытым ключом IP телефона, обеспечил тем самым, что этот файл сможет открыть только владелец парного открытого ключа. Подписав файл своим закрытым ключом, tftp сервер подтверждает, что именно он создал его. Зашифрованный файл представлен на рисунке 6:
Рис.6 Зашифрованный файл IP телефона
Итак, на данный момент мы рассмотрели возможность защищать наши конфигурационные файлы для телефонов от просмотра и обеспечивать их целостность. На этом функции «Безопасности по умолчанию» заканчиваются. Для обеспечения шифрования голосового трафика, скрытия сигнальной информации (о том кто звонит и куда звонит), необходимы дополнительные инструменты, основанные на списке доверенных сертификатов – CTL, который мы рассмотрим далее.
Аутентификация телефонной станции
Когда телефону необходимо взаимодействие с телефонной станцией (например, согласовать TLS соединение для обмена сигнализации), IP телефону необходимо аутентифицировать станцию. Как можно догадаться, для решения данной задачи также широко используются сертификаты. На данный момент современные IP станции состоят из большого количества элементов: несколько сигнальных серверов для обработки вызовов, выделенный сервер администрирования (через него добавляются новые телефоны, пользователи, шлюзы, правила маршрутизации и т.д.), выделенный TFTP сервер для хранения файлов конфигурации и программного обеспечения для телефонов, сервер для вещания музыки на удержании и проч, кроме этого в голосовой инфраструктуре может быть голосовая почта, сервер определения текущего состояния абонента (online, offline, «на обеде») – список набирается внушительный и, что самое главное, каждый сервер имеет свой самоподписанный сертификат и каждый работает как корневой удостоверяющий центр (рис.7). По этой причине любой сервер в голосовой инфраструктуре не будет доверять сертификату другого сервера, например голосовой сервер не доверяет TFTP серверу, голосовая почта – сигнальному серверу и к тому же телефоны должны хранить у себя сертификаты всех участвующих в обмене сигнального трафика элементов. Сертификаты телефонной станции изображены на рисунке 7.
Рис.7 Самоподписанные сертификаты Cisco IP станции
Для задач установления доверительных отношений между вышеописанными элементами в голосовой инфраструктур, а также шифрования голосового и сигнального трафика в игру входит так называемый список доверенных сертификатов Certificate Trust List (CTL). CTL содержит все самоподписанные сертификаты всех серверов в кластере голосовой станции, а также участвующих в обмене сигнальными сообщениями телефонии (например, файервол) и этот файл подписывается закрытым ключом доверенного центра сертификации (рис.8). CTL файл эквивалентен проинсталлированным сертификатам, которые используются в работе веб браузеров при работе с https протоколом.
Рис.8 Список доверенных сертификатов
Для того чтобы создать CTL файл на оборудовании Cisco, потребуется ПК с USB разъемом, установленная на нем программа CTL client и сам токен Site Administrator Security Token (SAST) (рис.9), содержащий закрытый ключ и X.509v3 сертификат, подписанный центром аутентификации производителя (Cisco).
Рис.9 eToken Cisco
CTL client — программа, которая устанавливается на Windows ПК и с которой можно перевести ВСЮ телефонную станцию в так называемый mixed mode, то есть смешанный режим поддержки регистрации оконечных устройств в безопасном и небезопасном режимах. Запускаем клиент, указываем IP адрес телефонной станции, вводим логин/пароль администратора и CTL client устанавливает TCP соединение по порту 2444 со станцией (рис.10). После этого будет предложено всего лишь два действия:
Рис.10 Cisco CTL Client
После создания CTL файла, остается перезагрузить TFTP сервера для того, чтобы они подкачали к себе новый созданный CTL файл, и далее перезагрузить голосовые сервера, чтобы IP телефоны также перезагрузились и загрузили новый CTL файл (32 килобайта). Загруженный CTL файл можно просмотреть из настроек IP телефона (рис.11)
Рис.11 CTL файл на IP телефоне
Аутентификация оконечных устройств
Для обеспечения подключения и регистрации только доверенных оконечных устройств необходимо внедрение аутентификации устройств. На этот случай многие производители используют уже проверенный способ – аутентификация устройств по сертификатам (рис.12). Например, в голосовой архитектуре Cisco это реализовано следующим образом: имеются два вида сертификатов для аутентификации с соответствующими открытыми и закрытыми ключами, которые хранятся на телефоне:
Manufacturer Installed Certificate — (MIC). Сертификат, установленный производителем, содержит 2048 битный ключ, который подписан центром сертификации компании производителя (Cisco). Данный сертификат установлен не на все модели телефонов, и если он установлен, то в наличии другого сертификата (LSC) нет необходимости.
Locally Significant Certificate – (LSC) Локально значащий сертификат, содержит открытый ключ IP телефона, который подписан закрытым ключом локального центра аутентификации, который работает на самой телефонной станции Сertificate Authority Proxy Function (CAPF).
Итак, если у нас есть телефоны с предустановленным MIC сертификатом, то каждый раз, когда телефон будет регистрироваться на станцию, станция будет запрашивать для аутентификации предустановленный производителем сертификат. Однако, в случае компрометации MIC-а для его замены необходимо обращение в центр сертификации производителя, что может потребовать большого количества времени. Дабы не зависеть от времени реакции центра сертификации производителя на перевыпуск скомпрометированного сертификата телефона, предпочтительней использование локального сертификата.
Рис.12 Сертификаты для аутентификации оконечных устройств
По умолчанию на IP телефон не установлен LSC сертификат и его установка возможна, используя MIB сертификат (при его наличии), или через TLS соединение (Transport Layer Security) по разделяемому общему ключу, сгенерированному администратором вручную на станции и введенном на телефоне.
Процесс установки на телефон локально значащего сертификата (LSC), содержащий открытый ключ телефона, подписанного локальным центром сертификации изображен на рисунке 13:
Рис.13 Процесс установки локально значащего сертификата LSC
1. После загрузки IP телефон запрашивает доверенный список сертификатов (CTL-файл) и файл с конфигурацией
2. Станция отправляет запрашиваемые файлы
3. Из полученной конфигурации телефон определяет – нужно ли ему загружать локально значащий сертификат (LSC) со станции
4. Если мы на станции выставили для телефона, чтобы он установил LSC сертификат (см.ниже), который станция будет использовать для аутентификации данного IP телефона, то мы должны позаботиться о том, чтобы на запрос об выдаче LSC сертификата – станция выдала его тому, кому он предназначается. Для этих целей мы можем использовать MIC-сертификат (если он есть), сгенерировать одноразовый пароль на каждый телефон и ввести его на телефоне вручную либо не использовать авторизацию вообще.
На примере продемонстрирован процесс установки LSC с использованием сгенерированного ключа.
На станции в режиме настроек IP телефона указываем, что мы хотим установить LSC сертификат на телефон и при этом установка будет произведена успешна, если на телефоне ввести аутентификационный ключ, который мы определили как 12345 (рис.14).
Рис.14 Режим настроек CAPF на телефоне
Заходим в режим настройки телефона и вводим наш ключ (рис.15):
Рис.15 Аутентификационный ключ для установки LSC
После этого установка LSC сертификата на телефон прошла успешна (рис.16):
Рис.16 Настройки безопасности на IP телефоне
Особенностью же использования LSC сертификата для аутентификации оконечных устройств является то, что при компрометации самого сертификата – он может быть переподписан новым закрытым ключом центром сертификации CAPF телефонной станции.
Итак, на данный момент мы добились безопасности не только скачиваемых файлов, но и аутентификацию сигнальных серверов со стороны оконечных устройств (IP телефонов), а также самих оконечных устройств со стороны станции. Рассмотрим теперь сохранение конфиденциальности разговоров за счет шифрования голосового трафика и скрытия сигнальной информации.
Шифрование разговоров — SRTP
Рассмотрим, что на данный момент предлагает производитель, для выполнения самой востребованной задачи – обеспечения конфиденциальности разговоров.
Стандартно все сигнальные и голосовые сообщения передаются в открытом виде, как на представленном рисунке 17:
Рис.17 Открытое сообщение SIP
Secure Real Time Protocol (SRTP) – это специально разработанный протокол RTP, призванный для передачи голоса и видео, однако дополненный механизмами обеспечения конфиденциальности, целостности передаваемой информации не только через RTP, но и RTCP. Голосовое приложение, поддерживающие SRTP, должно конвертировать RTP пакеты в SRTP перед отправкой их по сети. Обратная операция должна быть продела на приемной стороне. В архитектуре SRTP определены два типа ключей: мастер-ключ и сессионный ключ (для шифрования и аутентификации) (рис. 18). Однако SRTP не регламентирует порядок обмена мастер-ключами, для данных целей необходимо использовать TLS или IPSec. Для обмена ключами стандартизованным решением для SRTP является MIKEY (Multimedia Internet Keying), однако могут быть использованы и такие протоколы как SDES и ZRTP.
Рис.18 Совершение звонка с помощью SRTP
Процесс обмена сообщениями SRTP:
- Телефон и сервер обмениваются сертификатами;
- Телефон и сервер аутентифицируют друг друга;
- Телефон создает TLS ключи для SHA аутентификации и для шифрования AES;
- Телефон шифрует ключи с помощью открытого ключа станции и отправляет. Станция расшифровывает с помощью своего закрытого ключа;
- Станция обменивается TLS ключами с каждым из телефонов и приступает к безопасному обмену телефонных сигнальных сообщений (телефон вызываемого абонента звонит);
- Станция создает сессионные ключи для SRTP SHA аутентификации и SRTP AES шифрованию;
- Станция распространяет сессионные ключи обоим телефонам через защищенное сигнальное соединение;
- Телефоны приступают обмен голосового трафика через защищенное SRTP соединение (вызываемый поднял трубку).
Включением шифрования и аутентификации на оборудовании Cisco заведуют профайлы безопасности. Выглядит он следующим образом (рис.19):
Рис.19 Профайл безопасности на Cisco CallManager
В нем мы определяем в каком режиме будут регистрироваться и работать оконечные устройства (телефоны). При выборе опции Non Secure – не шифруются ни сигнальные данные, ни голос; Authenticated – шифруются сигнальные сообщения, но не шифруется голос; Encrypted – шифруется и сигнализация и голос. Есть возможность выбора шифрования конфигурационных данных. После создания профайла необходимо его назначить на телефон (рис.20).
Рис.20 Профайл безопасности телефона на Cisco CallManager
На данный момент мы рассмотрели основные моменты в безопасности IP телефонии, позволяющие бороться против основных угроз телефонии, однако это только шапка айсберга всей безопасности голосовой инфраструктуры) Отдельно необходимо рассмотрение физической безопасности инфраструктуры (например здесь: ГОСТ Р ИСО/МЭК 17799-2005 Практические правила управления информационной безопасностью), и отдельную тему можно посвятить сетевой безопасности. Надеюсь, что тот, кто дочитал статью до конца, остался ей доволен и информация была полезной.
На любые вопросы готов ответить по почте: info@network-class.net
При поддержке проекта network-class.net
9 коментариев
Спасибо за информацию. Но мне, как обычному рядовому пользователю, не все ясно. Но, радует, что есть такие, как вы — все объяснят на пальцах.
Скажите, а вот могу ли я со 100% гарантией быть уверен, что мой провайдер (Весколл — http://www.westvirt.ru), верней моя информация — защищена? НЕ могли бы вы примером, дать какую-то наглядную статистику по защите данных от разных провайдеров? А то их уж очень много. А хочется, чтоб все было под ключом.
But, ultimately, the problems with cognitivism, all traceable to root premises, made the framework unattractive to teachers as well as researchers. These problems were effectively summed up at the outset by Shaughnessy’s caveat in her “Basic Writing” bibliography about the need “to determine how accurately the developmental model Piaget describes for children fits the experience of the young adult learning to write for college” (166), Write essay definition help me New York. As teachers and researchers began to react against deficit definitions of BW students that focused on inadequacies rather than potential, the cognitive model came to seem an extreme example of deficit definition. Do my essay descriptive for cheap New York — custom writing helps. Where to buy term paper descriptive now New York — Realiso Support. Online
Essay & Research Paper Writing Help at Livepaperhelp.com, Do my term paper descriptive help California. 2014 Essay
writing service now college California We dont only Do my term paper persuasive
for It enables you to crystalize into ideas what were mere phantasms of the brain, to arrange your thoughts in their proper order, and to condense or expand details with a ready comprehension of the effect of such alterations upon the general proportions of the story, Do my term paper descriptive help California. It makes your purposed work objective enough so that you can consider it with a coolness and impartiality which were impossible while it was still in embryo in your brain; and it often reveals the absurdity or impossibility of a plan which had seemed to you most happy. I believe that the novice can do no better than to put his every story to this practical test. The use of this skeleton in the further development of the story depends upon the methods of the writer, or the matter in hand. Many short story writers waste no time in preparations, but at once set down the story complete; and to my mind that is the ideal method, for it is more apt to make the tale spontaneous and technically correct.
Спасибо большое за статью!
Хотелось бы уточнить такой момент: в TLS есть такая вещь, как SNI (Server Name Indication). Есть ли примеры использования в VoIP данной вещи? И применяется ли она в принципе?
А то, как-то очень плохо гуглится данный вопрос.
Спасибо большое как раз давно думал запустить у себя CTL, я так понял что это перевод от Cisco. а сам кто нибудь запускал у себя или остаётся в теории.
а ещё я не понял с паролем, когда надо будет вводить пароль 123456(то что на примере) перед регистрацией на СМ или уже после и что надо будет вручную это делать на каждом
«end point» а если таковых >600.
Спасибо за статью, читаю вас с Израиля.
Отличная статья! Спасибо большое! Очень понятно объяснено про обмен ключами, что раньше никак не мог «вкурить»
Чтобы не встрять по полному, правильнее все-таки перевести в secured mode пару телефонов, а потом распространять конфигурацию на все телефоны с помощью BULK 🙂
При режиме работы кодека G.711 с голосовыми отчетами по 20мс размер получившегося пакета вместе с TCP заголовком 160байт, 4 байта размер дополнительных заголовков в SRTP, что соответственно приводит к требованию увеличения полосы пропускания на 2.5%. При использовании кодека G.729 с пакетами в 40 байт, включая заголовок TCP, или с пакетами в 24 байта при использовании сжатия заголовков CRTP, увеличение заголовков служебной информации на 4 байта приводит к увеличению требуемой полосы пропускания на 16,66%.
eToken-ов должно быть как минимум 2, а лучше 4, ведь они используется для подписи сертификатов всех элементов кластера CUCM, а также файервола, то есть если один из элементов кластера требуется заменить (вышел из строя) или наоборот добавить (например, добавляем еще один subscriber), то тогда нам потребуется перевыпуск CTL файла, и именно тогда нам понабится eToken.
то есть через Bulk надо установить «By Null String» что бы не встрять по полному после последующей регистрации.
для SRTP нужно увеличивать bandwidth или не не влияет и ещё вопрос про:
eToken он нужен для создание ключа и как часто он мне будет нужен в текущей работе или это на один раз и потом можно про него забыть?
Привет! В основе статьи ориентировался на первоисточник (от Cisco) и на форумы.
В приведенном примере телефон был зарегистрирован на CM сначала в unsecured режиме (т.е. по умолчанию), а потом уже на него установлен LSC через пароль, введенный вручную.
Когда end point-ов 600 и более можно установить локально значащий сертификат (LSC), не используя аутентификационный пароль, то есть выставить опцию By Null String, тогда CallManager будет слепо доверять запросам конечных устройств.
Согласен. Тема обмена ключами действительно сложна для понимания.