UA   ENG
ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

Защита информации при передаче данных в компьютерных сетях одна из важнейших задач в современном мире. Внутри локальной сети данные могут быть надежно защищены, но при передаче данных за пределы локальной сети, при использовании сети Internet, вероятность утечек повышается. Очень часто использование недостаточно эффективных средств защиты становится причиной утраты персональных данных граждан, номеров их банковских карт, сведений, имеющих характер коммерческой тайны. [1]. Поэтому исследование существующих протоколов безопасной передачи данных, которые используют криптографические алгоритмы, весьма актуально. На сегодняшний день существуют протоколы защиты информации, работающие на различных уровнях по отношению к уровням стека протоколов TCP/IP и модели OSI. Чтобы говорить о проектировании собственного протокола безопасной передачи данных, рассмотрим сначала существующие протоколы, наиболее популярные протоколы для безопасной передачи данных с криптографической защитой. Проведем обзор и краткий анализ этих протоколов.

1. Анализ существующих протоколов передачи данных, использующих криптографическую защиту

1.1 Криптографические протоколы SSL, TLS

Протоколы SSL и TLS применяются в качестве протоколов защищенного канала, работающего на представительском и сеансовом уровнях модели OSI. Эти протоколы использует криптографические методы защиты информации для обеспечения безопасности передаваемых данных.

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

Конфиденциальность обеспечивается шифрованием передаваемых сообщений с использованием симметричных сессионных ключей, которыми стороны обмениваются при установлении соединения. Сессионные ключи шифруются с помощью открытых ключей, извлеченных из сертификатов абонентов. Использование для защиты сообщений симметричных ключей связано с тем, что скорость процессов шифрования и расшифрования на основе ключа симметричного алгоритма существенно выше. Подлинность и целостность циркулирующей информации обеспечивается за счет формирования и проверки электронной цифровой подписи [2].

В качестве алгоритмов асимметричного шифрования используются алгоритм RSA и Диффи-Хеллмана. Допустимыми алгоритмами симметричного шифрования являются RC2, RC4, DES, 3DES и AES. Для вычисления хэш-функций могут применяться стандарты MD5 и SHA-1. В протоколе SSL версии 3.0 набор криптографических алгоритмов является расширяемым.

Согласно протоколу SSL, криптозащищенные туннели создаются между конечными точками виртуальной сети. Инициаторами каждого защищенного туннеля являются клиент и сервер в конечных точках туннеля.

Рисунок 1 - Криптозащищенные туннели, сформированные на основе протокола SSL

Протоколы SSL и TLS предназначены для решения традиционных задач обеспечения защиты информационного взаимодействия, которые в среде клиент-сервер интерпретируются следующим образом:

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

Принцип работы протоколов SSL, TLS таков: поверх протокола TCP/IP устанавливается зашифрованный канал, внутри которого передаются данные по прикладному протоколу — HTTP, FTP, SMTP, POP3, IMAP и так далее.

Рисунок 2 – Графическое представление принципа работы

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

Целостность и аутентификация сообщения обеспечиваются использованием электронной цифровой подписи.

Протоколами SSL, TLS поддерживается ПО серверов и клиентов, выпускаемых ведущими западными компаниями. Существенным недостатком протоколов SSL, TLS является то, что практически все продукты, поддерживающие эти протоколы из-за экспортных ограничений доступны за пределами США лишь в усеченном варианте (с длиной сеансового ключа 40 бит для алгоритмов симметричного шифрования и 512 бит для алгоритма RSA, используемого на этапе установления SSL-сессии).

К недостаткам протоколов SSL и TLS можно отнести то, что для транспортировки своих сообщений они используют только один протокол сетевого уровня — IP, и, следовательно, могут работать только в IР-сетях.

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

1.2 Туннельный протокол PPTP

PPTP (point-to-point tunneling protocol) – протокол для VPN соединения формата точка-точка, с помощью которого создается защищенный туннель между сервером и определенным устройством поверх другой сети, например, Интернет.

Из всех VPN-протоколов PPTP является одним из наиболее распространенных, наиболее простых в настройке и наиболее быстро работающих протоколов. По этой причине PPTP особенно часто используется в приложениях, в которых скорость имеет первостепенное значение, например, для передачи потокового аудио или видео, а также на более старых и медленных устройствах с более ограниченными процессорами [3].

