Лучшие практики безопасности

Это руководство охватывает основные практики безопасности для защиты вашего кошелька и активов 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:

  1. Откройте кошелёк taler-qt
  2. Перейдите в меню Настройки
  3. Выберите “Зашифровать кошелёк”
  4. Введите надёжную парольную фразу (см. требования ниже)
  5. Подтвердите парольную фразу
  6. Дождитесь завершения процесса шифрования

Кошелёк:

  • Сгенерирует случайный 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!Purple
  • My#Taler$Wallet%Has&8943*Coins
  • 7-Elephant-Dancing-@-Midnight-2025

Предупреждение: Если вы забудете свою парольную фразу, ваши средства потеряны навсегда. Механизма восстановления не существует.

После шифрования

После шифрования ваш кошелёк будет:

  • Требовать парольную фразу для отправки транзакций
  • Автоматически блокироваться после периода тайм-аута (по умолчанию: никогда, но настраивается)
  • Защищать приватные ключи даже если wallet.dat украден
  • Предотвращать несанкционированное расходование ваших монет

Стратегии резервного копирования кошелька

Почему резервное копирование необходимо

Резервное копирование защищает от:

  • Отказа жесткого диска
  • Потери или кражи компьютера
  • Случайного удаления
  • Повреждения файлов
  • Атак программ-вымогателей

Помните: Нет резервной копии = Нет восстановления

Как сделать резервную копию wallet.dat

Метод 1: Ручное резервное копирование файла (Рекомендуется)

  1. Закройте кошелёк taler-qt (важно!)
  2. Найдите файл wallet.dat:
    • Windows: %APPDATA%\TALER\wallet.dat
    • macOS: ~/Taler/wallet.dat
    • Linux: ~/.taler/wallet.dat
  3. Скопируйте wallet.dat в безопасное место:
    • Внешний USB-накопитель (зашифрованный)
    • Зашифрованное облачное хранилище (контейнер VeraCrypt и т.д.)
    • Несколько физических локаций для избыточности
  4. Проверьте резервную копию, проверив размер и дату файла

Метод 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-накопители

Тестирование резервных копий

Убедитесь, что ваша резервная копия работает:

  1. Создайте тестовое восстановление на отдельной системе
  2. Скопируйте резервную копию в тестовое место
  3. Запустите кошелёк с тестовой директорией данных
  4. Проверьте, что адреса и баланс совпадают
  5. Не отправляйте транзакции из тестового восстановления

Никогда не доверяйте резервной копии, которую вы не протестировали.


Блокировка и разблокировка кошелька

Разблокировка кошелька

После шифрования вам нужно будет разблокировать кошелёк для отправки транзакций.

Используя 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:

  1. Создайте офлайн-кошелёк на компьютере с воздушным зазором
  2. Сгенерируйте адрес получения офлайн
  3. Переведите монеты на адрес холодного кошелька
  4. Сделайте резервную копию wallet.dat и HD-сида в несколько безопасных мест
  5. Храните резервную копию в физическом сейфе или банковской ячейке
  6. Никогда не подключайте компьютер холодного кошелька к интернету

Расходование из холодного хранилища:

  • Создайте неподписанную транзакцию на онлайн-компьютере
  • Перенесите на офлайн-компьютер через 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 для удобства
  • Длительные периоды тайм-аута на общих/публичных компьютерах

Что делать при компрометации

Если вы подозреваете компрометацию кошелька

Немедленные действия:

  1. Создайте новый безопасный кошелёк на чистой системе
  2. Переведите все средства в новый кошелёк немедленно
  3. Отключите скомпрометированный компьютер от сети
  4. Измените все парольные фразы и пароли
  5. Просканируйте систему на вредоносное ПО тщательно
  6. Переустановите скомпрометированную систему с чистой установки ОС

Если кошелёк потерян или украден

Если у вас есть резервная копия:

  1. Восстановите wallet.dat из резервной копии
  2. Создайте новый кошелёк на безопасной системе
  3. Переведите все средства в новый кошелёк
  4. Откажитесь от старого кошелька

Если у вас нет резервной копии:

  • Ваши средства потеряны навсегда
  • Восстановление невозможно
  • Извлеките урок из этого опыта
  • Всегда делайте резервные копии будущих кошельков

Продвинутые темы безопасности

Мультиподписные кошельки

Для организационного использования или повышенной безопасности:

  • Требуют несколько подписей для авторизации транзакций
  • Защищают от компрометации одного ключа
  • Полезны для управления бизнесом/казначейством
  • Требуют тщательной настройки и управления ключами

Аппаратные кошельки

В настоящее время TALER не имеет специализированной поддержки аппаратных кошельков, но вы можете:

  • Использовать компьютер с воздушным зазором как холодное хранилище
  • Хранить wallet.dat на зашифрованном аппаратном устройстве
  • Использовать аппаратные зашифрованные USB-накопители для резервных копий

Кошельки только для просмотра

Создайте кошелёк только для просмотра для мониторинга баланса без возможности расходования:

  • Импортируйте адреса без приватных ключей
  • Отслеживайте входящие транзакции
  • Безопасно использовать на системах, подключенных к интернету
  • Не может отправлять транзакции

Получение помощи

Вопросы безопасности

Если у вас есть проблемы безопасности:

  • НЕ делитесь своей парольной фразой или приватными ключами
  • НЕ публикуйте wallet.dat публично
  • НЕ делитесь отладочными логами без санитизации

Для помощи с безопасностью:

  • Посетите Каналы сообщества
  • Задавайте общие вопросы без раскрытия конфиденциальных деталей
  • Консультируйтесь с экспертами по безопасности криптовалют

Резюме

Ключевые выводы:

  1. wallet.dat - это всё - потеряйте его, потеряете свои монеты
  2. Не зашифрован по умолчанию - вы должны зашифровать вручную
  3. Требуется надёжная парольная фраза - рекомендуется 20+ символов
  4. Резервное копирование в несколько мест - тестируйте свои резервные копии
  5. Используйте тайм-ауты разблокировки - кошелёк автоматически блокируется после тайм-аута
  6. Глубинная защита - используйте несколько уровней безопасности
  7. Ваша ответственность - никакая компания не может восстановить потерянные кошельки

Безопасность - это процесс, а не продукт. Будьте бдительны, оставайтесь в безопасности.

Нужна дополнительная помощь?

Не можете найти то, что ищете? Проверьте наш раздел FAQ или обратитесь к сообществу за помощью.