Анонимность

Анонимные коммуникации коммуникации скрывают пользователей, которые общаются друг с другом. Многие в современном мире задаются вопросами анонимности. Зачем она нужна? Какие существуют способы скрыть данные о человеке во Всемирной паутине? И почему человеку понадобилость скрывать свои личные данные? Первой причиной может послужить рассылка спама на электронную почту пользователя. Согласно общедоступной статистике, около 80 процентов, пересылаемых писем, составляют спам, причем большая часть отсеивается почтовыми серверами. Спам, по своей сути, не является полезной информацией для пользователя, чаще всего это массовая рассылка рекламы, которая в большинстве случаев непрочитанная отправляется в корзину. На удаление ненужных писем пользователь тратит свое время, а иногда из-за интернет-трафика деньги. Но самый большой вред пользователь получает от писем с просьбами перейти по ссылке, етественно, перейдя по ней, он скачивает вирус. Самый простой и эффективный способ это избежать - предоставить фиктивный адрес электронной почты. Например, еслы вы регистрируетесь на сайте, не вызывающем особого доверия, можно воспользоваться службами, предоставляющими временные почтовые ящики. Один из такий сервисов 10MinuteMail. Это бесплатный сайт одноразовых e-mail-ов, который поможет избежать получения тонны спама. Также, вы можете полностью скрыть свою личность, с помощью Fake name generator. Этот сайт за 2 секунды создает довольно реалистичную виртуальную личность с массой самых различных данных. Таких как адрес с индексом проживания, род занятий, номер кредитной карты, любимый цвет, группу крови, пароль, реально работающий после активации e-mail. Этот сайт идеально подходит для тестирования различных сайтов, требующих подробной информации о пользователе, без разглашения персональных данных. Но что, если человеку необходимо анонимно отправить сообщение на почтовый ящик. На помощь могут придти ремейлеры, которые скрывают всю информацию от получателя об отправителе. Суть работы ремейлеров заключается в том, что письмо не идет напрямуюю к адресату, отправитель составляет письмо, в тексте которого указывает адрес получателя, и последовательно зашифровывает сообщение открытыми ключами PGP нескольких произвольно выбранных ремейлеров, начиная с последнего. Таким образом, составляется цепочка серверов, которые с помощью своего закрытого ключа раскрывают часть сообщения и передают следущую часть далее по цепочке и так до получателя.

Анонимность. Аноним от греческого \(\alpha\nu\omega\nu\upsilon\mu o\varsigma \) - безымянный, неизвестный. коммуникации коммуникации скрывают пользователей, которые общаются друг с другом.

Связана с такими понятиями как ненаблюдаемость (unobservability), несвязываемость (unlinkability), псевдонимность \cite{1an1}.
Анонимность предполагает, что есть множество объектов, среди которых может находится интересующий элемент. Это множество называют множеством анонимности \(A\). Чтобы определить принадлежит ли элемент \(x\in A\), согласно Хартли нужно \(\log_{2}N\) бит информации, где \(N\) число элементов \(A\). Действительно, чтобы, например, узнать, находится ли данное слово в списке из \(N\) слов, нужно просмотреть по крайней мере весь список, задавая вопросы типа ”да - нет”.
Значение \(\log_{2}N\) может служить мерой анонимности. Пусть \(A\) множество подозреваемых из \(N=4\) элементов, \(a,b,c,d\). Пусть кто-то из этих четырех подозреваемых незаконно съел банку варенья. Истинный злодей является неизвестным, его уровень анонимности \(\log_{2}4=2\). Пусть двое \(a\) и \(b\) имеют алиби. Тогда уровень анонимности уменьшается с 2 до \(\log_{2}2=1\).

Анонимность определяют как состояние неидентифицируемости среди объектов, образующих множество анонимности \cite{2an1}.

Обеспечение анонимности. Некоторые возможности.

  • Шифрование. Перед отправлением текста адресату он шифруется.

  • Переупорядочение. Анонимный сервер может получать по-очереди несколько сообщений, которые он будет обрабатывать в другом порядке. Это исключает атаку типа ” первый вошел - первый вышел”.

  • Задержка. Пересылка с задержкой для сокрытия трафика.

  • Заполнение и изменение размера. Если следить за входящим и выходящим трафиком, то можно отследить сообщение, сравнивая размеры. Случайное изменение размера устраняет эту возможность.

  • Ложные сообщения. При пересылке добавляются бессодержательные сообщения, которые затрудняют анализ трафика.

