Введение
Мир без посредников. Мир без необходимости доверять третьей стороне. Мир где каждый сам себе автономный банк. С идеей о таком мире создавалась первая криптовалюта и затем многие другие блокчейн-проекты. В таком мире “твой пароль = твои деньги” если говорить упрощенно. Если точнее: “твой приватный ключ = твои деньги/активы/права/документы/личность”.
Если это для тебя понятно — то ты молодец. Большинство людей продолжают думать, что Биткоин, это что-то типо вебмани с хорошей криптографией, а Блокчейн — это название компании, которая владеет сайтом blockchain.info. Но не только такие люди постоянно теряют свою кровно заработанную крипту или если не теряют, живут с высокими шансами в один прекрасный день ее потерять. Почему? Причин много — от низкой компьютерной грамотности и недостатка образования до обычной лени. Если ты думаешь — что ты сможешь выжить в новом цифровом мире без компьютерной грамотности, то у меня для тебя плохие новости.
Так выглядели депозитные ячейки в первых банках около 150 лет назад
“Мир криптовалют — это новое поле для злоумышленников. Он идеально подходит для реализации их темных амбиций”.
Посудите сами:
Все сводится к получению приватного ключа — а значит огромное разнообразие мест, где эти приватные ключи могут хранится от личных пк c Windows и Android смартфонов до серверов онлайн-кошельков и крипто-бирж. По сути тут возможны все векторы атак, которые в принципе могут существовать в интернете.
Нет банковских проверок и блокировок
Нет лимитов на переводы
Никто не сможет откатить транзакцию
Относительно легко достижимая анонимность на всех этапах
Украденные средства можно отмыть в два клика через биржи с анонимной регистрацией, конвертнув их в приватные валюты типо Monero или Zcash
Все процессы можно автоматизировать
Для тех, кто понимает, что криптовалюты к нам пришли всерьез и надолго, перспектива роста интереса злоумышленников разных сортов (в том числе из государственных структур) к этой теме не вызывает сомнений. Безопасность хранения и использования крипты — важнейшее направление, в котором еще не решено множество вопросов и проблем.
Как грамотно подойти к хранению крипты?
Ответ простой:
“Никому не передавать свой приватный ключ”
Это значит, НЕ хранить крипту (большую ее часть) на:
Онлайн кошельках типо blockchain.info, xapo и подобных. Вообщем на всех онлайн-сервисах, которые берут на себя хранение приватных ключей
Централизованных биржах, потому что биржа — это как банк, который все плохие дяди хотят ограбить. А иногда и сами владельцы банка поддаются соблазну и устраивают собственное ограбление, выставляя себя жертвами.
Мобильных приложениях — кошельках. До сих пор в Android и iOS к вашим данным могут получать доступ другие приложения, скачанные из сторов, а тем более сами корпорации Apple и Google. В этом направлении ведутся разработки, но по-настоящему безопасных кошельков пока нет.
Любых системах, которые подключаются к интернету. Особенно на рабочих ПК и ноутбуках
На кошельках с закрытым исходным кодом
Не вводить приватные ключи в системах и в софт, которым вы не доверяете
Правильный метод хранения криптовалют называется “Холодное хранение”. Под этим подразумевается хранение приватных ключей на носителях, которые никогда не подключаются к сети:
USB носитель
Аппаратный кошелек (hardware wallet)
Бумажный кошелек (paper wallet)
Физический биткоин
Формулировка “никогда не подключаются к сети” может вызывать недоумение. Ты спросишь — “А как же тогда отправить транзакцию?”
Да конечно чтобы отправить транзакцию (broadcast transaction) нужен выход в сеть. Но фишка в том, что создать транзакцию и подписать ее можно оффлайн. А затем уже подписанную транзакцию смело перенести на машину с интернетом и отправить в сеть, используя любое окно с подключением к блокчейн-ноде хоть тот же блокчейн эксплорер.
Подписанная транзакция содержит инструкции что надо сделать в сети, которые криптографически подписаны вами. Достать оттуда ваш приватный ключ невозможно (обратным инжинирингом например). Может ли хакер как-то использовать подписанную транзакцию против вас?
Нет, все что он может это просто отправить транзакцию в сеть ещё раз. Сеть отвергнет вторую транзакцию, т.к. транзакция с одинаковым хешем может исполнится в сети только один раз.
Вообщем идея в том, что мы можем разделить процессы создания, подписи и отправки транзакции. И в этом разделении таится большая мощь и гибкость, которую стоит использовать.
Что мы собираемся сделать в этом гайде?
Наша задача — организовать систему, чтобы было безопасно и удобно делать следующее:
Торговать на централизованных биржах
Обналичивать крипту в фиат через Localbitcoins.com
Использовать dapps. По большей части для торговли на децентрализованных биржах — EtherDelta, IDEX, Bitshares но и другие, например CryptoKitties
Отправлять небольшие сумм с горячих кошельков
Хранить основную часть криптоактивов на холодных кошельках
Отправлять крипту с холодных кошельков
Для использования dapps нам не обойтись без кошельков. А значит требования к безопасности повышаются. Зашифрованная виртуальная машина Ubuntu с Metamask — будет оптимальным решением для частого использования dapps, торговли на децентрализованных биржах и отправки небольших сумм.
Для хранения основного капитала — мы будем делать мультивалютное холодное хранение. Нам нужно иметь изолированную от интернета переносную операционную систему. Внутри такой ОС мы установим кошельки для всех интересных нам криптовалют чтобы создавать и подписывать транзакции оффлайн и затем переносить подписанные транзакции на горячую машину с помощью второй флешки.
“Постоянно загружаться в разные ОС и копировать транзакции на флешку? Звучит не очень то удобно” — скажешь ты. Если тебя пугает такая возня — я советую присмотреться к покупке аппаратного кошелька.
Аппаратные кошельки работают по такой же схеме, но с некоторыми преимуществами:
Приватный ключ хранится в защищенной области микроконтроллера
Нет возни с флешками и разными ОС. Подпись работает безопасно и удобно прямо в горячей машине
Интеграция с множеством приложений
Некоторые кошельки (например Ledger Nano S) поддерживают более 25 криптовалют, имеют открытый исходный код по и железа и стоят всего 80 долларов.
Недостатки аппаратных кошельков:
Максимум четыре одновременно активные криптовалюты
Набор доступных валют ограничен и зависит не от тебя
Выдают своё предназначение
Стоят денег
Поэтому выбор за тобой — пойти простым путём или по-сложнее, но зато более интересным. Этот гайд затрагивает тему использования софта, бирж и dapps достаточно широко. Поэтому будет полезен всем, в том числе владельцам аппаратных кошельков.
Далее пойдет туториал по организации самостоятельного хранения и использования для самых популярных криптовалют.
Никаких специфических навыков от тебя не требуется. Но без минимальной компьютерной грамотности не обойтись + желательно умение пользоваться ментальным или программным англо-русским переводчиком. Еще тебе понадобится:
Компьютер или ноутбук
Две флешки от 8Gb (да именно две и именно не меньше 8 гигов)
Бумага/книжка/блокнот и хорошая ручка
В результате выполнения туториала у тебя будет:
Безопасный браузер в основной рабочей ОС для работы на биржах и других критически важных сервисах.
Виртуальная машина для операций с небольшими суммами и использования Web3 dapps
Безопасный мультивалютный кошелек на загрузочном USB. Как минимум для: Bitcoin, Ethereum/Ethereum Classic + ERC20 токены, Monero, Bitshares, Litecoin, Stellar, NEO, Ripple, IOTA, DASH, NEM. Список можно расширить
Проверенная схема организации бекапов, аккаунтов, адресов, паролей и 2FA кодов
Система мониторинга холодных кошельков
Система реагирования в случае кражи
Поехали!
1. Безопасная торговля на биржах
Торговлю на биржах и Localbitcoins — удобнее и вполне безопасно вести с основной рабочей операционной системы.
Основные векторы атак тут:
Фишинг
Подмена DNS
Атаки Man in the Middle
Чтобы обезопасить себя от этих атак, надо быть прежде всего внимательным и пользоваться безопасным браузером. Firefox — считается одним из самых безопасных браузеров при правильной конфигурации и наличии нужных расширенний.
Настраиваем Firefox:
Включаем защиту от фишинговых сайтов
2. Устанавливаем HTTPS Everywhere — принудительно включает HTTPS везде, где это возможно. Это защитит вас от MitM атак.
3. Всегда проверяем имя и сертификат сайта. Проверка сертификата убедит нас в том, что DNS не подменен. Можно использовать CipherFox чтобы удобнее проверять сертификат сайта.
Настраиваем доступ на биржи:
Настраиваем двух-факторную аутентификацию (2FA) через Google Authenticator везде, без исключений, в том числе на почте, которую используем для бирж.
При создании 2FA выписываем все сервисные коды в файлик 2fa.txt. Cервисные коды помогут восстановить доступ если вы потеряете устройство на котором стоит Google Authenticator.
Ставим сервисный пароль на вывод средств, если на бирже есть такой функционал. Это поможет защититься от самых хитрых и автоматизированных атак.
Файл 2fa.txt мы потом забекапим вместе с приватными ключами.
О менеджерах паролей
Это очень удобно. Но я бы не рекоммендовал использовать сторонние приложения для этого, потому что они часто оказываются желанной целью для хакеров. Стандартного менеджера паролей в Firefox вполне достаточно. Я бы также не рекомендовал настраивать синхронизацию паролей, выигрыш в удобстве тут сомнительный как по мне, а рисков сразу становится очень много. Пусть все хранится локально
2. Виртуальная машина для dapps
В качестве виртуалки будем использовать Ubuntu. Почему Ubuntu? Потому, что безопасней чем Windows и это самый простой и понятный Linux дистрибутив для начинающих.
Качем VirtualBox (программа для виртаулизации) https://www.ubuntu.com/download/desktop
Качаем .iso образ с Ubuntu с официального сайта: https://www.ubuntu.com/download/desktop
Устанавливаем VirtualBox и потом в него ставим Ubuntu. Отличная инструкция со скриншотами нашлась вот тут:
Установка Ubuntu на виртуальную машину Oracle VirtualBox — ProfiTraders.com
Установка Metamask
Metamask — расширение для браузеров Chrome, Firefox и Brave с открытым исходным кодом, которое представляет собой Ethereum кошелек. Приватные ключи никуда не отправляются.
Через Metamask вы можете взаимодействовать с децентрализованными приложениями (dapps), которые использую web3.js библиотеку. Например вы можете подключится к децентрализованной бирже EtherDelta или IDEX, играться в CryptoKitties, покупать доменные имена в Ethereum ENS.
Большой список dapps можно найти тут.
Устанавливаем Metamask в Firefox и создаем кошелек (видео в помощь), записываем 12 слов на бумажку/блокнот/книжку и копируем в файлик privkeys.txt. Также создадим еще файлик pubkeys.txt куда скопируем ETH адрес. Пока оставим эти файлы на виртуальной машине.
После этого останется закинуть немного ETH на адрес нашего Metamask кошелька и можно пользоваться.
Шифруем виртуалку
После настройки нашей ВМ и установки всего нужного ПО, следует включить шифрование для VDI диска (это диск где хранятся файлы виртуальной машины).
Для этого выключите (Power Off) Ubuntu.
Перейдите в Настройки > Шифрование > Введите пароль > Ок
3. Загрузочный USB для холодных кошельков
Будем использовать Tails в качестве портативной операционной системы. Почему именно Tails? Потому что эта Live USB система, она специально затачивалась на приватность и безопасность. Она построена на Debian — самом надежном дистрибутиве линукс, с минимально нужным софтом. А еще Tails поддерживает сохранение ваших данных в зашифрованной области.
Идем на официальный сайт https://tails.boum.org/install/os/index.en.html
Выбираем ОС вашего компьютера/ноутбука, с которого будет происходить установка
Далее откроется подробная инструкция по установке на английском языке
Следуем инструкции: устанавливаем сначала на одну флешку live версию, потом загрузившись с live делаем полноценную установку на другую флешку
Настройка зашифрованной области хранения (Encrypted Persistent) в Tails
Encrypted Persistent — это зашифрованный раздел на вашем USB, на котором мы собираемся хранить:
ПО кошельков и других программ, которые установите
Конфигурационные файлы для этих программ
Приватные ключи от кошельков
txt файл с адресами и публичными ключаи
В случае утери флешки, даже если нашедший окажется достаточно заинтересованным и подкованным, чтобы попробовать расшифровать ее, шансы на успех атаки перебором будут стремится к нулю если у вас достаточно стойкий пароль.
Стойкий пароль — это рандомный набор из более 20 символов с цифрами, символами и буквами в разных регистрах. Не ленитесь сделать стойкий пароль! Запишите его для начала на бумагу, но потом лучше выучите наизусть.
Создаем Encrypted Persistent на Tails:
Загружаемся в уже установленную Tails на USB> входим в систему
Applications > System Tools > Configure persistent volume
В окошке вводим стойкий пароль, нажимаем Create и ждем
Появится окошко для выбора приложений, данные которых мы хотим сохранять. Выбираем Personal Data и Electrum (Bitcoin Client) > Нажимаем Save
Перезагружаемся. Теперь при входе в окошке “Use Persistence?” выбираем YES и вводим пароль
Все мы в системе с Encrypted Persistent. Теперь переходим к установке кошельков в папку Personal Data.
Если не получилось, вот видео инструкция
Качаем холодные кошельки для Tails
Подходим к самой интересной части — к установке и созданию различных кошельков. Но сначала нам нужно все это добро скачать, закинуть на флешку и перенести на Tails.
Тут у тебя может возникнуть вопрос: “Как кошельки поместятся на флешке?” . Ведь блокчейн Биткоина весит более 165 Гб на момент написания статьи.
Разумеется мы не можем на флешке 8Гб использовать кошельки, которые скачивают весь блокчейн. Нам нужны только “легкие клиенты”, которые используют SPV механизмы для верификации транзакций.
SPV или Simplified Payment Verification — это механизм проверки конкретной транзакции в блоке, без скачивания всего блока. Иначе говоря, этот механизм позволяет проверять только свои транзакции, без заботы о проверке чужих транзакций. Т.е. при этом не надо скачивать весь блокчейн и становится “полной нодой”.
SPV — это не какая-то новая штука. Этот механизм упоминался в оригинальной бумаге Сатоши Накамото Bitcoin: A Peer-to-Peer Electronic Cash System . SPV работает в кошельке Electrum c самого его появления. В Ethereum есть аналогичный концепт LES, как и в многих других системах. И вся штука работает вполне надежно, до тех пор пока большинство нод являются добросовестными. На примере Electrum злоумышленник может захватить большинство Electrum Servers и тогда вы можете начать получать транзакции, которые в действительности невалидны и не присутствуют в основном блокчейне. Вы подумаете, что вам заплатили, а на самом деле нет. Подстраховаться тут можно очень просто — дополнительно проверять подтверждения транзакций через блокчейн-эксплореры.
Нам подойдут только “легкие клиенты”, которые соответствуют следующим требованиям:
Открытый исходный код!
Приватные ключи никуда не отправляются
Качаем только с официальных репозиториев и сайтов
Сборка стабильна и прошла проверку сообществом
Тут самое важное: это НЕ скачать вредоносный софт. Поэтому всегда проверяем url и сертификат на сайте.
Ниже представлены кошельки, которые использую я сам. Качать будем сборки для Debian (дистрибутив на котором построена Tails). Поехали!
Bitcoin
Наш выбор Electrum — один из старых и надежных легких клиентов с открытым исходным кодом. Electrum изначально предустановлен в Tails. Качать ничего не надо
Ethereum/Ethereum Classic and ERC20 tokens
Будем использовать локальную версию MyEtherWallet сайта, скачанную с официального репозитория. MEW — это полностью client-side кошелек. Это значит, что весь код для создания, подписи и отправки транзакции находится локально у вас на компьютере в вашем браузере в html и js коде этого веб-приложения.
Используя локальную версию, вы не подключаетесь никуда. А значит вы обезопашены от атак перехвата трафика, фишинга и подмены DNS. Создавать транзакции можно оффлайн.
Качаем из официального репозитория
https://github.com/kvhnuke/etherwall...t-v3.21.09.zip
Распаковывем архив и запускаем фалик index.html — это все, что нужно чтобы стартануть MEW локально
MEW можно использовать для хранения ETH и ETC. И конечно для всех ERC20 токенов, например ZRX, REP, ANT, DNT и т.д.
Monero
MyMonero — одобренный сообществом легкий клиент. Качаем с оффициального репозитория версию для Linux:
https://github.com/mymonero/mymonero-app-js/releases
Litecoin
Electrum-ltc — зарекомендовавший себя форк Electrum для Litecoin. Код откры. Качаем для Linux
https://github.com/pooler/electrum-ltc/releases
Stellar
Foxlet wallet — одобренный Stellar легкий кошелек. Код открыт. Качаем для Linux
https://github.com/stellarchat/desktop-client/releases
NEO
Официальный легкий кошелек от сообщества. Код откры. Качаем для Linux
https://github.com/CityOfZion/neon-wallet/releases
Ripple
Toast Wallet — неофициальный легкий клиент — наш выбор. Код открыт. Качаем для Linux
https://toastwallet.com/
IOTA
Официальный кошелек может работать в режиме “легкого клиента”. Качаем для Linux
https://github.com/iotaledger/wallet/releases
DASH
Electrum-dash — официально одобренный кошелек. Качаем для Linux
https://electrum.dash.org/#download
NEM
Nano Wallet — официальный легкий клиент. Качаем для Linux
https://nem.io/downloads/
Мир без посредников. Мир без необходимости доверять третьей стороне. Мир где каждый сам себе автономный банк. С идеей о таком мире создавалась первая криптовалюта и затем многие другие блокчейн-проекты. В таком мире “твой пароль = твои деньги” если говорить упрощенно. Если точнее: “твой приватный ключ = твои деньги/активы/права/документы/личность”.
Если это для тебя понятно — то ты молодец. Большинство людей продолжают думать, что Биткоин, это что-то типо вебмани с хорошей криптографией, а Блокчейн — это название компании, которая владеет сайтом blockchain.info. Но не только такие люди постоянно теряют свою кровно заработанную крипту или если не теряют, живут с высокими шансами в один прекрасный день ее потерять. Почему? Причин много — от низкой компьютерной грамотности и недостатка образования до обычной лени. Если ты думаешь — что ты сможешь выжить в новом цифровом мире без компьютерной грамотности, то у меня для тебя плохие новости.
Так выглядели депозитные ячейки в первых банках около 150 лет назад
“Мир криптовалют — это новое поле для злоумышленников. Он идеально подходит для реализации их темных амбиций”.
Посудите сами:
Все сводится к получению приватного ключа — а значит огромное разнообразие мест, где эти приватные ключи могут хранится от личных пк c Windows и Android смартфонов до серверов онлайн-кошельков и крипто-бирж. По сути тут возможны все векторы атак, которые в принципе могут существовать в интернете.
Нет банковских проверок и блокировок
Нет лимитов на переводы
Никто не сможет откатить транзакцию
Относительно легко достижимая анонимность на всех этапах
Украденные средства можно отмыть в два клика через биржи с анонимной регистрацией, конвертнув их в приватные валюты типо Monero или Zcash
Все процессы можно автоматизировать
Для тех, кто понимает, что криптовалюты к нам пришли всерьез и надолго, перспектива роста интереса злоумышленников разных сортов (в том числе из государственных структур) к этой теме не вызывает сомнений. Безопасность хранения и использования крипты — важнейшее направление, в котором еще не решено множество вопросов и проблем.
Как грамотно подойти к хранению крипты?
Ответ простой:
“Никому не передавать свой приватный ключ”
Это значит, НЕ хранить крипту (большую ее часть) на:
Онлайн кошельках типо blockchain.info, xapo и подобных. Вообщем на всех онлайн-сервисах, которые берут на себя хранение приватных ключей
Централизованных биржах, потому что биржа — это как банк, который все плохие дяди хотят ограбить. А иногда и сами владельцы банка поддаются соблазну и устраивают собственное ограбление, выставляя себя жертвами.
Мобильных приложениях — кошельках. До сих пор в Android и iOS к вашим данным могут получать доступ другие приложения, скачанные из сторов, а тем более сами корпорации Apple и Google. В этом направлении ведутся разработки, но по-настоящему безопасных кошельков пока нет.
Любых системах, которые подключаются к интернету. Особенно на рабочих ПК и ноутбуках
На кошельках с закрытым исходным кодом
Не вводить приватные ключи в системах и в софт, которым вы не доверяете
Правильный метод хранения криптовалют называется “Холодное хранение”. Под этим подразумевается хранение приватных ключей на носителях, которые никогда не подключаются к сети:
USB носитель
Аппаратный кошелек (hardware wallet)
Бумажный кошелек (paper wallet)
Физический биткоин
Формулировка “никогда не подключаются к сети” может вызывать недоумение. Ты спросишь — “А как же тогда отправить транзакцию?”
Да конечно чтобы отправить транзакцию (broadcast transaction) нужен выход в сеть. Но фишка в том, что создать транзакцию и подписать ее можно оффлайн. А затем уже подписанную транзакцию смело перенести на машину с интернетом и отправить в сеть, используя любое окно с подключением к блокчейн-ноде хоть тот же блокчейн эксплорер.
Подписанная транзакция содержит инструкции что надо сделать в сети, которые криптографически подписаны вами. Достать оттуда ваш приватный ключ невозможно (обратным инжинирингом например). Может ли хакер как-то использовать подписанную транзакцию против вас?
Нет, все что он может это просто отправить транзакцию в сеть ещё раз. Сеть отвергнет вторую транзакцию, т.к. транзакция с одинаковым хешем может исполнится в сети только один раз.
Вообщем идея в том, что мы можем разделить процессы создания, подписи и отправки транзакции. И в этом разделении таится большая мощь и гибкость, которую стоит использовать.
Что мы собираемся сделать в этом гайде?
Наша задача — организовать систему, чтобы было безопасно и удобно делать следующее:
Торговать на централизованных биржах
Обналичивать крипту в фиат через Localbitcoins.com
Использовать dapps. По большей части для торговли на децентрализованных биржах — EtherDelta, IDEX, Bitshares но и другие, например CryptoKitties
Отправлять небольшие сумм с горячих кошельков
Хранить основную часть криптоактивов на холодных кошельках
Отправлять крипту с холодных кошельков
Для использования dapps нам не обойтись без кошельков. А значит требования к безопасности повышаются. Зашифрованная виртуальная машина Ubuntu с Metamask — будет оптимальным решением для частого использования dapps, торговли на децентрализованных биржах и отправки небольших сумм.
Для хранения основного капитала — мы будем делать мультивалютное холодное хранение. Нам нужно иметь изолированную от интернета переносную операционную систему. Внутри такой ОС мы установим кошельки для всех интересных нам криптовалют чтобы создавать и подписывать транзакции оффлайн и затем переносить подписанные транзакции на горячую машину с помощью второй флешки.
“Постоянно загружаться в разные ОС и копировать транзакции на флешку? Звучит не очень то удобно” — скажешь ты. Если тебя пугает такая возня — я советую присмотреться к покупке аппаратного кошелька.
Аппаратные кошельки работают по такой же схеме, но с некоторыми преимуществами:
Приватный ключ хранится в защищенной области микроконтроллера
Нет возни с флешками и разными ОС. Подпись работает безопасно и удобно прямо в горячей машине
Интеграция с множеством приложений
Некоторые кошельки (например Ledger Nano S) поддерживают более 25 криптовалют, имеют открытый исходный код по и железа и стоят всего 80 долларов.
Недостатки аппаратных кошельков:
Максимум четыре одновременно активные криптовалюты
Набор доступных валют ограничен и зависит не от тебя
Выдают своё предназначение
Стоят денег
Поэтому выбор за тобой — пойти простым путём или по-сложнее, но зато более интересным. Этот гайд затрагивает тему использования софта, бирж и dapps достаточно широко. Поэтому будет полезен всем, в том числе владельцам аппаратных кошельков.
Далее пойдет туториал по организации самостоятельного хранения и использования для самых популярных криптовалют.
Никаких специфических навыков от тебя не требуется. Но без минимальной компьютерной грамотности не обойтись + желательно умение пользоваться ментальным или программным англо-русским переводчиком. Еще тебе понадобится:
Компьютер или ноутбук
Две флешки от 8Gb (да именно две и именно не меньше 8 гигов)
Бумага/книжка/блокнот и хорошая ручка
В результате выполнения туториала у тебя будет:
Безопасный браузер в основной рабочей ОС для работы на биржах и других критически важных сервисах.
Виртуальная машина для операций с небольшими суммами и использования Web3 dapps
Безопасный мультивалютный кошелек на загрузочном USB. Как минимум для: Bitcoin, Ethereum/Ethereum Classic + ERC20 токены, Monero, Bitshares, Litecoin, Stellar, NEO, Ripple, IOTA, DASH, NEM. Список можно расширить
Проверенная схема организации бекапов, аккаунтов, адресов, паролей и 2FA кодов
Система мониторинга холодных кошельков
Система реагирования в случае кражи
Поехали!
1. Безопасная торговля на биржах
Торговлю на биржах и Localbitcoins — удобнее и вполне безопасно вести с основной рабочей операционной системы.
Основные векторы атак тут:
Фишинг
Подмена DNS
Атаки Man in the Middle
Чтобы обезопасить себя от этих атак, надо быть прежде всего внимательным и пользоваться безопасным браузером. Firefox — считается одним из самых безопасных браузеров при правильной конфигурации и наличии нужных расширенний.
Настраиваем Firefox:
Включаем защиту от фишинговых сайтов
2. Устанавливаем HTTPS Everywhere — принудительно включает HTTPS везде, где это возможно. Это защитит вас от MitM атак.
3. Всегда проверяем имя и сертификат сайта. Проверка сертификата убедит нас в том, что DNS не подменен. Можно использовать CipherFox чтобы удобнее проверять сертификат сайта.
Настраиваем доступ на биржи:
Настраиваем двух-факторную аутентификацию (2FA) через Google Authenticator везде, без исключений, в том числе на почте, которую используем для бирж.
При создании 2FA выписываем все сервисные коды в файлик 2fa.txt. Cервисные коды помогут восстановить доступ если вы потеряете устройство на котором стоит Google Authenticator.
Ставим сервисный пароль на вывод средств, если на бирже есть такой функционал. Это поможет защититься от самых хитрых и автоматизированных атак.
Файл 2fa.txt мы потом забекапим вместе с приватными ключами.
О менеджерах паролей
Это очень удобно. Но я бы не рекоммендовал использовать сторонние приложения для этого, потому что они часто оказываются желанной целью для хакеров. Стандартного менеджера паролей в Firefox вполне достаточно. Я бы также не рекомендовал настраивать синхронизацию паролей, выигрыш в удобстве тут сомнительный как по мне, а рисков сразу становится очень много. Пусть все хранится локально
2. Виртуальная машина для dapps
В качестве виртуалки будем использовать Ubuntu. Почему Ubuntu? Потому, что безопасней чем Windows и это самый простой и понятный Linux дистрибутив для начинающих.
Качем VirtualBox (программа для виртаулизации) https://www.ubuntu.com/download/desktop
Качаем .iso образ с Ubuntu с официального сайта: https://www.ubuntu.com/download/desktop
Устанавливаем VirtualBox и потом в него ставим Ubuntu. Отличная инструкция со скриншотами нашлась вот тут:
Установка Ubuntu на виртуальную машину Oracle VirtualBox — ProfiTraders.com
Установка Metamask
Metamask — расширение для браузеров Chrome, Firefox и Brave с открытым исходным кодом, которое представляет собой Ethereum кошелек. Приватные ключи никуда не отправляются.
Через Metamask вы можете взаимодействовать с децентрализованными приложениями (dapps), которые использую web3.js библиотеку. Например вы можете подключится к децентрализованной бирже EtherDelta или IDEX, играться в CryptoKitties, покупать доменные имена в Ethereum ENS.
Большой список dapps можно найти тут.
Устанавливаем Metamask в Firefox и создаем кошелек (видео в помощь), записываем 12 слов на бумажку/блокнот/книжку и копируем в файлик privkeys.txt. Также создадим еще файлик pubkeys.txt куда скопируем ETH адрес. Пока оставим эти файлы на виртуальной машине.
После этого останется закинуть немного ETH на адрес нашего Metamask кошелька и можно пользоваться.
Шифруем виртуалку
После настройки нашей ВМ и установки всего нужного ПО, следует включить шифрование для VDI диска (это диск где хранятся файлы виртуальной машины).
Для этого выключите (Power Off) Ubuntu.
Перейдите в Настройки > Шифрование > Введите пароль > Ок
3. Загрузочный USB для холодных кошельков
Будем использовать Tails в качестве портативной операционной системы. Почему именно Tails? Потому что эта Live USB система, она специально затачивалась на приватность и безопасность. Она построена на Debian — самом надежном дистрибутиве линукс, с минимально нужным софтом. А еще Tails поддерживает сохранение ваших данных в зашифрованной области.
Идем на официальный сайт https://tails.boum.org/install/os/index.en.html
Выбираем ОС вашего компьютера/ноутбука, с которого будет происходить установка
Далее откроется подробная инструкция по установке на английском языке
Следуем инструкции: устанавливаем сначала на одну флешку live версию, потом загрузившись с live делаем полноценную установку на другую флешку
Настройка зашифрованной области хранения (Encrypted Persistent) в Tails
Encrypted Persistent — это зашифрованный раздел на вашем USB, на котором мы собираемся хранить:
ПО кошельков и других программ, которые установите
Конфигурационные файлы для этих программ
Приватные ключи от кошельков
txt файл с адресами и публичными ключаи
В случае утери флешки, даже если нашедший окажется достаточно заинтересованным и подкованным, чтобы попробовать расшифровать ее, шансы на успех атаки перебором будут стремится к нулю если у вас достаточно стойкий пароль.
Стойкий пароль — это рандомный набор из более 20 символов с цифрами, символами и буквами в разных регистрах. Не ленитесь сделать стойкий пароль! Запишите его для начала на бумагу, но потом лучше выучите наизусть.
Создаем Encrypted Persistent на Tails:
Загружаемся в уже установленную Tails на USB> входим в систему
Applications > System Tools > Configure persistent volume
В окошке вводим стойкий пароль, нажимаем Create и ждем
Появится окошко для выбора приложений, данные которых мы хотим сохранять. Выбираем Personal Data и Electrum (Bitcoin Client) > Нажимаем Save
Перезагружаемся. Теперь при входе в окошке “Use Persistence?” выбираем YES и вводим пароль
Все мы в системе с Encrypted Persistent. Теперь переходим к установке кошельков в папку Personal Data.
Если не получилось, вот видео инструкция
Качаем холодные кошельки для Tails
Подходим к самой интересной части — к установке и созданию различных кошельков. Но сначала нам нужно все это добро скачать, закинуть на флешку и перенести на Tails.
Тут у тебя может возникнуть вопрос: “Как кошельки поместятся на флешке?” . Ведь блокчейн Биткоина весит более 165 Гб на момент написания статьи.
Разумеется мы не можем на флешке 8Гб использовать кошельки, которые скачивают весь блокчейн. Нам нужны только “легкие клиенты”, которые используют SPV механизмы для верификации транзакций.
SPV или Simplified Payment Verification — это механизм проверки конкретной транзакции в блоке, без скачивания всего блока. Иначе говоря, этот механизм позволяет проверять только свои транзакции, без заботы о проверке чужих транзакций. Т.е. при этом не надо скачивать весь блокчейн и становится “полной нодой”.
SPV — это не какая-то новая штука. Этот механизм упоминался в оригинальной бумаге Сатоши Накамото Bitcoin: A Peer-to-Peer Electronic Cash System . SPV работает в кошельке Electrum c самого его появления. В Ethereum есть аналогичный концепт LES, как и в многих других системах. И вся штука работает вполне надежно, до тех пор пока большинство нод являются добросовестными. На примере Electrum злоумышленник может захватить большинство Electrum Servers и тогда вы можете начать получать транзакции, которые в действительности невалидны и не присутствуют в основном блокчейне. Вы подумаете, что вам заплатили, а на самом деле нет. Подстраховаться тут можно очень просто — дополнительно проверять подтверждения транзакций через блокчейн-эксплореры.
Нам подойдут только “легкие клиенты”, которые соответствуют следующим требованиям:
Открытый исходный код!
Приватные ключи никуда не отправляются
Качаем только с официальных репозиториев и сайтов
Сборка стабильна и прошла проверку сообществом
Тут самое важное: это НЕ скачать вредоносный софт. Поэтому всегда проверяем url и сертификат на сайте.
Ниже представлены кошельки, которые использую я сам. Качать будем сборки для Debian (дистрибутив на котором построена Tails). Поехали!
Bitcoin
Наш выбор Electrum — один из старых и надежных легких клиентов с открытым исходным кодом. Electrum изначально предустановлен в Tails. Качать ничего не надо

