Научная статья на тему 'Протокол безотказной луковой маршрутизации с подтверждением времени создания сообщения'

Протокол безотказной луковой маршрутизации с подтверждением времени создания сообщения Текст научной статьи по специальности «Математика»

CC BY
156
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
DISTRIBUTED PROTOCOLS / PROTECTED COMPUTING / FAULT-TOLERANT SYSTEMS / РАСПРЕДЕЛЁННЫЕ ПРОТОКОЛЫ / ЗАЩИЩЁННЫЕ ВЫЧИСЛЕНИЯ / ОТКАЗОУСТОЙЧИВЫЕ СИСТЕМЫ

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

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

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

Undeniable onion routing protocol with message creation time verification

The problem of message routing in competitive environment of decentralized network is considered and demonstrated by the example of holding task-based CTF contest. Message creation time verification is introduced as an additional requirement of the protocol. An improvement of the undeniable onion routing protocol is described. It allows network participants to verify creation time for transferred messages.

Текст научной работы на тему «Протокол безотказной луковой маршрутизации с подтверждением времени создания сообщения»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

ПРИЛОЖЕНИЕ Сентябрь 2016

Секция 4

МАТЕМАТИЧЕСКИЕ ОСНОВЫ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ

9

УДК 004.75 Б01 10.17223/2226308Х/9/30

ПРОТОКОЛ БЕЗОТКАЗНОЙ ЛУКОВОЙ МАРШРУТИЗАЦИИ С ПОДТВЕРЖДЕНИЕМ ВРЕМЕНИ СОЗДАНИЯ СООБЩЕНИЯ

Н. И. Анисеня

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

Ключевые слова: распределённые протоколы, защищённые вычисления, отказоустойчивые системы.

В [1] автором предложен распределённый протокол проведения соревнований СТР, основанных на решении заданий. Описанный протокол обладает серьёзным недостатком, а именно — полагается на рассылку меток времени добросовестными участниками. Недобросовестный участник, который не рассылает свои разрешения, все ещё имеет доступ к сети и может получать сообщения, если участвует в передаче сообщений других команд.

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

Будем полагать, что каждый участник сети постоянно ожидает получения сообщений. Сформулируем требования к улучшенному протоколу:

1) каждый участник сети должен иметь возможность получать сообщения только в том случае, если участвует в качестве посредника при передаче сообщений других участников;

2) каждый участник сети должен иметь возможность получать сообщения только в том случае, если устанавливает корректные метки времени на все передаваемые им сообщения;

3) в результате работы протокола отправитель сообщения должен иметь временные метки от различных участников сети, подтверждающие время отправки исходного сообщения;

4) никто из участников, кроме отправителя и получателя, не должен иметь возможность прочитать или изменить передаваемое сообщение;

5) никто из участников не должен иметь возможность подделать чужую метку времени под передаваемым сообщением;

6) протокол должен делать крайне сложной и маловероятной атаку сговора с целью установки некорректных меток времени под сообщением;

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

Требования 1 и 2 необходимы для того, чтобы участники распределённой сети были заинтересованы в поддержании её работы. Требования 4 и 5 необходимы для защиты передаваемых сообщений и устанавливаемых под ними меток времени. Требование 6 служит для защиты от атаки сговора участников распределённой сети. Требование 7 необходимо, если данный протокол используется для проведения соревнований СТЕ, как в [1]. В этом случае необходимо уменьшить зависимость протокола от активного участия команды организаторов.

Пусть Еа — шифрование на открытом ключе участника с идентификатором Л; Ба — подписание на закрытом ключе участника с идентификатором Л; к — некоторая криптографическая хеш-функция. В случае, если у является конкатенацией байтового представления параметров х1,... ,хь, будем допускать следующую запись для функций Еа, Б а, к:

Еа(У) = Еа(Х 1,.. .,хг), Ба(У) = Ба(Х 1,.. .,хь), к(у) = к(х\,... ,хг).

Будем проводить сравнение значений времени с учётом временного окна т. Обозначим множество идентификаторов участников как и, |и | = п, где идентификаторы id е и — попарно различные числа. Функцию О (у) определим как в [1]:

О(у) : N ^ и', и' = {и : и с и, |и| = К п}. Введём функцию Н(у) следующим образом:

Н(у) = [го, ^1,Г1),... ,

idi е О (у), idi < idi+l, i = 1, . . . — 1, го = к(у), п = к(у, idi), i = 1,... ,Ь.

Для удобства обозначим так же векторы идентификаторов участников и соответствующих им чисел:

М = ^1,..., idt), Я = (го, Г1,..., гь).

Будем говорить, что участник отключен от сети, если он не участвует в передаче сообщений либо искажает передаваемые им сообщения. Если все участники с идентификаторами idl,... ,idt выступают в роли посредников при передаче сообщения, будем обозначать эти идентификаторы М1,... , Мь. Соответственно вектор М в этом случае запишется следующим образом: М = (М1,..., Мь).

Пусть Алиса хочет послать сообщение т Бобу. При этом Алиса заинтересована в следующем:

1) она хочет убедиться в том, что все посредники, участвовавшие в передаче сообщения т, и получатель Боб честно выставляют метку времени (не завышают и не занижают время), когда выступают в роли посредника;

2) она хочет получить подтверждение времени создания сообщения т от других участников и предоставить его Бобу.

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

1) Алиса считает Н(т) = [го, (М1, г-]),..., (Мг, ^)].

2) Алиса конструирует «луковицу», шифруя сообщение т следующим образом:

Ев(Еы1 (. ..Еык(ЕаЕв(т),гк),.. .,п),го).

3) Алиса отправляет Бобу

Ев (Ем, (. ..Емк (ЕаЕв (т),Гк),.. .,п),Го), Ба^,Ьа),Ьа,

где ¿а — текущее время Алисы.

4) Боб расшифровывает внешний слой луковицы: получает го и сообщение для первого посредника М\. Боб отправляет посреднику М1

Ем, (... Емк (ЕаЕв (т),Гк), ...,п), БА(т,ЬА),ЬА, Бв (го ,Ьв ),Ьв.

5) Для г & {1,... ,к — 1} г-й посредник отсылает (г + 1)-му следующее сообщение:

Eмi(Ем+1 (... Емк(ЕаЕв(т),Гк),... ,п+г),п), Ба( т, ¿а), ¿а, Б в (го, ¿в ),Ьв, Бм, (г1 ,¿1) ,¿1,..., Бм1 (г г, ¿г), ¿г.

6) Последний посредник Мк отправляет Алисе

ЕаЕв(т), БА(т,ЬА),ЬА, Бв(го,¿в),Ьв, Бм,(п,^),^,... ,Бмк(гк,Ьк),Ьк.

7) Алиса проверяет, что все метки времени Бв (го,Ьв), Бм1 (гг, ¿г), Ьг, г = 1,... ,к — 1, имеют корректную подпись и указывают на адекватное время. Если проверки пройдены, Алиса посылает Бобу

Ев (т), БА(т, ¿а),¿а, Бв (го,¿в ),Ьв, Бм, (п,^),^,..., Бмк (г к ,Ьк ),Ьк.

Боб проводит проверку следующим образом.

1) Посчитать Н (т) = [го, (Мип),..., (Мк, гк)].

2) Проверить подписи временных меток Б а, Бв, Бм1, г = 1,... ,к.

3) Проверить, что для значений времени в метках времени верны следующие равенства:

¿м1 ='Ш ¿м^, , г & {1, . . . ,к — 1} ¿м, ='Ш ¿в, ¿в ='Ш ¿А.

4) Если проверки пройдены, то считать, что сообщение т создано в момент времени ¿а.

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

Последний шаг 7 протокола не зависит от времени, поэтому может быть выполнен, когда Боб снова подключится к сети. Проверка выполняется аналогично с учётом того, что временная метка Sb(r0,tB),ts отсутствует.

Некоторые комментарии к протоколу. Функция H(m), аналогично функции G(m), имеет параметры n, t, k. В случе, если хотя бы один из первых k посредников из M отключен от сети, получение меток времени от этой цепочки посредников невозможно. Для того чтобы получить метку времени, необходимо выбрать k подключенных участников и сформировать луковицу согласно порядку в M. Таким образом, H(m) также имеет запас в (t — k) участников.

