Материал: Лекция4 - идент и аут в windows

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

11

Лекция №4

Тема: " Идентификация и аутентификация в операционных системах Windows"

Вопросы:

1. Этапы идентификации и аутентификации пользователя, реализуемые ОС Windows.

2. Протоколы аутентификации Windows.

1.Этапы идентификации и аутентификации пользователя, реализуемые ос Windows

Аутентификация представляет собой один из компонентов любой компьютерной системы управления доступом. Как показано на рисунке 1, системы управления доступом обеспечивают идентификацию, аутентификацию, авторизацию и отчетность.

Рисунок 1. Механизмы управления доступом и аутентификация в Windows

1. Идентификация

Это первый этап входа в КС. Как известно, на этом этапе вводится имя пользователя КС (логин).

При этом ОС (а именно, процесс Winlogon, отвечающий за вход в КС и выход из неё) создает уникальный идентификатор пользователя (SID), представляющий собой набор данных, который уникально идентифицирует объект безопасности (пользователя, группу, компьютер, учетную запись службы).

Пример.

S-1-5-21-1463437245-1224812800-863842198-1128

1 - №версии;

5 – код агента ОС (назначающей SID);

Четыре кода субагентов-попечителей;

1128 – RID или средство создания уникальных SID.

SID назначается компьютеру при установке ОС. Далее Winlogon назначает SID локальным учетным записям на данном компьюторе.

SID(ЛУЗ) = SID (К) + RID пользователя.

RID = 500 – администратор;

RID = 501 – гость;

RID = 1000, 1001….. – пользователи.

Процесс Winlogon создает уникальный локальный SID для пользователя. Если вход пользователя прошел успешно, этот SID будет включен в маркер доступа.

Маркер доступа (МД) – идентификатор контекста защиты процесса или потока. Он наследуется всеми процессами, запущенными от имени пользователя.

Для защиты от НСД используются два элемента МД:

  1. SID пользователя и SIDы групп, в которые входит пользователь;

  2. Список привилегий (прав), сопоставленных с маркером.

2. Аутентификация

После того как субъект безопасности вводит с клавиатуры необходимую для идентификации информацию (например, имя пользователя), он должен ввести с клавиатуры или представить частную информацию для аутентификации (например, пароль или PIN-код).

В Windows субъект безопасности вводит эту информацию на экране регистрации с помощью программ Microsoft Graphical Identification and Authentication DLL (msgina.dll) и Winlogon.exe. Протокол аутентификации и механизм системы шифруют представленную информацию на персональном компьютере и передают запрос аутентификации.

Службой аутентификации Windows может быть база данных SAM или Active Directory.

База данных SAM обслуживает локальные процедуры регистрации и регистрацию на контроллерах домена Windows NT 4.0. Эта база обязательно имеется на каждом компьютере с операционной системой Windows. В ней хранится вся информация, используемая для аутентификации пользователей Windows при интерактивном входе в систему и при удаленном доступе к ней по компьютерной сети.

База данных SAM представляет собой один из кустов (hive) системного реестра (registry) Windows. Этот куст принадлежит ветви (subtree) HKEY_LOCAL_MACHINE и называется SAM. Физически база данных SAM располагается в каталоге \wmnt_root\System32\ConfIg (winnt_root — условное обозначение каталога с системными файлами Windows) в отдельном файле, который тоже называется SAM.

Информация в базе данных SAM хранится в основном в двоичном виде. Доступ к ней обычно осуществляется через диспетчер учетных записей. Изменять записи, находящиеся в базе данных SAM, при помощи программ, позволяющих напрямую редактировать реестр Windows (REGEDT или REGEDT32), не рекомендуется. По умолчанию этого и нельзя делать, т. к. доступ к базе данных SAM запрещен для всех без исключения категорий пользователей операционной системы Windows.

Именно в учетных записях базы данных SAM находится информация о пользовательских именах и паролях, которая необходима для идентификации и аутентификации пользователей при их интерактивном входе в систему. Как и в любой другой современной многопользовательской операционной системе, эта информация хранится в зашифрованном виде. В базе данных SAM каждый пароль пользователя представлен в виде двух 16-байтовых последовательностей (хешей), полученных разными методами

Active Directory аутентифицирует запросы в Windows 2000/XP/Vista или доменах более поздних версий этой операционной системы. Протокол аутентификации используется для транспортировки запросов аутентификации и последующих транзакций между экраном регистрации и службой аутентификации. Чуть ниже каждый протокол аутентификации будет рассмотрен отдельно.

Рис.2. Компоненты, участвующие в процессе аутентификации.