В то же время в протоколе PPTP обнаружены серьезные уязвимости. Его базовые протоколы аутентификации, обычно MS-CHAP-v1/v2, совершенно ненадежны и с момента его появления неоднократно взламывались при проведении анализа безопасности. Поэтому PPTP не рекомендуется, за исключением случаев, где безопасность абсолютно несущественна.

1.3 Туннельный протокол L2TP/IPsec

L2TP это протокол туннелирования, который является расширением протокола PPP и объединяет лучшие функции двух других протоколов туннелирования PPTP и L2F. Протокол L2TP, хоть и используется для VPN соединений, сам по себе не может обеспечить конфиденциальность или аутентификацию, поэтому он часто применяется вместе с протоколом IPSec, который обеспечивает защищенное соединения. Комбинация этих двух протоколов известна как L2TP/IPsec.

L2TP/IPsec дважды инкапсулирует данные, что может замедлить скорость соединения. Тем не менее, протокол L2TP/IPsec обеспечивает процесс шифрования и расшифровки внутри ядра и поддерживает многопоточность, в отличии от протокола OpenVPN. Учитывая этот факт, теоретически скорость L2TP/IPsec может быть быстрее, чем OpenVPN.

L2TP/IPsec так же легко и быстро настроить, как и PPTP, однако он более безопасен за счет чуть более низкой скорости соединения. Тем не менее, поскольку протокол L2TP использует UDP порт 500, есть вероятность, что VPN соединение может быть обнаружено и заблокировано некоторыми брандмауэрами.

Стек протоколов IPsec (Internet Protocol Security) применяется для аутентификации участников обмена, туннелирования трафика и шифрования IP-пакетов.

Главная задача протоколов IPsec – обеспечить безопасную передачу данных по сетям IP. Применение IPSec обеспечивает:

  1. аутентификацию - доказательство отправки пакетов вашим партнером по взаимодействию, то есть обладателем разделяемого секрета;
  2. целостность - невозможность изменения данных в пакете;
  3. конфиденциальность - невозможность раскрытия передаваемых данных;
  4. надежное управление ключами - протокол IKE вычисляет разделяемый секрет, известный только получателю и отправителю пакета;
  5. туннелирование - полную маскировку топологии локальной сети предприятия [4].

Рисунок 3 – Архитектура стека протоколов IPsec

Протокол AH является опциональным заголовком и расположен между основным заголовком пакета IP и полем данных. AH отвечает за обеспечение целостности и аутентификации данных.

Протокол ESP способен шифровать данные, а также способен выполнять функции протокола AH.

IKE — протокол обмена ключами.

1.4 Криптографический протокол MTProto

MTProto — криптографический протокол, используемый в системе обмена сообщениями Telegram для шифрования переписки пользователей. В основе протокола лежит оригинальная комбинация симметричного алгоритма шифрования AES (в режиме IGE), протокол Диффи-Хеллмана для обмена 2048-битными RSA-ключами между двумя устройствами и ряд хеш-функций. Протокол допускает использование шифрования end-to-end с опциональной сверкой ключей.

MTProto Proxy — протокол семейства MTProto, решает сразу несколько проблем:

  1. для подключения вместо пары логин+пароль, достаточно только пароля;
  2. трафик не отличается от обычного HTTPS/TLS;
  3. пароль не передается к серверу при подключении;
  4. трафик зашифрован;
  5. возможна работа через прокси только Telegram'a.

Однако исследования показывают, что у Telegram были серьезные и, в тоже время, простые проблемы в протоколе (например, модифицированный и уязвимый алгоритм обмена ключами по алгоритму Диффи-Хеллмана), которые может обнаружить любой знающий эксперт по безопасности.

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

1.5 Выводы по разделу

Были рассмотрены такие протоколы как: SSL, TLS, PPTP, IPsec, L2TP, MTProto. У каждого из протоколов есть свои плюсы и минусы. Ниже приведена таблица со сравнением протоколов по таким критериям: уровень модели OSI, криптографические алгоритмы, популярность.

Таблица 1. Сравнительный анализ протоколов с криптографической защитой

