2016-04-21 4 views
5

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

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

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

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 

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

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

+1

Возможно, вы можете использовать 'git log -format ="% G? "': См. [Мой пересмотренный ответ ниже] (http://stackoverflow.com/a/36761677/6309) и * end * более подробного ответа «[Проверка подписанных git коммит?] (http://stackoverflow.com/a/32038784/6309)». – VonC

ответ

3

Q4 Update 2016 с Git 2.11:

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


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

Это was debated in 2010, включая интересную идею в качестве лучшей практики:

Конечно, Вы можете иметь более одного адреса электронной почты для каждого ключа, но вы никогда не должны иметь более одного ключа по электронной почте.

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

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

Смотрите, если вы можете использовать subkeys (следуя, например, this tutorial или this one):

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

+0

См. Также http://security.stackexchange.com/q/32386 и http://security.stackexchange.com/q/74067 – VonC

 Смежные вопросы

  • Нет связанных вопросов^_^