Поиск по сайту:

Как сделать резервную копию и восстановить ваши ключи GPG в Linux


Конфиденциальность становится все более горячей темой. В Linux команда gpg позволяет пользователям шифровать файлы, используя криптографию с открытым ключом, и в этом случае потеря ваших ключей шифрования будет катастрофической. Вот как сделать их резервную копию.

OpenPGP и защита конфиденциальности GNU

Одним из преимуществ электронных файлов по сравнению с бумажными копиями является то, что вы можете зашифровать электронные файлы, чтобы они были доступны только уполномоченным лицам. Если они попадут не в те руки, не беда. Только вы и предполагаемый получатель можете получить доступ к содержимому файлов.

Стандарт OpenPGP описывает систему шифрования, называемую шифрованием с открытым ключом. Результатом реализации этого стандарта GNU Privacy Guard стал gpg, инструмент командной строки для шифрования и дешифрования в соответствии со стандартом.

Стандарт описывает схему шифрования с открытым ключом. Хотя это и называется «открытым ключом», в нем задействованы два ключа. У каждого человека есть открытый ключ и закрытый ключ. Закрытые ключи, как следует из названия, никогда не разглашаются и никому не передаются. Открытые ключи можно безопасно передавать. на самом деле, чтобы схема работала, необходимо совместно использовать открытые ключи.

Когда файл зашифрован, в процессе кодирования используются закрытый ключ отправителя и открытый ключ получателя. Затем файл может быть доставлен получателю. Они используют свой закрытый ключ и открытый ключ отправителя для расшифровки файла.

Открытый и закрытый ключи генерируются как согласованная пара и привязываются к определенному идентификатору. Даже если вы не передаете конфиденциальные материалы другим людям, вы можете использовать их на своем компьютере, чтобы добавить дополнительный уровень защиты к личным документам.

В шифровании используются алгоритмы и криптографические функции мирового класса. Без соответствующих открытых и закрытых ключей вы просто не сможете попасть в зашифрованные файлы. И если вы потеряете ключи, это касается и вас. Генерация новых ключей не поможет. Чтобы расшифровать ваши файлы, вам нужны ключи, которые использовались в процессе шифрования.

Излишне говорить, что резервное копирование ваших ключей имеет первостепенное значение, как и знание того, как их восстановить. Вот как выполнить эти задачи.

Каталог .gnupg

Ваши ключи хранятся в каталоге с именем «.gnupg» в вашем домашнем каталоге. В этом каталоге также будут храниться открытые ключи всех, кто отправил вам зашифрованные файлы. Когда вы импортируете их открытые ключи, они добавляются в индексированный файл базы данных в этом каталоге.

Разумеется, в этом каталоге ничего не хранится в виде простого текста. Когда вы генерируете свои ключи GPG, вам предлагается ввести парольную фразу. Надеюсь, вы помните, что это за кодовая фраза. Вам это понадобится. Записи в каталоге «.gnugp» не могут быть расшифрованы без него.

Если мы используем утилиту tree для просмотра каталога, мы увидим эту структуру подкаталогов и файлов. Вы найдете tree в репозиториях вашего дистрибутива, если его еще нет на вашем компьютере.

tree .gnupg

Содержимое дерева каталогов:

  • openpgp-revocs.d: этот подкаталог содержит ваш сертификат отзыва. Это понадобится вам, если ваш закрытый ключ когда-либо станет общеизвестным или иным образом скомпрометирован. Ваш сертификат отзыва используется в процессе вывода из эксплуатации ваших старых ключей и принятия новых ключей.
  • private-keys-v1.d: в этом подкаталоге хранятся ваши личные ключи.
  • pubring.kbx: зашифрованный файл. Он содержит открытые ключи, включая ваш, и некоторые метаданные о них.
  • pubring.kbx~: это резервная копия «pubring.kbx». Он обновляется непосредственно перед внесением изменений в «pubring.kbx».
  • trustdb.gpg: содержит доверительные отношения, которые вы установили для своих собственных ключей и любых принятых открытых ключей, принадлежащих другим людям.

В любом случае вы должны делать регулярные и частые резервные копии своего домашнего каталога, включая скрытые файлы и папки. Это автоматически создаст резервную копию каталога «.gnupg».

Но вы можете подумать, что ваши ключи GPG достаточно важны, чтобы гарантировать их периодическое резервное копирование, или, возможно, вы хотите скопировать свои ключи со своего рабочего стола на свой ноутбук, чтобы они были у вас на обеих машинах. В конце концов, вы — это вы на обеих машинах.

Определение ключей для резервного копирования

Мы можем попросить gpg сообщить нам, какие ключи находятся в вашей системе GPG. Мы будем использовать параметры --list-secret-keys и параметры --keyid-format LONG.

gpg --list-secret-keys --keyid-format LONG

Нам говорят, что GPG просматривает файл «/home/dave/.gnupg/pubring.kbx».