Ethereum/Ethereum Classic and ERC20 tokens
Будем использовать локальную версию MyEtherWallet сайта, скачанную с официального репозитория. MEW — это полностью client-side кошелек. Это значит, что весь код для создания, подписи и отправки транзакции находится локально у вас на компьютере в вашем браузере в html и js коде этого веб-приложения.
Используя локальную версию, вы не подключаетесь никуда. А значит вы обезопашены от атак перехвата трафика, фишинга и подмены DNS. Создавать транзакции можно оффлайн.
Качаем из официального репозитория
https://github.com/kvhnuke/etherwall...t-v3.21.09.zip
Распаковывем архив и запускаем фалик index.html — это все, что нужно чтобы стартануть MEW локально
MEW можно использовать для хранения ETH и ETC. И конечно для всех ERC20 токенов, например ZRX, REP, ANT, DNT и т.д.
Monero
MyMonero — одобренный сообществом легкий клиент. Качаем с оффициального репозитория версию для Linux:
https://github.com/mymonero/mymonero-app-js/releases
Litecoin
Electrum-ltc — зарекомендовавший себя форк Electrum для Litecoin. Код откры. Качаем для Linux
https://github.com/pooler/electrum-ltc/releases
Stellar
Foxlet wallet — одобренный Stellar легкий кошелек. Код открыт. Качаем для Linux
https://github.com/stellarchat/desktop-client/releases
NEO
Официальный легкий кошелек от сообщества. Код откры. Качаем для Linux
https://github.com/CityOfZion/neon-wallet/releases
Ripple
Toast Wallet — неофициальный легкий клиент — наш выбор. Код открыт. Качаем для Linux
https://toastwallet.com/
IOTA
Официальный кошелек может работать в режиме “легкого клиента”. Качаем для Linux
https://github.com/iotaledger/wallet/releases
DASH
Electrum-dash — официально одобренный кошелек. Качаем для Linux
https://electrum.dash.org/#download
NEM
Nano Wallet — официальный легкий клиент. Качаем для Linux
https://nem.io/downloads/