Новости Отчёт j-berman за август/сентябрь по разработке и интеграциям

Тема в разделе "Новости", создана пользователем Mr. Pickles, 27 сен 2021.

  1. Mr. Pickles

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

    Регистрация:
    11 сен 2017
    Сообщения:
    979
    Симпатии:
    246
    30 августа — 12 сентября
    Рабочее время: 93 часа (CCS_1_time_tracking_weeks_1-2.ods)


    Аннотация

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

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

    Чем я занимался последние две недели
    • Ретроспективный анализ ошибок в алгоритме выбора ложных выходов.
      • ВАЖНОЕ ПРИМЕЧАНИЕ. В ходе проверки корректности алгоритма выбора ложных выходов monero-lws, которая должна была показать, работает ли алгоритм так, как ему положено, я понял, что ошибки, связанной с выбором ложных выходов, о которой так много говорилось, не было. А это означает, что ставшая известной ошибка с выбором ложных выходов, которая заключалась в том, что недавно созданные выходы можно было без труда идентифицировать, по сути, не является таковой, поскольку пользователи MyMonero (и monero-lws) вполне могли строить транзакции, используя в качестве ложных выходов те, что были созданы гораздо раньше. Я связался с командой MyMonero месяц назад или около того, чтобы разобраться с тем, какой вариант реализации они используют, и выяснил, что это monero-lws, но в тот момент я ещё не понимал, что в коде не было той же ошибки.
    • Подача запроса PR с целью повышения безопасности ветви ряда функций RPC демона.
    • Я начал ознакомление с monero-lws и проработал концепцию аудита.
    Чем я планирую заниматься ближайшие две недели

    - Дальнейшее рассмотрение возможности реализации биннинга с целью улучшения алгоритма выбора ложных выходов

    Напомню: биннингом называют стратегию выбора ложных выходов в «бинах» примерно одного возраста, что решает проблему алгоритма выбора ложных выходов.

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

    - Неформальный аудит monero-lws

    На раннем этапе vtnerd упомянул, что ему хотелось бы, чтобы кто-нибудь посмотрел и попытался найти возможные бэкдоры, которые могут навредить приватности. Я займусь этим и даже сделаю немного больше.

    Вот модель угрозы, которую я буду оценивать: пользователь, использующий monerod + monero-lws на сервере, доступ к которому есть только у него во избежание утечки информации о транзакциях Monero третьей стороне, при нормальных условиях. Примеры утечки могут быть следующими:
    • бэкдор, отправляющий чувствительные данные monero-lws третьей стороне vtnerd/a;
    • get_random_outs, выдающий ложные выходы, компрометирующие транзакции пользователя, когда те сохраняются в блокчейне;
    • запросы API обменного курса могут раскрыть информацию поставщику услуг.
    Если честно, я не думаю, что мне удастся выявить какие-либо уязвимости в рамках вышеуказанной модели угрозы — я уже провёл некоторое время за изучением кода. Чтобы вселить уверенность в результатах аудита я собираюсь прочитать каждую строку в каждом файле и разъяснить суть критически важных файлов и функций. Результаты будут соответствующим образом задокументированы.

    Я также собираюсь рассмотреть более широкую модель угрозы: в идеале раскрытие вашей monero-lws в Интернете не позволит кому-либо получить пользовательскую информацию с сервера. Это означает, что только владелец адреса/ключа просмотра сможет увидеть транзакции, сохранённые на сервере.

    - Обновление openmonero и monero-lws в целях обеспечения соответствия алгоритму выбора ложных выходов wallet2

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

    - Продолжение работы над безопасностью ветви в RPC демона

    Есть ещё функции, требующие доработки, чтобы сделать ветвь безопасной. Я немного рассказываю об этом в данном запросе PR.

    - Реализация поддержки подадресов в monero-lws

    Я провёл некоторое время за рассмотрением этой проблемы по запросу @CryptoGrampy и продолжу заниматься этим в дальнейшем. Не думаю, что реализовать поддержку в monero-lws будет сложно (технически всё должно «работать» при наличии правильно помещённых комментариев, но адрес, который вы будете видеть в CLI будет неправильным). По моей начальной оценке эта работа должна занять у меня две недели или около того (при этом мне придётся ускориться с работой в кодовой базе), но я уверен, что у vtnerd есть более удачная идея. Я также начал обсуждение вопроса с Девином из MyMonero, и мы с vtnerd можем поработать с ребятами из MyMonero над решением проблемы (особенно если кто-то из них решит, что было бы неплохо немного изменить API, но, как по мне, этого не понадобится).

    Кажется, над поддержкой monero-lws будет работать немало людей, и лично я в целом буду рад по возможности помочь vtnerd.

    ---

    Источник: j-berman full-time development (3 months)

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

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