Телефон: +7 (383)-202-16-86

Статья опубликована в рамках: XXXIV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 29 сентября 2015 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Малахов М.В., Максимов А.И., Сотникова Е.В. РАЗРАБОТКА КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ СИММЕТРИЧНЫХ И АССИМЕТРИЧНЫХ АЛГОРИТМОВ ШИФРОВАНИЯ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XXXIV междунар. студ. науч.-практ. конф. № 7(33). URL: http://sibac.info/archive/technic/7(33).pdf (дата обращения: 13.11.2019)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов


РАЗРАБОТКА  КЛИЕНТ-СЕРВЕРНОГО  ПРИЛОЖЕНИЯ  С  ИСПОЛЬЗОВАНИЕМ  СИММЕТРИЧНЫХ  И  АССИМЕТРИЧНЫХ  АЛГОРИТМОВ  ШИФРОВАНИЯ


Малахов  Михаил  Владимирович


Е-mailcat000000@yandex.ru


Максимов  Алексей  Иванович


Е-mailahebpu3ma@yandex.ru


Сотникова  Екатерина  Владимировна


студенты  2-го  курса,  факультет  оптико-информационных  систем  и  технологий,  МИИГАиК, 
РФ,  г.  Москва


Е-mailkatya.sotnikova999@mail.ru


 


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


Большинство  существующих  проектов  базируются  на  использовании  как  минимум  промежуточного  звена  —  сервера.  Все  популярные  месседжеры  (jabber,  viber,  skype)  зачастую  не  используют  элементарной  проверки  подлинности  сервера  по  обычному  SSL  сертификату.  Если  говорить  о  web-приложениях  или  чатах  в  социальных  сетях,  то,  например,  самая  популярная  в  России  социальная  сеть  «ВКонтакте»  по  умолчанию  использует  шифрование  только  при  авторизации,  а  все  впоследствии  передающиеся  данные  никак  не  шифруются.  Ввиду  специфики  протокола  TCP  перехват  таких  данных  (если  злоумышленник  находится  в  одной  локальной  сети  с  вами)  не  составит  труда.  Пример  этому  —  любая  открытая  WI-FI  сеть  в  публичных  местах,  которыми  сейчас  пользуются  уже  миллионы  людей.


Цель  работы  заключается  в  исследовании  и  создании  клиент-серверного  программного  приложения  (один  компьютер  пользователя  становится  сервером,  другой  к  нему  подключается),  использующего  асимметричный  алгоритм  шифрования  RSA  [3]  —  криптографический  алгоритм  с  открытым  ключом,  основывающийся  на  вычислительной  сложности  задачи  факторизации  больших  целых  чисел.


В  качестве  замены  SSL  сертификату  будет  использован  статичный  сеансовый  ключ  на  основе  криптографического  алгоритма  AES  [1]  для  дополнительной  защиты  данных  во  избежание  подмены  сервера  и  атаки  “man  in  the  middle”  (англ.  —  «человек  по  середине»),  который  будет  оговорен  участниками  диалога  заранее.


Криптографические  системы  с  открытым  ключом  используют  так  называемые  односторонние  функции,  которые  обладают  следующим  свойством  [2]:


·     если  известно  x,  то  ʄ(x)  вычислить  относительно  просто  (по  прямой  формуле);


·     если  известно  y  =  ʄ(x),  то  для  вычисления  x  нет  простого  (эффективного)  пути.


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


Данная  программное  приложение  написано  на  языке  программирования  C#.  Этот  язык  изначально  основан  на  платформе  Net  Framework  [5],  которая  уже  имеет  в  себе  встроенные  средства  шифрования  [4].  Но  поскольку  данная  платформа  разрабатывалась  корпорацией  Microsoft  и  не  имеет  открытой  лицензии,  то  и  исходные  коды  этих  функций  не  были  опубликованы.  Для  наглядности,  изучения  и  анализа  мы  реализовали  целиком  весь  алгоритм.


При  запуске  программы  появляется  «Стартовая  форма»  (рис.  1)  и  пользователю  предлагается  выбрать  будет  ли  он  клиентом  или  сервером.  Так  же  имеется  дополнительная  возможность  выбора  языка  всей  программы.


 


Форма 2
Рисунок  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»  с  программными  аналогами



Показатель



Вконтакте



Telegramm



Viber



Skype



наша  программа  Crypto



Простота  в  настройке



да



да



да



нет



да



Работа  через  fierwall



нет



нет



нет



частично



да



Отсутствие  промежуточного  сервера



нет



частично



нет



нет



да



Ассиметричное  шифрование  (RSA)



да



да



да



да



да



Симметричное  шифрование  по  паролю  (AES)



нет



нет



нет



нет



да



Необходимость  установки



нет



нет



да



да



нет



Необходимость  наличия  браузера



желательно



нет



нет



нет



нет


 

Список  литературы

  1. Баричев  С.Г.,  Гончаров  В.В.,  Серов  Р.Е.  2.4.2.  Стандарт  AES.  Алгоритм  Rijdael.  Основы  современной  криптографии.  3-е  изд.  Учебное  издание  2011.  —  175  с.
  2. Брюс  Шнайер.  Прикладная  криптография.  Протоколы,  алгоритмы,  исходные  тексты  на  языке  Си.  Издательство  «Триумф»  2002.  —  816  с.
  3. Венбо  Мао.  Современная  криптография.  Теория  и  практика.  Издательство  «Вильямс»,  2005.  —  768  с.
  4. Кристиан  Нейгел  и  др.  C#  5.0  и  платформа  .NET  4.5  для  профессионалов.  Издательство  «Диалектика»,  2013.  —  1440  с.
  5. Рихтер  Д.  CLR  via  C#.  Программирование  на  платформе  Microsoft  .NET  Framework  4.5  на  языке  C#.  4-е  изд.  Издательство  «Питер»,  2015  —  896  с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий