Необходимость применения сигнатуры (подписи) NCP-пакетов связана со скандалом, разыгравшимся в 1992 году. Тогда голландский студент предложил простой способ "взламывания" файлового сервера NetWare. Этот способ основывается на параллельной работе хаккера и пользователя, имеющего требуемые права (рисунок 2.55).
Рис. 2.55. Организация несанкционированного доступа к файловому серверу
На рабочей станции хаккера (hacker) функционирует программа, которая перехватывает пакеты, передаваемые по шине сети. При формировании пакета программа хаккера выполняет следующие действия:
Далее пакет посылается на файловый сервер. Файловый сервер пересылает адрес станции hacker в поле ImmAddress блока ECB и использует данные заголовка пакета IPX, чтобы определить номер соединения и возможность выполнения команды. Но в заголовке пакета хаккера записан адрес пользователя (адрес Admin), который имеет требуемые права. Поэтому команда хаккера выполняется.
При формировании сетевым адаптером заголовка ответного кадра адрес станции, куда непосредственно передаётся кадр, выбирается из поля ImmAddress блока ECB. Т. е. станция hacker воспринимается файловым сервером как маршрутизатор или мост. Напомним, что адрес конечной станции-получателя хранится в заголовке пакета IPX (в данном случае это адрес Admin, хотя для хаккера это не имеет значения). Таким образом, ответ посылается на станцию hacker, где и обрабатывается.
Подпись NCP-пакета (специальное поле в этом пакете) делает невозможным параллельную работу хаккера и пользователя. Подпись (сигнатура) пакета - это шифр, для формирования которого используется контрольная сумма содержимого пакета и случайное число Nonce. Шифр создаётся с помощью открытого ключа. Важно отметить, что сигнатура изменяется в каждом пакете. Спрогнозировать последовательность подписей практически невозможно.
NCP-пакеты могут подписываться и рабочими станциями, и файловым сервером. Для инициирования включения подписи в NCP-пакеты администратор должен выполнить следующие действия (для NetWare 3.12 и 4.х):
1. С консоли файлового сервера необходимо ввести SET-команду
SET NCP Packet Signature Option = уровень (по умолчанию 1)
Можно задать один из следующих уровней:
2. На рабочей станции в раздел Netware DOS Requester файла net.cfg необходимо включить строку:
Signature Level = уровень (по умолчанию 1)
Можно задать один из следующих уровней:
В таблице 2.15 перечислены различные сочетания уровней на сервере и рабочей станции, а также варианты подписи пакета.
Таблица 2.15. Варианты подписи пакета
Если | уровень на сервере = 0 | = 1 | = 2 | = 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
уровень на станции = 0 | - | - | - | N | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= 1 | - | - | + | + | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= 2 | - | + | + | + | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= 3 | N | + | + | + |
Здесь приняты следующие обозначения :