Научная статья на тему 'О длинных атаках на пинг-понг протоколы'

О длинных атаках на пинг-понг протоколы Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
154
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ / COMPUTATIONAL COMPLEXITY / МОДЕЛЬ УГРОЗЫ ДОЛЕВА--ЯО / DOLEV-YAO INTRUDER MODEL / КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ / PING-PONG PROTOCOLS / PROTOCOL SECURITY / ПИНГ-ПОНГ ПРОТОКОЛЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Непейвода Антонина Николаевна

Ранее автором было показано, что криптографические пингпонг протоколы в модели угрозы Долева–Яо можно верифицировать посредством моделирования в префиксных грамматиках. В статье рассматриваются примеры атак на пинг-понг протоколы, которые удовлетворяют верхней оценке на длину пути, порожденного модельной префиксной грамматикой, приведенной в предыдущих работах автора

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О длинных атаках на пинг-понг протоколы»

ISSN 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ №4(27), 2015, с. 341-351 УДК 510.52

А. Н. Непейвода О длинных атаках на пинг-понг протоколы

Аннотация. Ранее автором было показано, что криптографические пинг-понг протоколы в модели угрозы Долева—Яо можно верифицировать посредством моделирования в префиксных грамматиках. В статье рассматриваются примеры атак на пинг-понг протоколы, которые удовлетворяют верхней оценке на длину пути, порожденного модельной префиксной грамматикой, приведенной в предыдущих работах автора.

Ключевые слова и фразы: криптографические протоколы, вычислительная сложность, пинг-понг протоколы, модель угрозы Долева—Яо.

Введение

Один из самых частых видов угроз при передаче секретных данных по открытому каналу — это угроза типа «человек в середине»: некто выдает себя за одного из участников передачи и от его имени отправляет сообщения другим так, что они не могут установить факт подмены. Таким образом можно получить доступ к секретной информации, даже если предполагается, что шифрование абсолютно надежно, т.е. результат /(х) применения шифрующего алгоритма к слову х не несет никакой информации о самом слове х. Чтобы избежать подобных угроз, были разработаны криптографические протоколы. Криптографический протокол — это описание правил поведения пользователей при обмене сообщениями. Как правило, он составлен так, чтобы злоумышленнику было как можно труднее выдать себя за правомерного пользователя протокола. Далее мы рассматриваем лишь один класс криптографических протоколов, называемый пинг-понг протоколы.

Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта №14-07-00133_а и госзадания ФАНО России — НИР «Методы анализа и верификации моделей вычислительных систем и алгебраических объектов на основе средств функционального и логического программирования» (№ г/р 01201354590).

© А. Н. Непейвода, 2015

© Институт программных систем имени А. К. Айламазяна РАН, 2015 © Программные системы: теория и приложения, 2015

Пинг-понг протокол требует, чтобы передаваемое секретное сообщение было представлено единственной строкой, изменяемой посредством конечного множества операций. Участники протокола по очереди применяют операции этого множества к сообщению и пересылают друг другу результат, как будто передавая мяч при игре в пинг-понг. Допустим, что нарушитель может перехватывать все сообщения, которыми обмениваются данные пользователи, и подменять эти сообщения на другие, полученные либо применением некоторого конечного множества операций, доступных нарушителю, либо подстановкой вместо исходного сообщения другого, порожденного в ходе использования того же самого протокола теми же участниками (эта модель угрозы называется моделью угрозы Долева-Яо [1]). Долев, Ивен и Карп показали, что вопрос о безопасности пинг-понг протокола в такой модели угрозы становится алгоритмически разрешим [2].

Пинг-понг протокол можно промоделировать префиксной грамматикой [3], после чего задача его верификации сводится к проблеме пустого слова в языке, порожденном модельной грамматикой. В работе [4] была приведена оценка на длину кратчайшего пути, порожденного модельной префиксной грамматикой, заканчивающегося пустым словом (далее пустое слово всюду обозначаем Л), в худшем случае. Оставался вопрос, существует ли протокол, атаки на который имели бы длину, согласованную с этой оценкой. В данной статье приведены несколько вариантов таких протоколов.

