Абстрактные анонимные сети. ч1
Предисловие
Весь нижеизложенный текст является составной частью более общей теории излагаемой в теоретико-научной статье "Теория строения скрытых систем". Данная статья описывает становление анонимности через её формации посредством развития стадий.
Статья находится полностью в открытом доступе: https://github.com/number571/go-peer/blob/master/articles/hidden_systems.pdf. По мере свободного времени и новых знаний статья улучшается, становясь более совершенной в своём проявлении. Поэтому любая (адекватная) критика, дополнения, замечания с радостью приветствуются.
Введение
Среди анонимных сетей можно выявить класс систем максимально разграничивающих субъектов информации от их объектов, что приводит к возможности различных способов транспортирования информации. Из-за своей специфичной архитектуры передача информации может осуществляться в любой дуплексной среде, что полностью отрывает распространение объектов от своей сетевой архитектуры и переводит маршрутизацию в этап виртуального транслирования. Тем не менее у такой концепции существуют и свои недостатки, где одним из основных является невозможность построения поточной связи из-за отсутствия постоянных соединений, что в определённой степени становится уязвимостью к активным нападениям (более подробно данный момент будет показан в разделе «Модель абстрактных анонимных сетей на базе очередей»).

Сама маршрутизация является в таких системах двухслойной, и выражается по формуле lim|A|’→C <= |A| <= N**, где N — количество узлов в сети, C — количество узлов участвующих в маршрутизации из всего множества сети. Подобные сети принадлежат классу теоретически доказуемой анонимности***. Примечательной особенностью абстрактных анонимных сетей является их возможность формирования анонимата в тайных каналах связи****, как систем с неприсущей им по умолчанию внутренней анонимностью. Анонимные сети, с подобными характеристиками, будут именоваться абстрактными.
*Скрытые, тёмные, анонимные сети — есть сети, соединяющие и объединяющие маршрутизацию вместе с шифрованием (под шифрованием понимаются также этапы хеширования, подписания). Маршрутизация обеспечивает критерий анонимности, направленный на субъект, шифрование — критерии конфиденциальности, целостности, аутентификации, направленные на объект. Без маршрутизации легко определяются отправитель/получатель, без шифрования легко определяется передаваемое сообщение [1, с.912]. Таким образом, только в совокупности этих двух свойств сеть может являться скрытой [2][3].
**Мощность анонимности — количество узлов, выстроенных в цепочку и участвующих в маршрутизации информации от отправителя до получателя, при этом, не будучи никак связанными между собой общими целями и интересами. Из этого следует, что многоранговая архитектура по умолчанию имеет мощность анонимности |A| = 1 (вне зависимости от количества серверов). Нулевая мощность анонимности |A| = 0 возникает при существовании прямых соединений между субъектами (иными словами при отсутствии какой бы то ни было маршрутизации).
|A| = |Q(R)|, где R - множество узлов участвующих в маршрутизации, Q - функция выборки списка подмножеств узлов, подчиняющихся одному лицу или группе лиц с общими интересами.
Так например, если R = {A, B, C} — это множество узлов участвующих в маршрутизации, а подмножество {A, B} принадлежит множеству R — кооперирующие узлы, то Q(R) = [{A, B}, {C}] и, как следствие, |A| = |Q(R)| = 2.
***Скрытыми сетями с теоретически доказуемой анонимностью принято считать замкнутые (полностью прослушиваемые) системы, в которых становится невозможным осуществление пассивных атак с определёнными условностями по количеству узлов неподчинённых сговору. Говоря иначе, с точки зрения пассивного атакующего, апостериорные знания (полученные вследствие наблюдений) должны оставаться равными априорным (до наблюдений), тем самым сохраняя равновероятность по N-ому множеству субъектов сети.
****Секретные, тайные, эзотерические каналы связи — есть соединения, располагаемые в заведомо замкнутом, незащищённом, враждебном окружении и имеющие характеристики безопасной передачи информации. В отличие от определения [4, с.147], в нашем случаем под тайными каналами будут пониматься системы «неорганически вживляющиеся» в уже существующую. При этом анонимность, родственная скрытым сетям, не является базисом секретных каналов связи и, следовательно, может быть отброшена из-за ненадобности или по необходимости.
Модель абстрактных анонимных сетей на базе очередей
Одним из возможных способов (как шагов) построения таковых систем является необходимость в доказуемой устойчивости системы по отношению хотя бы к одному из наблюдателей, будь то внешнему или внутреннему. При этом в качестве внешнего берётся наивысшая форма в лице глобального наблюдателя, а в качестве внутреннего берутся узлы, заполняющие всю сеть (с определённой минимальной условностью по количеству несвязанных между собой узлов).
Простота системы является также важным качеством теоретически доказуемой анонимности. Если система будет иметь массу условностей, то даже при теоретической её доказуемости, практическая реализация может составить огромное количество трудностей, ошибок или неправильных использований, что приведёт к фактической дискредитации самой теории, и таковая анонимность в конечном счёте останется лишь теоретической. Одной из самых простых возможных реализаций абстрактной системы является использование очередей генерации пакетов в сети.

