4.2. Протокол «запрос-ответ»
Решение многих задач разграничения доступа основано на применении протокола «запрос-ответ» (challenge-response protocol). Смысл протокола заключается в том. что запрашивающий вырабатывает некоторое случайное число и передает его противоположной стороне. Ответ, в виде криптографического преобразования заданного числа, используется для принятия решения о предоставлении доступа к ресурсам. Например, управление доступом в компьютер может осуществляться следующим образом. На первом шаге, в ответ на запрос компьютера (login), пользователь вводит свое имя, далее компьютер, проверив полномочия доступа не уровне списка имен, выдает запрос в виде семизначного числа. На втором шаге пользователь вводит запрос и секретный PIN-код в персональное криптографическое устройство (например, Capstone). Криптографическое преобразование заключается в конкатенации запроса и PIN-кода с последующим шифрованием на секретном ключе устройства. На третьем шаге, в ответ на запрос компьютера (password), пользователь вводит первые семь цифр результата шифрования. Критерием для принятия решения о предоставлении доступа является совпадение введенного семизначного пароля и числа, хранящегося в таблицах доступа компьютера.
Описанная схема позволяет избежать ряда проблем при решении задачи разграничения доступа многих пользователей к одному компьютеру. Однако ситуация меняется, если управление доступом к нескольким компьютерам осуществляется с помощью специализированного сервера аутентификации. Рассмотрим протокол, управляющий доступом Алисы в компьютер Боба, при условии общих секретных ключей К as (для Сэма и Алисы) и Kbs (для Сэма и Боба). Через Na (со стороны Алисы) и Nb (со стороны Боба) обозначим случайные одноразовые числа, уникальные для каждого сообщения протокола. Протокол может быть записан в виде следующей последовательности шагов:
№ Отправитель______Получатель Сообщение
1. | А | -> B | А |
2. | В | -> А | NB |
3. | А | -> В | {Nв}Kas |
4. | В | -> S | {A, {Nв}Kas}Kвs |
5. | S | -> В | {Nв}Kвs |
Приведем пример, в котором Чарли получает несанкционированный доступ в компьютер Боба, выдавая себя за Алису. Исходный протокол, без «трюков» со стороны Чарли, но при условии одновременных запросов со стороны Алисы и Чарли, имеет следующий вид:
№ Отправитель______Получатель Сообщение
1. | А | -> B | А |
2. | С | -> B | С |
3. | В | -> A | NB |
4. | В | -> C | N'B |
5. | А | -> B | {nb}Kas |
6. | С | -> B | {n'b}Kcs |
7. | В | -> S | {a,{nb}kas}Kвs |
8. | В | -> S | {c,{n'b}Kcs}Квs |
9. | S | -> B | {nb}kbs |
10. | S | -> B | {отказ}Kвs |
Сервер аутентификации отказывает Чарли, так как полномочия доступа последнего не распространяются на компьютер Боба.
Однако Чарли может обмануть сервер аутентификации, вмешиваясь в работу протокола. Так, на шаге 3 вместо запроса Nв со стороны Боба Чарли может передать Алисе запрос N'в. В результате сообщение на шаге 5 будет иметь вид {n'b}kas- Боб не может проконтролировать свой запрос, так как тот зашифрован на секретном ключе kas, известном только Алисе и Сэму. Теперь для обмана сервера достаточно поменять местами сообщения на шаге 7 и 8. Отметим, что ответы сервера на шаге 9 и 10 соответствуют запросам на шаге 1 и 2. В результате сервер откажет Алисе, как если бы она была Чарли, и разрешит доступ Чарли, действующему от лица Алисы.
Описанный выше протокол уязвим и тогда, когда решение о праве доступа принимается Бобом. Каждый раз Боб будет получать от сервера аутентификации сообщение {n'b}kbs и отказывать Алисе (в лице Чарли), поскольку N'в не равно Nв.
Одна из модификаций протокола (42) предполагает замену сообщения {Nв}Kвs , получаемого Бобом от Сэма, на сообщение {A,Nв}Kbs. Однако этого недостаточно, особенно тогда, когда Сэм не знает имени компьютера, доступ к которому запрашивается со стороны Алисы. Протокол, включающий имя Боба, представлен ниже:
- 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