Криптографические протоколы: основные свойства и уязвимости | Прикладная дискретная математика. Приложение. 2009. № 2.

Криптографические протоколы: основные свойства и уязвимости

В лекции рассматриваются основные понятия, связанные с криптографическими протоколами, определяются их основные свойства и уязвимости. Приводятся примеры атак на протоколы. Изложение сопровождается примерами, иллюстрирующими слабости некоторых известных протоколов. Приводится описание некоторых современных систем автоматизированного анализа протоколов.

Cryptographic protocols.pdf Вводные замечанияЦелью настоящей лекции является привлечение внимания к проблематике, связаннойс анализом протоколов. Первая ее часть посвящена ознакомлению с основнымизадачами, возникающими при анализе криптографических протоколов. Лекция имеетне столько обзорный, сколько вводный характер. Поэтому основное внимание уделеноопределению, примерам и основным свойствам протоколов. Понятие безопасностипротокола является очень сложным и многогранным. Современный подход к определениюсвойств, характеризующих безопасность протокола, заключается в точной формулировкеи проверке этих свойств. В современной литературе имеется много различныхтрактовок этих свойств. Поэтому за основу взят подход, принятый в ряде системформального анализа и одобренный комитетом IETF, который определяет 20 такихсвойств. Приводятся примеры наиболее известных атак на протоколы, демонстрирующиенарушение некоторых из заявленных свойств этих протоколов. Более подробнос этими вопросами можно познакомиться по учебному пособию [1].В настоящее время имеется очень большое число различных подходов к анализупротоколов, причем для этого применяется разнообразный математический аппарат.В обзорной лекции не представляется возможным осветить хотя бы в краткой формевсе многообразие применяемых идей. Поэтому во второй части лекции дается общаяхарактеристика некоторых современных систем автоматического анализа протоколови упоминаются методы, лежащие в их основе.1. Основные понятияОпределение. Протокол (protocol) - описание распределенного алгоритма, в процессевыполнения которого два участника (или более) последовательно выполняютопределенные действия и обмениваются сообщениями.В качестве участников (иначе - субъектов, сторон) протокола могут выступать нетолько пользователи или абоненты, но и процессы, выполняющие какую-либо функциональнуюроль, например клиентские и серверные приложения.Предполагается, что все участники выполняют в нем какую-либо активную роль,а пассивные наблюдатели не являются участниками протокола.С понятием протокола непосредственно связаны понятия цикла, шага, роли исеанса.Последовательность шагов протокола группируется в циклы.Цикл (проход) протокола (round, pass of cryptographic protocol) - в криптографическихпротоколах с двумя участниками - временной интервал, в котором активентолько один из участников.Цикл (проход) завершается формированием и отсылкой сообщения с последующимпереходом активного участника в состояние ожидания и передачей активностидругому участнику.В протоколах с тремя и более участниками в синхронном случае цикл - периодвремени между двумя точками синхронизации. К очередной точке синхронизациикаждый участник должен отослать все сообщения, которые ему предписано передатьдругим участникам в текущем цикле. В протоколах интерактивного доказательствациклом (раундом) часто называют комбинацию из трех шагов: заявка, запрос, ответ.В асинхронном случае понятие цикла условно.Шаг (протокола) (step of a protocol, protocol action) - конкретное законченное действие,выполняемое участником (протокола) во время одного цикла (прохода) протокола.Например, шагами протокола могут быть:- вычисление значения некоторой функции;- проверка правильности сертификата ключа;- генерация случайного числа;- отправка сообщения и т. п.Сеанс (session) - это конкретная реализация протокола с конкретными участниками.Пример. Рассмотрим протокол конфиденциальнорго обмена.Цикл 1:Шаг 1: A формирует текстовую последовательность М1.Шаг 2: A вычисляет S1 = (М1).Шаг 3: A отправляет участнику B сообщение S1.Шаг 4: B получает сообщение S1 и из заголовка узнает идентификатор отправителяA.Шаг 5: B вычисляет текст М1 = D^AB(S1).Цикл 2:Шаг 1: B формирует текстовую последовательность М2.Шаг 2: B вычисляет S2 = (М2).Шаг 3: B отправляет участнику A сообщение S2.Шаг 4: A получает сообщение S2 и из заголовка узнает идентификатор отправителяB.Шаг 5: A вычисляет текст М2 = D^BA(S2).Схематическая запись этого протокола имеет следующий вид:(1) A ^ B : EkAB (Mi),(2) A ^ B : (М2).В дальнейшем для краткости будем использовать в основном краткую схематическуюзапись протоколов. Она не заменяет полного описания, но по ней, как правило,можно восстановить описание, используя общие интуитивные соображения.Заметим, что данный протокол использует традиционные криптографические механизмы- шифрование на общих симметричных ключах, причем ключи привязанык направлению для защиты от возможности обратной отсылки переданного сообщения.Вместе с тем этот протокол не защищен от атаки повторением, при которой повторнопередается ранее переданное сообщение от имени того же участника.Введем еще одно важное понятие. Роль - это та функция, которую выполняет конкретныйучастник в конкретном сеансе. Роль определяет порядок действий участника.Набор конкретных реализаций каждой из ролей протокола образует сеанс. В предыдущемпротоколе две роли:- участник A выступает в роли инициатора сеанса протокола:(1) A ^ ? : Бклв (Mi),(2) A ~ ? : ЕкВл(М2 ?);- участник B выступает в роли ответчика:(1) ? ^ B : Еклв (Mi?)(2) ? ~ B : ЕкВл (М2 ).Вопросительный знак указывает те моменты, которые могут быть подменены приреализации конкретного сеанса и которые каждая из сторон должна проверить и получитьподтверждение их аутентичности.Следует заметить, что:- в описаниях протоколов на самом деле фигурируют не конкретные участники,а их роли;- в стенограммах (записях) сеансов фигурируют уже конкретные участники.Если все участники честно выполняют все предписанные протоколом действия,то сеанс полностью повторяет описание протокола, отличаясь лишь тем, что в немфигурируют имена и идентификаторы конкретных участников.Если в работу протокола вмешивается противник либо некоторые из участниковпытаются одновременно выступать в нескольких ролях, то в результате могут получатьсятакие комбинации действий, при которых происходит нарушение одного илинескольких свойств протокола, что приводит к реализации сценария атаки на протокол.2. Понятие криптографического протоколаКоммуникационный протокол устанавливает последовательность действий участниковпри передаче информации или информационном обмене.Обычный коммуникационный протокол обеспечивает установку соединения/сеанса,выбор маршрута, обнаружение искажений и восстановление передаваемой информациии т. п.Безопасность протокола выражается в обеспечении гарантий выполнения такихсвойств, характеризующих безопасность, как доступность, конфиденциальность, целостностьи др. На системном языке говорят о функциях, выполняемых системойбезопасности, либо о предоставляемых ею сервисах. Чтобы не путать с обычным математическимпонятием функции, будем в подобных случаях говорить о функциях-сервисах.Протокол, обеспечивающий поддержку хотя бы одной из функций-сервисов безопасности,называется защишенным или, точнее, протоколом обеспечения безопасности(security protocol). Защитные механизмы либо дополняют, либо встраиваютсяв коммуникационный протокол.Функции-сервисы безопасности. Понятие безопасности распределенных информационныхсистем в настоящее время конкретизируется как степень надежностиреализации разнообразных функций (сервисов) безопасности. Впервые в наиболееполном виде концепция функций-сервисов безопасности изложена в международномстандарте: «Базовая эталонная модель взаимодействия открытых систем. Часть 2:Архитектура безопасности», утвержденном в 1989 г. В 1991 г. этот стандарт был повторенв «Рекомендации X.800: Архитектура безопасности взаимодействия открытыхсистем, для применений МККТТ». Он содержит описание основных (базовых)функций-сервисов безопасности для случая взаимодействия двух систем, а также основныхмеханизмов, обеспечивающих эти услуги, включая криптографические средства.Указано также их желательное расположение в эталонной семиуровневой моделивзаимодействия открытых систем.Функция-сервис безопасности (security services) - защитная функция, выполняемаяподсистемой безопасности и определяемая ее целевым назначением.В соответствии со стандартом ISO 7498.2 для архитектуры безопасности эталонноймодели взаимодействия OSI выделено пять классов таких функций:- аутентификация сторон и аутентификация источника данных,- разграничение доступа,- конфиденциальность,- целостность,- невозможность отказа от факта отправления/получения сообщения,которые могут конкретизироваться для конкретных условий применения. Их определениясодержатся в табл. 1.Определение. Криптографический протокол (cryptographic protocol) -протокол,предназначенный для выполнения функций криптографической системы, в процессевыполнения которого участники используют криптографические алгоритмы.Криптографическая система - система обеспечения безопасности информациикриптографическими методами.Основными функциями криптографической системы являются обеспечение конфиденциальности,целостности, аутентификации, невозможности отказа и неотслежива-емости.В качестве подсистем она может включать:- системы шифрования,- системы идентификации,- системы имитозащиты,- системы цифровой подписи и др., а также ключевую систему.Длякриптографических систем понятие стойкости хорошо известно - их способностьпротивостоять атакам противника и/или нарушителя, как правило, имеющимцелью нейтрализацию одной или нескольких функций безопасности и, прежде всего,получение секретного ключа.Пусть далее нарушитель - внутренний нарушитель, т. е. участник протокола, нарушающийпредписанные протоколом действия, а противник - внешний субъект (иликоалиция субъектов), наблюдающий за передаваемыми сообщениями и, возможно,вмешивающийся в работу участников путем перехвата, искажения (модификации),вставки (создания новых), повтора и перенаправления сообщений, блокирования передачии т. п. с целью нарушения одной или нескольких функций-сервисов безопасности.Часто допускается, что противник может образовывать коалицию с нарушителем.Т а б л и ц а 1Функции-сервисы безопасностиФункция-сервис НазначениеАутентификация источникаданных (data originauthentication service)Обеспечивает возможность проверки того, что полученныеданные действительно созданы конкретнымисточником. Данная функция не обеспечивает защитыот повторного навязывания или модификацииданныхАутентификация сторон(peer entity authenticationservice)Обеспечивает возможность проверки того, что однаиз сторон информационного взаимодействия действительноявляется той, за которую она себя выдает. Применяетсяс целью защиты от атаки типа имитация иот атаки на протокол с повторной передачейКонфиденциальностьданных (data confidentialityservice)Обеспечивает невозможность несанкционированногополучения доступа к данным или раскрытия данныхНевозможность отказа(non-repudiation service)Обеспечивает невозможность отказа одной из сторонот факта участия в информационном обмене (полностьюили в какой-либо его части)Невозможность отказас доказательством получения(non-repudiationservice with proof ofdelivery)Обеспечивает невозможность отказа получателя отфакта получения сообщенияНевозможность отказас доказательством источника(non-repudiationservice with proof of origin)Обеспечивает невозможность отказа одной из сторонот факта отправления сообщенияЦелостность данных(data integrity service)Обеспечивает возможность проверки того, что защищаемаяинформация не подверглась несанкционированноймодификации или разрушениюОбеспечение целостностисоединения без восстановления(connectionintegrity service withoutrecovery)Обеспечивает возможность проверки того, что вседанные, передаваемые при установленном соединении,не подверглись модификации, без восстановленияэтих данныхОбеспечение целостностисоединения с восстановлением(connectionintegrity service withrecovery)Обеспечивает возможность проверки того, что вседанные, передаваемые при установленном соединении,не подверглись модификации, с восстановлениемэтих данныхРазграничение доступа(access control service)Обеспечивает невозможность несанкционированногоиспользования ресурсов системы. Данный термин понимаетсяв самом широком смысле. На практикерешение о предоставлении доступа основывается нааутентификации сторонЗаметим, что во многих формальных методах анализа протоколов противник отождествляетсяс сетью.3. Свойства, характеризующие безопасность протоколовКриптографическая система может обеспечивать различные функции безопасности,для реализации которых применяются разнообразные криптографические протоколы.Свойств, характеризующих безопасность криптографического протокола, такжедостаточно много. Обычно свойства протоколов, характеризующие их стойкость к различныматакам, формулируют как цели (goals) или требования к протоколам. Трактовкаэтих целей со временем меняется и уточняется. Наиболее полное и современноетолкование этих целей дается в документах международной организации IETF.Под свойствами (целями, требованиями) безопасности в документах IETF в настоящеевремя понимаются следующие 20 целей, сгруппированные в 10 групп (табл. 2).Приведем определения некоторых из перечисленных там свойств.Таблица 2Свойства безопасности протоколов№ Код Название1 G1G2G3Аутентификация субъектаАутентификация сообщенияЗащита от повтора2 G4G5Неявная (скрытая) аутентификация получателяАутентификация источника3 G6 Авторизация (доверенной третьей стороной)4 G7G8G9G10G11Аутентификация ключаПодтверждение правильности ключаЗащищенность от чтения назадФормирование новых ключейЗащищенная возможность договориться о параметрах безопасности5 G12 Конфиденциальность6 G13G14Обеспечение анонимности при прослушивании (несвязываемость)Обеспечение анонимности при работе с другими участниками7 G15 Ограниченная защищенность от атак типа отказ в обслуживании8 G16 Неизменность отправителя9 G17G18G19ПодотчетностьДоказательство отправкиДоказательство получения10 G20 Безопасное временное свойство(G1) Аутентификация субъекта (Аутентификация сторон, Peer EntityAuthentication) - проверка с подтверждением подлинности одной из сторон наличияили полномочий (посредством представленных доказательств и/или документов)идентичности второй стороны, участвующей в выполнении протокола, а также того,что она действительно принимает участие в выполнении текущего сеанса протокола.Обычно она осуществляется посредством набора данных, который мог быть сгенерировантолько вторым участником (как отклик на запрос, например).Таким образом, обычно аутентификация субъекта предполагает, что некоторыеданные могут быть безошибочно возвращены некоторому субъекту, что предполагаетаутентификацию источника данных (Data Origin Authentication).(G2) Аутентификация сообщения (Message authentication) - обеспечениеаутентификации источника данных и целостности передаваемого сообщения.Аутентификация источника данных (Data Origin Authentication) означает, что протоколдолжен обеспечивать средства гарантии того, что полученное сообщение иличасть данных были созданы некоторым участником в некоторый (как правило, неопределенный)момент времени, предшествующий получению сообщения, и что эти данныене были искажены или подделаны, но без предоставления гарантий однозначности исвоевременности.Поскольку уверенность в том, что данные были созданы некоторым участником,без гарантии того, что они не были модифицированы, не представляет практическогоинтереса, то обычно полагают, что требование аутентификации сообщения влечеттребование его целостности.(G3) Защита от повтора (Replay Protection) - гарантирование одним участникомтого, что аутентифицированное сообщение не является старым.В зависимости от контекста, это может иметь разный смысл:- сообщение было сгенерировано в данном сеансе протокола;- сообщение было сгенерировано в течение известного промежутка времени;- сообщение не было принято ранее.(G5) Аутентификация источника (Source Authentication) -законные группыучастников должны быть способны аутентифицировать источник и содержаниеинформации или групповой коммуникации.Это относится к случаям, когда группы участников не доверяют друг другу.(G7) Аутентификация ключа (Key Authentication) - это свойство предполагает,что один из участников получает подтверждение того, что никакой другойучастник, кроме заранее определенного второго участника (и, возможно, других доверенныхучастников), не может получить доступа ни к одному секретному ключу.(G8) Подтверждение правильности ключа (Key Confirmation, Key Proofo f Possession) -один из участников получает подтверждение того, что второй участник(возможно, неопределенный) действительно обладает конкретным секретнымключом (либо имеет доступ ко всем ключевым материалам, необходимым для еговычисления).(G9) Защищенность отчтения назад / Совершенная секретность в будущем(Perfect Forward Secrecy, PFS) -протокол обладает этим свойством, есликомпрометация долговременных ключей не приводит к компрометации старых сеансовыхключей.(G12) Конфиденциальность (Confidentiality, Secrecy) -свойство, состоящеев том, что специфический набор данных (обычно посылаемый или полученный какчасть «защищенного» сообщения, а также сформированный на основе данных, полученныхв результате обмена) не станет доступным или раскрытым для неавторизованныхсубъектов или процессов, а останется неизвестным противнику.Мы принимаем соглашение, что секретность сеансового ключа, сгенерированногов результате процедуры открытого распределения ключей, рассматривается не здесь,а в п. «Аутентификация ключа» (см. выше).Заметим, что секретность долговременного ключа, используемого в протоколе, нерассматривается как целевое свойство безопасности протокола, а относится к исходным предположениям. В табл. 3 указаны свойства безопасности некоторых протоколов.Таблица 3Примеры свойств безопасности, характеризующих протоколыПротокол \ Цель G 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15EAP-IKEv2 X X X X X X XEKE X X XIKE X X X X X X X X X XIKEv2 X X X X X X X XDHCP-IPSec-tunnel X X Xkerberos X X X X X XSSH X X X X X XTLS X X X X X X XTLS-v1.1 X X X X X X XTLS-SRP X X X X X X Xtls-sharedkeys X X X X X X XSET X X X X4. Основные атаки на безопасность протоколовОпределение. Под атакой на протокол понимается попытка проведения анализасообщений протокола и/или выполнения не предусмотренных протоколом действийс целью нарушения работы протокола и/или получения информации, составляющейсекрет его участников.Атака считается успешной, если нарушено хотя бы одно из заявленных свойств,характеризующих безопасность протокола.В основе атак могут лежать различные методы анализа протоколов.Пример. Рассмотрим протокол передачи секретного ключа k от A к B без использованиякакой-либо общей секретной информации. Его названия: «бесключевой»протокол А. Шамира, либо - трехпроходный протокол Шамира - Ривеста - Адлемана:(1) A ^ B : Efc,(k),(2) A ^ B : (Ek,(k)),(3) A ^ B : Дъ, (EkB (Ek,(k))) = (k).Здесь E - коммутирующее шифрующее преобразованиеEfcl (Efc2 (x)) Efc2 (Ekl (x))при всех сообщениях x и произвольных ключах ki и k2. Заметим, что в этом протоколеможно использовать не каждое коммутирующее преобразование E. Например, дляEfc, (k) = k 0 Гапротокол оказывается заведомо нестойким:(1) A ^ B : Efc,(k) = k 0 Га,(2) A ^ B : EfcB (Efc, (k)) = k 0 Га 0 ГБ,(3) A ^ B : Dfc,(E fcB (Efc, (k))) = EfcB (k) = k 0 ГБ.Поэтому в протоколе Шамира рекомендуется использовать преобразование видаЕкл (к) = ka mod p,в котором константа а определяется ключом к а , а p - большое простое число.Укажем некоторые слабости и приведем примеры атак на этот протокол.Слабость 1: отсутствует аутентификация сторон.Можно применить атаку путем подмены участника.Атака 1: (impersonation attack)(1) A - C(B) : Екл (к),(2) A ^ C(B) : Екс (Екл (к)),(3) A - C(B) : Екс (к).Противник C блокирует передачу к B , выступая от имени участника B . В результатеC получил от A ключ к для связи с ним от имени B .Слабость 2: сообщения участников симметричны.Поэтому протокол не является стойким и к атаке повторением.Атака 2: (replay attack)(1) A - C(B): Екл (к),(2) A ^ C(B) : ЕкА(к),(3) A - C(B) : к.Для ее проведения нарушитель C осуществляет доступ к сети от имени участникаB , повторяя первое сообщение участника A . В результате ключ к появляется вканале связи в явном виде.Можно защитить протокол от этой атаки, осуществляя проверку на втором шагес целью отбраковки повторно переданных сообщений. Но, как заметил Карлсен(Carlsen), все равно можно осуществить аналогичную атаку путем чередования сообщенийдвух различных сеансов:Атака 3: (interleaving attack)(1) A - C(B) Екл (к),(1') A - C(B) Екл (к'),(2') A ^ C(B) Екл (k),(3') A - C(B) к,(2) A ^ C(B) М,(3) A - C(B) DkA (М)Здесь М - произвольное фиктивное сообщение.Стойкость протокола зависит от многих факторов:- от надежности криптографических механизмов;- от правильности реализации;- от точности выполнения порядка предписанных действий участниками протоколаи др.Основное внимание будем концентрировать на тех слабостях протоколов, которыеобусловлены способом формирования и порядком отправки сообщений участниками,то есть ошибками, допущенными при синтезе самих протоколов, представляющих собойпредписания, определяющие порядок действий всех участников.Приведем основные предположения, которые применяют при анализе протоколов.Предположен^ 1. Perfect cryptography assumption - все стандартные криптографическиепримитивы удовлетворяют условию совершенной стойкости; слабости могутбыть вызваны только непродуманным порядком действий, предписанных самим протоколом.Предположена 2. Strong typing assumption (строгое соблюдение типов) - всеучастники правильно понимают форматы получаемых сообщений и корректно распознаюттипы полей в записи передаваемых сообщений.Предположен^ 3. Honest participants (честность участников) - все участникиточно выполняют предписанный согласно протоколу порядок действий.Предположена 4. Bounded number of sessions (ограниченное число сеансов) -для сведения задачи к конечному числу состояний.Заметим, что при неограниченном числе сеансов проблема безопасности протоколанеразрешима (S. Even, O. Goldreich, 1983).При классификации атак на безопасность протоколов можно применять различныеподходы:- по способу воздействия (активная, пассивная);- по цели (на какое свойство протокола осуществляется атака);- по области применения (универсальные, зависящие от реализации);- по классу протоколов;- по применяемому математическому аппарату (без дополнительных средств, например,используя только повтор, отражение или задержку сообщений; статистические;алгебраические и др.);- по способу применения (число необходимых сеансов, можно ли ограничитьсястарыми или нужны вновь открытые параллельные сеансы);- по требуемым ресурсам (ограниченные или неограниченные вычислительныевозможности);- по наличию и характеру дополнительной информации (известные сообщения,сеансовые или долговременные ключи и т. п.), и т. д.5. Перечень наиболее широко известных атакна криптографические протоколы1. Подмена (impersonation) - попытка подменить одного пользователя другим. Нарушитель,выступая от имени одной из сторон и полностью имитируя ее действия,получает в ответ сообщения определенного формата, необходимые для подделки отдельныхшагов протокола.Методы противодействия состоят в:- сохранении в тайне от противника информации, определяющей алгоритм идентификации;- использование различных форматов сообщений, передаваемых на разных шагахпротокола;- вставка в них специальных идентификационных меток и номеров сообщений.В протоколах с использованием третьей стороны возможны атаки, основанные наподмене доверенного сервера.Например, одна из сторон, имеющая доверительные отношения с сервером, выступаетот его имени, подменяет его трафик обмена с другими сторонами и в результатеполучает возможность раскрывать значения генерируемых центром ключей.Эта атака может быть успешной для протоколов, в которых аутентификация придоступе к серверу основана только на идентификаторах сторон и случайных числах,генерируемых при каждом взаимодействии.Для защиты от таких атак применяют средства привязки ключей не к одной, ак обеим взаимодействующим сторонам путем передачи обоих идентификаторов в зашифрованномвиде.2. Повторное навязывание сообщения (replay attack) - повторное использованиеранее переданного в текущем или предыдущем сеансе сообщения или какой-либо егочасти в текущем сеансе протокола.Например, повторная передача информации ранее проведенного протокола идентификацииможет привести к повторной успешной идентификации того же самого илидругого пользователя.В протоколах передачи ключей данная атака часто применяется для повторногонавязывания уже использованного ранее сеансового ключа - атака на основе новизны(freshness attack).Методы противодействия состоят в обеспечении целостности сеанса и невозможностивставки в него лишних сообщений. Для этого используется:- техника типа «запрос - ответ»;- вставка в передаваемые сообщения временных меток, случайных чисел или возрастающихпоследовательностей чисел.3. Еще один тип подобных атак связан с обратной передачей адресату ранее переданныхим сообщений и получил название атака отражением (reflection attack). Частоатаки данного типа относят к классу атак с повторным навязыванием сообщения.Для защиты от таких атак протоколы специально делают несимметричными, включаяв зашифрованные сообщения идентификаторы сторон либо изменяя процедурытак, чтобы стороны должны были выполнять разные действия, вводят в протоколидентификационную информацию, используют различные ключи для приема и передачисообщений.4. Задержка передачи сообщения (forced delay) - перехват противником сообщенияи навязывание его в более поздний момент времени. Это также разновидность атакис повторным навязыванием сообщения.Методы противодействия включают использование случайных чисел совместно сограничением временного промежутка для ответа, использование временных меток.5. Комбинированная атака (interleaving attack) - подмена или другой метод обмана,использующий комбинацию данных из ранее выполненных протоколов, в томчисле протоколов, ранее навязанных противником.Метод противодействия состоит в обеспечении целостности сеансов протоколов иотдельных сообщений.6. Специальный частный случай предыдущей атаки, в котором противник специальнооткрывает одновременно несколько параллельных сеансов с целью использованиясообщений из одного сеанса в другом, получил название атака с параллельнымисеансами (parallel-session attack).Пример: протокол NSPK (Needham - Schroeder public key protocol). Это протоколосуществления взаимной аутентификации, предложенный Нидхэмом и Шредеромв 1978 г.:A ^ B : Eb(га, A),A ^ B : EA(rA,rB),A ^ B : Eb(rB).В данном случае дважды используется техника «запрос - ответ», причем случайныечисла спрятаны внутри зашифрованных сообщений.17 лет он считался стойким, пока G. Lowe в 1995 г. с использованием автоматизированногосредства FDR не обнаружил слабость: нарушитель C , используя свой законныйобмен с участниками A и B , может открыть второй сеанс протокола с участникомB и при этом, чередуя сообщения обоих сеансов (interleaving attack), может найтислучайное число Гв, сгенерированное участником B :(1) A - C : Ес(га , A),(1') C(A) - B : Ев (г а , A),(2') C(A) ^ B : Еа(та,тв ),(2) A ^ C: Еа(га,гв ),(3) A - C: Ес (rB ),(3') C(A) - B : Ев (гв).В результате C может убедить участника B в том, что он выступает от имени A .7. Атака с использованием специально подобранных текстов - атака на протоколытипа «запрос - ответ», при которой противник по определенному правилу выбираетзапросы с целью получить информацию о долговременном ключе доказывающего.Эта атака может включать специально подобранные- открытые тексты, если доказывающий должен подписать или зашифроватьзапрос,- шифрованные тексты, если доказывающий должен расшифровать запрос.Методы противодействия этой атаке состоят:- во включении случайных чисел в запросы или ответы, а также- в использовании протоколов с нулевым разглашением.8. Использование противником своих средств в качестве части телекоммуникационнойструктуры - атака, при которой в протоколе идентификации между Aи B противник входит в телекоммуникационный канал и становится его частью приреализации протокола между A и B .При этом противник может подменить информацию, передаваемую между A и B .Эта атака особенно опасна в случае формирования участниками A и B общегоключа по протоколу Диффи - Хеллмана. Она известна как «противник в середине»и заключается в полной подмене всех сообщений между сторонами.Пример: протокол Диффи - Хеллмана. Первый алгоритм открытого распределенияключей был предложен У. Диффи и М. Хеллманом (Diffie W., Hellman M. E.)в 1976 г. Для его выполнения стороны должны договориться о значениях большогопростого числа p и образующего элемента а мультипликативной группы Z* == {1, 2,... ,p - 1}. Для выработки общего ключа к они должны сгенерировать случайныечисла х, 1 ^ х ^ p - 2, и у, 1 ^ у ^ p - 2, соответственно. Затем они должныобменяться сообщениями.Протокол DH:A - B : ах mod p,A ^ B : ау mod p.Искомый общий ключ теперь вычисляется по формулек = ( а у ) х = ( а х ) у mod p.Слабость: отсутствие аутентификации сторон.Атака: («противник в середине»)AAC (B):C (A)C(A)C(B) :aB :B :mod p,ax* mod p,ay mod p,ay* mod p.Противник C:- выбирает числа ж* и у*;- подменяет ax и ay на ax и ay соответственно;- вычисляет ключи kAC = (ax)y mod p и kCB = (ay)x mod p.В результате C полностью контролирует обмен сообщениями между A и B, A и Bне замечают подмену - они уверены, что связываются непосредственно друг с другом.Пример. Протокол MTI. Интересный подход к защите протокола DH от атаки«противник в середине» был предложен Т. Мацумото, И. Такашима и Х. Имаи(Matsumoto T., Takashima Y., Imai H.) в 1986 г. Они предложили серию протоколов,предполагающих наличие у абонентов открытых ключей и использующих различныемодификации процедуры выработки общего ключа.Рассмотрим протокол MTI/A0. Предположим, что участники A и B имеют секретныеключи а, 1 ^ а ^ p - 2, и b, 1 ^ b ^ p - 2, соответственно и публикуют своиоткрытые ключи вА = aa mod p и вВ = ab mod p. Для выработки общего секретногоключа k они должны сгенерировать случайные числа ж, 1 ^ ж ^ p- 2, и у, 1 ^ y ^ p-2,соответственно, а затем обменяться следующими сообщениями:A ^ B : ax mod p,A ^ B : ay mod p.Теперь участники A и B вычисляют общий ключ k = axb+y" mod p по формуламkA = (ay)a вВ mod p,kB = (ax)b вУУ mod pсоответственно.Любая подмена сообщений приводит к тому, что все стороны получают различныезначения ключа, в результате чего становится невозможным чтение всей передаваемойинформации. Тем самым свойство аутентификации ключа протокола при атаке«противник в середине» не нарушено. Вместе с тем этот протокол не обеспечиваетаутентификации сторон и подтверждения правильности получения ключа.Покажем, что даже после усиления этого протокола путем добавления к пересылаемымсообщениям сертификатов он остается уязвимым к подмене содержания передаваемыхсообщений, а именно, этот протокол не обеспечивает аутентификации сторон.Атака на протокол M TI/A0, в которой нарушитель C подменяет сертификатучастника A на свой собственный. Пусть участник A получил сертификатcertA = (A,eA, SigT(A,eA)).Нарушитель C регистрирует для себя сертификат- >certc = (С,вА, SigT(С,вА)),где e - произвольное число, предназначенное для того, чтобы скрыть связь с ключомучастника A. Далее он использует следующий протокол:A - C(B) : certA,ax mod p,C - B : certC ,ах mod p,C ^ B : cert^,ау mod p,A ^ C(B) : cert^, (ау)e mod p.В результате участник B будет уверен, что полученный в результате выполненияэтого протокола ключк = aaey+bx mod pбудет общим ключом с участником C , а не с участником A , который ничего об этом неподозревает. При этом участник A вычислит тот же ключ к. Поэтому вся информация,полученная от участника A и зашифрованная на этом ключе, будет восприниматьсяучастником B как полученная от участника C , а не от A.Таким образом, данный протокол хотя и обеспечивает аутентификацию ключа дляучастника A , в то же время не обеспечивает аутентификации сторон, а также аутентификацииключа для участника B .9. Во многих случаях проведение атаки облегчает дополнительная информация.Например, атака с известным сеансовым ключом (known-key attack) заключается в попыткеполучения информации о долговременном ключе или любой другой ключевойинформации, позволяющей восстанавливать сеансовые ключи для других сеансов протокола.Для защиты от такой атаки обеспечивают независимость между различными применяемымиключами, которая достигается с помощью протоколов совместной выработкиключа, гарантирующих свойство новизны ключа (freshness) и не позволяющихни одному из участников заранее предсказать значение ключа.10. Атака с неизвестным общим ключом (unknown key-share attack) - атака, прикоторой нарушитель C открывает два сеанса с A и B , выступая в первом случае отимени B , хотя последний может ничего не знать об этом. При этом в результате будетсформирован общий ключ между A и B , причем A будет уверен, что сформировалобщий ключ с B , а B будет уверен, что сформировал общий ключ с C. Сам ключможет быть не известен C.Примерный сценарий может выглядеть так: пусть B - филиал банка и A - держательсчета. Сертификат выдается центральным банком и содержит информациюо держателе счета. Пусть протокол электронного депозита вкладов должен выработатьключ для филиала. После аутентификации B как отправителя зашифрованныйвклад помещается на счет, указанный в сертификате. Если не проводится никакой последующейаутентификации в зашифрованном сообщении депозита, то при успешнопроведенной атаке вклад будет положен на счет C вместо счета A.Пример: протокол STS. Попытка построения аутентифцированного протоколана базе DH была предпринята в протоколе STS (station-to-station), созданном У. Диффи(W. Diffie), П. Ван Ооршотом (P. Van Oorschot) и M. Вейнером (M. Wiener) в 1992 г.A - B : A,B, mA = ах mod p,A ^ B : B,A, тв = ау modp, Ек(SigB(тв ,mA)),A - B : A, B, Ек(SigA(mA,mв)).Здесь SigA и Sigв - цифровые подписи пользователей A и B соответственно,к = аху mod p - искомый общий ключ.Вставка во второе и третье сообщения протокола значений цифровых подписейпозволяет гарантировать достоверность получения сообщения именно от того пользователя,от которого это сообщение получено.Шифрование значений подписей пользователей с помощью симметричного алгоритмаE введено для того, чтобы обеспечить взаимное подтверждение правильностивычисления значения ключа, так как при неверно вычисленном ключе невозможнополучить верные значения цифровых подписей.Атака: (Lowe G., 1996) (атака с неизвестным общим ключом) (unknown key-shareattack, UKS attack)A ^ C(B) : A,B,mA,C ^ B : C,B,mA,C ^ B : B, C,mg, Efc(Sigg(mg,ша)),A ^ C(B) : B ,A,m g, Efc(Sigg(mB,ша)),A ^ C(B) : A, B, Efc(SigA(mA,mg)).Нарушитель C, используя свой законный обмен с участником B, может применитьпротив участника A атаку, в результате которой он может убедить A в том, что он выступаетот имени B. Нарушитель C использует свой законный обмен с участником Bи убеждает A в том, что он выступает от имени B. Сеанс с участником B остаетсянезавершенным, так как C, не зная секретного ключа участника A, не сможет подобратьправильный ответ для B. Поэтому любое его сообщение на третьем шаге будетучастником B отвергнуто.Данная атака не представляет реальной опасности, так как при этом нарушитель небудет знать секретного ключа k = axy mod p и поэтому не сможет читать передаваемыесообщения, передаваемые от A к B. Однако в результате участник A не будет ничегоподозревать и примет участника C за B.Таким образом, протокол не обеспечивает: аутентификации сторон, аутентификацииключа для участника B, так как последний будет полагать, что сформировалобщий ключ с участником C, а на самом деле - с участником A.Пример: модифицированный протокол STS. В 2004 г. K. Бойд и А. Матурапредложили следующую модификацию протокола STS:A ^ B : A, B, mA = ax mod p,A ^ B : B, A, mB = ay mod p, SigB(mB, mA), hko(mB, mA)A ^ B : A, B, SigA(mA,mg),hfco(mA,mB),где ko = f (k) - ключевой параметр хеш-функции, вычисляемый как значение некоторойфункции от результирующего сеансового ключа k = axy mod p.Атака: для данной версии протокола можно применить двустороннюю атакус неизвестным общим ключом (bilateral unknown key-share attack, BUKS attack):A ^ C : A, B, mA,C ^ D : A, B, mA,D ^ B : D, B, mA,D ^ B : B ,D ,m g , SigB(mB,ша), hfco(mB,ша),C ^ D : B,A,mg,hfc0(mB,ша)A ^ C : C, A, mg, Sigc (mg,mA),hfco(mg,ша),A ^ C : A, C, SigA(mA,mg),hfco(mA,mg),C ^ D : A,B,hfco(mA,mg),D ^ B : D, B, SigD(mA, mg),hfco(mA,mg).В результате участники C и D , вступившие в сговор, вводят в заблуждение участниковA и B , сформировавших общий ключ. При этом участник A уверен, что онсформировал общий ключ с участником C , а участник B уверен, что он сформировалобщий ключ с участником D .11. Имеется большое число типов атак, которые зависят от конкретной реализациипротокола.Например, для криптографических протоколов на основе симметричных шифр-систем можно использовать особенности работы самих шифрсистем и, в частности,реализованных способов и режимов шифрования, синхронизации и т. п.Чтобы защититься от подобных атак, необходимо провести анализ архитектурыпротокола и структуры передаваемых сообщений с целью определения возможныхуязвимостей, позволяющих, например, осуществить навязывание сообщений с известнымиили одинаковыми значениями определенных полей, либо с помощью подменытипа некоторых полей.12. Для криптографических протоколов, построенных на основе асимметричныхшифрсистем, основной уязвимостью является возможность осуществления подменыоткрытого ключа одного из участников на другой открытый ключ с известной противникусекретной половиной этого ключа. В частности, это позволяет противникуузнавать содержа

Ключевые слова

криптографический протокол, аутентификация

Авторы

ФИООрганизацияДополнительноE-mail
Черемушкин Александр ВасильевичИнститут криптографии, связи и информатики, г. Москвадоктор физико-математических наук,заведующий кафедройavc238@mail.ru
Всего: 1

Ссылки

Черемушкин А. В. Криптографические протоколы. Основные свойства и уязвимости: учебное пособие. М.: Изд. центр «Академия», 2009. 272 с.
Index of the security protocols repository (SPORE) / / Laboratorie Specification et Verification. http://www.lsv.ens-cachan.fr/spore/table.html.
Clark J., Jacob J. A Survey of Authentication Protocol Literature: Version 1.0. 17 Nov. 1997. http://www.cs.york.ac.uk/ jac/papers/drareview.ps.gz, 1997.
Menezes A. J., van Oorschot P. C., Vanstone S. A. Handbook of applied cryptography. Boca Raton, New York, London, Tokyo: CRC Press, 1997. 780 p.
Cremers C. J. F., Lafourcade P. Comparing State Spaces in Automatic Security Protocol Verification. ETH Technical Report. 2007. No. 558. 26 p.
 Криптографические протоколы: основные свойства и уязвимости | Прикладная дискретная математика. Приложение. 2009. № 2.

Криптографические протоколы: основные свойства и уязвимости | Прикладная дискретная математика. Приложение. 2009. № 2.