Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Топалов

.pdf
Скачиваний:
26
Добавлен:
10.02.2016
Размер:
2.16 Mб
Скачать

Лабораторна робота № 3

Дослідження з'єднання тунелю за протоколом РРТР з боку клієнта на базі операційної системи Windows

Мета роботи. Дослідити протокол РРTP тунелю, формат пакетів, етапів з'єднання та роз'єднання.

Ключові положення

1. Огляд РРТР протоколу

Основний опис протоколу PPTP поданий в RFC2637 [1] відкритим міжнародним співтовариством проектувальників, учених, мережних операторів і про-

вайдерів (Internet Engineering Task Force — IETF). РРТР за замовчуванням ви-

користовують передачу за допомогою ТСР пакетів і резервують для РРТР порт 1723. Основні методи авторизації визначаються протоколом РРР і вибираються з PAP, CHAP, Microsoft CHAP V1/V2 або EAP - TLS. Можливий тільки один метод шифрування даних, розроблений компанією Майкрасофт, – шифрування Майкрасофт для з'єднання «точка-точка» (Microsoft Point to Point Encryption –

МРРЕ). Визначено в стандарті IETF RFC 3078, 3079 [2, 3]. У основі МРРЕ лежить алгоритм RC4 (Rivest Cipher 4) з довжиною ключів 40, 56 або 128 біт, розроблений в 1998. Цей алгоритм шифрування застосовується в ранніх рекомендаціях SSL, TLS, в паролях Windows NT і в алгоритмі бездротових мереж Wi-Fi (Wireless Fidelity – «бездротова точність») WEP (Wired Equivalent Privacy). З 2001 по 2005 в роботах Мантин, Шамир і Андреаса Кляйна [4] була показана сильна коррельованість ключа і ключового потоку RC4. Це дозволяє при довгому аналізі шифрованих повідомлень без зміни ключа у відносно короткий реальний час підібрати ключ і дешифрувати повідомлення стороннього спостерігача. Подані рекомендації: пропускати початок ключового потоку з обміну повідомлень та використовувати напрямок циклу зворотній в алгоритмі ключового розкладу дозволяють істотно підвищити криптостійкість алгоритму.

РРТP тунель складається з каналу управління і з каналу передачі даних. Спочатку за допомогою пакетів, що управляють, встановлюється канал управління, а потім канал даних. Організація каналу даних здійснюється за допомо-

гою протоколу інкапсулювання GRE (Generic Routing Encapsulation).

Формат управляючих пакетів РРТР відображан у таблиці 1. Довжина – вказується довжина усього сполучення із заголовком.

Тип PPTP повідомлення завжди рівне "1" і вказує на те, що це повідомлення є керівником.

141

Табл. 1 Формат управляючих пакетів РРТР

01234567891011121314151617 1819202122232425262728293031

Довжина

 

Тип РРТР повідомлення

 

 

 

 

 

Magic cookie

 

 

 

Тип повідомлення, що

 

Зарезервовано

управляє

 

 

 

 

 

 

 

 

Дані

 

 

 

Magic cookie призначене для цілей синхронізації і завжди містить значен-

ня 0x1A2B3C4D.

Табл. 2 Управляючи типи повідомлень пакетів РРТР

Код повідом-

Тип повідомлення

 

Призначення

лення

 

 

 

 

Управління каналом контролю

1

Start - Control - Connection -

 

Запит на встановлення ка-

 

Request

 

налу управління

2

Start - Control - Connection - Reply

 

Відповідь на встановлення

 

 

 

каналу управління

3

Stop - Control - Connection -

 

Запит на розрив каналу

 

Request

 

управління

4

Stop - Control - Connection - Reply

 

Підтвердження розриву

 

 

 

каналу управління

5

Echo - Request

 

―Ехо-сигнала" запит

6

Echo - Reply

 

"Ехо-сигнала" у відповідь

 

Управління з'єднанням

 

7

Outgoing - Call - Request

 

Запит на витікаючи з'єд-

 

 

 

нання

8

Outgoing - Call - Reply

 

Підтвердження на витіка-

 

 

 

юче з'єднання

9

Incoming - Call - Request

 

Запит на вхідне з'єднання

10

Incoming - Call - Reply

 

Підтвердження на вхідні

 

 

 

з'єднання

11

Incoming - Call - Connected

 

Вхідне з'єднання встанов-

 

 

 

лене

12

Call - Clear - Request

 

Запит на розрив з'єднання

13

Call - Disconnect - Notify

 

Повідомлення про розрив

 

 

 

з'єднання

 

Повідомлення про помилку

 

