Plik certyfikatu klienta zniknął, a odruchem jest unieważnienie nazwy i wystawienie nowego. Ten odruch zostawia oryginalny certyfikat ważny, ponieważ unieważnienie działa na numerze seryjnym, a nie na etykiecie. CA prawie na pewno nadal przechowuje kopię tego, co wystawiła, a znalezienie tej kopii to całe zadanie.

Utrata pliku to nie utrata wpisu CA

PKI Easy-RSA przechowuje wystawione certyfikaty publiczne, a obecne wersje archiwizują też kopie według serii w katalogu certs_by_serial PKI. Klucz prywatny nie jest potrzebny do unieważnienia czegokolwiek. Liczy się dokładny certyfikat podpisany przez CA, który CA już ma.

Pracuj na kopii zapasowej właściwej PKI, razem z administratorem, do którego należy. Unieważnienie to operacja podlegająca audytowi, a nie naprawa bazy produkcyjnej o północy.

Kopia wbudowanego certyfikatu publicznego klienta też wystarczy, jeśli wdrożenie ją zachowało.

Najpierw odczytaj wystawcę i serię

Sprawdź odzyskany PEM i zapisz wystawcę, numer seryjny, podmiot oraz okres ważności. Numer seryjny jest unikalny w obrębie jednego wystawcy, a nie wśród wszystkich CA w twoim środowisku, dlatego wystawca jest częścią tożsamości. Jeśli kilka certyfikatów dzieli podmiot, odróżniają je właśnie te numery seryjne.

Porównaj wartości z rejestrami CA oraz z urządzeniem lub osobą, która według ciebie ma certyfikat.

Nazwa pospolita może być użyta ponownie i zwykle tak się dzieje. Nie decyduj, które certyfikaty wycofać, zanim numery seryjne nie zostaną zapisane.

Dlaczego unieważnienie nowego certyfikatu nic nie daje

Wystawienie zamiennika z tą samą nazwą pospolitą tworzy drugi certyfikat z innym numerem seryjnym. Unieważnienie zamiennika wycofuje nowy, a oryginał pozostaje ważny do wygaśnięcia. Z punktu widzenia CA to dwa niezależne obiekty, a CRL wymienia numery seryjne, a nie nazwy. Indeks CA przechowuje jeden wiersz na każdy wystawiony certyfikat właśnie z tego powodu.

Ta sama pomyłka rodzi odwrotny błąd: usunięcie pliku klienta i założenie, że CA o nim zapomniała. Usunięcie po stronie klienta nie jest zdarzeniem unieważnienia, a certyfikat nadal działa dla każdego, kto ma kopię.

Oba błędy wynikają z traktowania nazwy jako tożsamości.

Unieważnij certyfikat, który wskazuje seria

Zidentyfikuj obiekt, zanim dotkniesz CA: openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates wypisuje cztery wartości w jednym przebiegu, a seria to ta wartość, którą porównujesz z archiwum CA. Easy-RSA przechowuje to archiwum pod pki/certs_by_serial, po jednym pliku na każdy numer seryjny. Polecenie unieważnienia przyjmuje nazwę pospolitą, a nie serię, więc skopiuj zarchiwizowany plik do pki/issued/<common-name>.crt i pozwól, by nazwa wskazywała zidentyfikowany obiekt. Uruchom easyrsa revoke <common-name> z katalogu PKI, a następnie sprawdź, czy odpowiedni wiersz w index.txt zmienił się na R. Seria służy do wyboru obiektu, nie jest argumentem, który przyjmuje polecenie.

openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates
cp pki/certs_by_serial/A1B2C3D4.pem pki/issued/client-01.crt
./easyrsa revoke client-01
grep -n client-01 pki/index.txt
./easyrsa gen-crl

Jeśli index.txt nie pokazuje R, zatrzymaj się i przeczytaj błąd przed wygenerowaniem CRL, ponieważ CRL zbudowany z wciąż ważnego wpisu niczego nie wycofuje. Dopiero po zmianie wiersza uruchamiasz easyrsa gen-crl i przechodzisz do dystrybucji pliku.

Opublikuj CRL tam, gdzie jest faktycznie egzekwowany

Wygeneruj nowy CRL zgodnie z obsługiwanym przepływem pracy PKI, a następnie opublikuj go u każdego weryfikatora, który egzekwuje unieważnienia tego wystawcy.

Zaktualizowany plik leżący na CA niczego nie zmienia, ponieważ VPN kończy decyzję u własnego weryfikatora. Sprawdź wystawcę CRL, okres jego ważności i unieważnione serie oraz potwierdź, że usługa ładuje plik ponownie, zamiast buforować poprzedni. Właściciel i ścieżka znaczą tyle samo co zawartość: CRL, którego demon nie może odczytać, jest nieodróżnialny od braku CRL. Opcja crl-verify OpenVPN wskazuje plik czytany przez demona, więc sprawdź tę ścieżkę i właściciela pliku w konfiguracji serwera.

Weryfikuj rzeczywistą próbą połączenia, a nie znacznikiem czasu pliku.

Wiedz, kiedy CRL jest niewłaściwym narzędziem

Jeśli klucz prywatny wystawcy nie jest już zaufany, wycofanie znanych serii nie powstrzyma nieuprawnionego posiadacza przed podpisywaniem nowych certyfikatów. To przejście zaufania wystawcy, czyli nowa CA i plan dystrybucji, a nie kolejny wpis w CRL. Dostęp byłego administratora sam w sobie nie dowodzi nadużycia klucza, więc ustal fakty, zanim odbudujesz zaufanie.

Ręczna edycja bazy wystawień, aby odwrócić literę statusu, nie zastępuje podpisanego unieważnienia i pozostawia CRL niespójny z rejestrami.

Trzymaj serię, CRL i krok dystrybucji w jednej notatce, a następny audyt stanie się lekturą. Projekt Easy-RSA dokumentuje obsługiwane polecenia dla zainstalowanej wersji i to jedyny interfejs, którego warto przestrzegać.

Powiązane artykuły