2016-04-21 32 views
5

Podpisuję git zobowiązuje się przez chwilę z kluczem GPG "A". Po chwili zdecydowałem się odwołać ten klucz i zacząć korzystać z klucza GPG "B". Kontynuowałem również podpisywanie nowych zatwierdzeń git za pomocą klucza "B".Obsługa podpisanego potwierdzenia gita z odwołanym kluczem GPG

Wciąż trzymam lokalnie oba klucze (klawisz "A" i nowy "B"). Nowe zatwierdzenia są w porządku, ale problem, który mam teraz, polega na tym, że wszystkie stare zatwierdzenia git podpisane z odwołanym kluczem "A" są wyświetlane z czerwonym ostrzeżeniem, gdy są wyświetlane z git log --show-signature.

Oto jak to ostrzeżenie wygląda w dzienniku git (większość z nich krzyczy na czerwono):

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 

Czy jest ustawienie mogę powiedzieć git lub GPG, że ten klucz jest nadal „ok” i zaufaniu stanie , po prostu nie używam go już więcej? (Chcę, aby stary klucz został unieważniony)

Byłbym wdzięczny, gdyby gpg (lub git) "delikatnie" wskazał, że klucz nie jest używany, zamiast sugerować fałszywe zatwierdzenia. Czy istnieje ustawienie zabezpieczeń lub zaufania, które mógłbym ustawić, aby to osiągnąć?

+1

Może możesz użyć 'git log --format ="% G? "': Zobacz [moja poprawiona odpowiedź poniżej] (http://stackoverflow.com/a/36761677/6309) i * koniec * bardziej szczegółowej odpowiedzi "[Weryfikacja podpisanego potwierdzenia git?] (http://stackoverflow.com/a/32038784/6309)". – VonC

Odpowiedz

3

Aktualizacja Q4 2016 z Git 2.11:

git log wprowadza dodatkowe kody stanu E, X, Y, R dla ERRSIG, EXPSIG, EXPKEYSIG i REVKEYSIG, tak że użytkownik %G? dostaje więcej informacji.
Zobacz Verifying signed git commits?


Nie wydaje wiele do zrobienia w danym przypadku.

To was debated in 2010, w tym ciekawym pomysłem, jako najlepszej praktyki:

Można oczywiście mieć więcej niż jeden adres e-mail za kluczem, ale nigdy nie powinno się mieć więcej niż jeden klucz za pośrednictwem poczty e-mail.

To całkiem normalne.
Przynajmniej stanie się, jeśli ludzie będą próbowali przejść między starszym a nowszym kluczem - na przykład, jeśli próbują przejść z mniej bezpiecznego algorytmu kryptograficznego do bezpieczniejszego algorytmu kryptograficznego.

Jak rozumiem rzeczy najlepszy sposób zarządzania tego rodzaju rzeczy jest używać podklucze. Możesz zmienić czas wygaśnięcia na kluczu podrzędnym, a następnie ostatecznie możesz go unieważnić, zachowując jednocześnie klucz publiczny do podpisania.
Rzeczywiście dobrze jest regularnie zmieniać podklucz i wygasać starsze.

Sprawdź, czy możesz skorzystać subkeys (po np this tutorial lub this one):

OpenPGP dodatkowo potwierdza podklucze, które są jak zwykłe klucze, chyba że jesteś zobowiązany do pary kluczy master. Podpis może być używany do podpisywania lub szyfrowania.
Naprawdę użyteczną częścią podkluczy jest to, że można je unieważnić niezależnie od kluczy głównych, a także przechowywać oddzielnie od nich.

+0

Zobacz także http://security.stackexchange.com/q/32386 i http://security.stackexchange.com/q/74067 – VonC