Kiedy przeglądasz strony internetowe, zapewne zdarzyło Ci się zwrócić uwagę na zieloną kłódkę w pasku adresu przeglądarki. Oznacza ona, że połączenie jest bezpieczne dzięki protokołom SSL lub TLS. Jakie są różnice między tymi terminami? Z którego zabezpieczenia korzystać i jak działają? Sprawdź!
Czym jest SSL i TLS?
SSL (Secure Sockets Layer) oraz TLS (Transport Layer Security) to protokoły komunikacyjne, które zapewniają bezpieczne połączenia między serwerami a klientami, chroniąc przesyłane dane przed nieuprawnionym dostępem. SSL został opracowany w 1994 roku przez firmę Netscape. Był pierwszym krokiem w kierunku bezpiecznej komunikacji w internecie. Jego zadaniem było tworzenie zaszyfrowanego kanału komunikacyjnego, który chroni dane przed przechwyceniem przez osoby trzecie. Z biegiem czasu wykryto w nim pewne luki bezpieczeństwa, co doprowadziło do opracowania jego następcy – TLS.
TLS to ulepszona wersja SSL, która została wprowadzona w 1999 roku przez Internet Engineering Task Force (IETF). Protokół TLS jest wyposażony w bardziej zaawansowane mechanizmy szyfrowania i uwierzytelniania. Jest dzięki temu bezpieczniejszy oraz wydajniejszy.
SSL nie jest już rozwijany, a jego rolę przejął TLS, który obecnie jest dostępny w wersji 1.3. Mimo że te protokoły różnią się od siebie (omówimy to w kolejnej części artykułu), to w praktyce realizują te same zadania.
Dlaczego więc nadal większość osób posługuje się terminem SSL? Wielu dostawców certyfikatów wybrało tę nazwę być może ze względu na jej prostotę. Z tego powodu stała się powszechnie akceptowana. W praktyce wszystkie oferowane certyfikaty to certyfikaty SSL/TLS. Niemniej jednak dostawcy zazwyczaj preferują korzystanie z najnowszej wersji, czyli TLS 1.3.
Jakie są główne różnice między SSL a TLS?
Choć oba certyfikaty cyfrowe mają ten sam cel, czyli zapewnianie bezpiecznego połączenia, to jednak TLS wprowadził sporo usprawnień.
Nawiązywanie połączenia (handshake)
„Handshake” to proces, w którym przeglądarka uwierzytelnia certyfikat SSL lub TLS serwera. Dochodzi wtedy do uwierzytelnienia obu stron i wymiany kluczy kryptograficznych. SSL wymagało więcej kroków do nawiązania połączenia niż TLS, co spowalniało proces. TLS wprowadził uproszczenia – wyeliminował zbędne kroki i zmniejszył liczbę używanych algorytmów, co przyspieszyło działanie.
Alerty
Alerty to sposób, w jaki protokoły SSL i TLS komunikują błędy oraz ostrzeżenia. W SSL są dwa typy alertów: ostrzeżenie i krytyczne ostrzeżenie. Ostrzeżenie oznacza, że wystąpił błąd, ale połączenie może być kontynuowane. Krytyczne ostrzeżenie informuje, że połączenie musi zostać natychmiast przerwane. Alerty SSL nie są szyfrowane.
TLS wprowadza dodatkowy typ alertu, zwany powiadomieniem o zamknięciu, które sygnalizuje koniec sesji. Alerty TLS są również szyfrowane, co zwiększa bezpieczeństwo.
Uwierzytelnianie wiadomości
Zarówno SSL, jak i TLS używają kodów uwierzytelniania wiadomości do weryfikacji ich autentyczności oraz integralności. SSL używało do tego celu algorytmu MD5, który jest obecnie przestarzały. TLS korzysta z bardziej zaawansowanego algorytmu HMAC, który zapewnia większe bezpieczeństwo.
Jak działa protokół SSL?
Działanie protokołu można pokrótce opisać w następujących krokach:
-
Instalacja certyfikatu SSL
Właściciel strony musi kupić certyfikat SSL od zaufanego dostawcy określanego jako centrum certyfikacji/urząd certyfikacji.
W Polsce głównymi dostawcami są:
- Krajowa Izba Rozliczeniowa (Szafir),
- Polska Wytwórnia Papierów Wartościowych,
- Unizeto Technologies (CERTUM).
Warto oczywiście dodać, że do zakupu certyfikatu nie dochodzi zwykle bezpośrednio od takich dostawców. Proces zazwyczaj odbywa się za pośrednictwem partnerów lub resellerów. Są to często firmy hostingowe, które pomagają klientom w przejściu przez wszystkie kroki wdrożenia.
Po tych wstępnych działaniach na serwerze generowane jest żądanie podpisania certyfikatu (CSR), które zawiera klucz publiczny oraz informacje o domenie.
-
Weryfikacja i instalacja certyfikatu
Urząd Certyfikacji sprawdza tożsamość właściciela domeny i generuje certyfikat TLS. Certyfikat jest następnie instalowany na serwerze i umożliwia szyfrowanie komunikacji.
-
Nawiązywanie połączenia (handshake)
Kiedy użytkownik odwiedza stronę, przeglądarka nawiązuje połączenie z serwerem. Serwer przesyła certyfikat TLS do przeglądarki, która sprawdza jego ważność. Następnie przeglądarka i serwer wspólnie generują klucze szyfrowania sesji.
-
Szyfrowanie i transmisja danych
Po pomyślnym handshake’u ustanawiane jest bezpieczne, zaszyfrowane połączenie. Wszystkie dane przesyłane między serwerem a przeglądarką są szyfrowane, co zapewnia poufność.
-
Zakończenie sesji
Po zakończeniu transmisji danych sesja jest zamykana, a klucze szyfrowania są usuwane.
Jak działa protokół TLS?
Protokół TLS działa tak samo jak SSL. Właściwie jest to jedyny protokół, który w ogóle „działa”, bo - jak już wspomnieliśmy - SSL został wycofany. Same podstawy procesu są takie same. W przypadku poszczególnych etapów wprowadzono jednak pewne usprawnienia:
- nawiązywanie połączenia – TLS eliminuje pewne kroki i redukuje liczbę algorytmów szyfrowania (cipher suites), co przyspiesza proces i zwiększa bezpieczeństwo;
- szyfrowanie, transmisja i uwierzytelnianie – TLS wykorzystuje HMAC do zachowania spójności danych. TLS 1.3 wykorzystuje AEAD zarówno do szyfrowania, jak i uwierzytelniania;
- zakończenie sesji – zapewnia wsparcie dla większej liczby alertów.
Kiedy używać SSL, a kiedy TLS?
Obecnie TLS to jedyna opcja. SSL 2.0 i SSL 3.0 są przestarzałe i uważane za niebezpieczne. To samo dotyczy starszych wersji TLS, czyli 1.0 i 1.1 (ich wsparcie wkrótce wygaśnie). Na dobrze skonfigurowanych serwerach te przestarzałe protokoły są wyłączone.
Jakie są zalety korzystania z TLS?
TLS to obecnie podstawa bezpieczeństwa danych w internecie. Korzystanie z niego daje mnóstwo korzyści.
Ochrona danych klientów
TLS zabezpiecza dane przesyłane między serwerem a przeglądarką. Dzięki temu poufne informacje, takie jak identyfikatory, hasła czy dane kart kredytowych, są chronione przed przechwyceniem przez hakerów. Dane są szyfrowane, co oznacza, że są zamieniane na nieczytelny format dla nieuprawnionych osób.
Lepsze SEO
Google już od lat kładzie nacisk na bezpieczeństwo w sieci. Przykładowo od lipca 2018 roku Google oznacza jako niebezpieczne wszystkie strony, które nie korzystają z certyfikatu TLS. Jak w praktyce działa to oznaczenie? Dane zebrane przez agencję John Cabot pokazują, że:
- 47% osób natychmiastowo rozpoznaje oznaczenie „strona nie jest bezpieczna” i wie, co ono oznacza;
- 64% osób od razu chce opuścić taką witrynę;
- 46% osób z powodu tego ostrzeżenia nie chce podać swoich wrażliwych danych.
Jak więc widać, brak odpowiedniego zabezpieczenia może bardzo negatywnie wpłynąć na zachowanie użytkowników, co z kolei przekłada się na pozycjonowanie.
Ochrona przed phishingiem
TLS pomaga chronić przed rozbudowanymi atakami typu phishing, które polegają na tworzeniu fałszywych stron internetowych. Certyfikaty TLS są trudne do podrobienia, co utrudnia przestępcom tworzenie wiarygodnych kopii zabezpieczonych stron. Dzięki temu użytkownicy są mniej narażeni na oszustwa i kradzież danych. TLS zapewnia również ochronę przed atakami typu man-in-the-middle (MITM).
Certyfikat TLS to jedno z najlepszych zabezpieczeń stron internetowych oraz skuteczny sposób na weryfikację wiarygodności witryny oraz powiązanej organizacji (źródło)
Jakie są wady i ograniczenia SSL?
Choć zabezpieczenie przynosi wiele korzyści, to jednak warto pamiętać o jego ograniczeniach i ewentualnych problemach, które mogą pojawić się w czasie wdrożenia.
Koszty
Dobry certyfikat to oczywiście dodatkowe wydatki. W przypadku zabezpieczeń tworzonych z myślą o sklepach czy większych witrynach mowa nawet o kosztach powyżej 5000 złotych na rok.
Wydajność i szybkość strony
Proces szyfrowania i deszyfrowania danych jest zasobożerny, co może zwiększać obciążenie serwera. Oprócz tego przeniesienie strony z HTTP na HTTPS wymaga staranności. Błędy w tym procesie mogą prowadzić do problemów z indeksowaniem przez wyszukiwarki i obniżenia widoczności strony.
Ograniczenia
Szyfrowanie chroni dane w tranzycie, ale nie zabezpiecza przed wszystkimi zagrożeniami, takimi jak ataki na bazy danych czy luki w oprogramowaniu serwera.
Przyszłość protokołów bezpieczeństwa: co dalej po TLS?
TLS dalej pozostanie standardem bezpieczeństwa w sieci i będzie ewoluować. Na najbliższą przyszłość można spodziewać się następujących ulepszeń:
- TLS 1.4 lub 2.0 – szczegółowe informacje na temat nowej wersji nie są jeszcze znane. Można jednak zakładać, że wprowadzą dalsze ulepszenia w bezpieczeństwie i szybkości działania;
- szerszej implementacji – zabezpieczenie zapewne stanie się domeną nie tylko stron internetowych, ale także i elementów internetu rzeczy (IoT) oraz sieci 5G;
- kryptografii postkwantowej (PQC) – pojawienie się komputerów kwantowych stanowi potencjalne zagrożenie dla obecnych algorytmów kryptograficznych. Nowoczesne protokoły bezpieczeństwa będą musiały uwzględnić ten znaczący przeskok technologiczny w sposobach szyfrowania.