Анализ и разработка протокола защищенной передачи информации для систем IP-телефонии
При реализации работы были поставлены следующие задачи:
•проанализировать существующие на сегодняшний день протоколы защищенной передачи информации и выявить их недостатки;
•выбрать оптимальный и наиболее безопасный алгоритм шифрования данных;
•описать процесс установления соединения;
•описать процесс осуществления звонка и передачи текстовых сообщений;
•разработать методы, исключающие атаку «человек посередине»;
•провести тестирование протокола, с целью выявления и исправления ошибок.
В настоящее время вопросы сохранения в тайне переговоров и переписки граждан, приобретают большее значение. Злоумышленники могут прослушивать каналы связи и перехватывать телефонные переговоры и данные. Причина состоит в том, что сервера, обеспечивающие хранение персональных данных абонентов не находятся под контролем компании.В корпоративном секторе предпочитают организовывать систему IP-телефонии с установкой собственного SIP-сервера. Таким образом, создание системы, которая совмещает достоинства систем с собственным сервером и качество глобальных систем связи, является актуальной задачей.Основным элементом такой системы является протокол защищенной передачи данных, обеспечивающий гарантированную защиту информации.
Разработанный протокол использует симметричное шифрование согласно алгоритму ГОСТ 28147-89 с уникальным для данного клиента 256-битным ключом. Голосовая информация и данные, передаваемые между абонентами системы в сеансе связи, шифруются с помощью того же алгоритма, но с использованием ключа, сгенерированного только для данного сеанса.
Основные ключи генерируются при установке и переустановке сервера и хранятся в его базе данных в зашифрованном виде. При добавлении клиента в систему, на сервере генерируется базовый ключ для него, который вводится в клиентское приложение. Этот ключ используется для шифрования управляющей информации, передаваемой между клиентом и сервером и по сети не передается.
Программная реализация представлена в виде библиотеки написанной на языке объектно-ориентированного программирования С++, которая поддерживается в любых приложениях на таких операционных системах как Android, iOS, Windows Phone.
Ниже рассмотрены основные этапы разработанного протокола.
Процесс осуществления авторизации
При авторизации приложение клиента посылает запрос на сервер, в котором указывается уникальный идентификатор абонента, зашифрованный базовым ключом клиента. Если этот идентификатор присутствует в базе сервера, то сервер генерирует уникальный идентификатор подключения и сеансовый ключ шифрования, шифрует их с использованием базового ключа, и отсылает обратно. Получив указанное сообщение, клиент определяет идентификатор подключения, шифрует его сеансовым ключом и отправляет на сервер. Если после расшифровки сообщения оказывается, что полученный идентификатор совпадает с отосланным, то авторизация считается успешной.
После успешной авторизации клиент начинает периодически пинговать сервер. В каждом зашифрованном пинговом пакете, а также во всех пакетах, передаваемых с клиента, содержится уникальный идентификатор подключения, который использовался при авторизации. IP-адрес и порт клиента запоминаются сервером. Если в течение определенного интервала времени пинговые пакеты не приходят, то авторизация данного клиента пропадает. Дополнительно, отключение клиента возможно путем отправки специального сообщения.
После авторизации клиент получает с сервера список абонентов сети. В случае добавления (исключения) абонента список обновляется автоматически во всех подключенных к серверу клиентских приложениях. Обновление списка возможно и по запросу клиента.
Процесс осуществления звонка
Начиная исходящий звонок, Инициатор создаёт у себя Сессию звонка. После создания Сессии Инициатор отправляет Серверу пакет "старт".По UDP Инициатор начинает посылать короткие UDP пакеты на Сервер. Сервер пересылает пакеты Адресату. Голосовые данные не требуют надежной доставки и пересылаются без ожидания подтверждений о доставке. Для их транспортировки используется основанный на UDP проприетарный протокол.
По приходу короткого UDP пакета Сессия Адресата переводится в состояние "работа" и Адресат начинает посылать голосовые пакеты на Сервер, который пересылает их Инициатору.
Процесс передачи текстовых сообщений
Процесс передачи сообщений похож на процесс осуществления звонка. Отличие состоит в составе стартовом пакете "смс". Он содержит другой набор элементов, а именно: идентификатор Клиента-Адресата, идентификатора Клиента-Отправителя, идентификатор сообщения, текст сообщения, время его создания и время жизни.
Выводы
Разработанный протокол успешно используется в системе корпоративной связи Hidden Net, позволяющей организовать простую, надежную и удобную в использовании глобальную мобильную корпоративную систему связи, которая гарантирует, что никакие коммерческие секреты компании не станут доступны ее конкурентам.
2.ГОСТ 28147-89 [Электронный ресурс]. //Википедия. URL: https://ru.wikipedia.org/wiki/ГОСТ_28147-891 (Дата обращения: 5.11.2015).
3. Безопасность IP-телефонии [Электронный ресурс].- URL: http://akimsullec.narod.ru/Diplom/security.htm 1 (Дата обращения: 10.12.2015).
4. SRTP [Электронный ресурс].URL: https://ru.wikipedia.org/wiki/ SRTP1 (Дата обращения: 12.12.2015).
5.Виды атак [Электронный ресурс]. URL: http://www.intuit.ru/studies/courses/8/8/lecture/243?page=1 (Дата обращения: 18.11.2015).