Анонимная почта

Есть причины не указывать своего имени при передачи данных. Анонимная пересылка позволяет спрятать отправителя от получателя.

Неотслеживаемая почта.

  • Программа убирает адрес отправителя. Получатель знает, что письмо пришло от анонимного почтового сервера, но не знает от кого.

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

Разделение путей. Туда и обратно письма идут по одному и тому же пути, поэтому можно проследить всю цепочку, что нарушает анонимность.
При анонимной пересылке почтовая программа заменяет адрес отправителя на случайный и пересылает получателю. Эта замена сохраняется, чтобы получатель смог ответить. Однако процесс оказывается обратимым. Если пересылка идет через цепочку анонимных серверов, то вся цепочка может быть восстановлена, если послать письмо на имя последнего сервера. Для поддержания анонимности пересылка может иддти по двум путям, когда путь для обратного письма выбирает отправитель.

Пример. Обратный путь в исходящем письме. Письмо посылается через анонимный сервис (anonymous remailer or anonymazer), который не сохраняет входящих адресов. Обратный путь помещается в исходящее письмо в зашифрованном виде. \[\begin{aligned} % \nonumber to remove numbering (before each equation) A\to B: \ mail(B)=mail(M, k(path), to(B)). \end{aligned}\] Это решение не защищает против пользователя, который знает обратный путь и захочет его изменить.
\(\square\)

Пример. Схема разделения секрета для обратного адреса. Обратный адрес разделяется на две части \(A_{1}\) и \(A_{2}\). Одна половина \(A_{1}\) сохраняется на одном из серверов,friend.remailer.com, другая \(A_{2}\) отправляется получателю в письме в зашифрованном виде. В заголовок обратного письма включается половинка \(A_{2}\), полный обратный адрес восстанавливается на friend.remailer.com.
\(\square\)

Миксы (Chaum mix)

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

Микс-сети. Сети из прокси серверов для неотслеживаемой передачи сообщений (D. Chaum, 1981). Сообщение передается через серию серверов, их называют mix-узел или микс \cite{1an3}. Анонимность достигается путем устранения связи между входящим и исходящим сообщением и перемешиванием сообщений. Каждый микс выполняет две задачи

  • обеспечивает побитовую несвязанность (bitwise unlinkability). Все сообщения приводятся к одному размеру и шифруются, чтобы не отследить сообщение по его содержимому;

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

Для усиления анонимности могут генерироваться бессодержательные или ложные сообщения отправителем или миксами.
Если скомпрометированы все сервера кроме одного, то анонимность может сохраниться, по крайней мере в случае слабого противника, если перед шифрованием сообщение "посолить”, используя функцию типа SALT. Она меняет размер сообщения, добавляя случайную последовательность.

Побитовая несвязанность. Основой является шифрование. Шифрование преобразует сообщение в криптограмму, которая выглядит бессмысленной, поскольку представляет собой случайную последовательность символов. Это скрывает связь между сообщением и криптограммой. Ясно, что, если каждый раз входную величину заменять на случайную, то проследить связь между входом и выходом будет трудной задачей.
В системе шифрования Вернама криптограмма \(d\) получается сложением сообщения \(m\) и ключа \(k\), который является случайной последовательностью, \(d=(m+k)\mod(N)\), где \(N\) число букв в алфавите, ключ и сообщение составлены из одного алфавита и имеют одинаковую длину. Перемешивание текста со случайной последовательностью делает его бессмысленным. Известно, что у совершенно секретной системы множество криптограмм и множество сообщений независимы \cite{3an3}.

