- •1. Пароли
- •1.1. Противодействие раскрытию и угадыванию пароля
- •1.2. Противодействие пассивному перехвату
- •1.3. Защита при компрометации проверяющего
- •1.4. Противодействие несанкционированному воспроизведению
- •1.5. Одноразовые пароли
- •1.6. Метод «запрос-ответ»
- •2. Биометрические методы
- •3. Криптографические методы аутентификации
- •3.1. Аутентификация в режиме on-line
- •3.1.1. Протокол 1. Симметричная криптосистема
- •3.1.2. Протокол 2. Асимметричная криптосистема
- •3.2. Аутентификация при участии нескольких серверов
- •3.3. Организация серверов аутентификации
- •3.4. Аутентификация в режиме off-line
- •3.4.1. Протокол на основе симметричной криптосистемы
- •3.4.2. Протокол на основе асимметричной криптосистемы
- •3.5. Аутентификация с привлечением арбитра
- •3.5.1. Протокол 3. Симметричная криптосистема
- •3.5.2. Протокол 4. Асимметричная криптосистема
- •4. Анализ протоколов аутентификации
- •4.1. Протокол с сервером аутентификации
- •4.2. Протокол «запрос-ответ»
- •4.3. Протоколы на основе асимметричных криптосистем
- •4.4. Протокол с «двуликим Янусом»
- •4.5. Протокол стандарта х.509
- •4.6. Протокол для сетей подвижной радиосвязи
- •4.7. Анализ протоколов ssh и ака
- •5. В an-логика
- •6. Протокол Kerberos
- •6.1. Модель Kerberos
- •6.2. Этапы протокола Kerberos
- •6.3. Атрибуты
- •6.4. Сообщения Kerberos версии 5
- •6.5. Получение первоначального мандата
- •6.6. Получение мандатов прикладных серверов
- •6.7. Запрос услуги
- •6.8. Kerberos версии 4
- •6.9. Безопасность Kerberos
6.4. Сообщения Kerberos версии 5
В Kerberos версии 5 используется пять сообщений (рис. IX. 9):
Клиент-Kerberos: с, TGS
Kerberos-клиент: {Кс,TGS}Кс, {Тс,TGS}KTGS
Клиент-TGS: {Ac,s}K cTGS, {Tc,TGS}KTGS s
TGS-клиент: {KC,S}KC,TGS, {TC S}KS
Клиент-сервер: {Ac,s}KC S, {TC S}Ks
Теперь рассмотрим использование этих сообщений подробно.
6.5. Получение первоначального мандата
Клиент идентифицируется при помощи пароля. Открытая передача пароля по сети небезопасна. Протокол Kerberos минимизирует вероятность компрометации пароля, но при этом не позволяет пользователю правильно идентифицировать себя, если он не знает пароля. Клиент посылает сообщение, содержащее собственное имя и имя сервера TGS (у клиента может быть несколько серверов TGS), на сервер аутентификации Kerberos. На практике пользователь, скорее всего, просто вводит свое имя. Сервер аутентификации Kerberos ищет данные о клиенте в своей базе данных. Если информация о клиенте есть в базе данных, Kerberos генерирует сеансовый ключ, который будет использоваться для обмена данными между клиентом и TGS. Kerberos шифрует этот сеансовый ключ секретным ключом клиента. Затем он создает для клиента Разрешение на выделение мандата (Ticket Granting Ticket, TGT), доказывающее подлинность клиента серверу TGS, и шифрует его на секретном ключе TGS. Сервер аутентификации посылает эти два зашифрованных сообщения клиенту. Теперь клиент расшифровывает первое сообщение и получает сеансовый ключ. Секретный ключ является хэш-функцией от пароля клиента, поэтому у законного пользователя не возникает проблем с дешифрованием. Злоумышленник не знает правильного пароля и, следовательно, не может расшифровать ответ сервера аутентификации и получить TGT или сеансовый ключ. Клиент сохраняет TGT и сеансовый ключ и для снижения вероятности компрометации уничтожает пароль и значение хэш-функции. Если злоумышленник получит доступ к памяти компьютера клиента, он раскроет только TGT и сеансовый ключ. Эти данные важны, но только на время жизни TGT. Когда срок действия TGT истечет, эти сведения станут бессмысленными. Теперь в течение срока действия TGT клиент может доказывать TGS свою подлинность.
6.6. Получение мандатов прикладных серверов
Клиенту требуется получить отдельный мандат для каждой необходимой ему услуги. Сервер TGS выделяет мандаты для отдельных прикладных серверов. Когда клиенту нужен мандат, которого у него нет. он посылает запрос TGS. Сервер TGS. получив запрос, расшифровывает TGT на своем секретном ключе. Затем TGS использует включенный в TGT сеансовый ключ, чтобы расшифровать удостоверение. Наконец, TGS сравнивает информацию удостоверения с информацией мандата, сетевой адрес клиента с адресом отправителя запроса и метку времени с текущим временем. Если все совпадает, TGS разрешает выполнение запроса. Проверка меток времени предполагает, что часы всех компьютеров синхронизированы, по крайней мере, с точностью до нескольких минут. Если расхождение времени слишком велико, TGS считает запрос попыткой повторения предыдущего запроса. TGS должен также отслеживать правильность сроков действия удостоверений, так как услуги сервера могут последовательно запрашиваться несколько раз с одним мандатом, но с разными удостоверениями. Другой запрос с тем же мандатом и уже использованной меткой времени удостоверения будет отвергнут. В ответ на легальный запрос TGS возвращает мандат, который клиент может предъявить серверу. TGS также создает новый сеансовый ключ для клиента и сервера, зашифрованный общим для клиента и TGS сеансовым ключом. Оба этих сообщения отправляются клиенту. Клиент расшифровывает сообщение и извлекает сеансовый ключ.
