Эта статья - дополнение к моему старому видео. Некоторые шаги теперь требуют дополнительных действий, что-то стало проще, а некоторые вещи выяснились уже в процессе длительной эксплуатации.
Ознакомьтесь:
1) После запуска системы теперь появляется диалоговое окно подключения к Tor. На этапе первоначальной настройки нам нужен интернет для скачивания кошельков. Выбираем Connect to Tor automatically >> Configure a Tor bridge, нажимаем Connect to Tor. В следующем окне - Ask for a Tor bridge by email.
Далее необходимо отсканировать QR-код с настройками мостов Tor. Получить настройки можно двумя способами:
- Непосредственно на сайте Tor Project. Вводим капчу, сканируем QR-код смартфоном и передаем в Tails с помощью обычного приложения для сканирования/генерации QR - например, SecScanQR.
- С помощью отправки пустого email на адрес bridges@torproject.org, в ответ получите настройки мостов и заветный QR.
2) Кошелек Electrum теперь подписывается тремя ключами разработчиков, но отпечаток основной подписи не изменился.
3) zbarcam теперь устанавливать не нужно, он уже есть в системе. Следовательно даже не нужно задавать временный пароль администратора, поскольку ничего лишнего не устанавливаем.
4) Настройка офлайна теперь осуществляется при запуске в Additional Settings >> Offline mode.
5) В MyCrypto, как выяснилось, нельзя использовать мнемоническую фразу, если использовать блокчейн, добавленный вручную. Например, BSC или Polygon. В этом случае используйте опцию Keystore File при создании кошелька, придется записать на бумагу приватный ключ, а не слова, сохранить его в KeePassXC, а созданный json-файл удалить. Вход в кошелек производится через опцию Private Key.
Пример добавления Smart Chain с помощью опции Add Custom Node:
Значения Chain ID для различных блокчейнов можно найти на https://chainlist.org.
6) Обязательно проверьте вход в созданные кошельки, введя сид/приватный ключ с бумажного носителя.
7) Экспортировать очень большую биткоин транзакцию в QR-код не всегда возможно из-за ограничения на количество данных в одном коде. Это может произойти, если вы часто получаете небольшие транзакции, например, вознаграждения за майнинг на пуле. В этом случае необходимо на онлайн системе экспортировать транзакцию в файл psbt, вместо QR, передать файл в Tails, подписать транзакцию из файла, экспортировать подписанную транзакцию в файл psbt, и передать на онлайн компьютер.
Конечно, можно это сделать и с помощью второй флэшки, но мы же хотим супер безопасности и никак не соприкасать горячую и холодную систему. Поэтому передавать транзакции будем с помощью потокового QR. Сразу скажу, что это достаточно муторно. Вся проблема в том, что нет единого стандарта потокового QR-кода, а разработкой всерьез никто не занимается, хотя благодаря такой технологии можно передавать относительно большие объемы данных буквально по воздуху.
Нам понадобится приложение QRStream и простые скрипты в Tails, которые можно взять отсюда https://github.com/xloem/qrstream.
Приложение имеет спартанский вид и не богато настройками:
Предварительно нужно вычислить хэш sha256 файла с неподписанной транзакцией на онлайн компьютере:
Код: Выделить всё
sha256sum unsigned.psbt
# вместо unsigned.psbt - имя файла вашего файла транзакции
В приложении QRStream выбираем нашу неподписанную транзакцию в меню Send File.
Клавишами громкости можно отрегулировать размер QR-кодов, тут всё зависит от камеры, которая будет коды принимать. Чем крупнее каждый код, тем их соответственно больше. После регулировки, обратите анимание на параметр blocksize в приложении, он понадобится в Tails.
Для приема QR-потока в Tails:
Код: Выделить всё
cd Persistent/Tor\ Browser/
zbarcam --raw | iconv -f UTF-8 -t ISO-8859-1 | while true; do dd bs=718 count=1 status=none | head -c -1; done > unsigned.psbt
# 718 - это значение blocksize в приложении на смартфоне + 1
# unsigned.psbt - имя файла в который будет сохранен поток
Вычислите хэш полученного файла, он должен совпадать с полученным ранее на онлайн системе:
Код: Выделить всё
sha256sum unsigned.psbt
Для передачи транзакции на смартфон выбираем в приложении QRStream "Receive QR Stream". Для работы приложения нужно установить Barcode Scanner, на него ведет ссылка из приложения QRStream. Play Market может ругаться на слишком новую версию Android, но приложение без проблем можно скачать и установить с GitHub.
В Tails используем скрипт:
Код: Выделить всё
signed.psbt -b 367 'Code #' -a 4 --numeric-suffixes=1 --filter='clear; echo $FILE; qr; read </dev/tty'
# скрипт немного изменен, используется утилита qr вместо qrencode
# signed.psbt - это имя файла, в который вы сохранили подписанную транзакцию
# 367 - размер QR-кода, по аналогии с настройкой передачи со смартфона на компьютер
Переданный файл сохранится под именем qrstream в папке /storage/emulated/0/Android/data/com.github.xloem.qrstream/cache/
Да, сложно, но вполне можно приноровиться. Слава богу, что это нужно достаточно редко. Ну и, повторюсь, передачу файла через флэшку никто не отменял.
Я очень долго искал, и QRStream - единственный полноценный (но весьма неудобный) вариант для решения подобной задачи. Если знаете еще какие-то рабочие варианты передачи потокового QR, напишите в комментариях или в мой чат. Пользователям iOS могу только посочувствовать, есть старый проект https://github.com/divan/txqr, там даже весьма впечатляющее демо, но в AppStore приложение отсутствует.
Статья будет обновляться, оригинал опубликован на Slabber.