Ipsec vpn
IPsec вдає із себе не один протокол, а систему протоколів призначену для захисту даних на мережевому рівні IP-мереж. У даній статті буде описаний теорія застосування IPsec для створення VPN тунелю.
VPN заснований на технології IPsec можна розділити на дві частини:
- Протокол Internet Key Exchange (IKE)
- Протоколи IPsec (AH / ESP / both)
Перша частина (IKE) є фазою узгодження, під час якої дві VPN-точки вибирають які методи будуть використовуватися для захисту IP трафіку посилається між ними. Крім цього IKE також використовується для управління з'єднаннями, для цього вводиться поняття Security Associations (SA) для кожного з'єднання. SA спрямовані тільки в одну сторону, тому типове IPsec з'єднання використовує два SA.
Друга частина - це ті IP дані, які необхідно зашифрувати і аутентифицировать перед передачею методами, узгодженими в першій частині (IKE). Існують різні протоколи IPsec, які можуть бути використані: AH, ESP або обидва.
Послідовність встановлення VPN через IPsec можна коротко описати як:
- IKE погоджує захист рівня IKE
- IKE погоджує захист рівня IPsec
- захищаються дані передаються через VPN IPsec
IKE, Internet Key Exchange
Для шифрування і аутентифікації даних потрібно вибрати спосіб шифрування / аутентифікації (алгоритм) і ключі використовуються в них. Завдання Internet Key Exchange protocol, IKE, в цьому випадку зводиться до поширення даних "ключів сесії" і погодженням алгоритмів, якими будуть захищатися дані між VPN-точками.
Основні завдання IKE:
- Аутентифікація VPN-точок один одного
- Організація нових IPsec з'єднань (через створення SA пар)
- Управління поточними з'єднаннями
IKE веде облік з'єднань шляхом призначення кожному з них нікого Security Associations, SA. SA описує параметри конкретного з'єднання, включаючи IPsec протокол (AH / ESP або обидва), ключі сесії, використовувані для шифрування / дешифрування і / або аутентифікації даних. SA є односпрямованої, тому використовується кілька SA на одне з'єднання. У більшості випадків, коли використовується тільки ESP або AH, створюються тільки дві SA для кожного з підключень, одна для вхідного трафіку, а друга для вихідного. Коли ESP і AH використовуються разом, SA потрібно чотири.
Процес узгодження IKE проходить через кілька етапів (фаз). Дані фази включають:
- IKE першої фази (IKE Phase-1):
- Узгоджується захист самого IKE (ISAKMP tunnel) - IKE другої фази (IKE Phase-2):
- Узгоджується захист IPsec
- Отримання даних з першої фази для формування ключів сесії
З'єднання IKE і IPsec обмежені за тривалістю (в секундах) і за кількістю переданих даних (в кілобайтах). Це зроблено для підвищення захищеності.
Тривалість IPsec підключення, як правило, коротше IKE. Тому, коли закінчується термін IPsec з'єднання, нове IPsec з'єднання пересоздается через другу фазу узгодження. Перша фаза узгодження використовується тільки при пересоздании IKE підключення.
Для узгодження IKE вводиться поняття IKE пропозицію (IKE Proposal) - це пропозиція того, як захистити дані. VPN-точка инициализирующая IPsec підключення відправляє список (пропозиція) в якому вказані різні методи захисту підключення.
Переговори можуть вестися як про встановлення нового IPsec з'єднання, так і про встановлення нового IKE з'єднання. У разі IPsec захищеними даними є той трафік, що відправлений через VPN-тунель, а в разі IKE захищаються дані - дані самих погоджень IKE.
VPN-точка отримала список (пропозиція), вибирає з нього найбільш підходяще і вказує його у відповіді. Якщо жодна з пропозицій не може бути вибрано, VPN шлюз відмовляє.
Пропозиція містить всю необхідну інформацію для вибору алгоритму шифрування і аутентифікації та ін.
IKE першої фази - узгодження захисту IKE (ISAKMP Tunnel)
На першій фазі узгодження VPN-точки аутентифицируют один одного на основі загального ключа (Pre-Shared Key). Для аутентифікації використовуються хеш алгоритм: MD5, SHA-1, SHA-2.
Однак перед тим як аутентифицировать один одного, щоб не передавати інформацію відкритим текстом, VPN-точки виконують обмін списками пропозицій (Proposals), описаний раніше. Тільки після того як влаштовує обох VPN-точок пропозицію вибрано, відбувається аутентифікація VPN-точка один одного.
Аутентифікацію можна здійснювати різними способами: через загальні ключі (Pre-Shared Keys), сертифікати або шифрування з відкритим ключем. Загальні ключі є найбільш поширеним способом аутентифікації.
Узгодження IKE першої фази може відбуватися в одному з двох режимів: main (основний) і aggressive (агресивний). Основний режим більш тривалий, але зате і більш захищений. У його процес відбувається обмін шістьма повідомленнями. Агресивний режим відбувається швидше, обмежуючись трьома повідомленнями.
Основна робота першої фази IKE лежить в обміні ключами Діффі-Хеллмана. Він заснований на шифруванні з відкритим ключем, кожна зі сторін шифрує аутентифікаційний параметр (Pre-Shared Key) відкритим ключем сусіда, який отримавши дане повідомлення розшифровує його своїм закритим ключем. Інший способо аутентифікації сторін один одного - використання сертифікатів.
IKE другої фази - узгодження захисту IPsec
У другій фазі здійснюється вибір способу захисту IPsec підключення.
Для роботи другої фази використовується матеріал (keying material) витягнутий з обміну ключами Діффі-Хеллмана (Diffie-Hellman key exchange), що стався на першій фазі. На основі цього матеріалу створюються ключі сесії (session keys), що використовуються для захисту даних в VPN-тунелі.
Якщо використовується механізм Perfect Forwarding Secrecy (PFS). то для кожного узгодження другої фази буде використовуватися новий обмін ключами Діффі-Хеллмана. Кілька знижуючи швидкість роботи, дана процедура гарантує, що ключі сесії не залежні один від одного, що підвищує захист, оскільки навіть якщо станеться компромат одного з ключів, він не зможе бути використаний для підбору інших.
Режим роботи другої фази узгодження IKE тільки один, він називається quick mode - швидкий режим. У процесі узгодження другої фази відбувається обмін трьома повідомленнями.
Після закінчення другої фази, встановлюється VPN-підключення.
Параметри IKE.
Під час встановлення з'єднання використовуються кілька параметрів, без узгодження яких неможливо встановити VPN-підключення.
Методи аутентифікації IKE
- Ручний режим
Найпростіший з методів, при якому IKE не використовується, а ключі аутентифікації і шифрування, а також деякі інші параметри задаються в ручну на обох точках VPN підключення. - Через загальні ключі (Pre-Shared Keys, PSK)
Заздалегідь введений загальний ключ на обох точках VPN з'єднання. Відмінність від попереднього методу в тому, що використовується IKE, що дозволяє аутентифицировать кінцеві точки і використовувати мінливі ключі сесії, замість фіксованих ключів шифрування. - сертифікати
Кожна точка VPN використовує: свій приватний ключ, свій відкритий ключ, свій сертифікат включає свій відкритий ключ і підписаний довіреною центром сертифікації. На відміну від попереднього методу дозволяє уникнути введення одного загального ключа на всіх точках VPN з'єднання, замінюючи його особистими сертифікатами, підписаними довіреною центром.
протоколи IPsec
IPsec протоколи використовуються для захисту переданих даних. Вибір протоколу і його ключів відбувається при узгодженні IKE.
AH (Authentication Header)
AH надає можливо аутентифицировать передані дані. Для цього використовується криптографічний хеш-функція по відношенню до даних містяться в IP-пакеті. Висновок даної функції (хеш) передається разом з пакетом і дозволяє віддаленої VPN-якій точці підтвердити цілісність оригінального IP-пакета, підтверджуючи, що він не був змінений шляхом. Крім даних IP-пакета, AH також аутентифікує частина його заголовка.
У режимі транспорту, AH вбудовує свій заголовок після оригінального IP пакета.
У режимі тунелю AH вбудовує свій заголовок після зовнішнього (нового) IP-заголовка і перед внутрішнім (оригінальним) IP заголовком.
ESP (Encapsulating Security Payload)
ESP протокол використовується для шифрування, для аутентифікації або і того, і іншого по відношенню до IP пакету.
У режимі транспорту ESP протокол вставляє свій заголовок після оригінально IP заголовка.
У режимі тунелю ESP заголовок знаходиться після зовнішнього (нового) IP заголовка і перед внутрішнім (оригінальним).
Два основні відмінності між ESP і AH:
- ESP крім аутентифікації надає ще можливість шифрування (AH цього не надає)
- ESP в режимі тунелю аутентифікує тільки оригінальний IP заголовок (AH аутентифікує також зовнішній).
Робота за NAT (NAT Traversal)
Для підтримки роботи за NAT була реалізована окрема специфікація. Якщо VPN-точка підтримує дану специфікацію, IPsec підтримує роботу за NAT, однак існують певні вимоги.
Підтримка NAT складається з двох частин:
- На рівні IKE кінцеві пристрої обмінюються один з одним інформацією про підтримку, NAT Traversal і версією підтримуваної специфікації
- На рівні ESP сформований пакет инкапсулируется в UDP.
Як тільки кінцеві точки визначать, що необхідний NAT Traversal, узгодження IKE переміщаються з порту UDP 500 на порт 4500. Робиться це тому, що деякі пристрої некоректно обробляють IKE сесію на 500 порту при використанні NAT.
Інша проблема виникає через те, що ESP протокол - протокол транспортного рівня і розташовується безпосередньо поверх IP. Через це до нього не застосовні поняття TCP / UDP порту, що робить неможливим підключення через NAT більше одного клієнта до одного шлюзу. Для вирішення даної проблеми ESP запаковується в UDP дейтаграмму і надсилається на порт 4500, той же самий, який використовує IKE при включеному NAT Traversal.
NAT Traversal вбудований в роботу протоколів, його підтримують і працює без попередньої настройки.