Уровень OSI

Криптографические алгоритмы

Популярность

SSL/TLS

Представления, сеансовый

AES, Diffie-Hellma, RSA, DSA, MD5, SHA, RC4, IDEA, Triple DES.

Самый популярный протокол для веб-ресурсов.

PPTP

Сеансовый

DES, MD4, RC4.

Не популярен, так как не является безопасным.

IPsec

Сетевой

AES, Triple DES, MD5, SHA.

Самый популярный протокол для VPN туннелирования.

L2TP

Сеансовый

Криптографической защитой занимается IPsec.

Используется в связке с IPsec зачастую для VPN туннелирования.

MTProto

Прикладной

AES, Diffie-Hellma, RSA.

Используется только в Telegram.

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

  1. будут использоваться только определённые методы шифрования, как симметричные, так и ассиметричные;
  2. хеш сообщения будет получен через SHA384;
  3. смена ключей во время сессии;
  4. более частое обновление сертификатов;
  5. использование для прикладных протоколов обмена информацией, в том числе, разработанных для новых клиент-серверных приложений.

2. Повышение эффективности протоколов передачи данных, использующих криптографическую защиту

2.1 Анализ современных тенденций в области протоколов передачи данных с криптографической защитой

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

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

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

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

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

Использование социальных сетей в публичных зонах Wi-fi без сервиса VPN может привести не только к перехвату конфиденциальной информации, но и в дальнейшем есть угроза использования данных аккаунтов в своих целях, пройдя процедуру аутентификации от имени пользователя. Утеря информации для доступа к почтовым сервисам, при незащищенной аутентификации на почтовых серверах, приведет к еще более серьёзным последствиям, так как к почтовым аккаунтам могут быть привязаны другие аккаунты web-приложений, в том числе и сервисов, используемых на предприятиях, в учреждениях, на фирмах, а также профили социальных сетей и другие почтовые аккаунты. Тогда все приложения, связанные с этим почтовым ящиком, могут быть атакованы. Но самым неприятным может быть утечка данных банковских карт, если пользователь решил оформить перевод денег кому-нибудь, подключившись к общедоступному Wi-Fi.

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

Рассмотрим принцип работы VPN.

VPN–соединение - это можно сказать «туннель» между пользователем и сервером. Каждый узел кодирует данные перед тем, как они попадут в «туннель».

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

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

Рисунок 4 – Как работает VPN

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

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

Рассмотрим популярные протоколы VPN.

PPTP – Point-to-Point Tunneling Protocol [2], использует два соединения – одно для управления, другое – для инкапсуляции данных, поддерживается всеми операционными системами, не требует много вычислительных мощностей, но обладает плохой защищенностью. Используемые методы шифрования этого протокола устарели, есть ошибки в реализации протокола от Microsoft. Нет шифрования по умолчанию, на взлом требуется менее суток. Протокол считается менее защищенным, чем IPSec. Используется, когда защита данных не очень важна или когда нет других вариантов.

PPTP анализировали с точки зрения безопасности. В протоколе были обнаружены уязвимости, связанные с используемым протоколом аутентификации PPP, протоколом MPPE и интеграции между аутентификациями MPPE и PPP для установки сессионного ключа. Уязвимости PPTP:

  1. MSCHAP-v1 ненадёжен;
  2. MSCHAP-v2 уязвим для словарной атаки;
  3. при использовании MSCHAP-v1, MPPE использует одинаковый RC4 сессионный ключ для шифрования информационного потока в обоих направлениях;
  4. MPPE использует RC4 поток для шифрования. Отсутствует метод для аутентификации цифрового потока и поэтому этот поток уязвим для атаки, делающей фальсификацию битов. [3]

L2TP – Layer 2 Tunneling Protocol - Протокол L2TP расширяет модель PPP, позволяя размещение терминальных точек L2 и PPP в различных физических устройствах, подключенных к сети с коммутацией пакетов [3]. Рассматриваемый протокол более эффективен для построения виртуальных сетей, но более требователен к вычислительным ресурсам, стандартно не включает шифрование. Он работает вместе с другими протоколами, чаще всего с IPSec. Используется интернет-провайдерами и пользователями в корпоративных целях.

IPSec – Internet Protocol Security [5] - ряд протоколов и стандартов для безопасных подключений. Достоинствами IPSec являются хорошая архитектура и надежность алгоритмов. Недостатками IPSec являются сложность в настройке, из чего следует понижение защищённости при неверной настройке; для этого требуется большое количество вычислительных возможностей, но данный недостаток компенсируется аппаратным ускорением алгоритма шифрования AES. Он часто используется в совмещении с другими методами.

SSL – Secure Sockets Layer & TLS – Безопасность транспортного уровня - это группа методов, которая включает протоколы TLS, SSL и другие средства защиты. Преимущество протокола заключается в том, что он свободно передается большинством общедоступных сетей. Недостатком протокола является довольно низкая производительность, сложность в настройке и необходимость установки дополнительного программного обеспечения. Протокол SSL используется на веб-сайтах, URL-адреса которых начинаются с https.

Некоторые реализации VPN: OpenVPN [6], Microsoft SSTP [7]. OpenVPN имеет открытый исходный код, реализован практически для каждой платформы и является достаточно безопасным. Он выполняет функцию безопасного туннеля для трансляции информации через один TCP/UDP порт. Главное преимущество OpenVPN состоит в легкости инсталляции и настройки, что является редким случаем для таких инструментов. OpenVPN соединяет клиент/серверную архитектуру. Он должен быть поставлен на все узлы VPN сети, там, где один узел должен быть сервером, а другие - клиентами. VPN шлюзы объединяют один и тот же ключ для дешифрования и шифрования информации при размещении статических ключей. В этом случае изменение настройки будет простым, но при этом появится затруднённость передачи и безопасности ключа. Если кто-то завладеет этим ключом - он сможет декодировать данные.

Для того чтобы это избежать, следует применить инфраструктуру открытых ключей (PKI). При этом каждый узел управляет двумя ключами: закрытый ключ доступный только его хозяину и открытый ключ, известный всем. Данную подсистему использует OpenSSL, соединённый в OpenVPN, для аутентификации VPN узлов до того, как начать передачу закодированных данных.

Microsoft SSTP – протокол туннелирования защищенных сокетов SCTP по определению является протоколом прикладного уровня. Он предназначен для синхронного обмена данными между двумя программами и позволяет использовать несколько конечных точек приложения через одно сетевое соединение между одноранговыми узлами. Это позволяет эффективно использовать коммуникационные ресурсы, доступные в сети.

Протокол SSTP основан на SSL вместо PPTP или IPSec и использует TCP-порт 443 (или другие, как реализовано в Ideco UTM) для ретрансляции трафика SSTP. Хотя он тесно связан с SSL, прямое сравнение между SSL и SMTP невозможно, поскольку, в отличие от SSL, SSTP - это просто протокол туннелирования. Есть много причин выбрать SSL, а не IPSec в качестве основы для SSTP. IPSec нацелен на поддержку VPN-соединения, поэтому SSL стал лучшей основой для разработки STP, поскольку он поддерживает роуминг.

2.2 Выявление недостатков и уязвимостей существующих алгоритмов защиты в сетях передачи данных

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

Атака на защищенный протокол - это попытка проанализировать протокольные сообщения и/или выполнить действия, не предусмотренные протоколом, с целью разрушения предъявленных или обусловливаемых свойств протокола.

Атака считается удачной, если нарушено хотя бы одно из предъявленных или подразумеваемых свойств протокола.

В случае удачной атаки на обуславливаемые свойства мы уточним, что это успешная атака на применение протокола в какой-либо подсистеме. Это будет объяснять, конечно, не о недостатках самого протокола, а о неправильном выборе протокола (настроек) составителями системы.

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

MitM «Атака посередине» [9] (man-in-the-middle attack). Класс атак, при которых преступник повторяет и подменяет текст сообщений, проходящих между двумя или более пользователями протокола, а пользователи не догадываются о том, что переписка «прослушивается» считая, что они общаются лично друг с другом без участия третьего лица. Протоколы, которые не осуществляют обоюдную аутентификацию сторон, беззащитны для этой атаки (цель G1). Традиционный пример атаки такого класса – атака на протокол Диффи—Хеллмана.

