logo
Лекции / Малов / Другие сети от другого Малова / 09) аутентификация

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. Однако этого недостаточно, особенно тогда, когда Сэм не знает имени компьютера, доступ к которому запрашивается со стороны Алисы. Протокол, включающий имя Боба, представлен ниже: