Вибираємо протокол vpn

Вибираємо протокол VPN

VPN створює захищений канал зв'язку через Internet між комп'ютером віддаленого користувача і приватною мережею його організації. Якщо уявити Internet у вигляді труби, то VPN створює усередині неї трубу меншого діаметру, доступну тільки для користувачів організації. VPN забезпечує користувачеві захищений доступ до його приватної мережі практично через будь-який тип з'єднання з Internet. Наявність IP-мережі між клієнтом і сервером VPN є єдиною вимогою для реалізації Microsoft VPN. Досить, щоб і клієнт і сервер були підключені до Internet.

У чому подібність і відмінність між PPTP і L2TP? Якщо розглянути структуру пакетів, стане очевидно, що і PPTP і L2TP грунтуються на протоколі Point-to-Point Protocol (PPP) і є його розширеннями. Дані верхніх рівнів моделі OSI спочатку инкапсулируются в PPP, а потім в PPTP або L2TP для тунельної передачі через мережі загального доступу.

PPP володіє декількома перевагами в порівнянні зі своїм старшим побратимом Serial Line Internet Protocol (SLIP). Як приклад можна привести аутентифікацію з використанням CHAP і стиснення даних. У набір PPP входять протокол Link Control Protocol (LCP), відповідальний за конфігурацію, установку, роботу і завершення з'єднання точка-точка, і протокол Network Control Protocol (NCP), здатний инкапсулировать в PPP мережевий рівень для транспортування через з'єднання точка-точка. Це дозволяє одночасно передавати пакети Novell IPX і Microsoft IP по одному з'єднанню PPP.

Безумовно, PPP є важливою частиною PPTP і L2TP. Завдяки PPP стало можливим використання PPTP і L2TP для виконання віддалених додатків, що залежать від немаршрутізіруемих протоколів. На фізичному і канальному рівнях PPTP і L2TP ідентичні, але на цьому їх схожість закінчується, і починаються відмінності.

Для доставки конфіденційних даних з однієї точки в іншу через мережі загального користування спочатку проводиться інкапсуляція даних за допомогою протоколу PPP, потім протоколи PPTP і L2TP виконують шифрування даних і власну инкапсуляцию.

Відповідно до моделі OSI протоколи інкапсулюють блоки даних protocol data unit (PDU) за принципом матрьошки: TCP (транспортний рівень) инкапсулируется протоколом IP (мережевий рівень), який потім инкапсулируется PPP (на канальному рівні).

Після того як тунельний протокол доставляє пакети з початкової точки тунелю в кінцеву, виконується деінкапсуляція.

PPTP інкапсулює пакети IP для передачі по IP-мережі. Клієнти PPTP використовують порт призначення +1723 для створення керуючого тунелем з'єднання. Цей процес відбувається на транспортному рівні моделі OSI. Після створення тунелю комп'ютер-клієнт і сервер починають обмін службовими пакетами.

На додаток до керуючого з'єднанню PPTP, що забезпечує працездатність каналу, створюється з'єднання для пересилання по тунелю даних. Інкапсуляція даних перед пересиланням через тунель відбувається дещо інакше, ніж при звичайній передачі (наприклад, при роботі telnet). Інкапсуляція даних перед відправкою в тунель включає два етапи. Спочатку створюється інформаційна частина PPP. Дані проходять зверху вниз, від прикладного рівня OSI до канального. Потім отримані дані відправляються вгору по моделі OSI і инкапсулируются протоколами верхніх рівнів.

Таким чином, під час другого проходу дані досягають транспортного рівня. Однак інформація не може бути відправлена ​​за призначенням, так як за це відповідає канальний рівень OSI. Тому PPTP шифрує поле корисного навантаження пакета і бере на себе функції другого рівня, зазвичай належать PPP, т. Е. Додає до PPTP-пакету PPP-заголовок (header) і закінчення (trailer). На цьому створення кадру канального рівня закінчується. Далі, PPTP інкапсулює PPP-кадр в пакет Generic Routing Encapsulation (GRE), який належить мережевого рівня. GRE инкапсулирует мережевий рівень, наприклад IPX, AppleTalk, DECnet, щоб забезпечити можливість їх передачі по IP-мереж. Однак GRE не має можливості встановлювати сесії і забезпечувати захист даних від зловмисників. Для цього використовується здатність PPTP створювати з'єднання для управління тунелем. Застосування GRE в якості методу інкапсуляції обмежує поле дії PPTP тільки мережами IP.

Малюнок 1. Структура даних для пересилання по тунелю PPTP.

Система-відправник посилає дані через тунель. Система-одержувач видаляє всі службові заголовки, залишаючи тільки дані PPP.

Новий гравець на полі

L2TP з'явився в результаті об'єднання протоколів PPTP і Layer 2 Forwarding (L2F). PPTP дозволяє передавати через тунель пакети PPP, а L2F-пакети SLIP і PPP. Щоб уникнути плутанини і проблем взаємодії систем на ринку телекомунікацій, комітет Internet Engineering Task Force (IETF) рекомендував компанії Cisco Systems об'єднати PPTP і L2F. На загальну думку протокол L2TP увібрав в себе кращі риси PPTP і L2F.