Функция G(m) в составе функции H(m) нужна для того, чтобы случайным образом выбирать участников для выставления метки времени под сообщением m, тем самым сильно затрудняя возможность их предварительного сговора с целью установки ложной метки времени.

Вектор R, получаемый функцией H(m), является вектором чисел, которые невозможно предсказать, не зная сообщения m. Это нужно для того, чтобы посредники имели возможность поставить временную метку на Ti = h(m, idi), не зная самого сообщения m. Числа Ti также используются в качестве Nonce, чтобы следующие посредники не могли определить предыдущих посредников, которые уже поставили свою метку времени на сообщение.

Рассмотрим пример. Имеется множество участников U = {A, B, M\, M2}, |U| = n = = 4, t = k = 2. Они подключены к сети, как показано на рис. 1.

з

Рис. 1. Пример работы протокола безотказной луковой маршрутизации с подтверждением времени создания сообщения

Пусть участник А хочет послать сообщение т участнику В. Для этого ему необходимо вычислить Н(т) = [г0, (М\,Т\), (М2,т2)]. Имеем следующую луковицу Ев(Ем1 (Ем2(ЕаЕв(т),т2),Т\),То). Подробно рассмотрим процесс передачи луковицы и выставления меток времени:

1) А ^ В : Ев(Ем1 (Ем2(ЕаЕв(т),Т2),п),То),

вА(т,ЬА),ЬА.

2) В ^ М1 : Ем1 (Ем2(ЕаЕв(т),Т2),п),

ВА(т,гА)^А, $в(то,к)^в.

3) М1 ^ М2 : Ем2(ЕаЕв(т),г2),

БА (m, ¿а) , ¿A, Бв (го, ¿Ь ),Ьв, Бм, (г1,Ьм, ),Ьм, .

4) М2 ^ А : ЕаЕв (т),

БА(т, ¿а),¿а, Бв (го ,Ьь),Ьв, Бм, (г1,Ьм, ),Ьм , , Бм2 (г2, ¿м2 ) , ¿м2 .

5) Проверка: ¿м2 =ш¿м,, ¿м, =ш¿в, ¿в=ш¿а. Если проверки пройдены:

А ^ В : Ев(т),

БA(m,¿A),¿A, Бв (го,ЬЬ),Ьв, Бм, (г1,Ьм, ),Ьм, , Бм2 (г2,Ьм2 ),Ьм2 .

Описанный протокол может использоваться как протокол транспортного уровня в распределённой сети соревнования СТЕ следующим образом. Команда организаторов, согласно протоколу, осуществляет новостную рассылку во время соревнования. Если участник хочет получать новостную рассылку от организаторов, ему необходимо выступать в качестве посредника при передаче сообщений других участников, выставляя на них корректную метку времени. В противном случае участник не сможет получать новостную рассылку, что равносильно отключению от соревнования и техническому поражению.

Каждый участник при получении ответа на задание должен доказать этот факт, отправив сообщение организаторам. Засвидетельствовать факт получения ответа в текущий момент времени можно с помощью модифицированного протокола, т. е. предполагая, что команда организаторов в данный момент может быть недоступна. Команды-соперники, выбранные в качестве посредников с помощью функции Н (т), подтвердят факт создания сообщения в текущий момент времени. Итоговое сообщение вместе с метками времени может быть отправлено организаторам позже. По окончании соревнования организаторы смогут сформировать таблицу результатов с учётом времени получения ответов.

ЛИТЕРАТУРА

1. Анисеня Н. И. Разработка безопасного протокола распределённой системы проведения соревнований СТР // Прикладная дискретная математика. 2015. №2(28). С. 59-70.

УДК 519.7 Б01 10.17223/2226308X79/31

О ДИСКРЕТНО-АВТОМАТНЫХ МОДЕЛЯХ АТАК В КОМПЬЮТЕРНЫХ СЕТЯХ1

Д. Е. Горбатенко, С. Е. Кочемазов, А. А. Семёнов

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

1 Работа выполнена при частичной поддержке РФФИ, проекты № 14-07-00403а и 15-07-07891а.

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