id: Гость   вход   регистрация
текущее время 16:42 23/04/2024
Автор темы: Гость, тема открыта 19/08/2008 15:50 Печать
Категории: криптоанализ, инфобезопасность, атаки
https://www.pgpru.com/Форум/Криптография/ПротоколНидхема-ШредераДляАутентификации
создать
просмотр
ссылки

протокол Нидхема-Шредера для аутентификации с симметричным ключом


Исходные условия:
Алиса и Трент имеют общий ключ Kat; Боб и Трент имеют общий ключ Kbt. (Трент – это сервер аутентификации)


Цель
Алиса и Боб желают создать новый общий секретный ключ K.


1. Алиса генерирует случайное число Na и посылает Тренту сообщение: Алиса, Боб, Na.


2. Трент генерирует случайный ключ K и посылает Алисе следующую информацию: {Na, K, Боб,{K, Алиса}Kbt}kat.


3. Алиса расшифровывает сообщение {Na, K, Боб, {K, Алиса}Kbt}kat, проверяет число Na, устанавливает личность Боба и посылает ему информацию: Трент, {K, Алиса}kbt


4. Боб расшифровывает сообщение, устанавливает личность Алисы и посылает ей {Привет, Алиса, я – Боб, Nb}k. Где Nb – случайное число, сгенерированной Бобом.


5. Алиса посылает Бобу сообщение: {Я-Алиса, Nb-1}k


Обозначения:
{сообщение}k — шифртекст на ключе k.


Вопрос:
Зачем на шаге 5 Алиса вычитает из Nb единицу?


 
Комментарии
— unknown (19/08/2008 16:49, исправлен 19/08/2008 16:50)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В этом протоколе нет часов (временного штампа). Поэтому стороны вынуждены аутентифицировать друг друга по случайному числу (nonce – N).

В четвертом пункте Боб доказывает Алисе, что он Боб, а без пятого пункта Алиса не сможет доказать Бобу, что она Алиса.

Иначе кто-то может выдавать Бобу старые запросы Алисы из третьего пункта, а поскольку часов нет, то без проверки возможности поменять свежесгенирированный Бобом Nb никак не убедиться, что это уникальный запрос.

(Уменьшения на единицу понятное дело условность, с Nb можно было бы попросить сделать и другую подходящую операцию).
— Paran0ik (19/08/2008 17:01)   профиль/связь   <#>
комментариев: 88   документов: 13   редакций: 3
просто 4й и 5й пункт выглядят так:

4. Боб расшифровывает сообщение, устанавливает личность Алисы и посылает ей {Nb}k. Где Nb – случайное число, сгенерированной Бобом.

5. Алиса посылает Бобу сообщение: {Nb-1}k

чтобы уменьшить вероятность атаки воспроизведения из случайного числа при ответе и вычитается единица
— Alex_BBB (19/08/2008 17:23)   <#>
В четвертом пункте Боб доказывает Алисе, что он Боб, а без пятого пункта Алиса не сможет доказать Бобу, что она Алиса.

Иначе кто-то может выдавать Бобу старые запросы Алисы из третьего пункта, а поскольку часов нет, то без проверки возможности поменять свежесгенирированный Бобом Nb никак не убедиться, что это уникальный запрос.
Это всё в книге хорошо описано, вопрос то в другом.

чтобы уменьшить вероятность атаки воспроизведения из случайного числа при ответе и вычитается единица
Случайное число и так каждый раз разное. Зачем вообще манипуляции со случайным числом.

(Уменьшения на единицу понятное дело условность, с Nb можно было бы попросить сделать и другую подходящую операцию)
Зачем вообще делать с ним операции? К тому же на шаге 2 Трент ничего с числом полученным от Алисы не делает.
— Paran0ik (20/08/2008 00:20)   профиль/связь   <#>
комментариев: 88   документов: 13   редакций: 3
Случайное число и так каждый раз разное. Зачем вообще манипуляции со случайным числом.

если Боб пошлет {Nb}k, а Алиса тоже ответит {Nb}k, то это воспроизведение, которым может воспользоваться злоумышленник (чтобы выдать себя за Алису), если Алиса отправит {Nb-1}k, то шифротексты будут разные и атаку воспроизведения не произвести.
— unknown (20/08/2008 10:05, исправлен 20/08/2008 10:10)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Это всё в книге хорошо описано, вопрос то в другом.


Не будем оригинальными и посмотрим в самую правильную в данном случае книгу :)



A now knows that any communication he receives encrypted with CK must have originated with B, and also that any communication he emits with CK encryption will be understood only by B. Both are known because the only message containing CK that have ever been sent are tied to A's and B's secret keys. B is in a similar state, mutatis mutandis.

