Задача по аутентификации


Ребята, помогите решить задачку студентке пожалуйста, очень срочно нужно:

Рассмотрите следующие протоколы аутентификации на рисунках 1 и 2, которые позволяют Бобу подтверждать подлинность Элис. У KDC (центр распределения ключей) есть секретный зашаренный ключ с Элис и секретный ключ с Бобом. Предположите, что E – это PRF (псевдо случайная функция), и что входы имеют длину в один блок, то есть, /IDа/ = /Nа/ = n, где n – размер блока. R и Nb – случайные последовательности.
1. Представте и проанализируйте атаку на протокол на рисунке 1.
2. Представьте и проанализируйте атаку на протокол на рисунке 2.


Если есть у кого какие либо идеи по поводу решения – благодарности нет придела, респект и уважуха!


Задача в оригинале:

http://sharepix.ru/request_ori.....1o/image972517k.jpeg[link1]

Заранее огромное спасибо!!!

Комментарии
Гость (17/11/2010 18:44)   
Навеяло HMAC[link2]
— фыва (17/11/2010 18:52)   
|| – это типа конкатенация или что?
— Лампампулечка (17/11/2010 19:55)   
Нет на конкатенацию это не похоже. Надо проанализировать протоколы аутентификации, на предмет взлома (безопасные они или нет) и пояснить свои доводы :-) У меня эта задача "повисла в воздухе" не знаю с какой стороны подойти.:-)
— Лампампулечка (17/11/2010 19:56)   
Помогите люди добрые чем можете..
Гость (17/11/2010 20:22)   
Нет на конкатенацию это не похоже
Почему не похоже? Похоже.
Вот и "подойдите со стороны" HMAC
Гость (17/11/2010 21:27)   
рисунки не отображаются
— Лампампулечка (17/11/2010 23:23, исправлен 18/11/2010 18:40)   

Вот рисунки по новой:


хостинг изображений[link3]

— Лампампулечка (17/11/2010 23:37)   
Да вы совершенно правы это HMAC но "подойти" не легко, несколько дней пытаюсь :-)
Можете чуть подробнее обьяснить как это сделать? Очень буду признательна.
Гость (18/11/2010 08:04)   
Насколько я понимаю здесь мы т.е. вы имеете дело с протоколом аутентификации Ву-Лама. А протокол этот уязвим к т.н. атаке с помощью параллельного сеанса.
Поясняю на пальцах:
1. Злоумышленник – Бобу: Алиса. (т.е. выдает себя за другого)
1'.Злоумышленник -Бобу: Злоумышленник(представляется собой).
2. Боб – Злоумышленнику(думая что это Алиса): N
2'.Боб – злоумышленнику: N'
3. злоумышленник – Бобу: E<sub>злоум</sub>(N)
3'.Злоумышленник – Бобу: E<sub>злоум</sub>(N)
4. Боб – KDC: E<sub>боб</sub>(Алиса||E<sub>злоум</sub>(N)) 4'.Боб- KDC: E<sub>боб</sub>(Злоумышленник||E<sub>злоум</sub>(N))
5.KDC – Боб: "ошибка, тебя обманывают"
5'.KDC – Бобу E<sub>боб</sub>(N). (а т.к. Боб думает что число N он посылал Алисе и увидев его в отклике, думает что аутентификация а Алисой прошла правильно, а аутентификацию со злоумышленником отвергает).

Второй протокол чем то напимонает OAEP т.е. я так понимают попытка защитить целостность. Только на первый взгляд описаная выше атака вполне применима и к этому протоколу тоже.
— фыва (18/11/2010 12:18)   
У меня sub-ы не пропечатались, поэтому я никоим образом не посягая на авторство /comment42909 перепишу в более понятном виде (ИМХО):
1. Злоумышленник – Бобу: Алиса. (т.е. выдает себя за другого)
1'.Злоумышленник – Бобу: Злоумышленник(представляется собой).
2. Боб – Злоумышленнику(думая что это Алиса): Na
< уникальный для Алисы
2'.Боб – злоумышленнику: Nz
3. злоумышленник – Бобу: Ez(Na)
3'.Злоумышленник – Бобу: Ez(Na)
4. Боб – KDC: Eb(Алиса||Ez(Na)) 4'.Боб – KDC: Eb(Злоумышленник||Ez(Na))
5. KDC – Боб: "ошибка, тебя обманывают"
5'.KDC – Бобу Eb(Na).
< ответ получен, как будто это и была Алиса, хотя там ею и не пахло
Гость (18/11/2010 20:19)   
Субы ставятся так: Avvсубvv. Вот результат: Aсуб.
— фыва (19/11/2010 12:01)   
4. Боб – KDC: Eb(Алиса||Ez(Na))
4'.Боб – KDC: Eb(Злоумышленник||Ez(Na))
— фыва (19/11/2010 12:04)   
4. Боб – KDC: Eb (Алиса||Evvzvv (Nvvavv)) 4'.Боб – KDC: Evvbvv (Злоумышленник||Ez (Na))
— фыва (19/11/2010 12:05)   
как-то криво работает. И удалить нельзя %)
Гость (19/11/2010 13:21)   
У KDC нет Kz, или Kz сопоставлен другому ID, поэтому после
Боб – KDC: Eb(Алиса||Ez(Na))

