Задача по аутентификации
Ребята, помогите решить задачку студентке пожалуйста, очень срочно нужно:
Рассмотрите следующие протоколы аутентификации на рисунках 1 и 2, которые позволяют Бобу подтверждать подлинность Элис. У KDC (центр распределения ключей) есть секретный зашаренный ключ с Элис и секретный ключ с Бобом. Предположите, что E – это PRF (псевдо случайная функция), и что входы имеют длину в один блок, то есть, /IDа/ = /Nа/ = n, где n – размер блока. R и Nb – случайные последовательности.
1. Представте и проанализируйте атаку на протокол на рисунке 1.
2. Представьте и проанализируйте атаку на протокол на рисунке 2.
Если есть у кого какие либо идеи по поводу решения – благодарности нет придела, респект и уважуха!
Задача в оригинале:
http://sharepix.ru/request_ori.....1o/image972517k.jpeg[link1]
Заранее огромное спасибо!!!
Ссылки
[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
Навеяло HMAC[link2]
|| – это типа конкатенация или что?
Нет на конкатенацию это не похоже. Надо проанализировать протоколы аутентификации, на предмет взлома (безопасные они или нет) и пояснить свои доводы :-) У меня эта задача "повисла в воздухе" не знаю с какой стороны подойти.:-)
Помогите люди добрые чем можете..
Почему не похоже? Похоже.
Вот и "подойдите со стороны" HMAC
рисунки не отображаются
Вот рисунки по новой:
хостинг изображений[link3]
Да вы совершенно правы это HMAC но "подойти" не легко, несколько дней пытаюсь :-)
Можете чуть подробнее обьяснить как это сделать? Очень буду признательна.
Насколько я понимаю здесь мы т.е. вы имеете дело с протоколом аутентификации Ву-Лама. А протокол этот уязвим к т.н. атаке с помощью параллельного сеанса.
Поясняю на пальцах:
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 т.е. я так понимают попытка защитить целостность. Только на первый взгляд описаная выше атака вполне применима и к этому протоколу тоже.
У меня 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).
Субы ставятся так: Avvсубvv. Вот результат: Aсуб.
4. Боб – KDC: Eb(Алиса||Ez(Na))
4'.Боб – KDC: Eb(Злоумышленник||Ez(Na))
4. Боб – KDC: Eb (Алиса||Evvzvv (Nvvavv)) 4'.Боб – KDC: Evvbvv (Злоумышленник||Ez (Na))
как-то криво работает. И удалить нельзя %)
У KDC нет Kz, или Kz сопоставлен другому ID, поэтому после
KDC либо не сможет правильно прочесть Na на Kz и вернёт Бобу неправильный Na, либо установит несоответствие ключа и идентификатора, так что нет тут этой атаки.
как это нету когда есть? Внимательно читать просто нужно. Написано же что KDC вернет бобу два ответа один ответ будет просто содержать Na так что боб посчитает что с алисой все отлично. А второй ответ скажет что боба обманывают и боб в силу того что в протоколе в ответе kdc явно идентификаторы нигде не указаны подумает что обманывали его при связи со злоумышленником, который является полноправным пользователем системы(такое понятие как модель угрозы Долева-Яо вам знакомо?), а следовательно и ключ Kz у kdc есть.
Кстати была попытка исправить эту уязвимость встроив в ответ KDC на 5 этапе идентификатор того пользователя ключ которого использовался при расшифровки. В нашем случае ответ бы выглядел
KDC- бобу:Eb(злоумышленник, Na). Т.к. Боб ожидает увидеть имя алисы а не злоумышленника атака захлебывается. Но и такой доработанный вариант данного протокола дыряв в моделе Долева-Яо. Для того чтобы обмануть боба злоумышленнику достаточно теперь тупо в 4 пункте прикинуться KDC и вернуть бобу его же запрос без всяких изменений. KDC – Бобу: Eb(Алиса||Ez(Na)).
И все Боб опять обманут. При этом рабочий вариант этого протокала все-таки существует но в нем на этапе 4 боб передает лвс не только зашифрованные идентификатор и число N, но еще и MAC идентификатора и этого число. и вот только тогда протокол можно считать безопасным.
Сорри базыл сказать что вот здесь KDC – Бобу: Eb(Алиса||Ez(Na)). кода злоумышленник прикидывается KDC Ez(Na) на самом деле просто Na, боб на 3 этапе получает это же самое число. Т.е. злоумышленник просто копирует послания самого боба.
Если злоумышленник может прикинуться KDC, то IMHO тушите свет. Если речь шла про
то по условию KDC под сомнение не ставится, как бы. Мало ли как там Боб и KDC установили соединение.
Полностью прикидываться необязательно. Имеется ввиду MITM (человек посредине) с подменой параметров при отсутствии доп. средств защиты канала связи кроме этого протокола. Всё это протоколы для ограниченных сетей, где нельзя по каким-то соображениям применить асимметрику, но есть доверенный KDC.
Вроде с метками времени ещё можно, но тогда всем сторонам нужно иметь атомные часы (синхронизации времени доверять нельзя).
Да метки времени могут помочь, но мороки с ними, опять-таки синхронизация.
Так веди и не ставится, как бы. Злоумышленник получается действует в обход KDC. Т.е. ниодин запрос до KDC не дойдет. MITM как уже было сказано выше.
потрясающе! взгляд со стороны! просто супер... пойду тщательно помыслю, представлю...
после тщательного разбора смысл становится понятен, только есть несколько вопросов... начиная со второго шага: Боб возвращает злоумышленнику Nb? и далее везде Nb? или я ошибаюсь?
Да Боб возвращает на втором шаге злоумышленнику, прикидывающемуся Алисой Nb. И дальше везде используется только это число.
спасибо огромное за помощь. есть еще много вопросов... подскажите как научиться правильно выбирать метод атаки, чем руководствоваться?ваша помощь бесценна:)
Я в этом деле далеко не специалист. Пара собственных мыслей по теме, если вам конечно будет интересно.
У Брюса Шнайера в его самоучителе криптоанализу есть что то типа таких слов: если вы хотите стать криптографом то взламывайте взламывайте и еще раз взламывайте. В первую очередь думаю необходимо ознакомиться с наиболее известными типами атак, проанализировать протоколы уязвимые к тем или иным атакам и понять какие ошибки разработчиков привели к этим уязвимостям. Найдите описание первых версий наиболее используемых протоколов(почти все они уязвимы для той или иной атаки) и попробуйте самостоятельно найти уязвимость. Потом переходите к современным протоколам. Пробуйте атаковать ослаблненные версии и тд и тп. Только так самостоятельно вы сможите понять все тонкости работы криптопротокола.
А еще вам нужно понимать, что создание криптопротокола одна из самых сложных задач криптографии. И существуют особые методы анализа протоколов. Но в силу того что методы эти достаточно сложны для понимания, а так же того что до сих пор вроде как не понятно есть от этих методов толк или нет вникать в эти дебри я вам не советую без особой на то нужды.
просто методов очень много, как их применять и в каких случаях тоже не очень понятно... допустим в этой задаче без подсказки я б не разобралась, а с наводкой все понятно... прочитала метод, действительно все просто... проблема в том, что задач вагон, а как к ним оперативно подойти непонятно... У Брюса книга классная, но больше похожа на художественную. Убиваю кучу времени на изучение, почти не отдыхаю, а прогресса незаметно...Как я понимаю, не имея опыта, дело не сдвинется с мертвой точки. Теоретически разобралась во всем, а вот с практической точки зрения не научилась это применять... в любом случае огромное спасибо за помощь.
Разговор после семинара по теории чисел на ММ:
-Вот знаете, вроде всё понятно, а примеры не получается решать..
-Ну как, берёте книжку, смотрите примеры, и решаете, решаете ...
Так придумали же доказуемую безопасность (которая в строгом смысле ничего не доказывает, но это лучше, чем ничего).
Уже даже противники признают, что все протоколы неплохо проектировать с учётом этой методики (на конкурсе хэшей SHA-3 методы доказуемой безопасности похоже получили всеобщее признание, несмотря на критику, а одного из авторов этой методики хитрый Шнайер взял к себе в команду по проектированию конкурсного алгоритма Skein, впрочем практически все серьёзные работы там представлены в такой форме).
И если эти методы уже применяют для разработки и анализа алгоритмов, а не только протоколов, то это уже всерьёз и надолго.
Вот вторая часть коммента /comment36423[link4], чтобы не делать перепост и ещё много где об этом здесь в форуме дискутировалось. Материалы по доказуемой безопасности ищите сами, но в разделе Библиотека[link5] по крайней мере одна ссылка есть.
Нет с тем что доказуемая стойкость это всерьез и надолго я согласен. Другое дело что анализ протоколов, насколько я знаю, все еще находится в начальных стадиях развития и во что это все выльется не ясно.
Простите сообщение не дописал. Я к тому что существовало два лагеря один лагерь применял методы наподобие BAN-логики, другой же как раз таки занимался доказуемой стойкостью. А попытки эти два лагеря както примерить так пока ни к чему не приводят.
Про BAN-логику что-то давно ничего не попадалось. Как-то больше споров между разными направлениями доказуемой безопасности/стойкости: "уберите оракула из вашей модели", а то вдруг при замене его любой реально вычисляемой функцией заведомо будет найден различитель. "Требуем доказательство в стандартной модели" и т.д.