Гид по технологиям

Резервная копия GPG с помощью Paperkey на Ubuntu

• 6 min read • Безопасность • Обновлено 21 Nov 2025
Резервная копия GPG с Paperkey на Ubuntu
Резервная копия GPG с Paperkey на Ubuntu

Оглавление

  • Почему стоит использовать Paperkey для резервного копирования GPG
  • Получение и установка Paperkey
  • Настройка резервной копии Paperkey
  • Конвертация Paperkey в QR-код
  • Восстановление из текстовой резервной копии
  • Восстановление из QR-кода
  • Когда метод не подходит и альтернативы
  • Чеклисты и методология
  • Часто задаваемые вопросы

Фотография ноутбука на полке с книгами.

Почему стоит использовать Paperkey для резервного копирования GPG

Paperkey удаляет из экспортированного приватного ключа избыточные данные и оставляет только критические секретные биты. Результат обычно гораздо компактнее стандартного ASCII-армированного PGP-блока, что делает его удобным для записи вручную или печати.

Коротко о преимуществах:

  • Низкая поверхность атаки: секрет можно хранить вне сети, физически — на бумаге или в изделии, не подключённом к интернету.
  • Простота восстановления: сочетание публичного ключа (из публичного keyserver) и core-строки от paperkey позволяет восстановить полный приватный ключ.
  • Универсальность: полученный «ядро»-файл можно конвертировать в QR или другие машинно-читаемые форматы для надёжного переноса.

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

Терминал с отображением основного секрета приватного GPG-ключа.

Получение и установка Paperkey

Перед установкой обновите индекс пакетов и систему:

sudo apt update
sudo apt upgrade

Установите paperkey:

sudo apt install paperkey

Проверьте версию, чтобы убедиться в успешной установке:

paperkey --version

Терминал с текущей версией paperkey.

Настройка резервной копии Paperkey

Ниже приведён пошаговый процесс для безопасного создания paperkey-резервной копии. Предполагается, что у вас уже есть GPG-ключ (например, 4096-bit RSA/RSA), созданный командой gpg --full-gen-key.

  1. Список ключей в ключнице:
gpg --list-keys

Терминал с отображением доступных ключей в ключнице.

  1. Экспортируйте приватный ключ в бинарный файл (не ASCII-армированную форму). Обратите внимание на пробелы между флагами:
gpg --export-secret-keys --output private.gpg your-gpg@email.address

Терминал с процессом экспорта приватного ключа.

  1. Извлеките «ядро» секретной части с помощью paperkey и сохраните в читаемый файл:
paperkey --secret-key private.gpg --output core-secret.asc
  1. Загрузите ваш публичный ключ на публичный keyserver, чтобы иметь возможность восстановить ключ по его публичной части при необходимости:
gpg --keyserver keyserver.ubuntu.com --send-key YOUR-KEY-FINGERPRINT

Терминал с процессом загрузки публичного ключа на keyserver.

Примечание: отпечаток ключа можно получить так:

gpg --with-colons --list-keys your-gpg@email.address | grep pub | awk 'BEGIN{FS=":"} {print $5}'
  1. После успешного создания резервной копии и загрузки публичного ключа безжалостно удалите бинарный экспорт приватного ключа с диска:
shred -uvn 10 ./private.gpg

Важно: shred выполняет многократную перезапись файла и затем удаляет его. Для NVMe/SSD и некоторых файловых систем этот метод может быть менее надёжным — смотрите раздел «Ограничения и альтернативы» ниже.

Конвертация Paperkey в QR-код

Чтобы сделать резервную копию менее травмоопасной при наборе вручную, можно закодировать core-secret в QR-изображение.

  1. Установите генератор QR:
sudo apt install qrencode
  1. Экспортируйте приватный ключ в бинарный файл (аналогично предыдущим шагам):
gpg --export-secret-keys --output qr-private.gpg your-gpg@email.address
  1. Сгенерируйте QR, перенаправив «raw» вывод paperkey в qrencode. Убедитесь в пробелах между флагами и корректном пути вывода:
paperkey --secret-key qr-private.gpg --output-type raw | qrencode --8bit --output /home/$USER/qr-private.png
  1. Откройте файловый менеджер и убедитесь, что изображение присутствует:

Терминал с результатом работы qrencode.

Пример приватного GPG-ключа в виде QR-кода.

Важно: формат QR-кода должен храниться в безопасном месте и быть устойчив к выцветанию при печати. Лучше распечатать несколько копий и хранить их в разных надёжных локациях.

Восстановление из текстовой резервной копии

Процесс восстановления включает получение публичного ключа (из keyserver) и объединение его с core-secret для воссоздания приватного ключа.

  1. Поиск вашего публичного ключа на keyserver:
gpg --keyserver keyserver.ubuntu.com --search your-gpg@email.address
  1. Выберите нужную запись из списка поиска и экспортируйте публичный ключ в бинарный файл:
gpg --export --output public.gpg your-gpg@email.address

Терминал с процессом импорта публичного ключа с keyserver.

  1. Воссоздайте приватный ключ, объединив public.gpg и core-secret.asc:
paperkey --pubring public.gpg --secrets core-secret.asc --output private.gpg
  1. Импортируйте восстановленный приватный ключ в ключницу GPG:
gpg --import ./private.gpg

Терминал с процессом воссоздания приватного ключа из core-secret и публичного ключа.

Восстановление из QR-кода

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

  1. Установите утилиты для сканирования QR-кодов:
sudo apt install zbarcam-gtk zbar-tools
  1. Раскодируйте QR-изображение и запишите результат в файл core-secret.asc:
zbarimg --quiet --raw ./qr-private.png > core-secret.asc

Терминал с процессом извлечения core-secret из QR-кода.

  1. Воссоздайте приватный ключ так же, как в текстовом случае:
paperkey --pubring public.gpg --secrets core-secret.asc --output private.gpg
  1. Импортируйте приватный ключ:
gpg --import ./private.gpg

Терминал с процессом импорта приватного GPG-ключа.

Хорошо знать: если используете облачные хранилища для черновиков или изображений, не загружайте туда QR с ключом без надёжного шифрования.

Когда метод не подходит и альтернативы

Контрпримеры / ограничения:

  • SSD / NVMe: перезапись данных файлов не гарантирует физического удаления с носителя — shred может быть неэффективен на некоторых файловых системах и контроллерах.
  • Форм-фактор: если вам неудобно хранить бумагу (пожароопасные или влажные условия), бумажная копия может быстро деградировать.
  • Комплексность ключей: для некоторых типов ключей/подключений (смарт-карты, аппаратные ключи) paperkey не применим.

Альтернативы:

  • Аппаратные токены (YubiKey, Titan) — ключ хранится в устройстве, его нельзя экспортировать в явном виде.
  • Зашифрованные бэкапы в облаке (с локальным шифрованием перед отправкой) — удобно, но требует надёжной секретной фразы.
  • Множественные зашифрованные USB-накопители, хранящиеся в сейфах/банковских ячейках.

Чеклисты и методология

Мини-методология создания надёжной бумажной резервной копии:

  1. Создайте приватный ключ локально на офлайн-машине.
  2. Экспортируйте приватный ключ в бинарный файл и сразу удалите исходный рабочий файл после извлечения core.
  3. Сгенерируйте core-secret с paperkey.
  4. Загрузите публичный ключ на keyserver (или сохраните в безопасном месте).
  5. Сохраните core-secret в нескольких форматах: печать, QR, зашифрованный USB.
  6. Проверьте восстановление на тестовой машине (без подключения в интернет), затем уничтожьте временные файлы.

Чеклист для домашнего пользователя:

  • Создан локальный GPG-ключ.
  • Выполнен экспорт приватного ключа и создан core-secret.asc.
  • Публичный ключ загружен на keyserver или сохранён в безопасном месте.
  • core-secret распечатан и помещён в влагозащитный конверт.
  • Создан QR и хранится отдельно от бумажной копии.
  • Тестовый импорт выполнен и подтверждён.

Чеклист для администратора / организации:

  • Политика хранения ключей утверждена.
  • Минимум две геораспределённые копии в сейфах.
  • Процедура восстановления документирована и протестирована.
  • Ответственные лица назначены и имеют доступ по процедуре.

Критерии приёмки (после резервного копирования):

  • Core-secret успешно экстрагирован и валиден для paperkey.
  • Публичный ключ доступен в публичном keyserver или в организации.
  • Восстановление приватного ключа проходит без ошибок в тестовой среде.
  • Временные/промежуточные файлы уничтожены надёжным способом.

Дерево решений (когда использовать paperkey)

flowchart TD
  A[Нужна резервная копия приватного GPG-ключа?] -->|Да| B{Ключ экспортируемый?}
  B -->|Да| C{Условия хранения бумаги подходящие?}
  C -->|Да| D[Использовать paperkey + печать + сейф]
  C -->|Нет| E[Рассмотреть аппаратный токен или зашифрованное облако]
  B -->|Нет| F[Аппаратный токен — не экспортируемый ключ]
  A -->|Нет| G[Ничего не делать]

Часто задаваемые вопросы

Насколько безопасна резервная копия Paperkey?

Paperkey не изменяет криптографические свойства ключа — он сохраняет те же секретные биты. Безопасность зависит от силы ключа (битность, алгоритм) и от того, как вы храните и защищаете бумажную/QR-сборку. Хранение офлайн делает ключ недоступным для удалённых атак, но бумажная копия уязвима к физическому доступу.

Я получаю ошибку corrupted input при экспорте приватного ключа.

Обычно это происходит, если вы передали в paperkey ASCII-армированную (armored) версию ключа. Убедитесь, что экспорт выполнен без опции –armor и вы используете бинарный экспорт:

gpg --export-secret-keys --output private.gpg your-gpg@email.address

Можно ли конвертировать paperkey в другой формат изображения?

Да. Paperkey выводит raw-бинари, которые можно направить в любые генераторы баркодов/изображений. Например, для SVG-штрихкода:

paperkey --secret-key qr-private.gpg --output-type raw | barcode -S > private.svg

(Установите соответствующие пакеты для barcode/генераторов.)

Итог

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

Сводка: создавайте резервные копии офлайн, тестируйте восстановление и храните бумажные копии в надёжных местах.

Image credit: Sincerely Media via Unsplash. Все изменения и скриншоты — Ramces Red.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро