Twoja brama akceptuje certyfikat klienta, którego nigdy nie widziała, ponieważ to, czym jest skonfigurowana, jest zaufanym wystawcą, a certyfikat przychodzi podczas uścisku dłoni. Tak protokół ma działać i właśnie dlatego lista katalogu na serwerze jest złym inwentarzem. Wystawca wie, co utworzył, serwer wie, co się połączyło, a stan unieważnienia wie, co zostało wycofane. Inwentarz, który miesza te trzy zapisy, w końcu twierdzi coś, czego żaden z nich nie powiedział.

Brama ufa wystawcy, a nie liście plików

Walidacja porównuje przedstawiony certyfikat z kotwicą zaufania, więc tożsamość utworzona wczoraj przez tego samego wystawcę łączy się, nigdy nie istniejąc na dysku serwera. Nic nie musi być skopiowane, żeby tak się stało, i nikt nie musi tego zatwierdzać ręcznie. Własne zapisy serwera opisują więc przybycia, a nie populację tożsamości, które mogłyby przybyć.

Odwrotna luka jest równie niewygodna. Katalog może zawierać certyfikaty wygasłe, unieważnione oraz tożsamości wydane dla urządzeń, które nigdy nie zostały wdrożone. Liczenie plików odpowiada, ile plików jest, co jest pytaniem, którego nikt nie zadał. Zacznij zamiast tego od zapisów, które niosą znaczenie.

Cztery pytania, cztery różne rejestry

Każdy typ zapisu dobrze odpowiada na jedno pytanie, a źle na pozostałe, dlatego raport, który je łączy, wygląda na kompletny, choć jest błędny w konkretny sposób. Poniższa tabela porządkuje je według pytania, które rozstrzygają, a nie według systemu, który je wytwarza.

Question you are answeringWhere the answer livesHow quickly it changesWhat it will never show
Was this identity ever created?The issuer's issuance databaseOnly when something is issuedWhether the device still exists
Is a copy sitting on this host?The paths you actually inspectedWhenever anyone copies filesCertificates that were never copied here
Has the issuer withdrawn it?Published revocation stateWhen the issuer next publishesWithdrawals that are not published yet
Is it connected right now?The live session tableContinuouslyAnything about past or future sessions

Archiwum certyfikatów publicznych nie jest tajemnicą, ponieważ nie zawiera kluczy prywatnych, ale nie jest też do udostępniania. Podmioty i nazwy urządzeń ujawniają szczegóły operacyjne, a raport powinien pozostać u odbiorców, którzy go potrzebują. Klucze prywatne pozostają całkowicie poza inwentarzem, ponieważ inwentarz potrzebuje metadanych, a nie poświadczeń.

Wystawca i numer seryjny to jedyny stabilny klucz

Podmioty są poddawane recyklingowi, a nazwy plików są używane ponownie, więc nazwa, która w zeszłym roku wskazywała jedno urządzenie, może teraz wskazywać inne. Żadna z nich nie jest kluczem, a raport zbudowany na którejkolwiek z nich w końcu połączy dwie tożsamości w jedną linię.

Para wystawca i numer seryjny jednoznacznie identyfikuje certyfikat, a oba pola pochodzą z samego certyfikatu. Zapisz je wraz z podmiotem, datami ważności, źródłem, z którego pochodzi kopia, oraz odpowiedzialną osobą lub urządzeniem. Dodaj stan unieważnienia i wdrożenia jako osobne pola z własnymi czasami obserwacji, ponieważ certyfikat w swoim oknie ważności nie jest automatycznie autoryzowany. Te dwa fakty żyją w różnych systemach, a ich łączenie ukrywa przypadek, w którym tożsamość została wycofana, podczas gdy jej plik nadal wygląda na aktualny.

Czytaj po jednym certyfikacie

Symbol wieloznaczny rozciągający się na katalog nie jest interfejsem wsadowym i ukrywa, który plik dał które wyjście. Czytaj metadane certyfikat po certyfikacie, a stronę unieważnienia czytaj z jej własnego artefaktu. Dokumentacja OpenSSL x509 wymienia pola, które wypisują te opcje.

openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40

W zarządzanym PKI Easy-RSA odpytuj bazę wydań przez przepływ pracy obsługiwany przez narzędzie zamiast zakładać układ katalogów, i trzymaj oryginały tylko do odczytu, dopóki inwentarz jest składany. Format rejestru jest wystarczająco regularny, aby policzyć ważne wpisy i wylistować wycofane bez otwierania bazy ręcznie.

grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5

Inwentarz, który przetrwa kolejne wystawienie

Jednorazowy zrzut katalogu starzeje się w chwili wystawienia następnego certyfikatu, więc buduj raport z przepływu wydań i pozwól mu się aktualizować jako części normalnej pracy. To czyni raport również odtwarzalnym, co ma znaczenie, gdy dwie osoby nie zgadzają się co do tego, co wydano.

Używaj wyniku do decyzji o odnowieniu i wycofaniu, a nie jako ćwiczenia z arkusza kalkulacyjnego. Usunięcie lokalnej kopii nie unieważnia zdalnych kopii, które już istnieją. Wycofaj tożsamość przez skonfigurowany przepływ unieważnienia i autoryzacji, a następnie zapisz wycofanie z jego datą. Tożsamość, która zniknęła z serwera, ale wystawca nadal jej ufa, nie została wycofana, i właśnie ta różnica dzieli dokładny inwentarz od takiego, który tylko uspokaja.

Powiązane artykuły