Шифрование. В несимметричной системе сообщение \(M\) шифруется открытым ключом \(k\), а расшифровывается другим ключом \(k^{-1}\), который является секретным: \(M\to k(M)\) и \(k(M)\to M=k^{-1}k(M)\). Преобразования \(k\) и \(k^{-1}\) являются несимметричными с точки зрения вычислительной сложности, они определяют функцию, которую называют односторонней функцией (one-way function).
Каждое сообщение шифруется открытым ключом микса. Получается слоеное шифрование, подобно матрешкам, вставленным друг в друга, где все матрешки имеют одинаковый размер, а сообщение находится в сердцевине. Такой метод шифрования в литературе называют луковичным, а прохождение ”луковицы ” через цепочку миксов называют ”луковичной ” маршрутизацией (onion routine). Каждый микс снимает свой слой шифрования, чтобы определить адрес следующего получателя.
Из равенства \(k(M)=k(M')\) следует \(M=M'\). Если сообщение не очень длинное, то перебирая возможные варианты можно его угадать путем проверки этого равенства. Такая возможность будет исключена, если перед шифрованием к сообщению добавить случайную последовательность \(r\). Тогда, имея \(k(M,r)=k(M')\), можно определить только \(M'=(M, r)\), где сообщение скрыто случайной величиной \(r\). На практике случайную величину \(r\) добавляет функция, которую называют SALT.

SALT. В криптографии \(SALT\) называют случайные данные, которые подаются на вход односторонней функции вместе с сообщением. На практике это используются, например, для удлинения пароля. Если пароль ” посолить ”, добавив случайную строчку из 10-15 символов, то атака на стандартных радужных таблицах, которая используется для подбора пароля, будет неэффективной.

Формат письма. Пусть Алиса хочет отправить Бобу сообщение \(M\). Для этого она добавляет к \(M\) случайную последовательность \(r\), шифрует открытым ключом Боба \(k_{B}\) и добавляет его адрес. Письмо имеет вид \( mail(B)=(k_{B}(M,r), to(B)), \) где \(to(B)\) адрес получателя. При каждом шифровании может добавляться своя случайная величина, которую далее учитывать не будем, записывая \[\begin{aligned} % \nonumber to remove numbering (before each equation) mail(B)=(k_{B}(M), to(B)), \end{aligned}\] Свое письмо Алиса пересылает Бобу через микс. Алиса шифрует конверт открытым ключом микса \(k_{m}\) и отправляет ему сообщение \[\begin{aligned} % \nonumber to remove numbering (before each equation) mail(m)=(k_{m}(mail(B)), to(m)). \end{aligned}\] Микс открывает сообщение своим секретным ключом \(k_{m}^{-1}\), устраняет случайные данные и находит там письмо с адресом Боба \[\begin{aligned} % \nonumber to remove numbering (before each equation) k_{m}(mail(B)\to k_{B}(M), to(B). \end{aligned}\] Анонимный ответ. Боб может ответить Алисе, сохраняя ее анонимность. Для этого Алиса формирует неотслеживаемый обратный адрес. Он состоит из реального адреса \(to(A)\), зашифрованого ключом микса, и выбранного одноразового ключа \(k_{x}\) \[\begin{aligned} % \nonumber to remove numbering (before each equation) too(A)=(k_{m}(to(A)), k_{x}),\end{aligned}\] Этот адрес Алиса посылает Бобу как часть письма, используя предыдущую технику \[\begin{aligned} % \nonumber to remove numbering (before each equation) mail (B)=(k_{B}(M, too(A) ), to(B)),&&\\ mail(m)=(k_{m}(mail(B), to(m)).&&\end{aligned}\] Микс расшифровывает сообщение, в нем находится адрес Боба и зашифрованное письмо от Алисы с ее зашифрованным адресом \[\begin{aligned} % \nonumber to remove numbering (before each equation) mail(m) \to to(B), k_{B}(M, too(A)).\end{aligned}\] Боб открывает сообщение \(M\) и получает зашифрованный обратный адрес \(too(A)\) c ключом \(k_{x}\). Тогда он может переслать Алисе свой ответ \(M'\) обратно через микс. Для этого он шифрует ответ \(M'\to k_{x}(M')\), добавляет зашифрованный адрес Алисы и отправляет письмо миксу \[\begin{aligned} % \nonumber to remove numbering (before each equation) mail(A)=(k_{m}( k_{x}(M')), k_{m}(to(A)), to(m)). \end{aligned}\] Микс извлекает реальный адрес \(to(A)\) и ответ зашифрованный ключом \(k_{x}\), который может прочесть только Алиса \[\begin{aligned} % \nonumber to remove numbering (before each equation) mail(A) \to to(A), k_{x}(M').\end{aligned}\] Поскольку ответ зашифрован ключом \(k_{x}\) , то микс не может его прочесть. Поскольку адрес Алисы зашифрован ключом микса, Боб не знает от кого он получил письмо.

Луковичная маршрутизация

Миксы могут быть соединены, тогда анонимность может сохраниться даже, если один из них останется честным.

Луковичная пересылка

  • ”Луковица ”. Исходное сообщение оборачивается слоями. Каждый слой это сообщение зашифрованное ключом некоторого пользователя с добавлением его адреса. Сообщение от Алисы к Бобу идет следующим образом. Свою ”луковицу ” Алиса посылает пользователю \(C\). Он снимает верхний слой с помощью своего секретного ключа и находит внутри меньшую ”луковицу ” с адресом \(D\). В конце Боб получает ядро луковицы, где находится письмо от Алисы, зашифрованное его открытым ключом.

  • ”Луковичный ” трафик. На практике посредниками при пересылке являются прокси серверы или миксы, объединенные в сети. Они расшифровывают и перенаправляют полученные сообщения. Если миксов много, то каждый получает большое число ”луковиц ” и отправляет их в случайном направлении. Провайдер может наблюдать за всеми миксами длительное время. Однако он не сможет определить куда ушло письмо Алисы и от кого получил письмо Боб из-за большого ”луковичного ” трафика.

  • Анонимный ответ. Сам Боб не знает кто послал ему письмо, если только Алиса не сообщит ему об этом сама. Если Алиса захочет сохранить анонимность, Боб сможет послать свой анонимный ответ, используя ответные ”луковицы ” (reply onion).

  • Анонимность сети. Переписка между Алисой и Бобом может остаться неотслеживаемыми, даже если некоторые миксы будет скомпрометирован. Чем больше миксов, тем сложнее определить кто с кем общается.

Пример. Сеть из трех миксов. Пусть Алиса хочет отправить Бобу сообщение через каскад, составленный из трех миксов, расположенных в лексикографическом порядке \(m_{1}m_{2}m_{3}\), где входом является \(m_{1}\). Их открытые ключи \(k_{1}, k_{2}, k_{3}\).
Алиса посылает письмо, сложенное подобно матрешкам, где в сердцевине находится письмо к Бобу. Так, письмо к миксу \(m_{1}\) содержит письмо к миксу \(m_{2}\), которое содержит письмо к миксу \(m_{3}\), которое содержит письмо к Бобу \(m_{1}\) \[\begin{aligned} % \nonumber to remove numbering (before each equation) &&mail(m_{1})=(k_{1}(mail(m_{2})), to(m_{1})),\\ &&mail(m_{2})=(k_{2}(mail(m_{3})), to(m_{2})),\\ &&mail(m_{3})=(k_{3}(mail(B)), to(m_{3}).\end{aligned}\] В результате луковица имеет вид \[\begin{aligned} % \nonumber to remove numbering (before each equation) \Lambda=k_{1}(k_{2}( k_{3}(mail(B)),to(m_{3}))).\end{aligned}\] С помощью своих секретных ключей миксы извлекают посланные им сообщения \[\begin{aligned} % \nonumber to remove numbering (before each equation) &&m_{1}: \ mail(m_{1}) \to mail (m_{2}),\\ && m_{2}: \ mail(m_{2}) \to mail (m_{3}),\\ && m_{3}: \ mail(m_{3}) \to mail (B). \end{aligned}\] Порядок миксов, через которые передается сообщения, может быть случайным. Для трех миксов можно указать по крайней мере 6 различных маршрутов без повторений \(\{123, 132, 213, 231, 312, 321\}\). Здесь каждый микс связан с двумя другими, поэтому он он не знает от какого из двух пришло сообщение. \(\square\)

Долгосрочное хранение

Перепутывание

Анонимная стеганография