Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 341.docx
Скачиваний:
28
Добавлен:
30.04.2022
Размер:
1.46 Mб
Скачать
      1. Протокол Kerberos

Другим методом аутентификации, основанным на использовании секретного идентификатора, является протокол Kerberos. Протокол Kerberos был создан более десяти лет назад в Массачусетском технологическом институте в рамках проекта Athena. Однако общедоступным этот протокол стал, начиная с версии 4, а версия 5 была принята в качестве стандарта IETF. Требования реализации протокола изложены в документе RFC1510, кроме того, в спецификации RFC1964 описывается механизм и формат передачи мандатов (билетов) безопасности в сообщениях Kerberos.

Протокол Kerberos предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними, причем в протоколе учтен тот факт, что начальный обмен информацией между клиентом и сервером происходит в незащищенной среде, а передаваемые пакеты могут быть перехвачены и модифицированы. Таким образом, протокол идеально подходит для применения в Internet.

Основная концепция протокола Kerberos заключается в возможности взаимного удостоверения взаимодействующих сторон при помощи разделяемого между ними общего секрета.

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

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

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

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

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

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

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

5. Пользователь дешифрует полученный аутентификатор и сравнивает время. Если процесс дешифрации успешен и времена совпадают, значит, сервер именно тот с которым хотел взаимодействовать пользователь.

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

Для решения проблемы управления ключами Kerberos использует дополнительное звено-посредник — центр распределения ключей (Key Distribution Center, KDC). KDC представляет собой службу, работающую на физически защищенном сервере. Она ведет базу данных с информацией об учетных записях всех главных абонентов безопасности своей области. Вместе с информацией о каждом абоненте безопасности в базе данных KDC сохраняется криптографический ключ, известный только этому абоненту и службе KDC. Этот ключ, который называют долговременным, используется для связи пользователя системы безопасности с центром распределения ключей. В большинстве практических реализаций протокола Kerberos долговременные ключи генерируются на основе пароля пользователя, указываемого при входе в систему.

Когда клиенту нужно обратиться к серверу, он прежде всего направляет запрос в центр KDC, который в ответ направляет каждому участнику предстоящего сеанса копии уникального сеансового ключа, действующие в течение короткого времени. Назначение этих ключей — проведение аутентификации клиента и сервера. Копия сеансового ключа, пересылаемая на сервер, шифруется с помощью долговременного ключа этого сервера, а направляемая клиенту — долговременного ключа данного клиента [40,61].

Протокол Kerberos обеспечивает высокий уровень безопасности, обладает повышенной гибкостью и эффективностью, что способствует его широкому распространению в корпоративных сетях, особенно после принятия корпорацией Microsoft данного протокола в качестве основного протокола аутентификации в операционной системе Windows 2000.

Необходимо отметить, что серверное программное обеспечение должно быть адаптировано (его обычно называют керберезированным) для работы с протоколом Kerberos.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]