Strona główna
FAQ
WebTrustWebTrust for Extended ValidationWebTrust for Certification Authorities
Newsletter
Dopisz się do listy osób regularnie otrzymujących informacje o nowościach oraz aktualnych akcjach promocyjnych.>> więcej
 
Strona główna  Informacje dodatkowe  SSL: dla informatyków

SSL: dla informatyków

Protokół SSL (ang. Secure Socket Layer) został zaprojektowany i opracowany przez korporację Netscape (www.netscape.com). W trakcie jednej z pierwszej prezentacji zasad jego działania został złamany. Błędy poprawiono w SSL v2, umożliwiając tym samym jego dystrybucję wraz z przeglądarką Netscape 1.0. Równolegle do prac na SSL korporacja Microsoft pracowała nad swoim własnym standardem PCT (ang. Private Communication Technology). Protokół ten był bardziej ogólny od SSL, rozdzielono w nim uwierzytelnianie od szyfrowania. Po burzliwych dyskusjach, wprowadzono niektóre rozwiązania PCT i Netscape opublikowała nową wersję v3, która jest powszechnie stosowana. W 1999 roku IETF opublikowało standard udoskonalonej wersji SSL – protokół TLS v1.0 (ang. Transport Layer Security RFC 2246).

SSL wykorzystuje technologię klucza publicznego podczas negocjacji symetrycznego klucza sesyjnego między serwerem usługowym a klientem. Klucz publiczny umieszczony jest w certyfikacie X.509 i jest potwierdzony (podpisem cyfrowym) przez Zaufaną Trzecią Stronę, np.: CERTUM PCC. Technologia ta, wprowadzona na początku z myślą o zabezpieczeniu transmisji danych dla przeglądarek internetowych, stała się najpopularniejszą formą zabezpieczania transmisji danych i uwierzytelniania podmiotów w sieci globalnej. Kryptografia w protokole SSL realizowana jest w tle – mechanizmy kryptograficzne stają się zatem przeźroczyste dla użytkownika systemu. Najpopularniejsze implementacje SSL udostępnione są przez:
  • RSA Security  - biblioteka BSAFE
  • Netscape Corportaion – biblioteka SSLref
  • Projekt OpenSSL – biblioteka OpenSSL

Protokół SSL działa między protokołem TCP/IP (lub innymi np.: X.25) a protokołami wyższego poziomy, takimi jak HTTP, NNTP, SMTP. Jego konstrukcja umożliwia uruchomienie dowolnego serwisu w oparciu o kryptografię klucza publicznego, umożliwiając tym samym bezpieczną transmisję danych w sieci globalnej i sieciach rozległych (ang. WAN).
SSL umożliwia ochronę przed atakami z osobą pośrodku (ang. man-in-the-middle attack) oraz atakami powtórzeniowymi (ang. replay attack)

Charakterystyka protokołu SSL / TLS

Protokół SSL zapewnia: uwierzytelnienie i niezaprzeczalność serwera oraz opcjonalnie klienta, dzięki wykorzystaniu podpisów elektronicznych, poufność dzięki zastosowania szyfrowania sesji, integralność dzięki zastosowaniu MAC oraz ochronę sesji komunikacyjnej typu end-to-end. Podstawowe zalety protokołu SSL:

  • Uwierzytelnienie serwera możliwe jest dzięki wsparciu w programie klienta dla standardowych technologii kryptograficznych. Uwierzytelnienie to polega na weryfikacji identyfikatora cyfrowego serwera na podstawie bazy zaufanych wystawców certyfikatów. Znajduje szczególne zastosowanie w bankowości elektronicznej oraz systemach płatności online (karty płatnicze).
  • Uwierzytelnienie klienta możliwe jest dzięki zastosowaniu identycznych technik co w przypadku weryfikacji serwera. Dzięki certyfikatowi klucza publicznego serwer może jednoznacznie określić tożsamość podmiotu w sieci globalnej. Weryfikacja oparta jest o bazę zaufanych wystawców certyfikatów serwera usługowego. Rozwiązanie to najczęściej stosuje się w bankowości elektronicznej oraz systemach zdalnego dostępu do zasobów sieci teleinformatycznych (zdalne logowanie do systemu).
  • Szyfrowanie transmisji danych gwarantuje poufność przesyłanych danych. Dzięki szyfrowaniu transmisji danych możliwe staje się przesyłanie poufnych dokumentów za pośrednictwem sieci globalnej. Ponadto SSL wyposażony jest w mechanizm weryfikujący poprawność transmisji i w przypadku przekłamań lub manipulacji fakt ten jest natychmiast wykrywany.

