Именно в учетных записях базы данных SAM находится информация о
пользовательских именах и паролях, которая необходима для идентификации и
аутентификации пользователей при их интерактивном входе в систему. Как и в любой
другой современной многопользовательской операционной системе, эта информация
хранится в зашифрованном виде. В базе данных SAM каждый пароль пользователя
обычно бывает представлен в виде двух 16-байтовых последовательностей,
полученных разными методами.
При использовании первого метода строка символов пользовательского пароля
хэшируется с помощью функции MD4. В итоге из символьного пароля, введенного
пользователем, получается
16-байтовая последовательность — хэшированный пароль Windows NT. Данная
последовательность затем шифруется по DES-алгоритму5, и результат шифрования
сохраняется в базе данных SAM. При этом в качестве ключа используется так
называемый относительный идентификатор пользователя (Relative Identifier,
RID), который представляет собой автоматически увеличивающийся порядковый номер учетной
записи данного пользователя в базе данных SAM.
Для совместимости с другим программным обеспечением корпорации Microsoft (Windows
for Workgroups, Windows 95/98 и Lan Manager) в базе данных SAM хранится также
информация о пароле пользователя в стандарте Lan Manager. Для ее формирования
используется второй метод. Все буквенные символы исходной строки
пользовательского пароля приводятся к верхнему регистру, и, если пароль содержит
меньше 14 символов, то он дополняется нулями. Из каждой 7-байтовой половины
преобразованного таким образом пароля пользователя отдельно формируется ключ для
шифрования фиксированной 8-байтовой последовательности по DES-алгоритму.
Полученные в результате две 8-байтовые половины хэшированного пароля Lan Manager
еще раз шифруются по DES-алгоритму (при этом в качестве ключа используется RID
пользователя) и помещаются в базу данных SAM.
|