HTTPS i TLS: jak działa kłódka w przeglądarce
Kłódka w przeglądarce oznacza, że ruch jest szyfrowany protokołem TLS. Dowiedz się, jak działają certyfikaty HTTPS, które wersje TLS mają znaczenie i czego kłódka naprawdę dowodzi.
Spis treści
Czym jest HTTPS — a czym nie jest
Gdy odwiedzasz stronę i widzisz na pasku adresu https:// oraz ikonę kłódki, patrzysz na HTTPS — HyperText Transfer Protocol Secure. Oznacza to, że połączenie między Twoją przeglądarką a serwerem jest szyfrowane.
Ale oto, co zaskakuje większość ludzi: HTTPS nie oznacza, że strona jest godna zaufania ani prawdziwa. Strona phishingowa może używać HTTPS — i często to robi. Kłódka mówi tylko, że Twoje połączenie z tym serwerem jest szyfrowane, a nie że serwer należy do tego, kogo się spodziewasz.
HTTPS działa dzięki TLS (Transport Layer Security) — protokołowi kryptograficznemu. TLS zastąpił starszy protokół SSL, choć oba terminy wciąż używane są zamiennie. Jeśli ktoś mówi „certyfikat SSL”, niemal na pewno ma na myśli certyfikat TLS.
Uzgadnianie TLS: jak powstaje bezpieczne połączenie
Za każdym razem, gdy przeglądarka łączy się ze stroną HTTPS, w ciągu milisekund wykonuje uzgadnianie TLS (TLS handshake). Oto co się dzieje:
- Client Hello: przeglądarka wysyła do serwera wiadomość z obsługiwanymi wersjami TLS i zestawami szyfrów.
- Server Hello: serwer odpowiada, wybierając uzgodnioną wersję TLS i zestaw szyfrów, oraz przesyła swój certyfikat cyfrowy.
- Weryfikacja certyfikatu: przeglądarka sprawdza certyfikat względem listy zaufanych urzędów certyfikacji (CA) wbudowanej w system i przeglądarkę. Weryfikuje, czy certyfikat jest ważny, niewygasły i wydany dla właściwej domeny.
- Wymiana kluczy: przeglądarka i serwer wymieniają klucze (algorytmami takimi jak ECDHE), wyprowadzając wspólny klucz sesji — bez przesyłania samego klucza przez sieć.
- Rozpoczyna się szyfrowana komunikacja: wszystkie kolejne dane są szyfrowane symetrycznie kluczem sesji.
Najlepsze jest to, że nawet jeśli ktoś nagrałby każdy pakiet uzgadniania TLS, nie wyprowadzi z nich klucza sesji — to właśnie poufność przyszła (forward secrecy).
Czym jest certyfikat TLS?
Certyfikat TLS to cyfrowy dokument potwierdzający tożsamość serwera. Zawiera:
- Nazwę domeny, dla której został wydany
- Klucz publiczny serwera
- Wydający go urząd certyfikacji
- Datę wygaśnięcia
- Podpis cyfrowy urzędu certyfikacji
Urzędy certyfikacji to organizacje, którym ufa się w kwestii weryfikacji, czy domena jest kontrolowana przez deklarowanego właściciela. Istnieją trzy poziomy walidacji:
- Domain Validation (DV): CA potwierdza, że kontrolujesz domenę. Szybko i tanio (często za darmo przez Let's Encrypt). Bez weryfikacji tożsamości.
- Organization Validation (OV): CA weryfikuje, że organizacja istnieje i jest właścicielem domeny. Więcej zaufania, więcej formalności.
- Extended Validation (EV): rygorystyczna weryfikacja podmiotu prawnego. Dawniej przeglądarki wyświetlały zieloną nazwę firmy — większość przeglądarek wycofała ten wskaźnik.
W większości zastosowań certyfikaty DV (np. od Let's Encrypt) zapewniają silne szyfrowanie. Poziom walidacji nie wpływa na siłę szyfrowania — tylko na zakres weryfikacji tożsamości.
Przed czym chroni TLS
TLS zapewnia trzy właściwości bezpieczeństwa:
- Poufność: dane są szyfrowane i nieczytelne dla każdego, kto przechwyci ruch.
- Integralność: kod uwierzytelniający wiadomość (MAC) gwarantuje, że danych nie da się niezauważenie zmienić w trakcie przesyłu.
- Uwierzytelnianie: certyfikat dowodzi, że rozmawiasz z właściwym serwerem (o ile ufasz łańcuchowi CA).
Dzięki temu TLS bardzo skutecznie chroni przed biernym podsłuchem — ktoś nasłuchujący w publicznej sieci Wi-Fi nie odczyta Twojego ruchu HTTPS.
Przed czym TLS nie chroni
- Przejęte urządzenia końcowe: jeśli na urządzeniu jest złośliwe oprogramowanie, może przechwycić dane przed zaszyfrowaniem lub po odszyfrowaniu.
- Złośliwe strony z ważnymi certyfikatami: prawidłowy certyfikat na fałszywej stronie oznacza, że Twój ruch do oszustów jest szyfrowany — ale nadal jesteś oszukiwany.
- Przejęcie urzędu certyfikacji: jeśli CA zostanie zhakowany lub wyda nieuprawnione certyfikaty, atakujący mogą podszywać się pod prawdziwe strony. To już się zdarzało (np. DigiNotar w 2011 roku).
- Dane na serwerze: TLS chroni dane wyłącznie w trakcie przesyłu. To, co serwer robi z Twoimi danymi po ich otrzymaniu, to zupełnie osobna sprawa.
Wersje TLS i dlaczego mają znaczenie
Nie wszystkie wersje TLS są sobie równe:
- TLS 1.0 i 1.1: wycofane. Znane podatności. Żadna nowoczesna przeglądarka ich nie akceptuje.
- TLS 1.2: szeroko obsługiwany, zasadniczo bezpieczny przy poprawnej konfiguracji.
- TLS 1.3: obecnie najlepsza wersja. Szybsze uzgadnianie, usunięte przestarzałe szyfry, obowiązkowa poufność przyszła. Używaj jej, jeśli konfigurujesz serwer.
Wersję TLS używaną przez stronę sprawdzisz, klikając kłódkę w przeglądarce i otwierając szczegóły certyfikatu, albo za pomocą narzędzi takich jak test serwera SSL Labs (ssllabs.com/ssltest).
Praktyczne wnioski
- Upewniaj się, że strony obsługujące wrażliwe dane (bankowość, zakupy, konta) używają HTTPS — szukaj kłódki
- Nie zakładaj, że strona z kłódką jest wolna od oszustw — uważnie sprawdzaj domenę
- HTTPS nie chroni Twoich danych po tym, jak dotrą na serwer
- Używaj SSL Labs do audytu konfiguracji TLS własnej strony
- Wybieraj strony obsługujące TLS 1.3 i z ustawionym nagłówkiem HSTS (wymuszającym połączenia HTTPS)