При интерактивном входе в систему (в отличие от входа через сеть) происходит взаимодействие с процессами Winlogon, Lsass, одним или несколькими пакетами аутентификации, а также SAM или Active Directory. Пакеты аутентификации (authentication packages) — это DLL-модули, выполняющие проверки, связанные с аутентификацией.

Windows использует два стандартных пакета аутентификации при интерактивном входе: Kerberos и MSV1_0.

Пакетом аутентификации Windows для интерактивного входа в домен является Kerberos.

Пакет MSV1_0 используется для интерактивного входа на локальные компьютеры.

Таким образом, пакетом аутентификации по умолчанию в автономной системе Windows является пакет — MSV1_0 (\Windows\System32\Msvl_0.dll).

Пакет аутентификации MSV1_0 принимает имя пользователя и хешированную версию пароля и посылает базе SAM запрос на получение информации из учетной записи, включая пароль, группы, в которые входит пользователь, и список ограничений по данной учетной записи. Сначала MSV1_0 проверяет ограничения, например разрешенное время или типы доступа. Если ограничения из базы данных SAM запрещают регистрацию пользователя в это время суток, MSV1_0 возвращает LSA статус отказа.

Далее MSV1_0 сравнивает хешированный пароль и имя пользователя с теми, которые хранятся в SAM.

Winlogon — процесс, отвечающий за взаимодействие с пользователем.

Он координирует вход, запускает первый процесс при входе в систему данного пользователя, обрабатывает выход из системы и управляет множеством других операций, имеющих отношение к защите, — вводом паролей при регистрации, сменой паролей, блокированием и разблокированием рабочих станций и т. д. Процесс Winlogon должен обеспечить невидимость операций, связанных с защитой, для других активных процессов. Так, Winlogon гарантирует, что в ходе этих операций недоверяемый процесс не сможет перехватить управление рабочим столом и таким образом получить доступ к паролю.

Winlogon получает имя и пароль пользователя через Graphical Identification and Authentication (GINA) DLL Стандартная GINA — \Windows\System32\ Msgina.dll. Msgina выводит диалоговое окно для входа в систему.

Позволяя заменять Msgina другими GINA-библиотеками, Windows дает возможность менять механизмы идентификации пользователей. Например, сторонний разработчик может создать GINA для поддержки устройства распознавания отпечатков пальцев и т.д.

Winlogon — единственный процесс, который перехватывает запросы на регистрацию с клавиатуры. Получив имя и пароль пользователя от GINA, Winlogon вызывает LSASS для аутентификации этого пользователя. Если аутентификация прошла успешно, процесс Winlogon активизирует оболочку. Схема взаимодействия между компонентами, участвующими в процессе регистрации, показана на слайде.

3 Авторизация

Если служба аутентификации удостоверяет комбинацию идентификатора и «секретных» данных аутентификации, то подлинность субъекта безопасности считается успешно подтвержденной.

Затем система собирает информацию о членстве субъекта безопасности (т. е. пользователя) в группах. Нередко пользователь принадлежит к нескольким точно определенным группам — локальным (Local), доменным (Domain Local), глобальным (Global) и универсальным (Universal) — в результате обычных процедур назначения членства.

Прямо или косвенно система собирает все сведения о членстве в группах, чтобы получить информацию о разрешениях безопасности.

Сразу после аутентификации система собирает идентификаторы SID учетной записи и сведения о членстве в группах в объекте, называемом маркером доступа (Access Token).

Если пользователю нужно получить доступ к объекту (например, файлу, папке, принтеру, разделу реестра), защищенному разрешениями NTFS, то процесс (например, Windows Explorer), выступающий от имени пользователя, предоставляет свой маркер доступа.

Каждый объект NTFS располагает списком элементов управления доступом Access Control Entry (ACE), которые, в сущности, представляют собой знакомые разрешения NTFS (например, Allow Read – разрешить чтение, Allow Write – разрешить запись). Набор элементов ACE, назначенных пользователям и группам, составляет список управления доступом Access Control List (ACL) данного объекта.

Маркер доступа, содержащий учетную запись и группы, с которыми связан пользователь, определяет эффективные разрешения пользователя. Процесс авторизации заключается в разрешении или отказе в доступе к определенному объекту на основе сравнения маркера доступа с ACL объекта. Авторизацию обеспечивает Security Reference Monitor (справочный монитор безопасности) системы Windows .

4.Отчетность

Отчетность (Accounting). Если в Windows режим аудита активизирован, то система сохраняет событие аутентификации в журнале Security, и это последний компонент системы управления доступом – отчетность. Большинство сложных событий начальной регистрации и последующей авторизации происходят за несколько секунд и скрыты от пользователя. Все сложные операции возлагаются на протокол аутентификации.

Локальная и доменная регистрация