Для начала предположим, что необходимо защититься от внешнего глобального наблюдателя. Также предположим, что существует три узла в сети {A, B, C}, где один из них отправитель информации, а другой – получатель. Целью атакующего становится сопоставление факта отправления с инициатором и/или получения с сервисом связи (получателем). В идеальной системе (теоретически доказуемой) вероятность обнаружения запроса составит 1/3. Ровно такая же картина должна быть с фактом ответа на запрос. В сумме при трёх участниках и при условии ИЛИ факт обнаружения равен 2/3. При существовании N узлов несвязанных между собой общими целями и интересами, вероятность становится равной 2/N. Итоговая система должна удовлетворять данным свойствам.
Предположим далее, что необходимо защититься от q-ого количества внутренних наблюдателей системы из количества q+|{A, B, C}| узлов, где известно, что узел С – не связанный в сговоре маршрутизатор для одного из узлов A или B. Целью атакующего становится сопоставление факта отправления ответа из множества {A, B} с конкретным его элементом. В идеальной системе (теоретически доказуемой) вероятность обнаружения ответа составит 1/2. При существовании N узлов несвязанных между собой общими целями и интересами, вероятность становится равной 1/N. Итоговая система должна удовлетворять данным свойствам.
Если предположить, что существует сговор внешнего и внутреннего наблюдателей, то условие и цель атакующих полностью становится аналогична цели внутреннего наблюдателя, где в идеальной системе (теоретически доказуемой) ровно также вероятность обнаружения ответа должна составить 1/2. При существовании N узлов несвязанных между собой общими целям и интересами, вероятность должна становиться равной 1/N. Итоговая система должна удовлетворять данным свойствам.
Работа системы на базе очередей должна сводиться к следующему протоколу на основе 10 пунктов, которые полностью (за исключением сговора активных наблюдателей) обеспечивают замкнутость и безопасность системы:
- Каждый субъект сети должен выстроить период генерации пакета равный Tn, где n принадлежит множеству рациональных чисел, n – величина периода, не менее и не более. Иначе становится эффективна атака со стороны внутреннего наблюдателя. Несогласованность константного числа Tn с другими участниками сети приведёт к возможности разграничения субъектов по подмножествам с разными периодами генераций.
- Каждый субъект сети выстраивает период равный Tn полностью локально, без кооперирования с другими субъектами сети. Это условие является лишь упрощением системы, само кооперирование не приведёт к нарушению протокола, потому как предполагается, что сама генерация пакетов, а конкретно время генерации, не является секретом.
- Каждый действующий субъект сети выставляет минимум одного существующего пользователя в роли маршрутизирующего узла для поддержания анонимности. Причисление маршрутизатора в сговор атакующих приведёт к деанонимизации субъектов, использующих данного промежуточного участника. Поэтому, в практическом применении для снижения рисков связанных с деанонимизацией субъектов посредством контроля ретранслятора, необходимо выбирать сразу несколько маршрутизирующих узлов, формируя тем самым цепочку нод и повышая мощность анонимности.
- Каждый действующий субъект сети знает период и время генерации нового пакета на постоянном маршрутизирующем узле. Такое условие необходимо для предотвращения от атак направленных на нестабильные системы с учётом существующего сговора внешних и внутренних наблюдателей.
- Каждое сообщение зашифровывается монолитным криптографическим протоколом с множественным туннелирование и проходит сквозь маршрутизирующие узлы (более подробно в разделе «Монолитный криптографический протокол»). Такое свойство приведёт к сильному разрыву связей между объектом и его субъектами, а также между идентификацией сетевой и криптографической.
- Каждый субъект хранит все свои сообщения, готовые к отправлению по сети, в очереди. Помимо очереди субъект должен содержать автодополняющийся пул ложных сообщений. Данное свойство необходимо для пункта 7.
- Если на момент Tni, где i принадлежит множеству натуральных чисел, i – номер периода, очередь пуста, то-есть не существует ни запроса, ни ответа, ни маршрутизации, то отправляется сообщение из пула ложных сообщений. При таком случае, данное сообщение фактически никто не получает.
- Если приходит сообщение представляющее собой маршрутизацию, то оно ложится в очередь и при наступлении локального времени Tni отправляется по сети. Пункт 5 обеспечивает несвязность объекта с его субъектами, поэтому при получении сообщения-маршрутизации, промежуточный принимающий узел увидит только факт маршрутизации.
- При необходимости отправить запрос, субъект сначала анализирует текущее время с периодом маршрутизатора, с целью отправить сообщение на второй итерации периода маршрутизирующего узла. Если ещё не прошла собственная итерация периода, то перед запросом в очередь вставляется ложное сообщение, данный запрос отправляется по сети. Пункт 3 обеспечивает несвязность идентификации сетевой и криптографической, что не даёт отправителю никакой информации о получателе, кроме его публичного ключа.
- При необходимости отправить ответ, субъект сначала анализирует текущее время с периодом маршрутизатора, с целью отправить сообщение на второй итерации периода маршрутизирующего узла. Если ещё не прошла собственная итерация периода, то перед ответом в очередь вставляется ложное сообщение, данный ответ отправляется по сети. Пункт 3 обеспечивает несвязность идентификации сетевой и криптографической, что не даёт получателю никакой информации об отправителе, кроме его публичного ключа.
В выстроенной системе становится достаточно легко доказать невозможность атаки со стороны внешнего наблюдателя, анализирующего дифферентность сети. Если каждый субъект соблюдает генерацию пакета по локальному периоду (даже гипотетически с разными значениями Tn), то становится невозможным установление факта отправления, получения, маршрутизации или ложной генерации, потому как наблюдатель в конечном счёте способен лишь видеть определённые шифрованные сообщения генерируемые каждый промежуток времени равный Tn. Также, если внешним наблюдателем будут блокироваться определённые субъекты информации, кардинально данный подход ситуации не изменит.
Атака внутренних наблюдателей с приведённым выше условием является качественно более сложной и мощной (даже относительно большинства внутренних нападений), потому как q субъектов контролируют всю сеть за исключением трёх субъектов, а следовательно атакующие фактически являются не только внутренними наблюдателями, но и в массе своей монолитным глобальным наблюдателем. В качестве упрощения доведём нападения до теоретически возможной комбинации, в отображении сговора внешних и внутренних наблюдателей. Аудит будет базироваться на 10 пункте, когда субъекту должен отправиться ответ на отправленный запрос. При анализе системы может встретиться два разных случая – частный (a) (наиболее благоприятный в определении анонимности) и общий (b) (дающий больший простор действий для нападающих).
Частный случай удобно рассматривать на примере основных способов деанонимизации и методов их предотвращения. Общий же случай более реален в настоящем мире, потому как частный неустойчив к отказам в обслуживании (если субъект переподключиться, то изменится сдвиг периода) и требует из-за этого постоянного кооперирования субъектов между собой по времени (чтобы сама генерация информации была одновременной). Таковые условия поведения частного случая делают общий более приоритетным в анализе теоретической анонимности, потому как он становится «стабильным» за счёт невозможности своего дальнейшего ухудшения.
a) Частный случай. Предположим, что существует крайне стабильная система при которой каждый узел из множества {A, B, C} выставил в один и тот же промежуток времени значение равное Tn без отставания по времени относительно всех остальных участников сети. Все участники генерируют запрос секунда в секунду каждые Tni по периоду. Предположим, что Tn = 3, тогда генерацию можно представить в виде Таблицы 1.

