2. Анализ симметричного протокола Нидхема-Шрёдера
Рассмотрим симметричный протокол аутентификации
Нидхема-Шрёдера c использованием доверенного посредника (сервер)
[13]. Этот протокол интересен тем, что на его основе было разработано
большое количество протоколов, однако он имеет серьезную уязвимость.
Процесс обмена сообщениями в данном протоколе выглядит следующим образом.
На первом шаге абонент А отправляет
серверу S сообщение, включающее имя абонента B, своё имя и свой
нонс. Доверенный посредник генерирует случайный сеансовый ключ
для
абонентов А и B. Затем он шифрует секретным ключом, общим для
него и абонента B, сообщение, включающее случайный сеансовый
ключ и имя абонента А. Затем сервер S шифрует секретным ключом,
общим для него и абонента А, нонс абонента А, имя абонента В, ключ
и
шифрованное сообщение. Полученные данные он отправляет абоненту А.
Абонент А расшифровывает полученное сообщение и извлекает ключ
убеждается, что нонс совпадает с отправленным на первом этапе.
Затем абонент А отправляет абоненту В сообщение, которое
абонент S зашифровал ключом абонента B. Абонент В
получает сообщение, расшифровывает его и извлекает ключ
Затем генерирует случайный нонс Nb, зашифровывает его ключом
и отправляет абоненту А. Абонент А получает и расшифровывает
нонс Nb. На его основе вычисляет нонс Nb-1 (обозначим его так же Nb)
, зашифровывает его ключом
Kab и отправляет абоненту B. Абонент B получает сообщение,
удостоверяется, что нонс Nb совпадает и аутентифицирует абонента A.
В идеализированной форме протокол выглядит следующим образом:
Первое сообщение опущено, так как
оно предназначено для инициализации протокола и не дает никаких
сведений для анализа. Дополнительные инструкции о ключе
в сообщении 2, 4, 5 присутствуют, так как А верит в ключ и верит,
что его можно использовать именно сейчас. Это утверждение
основывается на том, что участник S выступает в роли доверенного
сервера. Без этого утверждения протокол не начал бы свою работу.
Инструкция
добавлена в шаге 2, так как абонент А может проверить свой нонс
и убедиться в этом. Приведем первоначальные предположения,
которые для удобства разобьем на несколько групп.
Предположения о ключах:
Предположения о полномочиях:
Предположения о нонсах:
Дополнительные предположения:
Заметим, что деление предположений
на группы весьма условное и введено лишь для удобства записи
предположений. Особо необходимо выделить дополнительные предположения.
Эта группа формул не следует из описания протокола очевидным образом.
И формулы в эту группу записываются не перед началом анализа
протокола, а во время его выполнения. В эту группу попадают веры,
которые не обеспечиваются средствами протокола, но без которых
протокол не может быть завершен. Наличие формул в дополнительных
предположениях говорит о том, что их выполнение необходимо
обеспечивать дополнительными средствами.
Рассмотренные предположения в данном случае весьма стандартные.
Первые пять предложений описывают ключи, первоначально известные
участникам протокола. Следующие три указывают, что абоненты A и B
доверяют серверу. Следующие предположения, как обычно относятся к
серверу и нонсам. Проведем анализ протокола.
Абонент А имеет в своем распоряжении
ключ Kas и расшифровывает полученное сообщение таким образом:
Применяется правило проверки нонсов
и выводятся следующие утверждения:
Затем используем правило полномочий
и выводим:
Также А принял сообщение, зашифрованное
Кbs:
Это позволяет А отправить эту часть
абоненту В.
Участник В получает данное сообщение
и расшифровывает. Применяется правило значений сообщений и выводится:
На данном этапе участник В не знает
ничего о качестве ключа. Он не знает свежий это ключ или нет.
Он не может выяснить в рамках данного протокола, является ли
этот ключ вновь сгенерированным ключом сервера S или осуществляется
атака типа повтор. Авторы протокола и BAN-логики предлагают
ввести дополнительное первоначальное предположение
для
возможности завершения протокола аутентификации.
Учитывая данное предположение, последовательно применив
правило проверки нонсов и правило полномочий, получаем
Абонент А применяет правило проверки
нонсов и получает:
Абонент В поступает аналогично
и выводит, что
Таким образом, абоненты А и В взаимно аутентифицируют друг
друга и устанавливают общий сессионный ключ. Формально это
описывается следующими постулатами доверия:
Однако, не следует забывать, что данный
протокол аутентификации успешно выполняется только при
дополнительном первоначальном условии
В литературе [4] это предположение имеет название компромисса
ключа сеанса. В результате злоумышленник имеет неограниченное
время, чтобы осуществить атаку на ключ и выдать себя за абонента
А, причем неограниченное количество раз.
Также первоначальным предположением
перекрывается возможность атаки злоумышленника в
случае, когда ключ Кas скомпрометирован. Иначе мошенник
мог бы выдавать себя за абонента А и получать сессионные ключи
для связи с любым абонентом.
|