Walidacja certyfikatów
Weryfikuj tożsamość serwera
Walidacja certyfikatów to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Dlaczego weryfikować certyfikaty
Samo szyfrowanie nie wystarczy. Jeśli szyfrują Państwo połączenie z napastnikiem, zabezpieczają Państwo niewłaściwą rozmowę.
Weryfikacja certyfikatu zapewnia, że komunikują się Państwo rzeczywiście z zamierzonym serwerem.
Co sprawdza klient
Podczas uzgadniania połączenia klient weryfikuje kilka elementów:
- Łańcuch certyfikatów prowadzi do zaufanego certyfikatu głównego.
- Certyfikat znajduje się w okresie ważności.
- Certyfikat nie został unieważniony.
- Nazwa hosta jest zgodna.
Dopasowanie nazwy hosta
Nazwa hosta, z którą nawiązano połączenie, musi odpowiadać wpisom Subject Alternative Name (SAN) w certyfikacie.
Stare pole Common Name (CN) jest w tym celu przestarzałe; współczesne klienty wymagają SAN.
openssl x509 -in cert.pem -noout -ext subjectAltNameDaty ważności
Każdy certyfikat zawiera znaczniki czasu Not Before i Not After. Poza tym przedziałem certyfikat jest odrzucany.
openssl x509 -in cert.pem -noout -datesWeryfikacja łańcucha zaufania
Klient przechodzi wzdłuż łańcucha od certyfikatu końcowego do certyfikatu głównego w swoim magazynie zaufania, weryfikując każdy podpis.
Jeśli nie istnieje ścieżka do zaufanego certyfikatu głównego, weryfikacja kończy się niepowodzeniem, nawet jeśli certyfikat wygląda poprawnie.
Sprawdzanie unieważnienia
Klient sprawdza, czy certyfikat nie został wcześniej unieważniony, korzystając z OCSP lub CRL.
Wiele przeglądarek korzysta z mechanizmu OCSP stapling lub z wyselekcjonowanych list unieważnień, aby przyspieszyć sprawdzanie.
Ograniczenia zastosowania klucza
Certyfikaty określają dozwolone zastosowania w rozszerzeniach Key Usage i Extended Key Usage.
Certyfikat serwera musi zawierać serverAuth, a certyfikat CA musi mieć ustawioną flagę CA. Certyfikaty użyte niezgodnie z przeznaczeniem są odrzucane.
Przypinanie certyfikatu
Przypinanie polega na zapisaniu w kliencie oczekiwanego certyfikatu lub klucza publicznego (jest to częste w aplikacjach mobilnych).
Odrzucany jest nawet prawidłowy certyfikat podpisany przez CA, jeśli nie jest to certyfikat oczekiwany. Chroni to przed złośliwymi lub przejętymi CA.
Gdy weryfikacja kończy się niepowodzeniem
Typowe błędy weryfikacji to:
- NET::ERR_CERT_DATE_INVALID (certyfikat wygasł)
- NET::ERR_CERT_COMMON_NAME_INVALID (niezgodność nazwy hosta)
- NET::ERR_CERT_AUTHORITY_INVALID (niezaufany wystawca)
Niebezpieczeństwo pomijania weryfikacji
Wyłączenie weryfikacji certyfikatu (na przykład za pomocą curl -k lub verify=False) usuwa całą ochronę przed podszywaniem się.
Nie należy nigdy używać tego w kodzie produkcyjnym, ponieważ umożliwia to ataki typu man-in-the-middle.
# DO NOT do this in production
curl -k https://example.comWeryfikacja z wiersza poleceń
Mogą Państwo przeprowadzić pełne sprawdzanie względem działającego serwera.
openssl s_client -connect example.com:443 \
-verify_hostname example.com -verify_return_errorSzybkie sprawdzenie
Programista ustawia verify=False, aby wyciszyć błąd certyfikatu w środowisku produkcyjnym. Jakie ryzyko się z tym wiąże?
Podsumowanie
Dowiedzieli się Państwo, jak klienci przeprowadzają weryfikację certyfikatów.
- Sprawdzane są między innymi zaufanie do łańcucha, daty ważności, unieważnienie oraz nazwa hosta (SAN).
- Przypinanie zapewnia dodatkową ochronę przed złośliwymi CA.
- Nigdy nie należy wyłączać weryfikacji w środowisku produkcyjnym.
W dalszej części omówimy typowe ataki na TLS.
Często zadawane pytania
Czy lekcja „Walidacja certyfikatów” jest bezpłatna?
Tak — pełny tekst „Walidacja certyfikatów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Walidacja certyfikatów”?
Weryfikuj tożsamość serwera Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?
Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Walidacja certyfikatów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?
Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Uzgadnianie TLS
- Pakiety szyfrów
- Walidacja certyfikatów
- Typowe ataki na TLS