Повторная атака с повторной передачей [9]. Класс атак, при которых преступник фиксирует все письма, проходящие в одном сеансе протокола, а затем дублирует их в новом, под видом одного из участников первого сеанса. Наглядными примерами протоколов, к которым применима эта атака, являются протоколы Wu-Lan и протокол Shamir keyless protocol.

Атака подмены типа TF [9]. Класс атак, при которых злоумышленник, используя сообщение, переданное в сеансе локального протокола, создает уникальное, передавая его на другом раунде протокола под образом сообщения другого типа (с другой целью). Например, протоколы Wide-Mouth Frog, Denning—Sako, Yahalom и Otway—Riis уязвимы для таких атак.

PS Атака параллельного сеанса [10] - это атака, при которой преступник инициирует некоторое количество параллельных сеансов протокола, чтобы использовать сообщения из одного сеанса в другом. Наглядным примером протокола, восприимчивого для этого класса атак, считается симметричный вариант Нидхэма—Шредера.

Атака STS с известным одноразовым ключом [10] – это атака на протокол повторной передачи, организованная на знании одноразового секретного ключа.

Атака KN с использованием известного сеансового ключа. [10]

Классы атак, при которых злоумышленник получает доступ к временным секретным ключам, используемым в протоколах (например, к актуальным сеансовым ключам), после чего он может гарантировать, например, аутентификацию или, по крайней мере, установление сеанса от имени одной из сторон протокола.

Атака UKS с неизвестным сеансовым ключом [10] – это атака, состоящая в попытке получить информацию о долгосрочном ключе или любую другую ключевую информацию, которая позволяет создавать вновь сеансовые ключи для других сеансов протокола.

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

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

С другой стороны, следует предположить, что сеансовые ключи, полученные в рамках сеансов протокола, будут получены преступником через некоторое время (однако, намного дольше, чем время самого сеанса связи) (классы атак STS и KN). И по прошествии гораздо более длительного времени преступник сможет получить доступ к «мастер-ключам» — ключам долгосрочного использования, так что следует разработать протоколы с генерацией сеансовых ключей, в том числе со свойством G9/PFS.

2.3 Поиск возможных способов устранения найденных недостатков в алгоритмах протоколов передачи данных (прикладной уровень)

Одним из первых алгоритмом назначения открытого ключа был предложен Хеллманом М. Э. и Диффи У. в 1976 году. [11] Для его реализации участники должны договориться о большом значении простого числа p и обуславливаемого компонента α мультипликативной группы Z ∗ p = = {1, 2, . . . , p − 1}. Чтобы сгенерировать общий ключ k, они должны сформировать некоторые числа x, 1 ≤ x ≤ p − 2 и y, 1 ≤ y 6 ≤ − 2 соответственно. После этого они могут начать общение посредством сообщении. Протокол DH:

Рисунок 5 – Пример обмена сообщениями

Искомый общий ключ теперь вычисляется по формуле

Рисунок 6 – Искомого общего ключа

Слабость: отсутствие аутентификации сторон. Протокол MTI. Интересный подход к защите протокола DH от атаки «противник в середине» был предложен Т. Мацумото, И. Такашима и Х. Имаи (Matsumoto T., Takashima Y., Imai H.) в 1986 г. Они предложили серию протоколов, предполагающих наличие у абонентов открытых ключей и использующих различные модификации процедуры выработки общего ключа.

Рассмотрим протокол MTI/A0. Предположим, что участники A и B имеют секретные ключи a, 1 ≤ a ≤ p − 2, и b, 1 ≤ b ≤ p − 2, соответственно и публикуют свои открытые ключи βA = α a mod p и βB = α b mod p. Для выработки общего секретного ключа k они должны сгенерировать случайные числа x, 1 ≤ x ≤ p−2, и y, 1 ≤ y ≤ p−2, соответственно, а затем обменяться следующими сообщениями:

Рисунок 7 – Пример обмена сообщениями

Теперь участники A и B вычисляют общий ключ k = α^(xb+ya) mod p по формулам.

Рисунок 8 – Вычисление общего ключа

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