L2TP застосовує в якості транспорту протокол UDP і використовує однаковий формат повідомлень як для управління тунелем, так і для пересилання даних. L2TP в реалізації Microsoft використовує в якості контрольних повідомлень пакети UDP, що містять шифровані пакети PPP. Надійність доставки гарантує контроль послідовності пакетів. Повідомлення L2TP мають поля Next-Received і Next-Sent. Ці поля виконують ті ж функції, що і поля Acknowledgement Number і Sequence Number в протоколі TCP.

Комп'ютер-одержувач приймає дані, обробляє заголовок і закінчення PPP, прибирає заголовок IP. За допомогою IPSec Authentication проводиться аутентифікація інформаційного поля IP, а ESP-заголовок IPSec допомагає розшифрувати пакет.

Далі комп'ютер обробляє заголовок UDP і використовує заголовок L2TP для ідентифікації тунелю. Пакет PPP тепер містить тільки корисні дані, які обробляються або пересилаються зазначеному одержувачу.

Для аутентифікації користувачів PPTP може задіяти будь-який з протоколів, що застосовуються для PPP, включаючи Extensible Authentication Protocol (EAP), Microsoft Challenge Handshake Authentication Protocol (MSCHAP) версії 1 і 2, Challenge Handshake Authentication Protocol (CHAP), Shiva Password Authentication Protocol (SPAP) і Password Authentication Protocol (PAP). Кращими вважаються протоколи MSCHAP версії 2 і Transport Layer Security (EAP-TLS), оскільки вони забезпечують взаємну аутентифікацію, т. Е. VPN-сервер і клієнт ідентифікують один одного. У всіх інших протоколах тільки сервер проводить аутентифікацію клієнтів.

Шифрування за допомогою PPTP гарантує, що ніхто не зможе отримати доступ до даних при пересиланні через Internet. Протокол шифрування MPPE (Microsoft Point-to-Point Encryption) сумісний тільки з MSCHAP (редакція 1 і 2) і EAP-TLS і вміє автоматично вибирати довжину ключа шифрування при узгодженні параметрів між клієнтом і сервером. MPPE підтримує роботу з ключами довжиною 40, 56 або 128 біт. Старі операційні системи Windows підтримують шифрування з довжиною ключа тільки 40 біт, тому в змішаному середовищі Windows слід вибирати мінімальну довжину ключа.

PPTP змінює значення ключа шифрування після кожного прийнятого пакета. Протокол MMPE розроблявся для каналів зв'язку точка-точка, в яких пакети передаються послідовно, і втрата даних дуже мала. У цій ситуації значення ключа для чергового пакета залежить від результатів дешифрування попереднього пакету. При побудові віртуальних мереж через мережі загального доступу ці умови дотримуватися неможливо, так як пакети даних часто приходять до одержувача не в тій послідовності, в якій були відправлені. Тому PPTP використовує для зміни ключа шифрування порядкові номери пакетів. Це дозволяє виконувати дешифрацию незалежно від попередніх прийнятих пакетів.

Хоча PPTP забезпечує достатній ступінь безпеки, але все ж L2TP поверх IPSec надійніше. L2TP поверх IPSec забезпечує аутентифікацію на рівнях «користувач» і «комп'ютер», а також виконує аутентифікацію і шифрування даних.

На першому етапі аутентифікації клієнтів і серверів VPN, L2TP поверх IPSec використовує локальні сертифікати, отримані від служби сертифікації. Клієнт і сервер обмінюються сертифікатами і створюють захищене з'єднання ESP SA (security association).

Після того як L2TP (поверх IPSec) завершує процес аутентифікації комп'ютера, виконується аутентифікація на рівні користувача. Для аутентифікації можна задіяти будь-який протокол, навіть PAP, передає ім'я користувача і пароль у відкритому вигляді. Це цілком безпечно, так як L2TP поверх IPSec шифрує всю сесію. Однак проведення аутентифікації користувача за допомогою MSCHAP, що застосовує різні ключі шифрування для аутентифікації комп'ютера і користувача, може посилити захист.

L2TP поверх IPSec забезпечує більш високу ступінь захисту даних, ніж PPTP, так як використовує алгоритм шифрування Triple Data Encryption Standard (3DES). 3DES був розроблений для захисту особливо секретних даних, і його застосування дозволене тільки в Північній Америці. Якщо такий високий рівень захисту не потрібен, можна використовувати алгоритм DES з одним 56-розрядним ключем, що дозволяє знизити витрати на шифрування (3DES використовує три 56-розрядних ключа).

L2TP поверх IPSec виконує шифрування даних і аутентифікацію на рівнях комп'ютера і користувача. Крім того, за допомогою алгоритму Hash Message Authentication Code (HMAC) Message Digest 5 (MD5) L2TP забезпечує аутентифікацію даних. Для аутентифікації даних цей алгоритм створює хеш довжиною 128 розрядів.

Функціональні можливості PPTP і L2TP різні. L2TP може використовуватися не тільки в IP-мережах, службові повідомлення для створення тунелю і пересилання за нього даних використовують однаковий формат і протоколи. PPTP може застосовуватися тільки в IP-мережах, і йому необхідно окреме з'єднання TCP для створення і використання тунелю. L2TP поверх IPSec пропонує більше рівнів безпеки, ніж PPTP, і може гарантувати майже 100-відсоткову безпеку важливих для організації даних.