При регистрации пользователя одна из первых задач Windows – определить, относится ли процедура только к локальной машине или к учетной записи домена. Пользователи, регистрирующиеся от имени локальной учетной записи, имеют доступ только к ресурсам своего компьютера и только если информация об учетной записи пользователя содержится в локальной базе данных SAM. Если пользователям нужно обратиться к ресурсам на удаленном компьютере без аутентификации в домене, то их учетные записи должны быть продублированы в локальной базе данных SAM каждого доступного компьютера. Учетные записи в каждом компьютере-участнике должны быть синхронизированы (одинаковые имена регистрации, пароли и сроки действия учетных данных на всех машинах). В противном случае положение значительно усложняется. Трудно обслуживать одноранговые (P2P) сети средних размеров, в которых применяются только локальные процедуры регистрации.

На контроллер домена не распространяется требование синхронизации нескольких учетных записей пользователей на разных компьютерах. При доменной аутентификации компьютеры, зарегистрированные в домене, отыскивают контроллеры домена, чтобы предъявить учетные данные доменной учетной записи пользователя при запросах аутентификации. Таким образом, если удаленный пользователь пытается получить доступ к локальному ресурсу какой-нибудь машины, то этот компьютер просит контроллер домена проверить аутентичность запрашивающего пользователя. Учетные записи пользователя домена располагаются только на контроллере домена и создаются лишь один раз. Любой компьютер-участник, которому нужно удостоверить учетную запись в домене, может обратиться к контроллерам домена в любое время. Проблемы синхронизации имен регистрации, паролей и сроков их действия не возникает, так как учетные данные и управление учетной записью осуществляются только в одном месте – на контроллере домена. Независимо от типа регистрации (локальной или доменной), Windows должна аутентифицировать запрос пользователя.

2. Протоколы аутентификации Windows Задачи протоколов аутентификации Windows

Протокол аутентификации должен выполнять по крайней мере две задачи. Во-первых, он должен безопасно передавать транзакции от запросчика в базу данных аутентификации. Во-вторых, он должен безопасно и надежно хранить пароль.

Протокол аутентификации должен защитить введенную пользователем информацию при пересылке в базу данных аутентификации (т.е. SAM или AD). Для этого протокол подписывает, скрывает или шифрует транзакцию. Кроме того, используется временная метка, чтобы взломщик не мог воспользоваться учетными данными в будущем. Чтобы не позволить взломщику извлечь пароль пользователя из базы данных, протокол должен обеспечить скрытное хранение паролей в базе данных аутентификации.

Протоколы аутентификации обеспечивают защиту путем хранения паролей в скрытой форме (обычно хешированной) в базе данных аутентификации и путем полного запрета на передачу паролей между запросчиком и базой данных аутентификации даже в скрытой форме.

Процесс запрос-ответ выглядит следующим образом:

  1. Компьютер получает данные для идентификации и аутентификации от пользователя и запрашивает аутентификацию на соответствующем сервере.

  2. Сервер аутентификации генерирует случайное произвольное значение (называемое запросом – challenge) и посылает его запросчику.

  3. Запросчик получает запрос и производит над ним и скрытой формой пароля математические операции, а затем передает результат (называемый ответом – response) серверу аутентификации.

  4. Сервер аутентификации также выполняет математические манипуляции с запросом методом, идентичным используемому на рабочей станции, и сравнивает результат с полученным ответом. Если результаты совпадают, то запросчик считается успешно аутентифицированным.

В протоколах аутентификации используется процесс запрос-ответ, поэтому пароль никогда не передается через сеть.

Протоколы аутентификации Windows

В Windows применяются следующие протоколы аутентификации: LAN Manager, NT, NTLM, NTLMv1, NTLMv2 и Kerberos.

Основными протоколами сетевой аутентификации в ОС Windows являются: Kerberos, NTLMv1 и NTLMv2. Протокол Kerberos применяется только для аутентификации в домене Active Directory. Он является международным стандартом и достаточно хорошо описан.

По умолчанию все компьютеры с операционными системами Windows 2000 и более новыми операционными системами (XP/Vista/Seven/Server 2003-2008 R2) совместимы со всеми протоколами аутентификации.

Передавая соответствующие команды, другие рабочие станции и сервера могут выбирать протокол для обработки запроса аутентификации.

Протокол Kerberos может использоваться только клиентами начиная с Windows 2000 (и более новыми) при обращениях в домены Windows 2000 (и выше).

Исследования в области безопасности показали, что более старые протоколы (LM, NT и NTLM) уязвимы в случае прослушивания и в случае атак с применением «грубой силы».

Поэтому, рекомендуется использовать только протоколы Kerberos и NTLMv2. Чтобы убедиться в правильности этого, следует оценить возможности каждого протокола.