SSL (Secure Sockets Layer)

Protokół SSL (ang. Secure Sockets Layer) został opracowany przez firmę Netscape (początkowa wersja) i stał się wkrótce standardem, powszechnie stosowanym w Internecie. Ostatnia, trzecia wersja protokołu (SSLv3) stała się podstawą do opracowania nieco ulepszonego i firmowanego przez IETF protokołu TLS (Transport Layer Security).

SSL po co?

SSL stworzono w celu zapewnienia bezpieczeństwa informacji przesyłanych siecią. Pozwala na zestawianie szyfrowanych połączeń internetowych wykorzystujących takie protokoły jak:
Standardowo SSL wbudowany jest tylko w http, w pozostałych przypadkach należy go oddzielnie kompilować, co może stwarzać problemy, ponieważ zarówno klient jak i serwer musza go obsługiwać. Najpowszechniejszym jego zastosowaniem jest wykorzystanie go na stronach WWW w celu bezpiecznego przesyłania informacji, które nie powinny wpaść w niepowołane ręce. Dzięki swoim możliwościom pozwala on na realizację w najprostszy sposób np. transakcji płatniczych dokonywanych w internecie, składania zamówień itp. W obecnej chwili SSL jest obsługiwany przez wszystkie używane przeglądarki, powszechnie stosowane w większości sklepów internetowych na zachodzie, jak i w Polsce.

Podstawowe zadania SSL

SSL to protokół bezpiecznej komunikacji między klientem a serwerem. SSL w założeniu jest podkładką pod istniejące protokoły. Powszechnie jest używane głównie HTTPS (HTTP na SSL).

SSL zapewnia trzy rzeczy:

Które przeglądarki obsługują SSL?

Z najpopularniejszych:

Protokół SSL

SSL w modelu ISO/OSI

Mechanizmy zapewniające poufność oraz integralność przesyłanych danych są dostępne praktycznie dla każdej warstwy modelu sieci ISO/OSI. W odniesieniu do TCP/IP warstwy te wraz z dostępnymi zabezpieczeniami są przedstawione(w uproszczeniu) poniżej tabeli:

Warstwa ISO/OSIProtokoły Zabezpieczenia
aplikacjiPOP3, HTTPPGP, S/MIME, SSL
transportowaTCP, UDPSSL
sieciIPIPSEC
fizycznaEthernet, ISDN szyfratory sprzętowe

Rys.1.Stos protokołów

Protokół SSL 3.0 umożliwia szyfrowanie danych, potwierdzanie tożsamości serwera, zapewnianie integralności przesyłanych komunikatów, a także opcjonalne potwierdzanie tożsamości komputera typu klient w połączeniach realizowanych za pomocą protokołu TCP/IP. Na rysunku 1 przedstawiony zostal stos protokołów.

Przeznaczenie SSL

Podstawowymi zadaniem SSL jest zapewnienie bezpiecznego kanału dla protokołów wyższych warstw. Kanał taki, dzięki zastosowaniu kryptografii, powinien być zupełnie nieprzezroczysty dla osoby podsłuchującej łączność lub próbującej modyfikować jej przebieg. SSL gwarantuje następujące funkcje:
  • Netscape Corporation, http://home.netscape.com/
  • Organizacja tworząca standardy techniczne Internetu, Internet Engineering Task Force, http://www.ietf.org/.

SSL jako protokół otwarty

Jednym z podstawowych założeń SSL była otwartość i rozszerzalność protokołu, czyli brak przywiązania do jednego, konkretnego algorytmu szyfrującego. Zamiast tego protokół umożliwia stronom przedstawienie swoich propozycji obsługiwanych algorytmów i wybranie wspólnego, najbardziej odpowiedniego dla obu stron. Przykładowo, klient łączący się z serwerem po SSL może oznajmić mu, że może użyć algorytmów szyfrujących DES, 3DES oraz RC4. Jeśli serwer stwierdzi, że z zaproponowanej listy obsługuje wyłącznie RC4, to ten właśnie algorytm zostanie użyty do zabezpieczenia transmisji.

Działanie protokołu

Typowa sesja SSL składa się z następujących kroków:

1. Nawiązanie przez klienta połączenia do serwera (po zwykłym TCP).

2. Wymiana informacji o obsługiwanych szyfrach, certyfikatów tożsamości i innych danych.

3. Uzgodnienie wspólnego zbioru obsługiwanych algorytmów.

4. Potwierdzenie tożsamości serwera przez klienta na podstawie otrzymanych informacji (opcjonalnie także w drugą stronę).

5. Wymiana kluczy sesyjnych (session keys), wygenerowanych w sposób losowy.

6. Rozpoczęcie transmisji całkowicie szyfrowanej wygenerowanymi wcześniej kluczami.

W punktach 2, 3 i 4 wykorzystywany jest szyfr asymetryczny, wybrany ze wspólnej listy

Po zakończeniu ostatniego (5) etapu kanał SSL staje się całkowicie przezroczysty dla tunelowanego wewnątrz protokołu wyższej warstwy. Do szyfrowania właściwych danych tunelowanych w SSL jest wykorzystywany szyfr symetryczny, jeden z uzgodnionych podczas początkowej wymiany. Klucz szyfrujący jest generowany losowo dla każdego połączenia. Więcej o działaniu protokołu...

SSL w akcji

Przykad:

http://nazwa-serwera/SUSAdmin prezentuje się bardzo ładnie, ale czy możemy mieć pewność, że pakiety w sesji uwierzytelniania nie zostaną przechwycone i poddane tzw. 'obróbce', dlatego https://nazwa-serwera/SUSAdmin wygląda znacznie ciekawiej, co można sprawdzić analizując proces logowania do witryny bez protokołu SSL, a następnie z włączonym protokołem SSL.

Rysunek 1. Fragment sesji uwierzytelniania klient-serwer. SSL wyłączony

Rysunek 2. Fragment sesji uwierzytelniania klient-serwer. SSL włączony

O certyfikatach

Ze względu na sposób dokonywania autoryzacji SSL jest protokołem scentralizowanym, inaczej niż np. PGP. Jest on oparty o grupę instytucji certyfikujących --- Certyfing Authorities, w skrócie CA, które opatrują swoim podpisem certyfikaty poszczególnych serwerów. CA z założenia są godni zaufania, a uzyskanie podpisu wymaga przedstawienia szeregu dowodów tożsamości. W ten sposób wchodząc na serwer legitymujący się certyfikatem jednego ze znanych CA mamy pewność że serwer rzeczywiście jest tym za który się podaje.

Więcej o certyfikatach...

Podszywanie się pod hiperłącza - atak na weryfikację serwera SSL

Podszywanie się pod hiperłącza, stanowi powszechnie stosowany przez hakerów atak na komputery komunikujące się przy użyciu protokołu HTTP. Hakerzy mogą atakować protokół weryfikacji serwera SSL (Secure Socket Layer), używany przy tworzeniu bezpiecznych przeglądarek internetowych i serwerów, na przykład produkowanych przez firmy Microsoft lub Netscape. Troche wiecej o tym i nie tylko o tym...

Akceleratory SSL

Za kodowanie komunikatów odpowiedzialne są w dużej mierze rozwiązania sprzętowe. Warte zastosowania są zwłaszcza akceleratory SSL. Przejmują one na siebie szyfrowanie i deszyfrowanie transmisji, odciążając serwery. Sprzęt tego typu produkują firmy takie, jak: Compaq, Dica Technologies, nCipher czy Sun Microsystems. Procesy szyfrowania wspomagają też w różny sposób urządzenia z serii CompCrypt krajowego producenta - firmy Comp Warszawa. Comp nie produkuje jednak akceleratorów SSL.

źródła: http://echelon.pl/pubs/oss_2001-wprowadzenie_do_pki.pdf

http://stud.wsi.edu.pl/~dratewka/security/proto.htm

http://www.microsoft.com/poland/technet/article/art002.mspx

http://klagozny.webpark.pl/ssl1.html

http://www.teleinfo.com.pl/ti/2001/03/t20.html