14

WAN - Error - Notify

 

Повідомлення про помил-

 

 

 

ку на зовнішньому інтер-

 

 

 

фейсі

 

Контроль РРР сесії

 

15

Set - Link - Info

 

Встановити параметри ка-

 

 

 

налу

142

Після встановлення каналу управління створенням каналу даних займається протокол РРР за допомогою протоколу інкапсулювання GRE.

Табл. 3 Формат заголовка пакета GRE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

4

5

6

7

 

8

9

10

11

12

13

14

15

16 17

18 19 20 21 22 23 24 25 26 27 28 29 30 31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

S

0

резерв

 

 

А

 

 

резерв

 

 

 

Версія

 

 

Тип протоколу

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Довжина поля даних

 

 

 

 

Номер з'єднання

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Порядковий номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер підтвердження

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поле S вказує, що в пакеті є присутнім порядковий номер пакета, якщо поле дорівнює 1. Резерв – на даний момент в стандарті біти цього поля визначені усі рівні 0. Поле А вказує, що в пакеті є присутнім номер підтвердження пакету, якщо поле дорівнює 1. Поле версія для протоколу GRE це поле дорівнює 1. Поле довжина даних вказує довжину пакета без урахування заголовка. Полі номер з'єднання містить номер поточного з'єднання, якому належить цей пакет. Полі порядковий номер містить номер поточного пакета. Полі номер підтвердження містить номер останнього підтвердженого пакета.

При використання шифрування МРРЕ передаються дані за допомогою МРРЕ пакетів, основний формат яких поданий нижче.

Табл. 3 Формат пакета МРРЕ

0

1

2

3

4

5

6

7

8

9

10 11 12 13 14 15

16

17

18

19

20

21 22 23 24 25 26 27 28 29 30 31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РРР протокол

 

А

 

B

 

C

 

D

 

 

Лічильник

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далі слідують шифровані дані

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перші два байти заповнено даними протоколу РРР, які розглянуті в лабораторній роботі № 2. Коли параметри МРРЕ погоджені і передаються шифровані пакети, значення цього поля дорівнює 0x00FD.

Поле А вказує, що шифровані таблиці були згенеровані заново перед передачею цього повідомлення. Одержувач також повинен згенерувати шифровані таблиці перед дешифруванням пакета.

Поля B і C не визначені в МРРЕ.

Поле D вказує на присутність шифрованих даних в пакеті, якщо рівний 1, або на відсутність шифрованих даних при значені 0.

Лічильник показує, який номер даного пакета.

Розглянемо як створюється РРТР тунель в операційній системі Windows.

2.Хід роботи

2.1Налаштування РРТР клієнта на базі операційної системи Windows

143

Для того, щоб з ОС Windows можливо було підключатися до сервера PPTP в ній має бути присутнім Microsoft VPN Adapter. Розглянемо приклад підключення OC Windows XP, в ній цей драйвер встановлений за замовчуванням. Для створення РРТР підключення необхідно виконати наступні кроки:

1)пуск->Панель управління->Мережні підключення->Створення нового підключення;

2)буде запущений майстер створення підключення;

3)на другому кроці вибрати «Підключити до мережі на робочому місці»;

4)на наступному кроці «Підключення до віртуальної приватної мережі»;

5)далі вказати назву підключення «pptp»;

6)далі «Не набирати номер для попереднього підключення»;

7)далі вказати IP адресу запущеного PPTP сервера (192.168.0.122);

8)готово.

3. Домашнє завдання

Вивчити ключові питання.

Підготувати протокол виконання лабораторної роботи. Привести приклад заголовка РРTP пакета.

Дати короткі письмові відповіді на контрольні питання.

4.Контрольні питання

1.У яких мережах може застосовуватися протокол РРТP ?

2.Які канали організовуються в РРТР тунелі ?

3. За яким протоколом відбувається шифрування у РРTP ?

4. Які основні довжини ключів для шифрування застосовуються у РРTP ?

5.Для чого застосовується GRE у PPTP тунелі ?

6.Можлива організація канала даних до канала управління ?

7.Для чого необхідні порядковий номер та номер підтвердження у формате заголовка пакета GRE?

8.Який порт застосовує РРТР?

5.Лабораторне завдання

1.Створіть з’єднання PPTP, але не підключайте.

2.Запустіть програмний аналізатор протоколів Wireshark.

3.Включіть режим захоплення пакетів.

4.Підключити з’єднання PPTP.

5.Пропінгуйте сервер.

6.Роз’єднати PPTP тунель.

