Реферат по темі випускної роботи
Зміст
- Вступ
- 1. Аналіз існуючих протоколів передачі даних, що використовують криптографічний захист
- 1.1 Криптографічні протоколи SSL, TLS
- 1.2 Тунельний протокол PPTP
- 1.3 Тунельний протокол L2TP/IPsec
- 1.4 Криптографічний протокол MTProto
- 1.5 Висновки по розділу
- 2. Підвищення ефективності протоколів передачі даних, що використовують криптографічний захист
- 2.1 Аналіз сучасних тенденцій в області протоколів передачі даних з криптографічним захистом
- 2.2 Виявлення недоліків і вразливостей існуючих алгоритмів захисту в мережах передачі даних
- 2.3 Пошук можливих способів усунення знайдених недоліків в алгоритмах протоколів передачі даних (прикладний рівень)
- 2.4 Формування вимог до протоколу передачі даних з криптографічним захистом
- 2.5 Висновки по розділу
- 3. Теоретичний опис використовуваних криптографічних алгоритмів у протоколі
- 3.1 Симетричний алгоритм шифрування AES
- 3.2 Асиметричний алгоритм шифрування RSA
- 3.3 Функція хешування MD5
- 3.4 Асиметричний алгоритм шифрування для ЕЦП RSA.
- Висновки
- Список джерел
Вступ
Захист інформації при передачі даних в комп'ютерних мережах одна з найважливіших завдань в сучасному світі. Усередині локальної мережі дані можуть бути надійно захищені, але при передачі даних за межі локальної мережі, при використанні мережі 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 призначені для вирішення традиційних завдань забезпечення захисту інформаційної взаємодії, які в середовищі клієнт-сервер інтерпретуються наступним чином:
- Користувач і сервер повинні бути взаємно впевнені, що вони обмінюються інформацією не з підставними абонентами, а саме з тими абонентами, які потрібні, не обмежуючись захистом за допомогою паролів;
- Після встановлення з'єднання між сервером і клієнтом весь інформаційний потік між ними повинен бути захищений від несанкціонованого доступу;
- При обміні інформацією сторони повинні бути впевнені у відсутності випадкових або навмисних спотворень при її передачі.
Принцип роботи протоколів SSL, TLS такий: поверх протоколу TCP / IP встановлюється зашифрований канал, всередині якого передаються дані по прикладному протоколу — HTTP, FTP, SMTP, POP3, IMAP і так далі.

Малюнок 2 – Графічне представлення принципу роботи
Протоколи SSL, TLS дозволяють серверу і клієнту перед початком інформаційної взаємодії аутентифікувати один одного, узгодити алгоритм шифрування і сформувати загальні криптографічні ключі.
Цілісність і аутентифікація повідомлення забезпечуються використанням електронного цифрового підпису.
Протоколами SSL, TLS підтримується по серверів і клієнтів, що випускаються провідними західними компаніями. Істотним недоліком протоколів SSL, TLS є те, що практично всі продукти, що підтримують ці протоколи через експортні обмеження доступні за межами США лише в усіченому варіанті (з довжиною сеансового ключа 40 біт для алгоритмів симетричного шифрування і 512 біт для алгоритму RSA, використовуваного на етапі встановлення SSL-сесії).
До недоліків протоколів SSL і TLS можна віднести те, що для транспортування своїх повідомлень вони використовують тільки один протокол мережевого рівня — IP, і, отже, можуть працювати тільки в ІР-мережах.
Крім того, в протоколах 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 забезпечує:
- Аутентифікацію-доказ відправки пакетів вашим партнером по взаємодії, тобто володарем розділяється секрету;
- Цілісність-неможливість зміни Даних у пакеті;
- Конфіденційність-неможливість розкриття переданих даних;
- Надійне управління ключами-протокол IKE обчислює розділяється секрет, відомий тільки одержувачу і відправнику пакета;
- Тунелювання - повне маскування топології локальної мережі підприємства [4 ].

Малюнок 3 – Архітектура стека протоколів IPsec
Протокол AH є опціональним заголовком і розташований між основним заголовком пакета IP і полем даних. AH відповідає за забезпечення цілісності та автентифікації даних.
протокол ESP здатний шифрувати дані, а також здатний виконувати функції протоколу AH.
Ike-протокол обміну ключами.
1.4 Криптографічний протокол MTProto
MTProto — криптографічний протокол, який використовується в системі обміну повідомленнями Telegram для шифрування листування користувачів. В основі протоколу лежить оригінальна комбінація симетричного алгоритму шифрування AES (в режимі IGE), протокол Діффі-Хеллмана для обміну 2048-бітними RSA-ключами між двома пристроями і ряд хеш-функцій. Протокол допускає використання шифрування end-to-end з опціональною звіркою ключів.
MTProto Proxy-протокол сімейства MTProto, вирішує відразу кілька проблем:
- Для підключення замість пари логін + пароль, досить тільки пароля;
- Трафік не відрізняється від звичайного HTTPS / TLS;
- Пароль не передається до сервера при підключенні;
- Трафік зашифрований;
- Можлива робота через проксі тільки 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. |
В процесі вивчення протоколів з криптографічним захистом було прийнято рішення спроектувати і реалізувати свій протокол, що використовує криптографічний захист, в якому не буде явних недоліків, які були описані вище. У протоколі передбачається реалізувати наступні можливості:
- Будуть використовуватися тільки певні методи шифрування, як симетричні, так і асиметричні;
- Хеш повідомлення буде отримано через SHA384;
- Зміна ключів під час сесії;
- Частіше оновлення сертифікатів;
- Використання для прикладних протоколів обміну інформацією, в тому числі, розроблених для нових клієнт-серверних додатків.
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:
- MSCHAP-v1 ненадійний;
- MSCHAP-v2 вразливий до атаки словника;
- При використанні MSCHAP-v1, MPPE використовує однаковий RC4 сесійний ключ для шифрування інформаційного потоку в обох напрямках;
- 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. Спроба побудови аутентифцированного протоколу на базі ЦТ була зроблена в протоколі СТС (станції до станції), створеному у. Діффі (у. Діффі), П. Ооршотом Ван (в P. Van Oorschot) і м. Вейнером (Н. Вінер) в 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) для видачі, відкликання та перевірки їх коректності.
Виконавши аналіз засобів захисту в існуючих протоколах з криптографічним захистом, виявивши переваги і недоліки розглянутих протоколів і їх уразливість до атак певного типу, можна сформувати деякі загальні вимоги до протоколів передачі даних з криптографічним захистом, що працюють на прикладному рівні:
- Використання безпечної автентифікації користувачів на основі двофакторної автентифікації за допомогою криптографічних алгоритмів;
- Використання симетричних криптографічних алгоритмів з великим розміром ключа для кожної сесії взаємодії клієнта і сервера, клієнта і клієнта (при безпосередній взаємодії двох клієнтів без участі сервера, якщо протокол передбачає таку взаємодію);
- Використання разових ключів симетричного алгоритму для шифрування сесій між учасниками обміну;
- використання алгоритмів з відкритим ключем для захисту ключа симетричного алгоритму шифрування;
- генерація різних пар ключів асиметричного алгоритму шифрування для учасників взаємодії, при цьому ключі повинні бути не мінімального розміру;
- забезпечення контролю цілісності переданих даних за допомогою електронно-цифрового підпису;
- Використання додаткових засобів захисту, що забезпечують більш надійний обмін ключами (токени, QR-коди);
- Можливість використання " арбітра» при генерації ключів для перевірки цілісності даних;
- Можливість використання розроблюваного протоколу з криптографічним захистом поверх роботи стандартних протоколів обміну інформацією та використання такого протоколу в клієнт-серверних додатках.
Описавши загальні вимоги до протоколу, в подальшому можна переходити до розробки архітектури протоколу прикладного рівня з криптографічним захистом. При цьому при проектуванні архітектури протоколу слід передбачити можливість підвищення ефективності захисту переданої інформації, як на етапі аутентифікації, так і на етапі передачі даних, а також передбачити контроль цілісності переданих захищених даних.
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 складається з п'яти кроків:
- вирівнювання потоку - дописується одиничний біт в кінець потоку, потім необхідне число нульових біт. Вхідні дані вирівнюються так, щоб їх новий розмір був порівнянний з 448 по модулю 512. Вирівнювання відбувається, навіть якщо довжина вже порівнянна з 448.
- додавання довжини повідомлення - в кінець повідомлення дописується 64-бітове представлення довжини даних (кількість біт в повідомленні) до вирівнювання. Спочатку записують молодші 4 байта, потім старші. Якщо довжина перевищує 2^64-1, то дописують тільки молодші біти. Після цього Довжина потоку стане кратною 512. Обчислення базуватимуться на поданні цього потоку даних у вигляді масиву слів 512 біт.
- ініціалізація буфера – для обчислень ініціалізуються 4 змінних розміром по 32 біта і задаються початкові значення шістнадцятковими числами. У цих змінних будуть зберігатися результати проміжних обчислень, їх початковий стан називається инициализирующим вектором. Так само визначаються функції для чотирьох раундів.
- обчислення в циклі – в блок даних заноситься елемент з масиву 512-бітних блоків. Зберігаються значення змінних, що залишилися після операцій над попередніми блоками. Після закінчення циклу необхідно перевірити, чи є ще блоки для обчислень. Якщо так, то станься перехід до наступного елементу масиву.
- результат обчислень-знаходиться в буфері змінних, це і є хеш. Якщо виводити побайтово, починаючи з молодшого байта першої змінної і закінчивши старшим байтом останньої, то ми отримаємо MD5-хеш.
Схема хешування алгоритмом MD5 представлена на рисунку 14