Если отсутствует маршрутизация от субъекта C, то легко определимым становится вычисление истинного субъекта генерирующего настоящее сообщение. И действительно, если существует сговор внутреннего и внешнего наблюдателей, то возможен сценарий, при котором внутренний наблюдатель, в роли инициатора, генерирует сообщение и отправляет его одному из участников {A, B}. Спустя период Tn (при условии, что у получателя не существует сообщений в очереди) инициатор получает ответ, предварительно сохраня его шифрованную версию. Далее внутренний наблюдатель обращается к внешнему с шифрованной версией сообщения, тот в свою очередь по своим записям проверяет где впервые был создан таковой пакет. Узел на котором появилось впервые подобное сообщение и является истинным субъектом информации в лице получателя.
Теперь предположим, что маршрутизация субъекта C существует. Если внутренний наблюдатель хочет раскрыть субъектов {A, B}, то можно предположить, что ему необходимо каким-либо образом обойти ретрансляцию субъекта C. Но исключить узел C из сети не является решением, потому как прекратится вся последующая связь с субъектом A или B. Другим способом расскрытия (и куда более продуктивным) является уже исключение одного субъекта из множества {A, B}, иными словами заблокировать участника сети на определённый период времени Tni. Тогда в таком случае активный внешний наблюдатель блокирует одного из субъектов {A, B}, после этого активный внутренний наблюдатель посылает запрос на одного из субъектов множества {A, B}. Если отправитель получает ответ, значит истинным получателем информации является не исключённый участник, в противном случае – исключённый.
Для предотвращения активных атак со стороны сговора внешних и внутренних наблюдателей необходимо добавить дополнительный 11 пункт, который представляет новую псевдо роль субъектов в качестве контролирующих узлов. Такая атака приводит к невозможности деанонимизации субъектов посредством частичного блокирования, потому как её следствием станет взаимоблокировка субъектов. Тем не менее добавление данного пункта скажется на том, что сама сеть выйдет из класса абстрактных анонимных сетей, потому как добавится необходимость в поточном распространении информации.
11. Каждый действующий субъект сети выставляет минимум одного существующего пользователя в роли контролирующего узла для предотвращения от активных атак методом исключения участников системы. Суть такого пользователя в понимании его существования. Если связь с подобным субъектом будет разорвана, то все последующие действия автоматически прекращаются. Само соединение функционирует за пределами механизма очередей, что, тем не менее, не приводит к снижению уровня анонимности, потому как все субъекты начинают подчиняться этому правилу однонаправленно (в такой концепции не существует функций типа запрос/ответ, существуют только поточные уведомления своего присутствия).
Также, хоть теоретически сама атака становится невозможной, но в практическом смысле и в долгосрочном наблюдении она более чем реальна. Связано это с тем, что одноранговая архитектура как таковая приводит к постоянному и динамичному изменению связей между субъектами. Это в свою очередь может приводить к исключениям групп субъектов связанных контролирующими узлами, потому как последние обязаны быть обычными и настоящими участниками системы.
b) Общий случай. Предположим, что существует нестабильная система при которой каждый узел из множества {A, B, C} выставил в разный промежуток времени значение равное Tn с отставанием по времени относительно всех остальных участников сети. Все участники генерируют запрос в разные секунды, но также сохраняя локальный период равный Tn. Предположим, что Tn = 3, тогда генерацию можно представить в виде Таблиц 2, 3, 4 относительно расположения субъекта C к другим участникам



