Certyfikaty Transport Layer Security (TLS) weryfikują integralność zarówno własności, jak i informacji o odwiedzanych witrynach internetowych. W tym artykule wyjaśniono, jak to działa.
Spis treści
Jakie witryny internetowe korzystają z certyfikatów?
Witryny internetowe, których adresy zaczynają się od „https”, korzystają z certyfikatów TLS. Witryny korzystające z tych certyfikatów są bezpieczne tylko wtedy, o ile weryfikują dwie rzeczy:
- Administrator witryny jest właścicielem nazwy witryny lub wie, kto jest jej posiadaczem
- Witryna szyfruje połączenie między przeglądarką użytkownika a nią samą, aby zapobiec podsłuchiwaniu
Łańcuch certyfikatów
Przeglądarki, takie jak Firefox weryfikują certyfikaty poprzez hierarchię zwaną łańcuchem certyfikatów (ang. chain of trust) lub łańcuchem zaufania. Definiuje to strukturę dla przeglądarek i innych programów w celu weryfikacji integralności certyfikatu. Poniższy diagram ilustruje łańcuch certyfikatów:
Oto wykaz trzech certyfikatów:
- Certyfikat główny (trust anchor)
- Certyfikat pośredni
- Certyfikat serwera (end entity)
Zdefiniujmy je:
- Certyfikat główny należy do głównego urzędu certyfikacji (CA), który wystawia certyfikaty TLS i przeglądarka z natury mu ufa.
- Certyfikat pośredni pełni rolę pośrednika pomiędzy głównym urzędem certyfikacji (CA) a witryną internetową.
- Certyfikat serwera należy do administratora serwisu.
Certyfikaty te zawierają następujące informacje:
- Informacje o urzędzie certyfikacji (CA),
- Parę kluczy asymetrycznych,
- Klucz prywatny kryptograficznie podpisuje kolejny certyfikat w łańcuchu, jest chroniony przez właściciela klucza i tylko on może się nim posłużyć.
- Klucz publiczny służy do odszyfrowania podpisu kolejnego certyfikatu w łańcuchu w celu weryfikacji tożsamości, jest częścią certyfikatu cyfrowego jego właściciela i mogą go używać wszyscy zainteresowani.
Teraz możemy opisać, w jaki sposób Firefox określa, czy witryna jest bezpieczna.
Jak Firefox sprawdza integralność certyfikatu?
Oto jak Firefox wykorzystuje łańcuch certyfikatów do weryfikacji certyfikatów TLS:
- Firefox pobiera certyfikat odwiedzanej witryny.
- Sprawdza certyfikat w swojej wewnętrznej bazie danych głównych urzędów certyfikacji (CA).
- Używa klucza publicznego certyfikatu głównego urzędu certyfikacji, aby upewnić się, że certyfikat główny i certyfikat pośredni są prawidłowo podpisane w łańcuchu.
- Sprawdza w głównym urzędzie certyfikacji, czy witryna, z którą użytkownik się łączy, jest zgodna z witryną w certyfikacie serwera.
- Generuje symetryczny (pojedynczy) klucz do szyfrowania ruchu HTTP dla połączenia.
- Szyfruje klucz symetryczny kluczem publicznym certyfikatu serwera.
- Klucz prywatny, który znajduje się na serwerze WWW, odszyfrowuje dane połączenia.
Wyświetlanie certyfikatu
Aby zobaczyć certyfikat należy:
- Kliknąć ikonę kłódki znajdującą się w pasku adresu
- Kliknąć
- Kliknąć
- W wyświetlonym oknie, kliknąć
Zostanie wyświetlony certyfikat aktualnie przeglądanej strony:
Widoczne są trzy zakładki, w których kolejno wyświetlane są: certyfikat serwera, certyfikat pośredni i certyfikat główny.
Zawartość certyfikatu
Certyfikaty TLS zawierają następujące informacje:
- Nazwa podmiotu – zawiera nazwę witryny internetowej i opcjonalne atrybuty, takie jak informacje o organizacji będącej właścicielem certyfikatu.
- Wystawca – identyfikuje podmiot, który wydał certyfikat
- Ważność – pokazuje jak długo certyfikat jest ważny
- Alternatywne nazwy podmiotu – wyświetla adresy witryn internetowych, dla których certyfikat jest ważny
- Informacje o kluczu publicznym – wyświetla listę atrybutów klucza publicznego certyfikatu
- Numer seryjny – unikalny identyfikator certyfikatu
- Algorytm sygnatury certyfikatu – Algorytm używany do stworzenia sygnatury
- Odciski – hash (cyfrowy „odcisk palca” pliku komputerowego) pliku certyfikatu w DER formacie binarnym
- Rozszerzone zastosowania klucza – określa, w jaki sposób użytkownicy mogą korzystać z certyfikatu, na przykład w celu potwierdzenia własności witryny internetowej (uwierzytelnianie serwera sieci Web)
- Identyfikator klucza podmiotu – identyfikator wygenerowany na podstawie klucza publicznego certyfikatu TLS w celu identyfikacji certyfikatu
- Identyfikator klucza organu – identyfikator generowany z klucza publicznego certyfikatu TLS, służący do identyfikacji klucza publicznego odpowiadającego kluczowi prywatnemu użytemu do podpisania certyfikatu
- Punkty końcowe CRL – lokalizacje Certificate Revocation List (CRL) wystawiającego urzędu certyfikacji
- Informacje o organie (AIA) – zawiera metodę sprawdzania poprawności dla urzędu certyfikacji i pośredniego pliku certyfikatu
- Ważność certyfikatu – zawiera typ sprawdzania poprawności certyfikatu i łącze do pliku CA Certification Practices Statement (CPS)
- Osadzone SCT – zawiera listę Signed Certificate Timestamps (SCT)
Problematyczne certyfikaty
Jeśli użytkownik odwiedza witrynę, której adres zaczyna się od https, a z jej certyfikatem jest jakiś problem, zobaczy informację o błędzie. Często spotykane błędy certyfikatów opisano w artykule: Co oznacza komunikat "Połączenie nie jest bezpieczne"?.
Aby wyświetlić problematyczny certyfikat:
- Na stronie z komunikatem Połączenie nie jest bezpieczne, kliknij przycisk
- Kliknij Wyświetl certyfikat
Zostanie wyświetlony zły certyfikat.