Малюнок 14 – Схема алгоритму хешування MD5
3.4 Асиметричний алгоритм шифрування для ЕЦП RSA
Система RSA, описана в пункті 3.2, може використовуватися не тільки для шифрування, але і для цифрового підпису.
Оскільки цифровий підпис забезпечує як аутентифікацію автора повідомлення, так і підтвердження цілісності вмісту підписаного повідомлення, він служить аналогом підпису, зробленого від руки в кінці рукописного документа.
Важлива властивість цифрового підпису полягає в тому, що його може перевірити кожен, хто має доступ до відкритого ключа його автора. Один з учасників обміну повідомленнями після перевірки автентичності цифрового підпису може передати підписане повідомлення ще комусь, хто теж в змозі перевірити цей підпис.
Схема цифрового підпису та верифікації підписаного документа показана на рисунку 15

Малюнок 15 – Схема цифрового підпису та верифікації
Висновок
Надалі при проектуванні архітектури протоколу з криптографічним захистом будуть опрацьовані можливі варіанти підвищення ефективності протоколу передачі даних з криптографічним захистом для додатків певного класу таким чином, щоб виключити можливість проведення атак деяких типів. Основною вимогою для такого протоколу буде надійність.
Список джерел
- Springer-Verlag New York. Encyclopedia of Cryptography and Security, 2005. – 684 с.
- Саймон Сингх. Книга шифров. Тайная история шифров и их расшифровки, 2000. – 416 с.
- Защита информации при передаче данных https://searchinform.ru/services/outsource-ib/zaschita-informatsii/pri-peredache-dannykh/ Сайт: Элект. информ. – Режим доступа: https://searchinform.ru/. – Заглавие с экрана
- Сетевой протокол безопасности https://mega-obzor.ru/setevoy-protokol-bezopasnosti.html Сайт: Элект. информ. – Режим доступа: https://mega-obzor.ru/. – Заглавие с экрана
- DLP-ноухау: почему мы реализовали контроль утечек через Cisco Webex Teams не на endpoint-агенте https://www.securitylab.ru/analytics/526171.php Сайт: Элект. информ. – Режим доступа: https://www.securitylab.ru. – Заглавие с экрана
- Дошина, А. Д. Криптография. Основные методы и проблемы. Современные тенденции криптографии / А. Д. Дошина, А. Е. Михайлова, В. В. Карлова. — Текст : непосредственный // Современные тенденции технических наук : материалы IV Междунар. науч. конф. (г. Казань, октябрь 2015 г.). — Казань : Бук, 2015. — С. 10-13. — URL: https://moluch.ru/conf/tech/archive/163/8782/ (дата обращения: 23.10.2022).
- 2637 Point-to-Point Tunneling Protocol (PPTP)| Энциклопедия сетевых протоколов [Электронный ресурс] — Режим доступа:https://www.protokols.ru/WP/rfc2637/ - Загл. с экрана.
- 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 - Загл. с экрана.
- Семёнов Ю.А. Протокол туннелей на сетевом уровне L2 (L2TP) [Электронный ресурс] — Режим доступа: //book.itep.ru/4/44/l2pr.htm - Загл. с экрана.
- Internet Protocol Security [Электронный ресурс] — Режим доступа: //ru.on1.click/tiki-index.php?page=info_Internet_Protocol_Security - Загл. с экрана.
- OpenVPN. Что такое OpenVPN [Электронный ресурс] — Режим доступа: //openmaniak.com/ru/openvpn.php - Загл. с экрана.
- Обзор Secure Socket Tunneling Protocol [Электронный ресурс] — Режим доступа: //vc.ru/dev/119780-obzor-secure-socket-tunneling-protocol - Загл. с экрана.
- 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 - Загл. с экрана.
- Криптографические протоколы – Основные определения [Электронный ресурс] — Режим доступа: //cryptoprotocols.ucoz.com/index/main_definitions/0-2#- Загл. с экрана.
- Черёмушкин А. В. Криптографические протоколы: основные свойства и уязвимости // Прикладная дискретная математика. — 2009. — нояб. — вып. 2. — с. 115—150. — URL: cyberleninka.ru/article/n/kriptograficheskie-protokoly-osnovnye-svoystva-i-uyazvimosti.pdf.
- Грищенко, О. С. Анализ алгоритмов аутентификации в распределенных программных системах / О. С. Грищенко, А. В. Чернышова // Программная инженерия: методы и технологии разработки информационно-вычислительных систем (ПИИВС-2018) : Сборник научных трудов II Международной научно-практической конференции, Донецк, 14–15 ноября 2018 года. Том 1. – Донецк: Донецкий национальный технический университет, 2018. – С. 102-108. – EDN XBCKSN.
- Грищенко, О. С. Защита информации в приложениях для мгновенной передачи сообщений / О. С. Грищенко, А. В. Чернышова // Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ-2017) : Сборник материалов VIII Международной научно-технической конференции в рамках III Международного Научного форума Донецкой Народной Республики, Донецк, 25 мая 2017 года / Редколлегия: Ю.К. Орлов [и др.]. – Донецк: Донецкий национальный технический университет, 2017. – С. 115-119. – EDN KKRGJS.