Перевод Отчет о проделанной работе над художественной головоломкой TheMonera

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

  1. Mr. Pickles

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

    Регистрация:
    11 сен 2017
    Сообщения:
    505
    Симпатии:
    190
    1.jpg

    Добро пожаловать в описание пазла-картинки TheMonera, опубликованного здесь: https://www.themonera.art/2019/02/13/monero-puzzle/. Изначально пазл-картинка был опубликован во время конференции DEFCON 2018, и его решение открывало доступ к кошельку с суммой, которая не разглашалась. Картина и пазл, который был скрыт в ней, стали объединённым проектом themonera и midipoet. Оригинал картины был написан Джованни Паоло Панини в 1757 году (дата указана в нижнем левом углу), но новая картинка содержит более 50 (на самом деле понятия не имею, сколько точно) изменённых областей, которые отсылают нас к Monero, фильмам и соцсетям. На первый взгляд, картинка пугает с точки зрения головоломки, которую предстоит решить, но в реальности она содержит всего несколько областей, представляющих интерес. Итак, начнём.

    Сбор ключей

    Изображение содержит множество вещей, которые могут использоваться, а могут и не использоваться в качестве ключей, и я не стану углубляться в суть многих из них, потому что, если честно, тогда бы я даже не знал, с чего начать. В реальности есть только 6-7 областей, которые помогут решить пазл, и 4-5 из них необходимы для того, чтобы пройти первый этап (и я знаю, с чего именно начать).

    2.jpg

    Первой важной деталью является доска, на которой указаны 10 атомных элементов, которые зашифрованы текстом под символами, обозначающими элементы. Так как мы видим большое количество цифр, заглавные и прописные буквы, а также символы = и +, несложно догадаться, что мы имеем дело с кодировкой base64. Итак, оказывается, пазл использует части с кодировкой base64, но это не сложно: открываем «Периодическую таблицу элементов» и находим атомные элементы, указанные в таблице на картине. Мы тут же обнаруживаем, что 10 сгруппированы, и между ними отсутствуют какие-либо другие элементы. А это означает, что порядок частей зависит от порядка элементов «Периодической таблице»! Таким образом, мы получаем:
    Хорошо. Теперь было бы разумно попытаться расшифровать это при помощи любого декодера base64. К сожалению, результатом будет случайный набор байтов. Причина состоит в том, что сообщение, указанное выше, является зашифрованным текстом, скрывающим какой-то секрет, который нам необходимо расшифровать, используя фразу-пароль и соответствующий шифр.

    3.png

    4.png

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

    5.jpg

    Следующей картинкой, представляющей интерес, и, вероятно, сразу обращающей на себя внимание, является штрих-код с маленьким роботом и примечанием, записанным при помощи двоичного кода. Если просканировать штрих-код считывателем, то мы получим p864xRDJ, но если вы разбираетесь в сети интернет, то вам известно, что маленькое примечание, написанное двоичным кодом, является логотипом веб-сайта https://pastebin.com/. Связав эти две вещи и посетив https://pastebin.com/p864xRDJ, мы получаем следующее:

    If you can bear to hear the truth you’ve spoken
    Twisted by knaves to make a trap for fools,
    Or watch the things you gave your life to, broken,
    And stoop and build ’em up with worn-out tools


    И если ты готов к тому, что слово
    Твоё в ловушку превращает плут,
    И, потерпев крушенье, можешь снова —
    Без прежних сил — возобновить свой труд...

    Прекрасный небольшой стих, и если «погуглить», то вы выясните, что его автором является Редьярд Киплинг (Rudyard Kipling), а поэма называется «Если» (If). Несмотря на то, что это определённо замечательное литературное произведение, наличие стиха не даёт нам какой-либо дополнительной информации, полезной для решения нашего пазла. Поэтому давайте продолжим.

    6.jpg

    7.jpg
    Ещё одна вещь, за которую, безусловно, должен зацепиться наш взгляд — код Морзе, который находится непосредственно под постером фильма «Человек-невидимка». Этот код легко расшифровывается при помощи любого онлайн инструмента и просто указывает на ТРЕТЬЮ ПОЗИЦИЮ. Интересно, что тот же самый код Морзе присутствует в правом нижнем углу на рисунке, куда был добавлен Fluffypony (почему-то только с одной ногой!). Только в этом случае код хорошо спрятан, видите его на рисунке вверху? Он прямо сверху, но написан коричневой краской очень близкого оттенка к палитре самого рисунка, который служит для него фоном. В любом случае код Морзе не используется на первом этапе.

    8.jpg
    Это последняя часть, необходимая для решения нашего пазла, и, возможно, она больше остальных сбивает с толку, и её интерпретировать сложнее других. Безусловно, шифр Виженера довольно известен и использовался для зашифровки многих пазлов / игр, связанных с параллельной реальностью (ARG), так что вывод не будет особо подозрительным в нашем случае. Мы могли бы предположить, что на последнем этапе будем иметь дело с каким-то шифротекстом и нам понадобится код Виженера для его расшифровки. Но, как оказалось, не в этом случае. :D

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

    Получение фразы-пароля

    Мною было предпринято несколько попыток по решению этого пазла. Между ними прошли месяцы, в течение которых я пытался получить хоть сколько-нибудь информации, хоть какую-нибудь подсказку от midipoet уже после того, как им был опубликован пазл. Без его веток на Reddit, я уверен, у меня бы никогда и ничего не получилось. Вот две из них:

    https://www.reddit.com/r/interoception/comments/9dvnb8/defcon_a_clue_is_herejust_ask

    и что более важно:

    https://www.reddit.com/r/Monero/comments/9dvyjv/unsolved_monero_defcon_crypto_puzzle/

    По второй ссылке midipoet даёт несколько криптографических подсказок в художественной форме. Среди них — Twofish (что снова подтверждает нашу догадку) и более важная:
    Меня надолго озадачил вот этот «путь», которому я должен был следовать. Я (как и многие) был уверен в том, что нам необходимо связать поэму Киплинга с работой, в результате чего нам удастся получить фразу-пароль. А мне следовало уделить больше внимания следующему отрывку: «помните о скобках», поскольку именно эта фраза была ключом к разгадке.

    Если вы помните о ссылке BLAISE DE VIGERENE 1523–1596 и взглянете на текст выше, который заканчивается указанием midipoet(2014-****), пытаясь «помнить о скобках», так скажем, вы увидите «ключ к ключу». Поскольку, ну, они забыли про скобки. Поэтому вам лучше помнить о них. Но почему вообще были важны скобки? Да потому что они были нужны в фактическом ключе.

    Вернёмся к поэме, зная, что «путь начинается с неё» (взято из одного из постов на Reddit). Сейчас я допускаю, что фактической фразой-паролем к пазлу было что-то вроде Rudyard Kipling(1865–1936). Таким образом, сначала я скомпилировал список вариантов, в которых всё было перемешано. Всё было написано заглавными буквами, всё было написано прописными буквами, и т. д. (а некоторые включали и ещё одно имя Киплинга — Джозеф (Joseph)). Также я перепробовал самые различные веб-сайты. Ничего не сработало, но, к моему удивлению, результаты были различными в зависимости от сайта. Таким образом, когда мною было найдено несколько различных вариантов реализации, 2 на c# и один на Python, я испробовал их и один дал совершенно иные результаты, чем два других.

    Тут мне подумалось, что это несколько странно, так как единственное, в чём отличались эти варианты реализации — то, как они выводили ключ на основе задаваемой фразы-пароля. Следует отметить, что Rudyard Kipling(1865–1936) относится к фразе-паролю, в то время как «ключ» — это структура данных, составляющая 128, 192 или 256 бит (в случае с Twofish), которая выводится на основе фразы-пароля (фраза-пароль может оказаться текстом любой длины). Так как у нас не было какой-либо информации относительно длины ключа, необходимой для способа выведения ключа, в конечном счёте я сдался и оставил попытки применения собственных вариантов реализации, и вернулся к просмотру веб-сайтов, но безуспешно.

    Пребывая в расстроенных чувствах, я написал midipoet, чтобы он проверил, работает ли расшифровка надлежащим образом, и не пропустил ли я чего-либо. Проведя проверку, он ответил, что веб-сайт, похоже, не работает. Так же он прислал мне название веб-сайта (https://codebeautify.org/encrypt-decrypt) в надежде, что я свяжусь с его персоналом для решения проблемы. Я так и поступил, но им понадобилось ещё три дня на «шифровку/дешифровку» страницы и её запуска (за это время мною был решён другой пазл, связанный с монетой на базе Monero: https://medium.com/@elronvhubbard/loki-and-freya-a-christmas-story-c7aeca212ce6).

    Наконец, в одно прекрасное утро я проснулся и попробовал включить сайт. К моему удивлению, всё было исправлено! Я ринулся к своему ПК, начал пробовать фразы-пароли во всех режимах, используемых веб-сайтом. Вскоре у меня получилось произвести правильную расшифровку. Все данные, необходимые для реализации «первого этапа», перечислены ниже:
    Прекрасно! Вы обнаружите, что в результате получается простой текст:
    Потерянный рай (Paradise Lost)

    Очевидно, если мы в результате расшифровки получаем только адрес электронной почты, то мы отправим на него сообщение. Я сделал именно это и получил автоматический ответ:
    Ну, на первый взгляд, выглядит это как цвета RGB в шестнадцатеричной кодировке. Но если бы это было так, то этих данных было бы слишком мало, и они бы просто были бесполезны. Вместо этого можно вернуться к самому адресу электронной почты, посмотреть на название (многие люди, возможно, уже узнали его, но я не узнал, пока не «погуглил»). Простой поиск показал, что это название эпической поэмы, написанной Джоном Мильтоном, второе издание которой было опубликовано в 1674 году.

    Теперь у нас имеется название книги, четыре набора по 3 цифры. Свести всё воедино не составило труда, это был книжный шифр: три цифры указывали на номер страницы, строку, слово. Ну, или как-то так. Четыре набора цифр (если использовать более удобный формат) были следующими:
    Теперь остаётся найти необходимую книгу, чтобы применить цифры, указанные выше. Это будет первая книга (из 12) по результатам поиска Google, если задать название и год публикации. Вот одна из возможных ссылок:

    https://www.poetryfoundation.org/poems/45718/paradise-lost-book-1-1674-version

    Тем не менее мы видим, что в ней нет страниц, а вместо них только параграфы (стансы). В этом случае первое из трёх чисел будет означать номер станса, второе — номер строки, а третье — номером слова. Применив 4 набора цифр, получаем следующий текст:
    Сложив слова вместе, получаем: disdainambitiondefiancemultitude, что открывает нам доступ к почте! Ура! Ну, я таки открыл её, честно! Но, конечно же, как только я получил доступ к адресу, я поменял пароль и присвоил его себе.

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

    9.png

    Ну, кажется, мы почти закончили! Но есть ещё файл morse.wav, который находится здесь (надеюсь, что это так — я впервые пользуюсь vocaroo):
    https://vocaroo.com/i/s11TVjqskM4z

    Это простой аудио файл со словом TSUNAMI, закодированным при помощи азбуки Морзе.

    Теперь следует отметить, что фраза, содержащаяся в черновике, имела длину 24 слова (в оригинале), и ни одно слово не повторялось дважды. Обычно мнемоническая фраза Monero составляет 25 слов, и 25-е слово повторяет одно из других 24 слов (оно работает как контрольная сумма). Импорт мнемонической фразы возможен (клиент Monero автоматически вычисляет слово, играющее роль контрольной суммы, если вы не включаете его), но кошелёк при этом будет пуст.

    Вместо этого было необходимо вернуться к картинке-пазлу и вспомнить, что было там написано кодом Морзе: ТРЕТЬЯ ПОЗИЦИЯ. Таким образом, оставалось добавить слово TSUNAMI на третье место в мнемонической фразе. Бум! Мы, наконец, восстановили мнемоническую фразу и увидели, что 1XMR была отправлена на кошелёк. Если вы хотите загрузить мнемоническую фразу и проверить это сами, то восстанавливайте, начиная с высоты 1604700, а полная фраза будет следующей:
    Благодарность

    Мне бы очень хотелось поблагодарить midipoet и themonera за создание удивительной картины и включение в неё криптографического пазла. Я также принял участие (удалённо) в «захвате флага» (CTF) на DefCon в этом году, где midipoet также приложил свою руку к некоторым забавным заданиям, так что я, определённо, надеюсь увидеть (и попытаться решить) то, что он придумает в будущем!

    Источник: TheMonera art puzzle write-up

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    TheFuzzStone нравится это.
  2. S1mple

    S1mple Monerano

    Регистрация:
    10 сен 2019
    Сообщения:
    21
    Симпатии:
    2
    Капец, есть на платене человек, Который разгадал-то?
     
  • О нас

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