Тот, кто достаточно глубоко разбирается в криптах, наверняка знает, что централизация, пусть даже и ради удобства пользователя, чревата потерей всех положительных свойств криптовалюты. А именно?—?любой кошелек, ключи от которого хранятся не только у вас, вам принадлежит весьма условно. Да-да. Заметим, что это действенный способ экспресс оценки любого криптопроекта. Он централизован??—?несем в корзину! Нет? Тогда попробуем разобраться. Кажется, есть компромиссный вариант.
Сегодня я расскажу о веб-кошельке Биткоина и Эмеркоина, который создала компания Аспанта. Они попытались найти такой компромисс, совмещая несовместимое. Посмотрим, насколько хорошо это им удалось.
Пожалуйста, дедосьте!
Итак, неубиваемость вебкошелька начинается со стандартного хода, фронтенд Emercoin One работает на фреймворке Angular2 и спрятан за CloudFlare. Следующий уровень: физическое разделение компонентов Emercoin One на пять независимых серверов: Фронтенд, Бэкэнд, SQL, отдельных кошельков Биткоин и Эмеркоин. Первые три автоматически масштабируемые настолько, насколько возможно, чтоб выдержать любую атаку. Все сервера (кроме фронтенда) вообще не имеют внешних IP адресов, они находятся где-то глубоко в недрах корпорации, за семью печатями и восемью замками.
Воруй, ломай, брутфорсь!
Разумеется, в любом ПО есть вероятность существования дырочек и дыр, через которые экспертные хакеры могут проникнуть на фронтэнд сервер и сдампить базу данных. Разумеется, юзеры будут столь щедры, что установят пароль, хэш к которому уже известен вселенскому злу. При этом, критических данных злоумышленник не получит. Он узнает баланс, список имен NVS, но сделать с ними ничего сможет, так как для этого нужен Spending Password, который не хранится на фронтенде с SQL.
Проникнуть с сервера фронтенда в бэкенд тоже нельзя, на них просто нет модуля отвечающего за логин, а есть модуль, который контролирует число таких попыток и включит тревогу при попытках брутфорса.
Кроме того, за здоровьем и безопасностью всех этих серверов следят системы мониторинга в реальном времени.
Разумеется, при создании аккаунта, Emercoin One проверяет пароли на слабость: как бы не хотелось установить пароль аккаунта и пароль для траты средств в заветные “qwerty”, система не даст такой возможности. Кроме того, есть возможность доступа к системе по API, со временем разработчики могут дополнить вебваллет возможностью продавать/покупать монеты прямо в нём. Такая возможность заложена в ядро.
Таким образом, создатели сделали все возможное и от них зависящее, чтобы минимизировать самый главный риск любого крипто-проекта?—?кражи пользовательских средств.
И последнее, у Emercoin One есть клиент под iOS. Причем, аккаунт (кошелек) может быть одним и тем же. И, как следствие, можно управлять своими монетами как на iPhone, так и через веб.
Сайт Emercoin One: wallet.emercoin.one
Мобильное приложение: в App Store
Комментарии (12)
Psychosynthesis
08.11.2017 20:26+1Обычно компании, делающие заявления в духе «наш XXX — самый безопасный XXX» выглядят феерически тупо в глазах общественности при первом же публичном взломе их продуктов.
Судя по заголовку, вам не терпится почувствовать себя на их месте.
mwizard
08.11.2017 20:26Что помешает вашему фронтэнду иногда, для специальных людей, выдавать небольшой отличающийся js, который будет spending password записывать и отправлять, куда надо?
snvakula
08.11.2017 20:32Вероятно, автор имел в виду защиту не от провайдера облачной услуги, а от постороннего вмешательства.
amaksr
08.11.2017 21:15фронтенд Emercoin One работает на фреймворке Angular2 и спрятан за CloudFlare
и какое это отношение имеет к безопасности?
физическое разделение компонентов Emercoin One на пять независимых серверов
Как это улучшает безопасность? Взломав фронтенд можно посмотреть куда он коннектится, и идти ломать дальше по цепочке — ровно то же делается если серверы физически не разделены, и нет никакой разницы внутренние у них IP или внешние
Проникнуть с сервера фронтенда в бэкенд тоже нельзя
если нельзя залогинится, то это не значит, что нельзя туда проникнуть и пошарить через API
Emercoin One проверяет пароли на слабость
круто…
Мне кажется более правильно было бы вообще запретить файрволом соединения из фронтенда в бакенд — пусть бакенд коннектится к фронтенду, и по бинарному TCP сам берет запросы и отправляет ответы. В этом случае взлом фронтенда сам по себе ничего бы не дал, и злоумышленнику пришлось бы поднимать модифицированный фронтенд, чтобы слать какие-нибудь injections в бакенд.
Neraverin
08.11.2017 21:46Любой кейлоггер написанный на коленке собирает ваш ароль аккаунта и пароль для траты средств. Пароли кстати очень круто проверяет — asdfgh123 съел без предупреждений. Безопасность! Надежная двухфакторная аутентификация? Не, не слышал.
ploop
09.11.2017 00:25как бы не хотелось установить пароль аккаунта и пароль для траты средств в заветные “qwerty”, система не даст такой возможности
Ну и пойдёт в пень. Так как ради банальной возможности пощупать придётся выдумывать/генерировать сложный пароль.
Ваша ЦА домохозяйки что ли? Люди, разбирающиеся в криптах, вполне осмысленно выбирают пароли. И если мне нужен разовый кошель на 30 секунд, то и «123» вполне сгодится.
devel0per
Начали с
И свели все к и че? где тут децентрализация?
Разве у вас нет возможности перехватить «Spending Password» если это вам очень захочется?
snvakula
Мне кажется, что статья не про MitM ;)
olegarch
Тут речь идёт об одном из возможных вариантов кошелька — WEB-кошельке. Это как раз решение для «поколения WWW», которым лень ставить полный клиент.
А децентрализацию обеспечивают как раз таки полные клиенты (кошельки), которых подавляющее большинство.
Естественно, использование любого сервера, в том числе и E1, подразумевает доверие к этому серверу. Верите серверу — пользуйтесь. Не верите — скачивайте себе полную ноду, и будет Вам счастье с истинной децентрализацией.
Статья же фокусируется на архитектурных решениях, заложенных в основу WEB-версии кошелька, призванных минимизировать ущерб пользователей от возможных успешных атак на сервер.