Доступ к ресурсам

Доступ к ресурсам. Потоки thread, отдельные ветви выполнения процесса должны предоставлять токен доступа при каждой попытке доступа к ресурсу.

Потоки получают токены доступа от родительских процессов при своем создании. Пользовательское приложение, например, обычно получает свой токен доступа от процесса WinLogon. Процесс WinLogon запускается от возбужденного пользователем прерывания прерывания клавиатуры Ctrl Alt Del и может создать новый токен доступа, запрашивая или локальный диспетчер учетных записей безопасности SAM , или Directory Services Agent агент служб каталога, DSA на контроллере домена Active Directory.

При помощи этого метода каждый поток, запущенный после входа пользователя в систему, будет иметь токен доступа, представляющий пользователя. Поскольку потоки пользовательского режима должны всегда предоставлять этот токен для доступа к ресурсам, в обычных обстоятельствах не существует способа обойти безопасность ресурсов Windows 2000. Основу безопасности Windows 2000 образует перемещаемый вход в систему mandatory logon. В отличие от других сетевых систем, пользователь ничего не может сделать в Windows 2000, не предоставив имя учетной записи пользователя и пароль.

Хотя можно выбрать автоматический вход в систему с идентификационными данными, предоставляемыми реестром, вход в систему при помощи учетной записи пользователя все равно происходит. Windows 2000 требует нажатия Ctrl ALT Del для входа в систему, и это одна из причин, по которым Windows 2000 считается безопасной системой. Поскольку компьютер обрабатывает нажатие Ctrl ALT Del как аппаратное прерывание, фактически не существует способа, при помощи которого опытный программист мог бы заставить эту комбинацию клавиш делать что-либо еще, не переписывая операционную систему.

Поскольку токен доступа передается новому потоку во время его создания, то после входа пользователя в систему в дальнейшем нет необходимости обращаться для аутентификации к локальной базе данных SAM или к Active Directory на контроллере домена. При локальном входе пользователя в систему Windows 2000 проходит через следующие этапы. 1. Пользователь нажимает Ctrl A1t Del, что вызывает аппаратное прерывание, активизирующее процесс WinLogon. 2. Процесс WinLogon представляет пользователю приглашение ко входу в систему с полями для имени учетной записи и пароля. 3. Процесс WinLogon отправляет имя учетной записи и зашифрованный пароль локальным средствам безопасности LSA . Если учетная запись локальна для этого компьютера Windows 2000, LSA запрашивает диспетчер учетных записей безопасности SAM локального компьютера Windows 2000 в другом случае LSA запрашивает контроллер домена того домена, в который входит компьютер. 4. Если пользователь представил допустимые имя пользователя и пароль, LSA создает токен доступа, содержащий SID учетной записи пользователя и идентификаторы SID для групп, в которые входит пользователь.

Токен доступа также получает LUID, который будет описан далее в этой главе в разделе Права или разрешения. Токен доступа затем передается обратно процессу WinLogon. 5. Процесс WinLogon передает токен доступа подсистеме Win32 вместе с запросом на создание процесса входа в систему для пользователя. 6. Процесс входа в систему устанавливает окружение пользователя, включая запуск Windows Explorer и отображение фона и значков рабочего стола. 4.3.