1. Понятие пинг-понг протокола и атаки на него

Словарем пользователя и назовем множество всех доступных для него действий, которые могут представлять собой как единичные операторы преобразования сообщений, так и их композиции. Далее обозначаем это множество как £и. Прописные латинские буквы, выделенные полужирным шрифтом, в дальнейшем выступают как обозначения имен пользователей либо протоколов. Прописные латинские буквы, не выделенные полужирным — как обозначения операторов преобразования сообщений.

Здесь и далее считаем, что любые два криптографических оператора С, Р не удовлетворяют никаким соотношениям, кроме, возможно, соотношений вида С о Р = Л. Далее всюду мы опускаем знак операции композиции.

Укажем обозначения для часто используемых криптографических операторов, которые могут быть в Еи, и опишем их формальные свойства.

(1) Оператор шифрования открытым ключом Ех. Операция Ех(М) зашифровывает М ключом пользователя X.

(2) Оператор расшифровки Их. Операция Их(М) расшифровывает М ключом пользователя X. Оператор Их обратен Ех: выполнено как ОхЕх = Л, так и ЕхОх = Л — допустимо как расшифровывать уже наложенный шифр, так и предотвращать шифрование.

(3) Оператор приписывания имени ах. Операция ах(М) приписывает имя пользователя X в начало сообщения М.

(4) Оператор удаления имени ¿х. Операция ¿х(М) стирает префикс М, соответствующий имени пользователя X. ¿х является левым обратным для ах, так что выполнено ¿хо*х = Л, но

¿хах = Л.

Ех, ^х, ¿х — открытые, доступные всем пользователям сети операторы, а Их — секретный, доступный лишь пользователю X. В примере 3 также используются операторы Ех и Сх, не являющиеся ни открытыми, ни секретными в обычном смысле.

Определение 1. Двухсторонний пинг-понг протокол Р[Иь И2] — это кортеж пар (И&, «¿[Их, И2]), где к = 1, если г нечетно, и к = 2 в противном случае, и «¿[Их, И2] — последовательность операторов из словаря И^.

Пусть Их, И2 — легальные пользователи сети, I — злоумышленник. Протокол Р[Их, И2] ненадежен, если существует последовательность строк Рх, ..., ¡Зь такая, что

(1) !Зк ...Д^Иь И2] = Л.

(2) Выполнено одно из двух условий:

(a) € Ех, или

(b) А = [X, У], X € {Их, И2, I}, У € {Их, И2, I}, X = У, 3 = 1 (шоё 2) ^ & € Ех, з = 0 (шоё 2) ^ & € Е^.

Здесь первое условие соответствует применению злоумышленником какого-либо действия из своего словаря к перехваченной строке операторов. Второе действие соответствует применению пользователями X и У 2-ого правила протокола Р[Их, И2].

ЕваАЕв(М)

Рис. 1. Легальное взаимодействие по протоколу Ри0иЫе\Х, V]

Рис. 2. Схема взлома протокола Рп0иЫе[Х, V]

Пример 1. Обратимся к протоколу Р^ои]Э1е\Х, V], описанному в [2]:

РВоиЫе[Х, V] = ((X, ахЕ^), (V, ЕхП^¿хП^)).

Взаимодействие двух легальных пользователей по Рп0иЫе[Х, V] изображено на рис. 1. РпоиЫе[Х, V] ненадежен. Одна из атак на него показана на рис. 2. В ней участвуют легальные пользователи А и В и злоумышленник I. Злоумышленник перехватывает Ев ад. Ев (М), приписывает к нему свое имя и шифрует опять ключом Ев. В считает пересланное сообщение продолжением некоего правомерного взаимодействия с I по тому же протоколу и отсылает ему Е1адЕв(М). I расшифровывает сообщение ключом П\, стирает ад и повторяет свои предыдущие действия. После ответа В злоумышленник I получает Е\(М) и читает М.

Рассмотрим другую последовательность действий А, В и I, изображенную на рис. 3. И опять злоумышленник получает доступ к М. Но теперь после перехвата Ед(М) нарушитель I начинает протокольное взаимодействие с А.

Видно, что один и тот же протокол может содержать целый ряд уязвимостей. Возникает вопрос: можно ли их обнаружить переборным поиском атак вплоть до некоторой (разумной) величины?

2. Простейший пример протокола с экспоненциально длинной атакой

Верхняя оценка на длину кратчайшей атаки на пинг-понг протокол приведена в [4] — она экспоненциальна от числа правил переписывания в префиксной грамматике, моделирующей протокол. Там же приведен класс грамматик, для которых эта оценка оказывается точной. Однако остается вопрос, сохранится ли эта оценка при переходе от модели префиксных грамматик к классическим моделям пинг-понг протоколов? Здесь важно понять, можно ли при построении «экспоненциально трудных» грамматик ограничиться стандартными криптографическими операторами, поскольку свойства этих операторов налагают ограничения на правила грамматики, моделирующей их применения.

Мы опишем класс двухсторонних пинг-понг протоколов, атаки на которые также окажутся экспоненциально длинными от числа правил в протоколах (а значит, и в соответствующих префиксных грамматиках).

Пример 2. Допустим, каждый пользователь некоторой сети имеет не один ключ шифрования, а набор таких ключей {Ех, Е^,..., }. Все ключи являются открытыми и доступны любому пользователю сети. — это операторы дешифрования ключей Е^, доступные лишь пользователю X. Тогда система протоколов с экспоненциальным разрастанием длины атак будет выглядеть как

Р(п)ЕХР[X, У] = ((X, «х^, У]),..., (И, «„[X, У])), где И = X, если п нечетно, и И = У в противном случае, а также

«1[Х, V] = Е?;

а2 к [X, V] = Е?кЕ?кБ™-1, если 2к = п;

а2к [х, V] = Е?к-1 , если 2к = п;

а2к+1[Х, V] = ^Хк+1^Хк+1^Хк, если 2к + 1 = п;

а2к+1[х, V] = £>Хк, если 2к + 1 = п.

Чтобы расшифровать ЕХ (X = I, г = п), злоумышленник должен дважды расшифровать ЕХ+1, и так далее, пока не дойдет до ЕХ.

Из примера 2 видно, что протоколы с экспоненциальной нижней оценкой на длину атаки теоретически существуют. Однако протоколы, подобные Р(п)ехр[X, V], практически вряд ли будут использоваться. Для того, чтобы возникло экспоненциальное разрастание длины атаки, необходимо, чтобы участники протокола использовали много различных ключей для одного и того же взаимодействия.

Заметим также, что слово протокола ап\Х, V], представляющее собой простую расшифровку оператора ЕП, на первый взгляд выглядит иррационально — это открытое применение дешифрующего оператора без каких-либо предварительных проверок. Но ап[Х, V] можно считать метапредставлением некоторой атаки на ЕХ, не включающей операции с прочими ключами ЕХ.

Далее мы покажем, какие практически возможные ситуации могут приводить к появлению экспоненциально длинных атак.

3. Атака на протокол как путь обхода вершин п-мерного куба

Ниже приведен пример разумно выглядящего протокола, атака на который представляет собой алгоритм решения задачи о Ханойской башне. Этот протокол может дать подсказку, какого рода ситуации могут привести к возникновению подобных длинных атак.

Пример 3. Предположим, что на некотором сайте администраторы ввели собственную систему шифрования: прежде зашифровки обычным открытым ключом, она применяет к сообщению некоторый кодовый шифр пользователя ЕХ, являющийся подтверждением того, что пересылающий сообщение пользователь X является легальным пользователем сайта. Кодовый шифр пользователя ему неизвестен, но система шифрования сайта сама по себе открытая, то есть композиция ЕхЕх доступна всем. Оператор, обратный ЕХ, обозначим Сх; считаем, что он односторонний, то есть ЕхСх = Л, СхЕх = Л. Ни одному обычному пользователю сайта операторы Сх не доступны.

FuEbIM)

Рис. 4. Схема протокола Pla

