Принципы аутентификации по протоколу Kerberos. Kerberos и PKINIT. Часть 2

В операционных системах Windows 2000/2003/2008 используются расширения протокола Kerberos, повышающие уровень безопасности процедуры аутентификацию клиентов. Расширение PKINIT предоставляет возможность использовать асимметричные криптографические алгоритмы, появилась возможность интерактивной регистрации пользователя с помощью микропроцессорных карточек (смарт карты, USB-ключи и т. п.).

В основу расширений, обеспечивающих аутентификацию с открытым ключом, положена спецификация PKINIT. Существуют способы интеграции шифрования на основе открытого ключа в протокол Kerberos. В сущности, эти методы не преобразовывают среду Kerberos в архитектуру с с полностью автономной аутентификацией (процесс всегда будет зависеть от присутствия KDC), однако они исключают необходимость в коллективно используемом секрете, основанном на пароле многократного применения.

Рассмотрим методику, называемую PKINIT (Public Key Initialization — инициализация открытого ключа). PKINIT использует пару открытого ключа пользователя в специальной версии процесса предаутентификации. Пользователь регистрируется в своей рабочей станции и предъявляет свой закрытый ключ. Рабочая станция связывается с KDC, посылая предаутентификационный запрос на получение TGT. В запросе содержится обычная информация и копия сертификата открытого ключа пользователя. Запрос подписывается цифровой подписью, получаемой с использованием закрытого ключа пользователя.

Получив запрос, KDC сначала пытается проверить достоверность сертификата пользователя:

    • может ли сертификат быть использован для интерактивного доступа в систему;

    • сертификат не был отозван;

    • проверяется вся иерархия удостоверяющих центров;

    • сертификат должен быть выпущен УЦ, известным KDC, иначе он не будет принят.

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

Проверив достоверность предуатентификационных данных, КDС ищет в службе каталога Microsoft Active Directory Domain Services учетную запись пользователя по значению имени UPN (User Principal Name) пользователя, которое указано в поле Subject Alternative Name (альтернативное имя владельца) сертификата. На основании информации, хранящейся в найденной учетной записи, KDC формирует билет ТGТ таким же образом, как при стандартном режиме аутентификации Kerberos, который мы рассмотрели в первой части.

Однако для защиты сгенерированного сеансового ключа KDC использует открытый ключ пользователя, подписывает ответ, используя свой закрытый ключ, а также включает в ответ свой сертификат.

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

Использование полученного билета ТGТ и все дальнейшее взаимодействие клиента с KDC происходят по стандартному протоколу Kerberos.

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

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

Закрытый ключ ей не понадобится до следующей регистрации в системе.

Методика PKINIT позволяет реализовать двухфакторную аутентификацию пользователя на этапе предаутентификации протокола Kerberos – пользователь должен иметь смарт карту (с хранящимися в памяти карты сертификатом и закрытым ключом), и знать ее PIN-код (чтобы иметь возможность использовать закрытый ключ для формирования цифровой подписи). Следует отметить, что закрытый ключ и сертификат обычно хранятся в разных областях памяти смарт карты.

Таким образом, использование смарт карт и цифровых сертификатов стандарта Х.509 позволяет усилить функции безопасности ОС семейства Microsoft Windows за счет:

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

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

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

Продолжение следует…

Автор статьи: Леонид Шапиро