Протокол STS. Попытка построения аутентифцированного протокола на базе DH была предпринята в протоколе STS (station-to-station), созданном У. Диффи (W. Diffie), П. Ван Ооршотом (P. Van Oorschot) и M. Вейнером (M. Wiener) в 1992 г.

Рисунок 9 – Пример обмена сообщениями

Здесь SigA и SigB — цифровые подписи пользователей A и B соответственно, k = α xy mod p — искомый общий ключ.

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

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

Модифицированный протокол STS. В 2004 г. K. Бойд и А. Матура предложили следующую модификацию протокола STS:

Рисунок 10 – Пример обмена сообщениями по протоколу STS

где k0 = f(k) — ключевой параметр хеш-функции, вычисляемый как значение некоторой функции от результирующего сеансового ключа k = α xy mod p.

Атака: для данной версии протокола можно применить двустороннюю атаку с неизвестным общим ключом (bilateral unknown key-share attack, BUKS attack):

Рисунок 11 – Алгоритм атаки

Нарушитель C, используя свой законный обмен с участником B, может применить против участника A атаку, в результате которой он может убедить A в том, что он выступает от имени B. Нарушитель C использует свой законный обмен с участником B и убеждает A в том, что он выступает от имени B. Сеанс с участником B остается незавершенным, так как C, не зная секретного ключа участника A, не сможет подобрать правильный ответ для B. Поэтому любое его сообщение на третьем шаге будет участником B отвергнуто.

Данная атака не представляет реальной опасности, так как при этом нарушитель не будет знать секретного ключа k = α xy mod p и поэтому не сможет читать передаваемые сообщения, передаваемые от A к B. Однако в результате участник A не будет ничего подозревать и примет участника C за B.

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

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

2.4 Формирование требований к протоколу передачи данных с криптографической защитой

Существует достаточно большое количество различных типов атак, которые зависят от конкретной реализации протокола.

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

Для защиты от таких атак необходимо проанализировать архитектуру протокола и структуру передаваемых сообщений для выявления возможных уязвимостей, которые позволяют навязывать сообщения с известными или идентичными значениями определенных полей, или путем подмены типа различных полей. Для криптографических протоколов, организованных на основании систем асимметричного шифрования, недостатком является замена открытого ключа одного из партнёров другим открытым ключом, при этом секретная половина этого ключа известна противнику. В частности, это позволяет противнику узнать содержание зашифрованных сообщений, отправленных этому участнику. В этом случае свойство связности открытого ключа и идентификатора участника нарушается. Поэтому атака такого типа называется атакой привязки. Для защиты от таких атак их сертификаты используются вместо открытых ключей, совершая индивидуальный механизм (PKI) для выдачи, отзыва и проверки их корректности.

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

  1. использование безопасной аутентификации пользователей на основе двухфакторной аутентификации с использованием криптографических алгоритмов;
  2. использование симметричных криптографических алгоритмов с большим размером ключа для каждой сессии взаимодействия клиента и сервера, клиента и клиента (при непосредственном взаимодействии двух клиентов без участия сервера, если протокол предусматривает такое взаимодействие);
  3. использование разовых ключей симметричного алгоритма для шифрования сессий между участниками обмена;
  4. использование алгоритмов с открытым ключом для защиты ключа симметричного алгоритма шифрования;
  5. генерация разных пар ключей ассиметричного алгоритма шифрования для участников взаимодействия, при этом ключи должны быть не минимального размера;
  6. обеспечение контроля целостности передаваемых данных с помощью электронно-цифровой подписи;
  7. использование дополнительных средств защиты, обеспечивающих более надежный обмен ключами (токены, QR-коды);
  8. возможность использования «арбитра» при генерации ключей для проверки целостности данных;
  9. возможность использования разрабатываемого протокола с криптографической защитой поверх работы стандартных протоколов обмена информацией и использование такого протокола в клиент-серверных приложениях.

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

2.5 Выводы по разделу

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

Также был проведен анализ протоколов с точки зрения их уязвимости к атакам определённого типа.

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

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

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

3. Теоретическое описание используемых криптографических алгоритмов в протоколе»

3.1 Симметричный алгоритм шифрования AES

