Криптографические протоколы    

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 скомпрометирован. Иначе мошенник мог бы выдавать себя за абонента А и получать сессионные ключи для связи с любым абонентом.