It is important, however, to be sure that no part of the protocol exchange or ensuing conversion is being replayed by an intruder from a recording of a previous conversation between A and B. In relationship to this question the positions of A and B differ. A is aware that he has not used the key CK before and therefore has no reason to fear that material encrypted with it is other than the legitimate responses from B. B's position is not so good; unles he remembers indefinitely keys previously used by A in order to check thah CK is new he is unclear that the message (1.3) and the subsequent messages supposely from A are not being replayed. To guard against this possibility, B generates a nonce identifier for the transaction, I_B and sends it to A under CK:

B -> A: ( I_b ) CK (1.4)

expecting a related reply, say one less:

A -> B: ( I_b – 1) CK (1.5)

If this reply is satisfactory received, then the mutual confidence is sufficient to enable substantive communication, encrypted with CK to begin.



Using Encryption for Authentication in Large Networks of Computers

Roger M. Needham and Michael D. Schroeder.

Xerox Palo Alto research Center.
Communications of the ACM. December 1978. Volume 21. Number 12.



Короче говоря, если не было бы этого шага, кто-то может перехватить известное сообщение Алисы: "сегодня я занята и не буду с тобой общаться", "Боб я никогда тебя не прощу!", "команда серверу Боба удалить все текущие даные" и периодически передавать это сообщение или отправить его не в нужный для Алисы и Боба момент.

Боб в ответ пошлёт запрос "Алиса, ты опять меня достаёшь какой-то ерундой?". А кто-то (Мэллори?) в ответ из предыдущего сеанса Алисы выдернет и повторно отправит стандартное сообщение: "Да я Алиса! Подтверждаю! Выполняйте немедленно! Конец связи".
— Alex_BBB (20/08/2008 15:46)   <#>
если Боб пошлет {Nb}k, а Алиса тоже ответит {Nb}k, то это воспроизведение, которым может воспользоваться злоумышленник (чтобы выдать себя за Алису), если Алиса отправит {Nb-1}k, то шифротексты будут разные и атаку воспроизведения не произвести.
Если обмен идет только цифрами – согласен.
А если так как описано в первом посте и Алиса на шаге 5 посылает Бобу {Я-Алиса, Nb-1}k, то Злоумышленник(Алиса) не смог бы составить такое сообщение {Я-Алиса, Nb-1}k и такое тоже {Я-Алиса, Nb}k. Получается что если протокол именно такой какой описан в первом посте, то вычитание единицы не нужно.

Вобщем это неточность в книге, так получается?
— unknown (20/08/2008 16:43, исправлен 20/08/2008 16:44)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Злоумышленник(Алиса)


Обычно некто Мэллори, выдающий себя за Алису для Боба и соотв. наоборот за Боба для Алисы.


А если так как описано в первом посте и Алиса на шаге 5 посылает Бобу {Я-Алиса, Nb-1}k, то Злоумышленник(Алиса) не смог бы составить такое сообщение {Я-Алиса, Nb-1}k и такое тоже {Я-Алиса, Nb}k. Получается что если протокол именно такой какой описан в первом посте, то вычитание единицы не нужно.


так шифрование то симметричное: Боб посылает Алисе {Nb}k, чем отвечать Алисе? Тоже отправить {Nb}k обратно? Кстати да, в вашем изложении расхождение с оригинальным протоколом Нидхема-Шрёдера от 1978 года.

И в его поздних фиксах ничего такого нет:


— Гость (20/08/2008 18:17)   <#>
Обычно некто Мэллори, выдающий себя за Алису для Боба и соотв. наоборот за Боба для Алисы.
В книге для понятности за кого выдает себя злоумышленник пишут "Злоумышленник(Алиса), Злоумышленник(Боб)" — я подумал что это стандартное обозначение, потому так и написал.

так шифрование то симметричное: Боб посылает Алисе {Nb}k, чем отвечать Алисе? Тоже отправить {Nb}k обратно? Кстати да, в вашем изложении расхождение с оригинальным протоколом Нидхема-Шрёдера от 1978 года.
Вот-вот, вопрос возник именно из-за этого расхождения :)
Потому что если бы пятый шаг выглядел как
5. A -> B: {A, Nb}к
то вычитать 1 было бы не нужно.
— unknown (21/08/2008 09:29, исправлен 21/08/2008 09:39)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Needham и Schroeder в своей работе пишут, что для регулярно общающихся абонентов можно на некоторое время "закэшировать доверие", полученное от сервера аутентификации и генерировать сеансовые ключи далее самостоятельно.

Сообщения серверу (1.1) и от него (1.2) отправлять не нужно.

А два других шага будут:

A -> B: {CK, A}KB, {IA2 }CK {1.3'}

B -> A: {IA2 – 1, IB }CK {1.4'}

Пятый шаг остаётся прежним:

A -> B: {IB – 1 }CK {1.5}

Итого три шага, если доверие в виде совместного ключа уже было получено ранее и стороны его не хотят обновлять. Может вычитание единицы делалось с перспективой именно на такое использование?
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3