Ничто из того, что появляется на экране, не является вашим настоящим секретным ключом.

  • В строке «sec» (секрет) отображается количество битов в шифровании (в данном примере 4096), идентификатор ключа, дата создания ключа и «[SC]». «S» означает, что ключ можно использовать для цифровых подписей, а «C» — для сертификации.
  • Следующая строка — отпечаток ключа.
  • В строке uid содержится идентификатор владельца ключа.
  • В строке «ssb» указан секретный подраздел, когда он был создан, а «E». E означает, что его можно использовать для шифрования.

Если вы создали несколько пар ключей для использования с разными удостоверениями, они также будут перечислены. Для этого пользователя нужно создать резервную копию только одной пары ключей. Резервная копия будет включать любые открытые ключи, принадлежащие другим людям, которые владелец этого ключа собрал и решил доверять.

Резервное копирование

Мы можем либо попросить gpg сделать резервную копию всех ключей для всех удостоверений, либо сделать резервную копию ключей, связанных с одним удостоверением. Мы создадим резервную копию закрытого ключа, секретного ключа и файла базы данных доверия.

Чтобы создать резервную копию открытых ключей, используйте параметр --export . Мы также собираемся использовать параметры --export-options backup. Это гарантирует, что все метаданные, относящиеся к GPG, будут включены, что позволит правильно импортировать файлы на другой компьютер.

Мы укажем выходной файл с опцией --output. Если бы мы этого не сделали, вывод был бы отправлен в окно терминала.

gpg --export --export-options backup --output public.gpg

Если вы хотите создать резервную копию ключей только для одного удостоверения, добавьте адрес электронной почты, связанный с ключами, в командную строку. Если вы не можете вспомнить, какой это адрес электронной почты, используйте параметр --list-secret-keys, как описано выше.

gpg --export --export-options backup --output public.gpg dave@madeupdomain.com

Для резервного копирования закрытых ключей нам нужно использовать параметр --export-secret-keys вместо параметра --export. Убедитесь, что вы сохранили это в другой файл.

gpg --export-secret-keys --export-options backup --output private.gpg

Поскольку это ваш закрытый ключ, вам необходимо пройти аутентификацию с помощью GPG, прежде чем вы сможете продолжить.

Обратите внимание, что у вас не запрашивается пароль. Вам нужно ввести фразу-пароль , которую вы указали при первом создании ключей GPG. Хорошие менеджеры паролей позволяют хранить такую информацию в виде защищенных заметок. Это хорошее место для их хранения.

Если парольная фраза принята, происходит экспорт.

Чтобы создать резервную копию ваших доверительных отношений, нам нужно экспортировать настройки из вашего файла «trustdb.gpg». Мы отправляем вывод в файл с именем «trust.gpg». Это текстовый файл. Его можно просмотреть с помощью cat.

gpg --export-ownertrust > trust.gpg
cat trust.gpg

Вот три файла, которые мы создали.

ls -hl *.gpg

Мы переместим их на другой компьютер и восстановим. Это установит нашу личность на этой машине и позволит нам использовать наши существующие ключи GPG.

Если вы не переносите ключи на другой компьютер, а просто создаете их резервную копию, потому что хотите быть вдвойне уверены в их безопасности, скопируйте их на другой носитель и сохраните в безопасном месте. Даже если они попадут не в те руки, ваш публичный ключ все равно будет публичным, так что в этом нет ничего страшного. И без вашей кодовой фразы ваш закрытый ключ не может быть восстановлен. Но тем не менее, держите свои резервные копии в безопасности и конфиденциальности.

Мы скопировали файлы на компьютер Manjaro 21.

ls *.gpg

По умолчанию Manjaro 21 использует оболочку Z, zsh, поэтому она выглядит иначе. Но это не имеет значения, это ни на что не повлияет. То, что мы делаем, регулируется программой gpg, а не оболочкой.

Чтобы импортировать наши ключи, нам нужно использовать параметр --import.

gpg --import public.gpg

Сведения о ключе отображаются по мере его импорта. Для нас также создается файл «trustdb.gpg». Импортировать закрытый ключ так же просто. Мы снова используем параметр --import.

gpg --import private.gpg

Нас просят ввести парольную фразу.

Введите его в поле «Парольная фраза», нажмите клавишу «Tab» и нажмите «Ввод».

Отобразятся сведения об импортированных ключах. В нашем случае у нас есть только один ключ.

Чтобы импортировать нашу базу данных доверия, введите:

gpg --import-ownertrust trust.gpg

Мы можем проверить, все ли импортировано правильно, еще раз используя опцию --list-secret-keys.

gpg --list-secret-keys --keyid-format LONG

Это дает нам точно такой же результат, который мы видели ранее на нашем компьютере с Ubuntu.

Защитите свою конфиденциальность

Убедитесь, что ваши ключи GPG в безопасности, создав их резервную копию. Если у вас произошел сбой компьютера или вы просто обновились до более новой модели, убедитесь, что вы знаете, как перенести свои ключи на новую машину.