Jako właściciel strony internetowej, której adres rozpoczyna się od https://, korzystasz z protokołu SSL, TLS czy SSL/TLS? Jeżeli nie potrafisz odpowiedzieć na to pytanie lub nie jesteś pewny, ten artykuł jest dla Ciebie. Spróbuj przynajmniej zgadnąć, a następnie zweryfikuj swoją wiedzę lub przeczucie. Poznaj historię dwóch popularnych protokołów bezpieczeństwa transmisji danych i odkryj tajemnicę, który stosuje się obecnie. A jeśli jeszcze nie wdrożyłeś na swoją stronę certyfikatu, zrób to czym prędzej – zabezpieczanie połączenia to dbałość o dane klientów i niezbędny krok na drodze do osiągnięcia wysokich pozycji w wynikach wyszukiwania.
Czym są SSL i TLS?
SSL i TLS to popularne protokoły zapewniające bezpieczeństwo transmisji danych. Składają się z trzech podstawowych funkcji: szyfrowania celem zapewnienia poufności (confidentiality), uwierzytelniania (authentication) i integralności danych (integrity). Dzięki temu dane wysyłane i odbierane przez użytkownika internetu, np. podczas przeglądania stron internetowych, zostają zabezpieczone przed odczytaniem przez osoby trzecie.
Protokoły bezpieczeństwa wykorzystuje się zarówno w internecie (np. na stronach internetowych), jak i w lokalnych sieciach IP (np. w urządzeniach IoT).
Co to jest SSL?
SSL (Secure Sockets Layer) to protokół szyfrowania typu kryptograficznego, napisany w języku C. Odpowiada za poufność danych i ich integralność, zapewnia bezpieczną komunikację w internecie. Przynajmniej teoretycznie. W praktyce bowiem w każdej z trzech wersji SSL znaleziono poważne luki bezpieczeństwa – pierwszej z tego powodu nawet nie udostępniono użytkownikom – co ostatecznie doprowadziło do rezygnacji z dalszego rozwijania protokołu.
Protokół SSL powstał w 1995 roku, a za jego opracowanie odpowiada Netscape. Wersja 1.0 nigdy nie trafiła do powszechnego użytku ze względu na niedostateczne zabezpieczenia. SSL stanowi poprzednika protokołu TLS i został nim zastąpiony ze względu na wspomniane poważne luki bezpieczeństwa.
Co to jest TLS?
TLS (Transport Layer Security) to kolejny protokół bezpiecznej komunikacji sieciowej. Zabezpiecza użytkowników przed przechwytywaniem danych i np. manipulowaniem nimi.
Protokół TLS pojawił się w użytku w 1999 roku. Za jego powstanie odpowiada Engineering Task Force (IETF). Obecnie mamy do czynienia z wersją TLS 1.3 z 2018 roku. Protokół jest dalej rozwijany.
Protokoły SSL i TLS – różnice
Różnice pomiędzy protokołami SSL i TLS są tak niewielkie, że przeciętny użytkownik sieci nie musi o nich wiedzieć. Ba! Chociaż TLS ostatecznie wyparł SSL, nazwa SSL zdążyła się na tyle spopularyzować, iż w artykułach skierowanych do przeciętnego użytkownika sieci często korzysta się z niej, a nie z TLS, mimo iż technicznie powinno się pisać TLS. Czasem też stosuje się nazwę z ukośnikiem: SSL/TLS, by szerzyć świadomość wśród internautów i pewnego dnia ograniczyć się do TLS.
Przykładowe różnice między SSL i TLS to:
- różne daty powstania i aktualizacji – protokół TLS jest nowszy, pierwsza wersja (TLS 1.0) pochodzi z 1999 roku. Następnie pojawiły się trzy aktualizacje: TLS 1.1, TLS 1.2 i TLS 1.3. W przypadku protokołu SSL po oryginalnej wersji 1.0, która zresztą nigdy nie została oddana do użytku publicznego, wypuszczono tylko dwie aktualizacje: SSL 2.0 i SSL 3.0,
- wspieranie i rozwijanie – ponieważ TLS wyparł SSL, ten drugi nie jest już rozwijany,
- różne zestawy szyfrów – w protokole SSL obecne są starsze algorytmy szyfrujące (np. DES, RC4) i zestawy szyfrów Fortezza, a protokół TLS wspiera mocniejsze i nowocześniejsze algorytmy szyfrujące, w tym AES,
- różnice w zastosowaniu protokołu zapisu (Record Protocol) – protokół ów wykorzystywany jest zarówno w SSL, jak i w TLS, jednakże TLS wprowadza usprawnienia, do których należą możliwość stosowania paddingu czy też wsparcie nowszych formatów kompresji,
- różnice w procesie uzgadniania (Handshake; uścisk dłoni) – obliczanie skrótu w obu protokołach różni się na poziomie zastosowanych algorytmów. W przypadku protokołu SSL jest to Message Authentication Code (MAC), protokół TLS zaś korzysta z Hashed MAC (HMAC). HMAC to ulepszona wersja MAC, która zapewnia większą ochronę przed manipulacją danych. Korzysta z funkcji skrótu SHA (np. SHA-256), co wzmacnia integralność danych,
- różnica w jakości bezpieczeństwa – TLS zapewnia większe bezpieczeństwo niż SSL dzięki zaawansowanym metodom uzgadniania klucza i nowoczesnym algorytmom szyfrującym. Dla przykładu: TLS wspiera Perfect Forward Secrecy (PFS), mechanizm zapewniający wysoki stopień ochrony klucza sesji,
- różne reakcje na brak protokołu – kiedy strona nie korzysta z protokołu SSL lub dochodzi do błędu połączenia, pojawia się niezabezpieczony komunikat alarmowy: „Brak certyfikatu” lub krytyczne ostrzeżenie. Natomiast kiedy strona nie używa protokołu TLS, występuje szyfrowane powiadomienie o zakończeniu sesji.
Dlaczego zrezygnowano z SSL na rzecz TLS?
Jedynym powodem zastąpienia protokołu SSL przez TLS była przestarzałość tego pierwszego. Znaleziono w nim istotne błędy związane z zapewnianiem bezpieczeństwa, co sprawiło, że nie przeszedł próby czasu, stał się niewystarczający. Na jego miejscu pojawił się TLS 1.0, który ze względu na minimalną liczbę technicznych różnic można by nazwać SSL 3.1 (naturalnie pomijając kwestię autorstwa obu protokołów).
W związku z powyższym kiedy obecnie używa się określeń SSL lub SSL/TLS, tak naprawdę chodzi o TLS. Oczywiście wyjątkiem jest prezentowanie historii rozwoju protokołu bezpieczeństwa transmisji danych i odnoszenie się do dawnych czasów. Termin SSL stał się niejako uogólnioną nazwą protokołu bezpiecznej komunikacji, podobnie jak adidasy zostały synonimem butów sportowych, a pampersy – pieluszek jednorazowych.
Który certyfikat dla strony: SSL czy TLS?
Certyfikat bezpiecznego połączenia to absolutna podstawa dla właścicieli stron internetowych, zwłaszcza takich, na których podejmuje się różnego rodzaju akcje: rejestruje, loguje, zostawia komentarze, kupuje produkty i więcej. Posiadając certyfikat bezpieczeństwa – przejawiający się m.in. zmianą adresu strony z http:// na https:// – dba o się o bezpieczeństwo i poufność danych przesyłanych pomiędzy witryną a użytkownikiem. Pytanie tylko, jaki certyfikat bezpieczeństwa wybrać, a raczej jak zyskać pewność, że stronę zabezpiecza nowoczesny TLS.
Na szczęście nie musisz się nad tym głowić. Obecnie dostawcy protokołów zabezpieczania połączeń sieciowych korzystają z nowoczesnego protokołu TLS. Najczęściej dostarczany jest TLS 1.3, ewentualnie 1.2. Praktycznie nie istnieje ryzyko, że kupując lub instalując darmowy certyfikat, trafisz na przestarzały SSL. Natomiast warto mieć pewność, że obsługuje się tylko najnowsze wersje TLS – 1.0 i 1.1 przestały być wspierane i podobnie jak SSL mają niski poziom bezpieczeństwa.
Jak sprawdzić, który mam certyfikat: SSL czy TLS?
Jeżeli korzystasz z protokołu bezpiecznego połączenia, prawie na pewno obsługujesz TLS. Jeśli prowadzisz stronę internetową – wręcz na pewno. Możesz jednak sprawdzić, czy wspierasz najnowszą wersję 1.3 i czy masz wyłączone starsze, znacznie mniej bezpieczne opcje. Aby to zrobić, wygeneruj darmowy raport SSL na stronie SSL Labs należącej do firmy Qualys: https://www.ssllabs.com/ssltest/index.html
Wyniki pozytywnego testu wyglądają następująco:
Raport SSL Labs wykazał, że Google.com korzysta z pełnego wachlarza TLS. Nie jest to jednak zalecane ze względów bezpieczeństwa i jeśli Twoja strona ma podobną konfigurację, wyłącz obsługę przestarzałych wersji 1.0 i 1.1.
Podobnie jeśli używasz bardzo starych konfiguracji urządzeń IoT, aplikacji lub serwerów i nadal obsługujesz SSL, czym prędzej wymień go na TLS. W ograniczonych przypadkach może to nie być możliwe, wówczas zastosuj dodatkowe zapieczenia. Pamiętaj jednak, że nie dotyczy to stron internetowych – jeśli prowadzisz witrynę-wizytówkę, serwis informacyjny, blog, forum, sklep internetowy itp. i Twój adres zaczyna się od https://, na pewno masz TLS.