Что такое Kerberos?

Kerberos — это протокол, предназначенный для обеспечения безопасного обмена данными по незащищенной сети. Он используется для защиты от подслушивания и атак типа «злоумышленник в середине».

Протокол включает:

  • Клиент : Человек, пытающийся подключиться к службе.
  • Сервер: сервер, на котором размещена служба.
  • Сервер аутентификации (AS): аутентифицирует клиента. Если клиент аутентифицирован, создается TGT Ticket Granting Ticket , подтверждающий подлинность клиента.
  • Сервер предоставления билетов (TGS): сервер приложений, который выдает билеты на обслуживание.
  • Центр распространения ключей (KDC) : Один сервер, на котором размещены база данных, сервер аутентификации и TGS.

Kerberos использует ключи трех типов:

  • Секретный ключ клиента/пользователя: хэш, сгенерированный паролем пользователя.
  • Секретный ключ TGS: Хэш пароля, необходимого для определения сервера, выдающего билеты.
  • Секретный ключ сервера: Хэш пароля, используемого для определения сервера, предлагающего service.

Вот шаги, описывающие, как работает протокол Kerberos:

  1. Пользователь вводит учетные данные для входа и создается секретный ключ клиента.

  2. клиент запрашивает у сервера аутентификации TGT, отправляя идентификатор клиента.

  3. Сервер аутентификации проверяет доступность клиента и TGS в базе данных. Если он найден, секретный ключ клиента создается с использованием пароля пользователя из базы данных, а также секретного ключа TGS. Сеансовый ключ (SK1) генерируется и шифруется с использованием секретного ключа клиента. Генерируется TGT, содержащий идентификатор клиента, сетевой адрес клиента, время жизни, временную метку и SK1 (который зашифрован с использованием TGS). SK1 и TGT отправляются клиенту. Однако сообщение зашифровано с использованием секретного ключа клиента.

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

  5. TGS расшифровывает TGT с помощью секретного ключа TGS и извлекает SK1. SK1 используется для дешифрования аутентификатора — он проверяет истечение срока действия TGT и проверяет соответствие информации от TGT и аутентификатора. Затем он создает служебный сеансовый ключ (SK2). Этот ключ является секретом, совместно используемым клиентом и TGS. Создается билет службы, содержащий идентификатор клиента, сетевой адрес клиента, метку времени и SK2. Он зашифрован секретным ключом сервера, полученным из базы данных. SK2 и билеты службы отправляются клиенту после шифрования с помощью SK1.

  6. Клиент расшифровывает сообщение с помощью SK1 и извлекает SK2. Создается новый аутентификатор, содержащий идентификатор клиента, сетевой адрес клиента и метку времени. Затем этот аутентификатор шифруется с помощью SK2. Аутентификатор и билет службы отправляются на целевой сервер.

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

Оцените статью
nanomode.ru
Добавить комментарий