Як інша пропускна фраза для підрозділу gpg?


16

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

Наразі існує одна пропускна фраза для всіх клавіш. Я не хочу вказувати цю фразу пропуску у файлі конфігурації, оскільки це також загрожує первинному ключу.

Тому я подумав, що я встановив іншу прохідну фразу для підрозділу, зробивши:

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

Але це змінило фразу пропуску і для інших клавіш.

Як я можу встановити окрему фразу пропуску для окремих ключів?

Відповіді:


14

Налаштувати окремі парольні фрази для підрозділів неможливо за допомогою 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, як згадувалося вище.

В якості альтернативи ви можете розглянути можливість створення ключа проекту, який ви підписуєте власним ключем. Це може мати перевагу в тому, що інші учасники / користувачі також можуть підписати ключ (і таким чином підтвердити, що це дійсно ключ, який використовується для проекту), і передача проекту може бути простішою у випадку, якщо хтось інший візьме на себе обслуговування.


1
Це не працює з GnuPG 2.2.4. Не вдається сказати "Потрібен секретний ключ для цього". Дуже сумно: '(
steinybot

Тож мені потрібно використовувати безкористувацькі gpg-клавіші для автоматичного підпису репо?
SuperSandro2000

Ні, ви також можете попередньо кешувати парольну фразу за допомогою gpg-agent. Погляньте gpg-preset-passphrase.
Єнс Ерат

5

Дуже застарілий (2013 рік) поштовий архів gnupg.org пояснює незручне рішення для створення окремого пароля для підрозділу .
Це означає, що обмеження знаходиться не в структурі даних набору ключів (тобто угруповання головного підрозділу), а лише в програмному інтерфейсі для побудови та зміни набору клавіш.

Цитата з довідки:

Привіт,

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

Можливо, ви шукаєте офлайн-основну клавішу (див. - експорт-секрет-підрозділи). Але відповідь така: так. gpg-агент не піклується про підключення ключів. Він запитує вас навіть за одну і ту ж парольну фразу кілька разів (для різних компонентів одного ключа).

Але GnuPG не підтримує це безпосередньо.

1) Експорт секретного ключа (- експорт-секретні ключі без - броні)

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 - імпортуйте різні_passphrases.gpg

Hauke ​​Laging

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

Відсутність конкретизації та обговорення в документації GnuPG щодо цієї важливої ​​теми невтішно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.