Киберугрозы становятся всё более изощренными, а злоумышленники активно атакуют пользователей и компании, поэтому надёжная аутентификация становится всё более востребована бизнесом.
В статье рассказываем о сетевом протоколе аутентификации Kerberos – какие у него особенности, как он охраняет безопасность и каким образом реализуется в MultiDirectory – российской службе каталогов от компании МУЛЬТИФАКТОР.
Что такое Kerberos и где он используется
Kerberos – это сетевой протокол аутентификации, разработанный специально, чтобы обеспечивать безопасность в незащищённых сетях. Он проверяет удостоверения пользователей или узлов с помощью системы цифровых «билетов». Протокол использует криптографию с секретным ключом и доверенную третью сторону. Так ему удаётся эффективно проверять личности пользователей и аутентификации клиент-серверных приложений.
Основные отличия Kerberos от других протоколов:
- Kerberos использует шифрование, не передаёт пароли по сети в явном виде. Это минимизирует риск, что учётные данные перехватят.
- В качестве точки доверия используется централизованный сервер (Key Distribution Center, KDC), который обеспечивает высокий уровень контроля над аутентификацией.
- Kerberos позволяет пользователям аутентифицироваться один раз для доступа к нескольким сервисам, является единой точкой входа. Это позволяет реализовать Single Sign-On (SSO), что бывает особенно удобно для корпоративных сред.
- Есть возможность интеграции с различными системами и приложениями.
Сегодня Kerberos является одним из самых используемых сетевых протоколов аутентификации – он интегрирован в большинство популярных операционных систем. Его часто применяют в корпоративных и государственных организациях для управления доступом к ресурсам, различным сервисам и приложениям, например к сетевым шарам, базам данных, веб-сервисам, почтовым службам.
Как работает Kerberos
Название протокола происходит от имени трёхглавого пса Цербера из греческой мифологии. Трём головам Цербера в протоколе соответствуют три участника безопасной связи:
— клиент;
— сервер;
— центр распределения ключей Kerberos (KDC), который выдаёт «билеты».
«Билет» Kerberos – это цифровой сертификат. Его выдаёт и шифрует с помощью ключа сервер аутентификации, с помощью чего узлы безопасно проверяют подлинность друг друга. Этот процесс называется взаимной аутентификацией. Она состоит из трёх этапов:
1. Аутентификация клиента.
Клиент отправляет запрос на аутентификацию в AS (Authentication Server), включая свой идентификатор → AS проверяет данные и, если всё в порядке, отправляет клиенту «билет» (TGT – Ticket Granting Ticket), зашифрованный ключом клиента.
2. Получение «билета» для службы.
Клиент использует TGT для запроса «билета» у TGS (Ticket Granting Server) для доступа к конкретной службе → TGS проверяет TGT → создаёт «билет» для запрашиваемой службы → отправляет его клиенту.
3. Доступ к службе.
Клиент отправляет «билет» службы и запрос на доступ к самой службе → служба проверяет «билет» и, если он действителен, предоставляет доступ.
Запрос и выдача «билетов» Kerberos происходят прозрачно для конечного пользователя. И так как все аутентификации проходят через KDC, можно централизованно управлять доступом к ресурсам и контролировать его.
Как Kerberos интегрируется с внешними системами
Обычно для работы с Kerberos сервисы используют интерфейс GSS-API (Generic Security Services API) – общий программный интерфейс сервисов безопасности.
Интеграция Kerberos с внешними системами основывается на использовании доверенных «билетов» и принципалов (principals). Основные этапы взаимодействия выглядят так:
1. Создание принципалов.
Для внешнего сервиса создаётся уникальный сервис-принципал (например, HTTP/server.example.com@EXAMPLE.COM), который регистрируется в базе данных Kerberos (KDC).
- Для сервиса генерируется ключ (keytab), который хранится на сервере и используется для проверки подлинности запросов.
- Пользователи имеют свои собственные принципалы (например, user@EXAMPLE.COM), которые связаны с их учётными записями в MultiDirectory.
2. Получение TGT (Ticket Granting Ticket).
Пользователь вводит свои учётные данные, например когда входит в операционную систему. Эти данные используются для аутентификации с KDC:
- Клиент отправляет зашифрованный запрос с использованием пароля пользователя.
- KDC проверяет учётные данные и возвращает зашифрованный TGT, который содержит информацию о пользователе и имеет срок действия.
- TGT хранится в кеше «билетов» клиента и используется для последующих запросов.
3. Запрос TGS (Ticket Granting Service).
Когда пользователь пытается получить доступ к внешнему сервису (например, веб-серверу):
- Клиент отправляет запрос к KDC, предоставляя TGT информацию о запрашиваемом сервисе (принципале сервиса).
- KDC проверяет TGT и генерирует «билет» для сервиса (Service Ticket).
- «Билет» зашифрован ключом сервиса, чтобы гарантировать, что только данный сервис может его расшифровать.
4. Аутентификация с сервисом.
Клиент отправляет Service Ticket сервису вместе с запросом.
- Сервис расшифровывает «билет», используя свой ключ (keytab), и проверяет подпись.
- Если «билет» действителен, сервис предоставляет доступ пользователю.
Все «билеты» Kerberos имеют отметку времени, действуют ограниченный период и только в текущем сеансе. В результате вероятность того, что злоумышленник сможет использовать скомпрометированный «билет» для доступа к системе, сводится к минимуму. При необходимости пользователь может запросить продление TGT до истечения срока его действия и не вводить пароль повторно.
Как Kerberos интегрирован в MultiDirectory
MultiDirectory – служба каталогов, предназначенная для централизованного хранения и управления информацией о пользователях, ролях и ресурсах в организации. Сервис обеспечивает процессы аутентификации и авторизации, а также поддерживает мультифакторную аутентификацию для повышения безопасности.
Ранее MultiDirectory поддерживала только протокол LDAP, но позже к нему добавился Kerberos. Он эффективно предотвращает утечку паролей и других конфиденциальных данных, которые люди пересылают друг другу. Кроме того, протокол в целом позволяет охватить больший круг систем, с которыми совместима служба каталогов.
Технически интеграция Kerberos в MultiDirectory реализована таким образом:
- MultiDirectory включает встроенный Key Distribution Center, работающий на базе MIT Kerberos.
- Kerberos разворачивается в виде отдельного Docker-контейнера, управление ведётся через API.
- Управлять пользователями и сервис-принципалами можно через веб-интерфейс MultiDirectory. Это облегчает конфигурацию – нет необходимости работать с командной строкой.
- В качестве базы данных Kerberos использует LDAP-каталог MultiDirectory.
- Специальные сервисы синхронизируют учётные данные в Kerberos и LDAP, что исключает необходимость ручного вмешательства.
Kerberos обеспечивает безопасность аутентификации и SSO, а MultiDirectory управляет авторизацией и политиками доступа. Например:
- пользователь аутентифицируется через Kerberos и получает «билет» TGT (Ticket Granting Ticket);
- сервис запрашивает подтверждение пользователя через Kerberos KDC, что позволяет удостовериться в его подлинности;
- сервис по протоколу LDAP обращается к MultiDirectory и проверяет полномочия пользователя на основе того, принадлежит ли пользователь к группам.
Таким образом, идентификация и аутентификация выполняется через Kerberos, а авторизация – через LDAP.
Как поддержка Kerberos влияет на безопасность и удобство MultiDirectory
Интеграция Kerberos в MultiDirectory ещё больше улучшает безопасность и удобство аутентификации пользователей. Она принесла для пользователей несколько ключевых преимуществ:
- Пароли не передаются по каналам связи.
- Все коммуникации между клиентами, сервисами и KDC шифруются – так удаётся предотвратить утечку данных.
- С начала 2025 года пользователи смогут усиливать получение Kerberos-билетов вторым фактором. На стороне сервисов и клиентов не потребуется установка дополнительного или кастомного ПО – всё будет работать со штатными клиентами. Второй фактор можно удобно настраивать в виде политики.
Кроме того, с целью упростить процесс администрирования команда MultiDirectory предприняла такие шаги:
- Реализовала единый интерфейс управления. Вся работа с Kerberos осуществляется через веб-интерфейс MultiDirectory, что избавляет администратора от сложных CLI-команд.
- Автоматизировала большинство операций. Например, при создании пользователя или компьютера для пользователя или компьютера автоматически создаётся принципал. В случае смены пароля пользователя принципал автоматически модифицируется.
- Сохранила все данные в PostgreSQL. Это упрощает возможность ведения бэкапа и восстановления в случае сбоя.
- Настроила автообновление. Начиная с версии MultiDirectory 2.0.1, сертификаты для Kerberos автоматически обновляются каждые 3 года: это повышает безопасность и снижает нагрузку на администраторов.
Резюме
Протокол Kerberos – это мощный инструмент, чтобы обеспечить безопасность в сетях, особенно в тех, где защита данных и контроль доступа имеют критическое значение. Он обладает такими преимуществами:
- Безопасность. Использование «билетов» вместо паролей уменьшает риск перехвата паролей злоумышленниками.
- Единая точка входа. После первоначальной аутентификации пользователю не нужно повторно вводить пароли для доступа к разным службам.
- Эффективность. Kerberos значительно снижает нагрузку на серверы, так как пароли на постоянной основе не передаются.
Интеграция протокола в MultiDirectory ещё больше улучшает безопасность аутентификации и авторизации, расширяет возможности взаимодействия с другими системами. При этом Kerberos легко установить и настроить.
Чтобы узнать подробнее о сервисе, напишите в отдел продаж sales@multidirectory.ru. Специалисты организуют установочную встречу и проведут консультацию по вопросам подключения.