Необходимость применения сигнатуры (подписи) 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 | + | + | + |
Здесь приняты следующие обозначения :