![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
OpenVPN
OpenVPN – це система, що дозволяє створювати шифровані тунелі між комп'ютерами за технологією VPN (Virtual Private Network, віртуальна приватна мережа) [1]. Принцип роботи OpenVPN полягає в тому, що дані, які передаються через публічні мережі, надійно шифруються і можуть бути розшифровані тільки тим, хто володіє потрібним для цього ключем шифрування. Таким чином, навіть перехоплений кимось трафік становить дуже сумнівну користь, звичайно, за умови, що ключ шифрування надійно захищений від стороннього доступу. На сьогодні OpenVPN активно використовується багатьма організаціями для з'єднання воєдино безлічі розподілених мереж їх філій. Використання Інтернет, як середовища передачі даних дозволяє в даному випадку істотно скоротити витрати за рахунок дешевизни послуг провайдерів доступу в Інтернет в порівнянні з наданням виділених каналів передачі даних. Основні плюси цієї системи: – просте налаштування займає менше години і не вимагає спеціальних знань; – економія трафіка за допомогою бібліотеки компресії lzo (Lempel - Ziv - Oberhumer); – безпечне шифрування трафіка ключами завдовжки 1024 біта і вище, а клієнти розділені між собою в окремі підмережі. OpenVPN проводить усі мережні операції через TCP (Transmission Control Protocol), або UDP(прийнятніше) порт. Також можлива робота через велику частину проксі серверів, включаючи HTTP (HyperText Transfer Protocol), через NAT (Network Address Translation) і мережні фільтри. Сервер може бути налаштований на призначення мережних налаштувань клієнтові. Наприклад, IP адреса, налаштування маршрутизації і параметри з'єднання. OpenVPN пропонує два різні варіанти мережних інтерфейсів, використовуючи драйвер TUN/TAP. Можливо створити Layer 3 – based IP тунель, званий TUN, і Layer 2 – based Ethernet – TAP, здатний передавати Ethernet трафік. Також можливе використання бібліотеки компресії lzo (Lempel – Ziv – Oberhumer), для стискування потоку даних. Використовується порт 1194, виділений Internet Assigned Numbers Authority, для роботи цієї програми. Версія 2.0 дозволяє контролювати декілька одночасних тунелів, на відміну від версії 1.0, що дозволяла створювати тільки 1 тунель на 1 процес. Для забезпечення безпеки каналу, що управляє, і потоку даних, OpenVPN використовує бібліотеку рівня захищених сокетів OpenSSL (Open Secure Sockets Layer). Завдяки цьому, задіюється увесь набір шифрів, доступних в цій бібліотеці. Також може використовуватися пакетна авторизація HMAC (hash – based message authentication code), для забезпечення більшої безпеки, і апаратне прискорення для поліпшення продуктивності шифрування. Ця бібліотека використовує OpenSSL (Open Secure Sockets Layer), а точніше протоколи SSLv3/TLSv1. OpenVPN використовується на Solaris, BSD системах, GNU/Linux, Apple Mac OS X, QNX і Microsoft Windows. OpenSSL – криптографічний пакет з відкритим початковим кодом для роботи з SSL/TLS [2]. Дозволяє створювати ключі RSA (Rivest, Shamir, Adleman), DH, DSA (Digital Signature Algorithm) і сертифікати X.509, підписувати їх, формувати CSR і CRT [3]. Також є можливість шифрування даних і тестування SSL/TLS з'єднань. RSA (буквена абревіатура від прізвищ Rivest, Shamir і Adleman) – криптографічний алгоритм з відкритим ключем. RSA став першим алгоритмом такого типу, придатним і для шифрування, і для цифрового підпису. Алгоритм використовується у великому числі криптографічних застосувань. На 2009 рік система шифрування на основі RSA вважається надійною, починаючи з розміру в 1024 біта. Групі учених зі Швейцарії, Японії, Франції, Нідерландів, Німеччини і США вдалося успішно обчислюти дані, зашифровані за допомогою криптографічного ключа стандарту RSA завдовжки 768 біт. За словами дослідників, після їх роботи в якості надійної системи шифрування можна розглядати тільки RSA - ключі довжиною 1024 біта і більше. Причому, від шифрування ключем завдовжки в 1024 біта варто відмовитися в найближчі три-чотири роки. Система RSA використовується для захисту програмного забезпечення і в схемах цифрового підпису. Також вона використовується у відкритій системі шифрування PGP (Pretty Good Privacy) і інших системах шифрування (приміром, DarkCryptTC і формат xdc) у поєднанні з симетричними алгоритмами. Із-за низької швидкості шифрування (близько 30 кбіт/с при 512 бітовому ключі на процесорі 2 ГГц), повідомлення шифрують за допомогою продуктивніших симетричних алгоритмів з випадковим ключем (сеансовий ключ), а за допомогою RSA шифрують лише цей ключ, таким чином, реалізується гібридна криптосистема. Такий механізм має потенційні уразливості, зважаючи на необхідність використовувати криптостійкий генератор випадкових чисел для формування випадкового сеансового ключа симетричного шифрування і ефективно супротивний атакам симетричний криптоалгоритм (зараз широке застосування знаходять AES (Advanced Encryption Standard) [4], IDEA (International Data Encryption Algorithm), Serpent, Twofish). Перший крок конфігурації OpenVPN 2.0 – установка PKI (public key infrastructure). PKI складається з: роздільні сертифікати (публічний ключ – a public key) і приватний ключ (private key) для сервера і кожного клієнта головний Certificate Authority (CA) сертифікат і ключ, використовуваний для підпиcу кожного сертифікату сервера і клієнта. OpenVPN підтримує двонаправлену автентифікацію, що засновану на сертифікатах, означає, що клієнт повинен автентифікувати сертифікат сервера і навпаки перед встановленням взаємної довіри. І сервер і клієнт спочатку перевіряють, що сертифікат підписаний головним CA, а потім тестують інформацію в заголовку сертифікату, таку як публічне ім'я сертифікату і його тип (сервер або клієнт). У цю модель безпеки в перспективі можуть бути додані й інші бажані можливості: Сервер повинен володіти сертифікатом/ключем – не треба знати індивідуальних сертифікатів кожного клієнта, які будуть підключатися до сервера. Якщо приватний ключ скомпроментований, він може бути заборонений додаванням в CRL (certificate revocation list). CRL містить скомпроментовані сертифікати для вибіркового відбракування сертифікатів без необхідності повного перестроювання PKI. Сервер може встановити клієнтозалежні права доступу, грунтуючись на вбудованих полях сертифікату, таких як публічне ім'я (Common Name).
Послідовність дій. Створення основного Certificate Authority (CA) сертифікату і ключа. Створення сертифікату і ключа сервера. Створення сертифікатів і ключів для 3-х клієнтів. Створення параметрів Diffie Hellman. Файли ключів і сертифікатів.
2. Хід роботи 2.1. Налаштування клієнта OpenVPN на Windows XP.
Перевіряємо, чи встановлений OpenVPN на Windows XP. У разі, якщо не встановлений – завантажуємо пакет OpenVPN під Windows звідси: https://openvpn.net/index.php/open-source/downloads.html. Після завантаження запускаємо на виконання - скрізь натискаємо далі, далі, далі (Next, I agree, Next, Next, галочка на TUN - все одно продовжити, Next, зняти галочку, Finish). Необхідно створити файл з files.ovpn, якщо він не створений. Якщо користуватися FARом, за допомогою FAR заходимо в c: \program files\openvpn\config\ і створюємо там файл client.ovpn для клієнта (комбінація клавіш Shift+F4). У самому файлі прописуємо: client # Кліент tls–client # застосовуваємо tls verb 3 # рівень відладки dev tun # пристрій proto tcp # застосовуємо tcp-протокол remote 192.168.0.122 1194 # віддалений сервер та порт nobind persist - key # постійний ключ persist - tun # постійний пристрій ca ca.crt # кореневий сертифікат cert client01.crt # клієнтський сертифікат key client01.key # клієнтський ключ Перевірити, чи є файли-сертифікати сервера - ca.crt, клієнта - client01.crt і ключ клієнта - client01.key. Запустити Wireshark, включити захоплення пакетів. На клієнтові Windows в треї натискаємо праву кнопку миші на OpenVPN GUI і натискаємо Connect, якщо ніде не помилилися, то емблема стане жовтою. Якщо немає кнопки підключити, то необхідно скористатися командним рядком і запустити оpenvpn з додатковими параметрами. Наприклад, оpenvpn --config client.opvn. Перевірити з’єднання - командою пінг на адресу сервера. Якщо відповідає, то усе - OpenVPN в найпростішій конфігурації працює. Відключити захоплення пакетів в Wireshark. Записати основні пакети, що відносяться до встановлення і роз'єднання цього з'єднання.
3. Ключові питання 1) Що таке PKI? 2) Чи можлива робота без PKI? 3) Що таке сертифікат? 4) Що дозволяє зробити криптографічний пакет OpenSSL? 5) Як називається третій рівень в моделі OSI і які основні його функції? 6) Якими алгоритмами згенеровані ключі? 7) Що таке RSA?
4. Домашнє завдання 1. Вивчити формування OpenVPN тунелю. Основні можливості OpenVPN. 2. Визначити, які основні алгоритми авторизації та шифрування застосовуються у OpenVPN протоколі. 3. З’ясувати, які основні програмні продукти будуть застосовуватися у лабораторній роботі. 4. Відповісти на ключові питання.
|