В качестве упрощения и абстрагирования предположим, что ни для какого субъекта не существует контролирующего участника, а следовательно и пункта 11 как такового. Существуют только субъекты {A, B} (один из которых является настоящим получателем) и постоянный маршрутизатор C. Основной целью анонимизации в нестабильных коммуникациях становится сведение действий субъекта A к аналогичным действиям субъекта B, и наоборот, посредством маршрутизатора C. Действительно, если C станет замыкающим узлом в момент времени Tni при ответе любого субъекта множества X, то возникнет максимальная неопределённость равная 1/|X|.
Анализируя сетевые коммуникации в нестабильных системах внешний наблюдатель способен сопоставить для каждого субъекта его период равный Tn и сдвиг относительно определённого субъекта. В сговоре со внутренним наблюдателем появляется возможность деанонимизации субъекта на базе приведённого сдвига. Предположим, что игнорируется условие пунктов 9 и 10 с необходимостью генерировать пустое сообщение на основе периодов маршрутизирующего узла. Далее, пусть существует сеть на базе Таблицы 2, где внутренний наблюдатель располагает всеми сведениями полученными от внешнего атакующего и на основе этого генерирует сообщение в момент времени Tn1 и отправляет его по сети. Если будет получен ответ в момент Tn1+1 = Tn2-2 от маршрутизатора C, то это говорит только о том, что получателем сообщения является участник B, потому как субъект A становится способным выдать ответ маршрутизирующему узлу только в период Tn1+2 = Tn2-1, по причине его умышленного пропуска в момент Tn1-1 атакующей стороной. Такой вид атаки приводит к полной деанонимизации субъектов.
Предотвращением атаки является отправление истинного пакета на вторую итерацию периода маршрутизирующей стороны (относительно текущего времени). Теперь репродуцируем вышеописанную атаку на систему с таким условием. Также предположим, что сетью является система на базе Таблицы 2. Если атакующий сгенерирует сообщение в момент времени Tn1, то получит ответ только в момент Tn3-2. Получателем в такой системе может оказаться любой из множества {A, B}, потому как ответ может быть отправлен как в момент времени Tn2-1 (субъект A), так и в Tn2 (субъект B). Чтобы субъект B отправил ответ именно в Tn2, то перед ним он помещает в очередь ложное сообщение, тем самым отодвигая отправление истинного сообщения по сети на одну итерацию. Аналогичные ситуации распространяются и на Таблицы 3, 4.
Таким образом, на основе всего вышеописанного, наиболее сильной атакой является сговор внешних и внутренних активных атакующих, при которой необходимым условием противодействия становится существование постоянной поточной линии связи, что, в свою очередь, приводит к негации абстрактности и невозможности применения данной системы в тайных каналах связи. К тому же, со стороны практического применения, такой подход способен функционировать лишь в краткосрочной перспективе.
Также приведённая анонимная сеть становится наиболее подверженной атакам отказа в обслуживании, как для конкретного субъекта, перегружая его очередь сообщениями, так и для всей сети, потому как в основе системы используется слепая маршрутизация. В любом случае внешние преднамеренные атаки на сеть можно предотвратить проверяемостью на принадлежность к периоду генерации сообщений, но при всё большем расширении сети сами её участники станут давлением и причиной ухудшения производительности. Причиной такого поведения становится линейная увеличивающаяся нагрузка на сеть O(N) прямо пропорционально количеству действующих узлов N в сети. Иными словами, каждый субъект должен будет обрабатывать в Tn период N-1 пакетов, постоянно пытаясь расшифровывать их.
*На Рисунке 2 изображён абстрактный субъект @, способный быть как настоящим получателем, так и промежуточным субъектом — сервисом. Иными словами, анонимные сети абстрагируются от как таковой проблемы получателя** и акцентируют своё внимание исключительно на факт передачи информации.
**Под проблемой получателя понимается использование небезопасных платформ (сервисов) связи даже при теоретически безопасной линии связи с таковыми сервисами. Данная проблема решается другим классом скрытых систем — клиент-безопасными приложениями.