Оборудование        28.08.2019   

Практические аспекты защиты корпоративной сети IP-телефонии.

  • Информационная безопасность ,
  • Разработка систем связи
    • Tutorial

    Привет, Хабр!
    В этот раз хочу рассказать о технологиях шифрования VoIP звонков, о том какую защиту дают разные подходы и как организовать наиболее защищенную от прослушивания голосовую связь с технологическими гарантиями безопасности.
    В статье я постараюсь доступно изложить особенности таких технологий как SIP\TLS, SRTP и ZRTP. И продемонстрирую конкретные схемы использования на примере нашего сервиса ppbbxx.com

    Немного теории

    Любой VoIP вызов состоит из 2-х основных составляющих: обмена сигнальной информацией и передачи между пользователями media потоков с голосом и/или видео.
    На первом этапе, в процессе обмена сигнальной информацией, клиенты напрямую либо посредством сервера договариваются между собой о параметрах устанавливаемого вызова. Если связь устанавливается с помощью сервера, на основе сигнальной информации сервер авторизует клиента, устанавливает кто и кому звонит, проводит маршрутизацию и коммутацию. Благодаря данным сигнального протокола клиенты и сервер согласуют метод шифрования, используемые media кодеки, обмениваются ip адресами и номерами портов, где ожидается приём media и тд. Происходит это по таким протоколам как SIP, XMPP и прочим.
    Непосредственно «разговор», то есть обмен между клиентами голосовыми данными, как правило происходит по протоколу RTP. Данные внутри передаются в том виде, о котором договорились клиенты и сервер на «сигнальном» этапе. Обмен голосом возможен как напрямую между клиентами, так и через сервер - посредник. Во втором случае сервер может помочь клиентам с прохождением NAT и в выборе кодеков.

    Итак, что же собой представляет шифрованный VoIP вызов? Дальше речь пойдёт о SIP протоколе как наиболее популярном.
    Как мы уже выяснили, звонок состоит из сигнальной и media частей, каждая из которых может быть зашифрована отдельно с применением специальных методов-протоколов. Для шифрования сигнальной информации применяется SIP\TLS, для шифрования «голоса» ZRTP и SRTP протоколы.

    SIP\TLS - грубо говоря, аналог HTTPS для обычного SIP. Протокол позволяет клиенту убедиться, что он общается с нужным сервером при условии, что клиент доверяет предоставленному сервером сертификату. Подробнее можно прочитать на википедии

    SRTP и ZRTP - это два разных способа шифровать RTP потоки. Принципиальное отличие между ними в том, что обмен ключами для SRTP происходит в сигнализации (на первой сигнальной стадии установки вызова). А для ZRTP непосредственно в начале обмена RTP пакетами (во второй, «медийной» части) по специальному протоколу , основанному на методе криптографии Диффи - Хеллмана.
    Важно то, что для SRTP обязательным условием надёжности шифрования звонка является одновременное использование SIP\TLS + SRTP, иначе злоумышленнику не составит труда получить ключи (которые будут переданы по не шифрованному SIP) и прослушать разговор. В то время как для ZRTP это не важно, RTP поток будет надёжно зашифрован не зависимо от того, шифруется сигнализация или нет. Более того протокол умеет определять наличие «man in the middle» (в том числе серверов услуг!) между непосредственно говорящими клиентами. Это позволяет быть уверенным в том, что разговор невозможно прослушать, по крайней мере с точки зрения прослушивания сети/среды передачи данных.

    Схема подключения SIP клиентов с различными настройками шифрования:

    Можно выделить следующие схемы установки шифрованного звонка:

    1. Оба пользователя используют SIP\TLS и SRTP. В этом случае обмен ключами для шифрования media происходят по защищенному сигнальному протоколу. Предполагается доверие к серверу, участвующему в установке связи. Посторонние не могут получить доступ ни к сигнальной информации, ни к голосовым данным. Недостаток в том, что пользователь не уведомлен на уровне протокола (клиента) и не убежден, что второй пользователь также использует шифрованное подключение к серверу.
    2. Оба пользователя используют ZRTP, голос при этом проходит через сервер. В этом случае сервер определяется ZRTP протоколом как Trusted MitM (man in the middle). Обмен ключами происходит по алгоритму, основанному на методе Диффи - Хеллмана (что и гарантирует невозможность прослушки) по протоколу RTP. Если при этом используется защищенный SIP\TLS - посторонние так же не могут получить доступ ни к сигнальной информации, ни к «голосу». Как и в первом варианте предполагается доверие к коммутирующему серверу, но в отличии от него для надёжного шифрования голоса не требуется обязательное использование защищенного SIP\TLS. Также, в отличии от первого варианта, каждый пользователь видит, что разговор шифруется до сервера с обоих сторон, а также то, что оба подключены к одному и тому же (доверенному) серверу.
    3. Оба пользователя используют ZRTP, но media устанавливается напрямую между клиентами. Так как обмен ключами проходит напрямую между клиентами, даже сервер, осуществивший коммутацию, не может прослушать разговор. В этом случае оба клиента отображают информацию о том, что установлен безопасный прямой сеанс связи. Убедиться в этом можно сверив SAS (короткие строки авторизации) - они будут одинаковыми. Если требуется скрыть от посторонних сигнальную информацию, следует использовать SIP\TLS. Это самый безопасный вариант, но в этом случае сервер не сможет выполнять многие функции, которые в других ситуациях выполняются на нем, к примеру запись непосредственно разговора, перекодирование голоса для клиентов с разными настройками аудиокодеков и тд.
    4. Один пользователь использует первый метод, описанный выше, а другой - второй. В этом случае так же требуется доверие к серверу. Сигнальная информация шифруется с помощью SIP\TLS. Для пользователя с ZRTP протокол сообщит, что шифрованное соединение установлено до сервера (End at MitM). Используется ли шифрование с другой стороны на уровне протокола узнать не удастся.

    На этом закончим с теорией и перейдём к практике! Настроим собственный SIP сервер, создадим SIP пользователей, установим SIP клиенты и научимся совершать шифрованные звонки c помощью бесплатного

    Настройка сервера



    Для начала нужно создать собственный сервер. Для этого нужно зайти на сайт услуги ppbbxx.com , пройти простую регистрацию и войти в интерфейс настроек.

    Первым делом пройдём в раздел "Internal network -> Domains " и создадим собственный домен, чтобы не быть ограниченным в выборе имён SIP пользователей. Можно припарковать свой домен либо создать личный субдомен в одной из зон сервиса.
    Далее необходимо в разделе "Internal network -> Sip Users " создать SIP пользователей и настроить некоторые параметры их клиентов. Имена SIP пользователей могут быть произвольными, но так как на программных и аппаратных телефонах удобнее набирать цифры, мы будем заводить идентификаторы вида [email protected] и подобные. Я завёл 1000, 1001, 1002, 1003. После создания SIP идентификатора нужно не забыть нажать кнопку «Сохранить». Если никаких недозаполненных форм в интерфейсе настроек не осталось, система не будет ругаться и покажет лог изменений со статусом «Done».

    Дальше необходимо настроить используемые кодеки и методы шифрования. Для этого нужно нажать значок с шестерёнкой слева от SIP идентификатора. Я планирую использовать SIP клиент (CSipSimple) на смартфоне и хочу использовать метод шифрования ZRTP поэтому в "basic " вкладке настроек выбираю кодеки G729 и SILK, а во вкладке "protection " ZRTP метод.


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

    В целом, для настройки простейшей конфигурации этого достаточно. Можно настраивать SIP клиенты и звонить между ними, набирая их номера 1000, 1001, 1002, 1003. При желании к этому можно добавить общий SIP шлюз для звонков в телефонную сеть и настроить соответствующую маршрутизацию звонков. Но, в таком случае, это уже несколько иная схема использования услуги, которая требует скорее другого рода мер безопасности, нежели шифрование трафика до шлюза.

    Перейдём к настройке SIP клиентов

    Как я уже сказал, я планирую использовать CSipSimple на андроид смартфонах. Первым делом нужно установить клиент, используя стандартный Play Market, либо скачать на сайте производителя , который кстати открывает исходники своего клиента, что в отдельных случаях может иметь едва ли не сакральное значение. Установить нужно сам клиент и дополнительно кодеки. У меня установлены «CSipSimple», «Codec Pack for CSipSimple» и «G729 codec for CSipSimple». Последний платный и использовать его не обязательно, бесплатные SILK и OPUS обеспечивают достойное качество звонков по 3G сетям.

    Запускаем CSipSimple и переходим в интерфейс настройки. Выбираем мастер «Вasic» и настраиваем, используя данные из веб интерфейса. Должно получиться так:

    Далее в общих настройках CSipSimple в разделе "Медиа -> Аудиокодеки " нужно выбрать предпочитаемые кодеки. Для звонков через 3G я рекомендую использовать SILK, OPUS, iLBC, G729. Поскольку настройки в интерфейсе сервера и в интерфейсе клиента должны совпадать , а на сервере я выбрал SILK и G729, то в списке аудиокодеков CSipSimple я ставлю галочки только напротив этих кодеков, а остальные снимаю.
    В разделе клиента "Сеть -> Безопасный протокол " нужно выбрать желаемые параметры шифрования. Я включаю только ZRTP. Остальное оставляю выключенным. При желании можно использовать SIP\TLS - нужно учитывать что сервер ожидает TLS соединения на 443-м порту. Это сделано специально для слишком умных операторов мобильной связи, блокирующих стандартные для VoIP порты.
    Так же нужно учитывать, что SRTP и ZRTP не всегда совместимы и крайне желательно выбирать в клиенте только один из них.

    Совершение звонков с использованием ZRTP

    После того, как все настройки выполнены, совершим несколько звонков для того чтоб продемонстрировать работу CSipSimple в звонках между пользователями с различными настройками безопасности.

    Сразу после выполнения инструкции звонок SIP пользователя 1001 пользователю 1000 будет выглядит таким образом.
    CSipSimple показывает, что в звонке участвует MitM сервер, к которому подключены оба клиента. Параметр EC25 означает, что используется протокол Диффи-Хеллмана на эллиптических кривых с параметром 256 бит. AES-256 - алгоритм симметричного шифрования, который применяется. Статус ZRTP - Verifyed означает, что контрольная строка SAS подтверждена пользователем.

    Изменим режим передачи медиа в настройках ppbbxx для обоих клиентов. Установка direct media = yes позволит передавать голос напрямую. В этом случае стороны видят одинаковые строки SAS, используется алгоритм симметричного шифрования Twofish-256. Использование ZRTP в этом режиме требует от клиентов намного большей свместимости и менее надежно с точки зрения установки связи, поскольку сервер не участвует в передаче данных. Обязательно использование одинаковых аудиокодеков на всех клиентах и корректная работа NAT.

    Если у SIP пользователя 1001 шифрование не установлено, тогда как 1000 использует ZRTP, то второй клиент покажет, что зашифрованная передача голоса происходит только до сервера (End at MitM).

    Резюмируем

    Связь полностью защищенную от прослушивания организовать можно. Это сделать не сложно. Наиболее подходящий способ для этого - использование протокола IP-телефонии SIP и метода шифрования медиа данных ZRTP. Сервис

    Несмотря на солидный возраст технологии VoIP и ее широкое распространение в корпоративном и государственном секторе, использование данной технологии вызывает ряд серьезных проблем, связанных с безопасностью: относительно несложно установить прослушивание VoIP-звонков, относительно несложно изменить содержание VoIP-звонков, система VoIP подвержена DoS-атакам.

    Существующие решения проблемы

    Использование патентованных (закрытых) аудио кодеков

    Некоторые производители предлагают решать вопросы безопасности IP-телефонии путем использования закрытых аудио кодеков. Вся защита строится на том, что злоумышленнику неизвестен алгоритм кодирования звука, но как только алгоритм становится известным, система перестает быть безопасной. Современные тенденции таковы, что большинство производителей использует открытые аудио кодеки. Таким образом, данный способ защиты потерял свою эффективность.

    Использование VLAN

    При построении системы IP-телефонии принято выделять отдельную сеть VLAN, к которой подключаются все IP-телефоны. Данный способ обладает рядом недостатков:

    • Если злоумышленник получит доступ к VLAN системы IP-телефонии, то ему будет доступны для прослушивания все телефонные переговоры.
    • Данное решение никак не может обеспечить безопасность системы IP-телефонии, построенной между двумя и более территориально распределенными офисами.

    Шифрование и криптографическая аутентификация VoIP

    Данный способ обеспечения безопасности на сегодняшний день является наиболее надежным. Защита современных систем IP-телефонии может быть реализована с помощью различных протоколов таких как SRTP, ZRTP и IPSec. Однако, каждый из этих протоколов обладает рядом существенных недостатков:

    • SRTP, ZRTP используют «слабую» криптографию — ключи шифрования недостаточной длины или некриптостойкие алгоритмы шифрования.
    • IPSec — требует проведения предварительного обмена ключами, часто блокируется различными интернет-провайдерами, в ряде случаев в силу ограничения технологии не позволяет установить защищенное соединение.
    • Помимо частных недостатков, все упомянутые способы криптографической защиты IP-телефонии обладают общим недостатком — отсутствие сертификатов ФСБ РФ и ФСТЭК РФ. Из этого следует, что существующие способы защиты IP-телефонии нельзя использовать в государственных учреждениях.

    Решение обеспечения безопасности VoIP от ОАО «ИнфоТеКС»

    Основой защиты VoIP является VPN-решение ViPNet CUSTOM, которое обладает следующим функционалом:

    • Шифрование и фильтрация сигнального и голосового трафика всех участников сети IP-телефонии.
    • Обеспечивает беспрепятственное прохождение VoIP-трафика через устройства NAT.
    • Поддержка виртуальных адресов, в том числе в протоколах SIP, H.323 и Cisco SCCP (Skinny Client Control Protocol), является решением проблемы пересечения пространства IP-адресов удаленных офисов.

    Преимущества

    • Позволяет организовать защиту гетерогенных систем IP-телефонии.
    • Позволяет организовать защищенное взаимодействие между двумя и более локальными сетями с пересекающейся IP-адресацией без изменения топологии этих сетей.
    • Обеспечивает защиту мобильных пользователей IP-телефонии.
    • Обеспечивает прохождении VPN-трафика в случае использования NAT или противодействия со стороны провайдера.
    • Наличие сертификатов ФСБ и ФСТЭК.

    Спецификацией IETF, где описаны стандартные методы для всех компонентов VPN, является протокол Internet Protocol Security, или IPSec, - иногда его называют туннелирова-нием третьего уровня (Layer-3 Tunneling). IPSec предусматривает стандартные методы идентификации пользователей или компьютеров при инициации туннеля, стандартные способы использования шифрования конечными точками туннеля, а также стандартные методы обмена и управления ключами шифрования между конечными точками. Этот гибкий стандарт предлагает несколько способов для выполнения каждой задачи. Выбранные методы для одной задачи обычно не зависят от методов реализации других задач. Идентификацию можно выполнять с помощью спецификации IPSec, причем она является обязательным компонентом протокола IPv6.

    IPSec может работать совместно с L2TP, в результате эти два протокола обеспечивают более надежную идентификацию, стандартизованное шифрование и целостность данных. Следует отметить, что спецификация IPSec ориентирована на IP и, таким образом, бесполезна для трафика любых других протоколов сетевого уровня. Туннель IPSec между двумя локальными сетями может поддерживать множество индивидуальных каналов передачи данных, в результате чего приложения данного типа получают преимущества с точки зрения масштабирования по сравнению с технологией второго уровня.

    Некоторые поставщики VPN используют другой подход под названием «посредники каналов» (circuit proxy), или VPN пятого уровня. Этот метод функционирует над транспортным уровнем и ретранслирует трафик из защищенной сети в общедоступную сеть Internet для каждого сокста в отдельности. (Сокет IP идентифицируется комбинацией TCP-соединения и конкретного порта или заданным портом UDP. Протокол IP не имеет пятого - сеансового -уровня, однако ориентированные на сокеты операции часто называют операциями сеансового уровня).

    Шифрование информации, передаваемой между инициатором и терминатором туннеля, часто осуществляется с помощью защиты транспортного уровня (Transport Layer Security, TLS), ранее протокола защищенных сокетов (Secure Sockets Layer, SSL). Для стандартизации аутентифицированного прохода через брандмауэры IETF определил протокол под названием SOCKS, и в настоящее время SOCKS 5 применяется для стандартизованной реализации посредников каналов.

    В SOCKS 5 клиентский компьютер устанавливает аутентифицированный сокет (или сеанс) с сервером, выполняющим роль посредника (proxy). Этот посредник - единственный способ связи через брандмауэр. Посредник, в свою очередь, проводит любые операции, запрашиваемые клиентом. Поскольку посреднику известно о трафике на уровне сокета, он может осуществлять тщательный контроль, например, блокировать конкретные приложения пользователей, если они не имеют необходимых полномочий. Для сравнения, виртуальные частные сети уровня 2 и 3 обычно просто открывают или закрывают канал для всего трафика по аутентифицированному туннелю. Это может представлять проблему, если нет гарантии защиты информации на другом конце туннеля.

    Следует отметить на наличие взаимосвязи между брандмауэрами и VPN. Если туннели завершаются на оборудовании провайдера Интернет, то трафик будет передаваться по вашей локальной сети или по линии связи с провайдером Интернет в незащищенном виде. Если конечная точка расположена за брандмауэром, то туннелируемый трафик можно контролировать с помощью средств контроля доступа брандмауэра, но никакой дополнительной защиты при передаче по локальной сети это не даст. В этом случае конечную точку будет связывать с брандмауэром незащищенный канал.

    Расположение конечной точки внутри защищаемой брандмауэром зоны обычно означает открытие прохода через брандмауэр (как правило, через конкретный порт TCP). Некоторые компании предпочитают применять реализуемый брандмауэром контроль доступа ко всему трафику, в том числе и к туннелируемому, особенно если другую сторону туннеля представляет пользователь, стратегия защиты которого неизвестна или не внушает доверия. Одно из преимуществ применения тесно интегрированных с брандмауэром продуктов тунне-лирования состоит в том, что можно открывать туннель, применять к нему правила защиты брандмауэра и перенаправлять трафик на конечную точку на конкретном компьютере или в защищаемой брандмауэром подсети.

    Как и любая другая вычислительная функция, работа по созданию сетей VPN проводится с помощью программного обеспечения. Между тем программное обеспечение для VPN может выполняться на самых разных аппаратных платформах. Маршрутизаторы или коммутаторы третьего уровня могут поддерживать функции VNP по умолчанию (или в качестве дополнительной возможности, предлагаемой за отдельную плату). Аппаратно и программно реализуемые брандмауэры нередко предусматривают модули VPN со средствами управления трафиком или без них. Некоторые пограничные комбинированные устройства включают в себя маршрутизатор, брандмауэр, средства управления пропускной способностью и функции VPN (а также режим конфигурации). Наконец, ряд чисто программных продуктов выполняется на соответствующих серверах, кэширует страницы Web, реализует функции брандмауэра и VPN.

    Механизм VPN немыслим без идентификации. Инфраструктура с открытыми ключами (Public Key Infrastructure, PKI) для электронной идентификации и управления открытыми ключами является в настоящее время основной. Данные PKI целесообразнее всего хранить в глобальном каталоге, обращаться к которому можно по упрощенному протоколу доступа к каталогу (Lightweight Directory Access Protocol, LDAP).

    Очень интересную статью о безопасности в IP телефонии, опубликовали на сайте linkmeup.ru . Выкладываем ее без изменений, так сказать, от автора.

    =======================

    Здравствуйте, коллеги и друзья, я, Семенов Вадим, совместно с командой проекта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 файла телефон запрашивает подписанный конфигурационный файл.

    Теперь рассмотрим как мы сможем использовать инструменты криптографии – подписывание файла с помощью хеш-функций 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 с использованием сгенерированно

    Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)

    В системе IP-телефонии должны обеспечиваться два уровня безопасности: системный и вызывной.

    Для обеспечения системной безопасности используются следующие функции:

    Предотвращение неавторизованного доступа к сети путем применения разделяемого кодового слова. Кодовое слово одновременно вычисляется по стандартным алгоритмам на инициирующей и оконечной системах, и полученные результаты сравниваются. При установлении соединения каждая из двух систем IP-телефонии первоначально идентифицирует другую систему; в случае по крайней мере одного отрицательного результата связь прерывается.

    • Списки доступа, в которые вносятся все известные шлюзы IP-телефонии.
    • Запись отказов в доступе.
    • Функции безопасности интерфейса доступа, включая проверку идентификатора и пароля пользователя с ограничением доступа по чтению/записи, проверку прав доступа к специальному WEB-серверу для администрирования.
    • Функции обеспечения безопасности вызова, включая проверку идентификатора и пароля пользователя (необязательно), статус пользователя, профиль абонента.

    При установлении связи шлюза с другим шлюзом своей зоны производится необязательная проверка идентификатора и пароля пользователя. Пользователь в любое время может быть лишен права доступа.

    Действительно, при разработке протокола IP не уделялось должного внимания вопросам информационной безопасности, однако со временем ситуация менялась, и современные приложения, базирующиеся на IP, содержат достаточно защитных механизмов. А решения в области IP-телефонии не могут существовать без реализации стандартных технологий аутентификации и авторизации, контроля целостности и шифрования и т. д. Для наглядности рассмотрим эти механизмы по мере того, как они задействуются на различных стадиях организации телефонного разговора, начиная с поднятия телефонной трубки и заканчивая сигналом отбоя.

    1. Телефонный аппарат.

    В IP-телефонии, прежде чем телефон пошлет сигнал на установление соединения, абонент должен ввести свой идентификатор и пароль на доступ к аппарату и его функциям. Такая аутентификация позволяет блокировать любые действия посторонних и не беспокоиться, что чужие пользователи будут звонить в другой город или страну за ваш счет.

    2. Установление соединения.

    После набора номера сигнал на установление соединения поступает на соответствующий сервер управления звонками, где осуществляется целый ряд проверок с точки зрения безопасности. В первую очередь удостоверяется подлинность самого телефона - как путем использования протокола 802.1x, так и с помощью сертификатов на базе открытых ключей, интегрированных в инфраструктуру IP-телефонии. Такая проверка позволяет изолировать несанкционированно установленные в сети IP-телефоны, особенно в сети с динамической адресацией. Явления, подобные пресловутым вьетнамским переговорным пунктам, в IP-телефонии просто невозможны (разумеется, при условии следования правилам построения защищенной сети телефонной связи).

    Однако аутентификацией телефона дело не ограничивается - необходимо выяснить, предоставлено ли абоненту право звонить по набранному им номеру. Это не столько механизм защиты, сколько мера предотвращения мошенничества. Если инженеру компании нельзя пользоваться междугородной связью, то соответствующее правило сразу записывается в систему управления звонками, и с какого бы телефона ни осуществлялась такая попытка, она будет немедленно пресечена. Кроме того, можно указывать маски или диапазоны телефонных номеров, на которые имеет право звонить тот или иной пользователь.

    В случае же с IP-телефонией проблемы со связью, подобные перегрузкам линий в аналоговой телефонии, невозможны: при грамотном проектировании сети с резервными соединениями или дублированием сервера управления звонками отказ элементов инфраструктуры IP-телефонии или их перегрузка не оказывает негативного влияния на функционирование сети.

    3. Телефонный разговор.

    В IP-телефонии решение проблемы защиты от прослушивания предусматривалось с самого начала. Высокий уровень конфиденциальности телефонной связи обеспечивают проверенные алгоритмы и протоколы (DES, 3DES, AES, IPSec и т. п.) при практически полном отсутствии затрат на организацию такой защиты - все необходимые механизмы (шифрования, контроля целостности, хэширования, обмена ключами и др.) уже реализованы в инфраструктурных элементах, начиная от IP-телефона и заканчивая системой управления звонками. При этом защита может с одинаковым успехом применяться как для внутренних переговоров, так и для внешних (в последнем случае все абоненты должны пользоваться IP-телефонами).

    Однако с шифрованием связан ряд моментов, о которых необходимо помнить, внедряя инфраструктуру VoIP. Во-первых, появляется дополнительная задержка вследствие шифрования/дешифрования, а во-вторых, растут накладные расходы в результате увеличения длины передаваемых пакетов.

    4. Невидимый функционал.

    До сих пор мы рассматривали только те опасности, которым подвержена традиционная телефония и которые могут быть устранены внедрением IP-телефонии. Но переход на протокол IP несет с собой ряд новых угроз, которые нельзя не учитывать. К счастью, для защиты от этих угроз уже существуют хорошо зарекомендовавшие себя решения, технологии и подходы. Большинство из них не требует никаких финансовых инвестиций, будучи уже реализованными в сетевом оборудовании, которое и лежит в основе любой инфраструктуры IP-телефонии.

    Самое простое, что можно сделать для повышения защищенности телефонных переговоров, когда они передаются по той же кабельной системе, что и обычные данные, - это сегментировать сеть с помощью технологии VLAN для устранения возможности прослушивания переговоров обычными пользователями. Хорошие результаты дает использование для сегментов IP-телефонии отдельного адресного пространства. И, конечно же, не стоит сбрасывать со счетов правила контроля доступа на маршрутизаторах (Access Control List, ACL) или межсетевых экранах (firewall), применение которых усложняет злоумышленникам задачу подключения к голосовым сегментам.

    5. Общение с внешним миром.

    Какие бы преимущества IP-телефония ни предоставляла в рамках внутренней корпоративной сети, они будут неполными без возможности осуществления и приема звонков на городские номера. При этом, как правило, возникает задача конвертации IP-трафика в сигнал, передаваемый по телефонной сети общего пользования (ТфОП). Она решается за счет применения специальных голосовых шлюзов (voice gateway), реализующих и некоторые защитные функции, а самая главная из них - блокирование всех протоколов IP-телефонии (H.323, SIP и др.), если их сообщения поступают из неголосового сегмента.

    Для защиты элементов голосовой инфраструктуры от возможных несанкционированных воздействий могут применяться специализированные решения - межсетевые экраны (МСЭ), шлюзы прикладного уровня (Application Layer Gateway, ALG) и пограничные контроллеры сеансов (Session Border Controller). В частности, протокол RTP использует динамические порты UDP, открытие которых на межсетевом экране приводит к появлению зияющей дыры в защите. Следовательно, межсетевой экран должен динамически определять используемые для связи порты, открывать их в момент соединения и закрывать по его завершении. Другая особенность заключается в том, что ряд протоколов, например, SIP, информацию о параметрах соединения размещает не в заголовке пакета, а в теле данных. Поэтому устройство защиты должно быть способно анализировать не только заголовок, но и тело данных пакета, вычленяя из него все необходимые для организации голосового соединения сведения. Еще одним ограничением является сложность совместного применения динамических портов и NAT.