Advanced Encryption Standard (AES) — симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), принятый в качестве стандарта шифрования правительством США по результатам конкурса AES. AES является стандартом, основанным на алгоритме Rijndael. Для AES длина input (блока входных данных) и State (состояния) постоянна и равна 128 бит, а длина шифроключа K составляет 128, 192, или 256 бит. При этом, исходный алгоритм Rijndael допускает длину ключа и размер блока от 128 до 256 бит с шагом в 32 бита. Для обозначения выбранных длин input, State и Cipher Key в 32-битных словах используется нотация Nb = 4 для input и State, Nk = 4, 6, 8 для Cipher Key соответственно для разных длин ключей.

Режим шифрования — метод применения блочного шифра (алгоритма), позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных. При этом для шифрования одного блока могут использоваться данные другого блока. Используемый режим шифрования - Cipher block chaining (CBC):

Рисунок 12 – Схема шифрования алгоритма AES

3.2 Ассиметричный алгоритм шифрования RSA

RSA — криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел. Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений, включая PGP, S/MIME, TLS/SSL, IPSEC/IKE и других.

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

В криптографической системе с открытым ключом каждый участник располагает как открытым ключом, так и закрытым ключом. В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создаёт свой открытый и закрытый ключ самостоятельно. Закрытый ключ каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или даже публиковать их. Открытый и закрытый ключи каждого участника обмена сообщениями в криптосистеме RSA образуют «согласованную пару» в том смысле, что они являются взаимно обратными.

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

Рисунок 13 – Схема алгоритма шифрования RSA

Нахождение ключа в RSA; Количество кадров: 144; Количество повторений: неограниченно; Задержка: 0.1 сек; Длительность: 5 сек; Размер анимации: 145 kB

3.3 Функция хеширования MD5

MD5 — 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского технологического института в 1991 году. Предназначен для создания «отпечатков» или дайджестов сообщения произвольной длины и последующей проверки их подлинности. Широко применялся для проверки целостности информации и хранения паролей в закрытом виде.

Алгоритм MD5 состоит из пяти шагов:

  1. выравнивание потока - дописывается единичный бит в конец потока, затем необходимое число нулевых бит. Входные данные выравниваются так, чтобы их новый размер был сравним с 448 по модулю 512. Выравнивание происходит, даже если длина уже сравнима с 448.
  2. добавление длины сообщения - в конец сообщения дописывается 64-битное представление длины данных (количество бит в сообщении) до выравнивания. Сначала записывают младшие 4 байта, затем старшие. Если длина превосходит 2^64-1, то дописывают только младшие биты. После этого длина потока станет кратной 512. Вычисления будут основываться на представлении этого потока данных в виде массива слов по 512 бит.
  3. инициализация буфера – для вычислений инициализируются 4 переменных размером по 32 бита и задаются начальные значения шестнадцатеричными числами. В этих переменных будут храниться результаты промежуточных вычислений, их начальное состояние называется инициализирующим вектором. Так же определяются функции для четырех раундов.
  4. вычисление в цикле – в блок данных заносится элемент из массива 512-битных блоков. Сохраняются значения переменных, оставшиеся после операций над предыдущими блоками. После окончания цикла необходимо проверить, есть ли ещё блоки для вычислений. Если да, то происходи переход к следующему элементу массива.
  5. результат вычислений – находится в буфере переменных, это и есть хеш. Если выводить побайтово, начиная с младшего байта первой переменной и закончив старшим байтом последней, то мы получим MD5-хеш.

Схема хеширования алгоритмом MD5 представлена на рисунке 14

Рисунок 14 – Схема алгоритма хеширования MD5

3.4 Ассиметричный алгоритм шифрования для ЭЦП RSA

Система RSA, описанная в пункте 3.2, может использоваться не только для шифрования, но и для цифровой подписи.

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

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

Схема цифровой подписи и верификации подписанного документа показана на рисунке 15

Рисунок 15 – Схема цифровой подписи и верификации

Выводы

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

