Використання сигнатур для передачі NCP-пакетів
Необхідність застосування сигнатури (підпису) NCP-пакетів пов'язана зі скандалом, що розігрався 1992 року. Тоді голландський студент запропонував простий спосіб "зламування" файлового сервера NetWare. Цей спосіб ґрунтується на паралельній роботі хакера та користувача, який має необхідні права (рисунок 2.55).
Мал. 2.55. Організація несанкціонованого доступу до файлового сервера
На робочій станції хаккера (hacker) функціонує програма, яка перехоплює пакети, що передаються шиною мережі. Під час формування пакета програма хаккера виконує такі действия:
- переписує в заголовок формованого IPX-пакета заголовок перехопленого пакета,
- записує у полі даних потрібну команду.
Підпис NCP-пакета (спеціальне поле в цьому пакеті) унеможливлює паралельну роботу хакера та користувача. Підпис (сигнатура) пакета - це шифр, формування якого використовується контрольна сума вмісту пакета і випадкове число Nonce. Шифр створюється за допомогою відкритого ключа. Важливо, що сигнатура змінюється у кожному пакеті. Спрогнозувати послідовність підписів практично неможливо.
NCP-пакети можуть підписуватись і робочими станціями, і файловим сервером. Для ініціювання включення підпису до NCP-пакетів адміністратор повинен виконати такі дії (для NetWare 3.12 та 4.х):
1. З консолі файлового сервера необхідно ввести команду SET NCP Packet Signature Option = рівень (за замовчуванням 1)
Можна задати один із наступних рівнів:
- 0 - сервер не підписує пакет,
- 1 - сервер підписує пакет, якщо цього вимагає клієнт (рівень на станції більше або дорівнює 2),
- 2 - сервер підписує пакет, якщо клієнт також здатний це зробити (рівень настанції більше або дорівнює 1),
- 3 – сервер підписує пакет і вимагає цього від усіх клієнтів (інакше підключення до мережі неможливе).
2. На робочій станції розділ Netware DOS Requester файлу net.cfg необхідно включити рядок: Signature Level = рівень (за замовчуванням 1)
Можна задати один із наступних рівнів:
- 0 - клієнт не підписує пакет,
- 1 - клієнт підписує пакет, якщо цього вимагає сервер (рівень на сервері більший або дорівнює 2),
- 2 - клієнт підписує пакет, якщо сервер також здатний це зробити (рівень на сервері більший або дорівнює 1),
- 3 – клієнт підписує пакет і вимагає цього від усіх серверів (інакше підключення до мережі неможливе).
У таблиці 2.15 наведено різні поєднання рівнів на сервері та робочій станції, а також варіанти підпису пакета.
Таблиця 2.15. Варіанти підпису пакета
| Якщо | рівень на сервері = 0 | = 1 | = 2 | = 3 |
| рівень на станції = 0 | - | - | - | N |
| = 1 | - | - | + | + |
| = 2 | - | + | + | + |
| = 3 | N | + | + | + |
Тут прийняті такі позначення:
- + - пакети підписуються,
- - - пакети не підписуються,
- N – робоча станція не підключається до мережі.