Uzgadnianie sesji SSL (ang. SSL handshake)


Protokół SSL pozwala na współpracę z różnymi typami certyfikatów I wspiera różnorodne algorytmy kryptograficzne. Najczęściej stosowane certyfikaty to certyfikaty klucza publicznego RSA o dowolnej długości klucza (najczęściej 1024 – 2048 bitów), certyfikaty klucza DSA (najczęściej 2048 – 4096) oraz certyfikaty parametrów wymiany parametrów Diffiego-Hellmana. Algorytmy symetryczne to przede wszystkim RC2 i jego nowsza wersja RC4 (40 -128 bitów), 3 DES (168 bitów) oraz AES (256 bitów), kryptograficzne funkcje skrótów to przede wszystkim SHA1 oraz MD5.

Porównane mocy kluczy sesyjnych:

Typ szyfrowania
Ilość możliwych kombinacji
3-DES (168 bitów) z SHA1
3.7 * 1050
DES (56 bitów) z SHA1
7.2 * 1016
RC4 (40 bitów) z MD5
1.1 * 1012
RC4 (128 bitów) z MD5
3.4 * 1038

Technologia SGC (ang. Server Gated Cryptography)

Do stycznia roku 2000 oprogramowanie wspierające silną kryptografię (128 bitów SSL), m.in. przeglądarki internetowe Netscape Navigator oraz Microsoft Internet Explorer było dostępne jedynie dla mieszkańców USA oraz Kanady ze względu na restrykcje eksportowe (ITAR). Dla wersji międzynarodowych tych programów wbudowano blokady pozwalające na stosowanie kryptografii 40 bitowej. W praktyce oznaczało to, że europejskie wersje przeglądarek nie mogły stosować silnej kryptografii do zabezpieczania transmisji danych. Mimo implementacji algorytmów RSA-RC4-MD5 (128 bit RC4) oraz RSA-DES-CBC3-MD5 (168 bitów Triple-DES) w popularnych produktach eksportowych jedynie certyfikaty przeznaczone dla serwerów finansowych, wystawiane przez znane amerykańskie urzędy certyfikacyjne były w stanie wymusić silną kryptografię na przeglądarkach w wersji eksportowej. Certyfikaty te niczym nie wyróżniały się od identyfikatorów cyfrowych wystawianych przez inne urzędy, za wyjątkiem dwóch identyfikatorów obiektów w rozszerzeniu extKeyUsage:

  • 2.16.840.1.113730.4.1 (Netscape SGC)
  • 1.3.6.1.4.1.311.10.3.3 (Microsoft SGC)

W przypadku połączenia z serwerem finansowym, który uwierzytelnia się certyfikatem SGC (Global ID), przeglądarka w wersji eksportowej najpierw upewnia się, czy identyfikator wystawcy certyfikatu ma ustawione odpowiednie flagi w bazie rootCA, i następnie wymusza renegocjację klucza sesyjnego z serwerem (ang. Re-Hansdshake) przedstawiając się tym razem możliwością nawiązania sesji w oparciu o silne algorytmy kryptograficzne.

Serwis SSL ze wsparciem dla SGC (logi serwera Apache)

Configuring server www.certyfikat.pl:443 for TLS protocol
(www.certyfikat.pl:443) RSA server ID enables Server Gated Cryptography (SGC)
Configuring server developer.certum.pl:443 for TLS protocol
(developer.certum.pl:433) RSA server ID enables Server Gated Cryptography (SGC)

do góry ^