Список источников

  1. Springer-Verlag New York. Encyclopedia of Cryptography and Security, 2005. – 684 с.
  2. Саймон Сингх. Книга шифров. Тайная история шифров и их расшифровки, 2000. – 416 с.
  3. Защита информации при передаче данных https://searchinform.ru/services/outsource-ib/zaschita-informatsii/pri-peredache-dannykh/ Сайт: Элект. информ. – Режим доступа: https://searchinform.ru/. – Заглавие с экрана
  4. Сетевой протокол безопасности https://mega-obzor.ru/setevoy-protokol-bezopasnosti.html Сайт: Элект. информ. – Режим доступа: https://mega-obzor.ru/. – Заглавие с экрана
  5. DLP-ноухау: почему мы реализовали контроль утечек через Cisco Webex Teams не на endpoint-агенте https://www.securitylab.ru/analytics/526171.php Сайт: Элект. информ. – Режим доступа: https://www.securitylab.ru. – Заглавие с экрана
  6. Дошина, А. Д. Криптография. Основные методы и проблемы. Современные тенденции криптографии / А. Д. Дошина, А. Е. Михайлова, В. В. Карлова. — Текст : непосредственный // Современные тенденции технических наук : материалы IV Междунар. науч. конф. (г. Казань, октябрь 2015 г.). — Казань : Бук, 2015. — С. 10-13. — URL: https://moluch.ru/conf/tech/archive/163/8782/ (дата обращения: 23.10.2022).
  7. 2637 Point-to-Point Tunneling Protocol (PPTP)| Энциклопедия сетевых протоколов [Электронный ресурс] — Режим доступа:https://www.protokols.ru/WP/rfc2637/ - Загл. с экрана.
  8. Bruce Schneier. Cryptanalysis of Microsoft’s Point-to-Point Tunneling Protocol (PPTP) [Электронный ресурс] — Режим доступа:https://docs.yandex.ru/docs/view?tm=1666977162&tld=ru&lang=en&name=paper-pptp.pdf - Загл. с экрана.
  9. Семёнов Ю.А. Протокол туннелей на сетевом уровне L2 (L2TP) [Электронный ресурс] — Режим доступа: //book.itep.ru/4/44/l2pr.htm - Загл. с экрана.
  10. Internet Protocol Security [Электронный ресурс] — Режим доступа: //ru.on1.click/tiki-index.php?page=info_Internet_Protocol_Security - Загл. с экрана.
  11. OpenVPN. Что такое OpenVPN [Электронный ресурс] — Режим доступа: //openmaniak.com/ru/openvpn.php - Загл. с экрана.
  12. Обзор Secure Socket Tunneling Protocol [Электронный ресурс] — Режим доступа: //vc.ru/dev/119780-obzor-secure-socket-tunneling-protocol - Загл. с экрана.
  13. Clark J., Jacob J. A Survey of Authentication Protocol Literature: Version 1.0. 17 Nov. 1997 [Электронный ресурс] — Режим доступа: //www.cs.york.ac.uk/ jac/papers/drareview.ps.gz - Загл. с экрана.
  14. Криптографические протоколы – Основные определения [Электронный ресурс] — Режим доступа: //cryptoprotocols.ucoz.com/index/main_definitions/0-2#- Загл. с экрана.
  15. Черёмушкин А. В. Криптографические протоколы: основные свойства и уязвимости // Прикладная дискретная математика. — 2009. — нояб. — вып. 2. — с. 115—150. — URL: cyberleninka.ru/article/n/kriptograficheskie-protokoly-osnovnye-svoystva-i-uyazvimosti.pdf.
  16. Грищенко, О. С. Анализ алгоритмов аутентификации в распределенных программных системах / О. С. Грищенко, А. В. Чернышова // Программная инженерия: методы и технологии разработки информационно-вычислительных систем (ПИИВС-2018) : Сборник научных трудов II Международной научно-практической конференции, Донецк, 14–15 ноября 2018 года. Том 1. – Донецк: Донецкий национальный технический университет, 2018. – С. 102-108. – EDN XBCKSN.
  17. Грищенко, О. С. Защита информации в приложениях для мгновенной передачи сообщений / О. С. Грищенко, А. В. Чернышова // Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ-2017) : Сборник материалов VIII Международной научно-технической конференции в рамках III Международного Научного форума Донецкой Народной Республики, Донецк, 25 мая 2017 года / Редколлегия: Ю.К. Орлов [и др.]. – Донецк: Донецкий национальный технический университет, 2017. – С. 115-119. – EDN KKRGJS.