2016-04-21 19 views
5

Ho firmato git commit per un po 'con il tasto GPG "A". Dopo un po 'ho deciso di revocare la chiave e iniziare a utilizzare la chiave GPG "B". Ho anche continuato a firmare nuovi commit git con la chiave "B".Gestione commit git firmato con chiave GPG revocata

Conservo ancora entrambe le chiavi (il tasto revocato "A" e il nuovo tasto "B") localmente. I nuovi commit sono ok, ma il problema che sto avendo ora è che tutti i vecchi git firmati con il tasto revocato "A" vengono visualizzati con un avvertimento rosso se visualizzati con git log --show-signature.

Ecco come questo avvertimento appare in git log (la maggior parte di esso sta urlando rosso):

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 

C'è un'impostazione che posso dire git o gpg che questa chiave è ancora "ok" e la fiducia-in grado , è solo che non lo sto usando più? (Voglio mantenere la vecchia chiave revocata)

Apprezzerei se gpg (o git) "mildly" indicasse che la chiave non è in uso invece di suggerire commit falsi. C'è un ambiente di sicurezza o fiducia che potrei impostare per raggiungere questo obiettivo?

+1

Forse puoi usare 'git log --format ="% G? "': Vedi [la mia risposta rivista sotto] (http://stackoverflow.com/a/36761677/6309) e la * fine * della risposta più dettagliata "[Verifica di git firmati firmati?] (http://stackoverflow.com/a/32038784/6309)". – VonC

risposta

3

Aggiornamento Q4 2016 con Git 2.11:

git log introduce codici di stato supplementari E, X, Y, R per ERRSIG, EXPSIG, EXPKEYSIG, e REVKEYSIG, in modo che un utente di %G? ottiene più informazioni.
Vedi Verifying signed git commits?


Non sembra molto da fare nel tuo caso.

Che was debated in 2010, tra cui un'idea interessante come best practice:

Ovviamente si può avere più di un indirizzo di posta elettronica per tasto, ma non si dovrebbe mai avere più di una chiave per e-mail.

Questo è piuttosto comune in realtà.
Per lo meno succederà se le persone stanno provando a passare da una chiave precedente a una nuova più recente, ad esempio, se stanno cercando di passare da un algoritmo di crittografia meno sicuro a un algoritmo di crittografia più sicuro.

Mi pare di capire le cose nel modo migliore per gestire questo tipo di cose è da usare sotto-chiavi. È possibile modificare il tempo di scadenza su una sottochiave, quindi, dopo averlo revocato, è possibile revocarlo, conservando la prima chiave pubblica primaria per la firma.
In effetti è una buona idea cambiare regolarmente la sottochiave e scadere i precedenti.

vedere se è possibile utilizzare subkeys (segue per esempio this tutorial o this one):

OpenPGP ulteriori supporti sottochiavi, che sono come i tasti normali, tranne che sei destinato a una coppia di chiavi master. Una sottochiave può essere utilizzata per la firma o per la crittografia.
La parte veramente utile delle sottochiavi è che possono essere revocati indipendentemente dalle chiavi principali e anche memorizzate separatamente da esse.

+0

Vedere anche http://security.stackexchange.com/q/32386 e http://security.stackexchange.com/q/74067 – VonC