Перевод Консультативная записка по использованию подадресов

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 29 окт 2019.

  1. Mr. Pickles

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

    Регистрация:
    11 сен 2017
    Сообщения:
    534
    Симпатии:
    199
    Опубликовано Джастином Эхренхофером / knaccc
    18 октября 2019


    Уважаемые участники экосистемы Monero!

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

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

    1.jpg

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

    Подадреса обеспечивают более высокий уровень защиты, чем интегрированные адреса. Однако при некоторых обстоятельствах они обеспечивают более слабую защиту от злоумышленников. Мы опишем одно из ограничений, связанное с так называемой «атакой Януса».

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

    Атака Януса

    Объяснение на простом английском языке

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

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

    Техническое объяснение

    Вы просите меня отправить вам средства на подадрес (C_j, D_j). Я подозреваю, что у вас есть две «личности» и что подадрес (C_i, D_i) также принадлежит вам. Вместо публикации публичного ключа транзакции sD_j и публичного ключа выхода Hs(sC_j)G+D_j я публикую публичный ключ транзакции sD_i и публичный ключ выхода Hs(sC_i)G+D_j. Вы не можете знать, что я сделал это, и всё выглядит так, будто я отправил средства на ваш подадрес (C_j, D_j). Если вы скажете мне, что получили средства, то я таким образом подтвержу, что подадрес (C_i, D_i) принадлежит тому же самому кошельку и что вам принадлежат оба подадреса одного и того же кошелька (то есть что они используют один и тот же приватный ключ просмотра).

    Требования для проведения атаки

    Чтобы успешно связать подадреса с общим начальным числом, необходимо, чтобы были соблюдены все три следующих требования:

    1. Жертва должна использовать подадреса, связанные с одним и тем же начальным числом. Аккаунты не имеют значения. Отдельные аккаунты, связанные с одним начальным числом, остаются чувствительными.

    2. Злоумышленник должен знать подадреса, которые он будет проверять, и должен создать специальную транзакцию, которая будет принята жертвой, если подадреса основаны на одном и том же начальном числе.

    3. Лицо должно подтвердить (вручную или автоматически) вне блокчейна, что оплата была получена. Злоумышленник может сам подтвердить получение, если его подадрес основан на том же начальном числе, что и подадрес жертвы, как в случае с примером с биржей.
    Как избежать атаки

    Если вы хотите, чтобы различные адреса было невозможно связать, следует использовать отдельные кошельки, а не отдельные подадреса. Как вариант, можно не уведомлять отправителя о получении средств на ваш кошелёк. Злоумышленник не сможет узнать, была ли принята его транзакция вашим кошельком, пока вы не подтвердите этого. Не делитесь своими депозитными подадресами с другими. Только вы должны знать их.

    Примечания

    Существует по крайней мере два известных способа избежать атаки. Мы можем либо зашифровать приватный ключ транзакции, либо опубликовать подпись Шнорра, доказывающую знание приватного ключа транзакции, соответствующего публичному ключу транзакции в базовой точке D_j. Один из этих способов позволит получателю убедиться в том, что входящая транзакция построена надлежащим образом. Эти способы избежать атаки немного повысят размер транзакции. Исследования других способов продолжаются.

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

    Этот вид атаки не может использоваться для кражи средств или раздувания общей денежной массы Monero. Он просто позволяет определить, принадлежат или нет два подадреса одному и тому же кошельку.

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

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

    Объяснение Breaking Monero

    В этом эпизоде Breaking Monero Джастин Эхренхофер объясняет ограничения, связанные с подадресами, включая возможность проведения атаки Януса:


    Заключение

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

    Источник: Advisory note for users making use of subaddresses

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 Mr. Pickles, 29 окт 2019
    Последнее редактирование: 29 окт 2019
  • О нас

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