KDC либо не сможет правильно прочесть Na на Kz и вернёт Бобу неправильный Na, либо установит несоответствие ключа и идентификатора, так что нет тут этой атаки.
Гость (19/11/2010 14:04)   
как это нету когда есть? Внимательно читать просто нужно. Написано же что KDC вернет бобу два ответа один ответ будет просто содержать Na так что боб посчитает что с алисой все отлично. А второй ответ скажет что боба обманывают и боб в силу того что в протоколе в ответе kdc явно идентификаторы нигде не указаны подумает что обманывали его при связи со злоумышленником, который является полноправным пользователем системы(такое понятие как модель угрозы Долева-Яо вам знакомо?), а следовательно и ключ Kz у kdc есть.
Кстати была попытка исправить эту уязвимость встроив в ответ KDC на 5 этапе идентификатор того пользователя ключ которого использовался при расшифровки. В нашем случае ответ бы выглядел
KDC- бобу:Eb(злоумышленник, Na). Т.к. Боб ожидает увидеть имя алисы а не злоумышленника атака захлебывается. Но и такой доработанный вариант данного протокола дыряв в моделе Долева-Яо. Для того чтобы обмануть боба злоумышленнику достаточно теперь тупо в 4 пункте прикинуться KDC и вернуть бобу его же запрос без всяких изменений. KDC – Бобу: Eb(Алиса||Ez(Na)).
И все Боб опять обманут. При этом рабочий вариант этого протокала все-таки существует но в нем на этапе 4 боб передает лвс не только зашифрованные идентификатор и число N, но еще и MAC идентификатора и этого число. и вот только тогда протокол можно считать безопасным.
Гость (19/11/2010 14:10)   
Сорри базыл сказать что вот здесь KDC – Бобу: Eb(Алиса||Ez(Na)). кода злоумышленник прикидывается KDC Ez(Na) на самом деле просто Na, боб на 3 этапе получает это же самое число. Т.е. злоумышленник просто копирует послания самого боба.
Гость (19/11/2010 14:32)   
злоумышленник прикидывается KDC

Если злоумышленник может прикинуться KDC, то IMHO тушите свет. Если речь шла про
authentication protocols, ... which allow Bob to authenticate Alice

то по условию KDC под сомнение не ставится, как бы. Мало ли как там Боб и KDC установили соединение.
— unknown (19/11/2010 15:02)   
Если злоумышленник может прикинуться KDC, то IMHO тушите свет.

Полностью прикидываться необязательно. Имеется ввиду MITM (человек посредине) с подменой параметров при отсутствии доп. средств защиты канала связи кроме этого протокола. Всё это протоколы для ограниченных сетей, где нельзя по каким-то соображениям применить асимметрику, но есть доверенный KDC.
при этом рабочий вариант этого протокала все-таки существует

Вроде с метками времени ещё можно, но тогда всем сторонам нужно иметь атомные часы (синхронизации времени доверять нельзя).
Гость (19/11/2010 15:35)   
Вроде с метками времени ещё можно, но тогда всем сторонам нужно иметь атомные часы (синхронизации времени доверять нельзя).

Да метки времени могут помочь, но мороки с ними, опять-таки синхронизация.

то по условию KDC под сомнение не ставится, как бы.

