Это руководство охватывает основные практики безопасности для защиты вашего кошелька и активов TALER.
Понимание wallet.dat - единственный источник истины вашего кошелька
Что такое wallet.dat?
Файл wallet.dat является единственным источником истины для вашего кошелька TALER. Этот файл базы данных Berkeley DB содержит все необходимое для доступа и расходования ваших монет:
Критически важные данные:
- Приватные ключи: Криптографические ключи, контролирующие ваши монеты TALER
- Seed HD-кошелька: Мастер-сид для иерархически детерминированной деривации ключей
- История транзакций: Полная запись всех транзакций кошелька
- Адресная книга: Сохраненные адреса с метками
- Метаданные ключей: Время создания, пути деривации, ассоциации ключей
- Мастер-ключ шифрования: Зашифрованный ключевой материал (когда кошелёк зашифрован)
Расположение файла:
- Windows:
%APPDATA%\TALER\wallet.dat - macOS:
~/Taler/wallet.dat - Linux:
~/.taler/wallet.dat
Почему wallet.dat критически важен
Если вы потеряете wallet.dat, вы потеряете свои монеты навсегда.
- Нет восстановления “забытого пароля”
- Никакая компания или орган не может восстановить доступ
- Транзакции блокчейна необратимы
- Ваши монеты = Ваша ответственность
Файл wallet.dat - это одновременно ваш величайший актив и ваша величайшая уязвимость.
Состояние безопасности по умолчанию
Кошелёк НЕ зашифрован по умолчанию
Важно: Когда вы впервые создаете кошелёк TALER, он полностью незашифрован.
Это означает:
- Приватные ключи хранятся открытым текстом внутри wallet.dat
- Любой с доступом к вашему компьютеру может скопировать wallet.dat
- Если wallet.dat украден, ваши монеты могут быть потрачены немедленно
- Пароль не требуется для отправки транзакций
Требуется действие: Вы должны вручную зашифровать свой кошелёк для его защиты.
Шифрование вашего кошелька
Как зашифровать кошелёк
Используя GUI taler-qt:
- Откройте кошелёк taler-qt
- Перейдите в меню Настройки
- Выберите “Зашифровать кошелёк”
- Введите надёжную парольную фразу (см. требования ниже)
- Подтвердите парольную фразу
- Дождитесь завершения процесса шифрования
Кошелёк:
- Сгенерирует случайный 32-байтный мастер-ключ
- Выведет ключ шифрования из вашей парольной фразы с использованием SHA-512
- Зашифрует все приватные ключи с использованием AES-256-CBC
- Выполнит полную перезапись базы данных для удаления незашифрованных данных
- Сгенерирует новый HD-сид для будущей деривации ключей
Используя командную строку:
taler-cli encryptwallet "your-strong-passphrase-here"
Технические детали шифрования
Алгоритм: AES-256-CBC (Advanced Encryption Standard, 256-битный ключ, режим Cipher Block Chaining)
Деривация ключа:
- Метод: Деривация ключа на основе SHA-512
- Итерации: Адаптивные (минимум 25,000, обычно ~100,000+)
- Соль: 8 случайных байт на мастер-ключ
- Настроенная производительность примерно 0.1 секунды на разблокировку
Функции безопасности:
- Мастер-ключ зашифрован ключом, производным от парольной фразы
- Каждый приватный ключ зашифрован мастер-ключом
- База данных полностью переписывается для устранения slack-пространства
- Безопасная обработка памяти с автоматической очисткой памяти
- Векторы инициализации, производные от ключевого материала
Выбор надёжной парольной фразы
Требования к парольной фразе:
- Минимум: 1 символ (технически)
- Рекомендуется: 20+ символов с высокой энтропией
- Лучшая практика: Используйте генератор парольных фраз или метод Diceware
Рекомендации по парольным фразам:
- ✓ Используйте длинную, случайную комбинацию слов
- ✓ Включайте цифры, символы, заглавные и строчные буквы
- ✓ Сделайте её запоминающейся, но непредсказуемой
- ✓ Не используйте личную информацию (имена, дни рождения)
- ✓ Не используйте только словарные слова
- ✗ Не используйте повторно пароли из других сервисов
- ✗ Не используйте короткие пароли (< 12 символов)
Примеры надёжных парольных фраз:
Correct-Horse-Battery-Staple-92!PurpleMy#Taler$Wallet%Has&8943*Coins7-Elephant-Dancing-@-Midnight-2025
Предупреждение: Если вы забудете свою парольную фразу, ваши средства потеряны навсегда. Механизма восстановления не существует.
После шифрования
После шифрования ваш кошелёк будет:
- Требовать парольную фразу для отправки транзакций
- Автоматически блокироваться после периода тайм-аута (по умолчанию: никогда, но настраивается)
- Защищать приватные ключи даже если wallet.dat украден
- Предотвращать несанкционированное расходование ваших монет
Стратегии резервного копирования кошелька
Почему резервное копирование необходимо
Резервное копирование защищает от:
- Отказа жесткого диска
- Потери или кражи компьютера
- Случайного удаления
- Повреждения файлов
- Атак программ-вымогателей
Помните: Нет резервной копии = Нет восстановления
Как сделать резервную копию wallet.dat
Метод 1: Ручное резервное копирование файла (Рекомендуется)
- Закройте кошелёк taler-qt (важно!)
- Найдите файл wallet.dat:
- Windows:
%APPDATA%\TALER\wallet.dat - macOS:
~/Taler/wallet.dat - Linux:
~/.taler/wallet.dat
- Windows:
- Скопируйте wallet.dat в безопасное место:
- Внешний USB-накопитель (зашифрованный)
- Зашифрованное облачное хранилище (контейнер VeraCrypt и т.д.)
- Несколько физических локаций для избыточности
- Проверьте резервную копию, проверив размер и дату файла
Метод 2: Использование команды dumpwallet
Для незашифрованных или разблокированных кошельков:
taler-cli dumpwallet "/path/to/backup/wallet-backup.txt"
Это создает текстовый файл со всеми приватными ключами в формате WIF.
Метод 3: Резервное копирование HD-сида
Если используется HD-кошелёк (по умолчанию для новых кошельков):
- Сделайте резервную копию HD-сида (отображается при создании кошелька)
- Все будущие ключи могут быть получены из этого сида
- Храните сид безопасно офлайн (бумага, металлическая резервная копия)
Лучшие практики резервного копирования
Частота:
- Резервное копирование немедленно после шифрования кошелька
- Резервное копирование после генерации многих новых адресов
- Резервное копирование перед важными операциями с кошельком
- Регулярные резервные копии (еженедельно/ежемесячно для активных кошельков)
Места хранения:
- ✓ Несколько копий в разных физических локациях
- ✓ Зашифрованные внешние диски (USB, внешний SSD)
- ✓ Офлайн-хранилище (компьютер с воздушным зазором, банковская ячейка)
- ✓ Зашифрованное облачное хранилище (сначала зашифруйте, затем загрузите)
- ✗ Никогда не храните незашифрованные резервные копии в облачных сервисах
- ✗ Никогда не отправляйте резервные копии кошелька себе по электронной почте
- ✗ Никогда не храните на доступных по сети дисках
Шифрование для резервных копий:
- Шифруйте файлы резервных копий перед внешним хранением
- Используйте инструменты типа VeraCrypt, GPG или 7-Zip с AES-256
- Храните пароль шифрования отдельно от резервной копии
- Рассмотрите аппаратные зашифрованные USB-накопители
Тестирование резервных копий
Убедитесь, что ваша резервная копия работает:
- Создайте тестовое восстановление на отдельной системе
- Скопируйте резервную копию в тестовое место
- Запустите кошелёк с тестовой директорией данных
- Проверьте, что адреса и баланс совпадают
- Не отправляйте транзакции из тестового восстановления
Никогда не доверяйте резервной копии, которую вы не протестировали.
Блокировка и разблокировка кошелька
Разблокировка кошелька
После шифрования вам нужно будет разблокировать кошелёк для отправки транзакций.
Используя GUI taler-qt:
- При отправке транзакции запрос парольной фразы появляется автоматически
- Введите парольную фразу для подписи транзакции
- Кошелёк повторно блокируется после истечения тайм-аута (если тайм-аут установлен)
Используя командную строку:
# Разблокировать кошелёк на 300 секунд (5 минут)
taler-cli walletpassphrase "your-passphrase" 300
# Разблокировать кошелёк бессрочно (до ручной блокировки или перезапуска)
taler-cli walletpassphrase "your-passphrase" 0
Параметр тайм-аута:
- Указывает секунды, в течение которых кошелёк остается разблокированным
- Максимум: 100,000,000 секунд (~3.17 года)
- 0 = разблокирован до перезапуска демона
- Кошелёк автоматически повторно блокируется после истечения тайм-аута
Изменение парольной фразы
Если вам нужно изменить парольную фразу кошелька:
Используя командную строку:
taler-cli walletpassphrasechange "old-passphrase" "new-passphrase"
Процесс:
- Проверяет старую парольную фразу
- Повторно шифрует все ключи с новой парольной фразой
- Обновляет хранилище мастер-ключа
- Сделайте резервную копию кошелька после изменения парольной фразы
Когда изменять парольную фразу:
- Подозрение на компрометацию
- Парольная фраза была слабой
- Ранее делились с кем-то
- Регулярная практика безопасности (ежегодно)
Безопасность файловой системы
Защита wallet.dat на диске
Разрешения файлов (Linux/macOS):
# Установить ограничительные разрешения на wallet.dat
chmod 600 ~/.taler/wallet.dat
# Убедиться, что директория кошелька приватная
chmod 700 ~/.taler
Это гарантирует, что только ваша учетная запись пользователя может читать/записывать кошелёк.
Windows:
- Щелкните правой кнопкой wallet.dat → Свойства → Безопасность
- Удалите всех пользователей, кроме вашей учетной записи
- Установите разрешения только на чтение и запись для вашего пользователя
Безопасное удаление
Если вам нужно удалить старые резервные копии кошелька:
Linux:
shred -vfz -n 10 old-wallet-backup.dat
macOS:
srm -v old-wallet-backup.dat
Windows: Используйте инструменты типа SDelete или Eraser для безопасной очистки файлов.
Никогда не используйте стандартное удаление для файлов кошелька - их можно восстановить.
Дополнительные меры безопасности
Антивирус и анти-вредоносное ПО
Риски:
- Кейлоггеры могут захватить вашу парольную фразу
- Вредоносное ПО для захвата экрана может украсть содержимое кошелька
- Перехватчики буфера обмена могут заменить адреса
- Программы-вымогатели могут зашифровать ваш wallet.dat
Защита:
- Обновляйте антивирусное ПО
- Используйте надежное программное обеспечение безопасности
- Регулярно сканируйте систему
- Будьте осторожны с неизвестными загрузками
- Не нажимайте на подозрительные вложения электронной почты
Сетевая безопасность
Безопасность интерфейса RPC:
Если запускаете talerd с включенным RPC:
# В taler.conf
rpcuser=your_username
rpcpassword=your_strong_password
rpcallowip=127.0.0.1 # Только localhost
Никогда не выставляйте RPC в публичный интернет:
- Привяжите RPC только к localhost (
rpcbind=127.0.0.1) - Используйте брандмауэр для блокировки внешнего доступа к RPC
- Используйте надежные учетные данные RPC
- Не используйте пароли по умолчанию
Шифрование кошелька vs Шифрование диска
Глубинная защита:
- Шифрование кошелька защищает, если wallet.dat украден
- Шифрование диска (BitLocker, FileVault, LUKS) защищает всю систему
- Используйте оба для максимальной безопасности
Преимущества шифрования диска:
- Защищает от физической кражи
- Шифрует все файлы, не только кошелёк
- Защищает отладочные логи и временные файлы
- Требуется, если ноутбук путешествует с вами
Холодное хранилище для больших активов
Для значительных сумм TALER:
- Создайте офлайн-кошелёк на компьютере с воздушным зазором
- Сгенерируйте адрес получения офлайн
- Переведите монеты на адрес холодного кошелька
- Сделайте резервную копию wallet.dat и HD-сида в несколько безопасных мест
- Храните резервную копию в физическом сейфе или банковской ячейке
- Никогда не подключайте компьютер холодного кошелька к интернету
Расходование из холодного хранилища:
- Создайте неподписанную транзакцию на онлайн-компьютере
- Перенесите на офлайн-компьютер через USB
- Подпишите транзакцию офлайн
- Перенесите подписанную транзакцию обратно на онлайн-компьютер
- Транслируйте в сеть
Соображения безопасности базы данных
Приватный режим Berkeley DB
Кошелёк TALER использует Berkeley DB с включенным приватным режимом по умолчанию (флаг -privdb).
Что это означает:
- Файлы базы данных не доступны через разделяемую память
- Предотвращает чтение данных кошелька другими процессами
- Улучшает приватность и безопасность
Slack-пространство базы данных
Функция безопасности: Когда вы шифруете свой кошелёк, TALER выполняет полную перезапись базы данных.
Почему это важно:
- Berkeley DB может оставлять незашифрованные данные в “slack-пространстве”
- Slack-пространство = неиспользуемые области файла базы данных
- Полная перезапись устраняет этот риск
- Незашифрованные ключи не восстановимы после шифрования
Файл блокировки базы данных
TALER создает файл .walletlock для предотвращения одновременного доступа:
- Предотвращает повреждение базы данных
- Гарантирует, что только один процесс получает доступ к кошельку
- Если вы видите ошибку “кошелёк уже используется”, другой процесс запущен
Безопасность отладочного логирования
Соображения по файлам логов
Отладочные логи могут содержать конфиденциальную информацию:
- Детали транзакций
- Информацию об адресах
- Данные о соединениях
- Информацию о тайминге
Расположение лога:
- Windows:
%APPDATA%\TALER\debug.log - macOS:
~/Taler/debug.log - Linux:
~/.taler/debug.log
Лучшие практики:
- Не делитесь отладочными логами публично без санитизации
- Ограничьте разрешения файлов на debug.log
- Отключите подробное логирование, если не нужно (
-debug=0) - Периодически очищайте старые логи
Контрольный список безопасности
Основные шаги безопасности
- Зашифруйте свой кошелёк с надёжной парольной фразой
- Сделайте резервную копию wallet.dat в несколько безопасных мест
- Протестируйте резервную копию восстановлением на тестовой системе
- Запишите HD-сид (если используется HD-кошелёк)
- Установите ограничительные разрешения файлов на wallet.dat (600)
- Включите шифрование диска (BitLocker/FileVault/LUKS)
- Используйте надежные учетные данные RPC если запускаете демон
- Обновляйте систему и антивирус
- Никогда не делитесь парольной фразой ни с кем
Регулярное обслуживание безопасности
Ежемесячно:
- Создайте свежую резервную копию wallet.dat
- Проверьте, что существующие резервные копии доступны
- Проверьте наличие обновлений системы и патчей
- Проверьте активные RPC-соединения (если применимо)
Ежегодно:
- Рассмотрите изменение парольной фразы кошелька
- Проверьте расположения и безопасность резервных копий
- Протестируйте процедуру восстановления кошелька
- Проверьте общую настройку безопасности
Распространенные ошибки безопасности
Не делайте этого
❌ Хранение кошелька в папках облачной синхронизации:
- Dropbox, Google Drive, iCloud, OneDrive
- Может синхронизировать поврежденные файлы во время записи
- Выставляет wallet.dat облачному сервису
- Конфликты синхронизации могут повредить кошелёк
❌ Использование слабых парольных фраз:
- Короткие пароли (< 12 символов)
- Только словарные слова
- Личная информация (день рождения, имя питомца)
- Распространенные пароли (Password123 и т.д.)
❌ Совместное использование wallet.dat:
- Несколько человек используют один кошелёк
- Отправка wallet.dat по электронной почте/чату
- Хранение незашифрованным на общих дисках
❌ Игнорирование резервных копий:
- Менталитет “сделаю резервную копию позже”
- Одно место резервного копирования
- Никогда не тестировать резервные копии
- Старые резервные копии (отсутствуют недавние ключи)
❌ Оставление кошелька разблокированным бессрочно:
- Разблокировка с timeout=0 для удобства
- Длительные периоды тайм-аута на общих/публичных компьютерах
Что делать при компрометации
Если вы подозреваете компрометацию кошелька
Немедленные действия:
- Создайте новый безопасный кошелёк на чистой системе
- Переведите все средства в новый кошелёк немедленно
- Отключите скомпрометированный компьютер от сети
- Измените все парольные фразы и пароли
- Просканируйте систему на вредоносное ПО тщательно
- Переустановите скомпрометированную систему с чистой установки ОС
Если кошелёк потерян или украден
Если у вас есть резервная копия:
- Восстановите wallet.dat из резервной копии
- Создайте новый кошелёк на безопасной системе
- Переведите все средства в новый кошелёк
- Откажитесь от старого кошелька
Если у вас нет резервной копии:
- Ваши средства потеряны навсегда
- Восстановление невозможно
- Извлеките урок из этого опыта
- Всегда делайте резервные копии будущих кошельков
Продвинутые темы безопасности
Мультиподписные кошельки
Для организационного использования или повышенной безопасности:
- Требуют несколько подписей для авторизации транзакций
- Защищают от компрометации одного ключа
- Полезны для управления бизнесом/казначейством
- Требуют тщательной настройки и управления ключами
Аппаратные кошельки
В настоящее время TALER не имеет специализированной поддержки аппаратных кошельков, но вы можете:
- Использовать компьютер с воздушным зазором как холодное хранилище
- Хранить wallet.dat на зашифрованном аппаратном устройстве
- Использовать аппаратные зашифрованные USB-накопители для резервных копий
Кошельки только для просмотра
Создайте кошелёк только для просмотра для мониторинга баланса без возможности расходования:
- Импортируйте адреса без приватных ключей
- Отслеживайте входящие транзакции
- Безопасно использовать на системах, подключенных к интернету
- Не может отправлять транзакции
Получение помощи
Вопросы безопасности
Если у вас есть проблемы безопасности:
- НЕ делитесь своей парольной фразой или приватными ключами
- НЕ публикуйте wallet.dat публично
- НЕ делитесь отладочными логами без санитизации
Для помощи с безопасностью:
- Посетите Каналы сообщества
- Задавайте общие вопросы без раскрытия конфиденциальных деталей
- Консультируйтесь с экспертами по безопасности криптовалют
Резюме
Ключевые выводы:
- wallet.dat - это всё - потеряйте его, потеряете свои монеты
- Не зашифрован по умолчанию - вы должны зашифровать вручную
- Требуется надёжная парольная фраза - рекомендуется 20+ символов
- Резервное копирование в несколько мест - тестируйте свои резервные копии
- Используйте тайм-ауты разблокировки - кошелёк автоматически блокируется после тайм-аута
- Глубинная защита - используйте несколько уровней безопасности
- Ваша ответственность - никакая компания не может восстановить потерянные кошельки
Безопасность - это процесс, а не продукт. Будьте бдительны, оставайтесь в безопасности.