Статья опубликована в рамках: XXXIV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 29 сентября 2015 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
- Условия публикаций
- Все статьи конференции
дипломов
РАЗРАБОТКА КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ СИММЕТРИЧНЫХ И АССИМЕТРИЧНЫХ АЛГОРИТМОВ ШИФРОВАНИЯ
Малахов Михаил Владимирович
Е-mail: cat000000@yandex.ru
Максимов Алексей Иванович
Е-mail: ahebpu3ma@yandex.ru
Сотникова Екатерина Владимировна
студенты 2-го курса, факультет оптико-информационных систем и технологий, МИИГАиК,
РФ, г. Москва
Е-mail: katya.sotnikova999@mail.ru
В современном интернете использование стойкой криптографии должно стать общеустановленным правилом для каждого пользователя. В настоящее время существует крайне мало программ, способных обеспечить передачу данных между двумя пользователями с шифрованием криптостойкими алгоритмами.
Большинство существующих проектов базируются на использовании как минимум промежуточного звена — сервера. Все популярные месседжеры (jabber, viber, skype) зачастую не используют элементарной проверки подлинности сервера по обычному SSL сертификату. Если говорить о web-приложениях или чатах в социальных сетях, то, например, самая популярная в России социальная сеть «ВКонтакте» по умолчанию использует шифрование только при авторизации, а все впоследствии передающиеся данные никак не шифруются. Ввиду специфики протокола TCP перехват таких данных (если злоумышленник находится в одной локальной сети с вами) не составит труда. Пример этому — любая открытая WI-FI сеть в публичных местах, которыми сейчас пользуются уже миллионы людей.
Цель работы заключается в исследовании и создании клиент-серверного программного приложения (один компьютер пользователя становится сервером, другой к нему подключается), использующего асимметричный алгоритм шифрования RSA [3] — криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.
В качестве замены SSL сертификату будет использован статичный сеансовый ключ на основе криптографического алгоритма AES [1] для дополнительной защиты данных во избежание подмены сервера и атаки “man in the middle” (англ. — «человек по середине»), который будет оговорен участниками диалога заранее.
Криптографические системы с открытым ключом используют так называемые односторонние функции, которые обладают следующим свойством [2]:
· если известно , то ʄ(x) вычислить относительно просто (по прямой формуле);
· если известно y = ʄ(x), то для вычисления нет простого (эффективного) пути.
Под односторонностью понимается не теоретическая одно направленность функции, а практическая невозможность вычислить ее обратное значение, используя современные вычислительные средства за обозримый интервал времени.
Данная программное приложение написано на языке программирования C#. Этот язык изначально основан на платформе Net Framework [5], которая уже имеет в себе встроенные средства шифрования [4]. Но поскольку данная платформа разрабатывалась корпорацией Microsoft и не имеет открытой лицензии, то и исходные коды этих функций не были опубликованы. Для наглядности, изучения и анализа мы реализовали целиком весь алгоритм.
При запуске программы появляется «Стартовая форма» (рис. 1) и пользователю предлагается выбрать будет ли он клиентом или сервером. Так же имеется дополнительная возможность выбора языка всей программы.
Рисунок 1. Стартовая форма
Для клиента реализовано окно с возможностью ввода IP адреса, номера порта, имени (аналог логина). Кроме того, в программе реализован пункт дополнительных настроек с выбором длины ключа для алгоритма RSA и вводом статического ключа для дополнительного шифрования AES (рис. 2). После ввода и перехода к основному окну чата все настройки будут сохранены в файл, и таким образом при следующем запуске не придется все настраивать заново.
Рисунок 2. Настройки клиента
После нажатия на кнопку «Далее» откроется окно чата (рис. 3). Для удобства в меню «Файл» реализованы функции очистки окна диалога, его сохранения, загрузки ранее сохраненной переписки, а также возможности экспорта диалога в различные форматы (html, txt).
В меню «Инструменты» располагаются пункт доступа к настройкам дизайна и возможность просмотра служебного лога программы.
В меню «Справка» располагается пункты «Помощь» и «Информации о разработчиках».
Для удобства предусмотрена возможность закрытия окна чата с сохранением диалога при нажатии на крестик.
Рисунок 3. Диалог клиента
Рассмотрим форму настройки сервера (рис. 4). Здесь также присутствует поле ввода имени (аналог логина), номера порта, а также возможность определения вашего внешнего IP адреса.
Стоит учесть, что для работы приложения в режиме сервера, в случае использования маршрутизатора, необходимо выполнить проброс порта во внутреннюю сеть и «белый IP» (отсутствие nat и внутренней локальной сети) у вашего провайдера. В форме присутствует пункт «Расширенные настройки» для ввода дополнительного ключа и установки длины ключа RSA.
Рисунок 4. Настройки сервера
Окно чата для сервера практически идентично окну чата для клиента (рис. 5).
Рисунок 5. Диалог сервера
Ниже представлено окно настроек (рис. 6):
Рисунок 6. Настройки
Анализ работы программы
Таблица 1.
Время генерации ключей
Заключение
В данной работе рассмотрена задача шифрования переписки пользователей с использованием симметричного (AES) и ассиметричного (RSA) алгоритма шифрования. Для этого разработаны алгоритмы, реализованные в программном продукте «Crypto» и исследовано время генерации ключей. Программный продукт создан в среде визуального программирования Visual Studio 2013 на языке C#, отлажен и протестирован.
Преимуществом реализации полной специфики заявленных алгоритмов является то, что на данный момент текущий программный продукт — наиболее гарантированное средство защиты информации. Для правильной пользовательской настройки предусмотрена инструкция для пользователя.
Таблица 2.
Сравнение основных показателей работы «Crypto» с программными аналогами
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Список литературы
- Баричев С.Г., Гончаров В.В., Серов Р.Е. 2.4.2. Стандарт AES. Алгоритм Rijdael. Основы современной криптографии. 3-е изд. Учебное издание 2011. — 175 с.
- Брюс Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. Издательство «Триумф» 2002. — 816 с.
- Венбо Мао. Современная криптография. Теория и практика. Издательство «Вильямс», 2005. — 768 с.
- Кристиан Нейгел и др. C# 5.0 и платформа .NET 4.5 для профессионалов. Издательство «Диалектика», 2013. — 1440 с.
- Рихтер Д. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. 4-е изд. Издательство «Питер», 2015 — 896 с.
дипломов
Оставить комментарий