Базы данных, шифры и секреты: гайд по безопасному хранению приватных ключей от Cake Wallet


Базы данных, шифры и секреты: гайд по безопасному хранению приватных ключей от Cake Wallet


Почти любой криптовалютный кошелек позволяет сделать бэкап — сохранить приватный ключ в специальном файле, чтобы восстановить доступ в случае потери или поломки устройства. Но это создает новые проблемы: файл могут украсть злоумышленники. Разработчики криптокошелька Cake Wallet рассказывают об открытом программном обеспечении для безопасного хранения и шифрования приватных ключей. Ломаем кошелек за три минуты Десктопные, мобильные и браузерные кошельки хранят приватные ключи на устройстве пользователя. Например, криптокошелек Exodus помещает их в папку AppRoaming на Windows и в Application Support — на macOS.  Самое важное в них — файлы seed.seco и passphrase.json. В первом находится приватный ключ, а во втором — фраза для его дешифровки. Содержимое папки exodus.wallet в Application Support. Для доступа к ней нужно включить отображение скрытых папок. Если хакер скопирует файлы на свой компьютер, то получит доступ к кошельку. Мы проделали такие действия в примере ниже. Перенос файлов на другой компьютер. Биткоин-адреса совпадают. Это не значит, что Exodus и другие десктопные кошельки ненадежные. Мы специально не использовали пароли, шифрование и 2FA, чтобы показать механизм кражи. Большинство кошельков предлагает шифровать файлы с ключами паролем. Но даже в этом случае они останутся в очевидном месте и будут уязвимы к атаке полного перебора. Украсть файлы из смартфона сложнее: iOS и Android не предоставляют полный доступ к файловой системе. Мы установили на смартфон кошельки Cake Wallet, MyEtherWallet и TON Surf, но не смогли найти папки с ключами без root-доступа. Однако телефон можно потерять или разбить, и таким образом лишиться криптовалюты. На этот случай стоит сделать бэкап кошелька: сохранить приватный ключ или мнемоническую фразу на отдельном устройстве, а затем зашифровать их.  Кроме того, резервные копии позволяют безопасно использовать десктопные кошельки. Для этого нужно превратить их в некастодиальные: каждый раз вручную импортировать приватный ключ, а по завершении работы чистить папки. Как правильно сделать бэкап Для доступа к кошельку нужны приватный ключ или сид-фраза — можно сохранить что-то одно.  Лучше выбрать сид-фразу. Она состоит из английских слов, а значит меньше вероятность сделать ошибку при создании бэкапа. Сид-фразы и приватные ключи примерно одинаково устойчивы к брутфорсу — методу взлома путем перебора возможных комбинаций.  Данные можно обезопасить четырьмя способами: записать в менеджер паролей; сохранить в файл и зашифровать его; загрузить в зашифрованное облачное хранилище; разбить на части с помощью секрета Шамира. Мы покажем их на примере инструментов с открытым исходным кодом: KeePassXC, PGPTool, Cryptomator и ASecuritysite. Помните, что абсолютно безопасного способа хранения ключей не существует. Но на взлом защищенного кошелька понадобятся месяцыа, а на взлом незащищенного — несколько минут. Менеджер паролей KeePassXC Менеджер паролей — приложение для хранения большого количества пар «ключ-значение». По сути, это зашифрованная база данных, которую можно открыть только с помощью мастер-ключа.  Мы покажем работу менеджера паролей на примере KeePassXC — бесплатного приложения с открытым исходным кодом для Windows, Linux и macOS. При первом запуске KeePassXC предложит создать базу данных. Введите ее название в поле Database Name. Поле с описанием можно оставить пустым. Вы увидите его только в настройках. На втором шаге настройте время, которое понадобится на каждую попытку подбора мастер-ключа (Decryption Time). Значение по умолчанию — 1 секунда, рекомендуемое значение — 5 секунд. Идеальный вариант времени дешифровки — пять секунд. В этом случае хакер будет проверять по 20-30 паролей в минуту. Затем введите и подтвердите мастер-ключ. Он должен быть уникальным — не используйте существующие или похожие пароли. Учтите, что KeePassXC поддерживает символы вроде ©, ✓ или ⌀, которые не встречаются в стандартных раскладках клавиатуры и словарях для брутфорса.  После этого присвойте имя файлу с базой данных и выберите место, где его сохранить. Выбирайте папку или устройство, где точно не потеряете файл с базой данных. Для создания бэкапа нажмите плюсик на верхней панели инструментов. Задайте название записи, например seed phrase. Если не хотите оставлять подсказку для хакеров, оставьте поле пустым.  Введите сид-фразу или приватный ключ в любое поле и нажмите кнопку ОК. Рекомендуем использовать поле Password: KeePassXC скрывает его содержимое при просмотре базы данных. Поля Title, Username, URL и Notes можно оставить пустыми. Они помогают ориентироваться в содержимом базы данных. Чтобы скопировать ключ или сид-фразу, кликните правой кнопкой мыши на записи и выберите пункт Copy Password в раскрывающемся списке. KeePassXC скрывает длину пароля, поэтому вместо символов в поле Password отображаются точки. Базу данных стоит скопировать на флешку или загрузить в облако на случай, если жесткий диск выйдет из строя. Шифровальщик PGPTool PGP (Pretty Good Privacy) — название библиотеки функций для шифрования данных и приложений на ее основе.  PGP-шифрование позволяет защитить содержимое электронных писем, жестких дисков и отдельных файлов. PGP-приложения работают, как криптокошельки: шифруют информацию публичными ключами и расшифровывают приватными. Мы сделаем бэкап текстового файла с сид-фразой с помощью PGPTool — десктопного PGP-клиента с открытым исходным кодом. Для запуска понадобится любая операционная система с поддержкой Java Runtime Environment.  Запишите приватный ключ или сид-фразу в текстовый файл и сохраните его на компьютере. Установите и запустите PGPTool.  Нажмите кнопку Key ring, чтобы создать новую пару из открытого и приватного ключей.  PGP используют для шифрования электронных писем, поэтому многие приложения просят ввести имя, пароль и email. Необязательно указывать настоящие данные: в нашем случае это название пары ключей. После заполнения основной информации задайте пароль и нажмите кнопку Create. Если вы не хотите указывать настоящий почтовый адрес, введите любую комбинацию букв с @gmail.com. Создайте бэкап: нажмите на кнопку Encrypt File и выберите файл с сид-фразой.  Выключите флажок Use same folder и укажите место для сохранения. В противном случае PGPTool поместит бэкап в папку с исходным файлом. Нажмите кнопку Encrypt. Если включить флажок Delete source file, клиент удалит исходный файл после шифрования. По завершении шифрования PGPTool покажет сообщение «File was encrypted successfully». Бэкап готов. Сделайте копию этого файла на случай потери или повреждения основного устройства.  Чтобы расшифровать бэкап и прочитать сид-фразу, нажмите кнопку Decrypt file и выберите зашифрованный файл. Введите пароль, который задали при создании пары ключей. В поле Key отображаются имя и адрес электронной почты, а не сам ключ. Выберите папку для сохранения дешифрованного файла и нажмите кнопку Decrypt. Обязательно сохраните PGP-ключ на внешний накопитель, чтобы не потерять кошелек при повреждении жесткого диска. Нажмите кнопку Key ring, щелкните правой кнопкой мыши на ключе и выберите пункт Export private key в раскрывающемся списке. Укажите папку для хранения файла с ключом и нажмите кнопку Save. PGP-клиент сохранит ключ в файле формата asc. После этого удалите приватный ключ из клиента, выбрав в списке пункт Remove key. Если хакер все же получит доступ к компьютеру, он не сможет расшифровать файл. Облачное хранилище Cryptomator Cryptomator — бесплатный инструмент для создания зашифрованных облачных хранилищ в OneDrive, Google Drive, iCloud и на жестком диске устройства.  Чтобы сделать бэкап, установите версию Cryptomator для вашей операционной системы. Приложение работает на Windows, macOS, Linux, Android и iOS. Запустите Cryptomator, нажмите кнопку Add Vault и введите имя хранилища. Слева отображаются доступные хранилища. Выберите место для хранения файлов — облако или папку. Cryptomator предложит облачные сервисы, приложения которых установлены на устройстве. Мы создали хранилище в iCloud. При создании хранилища в облаке Cryptomator все запишет файлы в папку, которую облачный клиент использует для синхронизации. Задайте пароль и включите флажок Yes, чтобы получить секретную фразу для его восстановления. Запишите фразу для восстановления пароля в текстовый файл или в блокнот. Перед тем, как перенести файл в хранилище, получите к нему доступ: нажмите кнопку Unlock Now и введите пароль. Иконка слева показывает статус хранилища: закрытый замок — зашифровано, открытый — расшифровано. Cryptomator откроет в проводнике виртуальный накопитель. Поместите в него файл с сид-фразой. Приложение сразу отправит его в облако. Cryptomator отображает хранилище в виде виртуального накопителя localhost. После этого закройте хранилище: выберите его в Cryptomator и нажмите кнопку Lock.  Если закрыть приложение или выключить компьютер, Cryptomator автоматически зашифрует открытые хранилища: скопирует содержимое накопителя в облако и удалит виртуальное устройство из системы. Сделайте бэкап хранилища, чтобы не потерять доступ при поломке устройства. Перейдите в папку Cryptomator, и найдите папку с названием хранилища. В папке d находятся зашифрованные файлы, которые затем попадут в хранилище. В нее нельзя ничего добавлять вручную: сломается структура шифра и файлы в хранилище станут нечитаемыми. Скопируйте все файлы на внешний накопитель. В случае поломки компьютера установите Cryptomator на новое устройство и импортируйте хранилище. Для этого нажмите кнопку Add Vault, а затем — Existing Vault. В открывшемся окне укажите путь к файлам masterkey и vault. Чтобы Cryptomator открыл бэкап, в папке с masterkey и vault обязательно должна находиться папка d с зашифрованными файлами. При импорте хранилища Cryptomator потребует ввести пароль. Если хакер украдет бэкап, то получит доступ к вашим бэкапам только после брутфорс-атаки. Схема Шамира в ASecuritysite Схема Шамира (секрет Шамира) — алгоритм, который разбивает информацию на зашифрованные фрагменты. Для восстановления исходных данных понадобится несколько таких фрагментов. Их количество называется пороговым значением. Работу алгоритма можно объяснить на примере задачи на построение кривой. Допустим, Алиса задала пять точек, через которые проходит только одна кривая. Боб может взять координаты любых трех точек Алисы (пороговое значение) и построить такую же кривую.  Бэкап по схеме Шамира можно сделать в онлайн-конвертерах с открытым исходным кодом. Мы использовали первый сайт в поисковой выдаче — ASecuritysite. Перейдите на страницу с шифрованием по схеме Шамира. Вставьте приватный ключ или сид-фразу в поле Secret Message.  Введите количество фрагментов в поле No of shares и пороговое значение в поле Threshold. Нажмите кнопку Determine. Пороговое значение должно составлять больше 50% от количества фрагментов. Если фрагментов семь, задавайте пороговое значение четыре, если восемь — пять. Конвертер запишет зашифрованные фрагменты в поле Shares и разделит их знаком «=». Конвертер помещает дешифрованное сообщение в поле Reconstructed, чтобы доказать правильную работу алгоритма. Сохраните фрагменты на разных носителях: один запишите в блокнот, второй — в облако, третий — в менеджер паролей и т.д.  Хакер не сможет восстановить данные, если получит один фрагмент. Но если вы потеряете один фрагмент, то сможете расшифровать данные для доступа к кошельку. Чтобы прочитать информацию в бэкапе, перейдите на страницу с декодером. Вставьте несколько фрагментов в поле Secret shares и нажмите кнопку Determine. Не забудьте разделить фрагменты отступами, чтобы декодер воспринимал их как отдельные строки. Первые попытки дешифровки будут выглядеть как наборы случайных битов. Это нормально: декодер пробует восстановить оригинал по первому фрагменту, а затем добавляет новые и повторяет попытки. Он выдаст исходное сообщение при достижении порогового значения. Выводы Идеального способа хранения информации не существует, но шифрование может усложнить работу хакерам и застраховать от поломки устройства.  Приватный ключ и сид-фразу можно сохранить в менеджере паролей, закодировать PGP-шифрованием, поместить в защищенное хранилище или разбить на части по схеме Шамира. Эти способы можно комбинировать, например записать базу данных менеджера паролей в облако или использовать схему Шамира на ключе к PGP-шифру. Для хранения криптовалюты лучше использовать мобильные кошельки вроде Cake Wallet: они не сохраняют файлы с ключами в очевидных местах. Если вы предпочитаете десктопные приложения, создайте зашифрованный бэкап и импортируйте приватный ключ при каждом запуске кошелька, а по окончании работы удаляйте содержимое папок AppRoaming (Windows) и Application Support (macOS).  Подписывайтесь на канал ForkLog в YouTube!


Поделиться с другом

Комментарии 0/0