GnuPG/Certyfikat unieważniający

Z Wikibooks, biblioteki wolnych podręczników.

No dobrze, ale co zrobić, jeśli ktoś zdobędzie nasz klucz prywatny? Jeśli nawet nie zna hasła chroniącego klucz prywatny, bardzo możliwe, że w niedługim czasie klucz ten pozna np. poprzez atak słownikowy. Być może z jakiegoś innego powodu będziemy musieli zmienić klucz publiczny? Aby to zrobić, musimy po prostu unieważnić nasz stary klucz i poinformować o tym znajomych. Do tego celu musimy wygenerować certyfikat unieważniający klucz. Dobrym pomysłem jest wygenerowanie go wcześniej i zachowanie w bezpiecznym miejscu na innym medium niż znajduje się sam klucz prywatny. Wtedy w razie np. awarii dysku będziemy w stanie chociaż unieważnić klucz, którego już nie posiadamy. Do generowania takiego certyfikatu służy opcja --gen-revoke [nazwa], która jako argument przyjmuje identyfikator klucza dla którego chcemy wygenerować certyfikat (aby to zrobić musimy posiadać klucz prywatny). Będziemy musieli odpowiedzieć na klika prostych pytań (odpowiedzi wytłuściłem), cały proces przedstawiam poniżej. Możemy użyć opcji --output [plik], jeśli chcemy, aby zamiast na ekran, klucz został zapisany w podanym pliku. Oczywiście odpowiedzi mogą być inne i ściśle zależą od okoliczności.

 $ gpg --gen-revoke adres
 
 sec 1024D/630BE83F 2004-11-16 Imie Nazwisko <adres@email.pl>
 
 Stworzyć certyfikat unieważnienia tego klucza? (t/N) t
 Proszę wybrać powód unieważnienia:
 0 = nie podano przyczyny
 1 = klucz został skompromitowany
 2 = klucz został zastąpiony
 3 = klucz nie jest już używany
 Q = Anuluj
 
 (Prawdopodobnie chcesz tu wybrać 1)
 Twoja decyzja? 0 Wprowadź opis (nieobowiązkowy) i zakończ go pustą linią:
 >
 Powód unieważnienia: nie podano przyczyny
 (nie podano)
 Informacje poprawne? t
 Musisz podać hasło aby odbezpieczyć klucz prywatny użytkownika:
 "Imie Nazwisko <adres@email.pl>"
 długość 1024 bitów, typ DSA, numer 630BE83F, stworzony 2004-11-16
 
 wymuszono opakowanie ASCII wyniku.
 Certyfikat unieważnienia został utworzony.
 
 Należy przenieść go na nośnik który można bezpiecznie ukryć; jeśli źli ludzie
 dostaną ten certyfikat w swoje ręce, mogą użyć go do uczynienia klucza
 nieużytecznym.
 
 Niezłym pomysłem jest wydrukowanie certyfikatu unieważnienia i schowanie
 wydruku w bezpiecznym miejscu, na wypadek gdyby nośnik z certyfikatem stał się
 nieczytelny. Ale należy zachować ostrożność, systemy drukowania różnych
 komputerów mogą zachować treść wydruku i udostępnić ją osobom nieupoważnionym.
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.6 (GNU/Linux)
 Comment: A revocation certificate should follow
 
 iEkEIBECAAkFAkGgoKsCHQAACgkQZYUAdmML6D/RDQCgrRNm4cjauVRvtz3QWVdm
 0ZgDsP4An1tpIXoiO5P7G385m/KR/mGkm5sr
 =piFr
 -----END PGP PUBLIC KEY BLOCK-----
 $

Teraz, aby dokonać unieważnienia, wystarczy zaimportować taki certyfikat jak zwykły klucz. Niżej podaję przykład takiej operacji. Prawdopodobnie będziemy po tym chcieli wyeksportować ten unieważniony klucz do serwera kluczy. Nie ma możliwości dokonania operacji odwrotnej - raz unieważniony klucz nie może stać się znów ważny.

 $ gpg --import /tmp/revoke
 gpg: klucz 630BE83F: ,,Imie Nazwisko <adres@email.pl>'' certyfikat unieważnienia został już wczytany
 gpg: Ogółem przetworzonych kluczy: 1
 gpg: nowych unieważnień kluczy: 1
 
 $ gpg --list-keys
 /var/home/gnupg/.gnupg/pubring.gpg
 ---------------------------------
 pub 1024D/630BE83F 2004-11-16 Imie Nazwisko <adres@email.pl>
 sub 1024g/624564B4 2004-11-16 [unieważniony]
 
 pub 1024D/D82E0E4B 2004-02-07 Krzysztof Adamski <mr_K@interia.pl>
 sub 1024g/E9B3B634 2004-02-07
 $