Перевод Как работает схема «хитрого» пароля безопасности CrAzYpass кошелька Monerujo

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

  1. Mr. Pickles

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

    Регистрация:
    11 сен 2017
    Сообщения:
    206
    Симпатии:
    60
    Обязательный отказ от ответственности. Я являюсь членом команды Monerujo. Может, я и меньше остальных разбираюсь в коде, но это ставит меня в интересное положение: если я пойму его, то тогда это сможет каждый. Эта статья поможет разобраться, зачем была реализована схема CrAzYpass, а также понять логику, лежащую в её основе. Помимо этого, эту статью некоторым образом можно рассматривать в качестве FAQ. Ну а подробное изложение принципов работы содержится в официальном документе.

    Контекст

    Monerujo — это первый мобильный кошелёк для Monero. Он позволяет получать, хранить и отправлять Monero непосредственно с вашего телефона, работающего под операционной системой Android. Следовательно, кошельку необходимо убедиться в том, что именно вы (а не кто-то другой) используете приложение. Для этого, как и в случае с большинством приложений, вам будет необходимо ввести пароль вашего кошелька. И здесь мы сталкиваемся с дилеммой удобства использования / безопасности, которую я бы представил в виде этаких «качелей»: чем безопасней мы делаем систему, тем сложнее её использовать, и чем менее строгими становятся требования к безопасности, тем более удобным становится приложение.

    1.gif

    Вообще, детские площадки — неиссякаемый источник полезных метафор.

    На сегодняшний день мы всё ещё находимся на «гаражном» этапе развития криптовалют. То есть, продукт демонстрирует достаточно хорошие характеристики, имеет невероятные перспективы, но вся проводка по-прежнему на виду, и энтузиасты могут покопаться в ней и подправить что-нибудь. Со временем и при определённых усилиях в определённый момент получается iPhone, в котором всё спрятано за отполированным и предельно упрощённым пользовательским интерфейсом.

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

    И здесь просто отличным примером могут служить пароли. Хороший пароль состоит из длинного ряда букв и цифр, а также символов, расположенных в максимально возможном произвольном порядке. Подобный пароль практически невозможно угадать кому-либо постороннему, но и запомнить его простому человеку так же непросто. Поэтому мы записываем эти пароли и лепим их на ящики наших рабочих столов. И это плохо. С другой стороны, мы часто предпочитаем пароли, которые просто запомнить (например, password1234). Но такие пароли легко угадать, что нивелирует их предназначение.

    И так мы приходим к CrAzYpass.

    2.gif

    Как это работает

    CrAzYpass — это идея Monerujo, призванная обеспечить максимальный уровень безопасности при максимальном удобстве использования. Кратко это можно объяснить следующим образом.

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

    А вот и более длинное и подробное объяснение того, как это работает. Когда вы создаёте кошелёк, Monerujo создаёт файлы на внешней памяти вашего телефона, к которой легко можно получить доступ, используя файловый менеджер, или подключив телефон к ПК, а также через любое другое приложение, установленное на ваш телефон. Это всего три файла.
    • Первый файл содержит сид (мнемоническую фразу) вашего кошелька и ключи. Это самый важный файл (и важнее всего хранить его в секрете), поскольку в нём хранится информация, которая позволит сгенерировать такой же кошелёк где угодно, получить доступ к вашим средствам и потратить их. Этот файл является ключом (если поиграть словами), и потерять его означает потерять ключи от собственной безопасности. Поэтому шифрование этого файла крайне важно с точки зрения безопасности.
    • Другой файл содержит информацию, которая генерируется, когда вы используете ваш кошелёк: имя, которое вы выбрали для кошелька, историю транзакций, а также все данные, связанные с ними. Этот файл — ваша бухгалтерская книга со всеми примечаниями на полях. Шифрование этого файла необходимо для сохранения вашей конфиденциальности.
    • Третий файл — это простой текстовый файл, в котором указан ваш публичный адрес, который вы даёте другим людям, когда они хотят отправить вам Monero. Безусловно, это открытая информация, поэтому нет никакой необходимости в том, чтобы шифровать её. Это как если бы люди знали номер вашего банковского счёта. Некоторым образом, это раскрывает вас, но в данном случае давайте не слишком придаваться фантазиям. Этот файл не требует шифровки.
    Критически важные файлы защищены усложняющимися паролями по принципу матрёшки.

    3.jpeg

    Итак, эти файлы хранятся на вашем телефоне, и вплоть до этого момента Monerujo использовал вводимый вами пароль для шифрования первых двух файлов. Теперь кошелёк использует схему CrAzYpass, которая берёт за основу ваш удобный для запоминания пароль и производит определённые вычисления при помощи соответствующего алгоритма. В результате вычисления (хеширования) получается улучшенный, более сильный пароль. Например, простой пароль вроде hello после применения схемы превращается в RNXY LLCE R6AE YJCC W3QZ H8HY Y2B2 P6DD C898 32MS PLHP 47VT BM52.

    Да, это означает, что хакеру придётся угадать всё это, чтобы расшифровать критически важные для безопасности вашего кошелька файлы. Для этого Monerujo использует собственный безопасный аппаратный накопитель Android и RSA шифрование. Затем, сверх этого производится вычисление по протоколу CryptoNight. Поэтому, для расшифровки файлов придётся приложить некоторые усилия (и потратить какое-то количество электричества). Вам это не будет стоить ничего, так как вам известен правильный пароль. Но злоумышленнику, использующему «грубую силу», придётся снова и снова подбирать различные комбинации, что очень скоро приведёт к слишком большим затратам. А также займёт уйму времени.

    Единственным компромиссом, на который придётся пойти пользователю, являются случаи, когда вам будет необходимо расшифровать файлы вне установленного в настоящий момент Monerujo. Например:
    • Eсли вы копируете файлы вашего кошелька на компьютер, чтобы открыть их через официальный кошелёк Monero — они совместимы;
    • Eсли вы удалите Monerujo, а затем вновь установите его;
    • Eсли вы сбросите все данные телефона до заводских настроек, и вам придётся заново устанавливать Monerujo.
    Не забывайте о том, что файлы зашифрованы при помощи схемы CrAzYpass, так что схема должна быть записана заранее. Так же не стоит забывать об аналогии с вашей бухгалтерской книгой. Если вы не запишите CrAzYpass, вы потеряете её. Это будет не так важно с точки зрения безопасности, как если бы вы потеряли ключи, но всё-таки не очень приятно.

    И ещё некоторые соображения по теме

    Почему схема CrAzYpass выглядит именно так? Да потому что он задуман таким образом, чтобы пароль был максимально удобным для чтения и записи человеком и не являлся причиной обычных человеческих ошибок. Это простые заглавные буквы и цифры, так что вы не спутаете Is, ls и 1s или 0s и Os. Помимо этого, символы разбиты в группы по четыре, поэтому вы можете с лёгкостью записать и поочерёдно проверить их. Получаемый пароль не тривиален и следует той же логике, что и в случае с мнемонической фразой Monero, которая записывается простыми словами. Такой пароль не позволяет кому-либо открыть доступ к своим средствам, допустив простейшую ошибку. Всегда следует помнить о компромиссе, связанным с удалением доверенной третьей стороны из крипто пространства, в результате которого вам не придётся панически кричать, когда вы потеряете свой пароль.

    Различные уровни безопасности, и что они позволяют вам видеть или делать

    4.jpeg

    Возможно, что следующее обновление Monerujo позволит вам открывать свой кошелёк, используя отпечаток пальца, а не обычный пароль. Будет очень удобно открывать кошелёк таким образом проверять баланс или, например, копировать ваш адрес. Для отправки средств по-прежнему будет необходим пароль или мнемоническая фраза. Это на случай атаки типа «evil maid» (злая горничная), когда кто-то воспользуется тем, что вы спите и использует ваш палец без вашего на то согласия.

    В общем, вот так всё и работает. Придумайте максимально безопасный пароль, который вы способны запомнить, и вводите его в телефон всякий раз, когда вам необходимо использовать ваш кошелёк. Запишите CrAzYpass на случай, если вам понадобится восстановить кошелёк в будущем, и, пожалуйста, ПОЖАЛУЙСТА, запишите мнемоническую фразу.

    Более подробное и более техническое описание принципов работы схемы вы найдёте в оригинальном документе, опубликованном m2049.

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

    Источник: How Monerujo’s CrAzYpass (crazy secure password scheme) works

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

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