Найти в Дзене
МУЛЬТИФАКТОР

Как Kerberos помогает безопасной аутентификации

Киберугрозы становятся всё более изощренными, а злоумышленники активно атакуют пользователей и компании, поэтому надёжная аутентификация становится всё более востребована бизнесом. В статье рассказываем о сетевом протоколе аутентификации Kerberos – какие у него особенности, как он охраняет безопасность и каким образом реализуется в MultiDirectory – российской службе каталогов от компании МУЛЬТИФАКТОР. Kerberos – это сетевой протокол аутентификации, разработанный специально, чтобы обеспечивать безопасность в незащищённых сетях. Он проверяет удостоверения пользователей или узлов с помощью системы цифровых «билетов». Протокол использует криптографию с секретным ключом и доверенную третью сторону. Так ему удаётся эффективно проверять личности пользователей и аутентификации клиент-серверных приложений. Основные отличия Kerberos от других протоколов: Сегодня Kerberos является одним из самых используемых сетевых протоколов аутентификации – он интегрирован в большинство популярных операционных
Оглавление

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

В статье рассказываем о сетевом протоколе аутентификации Kerberos – какие у него особенности, как он охраняет безопасность и каким образом реализуется в MultiDirectory – российской службе каталогов от компании МУЛЬТИФАКТОР.

Что такое Kerberos и где он используется

Kerberos – это сетевой протокол аутентификации, разработанный специально, чтобы обеспечивать безопасность в незащищённых сетях. Он проверяет удостоверения пользователей или узлов с помощью системы цифровых «билетов». Протокол использует криптографию с секретным ключом и доверенную третью сторону. Так ему удаётся эффективно проверять личности пользователей и аутентификации клиент-серверных приложений.

Основные отличия Kerberos от других протоколов:

  • Kerberos использует шифрование, не передаёт пароли по сети в явном виде. Это минимизирует риск, что учётные данные перехватят.
  • В качестве точки доверия используется централизованный сервер (Key Distribution Center, KDC), который обеспечивает высокий уровень контроля над аутентификацией.
  • Kerberos позволяет пользователям аутентифицироваться один раз для доступа к нескольким сервисам, является единой точкой входа. Это позволяет реализовать Single Sign-On (SSO), что бывает особенно удобно для корпоративных сред.
  • Есть возможность интеграции с различными системами и приложениями.

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

Как работает Kerberos

Название протокола происходит от имени трёхглавого пса Цербера из греческой мифологии. Трём головам Цербера в протоколе соответствуют три участника безопасной связи:

— клиент;

— сервер;

— центр распределения ключей Kerberos (KDC), который выдаёт «билеты».

Цербер охранял вход в подземное царство, а Kerberos охраняет аутентификацию
Цербер охранял вход в подземное царство, а Kerberos охраняет аутентификацию

«Билет» 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, можно подключить протокол в веб-интерфейсе администратора

Как поддержка 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. Специалисты организуют установочную встречу и проведут консультацию по вопросам подключения.