Certyfikaty bezpiecznych witryn internetowych 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 serwera TLS. Witryny korzystające z tych certyfikatów są bezpieczne tylko wtedy, gdy zapewniają dwie rzeczy:
- Administrator witryny jest właścicielem nazwy domeny lub ma nad nią kontrolę, zapewniając, że użytkownicy łączą się z legalną witryną, a nie z fałszywą lub złośliwą kopią witryny.
- Szyfrowaną wymianę danych za pośrednictwem protokołu TLS pomiędzy przeglądarką a stroną internetową w celu zapewnienia ochrony przed podsłuchem lub manipulacją przez osoby nieupoważnione.
Łańcuch certyfikatów
Przeglądarki, takie jak Firefox weryfikują certyfikaty poprzez hierarchię zwaną łańcuchem zaufania (ang. chain of trust). Definiuje to strukturę dla przeglądarek i innych programów w celu weryfikacji integralności certyfikatu. Oto wykaz trzech certyfikatów:
- Certyfikat główny (trust anchor)
- Certyfikat pośredni
- Certyfikat TLS 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 TLS wydawany jest podmiotowi lub organizacji sprawującej kontrolę nad domeną serwisu.
Certyfikaty serwera TLS opierają się na kryptografii klucza publicznego, w której asymetryczna para kluczy ma dwa klucze powiązane matematycznie:
Klucz prywatny. Klucz ten jest utrzymywany w tajemnicy przez jego właściciela i służy do operacji kryptograficznych, takich jak podpisywanie danych, w tym certyfikatów, czy odszyfrowywanie informacji zaszyfrowanych kluczem publicznym.
Klucz publiczny. Klucz ten jest udostępniany publicznie i służy do weryfikacji podpisów utworzonych kluczem prywatnym lub do szyfrowania informacji, które tylko klucz prywatny może odszyfrować.
Certyfikaty klucza publicznego zawierają następujące informacje:
- Szczegółowe informacje o urzędzie certyfikacji (CA), który wydał certyfikat,
- Klucz publiczny należący do organizacji, która otrzymała certyfikat,
- Dane identyfikacyjne organizacji przechowującej klucz prywatny (patrz Zawartość certyfikatu) poniżej. W przypadku protokołu TLS jest to przede wszystkim nazwa domeny witryny internetowej.
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 zaufanych głównych urzędów certyfikacji (CA).
- Wykorzystuje klucz publiczny certyfikatu głównego urzędu certyfikacji, aby upewnić się, że certyfikat główny i certyfikat pośredni zostały prawidłowo podpisane w łańcuchu w stosunku do certyfikatu serwera TLS dostarczonego przez witrynę internetową.
- Sprawdza informacje zawarte w certyfikacie, aby upewnić się, że witryna, z którą się łączysz, odpowiada witrynie wymienionej w certyfikacie.
- Generuje symetryczny (pojedynczy) klucz do szyfrowania ruchu HTTP dla połączenia.
- Szyfruje klucz symetryczny kluczem publicznym serwera, który znajduje się w certyfikacie serwera.
- Klucz prywatny znajdujący się na serwerze internetowym odszyfrowuje niezbędne dane połączenia, aby zakończyć tak zwane uzgadnianie TLS.
Może wówczas nastąpić bezpieczna komunikacja pomiędzy Firefoksem a witryną.
Wyświetlanie certyfikatu
Aby zobaczyć certyfikat należy:
- Kliknąć ikonę kłódki znajdującą się w pasku adresu.
- W wyświetlonym menu Informacje o… kliknąć .
- W kolejnym wyświetlonym menu kliknąć
- W wyświetlonym oknie kliknąć przycisk
Zostanie wyświetlona strona zawierająca informacje o certyfikacie aktualnie przeglądanej witryny.
Na stronie widoczne są trzy karty, w których kolejno wyświetlane są: certyfikat serwera TLS, certyfikat pośredni i certyfikat główny.
Zawartość certyfikatu
Certyfikaty serwera 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.
- Nazwa wystawcy – identyfikuje podmiot CA, 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.
- Zastosowania klucza i 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 CA, 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 CA.
- Informacje o organie (AIA) – zawiera metodę sprawdzania poprawności dla urzędu certyfikacji i pośredniego pliku certyfikatu.
- Zasady certyfikatu – zawiera wskazówki dotyczące typu certyfikatu TLS np. informacje zweryfikowane w momencie wystawienia certyfikatu.
- 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 TLS 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 ostrzeżeniem Połączenie nie jest bezpieczne, kliknij przycisk
- Kliknij Wyświetl certyfikat.
Zostanie wyświetlony zły certyfikat.