Чтобы послать администратору B запрос М о смене логина, пользователь X должен зашифровать его обычным ключом администратора Ев, а затем собственным ключом пользователя Fx. Это можно сделать, применив открытую систему шифрования сайта, выражающуюся композицией ExFx, а затем дешифровав собственный открытый ключ. Таким образом X подтверждает, что сообщение послано именно от него. Администратор, зная, кому принадлежит какой кодовый шифр, расшифровывает Fx.Ев и возвращает пользователю его исходное сообщение М, зашифрованное его открытым ключом Ех • Имея Dx, пользователь X может убедиться, что ему пришло то сообщение, которое он посылал.

Формально протокол имеет вид

Pla[X, Y] = ((X, FxEy), (Y,ExDyGx)).

Обратим внимание, что если в роли X может выступать любой пользователь, то в роли Y — лишь тот, в чьем словаре есть Gx (в нашем случае это администратор B). Схема протокола изображена на рис. 4.

Представим себе, что помимо администратора, на сайте есть еще и программист A. С обычными пользователями он не общается, а с администратором взаимодействует по вышеописанной схеме, причем имеет возможность проверить кодовый шифр администратора (то есть владеет оператором Gb ). В некоторый момент нарушителю I удалось перехватить сообщение Ea(M), соответствующее реплике B на сообщение A вида FaEb(M), в котором предположительно содержится база данных паролей. Сумеет ли I взломать это сообщение?

Сообщение Ев(М) злоумышленнику взломать нетрудно: достаточно подписать к нему свой код Fi и послать B под видом собственного запроса. Получив реплику Ei(M), I может прочитать М.

Но с Ea(M) эта схема не сработает — A не знает Gi. Злоумышленник будет вынужден действовать через B по схеме, указанной на рис. 5. Эта схема соответствует схеме решения задачи о Ханойской башне,

Рис. 5. Схема взлома протокола Рьл

Рис. 6. Схема взлома протокола Рьл как схема обхода вершин куба

которую можно представить себе как схему обхода вершин трехмерного куба, если сопоставить именам пользователей-адресатов I, А и В перемещения по координатам у, г и х (см. рис. 6, на котором двойной чертой выделен путь обхода).

Если имеет место взаимодействие четырех участников — I, А, В и С, — где А взаимодействует лишь с С, а С — лишь с В, то, чтобы расшифровать Ед(М), злоумышленнику придется дважды обращаться к схеме рис. 5 (но теперь в роли А в ней выступает С): сначала — чтобы получить ЕС(М)Ед(М) из Ес.ЕсЕа(М), а затем — чтобы расшифровать Ес(М). Здесь происходит то же самое, что и при решении задачи о Ханойской башне: чтобы переложить на соседний штырь

пирамиду высоты 4, приходится перекладывать сначала пирамиду высоты 3 (расшифровать Ее), затем — самый большой нижний диск (от имени С провоцировать А на реплику Ее(М)), и затем уже на него опять перекладывать пирамиду высоты 3. Добавление любого очередного участника такой цепочки удваивает количество действий, которые необходимо произвести злоумышленнику.

4. Заключение

Заодно с ответом на вопрос, возможны ли экспоненциально длинные атаки на простые протоколы, из последнего примера можно получить представление о вероятном источнике таких атак. А именно, если в цепочке доверенных пользователей канала есть хотя бы одно слабое звено (в нашем случае — администратор В), пострадать от его беспечности может каждый пользователь, даже такой, который не взаимодействует ни с какими пользователями сети, кроме тех, в ком уверен. Косвенным показателем того факта, что идет процесс взлома, для такого осторожного участника сети могут служить странные (например, нечитаемые) или повторные сообщения от его друзей. Будет уместно игнорировать такие сообщения, чтобы случайно не дать возможность взломать себя.

Примеры, приведенные в статье, свидетельствуют, что переборный способ поиска атаки на протокол по ее длине (например, как в [5]) ненадежен в случае, если канал связи рассчитан на много пользователей. Не удастся разумным образом ввести ограничение на длину атаки даже на протокол всего с двумя правилами, например, если он используется в большой социальной сети.

Список литературы

[1] D. Dolev, A. C. Yao. "On the security of public key protocols", Transactions on Information Theory, 29 (1983), pp. 198-208. f342

[2] D. Dolev, S. Even, R. M. Karp. "On the security of ping-pong protocols", Information and Control, 55 (l982), pp. 57-68. f342,344

[3] A. Nepeivoda, "Ping-Pong protocols as prefix grammars and Turchin's relation", VPT 2013. First International Workshop on Verification and Program Transformation (July 13th and 14th, 2013, Saint Petersburg, Russia), EPiC Series, vol. 16, eds. A. Lisitsa, A. Nemytykh, EasyChair, 2013, pp. 74-87. f342

[4] A. Nepeivoda, "Verification of Multi-Party Ping-Pong Protocols via Program Transformation", VPT 2014. Second International Workshop on Verification and Program Transformation (July 17th and 18th, 2014, Vienna, Austria), EPiC Series, vol. 28, EasyChair, 2014, pp. 84-98.f342'345

[5] A. Ahmed, A. Lisitsa, A. Nemytykh, "Cryptographic Protocol Verification via Supercompilation (A Case Study)", VPT 2013. First International Workshop on Verification and Program Transformation (July 13th and 14th, 2013, Saint Petersburg, Russia), EPiC Series, vol. 16, eds. A. Lisitsa, A. Nemytykh, EasyChair, 2013, pp. 16-29. f349

Рекомендовал к публикации к.т.н. С. М. Пономарёва

Об авторе:

Антонина Николаевна Непейвода

Младший научный сотрудник. Работает в сфере суперкомпиляции, частичных вычислений и вычислительной сложности процессов преобразования программ

e-mail: a nevod@mail.ru

Пример ссылки на эту публикацию:

А. Н. Непейвода. «О длинных атаках на пинг-понг протоколы», Программные системы: теория и приложения, 2015, 6:4(27), с. 341-351. URL: http://psta.psiras.ru/read/psta2015_4_341-351.pdf

Antonina Nepeivoda. A remark about long attacks on ping-pong protocols. Abstract. The paper presents some long attacks on cryptographic ping-pong protocols in the Dolev—Yao intruder model. The length of these attacks reaches the upper bound on the attack length proven in the previous works of the author. (In Russian).

Key Words and Phrases: Computational complexity, ping-pong protocols, protocol security, Dolev-Yao intruder model.

References

[1] D. Dolev, A. C. Yao. "On the security of public key protocols", Transactions on Information Theory, 29 (1983), pp. 198-208.

[2] D. Dolev, S. Even, R. M. Karp. "On the security of ping-pong protocols", Information and Control, 55 (1982), pp. 57-68.

[3] A. Nepeivoda, "Ping-Pong protocols as prefix grammars and Turchin's relation", VPT 2013. First International Workshop on Verification and Program Transformation (July 13th and 14th, 2013, Saint Petersburg, Russia), EPiC Series, vol. 16, eds. A. Lisitsa, A. Nemytykh, EasyChair, 2013, pp. 74-87.

[4] A. Nepeivoda, "Verification of Multi-Party Ping-Pong Protocols via Program Transformation", VPT 2014. Second International Workshop on Verification and Program Transformation (July 17th and 18th, 2014, Vienna, Austria), EPiC Series, vol. 28, EasyChair, 2014, pp. 84-98.

[5] A. Ahmed, A. Lisitsa, A. Nemytykh, "Cryptographic Protocol Verification via Supercompilation (A Case Study)", VPT 2013. First International Workshop on Verification and Program Transformation (July 13th and 14th, 2013, Saint Petersburg, Russia), EPiC Series, vol. 16, eds. A. Lisitsa, A. Nemytykh, EasyChair, 2013, pp. 16-29.

Sample citation of this publication:

Antonina Nepeivoda. "A remark about long attacks on ping-pong protocols", Program systems: theory and applications, 2015, 6:4(27), pp. 341-351. (In Russian). URL: http://psta.psiras.ru/read/psta2015_4_341-351.pdf

© A. Nepeivoda, 2015

© Ailamazyan Program System Institute of RAS, 2015 © Program systems: Theory and Applications, 2015

i Надоели баннеры? Вы всегда можете отключить рекламу.