Перевод Метод атаки на кольцевые подписи Monero: воспроизведение эффекта транзакций с нулевыми миксинами / 2

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 5 май 2018.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    283
    Симпатии:
    97
    Часть вторая

    III. ИЗВЕСТНЫЕ АТАКИ НА АНОНИМНОСТЬ MONERO
    A. Атака «Black Marbles»

    В этой статье мы используем термин «Black Marbles Attack» (атака чёрными шариками), чтобы обозначить атаку на анонимность Monero путём контроля максимально возможного количества выходов в блокчейне Monero [16]. Предполагается, что атакующий пытается контролировать большую часть выходов в блокчейне Monero. Если все выходы в блокчейне представить в виде шариков в урне, то чёрными шариками будут те выходы, которые контролируются атакующим, в то время как белыми шариками будут настоящие выходы, созданные пользователями. Урна обозначает совместно используемый леджер (блокчейн), где хранятся чёрные шарики (выходы, контролируемые атакующим) и белые шарики (настоящие выходы), которые видимы для всех наблюдателей.

    Чтобы максимально увеличить эффект атаки, атакующему необходимо создать больше выходов (чёрных шариков), чтобы их количество превышало количество выходов других пользователей (белых шариков). Это можно сделать, отправляя монеты назад на собственный адрес [18]. Так как информация, касающаяся того, был потрачен выход или нет, отсутствует, атакующему необходимо постоянно добавлять большее количество чёрных шариков, чтобы повысить вероятность того, что его выходы будут использованы другими транзакциями в качестве ложных объектов.

    B. Транзакция с нулевыми миксинами и каскадный эффект

    В случае с Monero, транзакциями с нулевыми миксинами называются транзакции, в которых, по крайней мере, один вход не использует никаких ложных объектов или миксинов. Транзакции с нулевыми миксинами не обладают возможностями анонимности, которые обеспечивают кольцевые подписи, и поэтому любой наблюдатель может быстро отследить реального отправителя транзакции. Проблема анонимности не является проблемой только транзакций с нулевыми миксинами, но и любой другой транзакции, которая использует те же выходы, которые были потрачены в транзакции с нулевыми миксинами, в качестве своего ложного объекта.

    Кольцевая подпись является эффективным способом правдоподобного отрицания для обеспечения неотслеживаемости в оптимальной среде: есть достаточное количество выходов, имеющих идентичные характеристики, такие как возраст и количество монет, содержащихся в выходе. К сожалению, такую среду невозможно было полноценно реализовать для Monero до тех пор, пока использование протокола RingCT не стало обязательным.

    Несмотря на то, что пользователям приходилось разбивать свои транзакции в соответствии с определённым правилом деноминации, это правило никогда строго не соблюдалось. В транзакциях всё ещё можно найти уникальные суммы монет, хотя это и создаёт проблему ликвидности, когда пользователь не может найти другие выходы, содержащие точно такую же сумму монет. Для всех тех выходов, для которых пользователи не могут найти соответствие, ими создаются транзакции с нулевыми миксинами: вход содержит только реальный выход без каких-либо миксинов или ложных объектов.

    Несмотря на то, что уже говорилось о том, что транзакции с нулевыми миксинами создают каскадный эффект с точки зрения анонимности других транзакций, новые исследования показывают, что эффект гораздо значительнее, чем ожидалось. При использовании методов, описанных в предыдущем исследовании, эффект достигает 87% и 62%. Это означает, что в случае, по крайней мере, более чем половины всех проанализированных входов (до введения протокола RingCT) ложные объекты можно отличить от реальных выходов.

    C. Временной анализ

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

    Для решения проблемы были предложены новые методы выборки, треугольное распределение. Протокол треугольного распределения подразумевает, что 25% всех ложных объектов должны выбираться из недавно добавленных выходов. При использовании этого метода ожидается, что результаты временного анализа обнуляются, поскольку хотя бы 1 минимум из 5 обязательных миксинов в последней версии Monero (Helium Hydra) существует менее 5 дней.

    D. Публикация приватных ключей просмотра

    Приватный ключ просмотра является особенностью системы Monero, которая позволяет проверять монеты, которыми владеет пользователь. Если пользователь предоставит приватный ключ просмотра от своего кошелька аудитору, то аудитор сможет отследить каждую монету, полученную на соответствующий адрес. Несмотря на то, что приватный ключ просмотра позволяет осуществлять подобные действия. Аудитор не сможет украсть монеты у пользователя, используя такой ключ. Также аудитор не сможет проверить, были потрачены монеты или нет.

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

    1.jpg

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

    E. Сравнение предлагаемой нами схемы атаки с уже существующими

    При проведении атаки Black Marbles предполагается, что атакующий создаёт новые выходы путём создания транзакций, соответствующих количеству выходов, созданных другими пользователями. Чем больше выходов у атакующего, тем выше вероятность того, что он понизит уровень анонимности других пользователей. Этот тип атаки можно реализовать исключительно индивидуально. Или же, если атака координируется несколькими атакующими, каждому из них придётся доверять другому атакующему при определении того, является ли выход результатом атаки или нет. Атаку Black Marbles также можно комбинировать с публикацией приватных ключей просмотра и направлять транзакции на адрес атакующего. Но при этом транзакции не служат какой-либо другой цели, а следовательно, комиссии, выплачиваемые майнерам, тратятся впустую.

    А отличие от Black Marbles, предлагаемая нами схема атаки лучше тем, что сценарий атаки несколькими атакующими скоординирован. Каждый атакующий проводит атаку, а её результат также может быть оценён другими атакующими без использования какой-либо другой информации, такой как приватные ключи просмотра. При использовании предлагаемой нами схемы, транзакцию не нужно направлять на свой собственный адрес, а следовательно, её просто реализовать в существующих онлайн сервисах, таких как биржи или кошельки. Биржи и кошельки не требуют каких-либо дополнительных комиссий, так как им придётся просто реализовать метод в системе и преобразовать свои обычные транзакции в «тёмные» транзакции, у которых будет ослаблен только уровень анонимности.

    Предлагаемая нами схема атаки не опирается на наличие транзакций с нулевыми миксинами, так как такой метод устарел после обновления Monero, то есть после введения RingCT и обязательного минимального количества миксинов. На этапе настройки воспроизводится подобное воздействие транзакции с нулевыми миксинами, а на этапе атаки воспроизводится каскадный эффект транзакции с нулевыми миксинами.

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

    Наша схема атаки демонстрирует более высокий уровень точности, если сравнивать её с временным анализом. При временном анализе атака зависит от того, как выбираются ложные объекты среди всех доступных выходов в системе. Если алгоритм выбора оптимален, временной анализ не позволяет определить был ли во входе потрачен реальный выход. При использовании нашей схемы атаки реальный выход определяется со 100% точностью. Краткое сравнение приводится в таблице I.

    ТАБЛИЦА I. СРАВНЕНИЕ МЕТОДОВ АТАКИ

    2.jpg

    IV. ПРЕДПОЛАГАЕМАЯ НАМИ СХЕМА АТАКИ

    A. Обзор
    Предлагаемая нами схема атаки использует мягкость daemon-программы Monero в отношении создания транзакций кошельком Monero. Monerod проверяет только действительность транзакции, передаваемой на сервер. При этом транзакции должны иметь правильный баланс и действительные цифровые подписи. Построение кольца во время создания цифровой подписи полностью обрабатывается кошельком. Daemon-программа Monero помогает кошельку, предоставляя информацию публичных ключей, основанную на индексах, взятых кошельком.

    На основе данной информации можно построить вредоносную транзакцию и понизить уровень k-анонимности или даже деанонимизировать транзакции Monero. Воздействие будет подобным каскадному эффекту, как при использовании транзакций с нулевыми миксинами.

    B. Предлагаемый метод

    Предлагаемая схема атаки делится на три этапа: подготовка, настройка и сама атака. Реализация этапа атаки возможна с применением двух методов: пассивного и активного. Каждый этап более подробно рассмотрен ниже.

    1. Этап подготовки

    Для проведения каждой атаки атакующему необходимо некоторое количество непотраченных выходов. Количество выходов зависит от минимального размера кольца r, соответствующего требованиям системы Monero. Шестая версия (Helium Hydra) предполагает, что минимальный размер кольца r равен пяти, поэтому минимальное количество выходов, необходимое атакующему, также равно пяти. Целью этапа подготовки является сбор непотраченных выходов, которые потом будут потрачены на этапе настройки. Если количество выходов, которые есть в наличии у атакующего, превышает минимальный размер кольца, но при этом оно меньше, чем кратные значения r, то остающиеся выходы можно будет использовать на этапе атаки.

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

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

    2. Этап настройки

    На этом этапе необходимо создать точное количество входов r для каждого треда атаки. Это означает, что атакующим будет создано r кольцевых подписей. Каждая кольцевая подпись будет тратить выход транзакции, который имеется у атакующего. Допустим, что ряд l публичных ключей L = [PKA, PKB, PKC, PKD, PKE, …], а их пары образов секретных ключей K = [IA, IB, IC, ID, IE, …]. Количество публичных ключей в L равно r. Ложные объекты для каждой кольцевой подписи выбираются из L, как показано на рисунке 4.

    Входы могут быть включены в транзакцию или во множество транзакций, но с точки зрения затрат выгоднее иметь r входов в одну транзакцию. Этап настройки имеет эффект подобный использованию транзакции с нулевыми миксинами, но с одним отличием. При проведении транзакции с нулевыми миксинами любой может точно определить, какой из входов тратит выход. На этом этапе настройки невозможно определить точный вход, который тратит определённый выход. Мы можем только сказать, что все входы на этапе настройки тратят все члены L, независимо от того, какой из входов какой выход тратит. Целью этапа настройки является обнуление вероятности того, что другими транзакциями будет потрачен какой-либо из членов L.

    3.jpg

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

    3. Этап атаки

    Существуют два типа атаки, которые можно использовать: пассивная атака и активная атака. Каждый тип атаки имеет свои цели и различные методы реализации. Оба типа описаны ниже.

    4.jpg

    Пассивная атака. Цель пассивной атаки состоит в том, чтобы потраченные на этапе настройки выходы (члены L) были использованы другими пользователями во множестве транзакций. Если это произойдёт, наблюдатель пропустит публичные ключи, так как они были потрачены в транзакциях на этапе настройки, а публичные ключи не могут быть повторно использованы в каких-либо других транзакциях. Эти транзакции имеют сниженный уровень k-анонимности. Степень снижения уровня k-анонимности зависит от количества ложных объектов, поступающих из транзакций на этапе настройки. Пример, показанный на рисунке 5, иллюстрирует снижение уровня анонимности на 2 в соответствии с количеством публичных ключей, использованных в качестве ложных объектов.


    Активная атака. Допустим, атакующим B была запущена вредоносная служба кошелька Monero. Целью кошелька является не хищение монет пользователей, а обеспечение отслеживаемости транзакций. Кошельку известны публичные ключи L, и он использует их в качестве ложных объектов в кольцевой подписи, как показано на рисунке 6.

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

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

    Продолжение статьи вы можете найти по этой ссылке
     
    #1 Mr. Pickles, 5 май 2018
    Последнее редактирование: 19 май 2018
  • О нас

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