Так веди и не ставится, как бы. Злоумышленник получается действует в обход KDC. Т.е. ниодин запрос до KDC не дойдет. MITM как уже было сказано выше.
— Лампампулечка (20/11/2010 22:52)   
потрясающе! взгляд со стороны! просто супер... пойду тщательно помыслю, представлю...
— Лампампулечка (21/11/2010 00:43)   
после тщательного разбора смысл становится понятен, только есть несколько вопросов... начиная со второго шага: Боб возвращает злоумышленнику Nb? и далее везде Nb? или я ошибаюсь?
Гость (21/11/2010 07:56)   
Да Боб возвращает на втором шаге злоумышленнику, прикидывающемуся Алисой Nb. И дальше везде используется только это число.
— Лампампулечка (21/11/2010 20:47)   
спасибо огромное за помощь. есть еще много вопросов... подскажите как научиться правильно выбирать метод атаки, чем руководствоваться?ваша помощь бесценна:)
Гость (21/11/2010 21:40)   
Я в этом деле далеко не специалист. Пара собственных мыслей по теме, если вам конечно будет интересно.
У Брюса Шнайера в его самоучителе криптоанализу есть что то типа таких слов: если вы хотите стать криптографом то взламывайте взламывайте и еще раз взламывайте. В первую очередь думаю необходимо ознакомиться с наиболее известными типами атак, проанализировать протоколы уязвимые к тем или иным атакам и понять какие ошибки разработчиков привели к этим уязвимостям. Найдите описание первых версий наиболее используемых протоколов(почти все они уязвимы для той или иной атаки) и попробуйте самостоятельно найти уязвимость. Потом переходите к современным протоколам. Пробуйте атаковать ослаблненные версии и тд и тп. Только так самостоятельно вы сможите понять все тонкости работы криптопротокола.
А еще вам нужно понимать, что создание криптопротокола одна из самых сложных задач криптографии. И существуют особые методы анализа протоколов. Но в силу того что методы эти достаточно сложны для понимания, а так же того что до сих пор вроде как не понятно есть от этих методов толк или нет вникать в эти дебри я вам не советую без особой на то нужды.
— Лампампулечка (21/11/2010 23:58)   
просто методов очень много, как их применять и в каких случаях тоже не очень понятно... допустим в этой задаче без подсказки я б не разобралась, а с наводкой все понятно... прочитала метод, действительно все просто... проблема в том, что задач вагон, а как к ним оперативно подойти непонятно... У Брюса книга классная, но больше похожа на художественную. Убиваю кучу времени на изучение, почти не отдыхаю, а прогресса незаметно...Как я понимаю, не имея опыта, дело не сдвинется с мертвой точки. Теоретически разобралась во всем, а вот с практической точки зрения не научилась это применять... в любом случае огромное спасибо за помощь.
Гость (22/11/2010 01:55)   
Разговор после семинара по теории чисел на ММ:
-Вот знаете, вроде всё понятно, а примеры не получается решать..
-Ну как, берёте книжку, смотрите примеры, и решаете, решаете ...
— unknown (22/11/2010 10:16, исправлен 22/11/2010 10:19)   

Так придумали же доказуемую безопасность (которая в строгом смысле ничего не доказывает, но это лучше, чем ничего).


Уже даже противники признают, что все протоколы неплохо проектировать с учётом этой методики (на конкурсе хэшей SHA-3 методы доказуемой безопасности похоже получили всеобщее признание, несмотря на критику, а одного из авторов этой методики хитрый Шнайер взял к себе в команду по проектированию конкурсного алгоритма Skein, впрочем практически все серьёзные работы там представлены в такой форме).


И если эти методы уже применяют для разработки и анализа алгоритмов, а не только протоколов, то это уже всерьёз и надолго.


Вот вторая часть коммента /comment36423[link4], чтобы не делать перепост и ещё много где об этом здесь в форуме дискутировалось. Материалы по доказуемой безопасности ищите сами, но в разделе Библиотека[link5] по крайней мере одна ссылка есть.

Гость (22/11/2010 13:03)   
Нет с тем что доказуемая стойкость это всерьез и надолго я согласен. Другое дело что анализ протоколов, насколько я знаю, все еще находится в начальных стадиях развития и во что это все выльется не ясно.
Гость (22/11/2010 13:13)   
Простите сообщение не дописал. Я к тому что существовало два лагеря один лагерь применял методы наподобие BAN-логики, другой же как раз таки занимался доказуемой стойкостью. А попытки эти два лагеря както примерить так пока ни к чему не приводят.
— unknown (22/11/2010 16:39)   
Про BAN-логику что-то давно ничего не попадалось. Как-то больше споров между разными направлениями доказуемой безопасности/стойкости: "уберите оракула из вашей модели", а то вдруг при замене его любой реально вычисляемой функцией заведомо будет найден различитель. "Требуем доказательство в стандартной модели" и т.д.

Ссылки
[link1] http://sharepix.ru/request_original/3p8t9y4tas1v9vznxi8r72uxpmqdl09ozfi8dl1o/image972517k.jpeg

[link2] http://ru.wikipedia.org/wiki/HMAC

[link3] http://imglink.ru/pictures/17-11-10/2d4c8b43db03bc2c26c508dd3ebd88d9.jpg

[link4] http://www.pgpru.com/comment36423

[link5] http://www.pgpru.com/biblioteka/ssylki#h491-3