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

