Кошелек с усиленной защитой: дополнение Владимира Абовяна
👋 Всем привет! На связи Владимир Абовян, и сегодня я хотел бы дополнить видео на тему создания кошелька с оповещением. Кто не смотрел видео вот ссылка.
💭 Для чего это нужно?
Одна из самых частых атак на пользователя – это атака через скомпрометированную мнемоническую фразу (12 или 24 английских слова).
Мы не будем вдаваться в подробности атак, а примем это как маловероятный, но возможный сценарий. Проблема в том, что компрометация фразы — необратимое действие, которое, как правило, сопровождается кражей всего цифрового портфеля пользователя. Я это называю «точка невозврата». То есть пользователь ничего не может предпринять для предотвращения кражи. Или может?
🛡 Механика защиты
Защититься мы можем с помощью кодовой фразы или парольной фразы (passphrase), которая была предложена в конце 2013 года в предложении BIP39.
Суть кодовой фразы следующая: на основе мнемонической фразы (24 английских слова) можно создать неограниченное количество кошельков, добавив кодовую фразу.
24 слова + кодовая фраза = новый кошелек
Мы можем создать кошелек без фразы (КОШЕЛЕК А), то есть, использовать просто 24 слова и задать к этому же кошельку кодовую фразу:
SUNSCRYPT2&1!hello
Тем самым мы создадим абсолютно новый кошелек (КОШЕЛЕК B) с уникальными приватными и публичными ключами, адресами.
На кошелек А мы положим небольшую сумму 2, 3, 5% от своего портфеля. А на кошельке B будем хранить все наши активы.
Обязательно следует убедиться, что кошелек поддерживает функцию кодовой фразы. Не все горячие и аппаратные кошельки ее поддерживают. Как ее включить — это тема, требующая отдельного поста. В этой статье мы обсуждаем только механику защиты.
🔔 Включаем оповещение
Следующим этапом мы включаем кошелек оповещения (КОШЕЛЕК А).
Я использовал кошелек Zerion для мониторинга активов. Не забываем включить все уведомления. Этот кошелек я называю «кошелек-оповещения» — на самом деле это просто кошелек, который мониторит адрес Ethereum.
Условия эти нужны, чтобы любой скрипт, бот или человек при восстановлении кошелька тут же обнаружил активы без каких-либо препятствий. Я все же рекомендую использовать Ethereum, так как у него нет разных форматов адресов (segwit, native segwit, legacy…).
Вы можете использовать любой другой кошелек для мониторинга, главное, чтобы оповещение сработало и ваше мобильное устройство вовремя оповестило о исходящей транзакции.
⚔️ Атака
При исходящей транзакции мы получим оповещение на телефон.
Мы на 100% можем быть уверены, что наш сид скомпрометирован и соответственно мы теряем пару процентов портфеля, но зато получаем ценную информацию и можем осуществить миграцию активов на новую мнемоническую фразу.
💡 Ключевые мысли
Для того, чтобы механизм защиты работал необходимы три ключевые вещи:
- Сид и кодовая фраза должны находится в разных локациях. Если сид лежит дома, то кодовая фраза в другом месте;
- Кодовая фраза должна быть достаточно сложной – это не должно быть ваше имя или номер телефона. Это должен быть сложный пароль из 15 символов с большим маленьким регистром, цифрами и спец.символами;
- Кошелек с оповещением, то есть, без фразы, на котором у нас будет лежать 5-10% портфеля должен выглядеть как реальный основной кошелек с историей транзакций, которым мы периодически пользуемся. Как раз этот кошелек можно и использовать в качестве прокладки с основным — добавляя в нашу модель безопасности чуть-чуть анонимности и безопасности особенно при интеграции например с дексами.
Не лишним будет ознакомиться со следующей таблицей по стоимости перебора кодовой фразы. К примеру, моя кодовая фраза имеет длину от 15 символов ASCII (стоимость взлома > $ 128 000 000 000).
📚 Полезные ссылки
- Видео на YouTube канале Sunscrypt
- Концепт кодовой фразы
- Кошелек Zerion для мониторинга
- Статья от Trezor по сложности кодовой фразы
SUNSCRYPT | Магазин | YouTube | Обменник | Майнинг | Подкасты | Клуб