Обработка подписанных коммитов git с отозванным ключом GPG

Некоторое время я подписываю коммиты git ключом GPG «A». Через некоторое время я решил отозвать этот ключ и начать использовать GPG-ключ «B». Я также продолжил подписывать новые коммиты git ключом «B».

Я по-прежнему храню оба ключа (аннулированный ключ «A» и новый ключ «B») локально. Новые коммиты в порядке, но проблема, с которой я сейчас сталкиваюсь, заключается в том, что все старые коммиты git, подписанные с отозванным ключом «A», отображаются с красным предупреждением при просмотре с помощью git log --show-signature.

Вот как это предупреждение выглядит в журнале git (большая его часть выделена красным цветом):

commit 39a53e42c8856278f481b9035e54eb90d8d2a0b7
gpg: Signature made Sat Aug  1 22:24:38 2015 CEST using RSA key ID 2F7EF26C
gpg: Good signature from "My Name <email1>" [ultimate]
gpg:                 aka "My Name <email2>" [ultimate]
gpg: WARNING: This key has been revoked by its owner!
gpg:          This could mean that the signature is forged.
gpg: reason for revocation: Key is superseded
gpg: revocation comment: New GPG key is used.
gpg: revocation comment: New key fingerprint: C464 17C1 4F7B D54E A082  7090 CAFA 7B1B 2914 ED81
gpg: revocation comment: New key id:          2914ED81
Author: My name <email1>
Date:   Sat Aug 1 22:24:38 2015 +0200

    Improve test helper

Есть ли настройка, с помощью которой я могу сообщить git или gpg, что этот ключ все еще «в порядке» и ему можно доверять, просто я его больше не использую? (Я хочу оставить этот старый ключ отозванным)

Я был бы признателен, если бы gpg (или git) «мягко» указал, что ключ не используется, вместо того, чтобы предлагать поддельные коммиты. Есть ли настройка безопасности или доверия, которую я мог бы установить для достижения этой цели?


person Community    schedule 21.04.2016    source источник
comment
Возможно, вы можете использовать git log --format="%G?": см. мой пересмотренный ответ ниже и конец более подробного ответа Проверка подписанных коммитов git?.   -  person VonC    schedule 28.10.2016


Ответы (1)


Обновление Q4 2016 с Git 2.11:

git log вводит дополнительные коды состояния E, X, Y, R для ERRSIG, EXPSIG, EXPKEYSIG и REVKEYSIG, чтобы пользователь %G? мог получить больше информации.
См. Проверка подписанных коммитов git?


Кажется, в вашем случае мало что можно сделать.

Этот обсуждался в 2010, включая интересную идею в качестве передовой практики:

Конечно, вы можете иметь более одного адреса электронной почты для каждого ключа, но вы НИКОГДА не должны иметь более одного ключа для каждого электронного письма.

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

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

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

Кроме того, OpenPGP поддерживает подключаемые ключи, которые аналогичны обычным ключам, за исключением того, что они привязаны к паре главных ключей. Подключ можно использовать для подписи или шифрования.
Действительно полезной частью подключа является то, что его можно отзывать независимо от главных ключей, а также хранить отдельно от них.

person VonC    schedule 21.04.2016
comment
См. также security.stackexchange.com/q/32386 и security.stackexchange.com/q/74067 - person VonC; 21.04.2016