Certyfikat SSL

Certyfikat SSL
Polecane artykuły

Certyfikat SSL (z ang. SSL Certificate) jest to narzędzie informatyczne, którego zadaniem jest poświadczenie wiarygodności domeny oraz jej właściciela. Głównym celem certyfikatu SSL jest potwierdzenie bezpieczeństwa przesyłanych danych między użytkownikiem a serwerem. Jest to najczęściej wykorzystywany protokół szyfrowania transmisji danych dzięki wbudowaniu go we wszystkie najważniejsze przeglądarki internetowe na rynku. SSL, czyli Secure Sockets Layer został opracowany przez firmę Netscape.

Model SSL zapewnia możliwość utworzenia kanałów komunikacji pomiędzy dowolną liczbą podmiotów. Jest on modelem point-to-point security, dlatego że ochrona informacji odbywa się w całości w warstwie sieci modelu ISO/OSI. Jest to trzecia warstwa tego modelu i jej zadaniem jest routing oraz przesyłanie komunikatów. Protokół ten umożliwia przerwanie połączenia w sytuacji, gdy wykryje atak potencjalnego intruza, czego przyczyną może być przerwanie fizycznego kanału komunikacyjnego oraz zniekształcenie treści przesyłanej informacji.

Certyfikat SSL zapewnia usługi zabezpieczeń w obszarach:

  • Uwierzytelnienia serwera - aplikacje, które używają protokołu SSL, używają certyfikatu X.509 w celu uwierzytelnienia na serwerze,
  • Usług integralności danych i poufności - SSL zapewnia usługi bezpiecznych kanałów, czyli zapewnia szyfrowanie kanałów. Polega to na zabezpieczeniu ruchu między klientem używającym SSL a serwerem,
  • Uwierzytelnienia klienta - SSL w tym miejscu używa również certyfikatu X.509, aby uwierzytelnić klienta. Jest to opcjonalna funkcjonalność usługi SSL.

Historia i rozwój Certyfikatu SSL

Początki protokołu SSL sięgają pierwszej połowy lat 90. XX wieku, gdy pierwsza jego wersja powstała w 1994 roku z ramienia firmy Netscape. Został on opracowany jako narzędzie do zabezpieczania transmisji danych, stosując ich szyfrowanie. Rok później podjęto się poszerzenia zakresu prac nad tym projektem, co skutkowało stworzeniem trzeciej wersji produktu. Stało się to w 1996. Wówczas firma IETF (Internet Engineering Task Force) powołała specjalną jednostkę roboczą o nazwie Transport Lawyer Security, której zadaniem był dalszy rozwój protokołu SSL.

W 1999 roku trzecia wersja protokołu o nazwie TSL 1.0 została uznana za podstawową oraz rekomendowaną do powszechnego użycia. Wersja bezproblemowo działała w interakcji między relacjami klienta ze serwerem. Umożliwiała wykonanie bezpiecznych połączeń z pomocą certyfikatów. Pozwoliło to rozwinąć się znacznej ilości sklepów internetowych, którym umożliwiono przeprowadzenie bezpiecznych transakcji a sam protokół zapewniał również możliwość uwierzytelniania użytkowników.

Pierwsza wersja protokołu miała spore luki w poziomie bezpieczeństwa, gdyż uzgadnianie szyfru nie było odpowiednio zabezpieczone. Osoby trzecie musiały stosować najsłabsze opcje szyfrowania, co powodowało, że osoby atakujące radzili sobie z nim łatwiej niż ze standardowym szyfrem. Wraz z następnymi wersjami stosowano coraz mocniejsze zabezpieczenia. Aktualnie rekomendowane jest użycie wersji od TLS 1.1 wzwyż (Kania K. 2010).

Zasada działania

Dane, które protokół przesyła, szyfrowane są szyfrem symetrycznym. Klucz do tego szyfrowania tworzony jest za każdym razem, gdy tworzone jest nowe połączenie. Nazywane jest to kluczem sesji. Do największych wyzwań należą zapewnienie bezpiecznej transmisji kluczy, które nie mogą być transmitowane w postaci jawnej oraz uwierzytelnienie po obydwóch stronach. Aby bezpiecznie wymienić klucz symetryczny oraz go poprawnie autentykować używa się algorytmów kryptograficznych. Uzgadnianie klucza symetrycznego składa się z następujących etapów (Papińska-Kacperek J. 2008):

  1. Po nawiązaniu przez użytkownika połączenia z serwerem oprogramowanie klienta wysyła komunikat o sposobie w jakim szyfrowane są dane oraz używanej przez niego wersji protokołu SSL.
  2. Serwer w odpowiedzi odsyła podobne informacje, dodatkowo dołączając cyfrowy certyfikat serwera WWW – w momencie, gdy jest potrzebne uwierzytelnienie serwera.
  3. Serwer WWW jest uwierzytelniany przez klienta poprzez proces porównania certyfikatu przesłanego przez niego z wzorcem przechowywanym w archiwum wydawcy certyfikatu. Serwer nie może zostać uwierzytelniony w razie jakiejkolwiek niezgodności danych. Nie musi być to związane z nieuprawnionym wejściem lub atakiem hakerskim, gdyż powodem tego może być nie odnowienie certyfikatu w odpowiednim momencie.
  4. Gdy serwer zostaje uwierzytelniony przez certyfikat SSL, klient i serwer wymieniają między sobą serie komunikatów. Zadaniem klienta jest przesyłanie komunikatów poprzez otrzymany i uwierzytelniony klucz publiczny, a serwera deszyfracja ich przez użycia klucza prywatnego. Efektem tych działań jest uzgodnienie jednakowego klucza sesji do szyfrowania oraz deszyfrowania.

Uzgodnienie kluczy sesji jest końcem procesu nawiązywania połączenia poprzez certyfikat SSL. Gdy to nastąpi, wszystkie połączenia i przesyły danych są szyfrowane. Dla użytkownika jest to widoczne poprzez zmianę prefiksu w adresie przeglądanej strony. Zmienia się „http://” na "https://". Obecnie używane przeglądarki posiadają również symbol odpowiadający zadaniu szyfrowanego połączenia – może być to kłódka lub kluczyk.

Bibliografia

Autor: Wojciech Chajdaś