7.Зупиніть режим захоплення пакетів в Wireshark.

8.Проаналізуйте пакети з’єднання та роз’єднання PPTP тунелю. Занесіть отримані результати до протоколу.

144

Варіанти завдань для виконання лабораторної роботи:

1.Змініть логін на інший, спробуйте з’єднатися, занесіть основні пакети відмови з’єднання у протокол.

2.За допомогою Wireshark відфільтрувати тільки ARP відповіді

3.За допомогою Wireshark відфільтрувати тільки ARP пакети у тунелі.

4.Запустити ICMP-пакети в іншу локальну мережу, яка відрізняється іншим діапазоном IP-адресов, знайдіть ці пакети у Wireshark.

5.Коли створено з’єднання PPTP тунелю, зробіть HTTP-запит і знайдіть цей пакет у аналізаторі Wireshark.

6.За допомогою Wireshark відфільтрувати тільки ICMP пакети у тунелі.

7.Знайдіть у дампі пакетів на який порт приходить з’єднання.

8.Змініть пароль на інший, спробуйте з’єднатися, занесіть основні пакети відмови з’єднання у протокол.

6.Зміст протоколу

1.Назва роботи.

2.Мета роботи.

3.Виконане домашнє завдання.

4.Результати виконання лабораторного завдання.

5.Висновки.

Звіт повинен містити дамп пакетів.

7.Список посилань

1.Hamzeh K. Point-to-Point Tunneling Protocol (PPTP). RFC 2637 / K. Hamzeh, G. Pall, W. Verthein, J. Taarud, W. Little and G. Zorn // IETF. – 1999. – 57 p.

2.Pall G. Microsoft Point-to-Point Encryption (MPPE). RFC 3078 / G. Pall and G. Zorn // IETF. – 2001. – 12 p.

3.Zorn G. Deriving Keys for use with Microsoft Point-to-Point Encryption (MPPE). RFC 3079 // IETF. – 2001. – 21 p.

4.Klein A. Attacks on the RC4 stream cipher // Designs, Codes and Cryptography 48

(3). – 2008. – РP. 269–286.

145

Лабораторна робота № 4

Дослідження з'єднання тунелю за протоколом L2TP з боку клієнта на базі операційної системи Windows

Мета роботи. Дослідити протокол L2TP тунелю, формат пакетів, етапів з'єднання та роз'єднання.

Ключові положення

1. Протокол тунелювання другого рівня L2TP

Протокол L2TP [1] увібрав у собі всі переваги PPTP та протоколу естафетної передачі на другому рівні від Cisco (L2F) [2]. Головні переваги L2TP в тому, що цей протокол дозволяє створювати тунель не лише в мережах IP, але і в таких, як ATM, X.25 та FRAME RELAY.

На відміну від протоколу PPTP, реалізація протоколу L2TP не використовує шифрування MPPE для PPP -датаграм. Служби шифрування протоколу L2TP працюють на основі IPsec в транспортному режимі. Комбінація протоко-

лів L2TP і IPsec називається L2TP/IPsec.

Необхідно, щоб протоколи L2TP і IPsec підтримувалися як VPN клієнтом, так і VPN сервером. Підтримка протоколу L2TP, як клієнта, вбудована в дистрибутивах UNIX/LINUX і операційних системах Windows Vista® і Windows XP; а підтримка протоколу L2TP для VPN сервера в операційних системах

UNIX/LINUX, Windows Server 2008/2003.

Інкапсуляція пакетів L2TP/IPsec виконується на двох рівнях. Перший рівень – інкапсуляція L2TP. До PPP кадру (IP датаграми) додаються заголовки

L2TP і UDP.

Табл. 1 Структура L2TP пакета IP

IP заголовок

UDP заголо-

L2TP заго-

PPP заголовок

PPP дані

 

вок

ловок

 

(IP датаграми)

Другий рівень – інкапсуляція IPsec. До даного повідомленя L2TP додаються заголовок і замикач протоколу ESP IPsec. Замикач перевірки достовірності IPsec забезпечує цілісність і перевірку достовірності повідомлення. У IP заголовку міститься початковий і кінцевий IP адреси, відповідні VPN клієнтові і VPN серверу.

Шифрування L2TP трафіка можливо за допомогою протоколу ESP IPsec. L2TP пакет без шифрування

 

 

IP заголо-

UDP заго-

L2TP за-

PPP заго-

PPP дані

 

 

 

 

 

вок

ловок

головок

ловок

(IP датаграми)

 

 

 

 

L2TP пакет з шифруванням

 

 

 

 

 

 

IP заго-

 

