14

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

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

Поэтому я решил установить другую парольную фразу для подключа, выполнив:

$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save

Но это изменило парольную фразу и для других ключей.

Как я могу установить отдельную фразу для отдельных ключей?

2 ответа2

12

Настройка отдельных парольных фраз для подразделов невозможна с GnuPG. Но есть обходной путь, который в этом случае выглядит даже как хорошая практика:

  1. Экспортируйте выбранный подключ (в этом примере подключ имеет идентификатор 0xDEADBEEF). Не забывайте восклицательный знак, он гарантирует, что GnuPG действительно работает с самим подразделом, а не с первичным ключом, которому он принадлежит!

    gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
    

    К подключу будут подключены открытый первичный ключ и закрытый первичный «ключ-заглушка», но не сам закрытый первичный ключ.

  2. Импортируйте подраздел в другой домашний каталог GnuPG. В этом примере предполагается, что вы находитесь в корневом каталоге вашего проекта и у вас есть папка и etc Для чего-то вроде этого набора ключей.

    gpg --homedir ./etc/gnupg --import subkeys.pgp
    
  3. Измените парольную фразу разделенного подраздела.

    gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
    
  4. Вместо использования вашего "обычного" набора ключей всегда обращайтесь к отдельному каталогу GnuPG, как упомянуто выше.

В качестве альтернативы вы можете рассмотреть возможность создания ключа проекта, который вы подписываете своим собственным ключом. Это может иметь преимущество в том, что другие участники / пользователи также могут подписывать ключ (и, таким образом, удостоверять, что это действительно ключ, используемый для проекта), и передача проекта может быть проще в случае, если кто-то другой возьмет на себя обслуживание.

3

Очень устаревший (2013) почтовый архив gnupg.org объясняет неудобный обходной путь для создания отдельного пароля для подраздела.
Это подразумевает, что ограничение находится не в структуре данных набора ключей (то есть в группе главных подразделов), а только в программном интерфейсе для создания и изменения набора ключей.

Цитата из ссылки:

Привет,

возможно ли иметь главный ключ и несколько подключей, причем подключи имеют другую (например, более короткую) парольную фразу, чем главный ключ?

Вероятно, вы ищете автономный основной ключ (см. --Export-secret- subkeys). Но ответ: да. gpg-agent не заботится о подключении ключей. Он запрашивает даже один и тот же пароль несколько раз (для разных компонентов одного и того же ключа).

Но GnuPG не поддерживает это напрямую.

1) Экспорт секретного ключа (--export-secret-keys без --armor)

2) изменить пароль

3) Экспорт снова (в другой файл, конечно)

4) Используйте gpgsplit для обоих файлов (в разных каталогах). Результат выглядит так:

000001-005.secret_key 000002-013.user_id 000003-002.sig 000004-007.secret_subkey 000005-002.sig

5) Теперь вы смешиваете компоненты двух групп: mkdir комбинированный mv a/ 000001 * a/ 000002 * a/ 000003 * комбинированный / mv b / 000004 * b / 000005 * комбинированный / cd комбинированный / cat *> different_passphrases.gpg

6) Удалить ключ из секрета: --delete-secret-key

7) Импортируйте новый: gpg --import different_passphrases.gpg

Хауке Лагинг

Я лично не подтвердил эту операцию - просто сообщил, что я прочитал.

Отсутствие спецификации и обсуждения в документации GnuPG по этой важной теме вызывает разочарование.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .