Архитектура аутентификации в Windows
В ОС семейства Windows применялось несколько различных методов авторизации и аутентификации пользователей: SMB, NTLM, Novell, RADIUS, Kerberos и т.п. На сегодняшний день большинство этих методов представляют лишь исторический интерес. Современные методы авторизации и аутентификации пользователей RADIUS (EAP) и Kerberos являются открытыми промышленными стандартами и позволяют достичь любого необходимого уровня защиты информации с помощью дополнительных методов аутентификации. КриптоПро Winlogon - расширяет метод первоначальной аутентификации PKINIT протокола Kerberos. Дополнительную информацию по использованию аутентификации Kerberos в ОС семейства Windows можно найти по нижеследующим ссылкам:
- Аутентификация по протоколу Kerberos в Windows 2000
- Технический обзор системы безопасности Windows 2000
- Windows 2000 - Регистрация с использованием смарт-карт
Аутентификация по протоколу Kerberos в Microsoft® Windows®
В операционной системе Microsoft® Windows® 2000/XP/2003 аутентификация пользователей в домене производится по умолчанию с помощью протокола Kerberos. Использование этого стандарта создает надежную основу для взаимодействия между различными платформами и при этом значительно повышает безопасность сетевой аутентификации.
В Windows 2000/XP/2003 применяется последняя редакция протокола Kerberos версии 5 (RFC 4120). Безопасность системы обеспечивает клиент Kerberos с помощью интерфейса Security Support Provider Interface. Первоначальная проверка пользователя производится в рамках процесса Winlogon, которая обеспечивает единую регистрацию пользователей в системе. Центр распределения ключей Key Distribution Center (KDC) Kerberos интегрирован с другими службами безопасности Windows 2000/2003, установленными на контроллере домена. Учетные записи безопасности хранятся в базе данных службы каталогов Active Directory.
Windows для доступа с помощью смарт-карт использует сообщения PKINIT протокола Kerberos версии 5 (RFC 4120). КриптоПро Winlogon добавляет в PKINIT поддержку российских криптографических алгоритмов.
Несколько упрощая, можно сказать, что процесс аутентификации по протоколу Kerberos работает по принципу проверки и передачи учетных данных между клиентами и серверами. Вот как это происходит. Когда пользователь входит в домен Windows 2000/2003, операционная система находит сервер Active Directory и службу аутентификации Kerberos и передает ей учетные данные клиента. Для этого формируется запрос в специальном формате, часть которого зашифровывается с помощью ключа, полученного из введенного пользователем пароля.
Служба KDC (Key Distribution Center) Kerberos, называемая службой распространения ключей после проверки данных клиента, необходимых для подтверждения подлинности, выдает пользователю билет TGT (Ticket-Granting Ticket). Этот билет затем используется для идентификации клиента, когда он запрашивает последующие билеты Kerberos для получения доступа к сетевым ресурсам. Хотя это сложный процесс, участие пользователя заключается лишь во введении пароля при входе.
На приведенном ниже рис. 1 показано взаимоотношения между клиентом, центром KDC и сервером ресурсов, использующими протокол аутентификации Kerberos.
Рис. 1. Процесс аутентификации по протоколу Kerberos
Аутентификация с помощью смарт-карты
При регистрации с помощью смарт-карт используется пара, состоящая из личного и открытого ключей, которая хранится в памяти смарт-карты. Расширение протокола Kerberos, определяющее порядок применения открытых ключей при обмене по подпротоколу AS Exchange, предусматривает следующий порядок использования такой пары.
Открытая ее часть служит для шифрования сеансового ключа пользователя службой KDC, а личная – для расшифрования этого ключа клиентом.
Регистрация начинается с того, что пользователь вставляет свою смарт-карту в специальное считывающее устройство, подключенное к компьютеру. При соответствующей конфигурации Windows это равносильно сигналу SAS, то есть, одновременному нажатию клавиш CTRL+ALT+DEL. В ответ Winlogon направляет на настольную систему, динамически подключаемую библиотеку MSGINA, которая выводит на экран стандартное диалоговое окно регистрации. Правда, теперь пользователю нужно ввести только один параметр – персональный идентификационный номер PIN (Personal Identification Number).
Kerberos SSP клиентского компьютера направляет в службу KDC сообщение KRB_AS_REQ – первоначальный запрос на аутентификацию. В поле данных предварительной аутентификации этого запроса включается сертификат открытого ключа пользователя. KDC проверяет подлинность сертификата и извлекает из него открытый ключ, которым шифрует ключ сеанса регистрации. После этого он включает этот ключ вместе с билетом TGT в сообщение KRB_AS_REP и направляет его клиенту. Расшифровать сеансовый ключ сможет только тот клиент, у которого есть секретная половина криптографической пары, функции которой на этом заканчиваются. Вся дальнейшая связь между клиентом и службой KDC поддерживается на основе сеансового ключа. Никаких других отклонений от стандартного процесса регистрации и вхождения в сеть не требуется.
По умолчанию поставщик Kerberos, работающий на клиентском компьютере, в качестве данных предварительной аутентификации направляет в службу KDC зашифрованную метку времени. На системах же, конфигурация которых предусматривает регистрацию с применением смарт-карты, роль данных предварительной аутентификации отводится сертификату открытого ключа.
Поддерживаемые КриптоПро Winlogon ключевые носители
КриптоПро Winlogon Клиент поддерживает следующие типы смарт-карт:
- российские интеллектуальные карты (РИК1, Оскар) с использованием считывателей смарт-карт, поддерживающих протокол PS/SC (GemPlus GCR-410, Towitoko, Oberthur OCR126 и др.);
- электронный ключ с интерфейсом USB;
КриптоПро Winlogon KDC для хранения секретного ключа KDC может использовать любой ключевой носитель, поддерживаемый КриптоПро CSP или, для наилучшей защищённости, использовать Атликс HSM.
Использование КриптоПро Winlogon для интерактивной регистрации пользователей в домене Microsoft Windows обеспечивает аутентификацию пользователей на российских криптографических алгоритмах ГОСТ 28147-89, ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94.
При успешном прохождении процесса регистрации пользователь вместе с билетом TGT получает данные авторизации. Аутентифицированный и авторизованный пользователь получает доступ к разрешенным сервисам и серверам домена. Например, для доступа к локальному компьютеру домена, общим папкам других пользователей, серверу MS Exchange, ISA серверу без дополнительной аутентификации.
Возможная конфигурация изображена на рисунке 2.
Рис. 2. Возможная конфигурация защищенного домена
Microsoft ISA Server может быть настроен, например, для ограничение доступа пользователей домена во внешние сети. Для этого необходимо на рабочие места пользователей установить Firewall Client. А в параметрах брандмауэра установить обязательную аутентификацию клиентов внутренней сети и создать правило доступа/запрета доступа для необходимых клиентов (групп).
Для защиты трафика между сервером и клиентом может быть использован протокол КриптоПро TLS.
MS SQL Server также может быть настроен на использование протокола аутентификации Kerberos, так, что только прошедшие проверку пользователи получат доступ к серверу.
Если для подключения MS Outlook к MS Exchange серверу используется протокол exchange, аутентификация клиентов будет производиться по протоколу Kerberos. Дополнительно можно потребовать «Всегда запрашивать имя и пароль» - в этом случает будет отображаться окно ввода пароля/вставки смарт-карты на MS Windows XP и старше.
Также сертификаты и ключи со смарт-карты (при использовании соответствующего шаблона сертификатов, например, «пользователь со смарт-картой») могут быть использованы для ЭЦП и шифрования почтовых сообщений. (На MS Windows XP и старше – устанавливаются в хранилище автоматически при вставке смарт-карты).
Для настройки серверов функционирующих под управлением других ОС, таких как семейство Unix (Solaris, Linux, FreeBSD), следует:
-
Настроить получение учётных данных пользователя из Active Directory;
-
Настроить получение результатов первоначальной аутентификации по протоколу Kerberos;
-
Настроить прикладные сервера на использование GSS-API (или Kerberos);