ESP заго-

UDP за-

 

L2TP за-

 

PPP заго-

 

PPP дані

ESP зами-

Замикач

ловок

 

ловок

головок

 

головок

 

ловок

 

(IP датагра-

кач IPSec

перевірки

 

 

IPSec

 

 

 

 

 

 

ми)

 

 

достовірнос-

 

 

 

 

 

 

 

 

 

 

 

 

ті IPSec

Рисунок 1 - Пакети L2TP з шифруванням та без шифрування

146

Повідомлення L2TP шифрується за стандартом шифрування даних DES/3DES, використовуючи ключі шифрування, отримані в процесі узгодження за протоколом IKE.

Табл. 2 Формат пакетів L2TP

0

1

2

 

 

3

4

5

6

7

8 9 10 11 12

13

14

15

16

 

17

18 19 20 21 22 23 24 25 26 27 28 29 30 31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

L

 

I

 

 

C

 

F

 

K

 

O

 

0

 

0

 

Версія

 

 

 

 

 

Розмір

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ідентифікатор тунелю

 

 

 

 

 

 

 

Ідентифікатор з' єднання

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ns

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Np

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AVP (8 байтів)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прапор T має значення для повідомлень управління і 0 - для інформаційних (payload). У повідомленнях управління, що йдуть за цим прапором 7 бітів мають значення 1001000, використовувані для забезпечення сумісності з інформаційними повідомленнями.

Прапор L встановлюється для пакетів, які містять поле розміру та показують загальну довжину прийнятого пакета. Цей прапор повинен встановлюватися для управляючих повідомлень.

Поля I і C зарезервовані і повинні мати нульові значення. Поля використовувалися для опцій, більше не підтримуваних протоколом L2TP.

Прапор F встановлюється для пакетів, у яких є присутніми поля Ns і Nr. Цей прапор повинен встановлюватися для повідомлень управління.

Поле K зарезервоване і повинне мати нульове значення.

Прапор 0 говорить про присутність поля Розмір зміщення (Offset Size) в інформаційних повідомленнях.

Версія - це трьохбітове поле вказує номер версії протоколу L2TP і для версії 1 має значення 2.

Загальний розмір повідомлення з урахуванням заголовка, AVP (Attribute - Value Pair - пара атрибут-значення) типу повідомлення і усіх додаткових AVP, пов'язаних з цим типом повідомлень, що управляють.

Ідентифікатор тунеля - вказує тунель, до якого відноситься повідомлення управління. Якщо від партнера ще не отримано повідомлення Assigned Tunnel ID (присвоєння ідентифікатора тунелю), це поле повинне мати нульове значення. Після отримання від партнера ідентифікатора тунелю в усі пакети повинне поміщатися це значення.

Ідентифікатор виклику - вказує на призначену для користувача сесію в тунелі, до якої має відношення це повідомлення управління. Якщо повідомлення не пов'язане з окремою сесією в тунелі (наприклад, повідомлення Stop Control Connection Notification), це поле повинне мати нульове значення.

Ns – номер переданого пакета.

Nr – номер останнього прийнятого пакета.

147

Інформаційні повідомлення L2TP використовують два додаткові поля перед полем AVP. Ці поля показані нижче.

Табл. 3 Додаткові поля в інформаційних повідомленнях L2TP

 

 

 

Розмір зміщення (16 бітів)

 

Заповнення (16 бітів)

 

 

 

Розмір зміщення. Це поле вказує число байтів від кінця заголовка L2TP до початку інформаційної частини повідомлення (payload). Якщо розмір зміщення дорівнює 0 або прапор O не встановлений, інформаційна частина повідомлення починається відразу після заголовка L2TP.

Поле "заповнювач" призначено для доповнення заголовка до цілого числа 32-бітових слів. Два останні поля ніколи не використовуються в заголовках повідомлень, що управляють.

Пари AVP використовуються для кодування типу повідомлень L2TP. Формат поля AVP показаний нижче.

Табл. 4 Формат поля AVP

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18 19 20 21 22 23 24 25 26 27 28 29 30 31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

М

 

Н

 

Резерв

 

 

 

 

Загальна довжина

 

 

 

 

Ідентифікатор фірми

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Атрибут

Значення

М - перші 6 бітів утворюють бітову маску, яка описує загальні атрибути AVP. Обов'язковий біт M використовується для контролю за обробкою нерозпізнаних AVP.

H - цей прапор служить для управління захованими (hidden) даними в полі значення AVP. Приховання даних можна використовувати для передачі конфіденційної інформації (наприклад, паролів) в AVP.

