Sobes.tech
Junior

Czym jest SSL i jak jest używany do zapewnienia bezpieczeństwa danych w sieci?

sobes.tech AI

Odpowiedź od AI

SSL (Secure Sockets Layer) to kryptograficzny protokół zapewniający bezpieczną transmisję danych między klientem (np. przeglądarką internetową) a serwerem (np. stroną internetową). Używa asymetrycznego szyfrowania do ustanowienia chronionego kanału komunikacji, a następnie symetrycznego szyfrowania do przesyłania danych.

Główne etapy korzystania z SSL:

  1. Handshake (uścisk dłoni):

    • Klient wysyła do serwera wiadomość "ClientHello" zawierającą listę obsługiwanych wersji SSL i zestawów szyfrów.
    • Serwer odpowiada "ServerHello", wybierając optymalną wersję SSL i zestaw szyfrów, oraz wysyła swój certyfikat.
    • Klient weryfikuje autentyczność certyfikatu serwera, korzystając z listy zaufanych urzędów certyfikacji.
    • Klient generuje tajny klucz sesji i szyfruje go, używając klucza publicznego z certyfikatu serwera.
    • Klient wysyła zaszyfrowany klucz sesji do serwera.
    • Serwer odszyfrowuje klucz sesji, używając swojego klucza prywatnego.
    • Obie strony generują niezbędne klucze (szyfrowania i uwierzytelniania) dla algorytmu symetrycznego, korzystając z klucza sesji.
    • Klient i serwer wysyłają wiadomości "Finished", zaszyfrowane przy użyciu uzgodnionych kluczy, aby potwierdzić pomyślne ustanowienie bezpiecznego połączenia.
  2. Szyfrowanie danych: Po pomyślnym handshake, wszystkie dane przesyłane między klientem a serwerem są szyfrowane przy użyciu uzgodnionego algorytmu symetrycznego i kluczy.

Przykład części certyfikatu SSL:

// Identyfikator certyfikatu
Numer seryjny: ...
// Algorytm podpisu certyfikatu
Algorytm podpisu: sha256WithRSAEncryption
// Wystawca certyfikatu (Urząd certyfikacji)
Issuer: C = US, O = Google Trust Services LLC, CN = GTS CA 1C3
// Okres ważności
Validity
    Not Before: ...
    Not After : ...
// Podmiot certyfikatu (nazwa domeny strony)
Subject: CN = www.przyklad.com
// Klucz publiczny podmiotu
Subject Public Key Info
    Public Key Algorithm: rsaEncryption
    Public-Key: (2048 bit)

SSL, a dokładniej jego nowsza wersja TLS (Transport Layer Security), zapewnia:

  • Poufność: Zapobiega przechwyceniu i odczytaniu danych przez osoby trzecie.
  • Integralność danych: Gwarantuje, że dane nie zostały zmienione podczas transmisji.
  • Uwierzytelnianie: Potwierdza autentyczność serwera (i opcjonalnie klienta) za pomocą certyfikatów.

Użycie SSL/TLS jest szeroko stosowane w przeglądarkach internetowych (protokół HTTPS), poczcie elektronicznej (STARTTLS), VPN i innych aplikacjach wymagających bezpiecznej transmisji danych.