Загальна довжина - число октетів (з урахуванням самого поля довжини), що містяться в AVP. Поле довжини займає 10 бітів, дозволяючи передавати AVP розміром до 1024 октетів.

Ідентифікатор фірми - виділені IANA ідентифікатори SMI (Network Management Private Enterprise Code).

Атрибут - 16-бітове значення атрибута, значення якого визначається з урахуванням ідентифікатора фірми-виробника.

Значення - поле значення розміщується відразу ж після атрибута і займає октети пакета (загальний розмір пакету за вирахуванням шести октетів заголовка), що залишилися.

L2TP є протоколом Сеансового рівня та за замовчуванням використовує зареєстрований UDP -порт 1701.

2.Хід роботи

2.1.L2TP клієнт для Windows XP/2003 (вбудований в ОС)

148

Для того, щоб з ОС Windows можливо було підключатися до сервера LTP, в ній має бути присутнім Microsoft VPN Adapter. Розглянемо приклад підключення OC Windows XP, в ній цей драйвер встановлений за замовчуванням. Для створення VPN підключення необхідно виконати наступні кроки:

2.1.1Пуск->Панель управління->Мережні підключення->Створення нового підключення.

2.1.2Буде запущений майстер створення підключення.

2.1.3На другому кроці вибрати «Підключити до мережі на робочому місці».

2.1.4На наступному кроці «Підключення до віртуальної приватної мережі».

2.1.5Далі вказати назву підключення «ltp».

2.1.6Далі «Не набирати номер для попереднього підключення».

2.1.7Далі вказати IP адреса запущеного LTP сервера (192.168.0.122).

2.1.8Готово.

Логін та пароль спитати у викладача.

У налаштуваннях можливо замість автоматичного детектування типу

VPN вказати вручну – L2TP IPSec VPN.

3. Домашнє завдання

Вивчити ключові питання.

Підготувати протокол виконання лабораторної роботи. Привести приклад заголовка L2TP пакета.

Дати короткі письмові відповіді на контрольні питання.

4.Контрольні питання

1.У яких мережах може застосовуватися протокол L2TP ?

2.Які основні переваги протоколу L2TP ?

3. За яким протоколом відбувається шифрування у L2TP ?

4. Які основні стандарти шифрування застосовується у L2TP ?

5.Який за замовчуванням застосовується порт у L2TP тунелі ?

6.Застосовується МРРЕ шифрування у L2TP ?

7.Для чого застосовується AVP ?

8.Який максимальний розмір пакета AVP ?

5.Лабораторне завдання

1.Створіть з’єднання L2TP, але не підключайте.

2.Запустіть програмний аналізатор протоколів Wireshark.

3.Включіть режим захоплення пакетів.

4.Підключити з’єднання L2TP.

5.Пропінгуйте сервер.

6.Роз’єднати L2TP тунель.

7.Зупиніть режим захоплення пакетів в Wireshark.

8.Проаналізуйте пакети з’єднання та роз’єднання L2TP тунелю. Занесіть отримані результати до протоколу.

149

Варіанти завдань для виконання лабораторної роботи:

1.Знайдить у дампі пакетів, на який порт приходить з’єднання.

2.Змінить пароль на інший, спробуйте з’єднатися, занесіть основні пакети відмови з’єднання у протокол.

3.Змінить логін на інший, спробуйте з’єднатися, занесіть основні пакети відмови з’єднання у протокол.

4.Запустити ICMP-пакети в іншу локальну мережу, яка відрізняється іншим діапазоном IP-адресов, знайдіть ці пакети у Wireshark.

5.За допомогою Wireshark відфільтрувати тільки ARP пакети у тунелі.

6.За допомогою Wireshark відфільтрувати тільки ICMP пакети у тунелі.

7.Коли створено з’єднання L2TP тунелю зробіть HTTP-запит і знайдіть цей пакет у аналізаторі Wireshark.

8.За допомогою Wireshark відфільтрувати тільки ARP відповіді.

6.Зміст протоколу

1.Назва роботи.

2.Мета роботи.

3.Виконане домашнє завдання.

4.Результати виконання лабораторного завдання.

5.Висновки.

Звіт повинен містити дамп пакетів.

7.Список посилань

1.Townsley W. Layer Two Tunneling Protocol «L2TP». RFC 2661 / W. Townsley, A. Valencia // IETF. – 1999. – 80 p.

2.Valencia A. Cisco Layer Two Forwarding (Protocol) «L2F». RFC 2341 / A. Valencia, M. Littlewood, T. Kolar // IETF. – 1998. – 29 p.

150